Teknik Informatika S1 Pengertian Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak Software Process (1) Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi, desain, konstruksi, testing sampai pemeliharaan setelah digunakan. SOFTWARE PROCESS 1. Framework Proses 2. CMII (Capability Maturity Model Integration) 3. SDLC ( Software Development Life Cycle) 4. Process Flow 5. Model Process Software Engineering Layers Tools Methods Process Quality Generic View of Software Engineering 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? * Bagaimanakah entitas (dan pemecahan) tersebut diadakan? * Bagaimanakah entitas tersebut dibangun? * Pendekatan apakah yang akan dipakai untuk menemukan kesalahan-kesalahan yang dibuat dalam desain dan kontruksi dari entitas tersebut? General Phase to Software Engineering(1) *Definition phase berfokus pada apa (what): * informasi yang akan diproses * fungsi dan perfomance yang dibutuhkan * tingkah laku sistem yang diharapkan * interface yang akan dibangun * batasan sistem yang sukses * 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): * data dikonstruksikan * fungsi-fungsi diimplementasikan * detail prosedur akan diimplementasikan * interface dikarakterisasi General Phase to Software Engineering(3) *Maintenance phase berfokus pada perubahan (change): * dihubungkan dengan koreksi kesalahan * ketika lingkungan perangkat lunak berkembang * sehubungan dengan perubahan kebutuhan pelanggan * rancangan akan diterjemahkan ke dalam pemrograman * pengujian dilakukan Changes in Phase Development *Correction (Koreksi) * Membetulkan cacat atau kerusakan *Adaptation (Adaptasi) * Modifikasi perangkat lunak karena perubahan kebutuhan fungsional original (CPU, OS, aturan bisnis, karakteristik produk eksternal, dll) Changes in Phase Development *Enhancement (Perkembangan) * Memperluas perangkat lunak sehingga melampaui kebutuhan fungsi originalnya *Prevention (Pencegahan) * Pencegahan sebagai antisipasi perubahan karena usia perangkat lunak Umbrella Activities *Software project tracking and control *Formal technical reviews *Software quality assurance *Software configuration management *Document preparation and production *Reusability management *Measurement *Risk management Aktivitas Pembangunan Perangkat Lunak 1 Gathering Requirements 2 Analysis 3 Design 4 Coding 5 Testing 6 Documentation 7 Maintenance 2
Framework Proses Common Process Framework Framework Activities Task Sets Tasks Milestones, deliverables SQA points Umbrella Activities CMMI (Capability Maturity Model Integration) Level 2 Managed Characteristics of Maturity levels Level 3 Defined Level 4 Quantitatively Managed Level 5 Optimizing 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 Level 1 Initial Processes Unpredictable, poorly controlled and reactive Implementation Planning Analysis Pengertian Sekumpulan Kegiatan dan keterhubungannya satu sama lain untuk mendukung pembangunan dari sebuah perangkat lunak. Design Pertanyaan Seputar SDLC 1. Aktifitas mana yang harus dipilih dalam pembangunan perangkat lunak? Pertanyaan Seputar SDLC 2. Hubungan antar aktifitas dalam SDLC? SDLC berisi proses yang bukan untuk dipilih tapi untuk dilakukan secara keseluruhan 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 1. Planning: Why build the system? System request, feasibility analysis, project size 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 and installation 1. Identifying business value (System Request) Lower costs Increase profits 2. Analyze feasibility Technical Feasibility Economic Feasibility Organizational Feasibility 3. Estimating the size of project 1. Requirement gathering by answering the questions: Who will use the system? What will the system do? When will it be used? 2. Investigate the current system 3. Identify possible improvements 4. Develop a concept for new system 1. Program Design (DFD) What programs need to be written Exactly what each program will do 2. User Interface Design How users interact with system Forms / reports used by the system 3. Data Design (ER Diagrams) What data is to be stored What format the data will be in Where the data will be stored (System Specification) Construction New system is built and tested Often testing is the longest part Testing Unit Testing Integration Testing System Testing User Acceptance Test Installation Old system is turned off New system is turned on 4
Processes and Deliverables SDLC and Deliverables Process Planning Product System Proposal Planning (System Proposal) Analysis Design System Specification Implementation (New System) Analysis (System Specification) Implementation New System with Testing/Maintenance Plan Design (System Specification) Process Flow 1. Linear Process 1. Linear Process 2. Iterative Process System/ Information Engineering Analysis Design Code Test 3. Evolutionary Process 2. Iterative Process 3. Evolutionary Process Communication Deployment Planning Communication Planning Modeling Construction 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 4. Formal Method System/ Information Engineering Analysis Design Code Test 5. Unified Process 6. 4GT Model 7. Agile Methods (ex: XP) 1. Waterfall Model 1. Waterfall Model 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. 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 2. Tidak ada overlapping pada setiap tahapnya 3. Setiap tahapan akan punya pengaruh besar pada hasil di tahap berikutnya 4. Memerlukan biaya besar jika melakukan rework 1. Menghasilkan mature process pada setiap tahapnya 2. Mudah untuk diaplikasikan pada sebuah proyek 3. Menghasilkan sistem yang terstruktur dengan baik 4. Memiliki tingkat visibilitas yang tinggi (setiap tahap mempunyai dokumen yang jelas) Kekurangan Waterfall Model 1. Ketidak fleksibelan antar tahapan 2. Susah dalam merespon perubahan kebutuhan customer 3. Model ini hanya cocok jika: a. Kebutuhan customer sudah sangat jelas b. Perubahan kebutuhan dibatasi Sashimi Modified Waterfall Model (M.Kochanski) Modified Waterfall Model Waterfall with Spiral Introduction (M.Kochanski) Modified Waterfall Model Waterfall with Subprojects (M.Kochanski) 7
TERIMA KASIH 8