35
PENGENALAN PENGENALAN Perancangan Perancangan Perangkat Perangkat Lunak Lunak (Software Engineering) (Software Engineering) Bertalya Bertalya Program Program Pascasarjana Pascasarjana Univesitas Univesitas Gunadarma Gunadarma

Pengenalan - bertalya.staff.gunadarma.ac.idbertalya.staff.gunadarma.ac.id/Downloads/files/19963/Pengenalan.pdf · semua aspek pembuatan sistem berbasis komputer, termasuk perangkat

Embed Size (px)

Citation preview

PENGENALANPENGENALAN

PerancanganPerancangan PerangkatPerangkat LunakLunak(Software Engineering)(Software Engineering)

BertalyaBertalyaProgram Program PascasarjanaPascasarjanaUnivesitasUnivesitas GunadarmaGunadarma

PengenalanPengenalan 22

PerangkatPerangkat LunakLunak ((SoftwareSoftware))

MerupakanMerupakan program program aplikasiaplikasi berikutberikut dengandengandokumentasidokumentasi dandan data yang data yang dibutuhkandibutuhkan agar agar program program dapatdapat beroperasiberoperasi secarasecara benarbenarSoftware systemSoftware system terdiriterdiri atasatas : program2, file2, : program2, file2, dokumentasidokumentasi sistemsistem, , dokumentasidokumentasi penggunapengguna2 2 tipetipe produkproduk perangkatperangkat lunaklunak ::1. 1. genericgeneric; software stand; software stand--alone, alone, dibuatdibuat suatusuatu perusahaanperusahaan& & dijualdijual didi pasarpasar terbukaterbuka

CthCth : : wordprocessorwordprocessor, database, database2.2. customisedcustomised: : dibuatdibuat berdasarkanberdasarkan permintaanpermintaan klienklien

CthCth : : sistemsistem pengaturanpengaturan lalulintaslalulintas udaraudara

PengenalanPengenalan 33

KarakteristikKarakteristik PerangkatPerangkat LunakLunak yang yang BaikBaik

MaintainabilityMaintainability; ; perangkatperangkat lunaklunak dimungkinkandimungkinkan untukuntukberevolusiberevolusi sesuaisesuai kebutuhankebutuhan perubahanperubahan klienklienDependabilityDependability; ; mencakupmencakup reliabilityreliability, , securitysecurity & & safetysafetyPerangkatPerangkat lunaklunak tidaktidak mengalamimengalami kerugiankerugian fisikfisik & & ekonomiekonomi padapada saatsaat terjaditerjadi kerusakankerusakan sistemsistemEfficiencyEfficiency; ; perangkatperangkat lunaklunak tidaktidak borosboros dalamdalam mengmeng--gunakangunakan sumbersumber dayadaya sistemsistem, , sepertiseperti memory & memory & processorprocessorUsabilityUsability; ; perangkatperangkat lunaklunak harusharus bergunaberguna bagibagipenggunapengguna, , mempunyaimempunyai interface & interface & dokumentasidokumentasiyang yang sesuaisesuai dengandengan penggunapengguna

PengenalanPengenalan 44

Software EngineeringSoftware EngineeringMerupakanMerupakan disiplindisiplin ilmuilmu engineering engineering ygyg memperhatikanmemperhatikansemuasemua aspekaspek pembuatanpembuatan perangkatperangkat lunaklunak daridari tahaptahap awalawalspesifikasispesifikasi s.ds.d. . pemeliharaanpemeliharaan sistemsistem

PerbedaanPerbedaan software engineeringsoftware engineering dgndgn computer sciencecomputer scienceadalahadalah bahwabahwa computer sciencecomputer science lebihlebih memperhatikanmemperhatikan teoriteori& & metodemetode komputerisasikomputerisasi, , sedangkansedangkan software engineeringsoftware engineeringmenyangkutmenyangkut masalahmasalah praktikalpraktikal pembuatanpembuatan dandandeliverydelivery(pengiriman(pengiriman) ) perangkatperangkat lunaklunak

Software engineeringSoftware engineering merupakanmerupakan bagianbagian daridari system system engineeringengineering, , dimanadimana system engineeringsystem engineering memperhatikanmemperhatikansemuasemua aspekaspek pembuatanpembuatan sistemsistem berbasisberbasis komputerkomputer, , termasuktermasuk perangkatperangkat keraskeras, p. , p. lunaklunak & & prosesproses..

PengenalanPengenalan 55

BiayaBiaya & & MetodeMetode Software EngineeringSoftware Engineering

60 % 60 % terletakterletak padapada biayabiaya pembuatanpembuatan, , dandan 40 % 40 % padapada biayabiaya testing, testing, sedangkansedangkan padapada software software ygygcustomisedcustomised, , biayabiaya evolusievolusi lbhlbh besarbesar drpddrpd biayabiayapembuatanpembuatan

MetodeMetode software engineeringsoftware engineering merupakanmerupakanpendekatanpendekatan terstrukturterstruktur keke pembuatanpembuatan software software termasuktermasuk model model sistemsistem, , notasinotasi, , aturanaturan, , rekomendasirekomendasipembuatanpembuatan & & penuntunpenuntun prosesproses..ContohContoh ::

Structured AnalysisStructured AnalysisObjectObject--oriented Modeloriented ModelUnified Unified ModellingModelling LanguageLanguage (UML)(UML)

PengenalanPengenalan 66

PenyelesaianPenyelesaian MasalahMasalah

COMPUTER SCIENCE CUSTOMER

SOFTWAREENGINEERING

Theories ComputerFunctions

Problem

Tools and Techniques toSolve Problem

PengenalanPengenalan 77

ProsesProses PerangkatPerangkat LunakLunakMerupakanMerupakan sekumpulansekumpulan aktifitasaktifitas dandan hasil2 yang hasil2 yang bertujuanbertujuan membuatmembuat suatusuatu produkproduk perangkatperangkat lunaklunakAktifitas2nya al:Aktifitas2nya al:1. 1. Software specificationSoftware specification : : pendefinisianpendefinisian

fungsifungsi & & konstrainkonstrain pengoperasianpengoperasian per. per. lunaklunak2. 2. Software developmentSoftware development : : pembuatanpembuatan per. per. lunaklunak

sesuaisesuai spesifikasispesifikasi3. 3. Software validationSoftware validation: : validasivalidasi per. per. lunaklunak

untukuntuk menjaminmenjamin per. per. lunaklunak bekerjabekerja sesuaisesuaidengandengan keinginankeinginan klienklien

4. 4. Software evolutionSoftware evolution : per. : per. lunaklunak harusharus berevolusiberevolusisesuaisesuai dengandengan keinginankeinginan klienklien

PengenalanPengenalan 88

Model Model ProsesProses PerangkatPerangkat LunakLunakMerupakanMerupakan representasirepresentasi sederhanasederhana daridari prosesproses per. per. lunaklunak, , termasuktermasuk-- aktifitas2 aktifitas2 prosesproses per. per. lunaklunak-- perananperanan orang2 yang orang2 yang terlibatterlibat

Tipe2 model Tipe2 model prosesproses per. per. lunaklunak ::1. 1. workflow modelworkflow model : : menggambarkanmenggambarkan urutanurutan aktifitasaktifitas prosesproses

softwaresoftware2. 2. data flow modeldata flow model : : menggambarkanmenggambarkan aktifitasaktifitas yang yang

mentransformasikanmentransformasikan datadata3.3. role / action modelrole / action model : : menggambarkanmenggambarkan aktifitasaktifitas & & perananperanan

orang2 yang orang2 yang terlibatterlibat

PengenalanPengenalan 99

Model Model ProsesProses ((lanjlanj.).)Model2 Model2 prosesproses perangkatperangkat lunaklunak al:al:

WaterfallWaterfallTahapTahap spesifikasispesifikasi dandan pembuatanpembuatan yang yang terpisahterpisahEvolutionary developmentEvolutionary developmentTahapTahap spesifikasispesifikasi dandan pembuatanpembuatan yang yang disisipkandisisipkanFormal transformationFormal transformationModel Model sistemsistem matematismatematis ygyg ditransformasikanditransformasikan kekeimplementasiimplementasi..Integration from reusable componentsIntegration from reusable componentsSistemSistem dipadukandipadukan dengandengan komponen2 komponen2 ygyg adaada

PengenalanPengenalan 1010

Waterfall ModelWaterfall ModelRequirements

definition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

PengenalanPengenalan 1111

MasalahMasalah Yang Yang DihadapiDihadapi

KebutuhanKebutuhan klienklien selaluselalu berubah2, berubah2, perluperlu dilakukandilakukanpengulanganpengulangan padapada tahaptahap sebelumnyasebelumnyaMakaMaka, model , model iniini hanyahanya sesuaisesuai dengandengan kebutuhankebutuhanyang yang dapatdapat dipahamidipahami dengandengan baikbaik

PengenalanPengenalan 1212

Evolutionary developmentEvolutionary development

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Concurrentactivities

PengenalanPengenalan 1313

Evolutionary DevelopmentEvolutionary Development

MasalahMasalahProsesProses tidaktidak terlihatterlihat jelasjelasSistemSistem tidaktidak terstrukturterstrukturDibutuhkanDibutuhkan keahliankeahlian khususkhusus ((dalamdalam pembuatanpembuatanprototype)prototype)

DapatDapat diaplikasikandiaplikasikan padapadaSistemSistem interaktifinteraktif ygyg kecilkecil atauatau mediummediumBagianBagian kecilkecil daridari sistemsistem ygyg besarbesar ((mismis. . antarmukaantarmukauntukuntuk penggunapengguna))ShortShort--lifetime systemslifetime systems

PengenalanPengenalan 1414

Formal Systems DevelopmentFormal Systems Development

DidasarkanDidasarkan padapada transformasitransformasi spesifikasispesifikasi secarasecaramatematismatematis keke programprogram

PengenalanPengenalan 1515

Formal SystemsFormal Systems

Requirementsdefinition

Formalspecification

Formaltransformation

Integration andsystem testing

PengenalanPengenalan 1616

Formal TransformationsFormal Transformations

R2Formal

specificationR3

Executableprogram

P2 P3 P4

T1 T2 T3 T4

Proofs of transformation correctness

Formal transformations

R1

P1

PengenalanPengenalan 1717

Formal Systems DevelopmentFormal Systems Development

MasalahMasalahDibutuhkanDibutuhkan pelatihanpelatihan dandan keahliankeahlian khususkhususSulitSulit menspesifikasikanmenspesifikasikan secarasecara formal formal beberapabeberapaaspekaspek sistemsistem sep, sep, antarmukaantarmuka penggunapengguna

DapatDapat diaplikasikandiaplikasikanSistemSistem kritiskritis dimanadimana diperlukandiperlukan aspekaspek keamanankeamanansebelumsebelum sistemsistem dioperasikandioperasikan

PengenalanPengenalan 1818

ReuseReuse--oriented Developmentoriented Development

DidasarkanDidasarkan padapada penggunaanpenggunaan sistemsistem kembalikembalisecarasecara sistematissistematis, , dimanadimana sistemsistem diintegrasikandiintegrasikandaridari komponen2 komponen2 ygyg adaada atauatau sistemsistem COTS COTS ((CommercialCommercial--offoff--thethe--shelfshelf))PenggunaanPenggunaan sistemsistem iniini masihmasih terbatasterbatas

PengenalanPengenalan 1919

ReuseReuse--oriented Developmentoriented Development

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

PengenalanPengenalan 2020

ProsesProses IterasiIterasi

KebutuhanKebutuhan daridari sistemsistem selaluselalu berubah2 berubah2 atauatauberevolusiberevolusi sehinggasehingga iterasiiterasi prosesproses daridari tahaptahapsebelumnyasebelumnya diperlukandiperlukanIterasiIterasi dapatdapat diaplikasikandiaplikasikan padapada model model prosesproses ygyggeneralgeneralDuaDua pendekatanpendekatan

Incremental developmentIncremental developmentSpiral developmentSpiral development

PengenalanPengenalan 2121

Incremental DevelopmentIncremental Development

ProsesProses pembuatanpembuatan dandan pengirimanpengiriman dibagi2 dibagi2 menjadimenjadi prosesproses penambahanpenambahan sebagaisebagai bagianbagianfungsionalitasfungsionalitas yang yang dibutuhkandibutuhkanKebutuhanKebutuhan penggunapengguna menjadimenjadi prioritasprioritas. . KebutuhanKebutuhan dgndgn prioritasprioritas tertinggitertinggi dimasukkandimasukkansebagaisebagai penambahanpenambahan didi awalawal prosesprosesPenambahan2 Penambahan2 iniini akanakan terusterus berlanjutberlanjut dandanberevolusiberevolusi

PengenalanPengenalan 2222

Incremental DevelopmentIncremental Development

Validateincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Validatesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

PengenalanPengenalan 2323

KelebihanKelebihan : : Incremental DevelopmentIncremental Development

FungsionalitasFungsionalitas sistemsistem selaluselalu tersediatersedia cepatcepatPenambahanPenambahan terakhirterakhir dianggapdianggap sebagaisebagai prototype prototype ygyg dapatdapat digunakandigunakan utkutk menentukanmenentukan kebutuhan2 kebutuhan2 padapada penambahanpenambahan berikutnyberikutnyResikoResiko terhadapterhadap kesalahankesalahan proyekproyek secarasecara global global kecilkecilPerluPerlu pengujianpengujian terusterus menerusmenerus

PengenalanPengenalan 2424

Spiral DevelopmentSpiral Development

ProsesProses digambarkandigambarkan dalamdalam bentukbentuk spiral spiral dimanadimanasetiapsetiap loop loop menggambarkanmenggambarkan tahaptahap pemrosesanpemrosesanTidakTidak adaada tahaptahap ygyg fiksfiks, , tetapitetapi bergantungbergantung padapada apaapayang yang dibutuhkandibutuhkanResikoResiko ygyg ditemukanditemukan diselesaikandiselesaikan selamaselama prosesproses

PengenalanPengenalan 2525

Spiral ModelSpiral Model

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2

Prototype 3Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

PengenalanPengenalan 2626

PenspesifikasianPenspesifikasian PerangkatPerangkat LunakLunak

ProsesProses untukuntuk menentukanmenentukan layananlayanan dandan batasanbatasanyang yang dibutuhkandibutuhkan dalamdalam pengoperasianpengoperasian dandanpembuatanpembuatan sistemsistemProsesProses ::

StudiStudi kelayakankelayakanAnalisisAnalisis kebutuhkankebutuhkanSpesifikasiSpesifikasi kebutuhankebutuhanValidasiValidasi kebutuhankebutuhan

PengenalanPengenalan 2727

ProsesProses PenspesifikasiPenspesifikasi KebutuhanKebutuhan

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

PengenalanPengenalan 2828

DesainDesain & & ImplementasiImplementasi PerangkatPerangkat LunakLunak

ProsesProses konversikonversi spesifikasispesifikasi sistemsistem keke sistemsistem yang yang akanakan dijalankandijalankanDesainDesain per. per. lunaklunak

DesainDesain strukturstruktur per. per. lunaklunak berdasarkanberdasarkanspesifikasispesifikasi

ImplementasiImplementasiMenterjemahkanMenterjemahkan strukturstruktur keke dalamdalam programprogram

PengenalanPengenalan 2929

AktifitasAktifitas DesainDesain

DesainDesain arsitekturalarsitekturalSpesifikasiSpesifikasi abstrakabstrakDesainDesain antarmukaantarmuka penggunapenggunaDesainDesain komponenkomponenDesainDesain strukturstruktur datadataDesainDesain algoritmaalgoritma

PengenalanPengenalan 3030

ProsesProses DesainDesain

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

PengenalanPengenalan 3131

MetodeMetode DesainDesain

PendekatanPendekatan sistematissistematis untukuntuk melakukanmelakukan desaindesainperangkatperangkat lunaklunakDesainDesain didokumentasikandidokumentasikan sebagaisebagai kumpulankumpulanmodel2 model2 grafisgrafisModel2 al:Model2 al:

DataData--flow modelflow modelEntityEntity--relationrelation--attribute modelattribute modelStructural modelStructural modelObject modelsObject models

PengenalanPengenalan 3232

PemrogramanPemrograman

MenterjemahkanMenterjemahkan desaindesain keke dalamdalam programprogramPemrogramPemrogram harusharus melakukanmelakukan pengujianpengujian program program untukuntuk menanganimenangani kesalahan2 kesalahan2 ygyg timbultimbul dalamdalamprogramprogram

PengenalanPengenalan 3333

ProsesProses DebuggingDebugging

Locateerror

Designerror repair

Repairerror

Re-testprogram

PengenalanPengenalan 3434

ProsesProses PengujianPengujian

Sub-systemtesting

Moduletesting

Unittesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

PengenalanPengenalan 3535

Tahap2 Tahap2 PengujianPengujian

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

Service Acceptancetest

Systemintegration test

Sub-systemintegration test