PENGENALAN PENGENALAN
Perancangan
Perancangan Perangkat Perangkat Lunak Lunak (Software Engineering)
(Software Engineering)
Bertalya Bertalya Program
Program PascasarjanaPascasarjana Univesitas
Univesitas GunadarmaGunadarma
Perangkat
Perangkat Lunak Lunak ( ( Software Software ) )
zz MerupakanMerupakan program program aplikasiaplikasi berikutberikut dengandengan dokumentasi
dokumentasi dandan data yang data yang dibutuhkandibutuhkan agar agar program
program dapatdapat beroperasiberoperasi secarasecara benarbenar
zz Software systemSoftware system terdiriterdiri atasatas : program2, file2, : program2, file2, dokumentasi
dokumentasi sistemsistem, , dokumentasidokumentasi penggunapengguna
zz 2 2 tipetipe produkproduk perangkatperangkat lunaklunak ::
1. 1. genericgeneric; software stand; software stand-alone, -alone, dibuatdibuat suatusuatu perusahaanperusahaan
&
& dijualdijual didi pasarpasar terbukaterbuka
CthCth : : wordprocessorwordprocessor, database, database
2.2. customised: customised: dibuatdibuat berdasarkanberdasarkan permintaanpermintaan klienklien CthCth : : sistemsistem pengaturanpengaturan lalulintaslalulintas udaraudara
Karakteristik
Karakteristik Perangkat Perangkat Lunak Lunak yang yang Baik Baik
zz MaintainabilityMaintainability; ; perangkatperangkat lunaklunak dimungkinkandimungkinkan untukuntuk berevolusi
berevolusi sesuaisesuai kebutuhankebutuhan perubahanperubahan klienklien
zz DependabilityDependability; ; mencakupmencakup reliabilityreliability, , securitysecurity & & safetysafety Perangkat
Perangkat lunaklunak tidaktidak mengalamimengalami kerugiankerugian fisikfisik & &
ekonomi
ekonomi padapada saatsaat terjaditerjadi kerusakankerusakan sistemsistem
zz EfficiencyEfficiency; perangkat; perangkat lunaklunak tidaktidak borosboros dalamdalam meng-meng- gunakan
gunakan sumbersumber dayadaya sistem, sistem, sepertiseperti memory & memory &
processor processor
zz UsabilityUsability; perangkat; perangkat lunaklunak harusharus bergunaberguna bagibagi pengguna
pengguna, , mempunyaimempunyai interface & dokumentasiinterface & dokumentasi
Software Engineering Software Engineering
zz MerupakanMerupakan disiplindisiplin ilmuilmu engineering ygengineering yg memperhatikanmemperhatikan semua
semua aspekaspek pembuatanpembuatan perangkatperangkat lunaklunak daridari tahaptahap awalawal spesifikasi
spesifikasi s.ds.d. . pemeliharaanpemeliharaan sistemsistem
zz PerbedaanPerbedaan software engineeringsoftware engineering dgndgn computer sciencecomputer science adalah
adalah bahwabahwa computer sciencecomputer science lebihlebih memperhatikanmemperhatikan teoriteori
&
& metodemetode komputerisasikomputerisasi, sedangkan, sedangkan software engineeringsoftware engineering menyangkut
menyangkut masalahmasalah praktikalpraktikal pembuatanpembuatan dandan delivery
delivery(pengiriman(pengiriman) ) perangkatperangkat lunaklunak
zz Software engineeringSoftware engineering merupakanmerupakan bagianbagian daridari system system engineering
engineering, , dimanadimana system engineeringsystem engineering memperhatikanmemperhatikan semua
semua aspekaspek pembuatanpembuatan sistemsistem berbasisberbasis komputerkomputer, , termasuk
termasuk perangkatperangkat keraskeras, p. , p. lunaklunak & proses& proses..
Biaya
Biaya & & Metode Metode Software Engineering Software Engineering
zz 60 % 60 % terletakterletak padapada biayabiaya pembuatanpembuatan, , dandan 40 % 40 % padapada biayabiaya testing, testing, sedangkansedangkan padapada software software ygyg
customised
customised, biaya, biaya evolusievolusi lbhlbh besarbesar drpddrpd biayabiaya pembuatan
pembuatan
zz MetodeMetode software engineeringsoftware engineering merupakanmerupakan pendekatan
pendekatan terstrukturterstruktur keke pembuatanpembuatan software software termasuk
termasuk model model sistem, sistem, notasinotasi, , aturanaturan, , rekomendasirekomendasi pembuatan
pembuatan & & penuntunpenuntun prosesproses..
zz ContohContoh ::
Structured AnalysisStructured Analysis
Object-Object-oriented Modeloriented Model
Penyelesaian
Penyelesaian Masalah Masalah
COMPUTER
SCIENCE CUSTOMER
SOFTWARE ENGINEERING
Theories Computer
Functions
Problem
Tools and Techniques to
Proses
Proses Perangkat Perangkat Lunak Lunak
zz MerupakanMerupakan sekumpulansekumpulan aktifitasaktifitas dandan hasil2 yang hasil2 yang bertujuan
bertujuan membuatmembuat suatusuatu produkproduk perangkatperangkat lunaklunak
zz Aktifitas2nya al:Aktifitas2nya al:
1. 1. Software specificationSoftware specification : pendefinisian: pendefinisian fungsi
fungsi & & konstrainkonstrain pengoperasianpengoperasian per. per. lunaklunak
2. 2. Software developmentSoftware development : : pembuatanpembuatan per. per. lunaklunak sesuai
sesuai spesifikasispesifikasi
3. 3. Software validationSoftware validation: : validasivalidasi per. per. lunaklunak untuk
untuk menjaminmenjamin per. per. lunaklunak bekerjabekerja sesuaisesuai dengan
dengan keinginankeinginan klienklien
Model
Model Proses Proses Perangkat Perangkat Lunak Lunak
zz MerupakanMerupakan representasirepresentasi sederhanasederhana daridari prosesproses per. per.
lunak
lunak, termasuk, termasuk
-- aktifitas2 aktifitas2 prosesproses per. per. lunaklunak -- perananperanan orang2 yang terlibatorang2 yang terlibat
zz Tipe2 model Tipe2 model prosesproses per. per. lunaklunak ::
1. 1. workflow modelworkflow model : menggambarkan: menggambarkan urutanurutan aktifitasaktifitas prosesproses software
software
2. 2. data flow modeldata flow model : : menggambarkanmenggambarkan aktifitasaktifitas yang yang mentransformasikan
mentransformasikan datadata
3.3. role / action modelrole / action model : : menggambarkanmenggambarkan aktifitasaktifitas & & perananperanan orang2 yang
orang2 yang terlibatterlibat
Model
Model Proses Proses ( ( lanj lanj .) .)
zz Model2 Model2 prosesproses perangkatperangkat lunaklunak al:al:
zz WaterfallWaterfall Tahap
Tahap spesifikasispesifikasi dandan pembuatanpembuatan yang terpisahyang terpisah
zz Evolutionary developmentEvolutionary development Tahap
Tahap spesifikasispesifikasi dandan pembuatanpembuatan yang disisipkanyang disisipkan
zz Formal transformationFormal transformation Model
Model sistemsistem matematismatematis ygyg ditransformasikanditransformasikan keke implementasi
implementasi..
zz Integration from reusable componentsIntegration from reusable components Sistem
Sistem dipadukandipadukan dengandengan komponen2 komponen2 ygyg adaada
Waterfall Model Waterfall Model
Requirements definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
Masalah
Masalah Yang Yang Dihadapi Dihadapi
zz KebutuhanKebutuhan klienklien selaluselalu berubah2, berubah2, perluperlu dilakukandilakukan pengulangan
pengulangan padapada tahaptahap sebelumnyasebelumnya
zz MakaMaka, model ini, model ini hanyahanya sesuaisesuai dengandengan kebutuhankebutuhan yang
yang dapatdapat dipahamidipahami dengandengan baikbaik
Evolutionary development Evolutionary development
Validation Final
version
Development Intermediate
versions
Specification Initial
version
Outline description
Concurrent activities
Evolutionary Development Evolutionary Development
zz MasalahMasalah
zz ProsesProses tidaktidak terlihatterlihat jelasjelas
zz SistemSistem tidaktidak terstrukturterstruktur
zz DibutuhkanDibutuhkan keahliankeahlian khususkhusus ((dalamdalam pembuatanpembuatan prototype)
prototype)
zz DapatDapat diaplikasikandiaplikasikan padapada
zz SistemSistem interaktifinteraktif ygyg kecilkecil atauatau mediummedium
zz BagianBagian kecilkecil daridari sistemsistem ygyg besarbesar ((mismis. antarmuka. antarmuka untuk
untuk penggunapengguna))
Formal Systems Development Formal Systems Development
zz DidasarkanDidasarkan padapada transformasitransformasi spesifikasispesifikasi secarasecara matematis
matematis keke programprogram
Formal Systems Formal Systems
Requirements
definition Formal
specification
Formal transformation
Integration and system testing
Formal Transformations Formal Transformations
Formal R2
specification R3 Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness Formal transformations
R1
P1
Formal Systems Development Formal Systems Development
zz MasalahMasalah
zz DibutuhkanDibutuhkan pelatihanpelatihan dandan keahliankeahlian khususkhusus
zz SulitSulit menspesifikasikanmenspesifikasikan secarasecara formal formal beberapabeberapa aspek
aspek sistemsistem sep, sep, antarmukaantarmuka penggunapengguna
zz DapatDapat diaplikasikandiaplikasikan
zz SistemSistem kritiskritis dimanadimana diperlukandiperlukan aspekaspek keamanankeamanan sebelum
sebelum sistemsistem dioperasikandioperasikan
Reuse
Reuse - - oriented Development oriented Development
zz DidasarkanDidasarkan padapada penggunaanpenggunaan sistemsistem kembalikembali secara
secara sistematissistematis, , dimanadimana sistemsistem diintegrasikandiintegrasikan daridari komponen2 komponen2 ygyg adaada atauatau sistemsistem COTS COTS
((CommercialCommercial--offoff--thethe--shelfshelf))
zz PenggunaanPenggunaan sistemsistem iniini masihmasih terbatasterbatas
Reuse
Reuse - - oriented Development oriented Development
Requirements specification
Component analysis
Development and integration
System design with reuse Requirements
modification
System validation
Proses
Proses Iterasi Iterasi
zz KebutuhanKebutuhan daridari sistemsistem selaluselalu berubah2 berubah2 atauatau berevolusi
berevolusi sehinggasehingga iterasiiterasi prosesproses daridari tahaptahap sebelumnya
sebelumnya diperlukandiperlukan
zz IterasiIterasi dapatdapat diaplikasikandiaplikasikan padapada model model prosesproses ygyg general
general
zz DuaDua pendekatanpendekatan
zz Incremental developmentIncremental development
zz Spiral developmentSpiral development
Incremental Development Incremental Development
zz ProsesProses pembuatanpembuatan dandan pengirimanpengiriman dibagi2 dibagi2 menjadi
menjadi prosesproses penambahanpenambahan sebagaisebagai bagianbagian fungsionalitas
fungsionalitas yang yang dibutuhkandibutuhkan
zz KebutuhanKebutuhan penggunapengguna menjadimenjadi prioritasprioritas. . Kebutuhan
Kebutuhan dgndgn prioritasprioritas tertinggitertinggi dimasukkandimasukkan sebagai
sebagai penambahanpenambahan didi awalawal prosesproses
zz Penambahan2 Penambahan2 iniini akanakan terusterus berlanjutberlanjut dandan berevolusi
berevolusi
Incremental Development Incremental Development
Validate increment Develop system
increment
Design system architecture
Integrate increment
Validate system Define outline
requirements Assign requirements to increments
System incomplete
Final system
Kelebihan
Kelebihan : : Incremental Development Incremental Development
zz FungsionalitasFungsionalitas sistemsistem selaluselalu tersediatersedia cepatcepat
zz PenambahanPenambahan terakhirterakhir dianggapdianggap sebagaisebagai prototype prototype ygyg dapatdapat digunakandigunakan utkutk menentukanmenentukan kebutuhan2 kebutuhan2 padapada penambahanpenambahan berikutnyberikutny
zz ResikoResiko terhadapterhadap kesalahankesalahan proyekproyek secarasecara global global kecil
kecil
zz PerluPerlu pengujianpengujian terusterus menerusmenerus
Spiral Development Spiral Development
zz ProsesProses digambarkandigambarkan dalamdalam bentukbentuk spiral spiral dimanadimana setiap
setiap loop loop menggambarkanmenggambarkan tahaptahap pemrosesanpemrosesan
zz TidakTidak adaada tahaptahap ygyg fiksfiks, , tetapitetapi bergantungbergantung padapada apaapa yang
yang dibutuhkandibutuhkan
zz ResikoResiko ygyg ditemukanditemukan diselesaikandiselesaikan selamaselama prosesproses
Spiral Model Spiral Model
Risk analysis Risk
analysis Risk
analysis
Risk
analysis Proto- type 1
Prototype 2
Prototype 3 Opera- tional protoype
Concept of Operation
Simulations, models, benchmarks
S/W requirements Requirement
validation Design
V&V
Product
design Detailed design Code Unit test Integration
Evaluate alternatives identify, resolve risks Determine objectives
alternatives and constraints
Integration and test plan Development
plan Requirements plan
Life-cycle plan REVIEW
Penspesifikasian
Penspesifikasian Perangkat Perangkat Lunak Lunak
zz ProsesProses untukuntuk menentukanmenentukan layananlayanan dandan batasanbatasan yang
yang dibutuhkandibutuhkan dalamdalam pengoperasianpengoperasian dandan pembuatan
pembuatan sistemsistem
zz ProsesProses ::
zz StudiStudi kelayakankelayakan
zz AnalisisAnalisis kebutuhkankebutuhkan
zz SpesifikasiSpesifikasi kebutuhankebutuhan
zz ValidasiValidasi kebutuhankebutuhan
Proses
Proses Penspesifikasi Penspesifikasi Kebutuhan Kebutuhan
Feasibility study
Requirements elicitation and
analysis
Requirements specification
Requirements validation Feasibility
report
System models
User and system requirements
Requirements
Desain
Desain & & Implementasi Implementasi Perangkat Perangkat Lunak Lunak
zz ProsesProses konversikonversi spesifikasispesifikasi sistemsistem keke sistemsistem yang yang akanakan dijalankandijalankan
zz DesainDesain per. per. lunaklunak
zz DesainDesain strukturstruktur per. per. lunaklunak berdasarkanberdasarkan spesifikasi
spesifikasi
zz ImplementasiImplementasi
zz MenterjemahkanMenterjemahkan strukturstruktur keke dalamdalam programprogram
Aktifitas
Aktifitas Desain Desain
zz
Desain Desain arsitektural arsitektural
zz
Spesifikasi Spesifikasi abstrak abstrak
zz
Desain Desain antarmuka antarmuka pengguna pengguna
zz
Desain Desain komponen komponen
zz
Desain Desain struktur struktur data data
zz
Desain Desain algoritma algoritma
Proses
Proses Desain Desain
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 Requirements
specification
Design activities
Design products
Metode
Metode Desain Desain
zz PendekatanPendekatan sistematissistematis untukuntuk melakukanmelakukan desaindesain perangkat
perangkat lunaklunak
zz DesainDesain didokumentasikandidokumentasikan sebagaisebagai kumpulankumpulan model2
model2 grafisgrafis
zz Model2 al:Model2 al:
zz DataData--flow modelflow model
zz EntityEntity--relationrelation--attribute modelattribute model
zz Structural modelStructural model
zz Object modelsObject models
Pemrograman Pemrograman
zz MenterjemahkanMenterjemahkan desaindesain keke dalamdalam programprogram
zz PemrogramPemrogram harusharus melakukanmelakukan pengujianpengujian program program untuk
untuk menanganimenangani kesalahan2 kesalahan2 ygyg timbultimbul dalamdalam program
program
Proses
Proses Debugging Debugging
Locate error
Design error repair
Repair error
Re-test program
Proses
Proses Pengujian Pengujian
Sub-system testing Module
testing Unit
testing
System testing
Acceptance testing
Component testing
Integration testing User
testing
Tahap2
Tahap2 Pengujian Pengujian
Requirements specification
System specification
System design
Detailed design
Module and unit code
and tess Sub-system
integration test plan System
integration test plan Acceptance
test plan
Service Acceptance
test
System integration test
Sub-system integration test