Jumat, 30 September 2016

Pengaruh Life Cycle dan Peranan Case Tools dalam pembuatan dan pengembangan Software


Assalamu'alaikm Wr. Wb.
Selamat datang kembali di blog JamanIT

Bicara Tentang Software memang gak ada habisnya, tidak dapat dipungkiri peranan software sangatlah penting.hampir setiap mesin dilengkapi software sebagai media penghubung dengan kegiatan manusia. Pembuatan software memang tidak mudah, karena memiliki beberapa tahapan yang harus diperhatikan. Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada Gambar berikut ini.

SDLC (System Developement Life Cycle)


Meskipun dalam pendekatan berbeda-beda, namun model-model pendekatan memiliki kesamaan, yaitu menggunaka pola tahapan analysis – design – coding(construction) – testing – maintenance.
-       Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistemmenjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka. 
-       Model proses adalah model yang memfokuskan pada seluruh proses di dalam sistem  yang mentransformasikan data menjadi informas.
-       Disain perangkat lunak  adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis computer (Whitten et al, 2004). Disain perangkat lunak sering juga disebut sebagai physical design.  Jika tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak (Whitten et al, 2004).
-       Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam kode-kode program komputer.
-       Pengujian sistem melibatkan semua  kelompok pengguna yang telah direncanakan pada tahap sebelumnya. Pengujian tingkat penerimaan terhadap perangkat lunak akan berakhir ketika dirasa semua kelompok pengguna menyatakan bisa menerima perangkat  lunak tersebut berdasarkan kriteria-kriteria yang telah ditetapkan.
-       Perawatan dan Konfigurasi. Ketika sebuah perangkat lunak telah dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu perawatan perangkat lunak.  Ada beberapa tipe perawatan yang biasa dikenal dalam dunia perangkat lunak seperti terlihat pada diagram di Gambar di bawah ini :

Tipe-tipe Perawatan

 -       Tipe perawatan  corrective dilakukan jika terjadi kesalahan atau biasa dikenal sebagai bugs.  Perawatan  bisa dilakukan dengan memperbaiki kode program, menambah bagian  yang dirasa perlu atau malah menghilangkan bagian-bagian tertentu.  
-       Tipe perawatan  routine biasa juga disebut preventive maintenance dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada kesalahan. 
-       Tipe perawatan  sistem upgrade dilakukan jika ada perubahan dari komponen-komponen yang terlibat  dalam perangkat lunak tersebut. Sebagai contoh perubahan platform sistem operasi dari versi lama ke versi baru menyebabkan perangkat lunak harus diupgrade.
Dalam software engineering telah dikenal banyak tools (computer-base system) yang dikenal dengan Computer-Aided Software Engineering (CASE). CASE merupakan suatu teknik yang digunakan untuk membantu satu atau beberapa fase dalam life-cycle software, termasuk fase analisis, desain, implementasi dan maintenance dari software tersebut
Ada banyak tools yang mendukung pembangunan/pengembangan suatu software. Agar tidak membingungkan, CASE tools dibagi menjadi beberapa kategori:
1.    Information engineering-supporting products.
Ada beberapa proses dari life-cycle, yang    dihasilkan dari rencana strategis dari perusahaan dan yang menyediakan suatu repository untuk membuat dan memelihara enterprise models, data models dan process models.
2.    Structured diagramming-supporting products.
Produk ini sangat mendukung dalam memodelkan data flow, control flow dan entity flow.
3.    Structured development aids-providing products.
Merupakan produk yang cocok digunakan oleh sistem analis, karena didukung oleh suatu proses terstruktur sehingga penganalisaan lebih cepat dan akurat.
4.    Application-code-generating products.
Produk ini mampu menghasilkan application-code untuk tujuan tertentu yang telah ditetapkan oleh designer.

CASE tools diklasifikasikan sebagai berikut: 
a.    Upper CASE.
CASE tools yang didesain untuk mendukung perencanaan, identifikasi, dan seleksi proyek (permulaan dari perencanaan proyek), tepatnya pada fase analisis dan desain dari suatu system development life cycle (SDLC). Tools yang termasuk kelas ini adalah jenis Diagramming tools, Form and report generators, dan Analysis tools. Contoh CASE tools: Cradle, PRO-IV Workbench, ProKit*WORKBENCH.
b.   Lower CASE.
CASE tools yang didesain untuk mendukung tahap implementasi dan maintenance dari SDLC. Tools yang termasuk kelas ini adalah jenis Code generators. Contoh CASE tools: Level/l-User Sensitive CASE, PRO-IV application Development.
c.    Cross life-cycle CASE/Integrated CASE (I-CASE).
CASE tools yang dirancang untuk mendukung aktifikas-aktifitas yang terjadi pada beberapa fase dari SDLC. Mengkombinasikan Upper dan Lower CASE menjadi satu. Tools yang termasuk kelas ini adalah jenis Project management tools. Contoh CASE tools: Rational Rose, Poseidon, ArgoUML, Catalyze, in-Step, Juggler, PRINCE.
Fase yang didukung oleh Lower and upper CASE tools diperlihatkan dalam model Waterfall seperti gambar di bawah:

Fase Lower dan Upper Case


Hal yang melatarbelakangi munculnya CASE tools adalah karena selama ini para software engineer hanya melakukan pembuatan perangkat lunak untuk mengoptimalkan pekerjaan orang lain, sedangkan software engineer itu sendiri dalam aktifitasnya belum sepenuhnya terotomatisasi, sehingga muncullah CASE tools untuk membantu para software engineer tersebut. Computer Aided Software Engineering (CASE) merupakan kategori software yang bertujuan mengalihkan sebagian beban kerja pengembangan sistem dari manusia ke komputer. Ada 4 kategori :
Peralatan CASE tingkat atas : dapat digunakan oleh eksekutif perusahaan dalam perancangan strategis; contoh : IEW/Planning Work Station dari Knowledge Ware dan Develop-Mate dari IBM.
Peralatan CASE tingkat menengah : dapat digunakan selama tahap analisis dan rancangan untuk mendokumentasikan proses dan data dari sistem yang telah ada atau baru. Contoh: Visible Analyst dari Visible System dan Excelator dari Index Technology.
Peralatan CASE tingkat bawah : digunakan selama tahap penerapan dan penggunaan untuk membantu programmer, mengembangkan, menguji, dan menjaga kode. Contoh yang popular Telon dari Pansophic Systems yang menghasilkan COBOL atau kode PL/I.
Peralatan CASE integrasi : menawarkan cakupan integrasi dari peralatan CASE tingkat atas, menengah, dan bawah. Contoh: Design-1, dari Anderson Consulting dan In CASE dari EOS.
Keuntungan teknologi CASE adalah sebagai berikut ini:
1.    Perbaikan produktivitas.
2.    Perbaikan kualitas program.
3.    Penghematan biaya
4.    Perbaikan prosedur pengendalian
5.    Penyederhanaan dokumentasi
Beberapa masalah yang ada dalam teknologi CASE adalah sebagai  berikut :
1.    Tidak kompatibel
2.    Biaya
3.    Harapan yang tidak terpenuhi
Pemodelan dalam pembuatan dan pengembangan perangkat lunak merupakan hal yang sangat penting meskipun bisa saja tanpa model atau konsep. Akan tetapi akan sangat berpengaruh pada saat pengerjaannya ibarat buat sebuah gedung tanpa SOP dalam pembuatan gedung itu sendiri. Dalam pembuatan perangkat luna terdapat beberapa model yang dapat di gunakan oleh software developer di antaranya yait:
1.    Model Waterfall
Sebuah pendekatan pengembangan perangkat lunak sistematik dan sekuensial. Disebut juga “Classic Life Cycle”. Disebut waterfall (berarti air terjun) karena memang diagram prosesnya mirip  dengan air terjun yang bertingkat artinya sebuah proses baru bisa dilanjutkan setelah satu taap awal selesai.

Waterfall Model
Penjelasan tentang setiap tahapan dapat diringkas sebagai berikut:
1.    Tahap analisis: pada tahap ini berlangsung proses pengumpulan kebutuhan secara lengkap untuk dianalisis dan didefinisikan kebutuhan apa saja yang harus dipenuhi oleh program yang akan dibuat, seperti memahami domain permasalahan, tingkah laku, unjuk kerja dan interface (antar muka).
2.    Tahap desain: proses ini melibatkan empat atribut sebuah program yaitu struktur data, arsitektur, perangkat lunak, representasi interface, dan detail (algoritma) prosedural.
3.    Tahap pengkodean: proses penterjemahan desain ke dalam bentuk bahasa mesin yang dapat dilakukan secara mekanis.
4.    Tahap pengujian: proses ini dikerjakan setelah kode dirancang dan difokuskan pada fungsi dan jumlah kesalahan untuk diperbaiki.
5.    Tahap pemeliharaan: meliputi penyesuaian atau perubahan yang berkembang seiring dengan adaptasi perangkat lunak dengan kondisi atau situasi sebenarnya setelah disampaikan kepada konsumen atau pelanggan.
Kelebihan metode diatas antara lain, mudah diaplikasikan karena urutan-urutan pengerjaan sudah sering dipakai; selain itu juga cocok untuk software berskala besar dan yang bersifat umum; yang paling penting, karena langkah-langkahnya sangat sekuensial, pengerjaan proyek akan mudah dikontrol dan terjadwal dengan baik. Namun, terdapat pula beberapa kelemahan yang menjadi kekurangan dari metode waterfall ini, seperti kurang fleksibel, dikarenakan rincian prosesnya harus benar-benar jelas dan tidak boleh diubah-ubah. Apabila dikerjakan dengan melampaui tahap yang seharusnya maka proses desain yang sebelumnya itu akan berubah total dan memakan waktu yang banyak jika harus mengulang proses. Model waterfal ini sangat sesuai digunakan dalam pengembangan sistem perangkat lunak dan hardware yang luas dan apabila kebutuhan pengguna telah dimengerti dengan baik. Selain itu, juga apabila waktu yang tersedia juga masih cukup banyak.

1.    Model Prototype
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model.

3
Prototype Model


Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Perubahan dan presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik Prototyping Meliputi :
-       Perancangan Model
-       Perancangan Dialog
-       Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
-       Pemilihan fungsi
-       Penyusunan Sistem InformasiEvaluasi
-       Penggunaan Selanjutnya
Metode ini menyajikan gambaran yang lengkap dari suatu sistem perangkat lunak, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan
4
Teknik Procedure

Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :
Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.
Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll.
Evaluasi Sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.
Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.
Berikut merupakan Jenis – jenis dari Prototyping :
Feasibility prototyping
digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.
Requirement prototyping
digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
Desain Prototyping
digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.
Implementation prototyping
merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.
Contoh Penerapan Metode Prototype.
Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.
Kelebihan Model Prototype :
Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
Penentuan kebutuhan lebih mudah diwujudkan.
Mempersingkat waktu pengembangan produk perangkat lunak.
Adanya komunikasi yang baik antara pengembang dan pelanggan.
Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
Lebih menghemat waktu dalam pengembangan sistem.
Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan Model Prototype :
Proses analisis dan perancangan terlalu singkat.
Biasanya kurang fleksibel dalam mengahadapi perubahan.
Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

1.    Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.
5
RAD Model


Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
-       Bussiness Modeling
Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:
Informasi apa yang menegndalikan proses bisnis?
Informasi apa yang dimunculkan?
Di mana informasi digunakan ?
Siapa yang memprosenya ?
-       Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.
-       Proses Modeling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
-       Aplication Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
-       Testing dan Turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.
Kelebihan Model RAD :
Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
Cocok untuk proyek yang memerlukan waktu yang singkat.
Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
Kekurangan Model RAD :
Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.
1.    Model Evolutionary Development / Evolutionary Software Process Models
          Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
1.    Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.


6
Incremental Model


Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
Pada proses Pengembangan dengan Model Incremental, perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara bergantian.
Contoh Penerapan Model Incremental
Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core product).  Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
Kelebihan Model Incremental :
Personil bekerja optimal.
mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
Memaksimalkan pengembalian modal investasi konsumen.

Kekurangan Model Incremental :
Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
1.    Model Spiral / Model Boehm
          Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.

7
Spiral Model

Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
-       Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
-       Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
-       Tahap Rekayasa (engineering):pembuatan prototipe.
-       Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
-       Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
Kelebihan model iniadalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
Kekurangan model iniadalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.
Sekian artikel mengenai Pengaruh life cycle dan peranan case tools dalam pembuatan dan pengembangan Software, semoga bermanfaat, aamiin  

Wassalamu'alaikum Wr. Wb. 

Sumber : 
https://murtri.wordpress.com/2014/08/25/model-model-pengembangan-perangkat-lunak-beserta-contoh-penerapannya/