PROSES-PROSES
PERANGKAT LUNAK
REKAYASA
PERANGKAT LUNAK
Muhlis tahir 092904033
ptik a 09 unm
Memahami konsep proses perangkat lunak dan model proses perangkat lunak.
Memahami berbagai model proses dan kapan model-model tersebut digunakan.
Mengerti secara garis besar, tentang model proses untuk rekayasa persyaratan, pengembangan,pengujian dan evolusi perangkat lunak.
Mengetahui teknologi CASE sebagai penunjang proses perangkat lunak.
TUJUAN
1) Model Proses Perangkat Lunak 2) Iterasi Proses
3) Spesifikasi Perangkat Lunak
4) Perancangan dan Implementasi Perangkat Lunak.
5) Validasi Perangkat Lunak 6) Evolusi Perangkat Lunak
7) Pendukung Proses Yang Terotomasi
MATERI
Proses perangkat lunak merupakan serangkaian kegiatan dan hasil yang berhunbungan dengannya,yang menuju pada dihasilkannya produk perangkat lunak.
Kegiatan ini mencakup pengembangan perangkat lunak mulai dari awal, walaupun kenyataannya makin sering terjadi bahwa perangkat lunak yang baru dikembangkan dengan memperluas dan memodifikasi sistem yang telah ada.
Walaupun ada banyak proses perangkat lunak, ada kegiatan-kegiatan mendasar yang umum bagi
Pendahuluan
Kegiatan Mendasar Perangkat Lunak
1. Penspesifikasikan Perangkat Lunak
2. Perancangan dan Implementasi Perangkat Lunak 3. Pemvalidasian Perangkat Lunak
4. Pengevolusian Perangkat Lunak
Pendahuluan
Model proses perangkat lunak merupakan representasi abstrak dari proses perangkat lunak.
Setiap model proses merepresentasikan suatu proses dari sudut pandang tertentu sehingga hanya memberikan informasi parsial mengenai proses tersebut.
Model-model ini biasanya merupakan abstraksi yang dapat digunakan untuk menjelaskan pendekatan-pendekatan terhadap pengembangan perangkat lunak.
Untuk banyak sistem besar, tentu saja, tidak
1. Model Proses Perangkat Lunak
• Model proses meliputi;
• Pendekatan Model Air terjun (Water fall), Menempatkan semua aktifitas sesuai dengan tahapan pada model Waterfall dengan memisahkan dan membedakan antara spesifikasi dan pengembangan
• Pengembangan yang berevolusi, Pendekatan yang melanjutkan Aktifitas satu dan yang lainnya dari Spesifikasi dan pengembangan serta validasi secara cepat
1. Model Proses Perangkat Lunak
• Pengembangan sistem Formal, Pendekatan aktifitas bersasar suatu model sistem matematika yang ditransformasikan ke implementasi,
• Pengembangan Sstem berbasis Re-use (penggunaan ulang) komponen, sistem dibangun dari komponen yang sudah ada dengan fokus integrasi sistem.
Lanjutan…
Model Air Terjun (Waterfall)
Requirements definition
System and software design
Implementation and unit testing
Integration and system testing
Fase Model Air Terjun
1) Analisis Kebutuhan dan pendefinisiannya 2) Perancangan sistem dan Perangkat Lunak 3) Implementasi dan unit testing
4) Integrasi dan pengujian sistem 5) Pengoperasian dan perawatan
Model Air Terjun (Waterfall)
Kelebihan Model Air Terjun
Mudah diterangkan kepada pelanggan yang tidak biasa dengan pembangunan perisian
Model ini boleh memberikan pembangun perisian pandangan tahap-tinggi semasa proses pembangunan
Kebanyakan model lain adalah ubahsuai dari
Model Air Terjun (Waterfall)
Kekurangan Model Terjun
Pembagian proyek yang tidak flexibel dalam bentuk tahapan yang berbeda
Hal ini mengakibatkan kesulitan saat merespon perubahan kebutuhan customer
Dengan demikian, model ini hanya akan sesuai apabila kebutuhan telah disepakati dan dipahami
Model Air Terjun (Waterfall)
• Lanjutan…
Tidak menggambarkan cara kod dihasilkan – kecuali sesuatu perisian itu sudah benar-benar difahami
Tidak menyediakan panduan untuk mengendalikan sebarang perubahan yang berlaku pada produk dan aktiviti
Gagal untuk mengganggap perisian sebagai satu proses penyelesaian masalah – model air terjun adalah hasil dari proses pembangunan perkakasan
Model Air Terjun (Waterfall)
• Pengembangan Evolusioner berdasarkan pada ide untuk mengembangkan implementasi awal, memperlihatkan kepada user untuk dikomentari, dan memperbaikinya versi demi versi sampai sistem yang memenuhi persyaratan.
• Tidak ada kegiatan spesifikasi,pengembangan, dan validasi yang terpisah, alih-alih kegiatan-kegiatan ini dilakukan pada saat yang bersamaan dengan umpan balik yang cepat untuk masing-masing kegiatan.
Pengembangan Evolusioner
• Dua jenis pengembangan evolusioner:
I. Pengembangan Eksploratori. Bekerja dengan pelanggan untuk menyelidiki persyaratan mereka dan mengirimkan sistem akhir.
II. Prototipe Yang Dapat Dibuang (Throw-Away).
Memahami persyaratan pelanggan dan dengan demikian mengembangkan definisi persyaratan yang lebih untuk sistem.
Pengembangan Evolusioner
Pengembangan Evolusioner
Validation Final
version
Development Intermediate
versions
Specification Initial
version
Outline description
Concurrent activities
• Pendekatan evolusioner erhadap pengembangan pendekatan air terjun dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
Keuntungannya adalah:
bahwa spesifikasi dapat dikembangkan secara inkremental.
User mendapat pemahaman yang lebih baik dari masalah mereka, sistem perangkat lunak dapat merefleksikannya.
Pengembangan Evolusioner
Ada tiga Masalah Dalam Pengembangan evolusioner
I. Proses Tidak Bisa Dilihat
II. Sistem Seringkali Memiliki Struktur Yang Buruk
III. Mungkin Diperlukan Alat Bantu Dan Teknik Khusus.
IV. Untuk Sistem Kecil (kurang dari 100.000 baris kode) V. Untuk Sistem Menengah(sampai 500.000 baris kode)
VI. Waktu Hidup Yang Pendek Bagi Pengembangan Sistem Yang Besar.
Pengembangan Evolusioner
• Pengembangan sistem formal merupakan pendekatan terhadap pengembangan perangkat lunak yang memiliki kesamaan dengan model air terjun, tetapi proses pengembangannya didasarkan pada transformasi matematis dari spesifikasi sistem menjadi program yang dapat dijalankan.
• Perbedaan kritis antara pendekatan evolusioner dengan air terjun adalah:
Spesifikasi persyaratan perangkat lunak diperbaiki menjadi spesifikasi formal yang rinci yang dinyatakan dalam notasi matematis.
Proses pengembangan perancangan,implementasi dan
Pengembangan Sistem Formal
Pengembangan Sistem Formal
Pengembangan Sistem Formal
Formal R2
specification R3 Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness Formal transformations
R1
P1
• Problems
Dibutuhkan ketrampilan dan pelatihan khusus untuk mengaplikasikan teknik ini
Kesulitan dalam menspesifikasikan beberapa aspek ke dalam sistem misalnya dalam penentuan user interface
• Applicability
System kritis khususnya sistem yang mengutamakan faktor keselamatan dan keamanan sebelum sistem utamanya dioperasikan
Pengembangan Sistem Formal
• Berdasarkan pada pendekatan pakai-ulang yang sistematik dimana sistem dintegrasikan dari komponen-komponen yang telah tersedia atau disebut COTS (Commercial-off-the-shelf) system-system
• Tahap Proses ini :
Component analysis(Analisis Komponen)
Requirements modification(Modifikasi Persyaratan)
System design with reuse(Perancangan Sistem dengan Pemakaian Ulang)
Development and integration(Pengembangan Dan Integrasi)
Pengembangan Berorientasi Pemakaian ulang
Pengembangan Berorientasi Pemakaian ulang
Requirements
specification Component analysis
Development and integration
System design with reuse Requirements
modification
System validation
• Model ini mempunyai keuntungan yang nyata yaitu mengurangi besarnya perangkat lunak yang akan dikembangkan, serta memperkecil biaya dan resiko.
• Memungkinkan penyelesaian perangkat lunak dengan cepat.
Pengembangan Berorientasi Pemakaian ulang
• Dalam suatu project system requirements selalu mengalami perubahan, itulah sebabnya iterasi proses pada tahapan awal yang selalu dikerjakan berulang-ulang menjadi bagian dari prosess pada system yang lebih besar.
• Iterasi dapat diterapkan pada setiap model proses yang generik.
• Model Pendekatan Itersi:
1. Pengembangan Inkremental. Dimana spesifikasi, perancangan dan implementasi perangkat lunak dibagi menjadi serangkaian inkremen yang dikembangkan secara bergantian.
2. Pengembangan Spiral. Dimana pengembangan sistem seolah beralur membentuk spiral ke luar dari garis awal
Proses Iterasi
• Bukan sekedar menghantarkan sistem sebagai “single delivery”, development dan delivery dipecah menjadi beberapa tahapan dimana tiap tahap akan mendeliver bagian dari kebutuhan fungsionalitas sistem.
• Mengurangi pengerjaan ulang pada proses pengembangan dan memberi kesempatan bagi pelanggan untuk menunda keputusan persyaratan rinci sampai mereka memperoleh pengalaman dengan sistem.
• Pada proses ini pelanggan mengidentifikasi, secara garis besar, layanan (service) yang akan disediakan oleh sistem.
• Persyaratan pengguna diprioritiskan dan persyaratan prioritas tertinggi dimasukkan dalam awal increment
Proses Iterasi-(Pengembangan Inkremental)
Proses Iterasi-(Pengembangan Inkremental)
Validate increment Develop system
increment
Design system architecture
Integrate
increment Validate
system Define outline
requirements Assign requirements to increments
System incomplete
Final system
Kebutuhan customer dapat di-delivered di tiap- tiap increment sehingga sistem akan tersedia lebih awal.
increments awal bertindak sebagai prototype untuk membantu menentukan kebutuhan untuk increment selanjutnya.
Menurunkan resiko kegagalan proyek secara keseluruhan.
Layanan prioritas yang paling tertinggi sistem cenderung untuk menerimanya.
Proses Iterasi-(Pengembangan Inkremental)
Extreme programming:
Pendekatan baru pada tahapan pengembangan dengan berbasis pada development and delivery of very small increments of functionality
Mengacu pada pengembangan kode secara konstan, pelibatan user dalam development team dan pairwise programming
Proses Iterasi-(Pengembangan Inkremental)
Process direpresentasikan sebagai spiral bukan aktifitas sequence dengan backtracking
Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model.
Dalam model ini perangkat lunak dikembangkan dalam suatu seri incremental release.
Setiap loop dalam spiral merupakan tahap dalam proses.
Tidak ada fase tetap seperti spesifikasi atau desain-loop dalam spiral dipilih tergantung pada apa yang dibutuhkan.
Resiko secara eksplisit dinilai dan diselesaikan selama proses.
Proses Iterasi-(Pengembangan Spiral)
Proses Iterasi-(Pengembangan Spiral)
analysisRisk analysisRisk
analysisRisk
analysis Proto-Risk type 1
Prototype 2
Prototype 3 Opera- tional protoype
Concept of Operation
Simulations, models, benchmarks requirementsS/W
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
Setiap Untai Pada Spiral dibagi Menjadi Empat Sektor
Penentuan Tujuan
• Menentukan tujuan untuk phase yang diidentifikasi
Penilaian dan Pengurangan Resiko
• Resiko dikenali dan aktifitas dilakukan untuk mengurangi sejumla resiko
Pegembangan Dan Validasi
• Model development system ditentukan yang memungkinkan penggunaan berbagai model secara umum
Perencanaan
• Proyek ini ditinjau dan dibuat rencana untuk fase proyek
Proses Iterasi-(Pengembangan Spiral)
Proses ini untuk menentukan services apa yang dibutuhkan dan batasan pada tahapan pengoperasian dan pengembangan sistem.
Ada 4 Fase Utama Pada Proses Rekayasa Persyaratan:
Studi kelayakan
Elisitasi Dan Analisis Persyaratan
Spesifikasi Persyaratan
Validasi Persyaratan
Spesifikasi Perangkat Lunak
Spesifikasi Perangkat Lunak
Feasibility study
Requirements elicitation and
analysis
Requirements specification
Requirements validation Feasibility
report
System models
User and system requirements
Requirements document
Proses mengkonversi spesifikasi system specification kedalam executable system
Desain Sotwre
– Desain struktur software yng mengacu pada dokumen specification
Implementation
– Struktur ini Terjemahkan ke dalam suatu program executable
Aktifitas desain dan implementasi sangatlah berdekatan dan kadang saling tumpang tindih
Perancangan Implementasi Perangkat Lunak
Kegiatan-Kegiatan Proses Perancangan Yang Spesifik:
I. Perancangan Arsitektural (Architectural design) II. Spesifikasi Abstrak (Abstract specification)
III. Perancangan Inteface (Interface design)
IV. Perancangan Komponen (Component design)
V. Perancangan Struktur Data (Data structure design) VI. Perancangan Algoritma (Algorithm design)
Perancangan Implementasi Perangkat Lunak
Perancangan Implementasi Perangkat Lunak
Architectural
design Abstract
specification Interface
design Component
design
structurDatae design
Algorithm design
System
architecture Software
specification Interface
specification Component specification
structurDatae specification
Algorithm specification Requirements
specification
Design activities
Design products
Pendekatan sistemastis untuk mengembangkan desain sofware.
Desain biasanya didokumentasikan sebagai satu set model grafis.
Kemungkinan model menjadi:
Data Flow Model
Hubungan Entitas-Atribut Model
Model Struktural
Model Berorintasi Objek
Metode Perancangan
Merubah desain kedalam program dan menghilangkan errors yang ditimbulkan dari program
Pemrograman merupakan kegiatan pribadi dan disini tidak ada proses yang biasanya dipakai dan akan memulai dengan komponen-komponen yang mereka ketahui.
Pemrogram melakukan beberapa pengujian untuk menemukan kesalahan dalam program dan menghapus kesalahan dalam proses debugging.
Debugger harus membuat hipotesis mengenai perilaku program yang dapat terlihat, kemudian menguji hipotesis ini dengan harapan menemukan kesalahan yang menyebabkan penyimpangan output
Pemrograman Dan Debug
Pemrograman Dan Debug
Locate
error Design
error repair Repair
error Re-test
program
Proses Debug
• Verification dan validation diperlukan untuk menunjukkan bahwa system telah sesuai dengan spesifikasinya dan memenuhi kebutuhan dari customer
• Melibatkan checking dan review proses serta system testing
• System testing meliputi mengeksekusi system dengan skenario test yang diturunkan dari spesifikasi data real untuk diproses oleh system
Validasi Perangkat Lunak
Validasi Perangkat Lunak
Sub-system testing Module
testing testingUnit
System testing
Acceptance testing
Component Integration testing User
Tahap-Tahap Pada Proses Pengujian:
I. Pengujian Unit. Masing Masing Komponen Diuji.
II. Pengujian Modul. Terkait koleksi komponen tergantung diuji.
III. Pengujian SubSistem. Modul diintegrasikan ke dalam subsistem dan diuji. Disini harus fokus dalam pengujian interface.
IV. Pengujian Sistem. Pengujian secara Keseluruhan.
V. Pengujian Penerimaan. Pengujian data pelanggan untuk memeriksa kinerja sistem.
Validasi Perangkat Lunak
Validasi Perangkat Lunak
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
Fase Pengujian Pada Proses Perangkat Lunak
Software pada dasarnya flexible dan dapat dirubah.
Dengan berubahnya kebutuhan seiring dengan perubahan kondisi bisnis, software yang mendukung bisnis sudah selayaknya juga ikut berubah
Walaupun sering terjadi pembatasan antara proses pengembangan perangkat lunak dan proses evolusi perangkat lunak (pemeliharaan perangkat lunak). Proses pemeliharaan dianggap menantang dari pengembangan perangkat lunak
Evolusi Perangkat Lunak
Evolusi Sistem
Assess existing systems Define system
requirements Propose system
changes
Modify systems systemNew Existing
systems
Computer-aided software engineering (CASE) adalah software untuk mendukung software development dan process evolusi.
Activity automation
Pengembangan model sistem grafis.
Pemahaman rancangan menggunakan kamus data yang menyimpan informasi mengenai entitas dan hubungan pada rancangan.
Pembuatan interface user dari deskripsi grafis yang dibuat secara interaktif dengan user.
Debug program dengan menyediakan informasi mengenai program yang sedang berjalan.
Penerjemahan program yang terotomasi dari bahasa
Pendukung Proses Terotomasi
Case technology telah berkembang dengan sangat pesat dalam mendukung software process melebihi dari yang diperkirakan sebelumnya:
Perancangan Perangkat lunak memerlukan pikiran kreatif.
Perancang Perangkat lunak adalah suatu aktivitas tim dan, karena proyek besar yang memerlukan banyak waktu untuk ber interaksi dengan timnya. CASE teknologi tidak benar- benar memberi banyak mendukung ini
Pendukung Proses Terotomasi
Pengklasifikasian CASE membantu kita dalam memahami berbagai tipe dari CASE tools dan dukungannya terhadap process activities.
CASE Tool dari tiga sudut pandang:
1. Sudut Pandang Fungsional. Di mana CASE Tool diklasifikasikan menurut fungsinya.
2. Sudut Pandang Proses. Di mana CASE Tool diklasifikasikan menurut kegiatan proses yang didukungnya.
3. Sudut Pandang Integrasi. Di mana CASE Tool diklasifikasikan menurut bagaimana mereka diorganisasikan ke dalam unit-unit yang terintegrasi, yang memberikan dukungan bagi satu kegiatan proses atau
Klasifikasi CASE
Klasifikasi Fungsional dari CASE Tool
Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Klasifikasi Berbasis Kegiatan dan CASE Tool
Reengineering tools Testing tools
Debugging tools Program analysis tools Language-processing tools
Method support tools Prototyping tools Configuration management tools
Change management tools Documentation tools
1) Tool (Alat Bantu)
– Mendukung pekerjaan proses individual seperti memeriksa konsistensi perancangan,kompilasi program, membandingkan hasil pengujian dll.
2) Workbench
– Fase atau kegiatan proses seperti spesifikasi, perancangan, dsb. Terdiri dari serangkain tool dengan derajat integrasi yang lebih besar atau lebih kecil.
3) Lingkungan Mendukung
– Semua atau paling tidak bagian yang penting dari proses lengkap lunak. Lingkungan biasanya mencakup beberapa workbench yang terintegrasi dengan suatu cara.
CASE Integration
Tool, Workbench dan Lingkungan
Programming Testing Analysis and
design
Integrated
environments Process-centred environments comparatorsFile
Compilers Editors
Environments Workbenches
Tools
technologyCASE
Proses Perangkat Lunak adalah aktifitas meliputi producing dan evolving software system. Aktifitas ini direpresentasikan dalam software process model
Activitas umumnya meliputi specification, design dan implementation, validation dan evolution
Model process secara umum menggambarkan organisasi process software
Iterative process models mendiskripsikan software process sebagai siklus aktifitas
Hal-Hal Penting
Rekayasa Kebutuhan adalah process pengembangan spesifikasi software
Proses Perancangan dan implementasi mengubah spesifikasi menjadi executable program
Validasi Perangkat Lunak memastikan system telah memenuhi spesifikasi dan kebutuhan user
Evolusi Perangkat Lunak fokus pada modifikasi system setelah software system diterapkan
Teknologi CASE mendukung aktifitas Proses Perangkat Lunak.