email Fasilkom|| 12/10/2013 METODOLOGI PENGEMBANGAN SOFTWARE Defri Kurniawan M.Kom REKAYASA PERANGKAT LUNAK LANJUT
email Fasilkom|| 12/10/2013
METODOLOGI PENGEMBANGANSOFTWARE
Defri Kurniawan M.Kom
REKAYASA PERANGKAT LUNAK LANJUT
email Fasilkom|| 12/10/2013
Content
Software Process Software Life Cycle Software Development Process System Development Life Cycle (SDLC) Metodologi Pengembangan Software Pemilihan Metode yang Tepat
email Fasilkom|| 12/10/2013
Software Process
Software Process merupakan serangkaiankegiatan yang mengarah ke produksi produkperangkat lunak (Ian Sommerville, 2007)
email Fasilkom|| 12/10/2013
Software Life Cycle
Siklus hidup perangkat lunak (Software Life Cycle) adalah urutan dari kegiatan yang ada didalam sebuah pengembangan perangkatlunak (Gustafson, 2002)
email Fasilkom|| 12/10/2013
Software Development Process
Software Development Process, juga dikenal sebagaiSoftware Development Life-Cycle / siklus hiduppengembangan perangkat lunak, adalah strukturyang dikenakan pada pengembangan produkperangkat lunak.
Software Life Cycle dan Software Process merupakanbagian dari siklus hidup pengembangan sistem(System Development Life Cycle)
email Fasilkom|| 12/10/2013
System Development Life Cycle (SDLC)
System Development life cycle (SDLC) / Siklus HidupPengembangan Sistem adalah proses memahamibagaimana sistem informasi (IS) dapat mendukungkebutuhan bisnis, perancangan sistem, membangunnya dan memberikannya kepadapengguna (Dennis, 2005).
email Fasilkom|| 12/10/2013
Pentingnya SDLC (Dennis, 2005)
Tahun 1996 suatu survey oleh the Standish Groupmenemukan bahwa 42% dari semua project SistemInformasi diserahkah sebelum tuntas (completion)
Begitu pula studi dilakukan oleh General Accounting Office tahun 1996 menemukan hal yang samasebesar 53% project Information System dipemerintahan US
Sebagian besar sistem diserahkan kepada penggunadengan keterlambatan, biaya yang lebih dariperencanaan dan mempunyai fitur yang kurang dariyang sebenarnya
email Fasilkom|| 12/10/2013
Ilustrasi
Bulding a software like building a house
Membangun rumahmembutuhkanperencanaan, analisa, design dankonstruksi/pembangunan/implementation
email Fasilkom|| 12/10/2013
Tahapan SDLC
SDLC memiliki 4 tahapan mendasar (Dennis, 2005):1. Planning2. Analysis3. Design4. Implementation
email Fasilkom|| 12/10/2013
PlanningPlanning
AnalysisAnalysis
DesignDesign
ImplementationImplementation
System Development Life Cycle (SDLC)
email Fasilkom|| 12/10/2013
Project Phases
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
email Fasilkom|| 12/10/2013
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
(System Proposal)
Planning
email Fasilkom|| 12/10/2013
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 system3. Identify possible improvements4. Develop a concept for new system
(System Specification)
Analysis
email Fasilkom|| 12/10/2013
Design
1. Program Design (UML Diagrams) 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)
email Fasilkom|| 12/10/2013
Implementation
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
email Fasilkom|| 12/10/2013
Processes and Products
Process Product
Planning
AnalysisDesign
Implementation
System Proposal
System Specification
New System withTesting/Maintenance Plan
Process Product
Planning
AnalysisDesign
Implementation
System Proposal
System Specification
New System withTesting/Maintenance Plan
email Fasilkom|| 12/10/2013
Planning(System Proposal)
Planning(System Proposal)
Analysis(System Specification)
Analysis(System Specification)
Design(System Specification)
Design(System Specification)
Implementation(New System)
Implementation(New System)
SDLC and Deliverables
email Fasilkom|| 12/10/2013
Suatu pendekatan formal untukmengimplementasikan SDLC
What is methodology?
email Fasilkom|| 12/10/2013
Major Methodologies
1. Structured Design Waterfall method Parallel development
2. RAD Development Phased Development Prototyping Throw-away Prototyping
3. Agile Development Extreme Programming (XP) Scrum
email Fasilkom|| 12/10/2013
Structured Design Methodology
Project berjalan dari satu metode ke metodeselanjutnya (move methodically)
Umumnya, suatu tahapan telah selesaisebelum memulai ke tahapan selanjutnya
email Fasilkom|| 12/10/2013
Waterfall Method
Kelebihan Mudah untuk dipahami, mudah untuk digunakan Tahapan dipahami dengan baik Kontrol management baik Bekerja baik ketika kualitas lebih penting dari biaya
atau jadwal Pengidentifikasian system request yang lama
sebelum memulai menuliskan kode (programming), meminimalisasi perubahan-perubahan yang terjadi
email Fasilkom|| 12/10/2013
Waterfall Method
Kekurangan Semua kebutuhan harus diketahui di awal Waktu yang lama antara system proposal dan
peyerahan sistem baru Design harus spesifik sebelum melakukan
programming Kemungkinannya kecil bagi customer untuk dapat
melihat preview sistem yang sedang dikerjakan
email Fasilkom|| 12/10/2013
When to use the Waterfall Model
Kebutuhan telah diketahui dengan baik Definisi produk stabil Versi baru dari suatu sistem yang telah ada
email Fasilkom|| 12/10/2013
Parallel Development
Salah satu metode design struktur lainnyaadalah Parallel Development
Seperti waterfall model, namun membaginyakepada beberapa sub-sub project danmenggabungkannya pada tahap akhir
email Fasilkom|| 12/10/2013
Parallel Development
Parallel Development mencoba untukmengatasi masalah penundaan yang lama antara tahap analisis dan pengiriman sistem.
Bukannya melakukan desain danimplementasi secara berurutan, Parallel Development melakukan desain umum untukseluruh sistem dan kemudian membagiproyek menjadi serangkaian sub proyek yang berbeda yang dapat dirancang danimplementasi secara paralel
email Fasilkom|| 12/10/2013
Rapid Application Development
1. Phased development A series of versions
2. Prototyping System prototyping
3. Throw-away prototyping Design prototyping
email Fasilkom|| 12/10/2013
Rapid Application Development
Critical elements to speed up the SDLC:CASE toolsVisual programming languagesCode generators
email Fasilkom|| 12/10/2013
Memecah sistem ke dalam beberapaserangkaian versi
Setiap versi memiliki Analis, Design, danImplementasi
Output dari suatu versi merupakan input untuk versi selanjutnya
Tahapan analisis mengidentifikasikeseluruhan konsep sistem kemudianmengkategorikan kebutuhan ke dalambeberapa versi.
RAD – Phased Development
email Fasilkom|| 12/10/2013
Kebutuhan mendasar dan pentingdimasukkan ke versi pertama dari sistem.
Tahapan analisis kemudian memasukidesign, dan implementasi, namun hanyapada kebutuhan yang diidentifikasi padaversi pertama.
Versi pertama telah diimplentasikan, pekerjaan versi 2 dimulai dengan tambahananalisis, ide-ide, isu-isu, pelajaran dari versi1, versi 2 dimulai, dst
Proses ini berlanjut sampai sistem selesai
RAD – Phased Development
email Fasilkom|| 12/10/2013
RAD – Phased Development
Kelebihan Mendapatkan sistem yang berguna untuk pengguna
dengan cepat
Kekurangan Sistem awal sengaja tidak lengkap System requirements berkembang tergantung
pandangan dari versi user
email Fasilkom|| 12/10/2013
Memulai dengan menyediakan fungsi sistemyang minimal minimal functionality disebutdengan "quick-and-dirty" prototype
Analisis, Design, Implementasi menghasilkanprototype. Perbaikan prototype dilakukanberulang-ulang dalam siklus (Analisis-Design-Implementasi)
Berhenti ketika prototype merupakan sebuahsistem kerja yang lengkap (sesuai)
RAD: Prototyping
email Fasilkom|| 12/10/2013
RAD: Prototyping
Prototipe pertama biasanya adalah bagian pertamadari sistem bahwa pengguna akan menggunakan ini
Ini ditunjukkan dengan pengguna dan sponsor proyekmemberikan komentar terhadap prototype yang dihasilkan, yang digunakan untuk menganalisakembali, mendesain ulang, dan melaksanakan re-prototipe kedua yang menyediakan beberapa fitur-fitur tambahan.
Proses ini terus berlanjut dalam siklus sampai analis, pengguna, dan sponsor sepakat prototipe (sekarangdisebut sistem) diinstal,
email Fasilkom|| 12/10/2013
RAD: Prototyping
Kelebihan Sangat cepat memberikan sistem bagi pengguna
untuk berinteraksi (bahkan jika organisasi itu tidaksiap/tidak memiliki gambaran)
Prototyping meyakinkan klien bahwa tim proyekbekerja dengan baik (tidak ada penundaan yang lama di mana pengguna melihat kemajuan),
Prototyping membantu lebih cepat memperbaikipersyaratan nyata (pengguna dapat berinteraksidengan prototipe untuk lebih memahami apa yang bisa dan tidak bisa lakukan).
email Fasilkom|| 12/10/2013
RAD: Prototyping
Kekurangan Sistem rilis yang cepat memiliki tantangan untuk
mencoba melakukan dengan hati-hati pada faseanalisis.
Hal ini dapat menyebabkan masalah dalampengembangan sistem yang kompleks karena isu danpermasalahan mendasar yang tidak diakui dengan baiksampai ke dalam proses pembangunan
email Fasilkom|| 12/10/2013
RAD: Throw-Away Prototyping
Throw-Away prototyping menggunakan prototypinguntuk tujuan yang berbeda dari prototyping sebelumnya
Melakukan analisis secara menyeluruh, untukmengumpulkan informasi & mengembangkan ide-ide untuk sebuah konsep sistem.
Masalah yang muncul diujicobakan/diselesaikandengan menganalisa, mendesign, & membangunsebuah prototype (yang dinamakan design prototype)
Yang dibangun merupakan fitur yang blm dipahamidengan jelas
email Fasilkom|| 12/10/2013
RAD: Throw-Away Prototyping
Sebagai contoh, pengguna tidak sepenuhnya jelastentang bagaimana sistem entry order harusbekerja.
Tim analis membangun serangkaian halaman HTML yang diperlihatkan untuk membantu klienmemvisualisasikan sistem yang dibangun.
Jika menginginkan program canggih di Java, tim bisamenulis bagian dari program dengan data contoh(sample) untuk memastikan bahwa mereka bisamendapatkan apa yang diinginkan klien dengantepat
email Fasilkom|| 12/10/2013
RAD: Throw-Away Prototyping
Namun ini hanyalah design prototype (rancangan) ini bukan bagian dari produk
Membuat design prototype untuk memahamikebutuhan
Jika design prototype merupakan hal yang diinginkan & dapat mengatasi masalah, design prototype dibuang, selanjutnya memasuki tahapdesign, implementasi, system yang sesungguhnya.
email Fasilkom|| 12/10/2013
RAD: Throw-Away Prototyping
Kelebihan Setiap prototype yang dibangun dapat
meminimalkan resiko terkait isu-isu / masalah yang akan dihadapi oleh sistem
Menyeimbangkan fase analisis & design
Kekurangan Sistem yang dikembangkan bergantung pada
rancangan prototype
email Fasilkom|| 12/10/2013
Perbedaan Prototyping & ThrowAway P
Prototype digunakan sampai sistem final Sedangkan Throw Away, prototype tidak
digunakan/dibuang
email Fasilkom|| 12/10/2013
Selecting the Right Methodology
1. Clarity of User Requirements (KejelasanPersyaratan Pengguna)
2. Familiarity with Technology (Kefamiliaran denganteknologi)
3. System Complexity (Kompleksitas Sistem)4. System Reliability (Keandalan Sistem)5. Short Time Schedules (Jadwal Pendek)6. Schedule Visibility