4. Software Process (2) Rekayasa Perangkat Lunak Teknik Informatika S1
Teknik Informatika S1
Rekayasa Perangkat Lunak
Software Process (2) Disusun Oleh: Egia Rosi Subhiyakto, M.Kom, M.CS Teknik Informatika UDINUS egia@dsn.dinus.ac.id
SILABUS MATA KULIAH
8. Pembahasan UTS + Tugas SKPL
9. Presentasi SKPL
10. Design Engineering + Tugas DPPL
11. Presentasi DPPL
12. Software Testing + Quiz
13. Present Tugas Besar
14. Present Tugas Besar
1. Pendahuluan
2. Introduction to SE
3. Software Process (1)
4. Software Process (2)
5. Requirement Engineering + Quiz
6. Analysis Modeling (1)
7. Analysis Modeling (2)
Review Materi Minggu Lalu
Characteristics of Maturity levels Level 5 Level 5 Focus on process Level 4 Optimizing Optimizing improvement Level 4 Quantitatively Quantitatively Processes measured and Managed Managed controlled Level 3 Level 3 Processes characterized for organization and is proactive
Defned Defned (Projects tailor their processes from Level 2 Level 2 organization’s standards)
Processes characterized for projects and is often reactive Managed Managed Level 1 Level 1 Processes Unpredictable, poorly controlled and reactive Initial
Planning Planning
Analysis Analysis
Design Design
Implementat ion Implementat ion
? Pengertian
Pengertian
“Sekumpulan Kegiatan dan keterhubungannya satu sama lain untuk mendukung pembangunan dari sebuah perangkat lunak”.
Pertanyaan Seputar SDLC
1. Aktifitas mana yang harus dipilih dalam pembangunan perangkat lunak?
? Pertanyaan Seputar SDLC
1. Aktifitas mana yang harus dipilih dalam pembangunan perangkat lunak? SDLC berisi proses yang bukan untuk dipilih tapi untuk dilakukan secara keseluruhan
Pertanyaan Seputar SDLC 2.
Hubungan antar aktifitas dalam SDLC?
? Pertanyaan Seputar SDLC
Hasil dari kegiatan sebelumnya mempunyai pengaruh yang sangat besar untuk kegiatan berikutnya
Pertanyaan Seputar SDLC
? Pertanyaan Seputar SDLC
Penjadwalan kegiatan SDLC dibahas dalam ilmu Manajemen Proyek (Project Management) dan tidak dibahas pada RPL
Aktivitas Pembangunan Perangkat Lunak (SDLC)
- Gathering Requirements
1
- Analysis
2
- Design
3
- Coding
4
- Testing
5
- Documentation
6
- Maintenance
7
SDLC Processes and Deliverables Process
Product Planning System Proposal Analysis
System Specification Design Implementation New System with Testing/ Maintenance Plan SDLC and Deliverables
Planning
(System Proposal)
Planning
(System Proposal)
Analysis (System Specification) Analysis (System Specification)
Design
(System
Design
(System
Implementation (New System) Implementation (New System)
Process Flow
1. Linear Process
1. Linear Process
2. Iterative Process
2. Iterative Process
3. Evolutionary Process
3. Evolutionary Process
1. Linear Process
1. Linear Process System/ Information Engineering Analysi s Analysi s Design Design Code Code Test Test
2. Iterative Process
2. Iterative Process Communicatio Communicatio n n Planning Planning
Modeling
Modeling
Construction Construction Deployment Deployment3. Evolutionary Process
3. Evolutionary Process Communication Communication Planning Planning Modeling Modeling Construction Construction Deployment Deployment
1. Linear Sequential Model 1. Linear Sequential Model Software Process Model • 3. RAD Model • 2. V Model • 1. Waterfall Model 3. Evolutionary Model 3. Evolutionary Model 2. Prototyping Model
2. Prototyping Model
- • 2. Spiral Model • 3. Component Assembly Model • 1. Incremental Model 4. Formal Method 4. Formal Method • 4. Concurrent Development Model 6. 4GT Model 6. 4GT Model 5. Unifed Process
- yang sangat pendek;
- komponen.
- yang dimunculkan? Ke mana infomasi itu pergi? Siapa yang memprosesnya?
2. Lebih fokus pada perancangan dialog user komputer (Sistem
- 3. Sistem diminati oleh banyak pemakai
- user tidak sabar menunggu
- prototipe segera memperlihatkan bentuk kerja sistem
- sistem hanya dipakai beberapa kali saja
- pengembang dapat menunjukkan kecanggihan
- Frekuensi komunikasi user – developer meningkat
- Membantu analis
- Peran user meningkat
- Pengembangan lebih cepat
- Implementasi mudah
- User sibuk
- User sulit melakukan evaluasi
o bentuk prototipe sering berubah, disesuaikan dengan kebutuhan user.
- User ingin cepat selesai o bentuk program sudah terlihat sejak awal.
- User berharap terlalu banyak
- Prototipe bekerja tidak efisien o lebih mementingkan keberhasilan.
- customer communication
- planning
- risk analysis
- engineering
- Eliminate much of the modeling and documentation
- Emphasize simple, iterative application development
- Extreme Programming (XP)
- Scrum
- Dynamic Systems Development Model (DSDM)
- Coding practices
- User Feedback 3.
5. Unifed Process
Sebuah pendekatan pengembangan perangkat lunak yang sistematik dan sekuensial.
Disebut juga ‘Classic Life Cycle’.
Paradigma yang sudah lama sekali, tetapi masih banyak yang memakai karena dianggap masih sesuai dengan keadaan sekarang.
Setiap tahap menghasilkan dokumen di akhir tahapnya 1.
Tidak ada overlapping pada setiap tahapnya 2.
Setiap tahapan akan punya pengaruh besar pada hasil 3. di tahap berikutnya Memerlukan biaya besar jika melakukan rework 4.
Menghasilkan mature process pada setiap tahapnya 1.
Mudah untuk diaplikasikan pada sebuah proyek 2.
Menghasilkan sistem yang terstruktur dengan baik 3.
Memiliki tingkat visibilitas yang tinggi (setiap tahap 4. mempunyai dokumen yang jelas)
Ketidak fleksibelan antar tahapan 1.
Susah dalam merespon perubahan kebutuhan 2. customer
Model ini hanya cocok jika: 3
a. Kebutuhan customer sudah sangat jelas
b. Perubahan kebutuhan dibatasi
(M.Kochanski) Sashimi
(M.Kochanski) Waterfall with Spiral Introduction
(M.Kochanski) Waterfall with Subprojects
RAD = Rapid Application Development
Adaptasi dari waterfall model yang:
menekankan siklus pengembangan perangkat lunak
menggunakan pendekatan konstruksi berbasis
Menciptakan sistem fungsional yang utuh dalam waktu
60-90 hari. b u s i n e s s m o d e l i n g d a t a m o d e l i n g p r o c e s s m o d e l i n g a p p l i c a t i o n g e n e r a t i o n t e s t i n g & t u r n o v e r b u s i n e s s m o d e l i n g d a t a m o d e l i n g p r o c e s s m o d e l i n g a p p l i c a t i o n g e n e r a t i o n t e s t i n g & t u r n o v e r b u s i n e s s m o d e l i n g d a t a m o d e l i n g p r o c e s s m o d e l i n g a p p l i c a t i o n g e n e r a t i o n t e s t i n g & t u r n o v e r t e a m # 1 t e a m # 2 t e a m # 3
Business Modelling
Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaan-
pertanyaan: Informasi apa yang mengendalikan proses bisnis ? Informasi apaData Modelling
Aliran informasi yang didefinisikan pada fase business modelling ditransformasikan ke dalam serangkaian obyek data.
Process Modelling
Mentransformasikan obyek data pada suatu fungsi yang menghasilkan aliran informasi yang dibutuhkan.
Application Generation
Mengkonstruksi perangkat lunak dengan memakai komponen yang ada (bila memungkinkan) atau menciptakan komponen yang dapat dipakai lagi.
Testing and Turnover Membantu software engineer untuk mendapatkan kebutuhan berupa feedback cepat dari customer
1. Prototyping
1. Prototyping Dipakai jika:
1. Sistem mempunyai resiko tinggi tidak jelas permasalahannya
dengan User)
bagaimana membuat dialog yang baik, ramah, mudah ?
1. Prototyping
1. Prototyping
4. User ingin cepat selesai
5. Masa pakai singkat
6. Ingin menunjukkan inovasi
7. Kebutuhan berubah-ubah
1. Prototyping
1. Prototyping
1. Evolutionary prototyping
2. Throw-away prototyping Type of Prototyping
Evolutionary Prototyping
Requirements
Prototype
Programming
Prototype
Reviews
Validates?
Release
Release System Testing System Programming Reviews Validates? Prototype Programming Prototype Requirements Reviews
Validates?
Throw-away Prototypingo pengembang akan selalu meminta pendapat user dalam
o menentukan kebutuhan user yang sebenarnya o meminimalkan salah persepsi
o evaluasi oleh user berkali-kali o user bisa memberikan masukan setiap saat
o program bisa langsung dibuat o user melihat perkembangan tahap demi tahap
o user sudah mengenal perangkat lunak yang dikembangkan o user tidak akan merasa asing o sejak awal user sudah merasa memiliki
o user & pengembang harus sama-sama memiliki komitmen menyediakan waktu untuk bertemu.
o user merasa tidak akan lama lagi selesai.
o keseringan evaluasi & komunikasi membuat user menjadi berubah keinginan dan tidak pasti dengan kebutuhan.
Incremental Model Incremental Model
Incremental Model merupakan gabungan antara model linier sekuensial dan prototyping.
Setiap linier sekuen menghasilkan produk yang deliveriables.
Increment pertama merupakan produk inti (core), yang mengandung persyaratan/kebutuhan dasar.
Penambahan dilakukan pada increment-increment
Incremental Model Incremental Model
2. Spiral Model
2. Spiral Model
Digunakan software engineer skala besar. Growing of software menjadi ide dari model proses ini
2. Spiral Model
2. Spiral Model
Evolutionary process (pengembangan bertingkat)
Menggabungkan keunggulan prototyping dan waterfall
Memungkinkan dikembangkannya perangkat lunak secara bertahap (incremental) dan cepat.
Terbagi atas 6 tahapan:
2. Spiral Model
2. Spiral Model Planning analisa resiko Integration and test plan development plan Risk Analysis analisa resiko user berdasarkan evaluasi batasan sistem tujuan, alternatif, menentukan dan budget Requirements development plan berdasarkan kebutuhan awal Communication Customer Engineering prototipe awal Entry Point Project berikutnya prototipe tingkat produk-jadi Evaluation Customer Construction
3. Component Assembly Model
3. Component Assembly Model engineering risk analysis Engineering, customer evaluation entry point identify candidate components look up components in library extract components if available build components if unavailable put new components in library construct n- th iteration of system Customer communication contruction & release
4. Conccurent Model
4. Conccurent Model
Model proses yang memungkinkan perubahan keadaan dari under development ke awaiting change (berhenti sementara) ketika terjadi perubahan kebutuhan
4. Conccurent Model
4. Conccurent Model none Under development A waiting changes Under revision Under review baselined
Analysis activity done
4. Conccurent Model
4. Conccurent Model
Aktivitas sistem dan komponen yang berlangsung secara
simultan dan dapat dimodelkan dengan menggunakan
pendekatan orientasi keadaan;
Aplikasi klien/server khusus yang diimplementasikan dengan banyak komponen yang masing-masing bisa dirancang dan direalisasikan secara konkuren.
Mencakup sekumpulan aktivitas yang membawa kepada
spesifikasi matematis perangkat lunak komputer;
Memungkinkan software engineer untuk mengkhususkan, mengembangkan, dan mem- verifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat;
Variasi dari pendekatan ini disebut clean-room software engineering.
Model proses yang menggabungkan beberap konsep unggulan
dari model proses lainnya.
Penekanan pada model proses ini, yaitu:
1. Komunikasi dengan customer secara intens (streamlined)
2. Arsitektur yang reusable dan terbuka pada perubahan kebutuhan
3. Alur proses yang iterative atau incremental
Terkait dengan penggunaan tools.
Pengembang software mendefinisikan karakteristik software secara 'high level'; tool secara otomatis akan membangkitkan kode.
4GT mempercepat proses pengembangan perangkat lunak.
Proses perancangan dan dokumentasi baik.
Masih dipertanyakan beberapa pihak: efisiensi kode yang dihasilkan, kemudahan (relatif).
requirements gathering design strategy implementation using 4GL testing Model proses yang menekankan pada fast delivery dari setiap poin aktivitas dalam rangka memperpendek jangka waktu proyek pembangunan perangkat lunak.
Just a few rules that are easy to learn and follow
Streamline the SDLC
Examples include:
“ Core Values” of XP 1.
Communication – All to All 2.
Simplicity – refactoring 3.
Feedback – Embrace Change 4.
Courage – Quality First, test and efficient coding User Stories about system do 1.
Code small program using defined standards 2.
Naming conventions
Repeat 4.
Latihan
Chelsea Outlet merupakan outlet yang bergerak di bidang penjualan jersey khusus Chelsea. Seiring perkembangan outlet yang semakin maju diikuti persaingan dengan outlet lain. Pengolahan data penjualan di Chelsea outlet masih kurang efektif karena transaksi belum terkomputerisasi. Chelsea outlet memerlukan sebuah perangkat lunak untuk mengolah data penjualan dan laporannya. Perangkat yang dibuat harus sesuai dengan sarana komputer yang ada di Chelsea outlet.
Model Proses apakah yang tepat digunakan untuk kasus di