Tim RPL Program Studi Teknik Informatika Software Process Tim RPL Program Studi Teknik Informatika
Tujuan : Mengenalkan Proses dalam Pembangunan Perangkat Lunak Menyediakan sebuah framework untuk mengelola aktivitas. Memahami penilaian proses perangkat lunak
Review Software: Software Engineering: System Engineering: sekumpulan item-item atau objek yang membentuk konfigurasi yang melibatkan program, dokumen, data dan lain-lain. Software Engineering: teknologi yang digunakan dalam membangun software, dengan melalui serangkaian proses, menggunakan sekumpulan metode dan alat bantu (tools) System Engineering: semua aspek pembangunan sistem dasar komputer meliputi hardware, software and process engineering
A Layered Technology Software Engineering Organizational commitment to quality is the basis of the process. Process provides the “glue” for the technology used in the SW development and their applications. Technology is composed of methods and the tools. CASE tools.
Software Process Sekumpulan aktivitas, aksi dan tugas yang dilakukan untuk mengembangkan PL Aktivitas untuk mencapai tujuan umum (komunikasi dengan stakeholder) Aksi meliputi serangkaian tugas (eg: desain arsitektur) yang menghasilkan produk utama (eg: model arsitektur) Tugas (task) fokus pada tujuan khusus yang menghasilkan keluaran yang terukur (eg: unit testing)
Generic Process Framework Task sets activities are unique for each project and umbrella activities are performed for all projects and are fairly equal in different projects.
Common Process Framework Communication Komunikasi dan kolaborasi dengan pelanggan untuk memahami tujuan dan mengumpulkan kebutuhan Planning Menetapkan rencana kerja, risiko teknis, kebutuhan sumber daya, produk kerja yang dihasilkan, dan mendefinisikan jadwal kerja Modeling Pembuatan model untuk membantu pengembang dan pelanggan memahami kebutuhan dan desain perangkat lunak Construction Mengembangkan desain, code generation and testing Deployment PL dikirim ke penguna untuk di evaluasi dan diberi feedback
SE Umbrella Activities Serangkaian aktivitas yang dapat diaplikasikan dalam berbagai proses PL Software project tracking and control Risk management Software quality assurance Technical reviews Measurement Software configuration management Reusability management Work product preparation and production
Proses Flow Satu aspek penting dari software proses adalah proses flow, menjelaskan bagaimana aktivitas framework, aksi, tugas-tugas yang terjadi dengan setiap framework activity dikelola dengan terurut, seperti pada gambar berikut :
.......Lanjutan Proses Flow Modeling Construction Deployment Communication Planning Modeling Construction Deployment Parallel Process Flow
Process Patterns Process pattern menjelaskan proses yang berhubungan dengan masalah yang dihadapi selama pekerjaan software engineering, mengidentifikasi lingkungan dimana masalah ditemui/dihadapi dan menyarankan satu atau lebih solusi yang tepat Process pattern menyediakan template – sebuah metode yang konsisten untuk menggambarkan solusi dari masalah dalam konteks proses software. Dengan menggunakan process pattern diharapkan masalah yang dihadapi dapat segera diatasi.
Maintenance (Change) Correction Adaptation Enhancement Prevention memperbaiki kerusakan yang ditemukan dalam PL Adaptation Mengakodomasi perubahan dalam lingkungan Enhancement Peningkatan performance PL dari kebutuhan aslinya Prevention Perubahan program sehingga mudah diperbaiki, beradaptasi atau ditingkatkan 1.Corrective maintenance corrects the defects found in the software. 2. Adaptive maintenance provides for changes needed to accommodate changes in the environment 3. Perfective maintenance extends software performance beyond original requirements. (Perbaikan) 4. Preventive maintenance (software reengineering); changes that make programs easier to correct, adapt or enhance
Proses Assessment and Improvement Software Process tidak menjamin bahwa software akan dikirim tepat waktu, memenuhi kebutuhan pelanggan, atau hal tersebut akan menunjukkan karakteristik yang akan menyebabkan karakteristik kualitas berjangka waktu panjang. Proses dapat dinilai untuk memastikan bahwa hal tersebut memenuhi kriteria proses dasar yang telah terbukti penting untuk keberhasilan software engineering.
Penilaian SW Proses Sejumlah pendekatan yang berbeda pada penilaian software proses dan perbaikan-perbaikan telah diusulkan selama beberapa dekade terakhir. Standard CMMI Assessment Method for process Improvement (SCAMPI) CMM-Based Appraisal for Internal Process Improvement (CBA IPI) SPICE (ISO/IEC1504) ISO 9001:2000 for Software
Capability Maturity Model Integration (CMMI) Level 5: Optimizing Level 4 : Quantitatively Managed Level 3 : Defined Level 2 : Managed Level 1 : Performed 1. Initial: SW process is ad hoc, few processes are defined; success depends on individual efforts 2. Repeatable: basic project management (track cost, time and performance (functionality)); repetition of the behavior which contributed to success in previous projects 3. Defined: SW process for the engineering and management are documented and standardized; all processes use an approved approach 4. Managed: detailed measures of software process and product are collected; The process and the product are quantitatively understood 5. Optimized: continuous process improvement using process feedback and the product innovative ideas... Level 0 : Incomplete
SEI - CMMI LEVEL Optimizing Quantitatively Managed Defined Managed Performed FOKUS Continuous process improvement Quantitative management Process standardization Basic project management
Sebuah laporan 1999 menunjukkan bahwa, pada tahun 1997: – Hanya 2% dari organisasi perangkat lunak telah mencapai CMM level 4 atau 5 – Hampir 62% masih di Level 1 – Karena memerlukan sekitar 4 tahun untuk mencapai level 3, jumlah organisasi di Tingkat atas (4 & 5) masih belum besar (di 2003) * IEEE Software, Mei / Juni 1999
CMMI L0-L2 L 0 : Incomplete, Proses tidak dilakukan atau tidak mencapai semua tujuan yang didefinisikan pada level 1 L 1 : Performed, Proses dilakukan, tugas yang dibutuhkan untuk menghasilkan produk kerja sedang dibangun. L 2 : Managed, orang yang melakukan pekerjaan memiliki sumber daya yang memadai, dalam melakukan pekerjaannya, stakeholder terlibat aktif, tugas kerja dan produk dipantau, dievaluasi, sesuai deskripsi proses.
LEVEL 3 L 3 : Defined, Pengelolaan, dan proses rekayasa terdokumentasi, terstandar, dan terintegrasi dalam proses perangkat lunak di seluruh organisasi. Foster-Miller achieved SW-CMM Level 3 certification in December of 2005 to processes as defined by the Software Engineering Institute at Carnegie Mellon ... Weserv Systems International, Inc. (WeServ), a wholly owned subsidiary of Fujitsu Philippines, Inc., recently passed the Capability Maturity Model ... 11 October 2013, Jakarta, Indonesia—PT Sigma Cipta Caraka (telkomsigma); for Finance and Non Banking Solution BU, Banking Solution BU, Product and Technology BU today announced that it has been appraised at Level 3 of the CMMI Institute’s Capability Maturity Model Integration (CMMI).
CMM LEVEL 4 L 4 : Quantitatively Managed, software process dan produk dipahami secara terukur dan dikontrol menggunakan ukuran yang detail. CMM Level 4 Certified Company | Software Application Development Trigent is an SEI CMM Level 4 certified company with development centers in the US and India. Provides information about Trigent's software application ... www.trigent.com/company/cmm-certified-company.htm On April 16th, Kingdee passed CMM Level 4 evaluation with the United States' ... At present, less than 100 software companies pass CMM Level 4 worldwide and ... global.kingdee.com/en/news/dongtai/76/2004-04/542.htm
CMM LEVEL 5 L 5 : Optimizing : Peningkatan proses yang terus menerus diaktifkan oleh umpan balik yang terukur dari proses dan ide-ide pengujian yang kreatif. Managing IT: Life After CMM Level 5 More than half the world's CMM Level 5 companies are based in India. Software firms also used CMM to establish credentials as developers of quality software ... www.india-today.com/ctoday/20020401/mit2.html SEI CMM Level 5 Wipro is the first software services company in the world ... We achieved CMM level 5 certification in June, 1999. As part of the CMM level ... www.wipro.com/aboutus/quality/seicmm.htm PT Take United Indonesia https://www.linkedin.com/company/pt-take-united-indonesia
CMM LEVEL 5 http://dqindia.ciol.com/content/advantage/103102703.asp Why “India Inside” Spells Quality Did you know that 75% of the world’s CMM Level 5 software centers were in India? Here’s how the quality movement transformed the Indian IT services industry (Monday, October 27, 2003) Europe, and the need for ISO certification, provided the trigger to the quality movement in India. But the real impetus came after Motorola’s software center at Bangalore became the world’s second CMM Level 5 unit in 1994 (the first was at NASA) Even for those familiar with India’s software industry, this is a startling number. There are 80 software centers on the planet that are assessed at CMM Level 5.Of all those centers, 60 are in India.
Prinsip dalam Software Engineering Pada level proses, prinsip utama menetapkan sebuah filosofi dasar yang memandu tim software spt melakukan aktivitas kerangka kerja dan “umbrella activities”, menavigasi aliran proses, dan menghasilkan sekumpulan produk kerja software. Pada level practice, prinsip utama menetapkan sekumpulan nilai dan peran yang berfungsi sebagai panduan dalam menganalisis masalah, merancang solusi, mengimplementasikan dan menguji resolusi, dan akhirnya menyebarkan software pada komunitas user.
Communication Principles Mendengarkan Persiapan sebelum berkomunikasi Seseorang harus memfasilitasi aktivitas Aktivitas komunikasi face to face Komunikasi face-to-face adalah yang terbaik Catat dan dokumentasikan keputusan Berusaha untuk berkolaburasi Tetap fokus : modularize your discussion Bila sesuatu tidak jelas, gambarkan. Sekalinya setuju terhadap sesuatu, move on Negotiation adalah bukan sebuah kontes atau sebuah game
Planning Principles Memahami cakupan project Melibatkan stakeholders dalam aktivitas perencanaan Memahami bahwa perencanaan itu selalu berulang (Recognize that planning is iterative) Memperkirakan berdasarkan pada apa yang anda ketahui Pertimbangkan resiko yang didefinisikan pada saat perencanaan. Be realistic Penambahan aturan seperti yang didefisikan pada perencanaan Menentukan bagaimana anda bermaksud untuk menjamin kualitas. Menjelaskan bagaimana anda bermaksud untuk mengakomodasi prubahan. Sering menelusuri perencanaan dan membuat penyesuaian yang diperlukan
Modeling Principles Tujuan utama dari tim software adalah membangun perangkat lunak, bukan membuat model. Jangan membuat lebih banyak model dari yang dibutuhkan Berusaha untuk menghasilkan model yang sederhana yang akan menyelesaiakan masalah atau software. Membangun model dalam sebuah cara yang membuat mereka setuju untuk merubah. Dapat menyatakan tujuan secara jelas untuk setiap model yang dibuat.
Modeling principle [2] Mengadaptasi model yang dibangun pada sistem. Coba membangun model yang berguna, tetapi lupa membangun model yang sempurna. Jangan menjadi dogmatis tentang sintaks. Jika berhasil mengkomunikasikan konten, representasi adalah sekunder. Jika naluri memberitahu bahwa model tersebut tidak tepat walaupun tampaknya di atas kertas baik-baik saja, mungkin kita punya alasan untuk khawatir
Construction Principles Coding principles Validation Principles Testing Principles
Coding Principles Preparation principles : Sebelum menulis 1 baris kode, pastikan: Memahami masalah yang sedang dipecahkan Memahami prinsip dan konsep dasar perancangan Memilih bahasa pemrograman yang dibutuhkan perangkat lunak dan lingkungan dimana akan beroperasi. Memilih lingkungan pemrograman yang menyediakan tools yang akan membuat pekerjaan menjadi lebih mudah. Membuat sekumpulan pengujian unit yang akan dijalankan ketika komponen yang dikodekan lengkap.
Programming Principles Batasi algoritma dengan mengikuti pemrograman terstruktur. Pertimbangkan penggunaan pair programming. Pilih struktur data yang akan memenuhi kebutuhan perancangan.
Validation Principes Setelah melengkapi kode pertama, pastikan: Lakukan review kode Lakukan pengujian unit dan memperbaiki kesalahan yang ditemukan Refactor the code
Testing Objectives : Pengujian adalah proses eksekusi sebuah program dengan maksud menemukan kesalahan. Sebuah kasus uji yang baik adalah yang memilii probabilitas tinggi menemukan kesalahan yang belum ditemukan. Pengujian yang sukses salah satunya adalah bila dapat mengungkap kesalahan yang belum ditemukan/ tidak diduga sebelumnya.
Testing Principles : P-1. Semua pengujian harus dilacak dengan kebutuhan pelanggan. P-2. Pengujian harus direncanakan jauh sebelum memulai pengujian. P-3. Prinsip Pareto berlaku untuk software testing. P-4. Pengujian harus dimulai dari “in the small” dan menuju ke pengujian”in the large”. P-5. Pengujian yang mendalam adalah sesuatu yang tidak mungkin
Deployment Principles P-1: Harapan pelanggan untuk software harus dikelola. P-2: Sebuah paket kiriman lengkap harus dirakit dan diuji. P-3: dukungan harus ditetapkan sebelum software dikirim P-4: materi instruksi yang tepat harus disediakan pada end user. P-5: software yang penuh cacat harus diperbaiki dalu, delivered later.
Referensi Roger S. Pressman, “Software Engineering A Practitioner’s Approach”, 7th edition, McGraw-Hill International Edition, tahun 2010. Ian Sommervile,”Software Engineering”, 8th edition,China Machine Press. 2006
TERIMA KASIH