Teknik Informatika S1
Pengertian Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
Disiplin ilmu yang membahas semua aspek produksi perangkat
Software Process (1)
testing sampai pemeliharaan setelah digunakan.
SOFTWARE PROCESS 1. 2. 3. 4. 5.
lunak, mulai dari tahap awal spesifikasi, desain, konstruksi,
Software Engineering Layers
Framework Proses CMII (Capability Maturity Model Integration) SDLC ( Software Development Life Cycle) Process Flow Model Process
Tools Methods Process Quality
Generic View of Software Engineering
General Phase to Software Engineering(1)
● Engineering meliputi kegiatan analisis, desain, konstruksi, verifikasi, dan manajemen kesatuan teknik atau sosial. ● Pertanyaan-pertanyaan yang harus dimunculkan dan dijawab:
* Apa masalah yang akan dipecahkan? * Karakteristik entitas yang manakah yang dipakai untuk menyelesaikan masalah tersebut?
*Definition phase berfokus pada „apa‟ (what): * informasi yang akan diproses * fungsi dan perfomance yang dibutuhkan * tingkah laku sistem yang diharapkan
* Bagaimanakah entitas (dan pemecahan) tersebut diadakan?
* interface yang akan dibangun
* Bagaimanakah entitas tersebut dibangun?
* batasan sistem yang sukses
* Pendekatan apakah yang akan dipakai untuk menemukan kesalahan-kesalahan yang dibuat dalam desain dan kontruksi dari entitas tersebut?
* Bagaimanakah entitas tersebut ditopang selama proses adaptasi yang lama, pada saat koreksi, serta ketika perbaikan dibutuhkan oleh para pemakai entitas tersebut?
1
General Phase to Software Engineering(2) *Development phase berfokus pada „bagaimana‟ (how):
General Phase to Software Engineering(3) *Maintenance phase
berfokus pada „perubahan‟
(change):
* data dikonstruksikan * fungsi-fungsi diimplementasikan
* dihubungkan dengan koreksi kesalahan
* detail prosedur akan diimplementasikan
* ketika lingkungan perangkat lunak berkembang
* interface dikarakterisasi
* sehubungan dengan perubahan kebutuhan pelanggan
* rancangan akan diterjemahkan ke dalam pemrograman * pengujian dilakukan
Changes in Phase Development *Correction (Koreksi)
Changes in Phase Development *Enhancement (Perkembangan)
* Membetulkan cacat atau kerusakan
* Memperluas
*Adaptation (Adaptasi) * Modifikasi
perangkat lunak karena perubahan kebutuhan
perangkat lunak sehingga melampaui kebutuhan
fungsi originalnya
*Prevention (Pencegahan) * Pencegahan sebagai antisipasi perubahan karena usia perangkat
fungsional original (CPU, OS, aturan bisnis, karakteristik produk eksternal, dll)
lunak
Aktivitas Pembangunan Perangkat Lunak
Umbrella Activities *Software project tracking and control
1
• Gathering Requirements
*Formal technical reviews
2
• Analysis
*Software quality assurance
3
• Design
4
• Coding
5
• Testing
6
• Documentation
7
• Maintenance
*Software configuration management *Document preparation and production *Reusability management *Measurement *Risk management
2
CMMI (Capability Maturity Model Integration)
Framework Proses
Characteristics of Maturity levels Level 5
Optimizing Common Process Framework Framework Activities Task Sets Tasks Milestones, deliverables SQA points
Level 4
Quantitatively Managed Level 3
Defined
Umbrella Activities Level 2
Managed Level 1
Initial
SOFTWARE DEVELOPMENT LIFE CYCLE
Focus on process improvement
Processes measured and controlled
Processes characterized for organization and is proactive (Projects tailor their processes from organization’s standards)
Processes characterized for projects and is often reactive
Processes Unpredictable, poorly controlled and reactive
SOFTWARE DEVELOPMENT LIFE CYCLE
Pengertian
Planning
“Sekumpulan Kegiatan dan keterhubungannya satu sama lain untuk mendukung pembangunan dari sebuah perangkat
Implementation
Analysis
lunak”.
Design
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?
Hasil dari kegiatan sebelumnya mempunyai pengaruh yang sangat besar untuk kegiatan berikutnya
3
Pertanyaan Seputar SDLC 3. Bagaimana cara menjadwalkan kegiatan pada SDLC?
Penjadwalan kegiatan SDLC dibahas dalam ilmu Manajemen Proyek (Project Management) dan tidak dibahas pada RPL
SOFTWARE DEVELOPMENT LIFE CYCLE 1. Planning: Why build the system? • System request, feasibility analysis, project estimation 2. Analysis: Who, what, when, where will the system be? • Requirement gathering, business process modeling 3. Design: How will the system work? • Program design, user interface design, data design 4. Implementation: System construction and delivery • System construction, testing, documentation installation
SOFTWARE DEVELOPMENT LIFE CYCLE 1.
Identifying business value (System Request) •
Lower costs
•
Increase profits
2. Analyze feasibility •
Technical Feasibility
•
Economic Feasibility
•
Organizational Feasibility
SOFTWARE DEVELOPMENT LIFE CYCLE 1.
Requirement gathering by answering the questions:
•
Who will use the system?
•
What will the system do?
•
When will it be used?
3. Identify possible improvements 4. Develop a concept for new system
SOFTWARE DEVELOPMENT LIFE CYCLE
SOFTWARE DEVELOPMENT LIFE CYCLE • Construction
1. Program Design (DFD) •
What programs need to be written
• New system is built and tested
•
Exactly what each program will do
• Often testing is the longest part • Testing
2. User Interface Design •
How users interact with system
• Unit Testing
•
Forms / reports used by the system
• Integration Testing • System Testing
3. Data Design (ER Diagrams) What data is to be stored
•
What format the data will be in
•
Where the data will be stored
and
2. Investigate the current system
3. Estimating the size of project
•
size
• User Acceptance Test • Installation • Old system is turned off (System Specification)
• New system is turned on
4
Processes and Deliverables Process
SDLC and Deliverables
Product
Planning (System Proposal)
Planning
System Proposal
Analysis Design
System Specification
Implementation
Implementation
Analysis
(New System)
(System Specification)
Design
New System with
(System Specification)
Testing/Maintenance Plan
1. Linear Process
Process Flow
1. Linear Process System/ Information Engineering
2. Iterative Process
Analysis
Design
Test
Code
3. Evolutionary Process
2. Iterative Process
3. Evolutionary Process
Communication
Deployment Communication
Planning
Modeling
Construction
Planning
Deployment
Construction
Modeling
5
Software Process Model
Linear Sequential Model
1. Linear Sequential Model • 1. Waterfall Model • 2. V Model • 3. RAD Model
2. Prototyping Model 3. Evolutionary Model • • • •
1. Incremental Model 2. Spiral Model 3. Component Assembly Model 4. Concurrent Development Model
System/ Information Engineering
Analysis
Design
Code
Test
4. Formal Method 5. Unified Process 6. 4GT Model 7. Agile Methods (ex: XP)
1. Waterfall Model Sebuah
1. Waterfall Model
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.
Roger S, Pressman
1. Waterfall Model
1. Waterfall Model
Ian Sommerville
Alan Dennis
6
Karakteristik Waterfall Model
Kelebihan Waterfall Model
1.
Setiap tahap menghasilkan dokumen di akhir tahapnya
1.
Menghasilkan mature process pada setiap tahapnya
2.
Tidak ada overlapping pada setiap tahapnya
2.
Mudah untuk diaplikasikan pada sebuah proyek
3.
Setiap tahapan akan punya pengaruh besar pada hasil
3.
Menghasilkan sistem yang terstruktur dengan baik
di tahap berikutnya
4.
Memiliki tingkat visibilitas yang tinggi (setiap tahap
4.
Memerlukan biaya besar jika melakukan rework
Kekurangan Waterfall Model 1.
Ketidak fleksibelan antar tahapan
2.
Susah
dalam
merespon
mempunyai dokumen yang jelas)
Modified Waterfall Model
(M.Kochanski)
Sashimi
perubahan
kebutuhan
customer
3.
Model ini hanya cocok jika: a. Kebutuhan customer sudah sangat jelas b. Perubahan kebutuhan dibatasi
Modified Waterfall Model Waterfall with Spiral Introduction
(M.Kochanski)
Modified Waterfall Model
(M.Kochanski)
Waterfall with Subprojects
7
TERIMA KASIH
8