Software Process Ika Novita Dewi ikadewiresearch dinus ac

  • Slides: 36
Download presentation
Software Process Ika Novita Dewi ikadewi@research. dinus. ac. id

Software Process Ika Novita Dewi ikadewi@research. dinus. ac. id

Outline 1 Software Engineering Layer 2 General Phase to Software Engineering 3 Software Development

Outline 1 Software Engineering Layer 2 General Phase to Software Engineering 3 Software Development Stages 4 The Software Process 5 Software Process Model 6 Selecting the Right Methodology

Software Engineering Layer Tools Methods Process Quality

Software Engineering Layer Tools Methods Process Quality

� Landasan Software Engineering difokuskan kepada kualitas � Proses : membatasi kerangka kerja untuk

� Landasan Software Engineering difokuskan kepada kualitas � Proses : membatasi kerangka kerja untuk serangkaian area proses kunci yang harus dibangun demi keefektifan penyanyampaian teknologi pengembangan software � Metode : memberikan teknik membangun Software. Metode merupakan serangkaian tugas analisis kebutuhan, konstruksi program, desain, pengujian dan pemeliharaan � Tools : memberi dukungan otomatis/semi otomatis pada proses dan metode yang ada Tools Methods Process Quality

General Phase to Software Engineering � Definition phase berfokus pada ‘apa’ (what): � �

General Phase to Software Engineering � Definition phase berfokus pada ‘apa’ (what): � � � Development phase berfokus pada ‘bagaimana’ (how): � � � � informasi yang akan diproses fungsi dan perfomance yang dibutuhkan tingkah laku sistem yang diharapkan interface yang akan dibangun batasan sistem yang sukses data dikonstruksikan fungsi-fungsi diimplementasikan detail prosedur akan diimplementasikan interface dikarakterisasi rancangan akan diterjemahkan ke dalam pemrograman pengujian dilakukan Maintenance phase berfokus pada ‘perubahan’ (change): � � � dihubungkan dengan koreksi kesalahan ketika lingkungan perangkat lunak berkembang sehubungan dengan perubahan kebutuhan pelanggan

� Changes in Phase Development � Correction (Koreksi) � � Adaptation (Adaptasi) � �

� Changes in Phase Development � Correction (Koreksi) � � Adaptation (Adaptasi) � � modifikasi software karena perubahan kebutuhan fungsional original (CPU, OS, aturan bisnis, karakteristik produk eksternal, dll) Enhancement (Perkembangan) � � membetulkan cacat atau kerusakan memperluas software sehingga melampaui kebutuhan fungsi originalnya Prevention (Pencegahan) � pencegahan sebagai antisipasi perubahan karena usia software

� Umbrella activities � Software project tracking and control � Formal technical reviews �

� 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

Software Development Stages Requirements Analysis & Specification Conceptual/System Design Detailed/Program Design Implementation /Coding Unit

Software Development Stages Requirements Analysis & Specification Conceptual/System Design Detailed/Program Design Implementation /Coding Unit & Integration Testing System Delivery Maintenance

The Software Process *SQA= Software Quality Assurance

The Software Process *SQA= Software Quality Assurance

- Kerangka kerja proses umum (Common Process Framework), dibangun dengan mendefinisikan sejumlah kecil aktivitas

- Kerangka kerja proses umum (Common Process Framework), dibangun dengan mendefinisikan sejumlah kecil aktivitas kerangka kerja, yang bisa diaplikasikan ke semua proyek software - Rangkaian tugas : tiap koleksi software mengerjakan tugas, hasil usaha software dan bisa dipesan, serta poin jaminan kualitas PL memungkinkan aktivitas kerangka kerja disesuaikan dengan karakteristik proyek software dan kebutuhan tim proyek - Aktivitas pelindung (Software Quality Assurance), jaminan kualitas software dan manajemen konfigurasi software tidak tergantung pada satupun aktivitas kerja, dan terjadi pada seluruh proses

Process Maturity Levels in Software � Pendekatan SEI (Software Engineering Institute) memberikan pengukuran terhadap

Process Maturity Levels in Software � Pendekatan SEI (Software Engineering Institute) memberikan pengukuran terhadap efektifitas global dari sebuah praktek software engineering perusahaan dan membangun lima tingkat kematangan proses Level 1: Initial • Software process yang ditandai dengan ad hoc dan chaotic (kesemrawutan) Level 2: Repeatable • Tracking / penelusuran masalah biaya, jadwal, dan fungsionalitas proyek-proyek terdahulu Level 3: Defined • Pendokumentasian, standarisasi, dan pengintegrasian software proses pada perangkat lunak organisasi besar Level 4: Managed • Pengukuran detail dan kualitas produksi software Level 5: Optimizing • Penambahan proses melalui umpan balik kuantitatif, gagasan inovatif pengujian, dan teknologi http: //www. sei. cmu. edu/

Software Process Model (software engineering paradigm) The phases of a problem solving loop The

Software Process Model (software engineering paradigm) The phases of a problem solving loop The phases within phases of the problem solving loop *Status quo =represents the current state of affairs A process model for software engineering is chosen based on the nature of the project and application, the methods and tools to be used, and the controls and deliverables that are required

� Linier Sequential Model � Waterfall Model � V Model � RAD Model �

� Linier Sequential Model � Waterfall Model � V Model � RAD Model � Prototyping Model � Evolutionary Model � Incremental Model � Spiral Model � Component Assembly Model � Concurrent Development Model � Formal Model � Fourth Generation Techniques

� Linear Sequential Model Pemodelan Sistem informasi Analisis Desain -Rekayasa dan pemodelan Sistem Informasi

� Linear Sequential Model Pemodelan Sistem informasi Analisis Desain -Rekayasa dan pemodelan Sistem Informasi -Analisis kebutuhan Software -Desain -Pengkodean -Pengujian -Pemeliharaan kode tes

� Waterfall Model Disebut juga ‘Classic Life Cycle’ Sebuah pendekatan pengembangan perangkat lunak yang

� Waterfall Model Disebut juga ‘Classic Life Cycle’ Sebuah pendekatan pengembangan perangkat lunak yang sistematik dan sekuensial Paradigma yang sudah lama sekali, tetapi masih banyak yang memakai karena dianggap masih sesuai dengan keadaan sekarang

� V-Model

� V-Model

� RAD (Rapid Application Development)

� RAD (Rapid Application Development)

� Adaptasi dari waterfall model yang: � menekankan siklus pengembangan perangkat lunak yang sangat

� Adaptasi dari waterfall model yang: � menekankan siklus pengembangan perangkat lunak yang sangat pendek � menggunakan pendekatan konstruksi berbasis komponen �Menciptakan sistem fungsional yang utuh dalam waktu 60 -90 hari �Untuk aplikasi sistem konstruksi �RAD menekankan komponen program yang bisa dipakai kembali / reusabilitas

Business Modelling Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaan: Informasi apa yang mengendalikan proses bisnis

Business Modelling Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaan: Informasi apa yang mengendalikan proses bisnis ? Informasi apa yang dimunculkan? Ke mana infomasi itu pergi? Siapa yang memprosesnya? Data 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 software dengan memakai komponen yang ada (bila memungkinkan) atau menciptakan komponen yang dapat dipakai lagi Testing and Turnover Menguji komponen baru

� Prototyping Dipakai jika : Sistem mempunyai resiko tinggi tidak jelas permasalahannya Lebih fokus

� Prototyping Dipakai jika : Sistem mempunyai resiko tinggi tidak jelas permasalahannya Lebih fokus pada perancangan dialog user – komputer bagaimana membuat dialog yang baik, ramah, mudah ? Sistem diminati oleh banyak pemakai mencari kesepakatan (dasar untuk menyamakan persepsi) User ingin cepat selesai user tidak sabar menunggu prototipe segera memperlihatkan bentuk kerja sistem Masa pakai singkat sistem hanya dipakai beberapa kali saja Ingin menunjukkan inovasi pengembang dapat menunjukkan kecanggihan Kebutuhan berubah-ubah user sulit menjelaskan kebutuhan

� Evolutionary prototyping Prototype Requirements Dimulai dari model, kemudian dikembangkan dan akhirnya dipakai Prototype

� Evolutionary prototyping Prototype Requirements Dimulai dari model, kemudian dikembangkan dan akhirnya dipakai Prototype Programming Reviews Validates? Release

� Throw-away prototyping System Programming Prototype Requirements System Testing Prototype Programming Reviews Validates? Hanya

� Throw-away prototyping System Programming Prototype Requirements System Testing Prototype Programming Reviews Validates? Hanya dikembangkan sebagai model untuk mencari blue-print Release

�Prototyping Specialty Frekuensi komunikasi user – developer meningkat pengembang akan selalu meminta pendapat user

�Prototyping Specialty Frekuensi komunikasi user – developer meningkat pengembang akan selalu meminta pendapat user Membantu analis dalam menentukan kebutuhan user yang sebenarnya, meminimalkan salah persepsi awal Peran user meningkat evaluasi oleh user berkali-kali, user bisa memberikan masukan setiap saat Pengembangan lebih cepat program bisa langsung dibuat, user melihat perkembangan tahap demi tahap Implementasi mudah user sudah mengenal perangkat lunak yang dikembangkan, user tidak akan merasa asing, sejak awal user sudah merasa memiliki

�Prototyping Weakness User sibuk user & pengembang harus sama-sama memiliki komitmen menyediakan waktu untuk

�Prototyping Weakness User sibuk user & pengembang harus sama-sama memiliki komitmen menyediakan waktu untuk bertemu User sulit melakukan evaluasi bentuk prototipe sering berubah, disesuaikan dengan kebutuhan user User ingin cepat selesai bentuk program sudah terlihat sejak awal, user merasa tidak akan lama lagi selesai, pengembang sering mengabaikan dokumentasi User berharap terlalu banyak keseringan evaluasi & komunikasi membuat user menjadi berubah keinginan dan tidak pasti dengan kebutuhan Prototipe bekerja tidak efisien lebih mementingkan keberhasilan

� Evolutionary Model � Incremental Model merupakan gabungan antara model linier sekuensial dan prototyping

� Evolutionary Model � Incremental Model merupakan gabungan antara model linier sekuensial dan prototyping � Setiap linier sekuen menghasilkan produk yang deliverables � Increment pertama merupakan produk inti (core), mengandung persyaratan/kebutuhan dasar yang � Penambahan dilakukan pada increment-increment berikutnya

�Spiral Model � Evolutionary process (pengembangan bertingkat) � Menggabungkan keunggulan prototyping dan waterfall �

�Spiral Model � Evolutionary process (pengembangan bertingkat) � Menggabungkan keunggulan prototyping dan waterfall � Memungkinkan dikembangkannya perangkat lunak secara bertahap (incremental) dan cepat � Terbagi atas 6 tahapan � � � customer communication planning risk analysis engineering construction & release customer evaluation

Planning Integration and test plan Risk Analysis development plan menentukan tujuan, alternatif, batasan sistem

Planning Integration and test plan Risk Analysis development plan menentukan tujuan, alternatif, batasan sistem dan budget analisa resiko berdasarkan evaluasi user analisa resiko berdasarkan kebutuhan awal development plan Requirements Customer Communication prototipe awal Engineering prototipe tingkat berikutnya Project Entry Point produk-jadi Customer Evaluation Construction & Release 28

� Component Assembly Model identify candidate components look up components in library construct n-

� Component Assembly Model identify candidate components look up components in library construct n- th iteration of system extract components if available put new components in library build components if unavailable Engineering, construction & release entry point customer evaluation Customer communication risk analysis planning

� Concurrent Development Model Analysis activity none Under development A waiting changes Under review

� Concurrent Development Model Analysis activity none Under development A waiting changes Under review Under revision done baselined

� Konkurensi Tercapai dengan Cara: � aktivitas sistem dan komponen yang berlangsung secara simultan

� Konkurensi Tercapai dengan Cara: � aktivitas sistem dan komponen yang berlangsung secara simultan 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.

� Formal Method Model � mencakup sekumpulan aktivitas yang membawa kepada spesifikasi matematis perangkat

� Formal Method Model � 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

� Fourth Generation Techniques (4 GT) � Terkait dengan penggunaan tools � Pengembang software

� Fourth Generation Techniques (4 GT) � Terkait dengan penggunaan tools � Pengembang software mendefinisikan karakteristik software secara 'high level'; tool secara otomatis akan menghasilkan kode � 4 GT mempercepat proses pengembangan perangkat lunak � Proses perancangan dokumentasi yang baik � Masih dipertanyakan beberapa pihak: efisiensi kode yang dihasilkan, kemudahan (relatif)

requirements gathering design strategy implementation using 4 GL testing

requirements gathering design strategy implementation using 4 GL testing

Selecting the Right Methodology Usefulness for Waterfall Parallel Phased Prototyping Throwaway Prototyping Extreme Programming

Selecting the Right Methodology Usefulness for Waterfall Parallel Phased Prototyping Throwaway Prototyping Extreme Programming Unclear user requirements Poor Good Excellent Unfamiliar technology Poor Good Poor Excellent Poor Complex systems Good Poor Excellent Poor Reliable systems Good Poor Excellent Good Short time schedule Poor Good Excellen t Excellent Good Excellent Schedule visibility Poor Excellen t Excellent Good

Thank You

Thank You