Pages

Senin, 19 November 2012

SDLC (System Development Life Cycle)

SDLC (System Development Life Cycle) adalah serangkaian aktivitas yang dilaksanakan oleh profesional dan pemakai sistem informasi untuk mengembangkan dan mengimplementasikan sistem informasi.

Gambar 1. Tahapan dalam SDLC

Bentuk model SDLC yang lainnya yaitu:

1. Iterative Model
Metode yang merupakan pengembangan dari prototyping model dan digunakan ketika requirement dari software akan terus berkembang dalam tahapan-tahapan pengembangan aplikasi tersebut. Sedikit pengertian tentang requirement software dari
developer yang diterapkan pada tahap pertama iterasi, akan mendapatkan tanggapan dari user. Ketika requirement menjadi jelas, tahapan iterasi selanjutnya akan dilaksanakan.

Beberapa tipe dari Iterative Model di antaranya :
a. Spiral Model
Dikembangkan dari sifat iterative prototyping model dan sifat linier waterfall model. Merupakan model yang ideal bagi software yang memiliki bermacam jenis.
Dalam tiap iterasinya, proses software development mengikuti tahap-tahap fase linier, dan dalam akhir tiap fasenya, user mengevaluasi software tesrebut dan memberikan feed back. Proses iterasi berlangsung terus dalam pengembangan software tersebut.

b. Win Win Spiral Model
Dalam win win spiral model yang merupakan ekstensi dari spiral model, tim pengembang dan pelanggan akan melakukan diskusi dan negosiasi terhadap requirement-nya. Disebut win win karena merupakan situasi kemenangan antara tim pengembang dan pelanggan. Yang membedakan antara win win spiral model dan spiral model adalah setelah selesai mendapatkan feed back dari pelanggan, tim pengembang aplikasi dan pelanggan akan kembali melakukan negosiasi untuk perkembangan aplikasi tersebut.

c. Component Based Development Model
Dalam metode component based development ini, menitik beratkan pada penggunaan kembali dari komponen-komponen yang dibangun dalam sebuah aplikasi. Komponen di sini, dapat berupa fungsi tertentu atau sebuah kelompok yang berhubungan
dengan fungsi tertentu.

2. V Model
Teknik V model sering disebut sebagai pengembangan dari teknik waterfall. V untuk verifikasi dan validasi dan merupakan model standar yang banyak dipakai di negara-negara Eropa seperti standar untuk proyek pertahanan dan administrasi federal di Jerman.

2.1 Desain Sistem:
Desain sistem adalah fase di mana insinyur sistem menganalisis dan memahami bisnis dari sistem yang diusulkan dengan mempelajari dokumen persyaratan pengguna. Mereka mengetahui kemungkinan dan teknik dimana kebutuhan pengguna dapat diimplementasikan. Jika salah satu persyaratan yang tidak layak, pengguna informasi dari masalah. Sebuah resolusi ditemukan dan dokumen persyaratan pengguna diedit sesuai.
Spesifikasi perangkat lunak dokumen yang berfungsi sebagai cetak biru untuk tahap pengembangan yang dihasilkan. Dokumen ini berisi organisasi sistem umum, struktur menu, struktur data dll juga dapat memegang skenario bisnis contoh, jendela sampel, laporan untuk pemahaman yang lebih baik. Dokumentasi teknis lainnya seperti diagram entitas, kamus data juga akan diproduksi di fase ini. Dokumen-dokumen untuk sistem
pengujian disiapkan di fase ini.
2.2 Arsitektur Desain:
Fase desain arsitektur komputer dan arsitektur perangkat lunak juga dapat disebut sebagai desain tingkat tinggi. The dasar dalam memilih arsitektur adalah bahwa ia harus menyadari semua yang biasanya terdiri dari daftar modul, fungsi singkat setiap modul, antarmuka hubungan mereka, ketergantungan, tabel database, diagram arsitektur, rincian teknologi dll desain pengujian integrasi dilakukan dalam hal ini fase.
2.3 Modul Desain:
Tahap desain modul juga dapat disebut sebagai tingkat rendah desain. Sistem yang dirancang dipecah menjadi unit yang lebih kecil atau modul dan masing-masing dijelaskan sehingga pemrogram dapat mulai coding secara langsung. Desain Dokumen tingkat rendah atau spesifikasi program yang akan berisi logika fungsional rinci modul, dalam pseudo code-tabel database, dengan semua elemen, termasuk jenis dan ukuran. Desain unit uji dikembangkan di tahap ini.


2.4. Keuntungan menggunakan teknik V model:
(a) Merupakan model pengembangan terstruktur.
(b) Setiap fase dapat diimplementasikan dengan dokumentasi yang detail dari fase sebelumnya.
(c) Aktivitas pengujian dapat dimulai di awal proyek, sehingga mengurangi waktu proyek.
-Kelemahan menggunakan teknik V model adalah dokumentasi harus cukup detail
agar fase selanjutnya dapat berjalan dengan baik.


                     Gambar 2. Tahapan V Model

3. Formal Method
Teknik formal method adalah teknik yang mengandalkan perhitungan matematika dalam setiap prosesnya. Hanya digunakan pada sistem yang sangat memperhatikan keamanan atau keselamatan dari pengguna. Contoh penggunaan teknik ini adalah aerospace engineering.
3.1. Keuntungan menggunakan teknik formal method adalah meminimalkan resiko dengan adanya perhitungan komputasi.
3.2 Sedangkan kerugiannya adalah:
(a) Biaya Tinggi.
(b) Kompleks
(c) Tidak Umum untuk Proyek Software pada umumnya

4.Fish Model
Ini adalah pengembangan model sebuah perusahaan yang berorientasi proses ini. lebih dulu waktu
Salah satu model lama dan mahal dapat yakin bahwa baik verifikasi dan validasi dilakukan paralley oleh tim terpisah di setiap tahapan Model. Sehingga ada dua laporan yang dihasilkan oleh setiap akhir fase satu untuk validasi dan satu untuk verifikasi. Karena semua tahapan kecuali pengiriman terakhir dan tahap pemeliharaan ditutupi oleh paralel dua proses struktur model ini tampak seperti tengkorak antara dua garis sejajar karena itu nama model ikan. 

4.1. keuntungan:
Ini hasil proses yang ketat dalam produk kualitas yang luar biasa. 

Sehingga salah satu tujuan penting tercapai. 
4.2 kekurangan: Memakan waktu dan mahal.

5. Agile Software Development / Agile methods
Agile methods adalah salah satu dari beberapa metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.
Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
Agile Method juga dapat diartikan sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Metode ini jg merupakan membuang beberapa tahapan yang tidak mempunyai nilai/value dan menekankan pada pengembangan sederhana dan iterative/berulang. Beberapa jenis Agile SDLC antara lain Extreme Programming, Kanban, Scrum, DSDM, FDD, OpenUP, dll.

5.1. Prinsip Agile Software Development
Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:
1.   Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.
2.   Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
3.   Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa bulan.
4.   Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.
5.   Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
6.   Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
7.   Software yang berfungsi adalah ukuran utama dari kemajuan proyek
8.   Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
9.   Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
10. Kesederhanaan penting
11. Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:
1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

5.2. Kelebihan dari Agile Method
  1. Meningkatkan kepuasan kepada klien
  2. Pembangunan system dibuat lebih cepat
  3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
  4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil
5.3. Metode Kerja Agile
Dalam proses pengembangan agile, jika suatu proyek pengembangan software dikerjakan dengan menggunakan metode Agile, maka selama waktu  pengerjaannya akan selalu dijumpai proses pengembangan yang dilakukan berulang. Setiap perulangan (iterasi) meliputi berbagai kegiatan yang wajib dilakukan dalam proyek pengembangan software itu sendiri yaitu :
1. Perencanaan
2. Requirements Analysis : Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur. Seorang sistemanalis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirment  atau bisa dikatakan sebagaidata yang berhubungan dengan keinginan
user dalam pembuatan sistem. Dokumen ini yang akan menjadi acuan sistem analis untuk menterjemahkan ke dalam bahasa pemprogram.
3. Desain : Proses desain akan menerjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail(algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen yang akan digunakan proggrammer untuk melakukan aktivitas pembuatan sistemnya.
4. Coding : Coding merupakan penerjemahan design dalam bahasa yangbisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan ini yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem.Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini.
5. Testing :adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki
6. Dokumentasi
Gambar 3. Tahapan kerja Metode Agile

Gambar 4. Model Agile Software Development

Gambar 5. Model Lain dari Model Agile Software Development

Bagian dari metode agile software development adalah: Extreme Programming
Keuntungan menggunakan teknik extreme programming.
(a) Menjalin Komunikasi yang Baik dengan Klien.
(b) Meningkatkan Komunikasi dan Sifat Saling Menghargai antar Developer.

Kelemahan menggunakan teknik extreme programming:
(a) Developer harus selalu siap dengan perubahan karena perubahan selalu diterima.
(b) Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga)







Nama Kelompok 
Kelas 12.3B.27

   Marcella Marta            (12113397)
       Siti Mutmainah               (12113966)
       Moh. Effendi Zarkasih   (12113997)
      Fadilah Akbar             (12114487)
      Unggul Hadi Saputra     (12115992)
       Herbert Putra Hadissa      (12116251)