Kamis, 13 Desember 2018

Life Cycle Software

Penjelasan Tentang Model Life Cycle Software



Model Pada Life Cycle Software

Model siklus pada perangkat lunak sebenarnya sangatlah banyak, namun disini saya akan menjelaskan beberapa saja diantaranta model Waterfall, V-model, Simple Interaction Desaign Model, Star Lifecycle Model. Berikut penjelasan dari masing-masing model yang akan di jelaskan secara berurutan.

1. Model Waterfall

Model waterfall dulu dikenal dengan nama “Linear Sequential Model” merupakan model tertua dan paling handal dan sering dikenal sebagai “classic life cycle”. Model ini pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi model tersebut merupakan model yang paling banyak dipakai didalam Software Engineering (SE).

Model ini mengusulkan sebuah pendekatan kepada pengembangan software yang sistematik dan sekuensial yang mulai dari tingkat kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Model ini melingkupi aktivitas-aktivitas sebagai berikut yaitu; rekayasa dan pemodelan sistem informasi, analisis kebutuhan, desain, koding, pengujian dan pemeliharaan.

Model pengembangan ini bersifat linear dari tahap awal pengembangan system yaitu tahap perencanaan sampai tahap akhir pengembangan system yaitu tahap pemeliharaan. Tahapan berikutnya tidak akan dilaksanakan sebelum tahapan sebelumnya selesai dilaksanakan dan tidak bisa kembali atau mengulang ke tahap sebelumnya.

berikut adalah gambar tahap-tahap pengembangan software menggunakan model waterfall :

                            gambar 1: Metode Waterfall

Berikut ini adalah penjelasan dari masing-masing tahapan yang terdapat pada model waterfall :

a. System Engineering :
Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Tahap ini sering disebut dengan Project Definition.
b. Analysis 
Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb.
c. Design 
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk“blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya.
d. Coding : 
Untuk dapat dimengerti oleh mesin, maka design yang ada di komputer tadi harus diubah bentuknya menjadi ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
e. Testing : 
Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan. Begitu saoftware berjalan dengan sempurna dan sesuai dengan kebutuhan maka akan diimplementasikan.
f. Maintenance : 
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.Keuntungan model waterfall :
Merupakan model pengembangan paling handal dan paling lama digunakan.
Cocok untuk system software berskala besar.
Cocok untuk system software yang bersifat generic.
Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.Kelemahan model waterfall :
Waktu pengembangan lama. hal ini dikarenakan input tahap berikutnya adalah output dari tahap sebelumnya.
Biaya mahal, hal ini juga dikarenakan waktu pengembangan yang lama.
Terkadang perangkat lunak yang dihasilkan tidak akan digunakan karena sudah tidak sesuai dengan requirement bisnis customer. hal ini juga dikarenakan waktu pengembangan yang lama. selain itu dikarenakan waterfall merupakan aliran yang linear, sehingga jika requirement berubah proses tidak dapat diulang lagi.
Karena tahap-tahapan pada waterfall tidak dapat berulang, maka model ini tidak cocok untuk pemodelan pengembangan sebuah proyek yang memiliki kompleksitas tinggi.
Meskipun waterfall memiliki banyak kelemahan yang dinilai cukup fatal, namun model ini merupakan dasar bagi model-model lain yang dikembangkan setelahnya.

2. V-Model


V-Model merupakan pengembangan dari model Waterfall. V-Model merupakan kepanjangan dari Validasi/ Verivikasi Model.V-model pertama kali diusulkan oleh Paul Rook pada tahun 1980 dan dikenal dengan nama V-Model tradisional. V-model mendemonstrasikan hubungan antara proses pembangunan sistem (development activities) dan proses pengujian system (testing activities). Berbeda dengan pemodelan lainnya, dalam pemodelan V-Model proses pengujian jauh lebih kompleks karena dibagi menjadi beberapa bagian yang lebih detail. Proses pengembangan sistem meliputi requirement analysis, requirements specification, design specification, dan program specification. Sedangkan dalam proses pengujian meliputi acceptance testing, system testing, integration testing, dan units testing. Diantara develompment activities dan testing activities terdapat proses penulisan kode. Alur tahapan pada V-Model dapat dilihat pada gambar dibawah ini :


        gambar 2: Metode V-model


Penjelasan dari berbagai tahapan V-Model sebagai berikut :

1). Requirement & Acceptance Testing.
Requirement Analysis adalah Tahap Requirement Analysis sama seperti yang terdapat dalam model waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna. Acceptance Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan tersebut dapat diterima oleh para pengguna atau tidak.
2). General Design Specification & Component Testing
Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya. Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi sistem secara umum, struktur data, dan yang lain. Selain itu tahap ini juga menghasilkan contoh tampilan window dan juga dokumentasi teknik yang lain seperti Entity.

3). Diagram dan Data Dictionary.
Detailed Design Specification & Unit testing. Dalam Tahapan ini, perancangan dipecah menjadi modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang cukup untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan, proses input-output untuk tiap modul, dan lain-lain.
4). Source Code/Coding.
merupakan tahap paling bawah pada V-Model sehingga merupakan tahapan yang terpenting. Tahapan ini berfungsi mengubah modul-modul desain yang telah dilakukan pada tahapan sebelumnya kedalam bentuk bahasa yang di mengerti oleh komputer (melakukan pengkodingan) hal ini dilakukan oleh pihak pengembang.

5). Unit Testing
merupakan tingkat pengujian perangkat lunak di mana masing-masing unit / komponen perangkat lunak diuji. Tujuannya adalah untuk memvalidasi bahwa setiap unit perangkat lunak melakukan seperti yang dirancang. Unit adalah bagian yang dapat diuji terkecil dari perangkat lunak apa pun. Biasanya memiliki satu atau beberapa input dan biasanya satu output. Dalam pemrograman prosedural, unit dapat berupa program individu, fungsi, prosedur, dll. Dalam pemrograman berorientasi objek, unit terkecil adalah metode, yang mungkin milik kelas dasar / super, kelas abstrak atau turunan / kelas anak. (Beberapa memperlakukan modul aplikasi sebagai unit. Hal ini harus dihalangi karena mungkin akan ada banyak unit individu dalam modul itu.) Kerangka kerja pengujian unit, driver, stub, dan mock / objek palsu digunakan untuk membantu dalam pengujian unit 

6). Integration testing
merupakan tingkat pengujian prangakat lunak dimana unit individu digabungkan 
dan di uji sebagai suatu kelompok. Tujuan dari level pengujian ini adalah untuk 
mengekspos kesalahan dalam interaksi antar unit terintegrasi. Test driver dan 
test bertopik digunakan untuk membantu dalam pengujian integrasi. 





7). Operational Tersting 
merupakan tingkat pengujian perangkat lunak di mana perangkat lunak yang lengkap dan 
terintegrasi diuji. Tujuan dari tes ini adalah untuk mengevaluasi kepatuhan sistem dengan 
persyaratan yang ditentukan. 

Keuntungan V-Model :

1).Sederhana dan mudah digunakan.
2).Pengujian aktivitas seperti perencanaan, pengujian perancangan terjadi sebelum coding sehingga menghemat banyak waktu. Maka memiliki keberhasilan yang lebih tinggi dari model waterfall.
3).Jika perubahan terjadi perubahan, maka proses requirement dapat diperbarui.
4).Bekerja dengan baik untuk proyek-proyek kecil di mana persyaratan mudah dipahami.
5).Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap prosesnya Penyesuaian yang cepat pada projek yang baru Memudahkan dalam pembuatan dokumen projek Biaya yang murah dalam perawatan dan modifikasinya V-Model sangat fleksibel.
6).V-Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamis. 
7).User dari V-Model berpartisipasi dalam change control board yang memproses semua change request terhadap V-Model.

Kelemahan V-Model :

1).Aktifitas V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan organisasi.
2).V-Model adalah proses model yang hanya dikerjakan sekali selama project saja, bukan keseluruhan organisasi.
3).Prosesnya hanya secara sementara. Ketika project selesai, jalannya proses model dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
4).Metode yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain yang lebih baik.
Tidak ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “ software yang mendukung pengembangan atau pemeliharaan / modifikasi dari system IT ”.
5).V-Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
6).V-Model terlalu fleksibel dalam arti ada beberapa activity dalam V-Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.


3. Simple Interaction Design Model

Simple interaction design model merupakan sebuah model pengembangan software yang sederhana. Karakteristik dari model Simple interaction design adalah proses interactive design secara ekplesit antara penggabungan dari keterlibatan pengguna, iterasi, kriteria usability tertentu. Berikut ini merupakan gambar tahapan dari model Simple interaction design :

Hasil gambar untuk A simple interaction design model
                     gambar 3: metode simple interaction design

Penjelasan dari berbagai tahapan yang terdapat pada model Simple interaction design :

1. Identify needs/Establish requirement : 
pada tahap ini, kita menerima masukkan dari satu titik, lalu di identifikasi apa saja kebutuhannya dan apakah sesuai dengan kebutuhannya. Sebelum menetapkan Establish requirement ada beberapa hal yang harus dipahami yaitu siapa penggunanya, dan apa tujuan yang mereka inginkan ketika menggunakan software yang akan rancang/dikembangkan ini.

2. Design/(Re) Design : 
pada tahap ini dilakukan desain dan alternatif desain software dari kebutuhan yang diperlukan dan sesuai dengan persyaratan yang ditetapkan (dapat dengan meilhat desain orang lain sebagai referensi yang berguna). sedangkan Redesign adalah melakukan desain ulang dikarenakan hasil sebelumnya tidak sesuai dengan kebutuhan atau tidak sesuai dengan hasil evaluasi akhir.

3. Build interactive versions : 
tahapan ini membuat sebuah prototype desain interaktif yang mana dapat memiliki fungsi terbatas. Sehingga penggembang dapat berkomunikasi dengan pengguna dengan mengujicobakannya. Jika terdapat design yang memiliki kesalahan/kekurangan/belum ada maka proses akan kembali ketahapan Redesign.

4. Evaluate : 
tahapan ini, tahapan dimana pengguna mengevaluasi terhadap software yang telah di buat. Jika terdapat kekeliruan dari segi design maka tahapan akan kembali kepada tahap Redesign. Jika kesalahan terjadi karena kesalahan identifikasi kebutuhan maka akan kembali ketahapan Identify needs/Establish requirements. Jika telah sesuai kebutuhan pengguna maka ini akan menjadi final project.
Jika dilihat dari tahapan diatas, maka dapat disimpulkan bahwa model Simple interaction design memiliki 3 (tiga) prinsip yaitu :
a). Melibatkan pengguna pada proses design dan evaluation.
b).Tentukan kriteria dari quantifiable & measurable usability.
c). Akan terjadinya iterasi yang tidak dapat di hindari.


4. Star Lifecycle Model (Hartson & Hix, 1989)


Model Star life cycle diusulkan oleh Harton dan Hix di akhir 1980-an, sebagai hasil pengamatan yang luas dari pengembang di lingkungan real-time (Helms 2001).
Model ini merupakan model yang bersifat elastis tidak seperti model waterfall yang bersifat sangat kaku. Model Star life cycle memiliki karakteristik yaitu melakukan pengujian secara terus-menerus, hal ini disebabkan karena semua tahapan selalu di lakukan evaluasi. Berikut ini gambaran dari tahapan model Star life cycle :
star-model
       
                                                  gambar 4: star lifencyle model



a) Task analysis/Functional analysis : 
tahapan ini, akan melakukan functional analysis dari input yang di berikan yang kemudian akan dilakukan evaluation.

b) Requrements/Specification 
tahapan ini, akan mengumpulkan informasi terkait dengan kebutuhan dan segala sesuatu yang bersangkutan dengan software yang akan dikembangkan, lalu dilakukan tahapan evaluation.

c) Conceptual design/Formal design representation : 
tahapan ini akan mendesain sebuah desain konseptual dari software yang akan dikembangkan bersadarkan semua inputan yang masuk ketahapan ini. Kemudian dilakukan tahapan evaluation.

d) Prototyping : 
Sama halnya seperti tahapan pada Simple interaction design model. dimana prototype merupakan desain interaktif yang memiliki fungsi terbatas yang akan di ujicobakan kepada pengguna lalu melakukan tahap evaluation.

e) Implementation 
tahapan ini merupakan tahapan dimana software diimplementasikan dan digunakan oleh pengguna lalu dilakukannya tahap evaluation.

f) Evaluation : 
tahapan ini adalah melakukan evaluasi terhadap setiap tahapan yang menggunakan tahapan ini untuk melihat apakah hal yang dilakukan pada tahapan sebelumnya telah sesuai dengan kebutuhan terbaru dari pengguna lalu memberikan feedback terhadap tahapan sebelumnya.



sumber: 

http://softwaretestingfundamentals.com/unit-testing/


Tidak ada komentar:

Posting Komentar

Life Cycle Software

Penjelasan Tentang Model Life Cycle Software Model Pada Life Cycle Software Model siklus pada perangkat lunak sebenarnya sangatlah...