PENGENALAN Perancangan Perangkat Lunak (Software Engineering) Bertalya Program Pascasarjana Univesitas Gunadarma
Perangkat Lunak (Software) Merupakan program aplikasi berikut dengan dokumentasi dan data yang dibutuhkan agar program dapat beroperasi secara benar Software system terdiri atas : program2, file2, dokumentasi sistem, dokumentasi pengguna 2 tipe produk perangkat lunak : 1. generic; ; software stand-alone, alone, dibuat suatu perusahaan & dijual di pasar terbuka Cth : wordprocessor,, database 2. customised: dibuat berdasarkan permintaan klien Cth : sistem pengaturan lalulintas udara Pengenalan 2
Karakteristik Perangkat Lunak yang Baik Maintainability; perangkat lunak dimungkinkan untuk berevolusi sesuai kebutuhan perubahan klien Dependability; mencakup reliability, security & safety Perangkat lunak tidak mengalami kerugian fisik & ekonomi pada saat terjadi kerusakan sistem Efficiency; perangkat lunak tidak boros dalam meng- gunakan sumber daya sistem, seperti memory & processor Usability; perangkat lunak harus berguna bagi pengguna, mempunyai interface & dokumentasi yang sesuai dengan pengguna Pengenalan 3
Software Engineering Merupakan disiplin ilmu engineering yg memperhatikan semua aspek pembuatan perangkat lunak dari tahap awal spesifikasi s.d. pemeliharaan sistem Perbedaan software engineering dgn computer science adalah bahwa computer science lebih memperhatikan teori & metode komputerisasi, sedangkan software engineering menyangkut masalah praktikal pembuatan dan delivery(pengiriman (pengiriman) perangkat lunak Software engineering merupakan bagian dari system engineering, dimana system engineering memperhatikan semua aspek pembuatan sistem berbasis komputer, termasuk perangkat keras,, p. lunak & proses. Pengenalan 4
Biaya & Metode Software Engineering 60 % terletak pada biaya pembuatan, dan 40 % pada biaya testing, sedangkan pada software yg customised, biaya evolusi lbh besar drpd biaya pembuatan Metode software engineering merupakan pendekatan terstruktur ke pembuatan software termasuk model sistem, notasi, aturan, rekomendasi pembuatan & penuntun proses. Contoh : Structured Analysis Object-oriented Model Unified Modelling Language (UML) Pengenalan 5
Penyelesaian Masalah COMPUTER SCIENCE CUSTOMER Theories Computer Functions Problem SOFTWARE ENGINEERING Tools and Techniques to Solve Problem Pengenalan 6
Proses Perangkat Lunak Merupakan sekumpulan aktifitas dan hasil2 yang bertujuan membuat suatu produk perangkat lunak Aktifitas2nya al: 1. Software specification : pendefinisian fungsi & konstrain pengoperasian per. lunak 2. Software development : pembuatan per. lunak sesuai spesifikasi 3. Software validation: validasi per. lunak untuk menjamin per. lunak bekerja sesuai dengan keinginan klien 4. Software evolution : per. lunak harus berevolusi sesuai dengan keinginan klien Pengenalan 7
Model Proses Perangkat Lunak Merupakan representasi sederhana dari proses per. lunak, termasuk - aktifitas2 proses per. lunak - peranan orang2 yang terlibat Tipe2 model proses per. lunak : 1. workflow model : menggambarkan urutan aktifitas proses software 2. data flow model : menggambarkan aktifitas yang mentransformasikan data 3. role / action model : menggambarkan aktifitas & peranan orang2 yang terlibat Pengenalan 8
Model Proses (lanj.) Model2 proses perangkat lunak al: Waterfall Tahap spesifikasi dan pembuatan yang terpisah Evolutionary development Tahap spesifikasi dan pembuatan yang disisipkan Formal transformation Model sistem matematis yg ditransformasikan ke implementasi. Integration from reusable components Sistem dipadukan dengan komponen2 yg ada Pengenalan 9
Waterfall Model Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Pengenalan 10
Masalah Yang Dihadapi Kebutuhan klien selalu berubah2, perlu dilakukan pengulangan pada tahap sebelumnya Maka,, model ini hanya sesuai dengan kebutuhan yang dapat dipahami dengan baik Pengenalan 11
Evolutionary development Concurrent activities Specification Initial version Outline description Development Intermediate versions Validation Final version Pengenalan 12
Evolutionary Development Masalah Proses tidak terlihat jelas Sistem tidak terstruktur Dibutuhkan keahlian khusus (dalam pembuatan prototype) Dapat diaplikasikan pada Sistem interaktif yg kecil atau medium Bagian kecil dari sistem yg besar (mis. antarmuka untuk pengguna) Short-lifetime systems Pengenalan 13
Formal Systems Development Didasarkan pada transformasi spesifikasi secara matematis ke program Pengenalan 14
Formal Systems Requirements definition Formal specification Formal transformation Integration and system testing Pengenalan 15
Formal Transformations Formal transformations T1 T2 T3 T4 Formal specification R1 R2 R3 Executable program P1 P2 P3 P4 Proofs of transformation correctness Pengenalan 16
Formal Systems Development Masalah Dibutuhkan pelatihan dan keahlian khusus Sulit menspesifikasikan secara formal beberapa aspek sistem sep, antarmuka pengguna Dapat diaplikasikan Sistem kritis dimana diperlukan aspek keamanan sebelum sistem dioperasikan Pengenalan 17
Reuse-oriented Development Didasarkan pada penggunaan sistem kembali secara sistematis, dimana sistem diintegrasikan dari komponen2 yg ada atau sistem COTS (Commercial-off-the-shelf) Penggunaan sistem ini masih terbatas Pengenalan 18
Reuse-oriented Development Requirements specification Component analysis Requirements modification System design with reuse Development and integration System validation Pengenalan 19
Proses Iterasi Kebutuhan dari sistem selalu berubah2 atau berevolusi sehingga iterasi proses dari tahap sebelumnya diperlukan Iterasi dapat diaplikasikan pada model proses yg general Dua pendekatan Incremental development Spiral development Pengenalan 20
Incremental Development Proses pembuatan dan pengiriman dibagi2 menjadi proses penambahan sebagai bagian fungsionalitas yang dibutuhkan Kebutuhan pengguna menjadi prioritas. Kebutuhan dgn prioritas tertinggi dimasukkan sebagai penambahan di awal proses Penambahan2 ini akan terus berlanjut dan berevolusi Pengenalan 21
Incremental Development Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment System incomplete Integrate increment Validate system Final system Pengenalan 22
Kelebihan : Incremental Development Fungsionalitas sistem selalu tersedia cepat Penambahan terakhir dianggap sebagai prototype yg dapat digunakan utk menentukan kebutuhan2 pada penambahan berikutny Resiko terhadap kesalahan proyek secara global kecil Perlu pengujian terus menerus Pengenalan 23
Spiral Development Proses digambarkan dalam bentuk spiral dimana setiap loop menggambarkan tahap pemrosesan Tidak ada tahap yg fiks, tetapi bergantung pada apa yang dibutuhkan Resiko yg ditemukan diselesaikan selama proses Pengenalan 24
Spiral Model Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation S/W requirements Requirement validation Design V&V Service Acceptance test Prototype 3 Operational protoype Simulations, models, benchmarks Product design Integration test Evaluate alternatives identify, resolve risks Code Unit test Detailed design Develop, verify next-level product Pengenalan 25
Penspesifikasian Perangkat Lunak Proses untuk menentukan layanan dan batasan yang dibutuhkan dalam pengoperasian dan pembuatan sistem Proses : Studi kelayakan Analisis kebutuhkan Spesifikasi kebutuhan Validasi kebutuhan Pengenalan 26
Proses Penspesifikasi Kebutuhan Feasibility study Feasibility report Requirements elicitation and analysis System models Requirements specification User and system requirements Requirements validation Requirements document Pengenalan 27
Desain & Implementasi Perangkat Lunak Proses konversi spesifikasi sistem ke sistem yang akan dijalankan Desain per. lunak Desain struktur per. lunak berdasarkan spesifikasi Implementasi Menterjemahkan struktur ke dalam program Pengenalan 28
Aktifitas Desain Desain arsitektural Spesifikasi abstrak Desain antarmuka pengguna Desain komponen Desain struktur data Desain algoritma Pengenalan 29
Proses Desain Requirements specification Design activities Architectural design Abstract specification Interface design Component design Data structure design Algorithm design System architecture Software specification Interface specification Component specification Data structure specification Algorithm specification Design products Pengenalan 30
Metode Desain Pendekatan sistematis untuk melakukan desain perangkat lunak Desain didokumentasikan sebagai kumpulan model2 grafis Model2 al: Data-flow model Entity-relation relation-attribute attribute model Structural model Object models Pengenalan 31
Pemrograman Menterjemahkan desain ke dalam program Pemrogram harus melakukan pengujian program untuk menangani kesalahan2 yg timbul dalam program Pengenalan 32
Proses Debugging Locate error Design error repair Repair error Re-test program Pengenalan 33
Proses Pengujian Unit testing Module testing Sub-system testing System testing Acceptance testing Component testing Integration testing User testing Pengenalan 34
Tahap2 Pengujian Requirements specification System specification System design Detailed design Acceptance test plan System integration test plan Sub-system integration test plan Module and unit code and tess Service Acceptance test System integration test Sub-system integration test Pengenalan 35