- ini adalah paradigma yang tertua. model ini bagus dipilih apabila semua kebutuhan sudah siap jauh sebelum sistemini dimulai.
- Kelebihan:
- mudah diaplikasikan
- cocok untuk produk yang sudah jelas kebutuhannya diawal sehingga minim kesalahannya.
- Kekurangan:
- sulit untuk melakukan perubahan
- tidak fleksibel
- Variasi dari waterfall model yang berhubungan dengan aksi aksi yang terasosiasi dengan communication, modelling, construction, activities.
- awalnya team bergerak ke bawah, setelah itu kekanan.
- Kelebihan:
- sangat fleksibel
- dikembangkan dan di-maintain oleh publik
- Kekurangan:
- hanya bisa digunakan sekali dalam suatu proyek
- terlalu fleksibel dalam arti ada beberapa activity terlalu abstrak
- melakukan 1 model apabila ditengah jalan mendapat ide baru maka ide tersebut menjadi versi lain, versi selanjutnya framework proses dimulai dari awal.
- bila kebutuhan awal telah didefinisikan dengan baik tetapi secara keseluruhan perkembangan masih menghalangi proses linier.
- biasanya increment pertama adalah inti produk dengan banyak tambahan (modifikasi user).
- Kelebihan:
- resiko lebih minim
- hasil dapat lebih baik secara bertahap
- Kekurangan:
- ada penambahan staff apabila terjadi increment terus menerus.
- bila ada perubahan harus dikerjakan sebagai produk baru.
- software/sistem berubah dari waktuke waktu. biasanya produk inti sudah dipahami denganbaik tapi detil dan perluasannya belum didefinisikan.
- Ada dua yaitu:
1. Prototyping
- digunakan ketika user sudah bisa mendefinisikan kebutuhan umum tetapii, tidak bisa secara detil menyatakan kebutuhan fungsi, fitur. pengembang tidak yakin dengan efisiensi algoritmanya.
- proyek 60-90 hari menggunakan prototype.
2. Spiral
- prototype yang sudah dikontrol dan waterfall dengan aspek sistematisnya
- semakin berputa semakin berkembang sistemnya,ada tahapan untuk menjamin kenyamanan dan kepuasan, ada analisa terhadap resiko.
- untuk skala yang besar dimana tiap proses ada kemajuannya.
- Kelebihan:
- Kualitas software yang dihasilkan cenderung lebih baik dengan kompleksitas yang sangat tinggi
- sesuai dengan proyek yang bersifat ‘dapat dikembangkan secara terus menerus’
- Kekurangan:
- tidak cocok untuk proyek skala besar
- sistem yang tidak bisa di modularisasi tidak cocok untuk model ini
- Kerangka aktivitas, aksi dan tugas yang diperlukan untuk membangun software berkualitas tinggi
- Menentukan pendekatan yang diambil untuk software yang direkayasa
- Diadaptasi secara kreatif, berpengetahuan sehingga rekayasa perangkat lunak layak dibuat dan sesuai permintaan pasar
B. Process Flow
- Mendeskripsikan bagaimana kelima aktivitas framework, aksi dan tugas terorganisir sepanjang waktu
- Linear process flow melakukan setiap aktivitas framework secara urut diawali dengan komunikasi diakhiri dengan penyebaran
- Parallel process flow meakukan satu dari aktivitas secara parallel dengan aktivitas lain
C. Task Set
- Setiap aksi rekayasa software terkait aktivitas framework dapat direpresentasi oleh task set yang berbeda
- Projek kecil tidak memerlukan task sets yang sebesar dan sedetil sepeerti tim projek yang komplek
- task sets diadaptasi untuk menentukan kebutuha spesifik dari software project karakteristik tim projek
D. Process Patterns
- Metode untuk menentukan solusi projek dalam konteks proses software
- Tim software dapat menggabungkan pattern untuk merancang proses yang sesuai kebutuhan dari spesifik projek
E. Process Pattern Template
- nama pola yang berarti
- kekuatan (forces)
- tipe:
- pola tingkatan
- pola tugas
- pola fase
- konteks awal
- solusi
- konteks yang dihasilkan
- polayang berkaitan
- kegunaan/contoh
F. Prescriptive Process Models
- awalnya bertujuan menertibkan kekacauan perkembangan software
- mereka membawa ke pekerjaan software engineering dan menyediakan panduan yang beralasan kepada tim software
- mereka belum menyediakan jawaban pasti untuk masalah perkembangan software dalam lingkungan perubahan komputasi
G. Software Process Models
- Waterfall model (siklus)
- Incremental model
- Evolutionary model
-spiral model
- Concurrent development model
H. Specialized Process Models
- Component-based development
- Formal method model
- Aspect-oriented software development
I. Unified Process
- use-case driven, arsitektur sentris, perulangan dan incremental proses software
- usaha menggambarkan fitur terbaik dari software proses tradisional model dan mengimplementasi fitur-fitur perkembangan software cerdas
- fase:
-fase penjelasan
-fase konstruksi
-fase transisi
-fase produksi
J. Personal Software Process (PSP)
- Menekankan pengukuran personal dari produk kerja dan kualitas produk kerja
- Menekankan kepentingan identifikasi eror lebih dini dan memahami tipe eror
- Aktiviti framework :
-desain high-level
-review desain high-level
–pengembangan
–postmortem
K. Team Software Process
- Objektif
-mempercepat peningkatan proses software dengan membuat CCM level 5
-menyediakan panduan peningkatan ke organisasi high-maturity
-memfasilitasi pengajaran universitas mengenai skill tim industry
- skrip aktivitas projek
-desain high-level
-implementasi
-integrasi dan system testing
-postmortem
L. Process Technology Tools
- Digunakan untuk mengadaptasi model proses untuk digunakan oleh tim projek software
- Memperbolehkan organisasi untuk membangun model otomatis dari proses framework yang lazim, task sets, dan umbrella activities.
- Otomat model tersebut dapat digunakan untuk menentukan aliran kerja dan memeriksa struktur proses alternative
- Tools dapat digunakan untuk mengalokasi, monitor dan mengontrol semua software engineering task sebagai bagian dari model proses
A. Software
- Software adalah sebuah produk dan sebuah kendaraan untuk pengiriman sebuah produk
- Software adalah rekayasa, tidak diproduksi
- Software system
- Software aplikasi
- Engineering atau scientific software
- Product-line software
- Web-applications
- Software kecerdasan buatan
- Open-world computing
- Netsourcing
- Open source
- Software harus diadaptasi untuk memenuhi kebutuhan lingkungan new computing atau teknologi
- Software harus ditingkatkan untuk mengimplementasi keperluan new business
- Software harus diperluas supaya dapat diperbarui dengan komponen sistem modern
- Software harus dirombak supaya viable dalam lingkungan network
- Masalah harus dipahami sebelum softare solusi dikembangkan
- Desain sangat penting
- Software harus dapat dipelihara
- Rekayasa Software meliputi proses, teknik manajemen, metode teknik, dan penggunaan tools.
- Komunikasi
- Perencanaan
- Pemodelan
- Konstruksi
- Penyebaran
- Software project tracking and control
- Pengelolaan resiko
- Jaminan kualitas software
- Technical reviews
- Pengukuran
- Manajemen konfigurasi software
- Manajemen reusability
- Persiapan produk kerja dan produksi
- Aliran keseluruhan dan tingkat saling ketergantungan antara tugas-tugas
- Tingkat sampai mana tugas yang ditentukan dalam tiap framework activity
- Tingkat sampai mana produk diidentifikasi dan diperlukan
- Cara aktivitas jaminan kualitas yang mana yang diaplikasikan
- Cara aktivitas projek tracking dan control yang mana yang diaplikasikan
- Tingkat detil keseluruhan dan ketegasan deskripsi proses
- Tingkat stakeholder yang terlibat dalam projek
- Level otonomi yang diberikan ke tim projek
- Tingkatan organisani tim dan peran yang diresepkan
- Memahami masalah (komunikasi dan analisis)
- Merencanakan solusi (software design)
- Menjalankan rencana (coding)
- Memeriksa keakuratan hasil (testing dan jaminan kualitas)
- Siapakah stakeholder-nya?
- Apa saja fungdi san fitur yang diperlukan untuk menyelesaikan masalah?
- Apakah mungkin untuk membuat masalah yang lebih kecil menjadi lebih mudah dimengerti?
- Dapatkah model grafik analisis dibuat?
- Pernahkan melihat masalah yang sama sebelumnya?
- Apakan masalah yang sama tersebut telah diselesaikan?
- Dapatkah subproblem yang bisa diselesaikan dengan segera didefinisikan?
- Dapatkah sebuah model desain diciptakan?
- Apakah solusi sesuai dengan rencana?
- Apakah setiap komponen solusi terbukti benar?
- Apakah mungkin untuk mengetes setiap bagian komponen dari solusi?
- Apakah solusi memberikan hasil yang sesuai data, fungsi-fungsi, dan fitur yang dibutuhkan?
- Software ada untuk memberikan nilai untuk usernya
- Keep it simple, Stupid (KISS)
- Visi yang jelas sangat penting untuk keberhasilan setiap projek software
- Selalu tentukan, desain, dan implementasikan, mengetahui orang lain akan mengerti apa yang telah anda lakukan untuk melaksanakan tugasnya.
- Terbuka untuk untuk perubahan, jangan mengisolasi diri sendiri
- Merencanakan penggunaan kembali, meminimalisir harga dan menaikkan nilai dari komponen yang dapat digunakan kembali dan system yang memerlukan itu.
- Menempatkan pemikiran yang jelas dan menyeluruh sebelum melakukan action akan membuahkan hasil yang lebih baik.
- Hampir setiap projek software diendapkan untuk kebutuhan bisnis, misalkan memperbaiki cacat system, adaptasi system untuk perubahan lingkungan, memperluas system yang telah ada, membuat sistem baru.
- Seringkali upaya engineering hanya akan sukses, ‘bila’ software yang dibuat untuk projek yang bersangkutan sukses.
- Pasar hanya akan menerima produk yang telah tertanam software di dalamnya sesuai dengan permintaan cutomers.
Tidak ada komentar:
Posting Komentar