PENGENALAN Perancangan Perangkat Lunak (Software Engineering) Bertalya Program Pascasarjana Univesitas Gunadarma
Perangkat Lunak (Software) z
z z
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, 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 z z
z
z
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 menggunakan sumber daya sistem, seperti memory & processor Usability; perangkat lunak harus berguna bagi pengguna, mempunyai interface & dokumentasi yang sesuai dengan pengguna Pengenalan
3
Software Engineering z
Merupakan disiplin ilmu engineering yg memperhatikan semua aspek pembuatan perangkat lunak dari tahap awal spesifikasi s.d. pemeliharaan sistem
z
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) perangkat lunak
z
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 z
60 % terletak pada biaya pembuatan, dan 40 % pada biaya testing, sedangkan pada software yg customised, biaya evolusi lbh besar drpd biaya pembuatan
z
Metode software engineering merupakan pendekatan terstruktur ke pembuatan software termasuk model sistem, notasi, aturan, rekomendasi pembuatan & penuntun proses. Contoh :
z
Structured Analysis Object-oriented Model Unified Modelling Language (UML) Pengenalan
5
Penyelesaian Masalah COMPUTER SCIENCE
Theories
CUSTOMER
Computer Functions
Problem
SOFTWARE ENGINEERING Tools and Techniques to Solve Problem Pengenalan
6
Proses Perangkat Lunak z z
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 z
Merupakan representasi sederhana dari proses per. lunak, termasuk - aktifitas2 proses per. lunak - peranan orang2 yang terlibat
z
Tipe2 model proses per. lunak : 1. 2. 3.
workflow model : menggambarkan urutan aktifitas proses software data flow model : menggambarkan aktifitas yang mentransformasikan data role / action model : menggambarkan aktifitas & peranan orang2 yang terlibat Pengenalan
8
Model Proses (lanj.) z
Model2 proses perangkat lunak al: z Waterfall Tahap spesifikasi dan pembuatan yang terpisah z Evolutionary development Tahap spesifikasi dan pembuatan yang disisipkan z Formal transformation Model sistem matematis yg ditransformasikan ke implementasi. z
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 z z
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
Outline description
Specification
Initial version
Development
Intermediate versions
Validation
Final version
Pengenalan
12
Evolutionary Development z
z
Masalah z Proses tidak terlihat jelas z Sistem tidak terstruktur z Dibutuhkan keahlian khusus (dalam pembuatan prototype) Dapat diaplikasikan pada z Sistem interaktif yg kecil atau medium z Bagian kecil dari sistem yg besar (mis. antarmuka untuk pengguna) z Short-lifetime systems Pengenalan
13
Formal Systems Development z
Didasarkan pada transformasi spesifikasi secara matematis ke program
Pengenalan
14
Formal Systems
Requirements definition
Formal specification
Formal transformation
Pengenalan
Integration and system testing
15
Formal Transformations Formal transformations T3 T2
T1
Formal specification
R1
P1
Executable program
R3
R2
P3
P2
T4
P4
Proofs of transformation correctness
Pengenalan
16
Formal Systems Development z
z
Masalah z Dibutuhkan pelatihan dan keahlian khusus z Sulit menspesifikasikan secara formal beberapa aspek sistem sep, antarmuka pengguna Dapat diaplikasikan z Sistem kritis dimana diperlukan aspek keamanan sebelum sistem dioperasikan
Pengenalan
17
Reuse-oriented Development z
z
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
Pengenalan
System validation
19
Proses Iterasi z
z z
Kebutuhan dari sistem selalu berubah2 atau berevolusi sehingga iterasi proses dari tahap sebelumnya diperlukan Iterasi dapat diaplikasikan pada model proses yg general Dua pendekatan z Incremental development z Spiral development
Pengenalan
20
Incremental Development z
z
z
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
Develop system increment
Design system architecture
Assign requirements to increments
Integrate increment
Validate increment
Validate system Final system
System incomplete
Pengenalan
22
Kelebihan : Incremental Development z z
z z
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 z z z
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
Evaluate alternatives identify, resolve risks Risk analysis Risk analysis Risk analysis
REVIEW Requirements plan Life-cycle plan
Plan next phase
Prototype 3
Prototype 2 Risk analysis Prototype 1
Operational protoype
Simulations, models, benchmarks Concept of Operation
S/W requirements
Development plan
Requirement validation
Integration and test plan
Design V&V
Product design
Detailed design
Code Unit test
Integration test Acceptance test Develop, verify Service next-level product
Pengenalan
25
Penspesifikasian Perangkat Lunak z
z
Proses untuk menentukan layanan dan batasan yang dibutuhkan dalam pengoperasian dan pembuatan sistem Proses : z Studi kelayakan z Analisis kebutuhkan z Spesifikasi kebutuhan z Validasi kebutuhan
Pengenalan
26
Proses Penspesifikasi Kebutuhan Feasibility study
Requirements elicitation and analysis
Requirements specification
Requirements validation
Feasibility report
System models
User and system requirements
Requirements document
Pengenalan
27
Desain & Implementasi Perangkat Lunak z z
z
Proses konversi spesifikasi sistem ke sistem yang akan dijalankan Desain per. lunak z Desain struktur per. lunak berdasarkan spesifikasi Implementasi z Menterjemahkan struktur ke dalam program
Pengenalan
28
Aktifitas Desain z z z z z z
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 z z z
Pendekatan sistematis untuk melakukan desain perangkat lunak Desain didokumentasikan sebagai kumpulan model2 grafis Model2 al: z Data-flow model z Entity-relation-attribute model z Structural model z Object models
Pengenalan
31
Pemrograman z z
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
Pengenalan
Re-test program
33
Proses Pengujian Unit testing Module testing Sub-system testing
System testing
Acceptance testing
Component testing
Integration testing
Pengenalan
User testing 34
Tahap2 Pengujian
Requirements specification
System specification
Acceptance test
Detailed design
Sub-system integration test plan
System integration test plan
Acceptance test plan
Service
System design
System integration test
Pengenalan
Module and unit code and tess
Sub-system integration test
35