3. proses software

25
 1 Rekayasa Perangkat Lunak 1 Proses Sof twa re Arna Fariza PENS-ITS Rekayasa Perangkat Lunak 2 Pro ses Sof tware Sekumpulan aktifitas yang saling terkait untuk spesifikasi, desain, implementasi dan testing sistem software

Upload: mega-hayuning-puspa-dewi

Post on 22-Jul-2015

63 views

Category:

Documents


0 download

TRANSCRIPT

Proses SoftwareArna Fariza PENS-ITS

1 Rekayasa Perangkat Lunak

Proses Software

Sekumpulan aktifitas yang saling terkait untuk spesifikasi, desain, implementasi dan testing sistem software

2 Rekayasa Perangkat Lunak

1

TujuanMemperkenalkan model proses software Menggambarkan beberapa model proses dan kapan digunakan Menggambarkan outline model proses untuk rekayasa kebutuhan, pengembangan software, testing dan evolusi Mengenalkan teknologi CASE untuk mendukung aktifitas proses software

3 Rekayasa Perangkat Lunak

TopikModel proses software Iterasi proses Spesifikasi software Desain dan implementasi software Validasi software Evolusi software Automated process support

4 Rekayasa Perangkat Lunak

2

Proses SoftwareSekumpulan aktifitas terstruktur yang dibutuhkan untuk mengembangkan sistem softwareo o o o Spesifikasi Desain Validasi Evolusi

Model proses software adalah representasi abstrak dari proses. Merupakan gambaran dari proses dari beberapa perspektif tertentu5 Rekayasa Perangkat Lunak

Model Proses Software GenerikModel waterfallo Membagi dan membedakan fase spesifikasi dan pengembangan

Pengembangan Evolusionero Spesifikasi dan pengembangan terpisah

Pengembangan sistem Formalo Model sistem matematis yang secara formal diterjemahkan ke dalam implementasi

Pengembangan Reuse-basedo Sistem dibangun dari komponen yang sudah ada6 Rekayasa Perangkat Lunak

3

Model WaterfallDefinisi kebutuhan Desain sistem dan software Implementasi dan testing unit Integrasi dan testing sistem Operasi dan maintenance7 Rekayasa Perangkat Lunak

Fase model WaterfallAnalisa dan definisi kebutuhan Desain sistem dan software Implementasi dan unit testing Integrasi dan testing sistem Operasi dan maintenance Kekurangan dari model waterfall adalah kesulitan untuk mengakomodasi perubahan setelah proses berjalan

8 Rekayasa Perangkat Lunak

4

Permasalahan Model WaterfallTidak fleksibel dalam pembagian proyek ke dalam tingkat yang berbeda Sulit untuk merespon perubahan kebutuhan konsumen Sehingga model ini hanya cocok jika kebutuhan sudah dimengerti dengan baik

9 Rekayasa Perangkat Lunak

Pengembangan EvolusionerPengembangan Exploratoryo Obyektif : bekerja dengan konsumen dan melibatkan sistem akhir dari spesifikasi skema inisial. Dimulai dengan kebutuhan yang dimengerti dengan baik

Throw-away prototypingo Obyektif : mengerti kebutuhan sistem. Dimulai dengan kebutuhan yang tidak dimengerti dengan baik

10 Rekayasa Perangkat Lunak

5

Pengembangan EvolusionerAktifitas yang berjalan

Spesifikasi

Versi inisial

Deskripsi outline

Pengembangan

Versi menengah

Validasi

Versi akhir

11 Rekayasa Perangkat Lunak

Pengembangan EvolusionerPermasalahano Tidak ada visibilitas proses o Sistem biasanya tidak terstruktur dengan baik o Kemampuan khusus (misalnya bahasa untuk prototipe cepat) kemungkinan diperlukan

Aplikasio Untuk sistem interaktif berukuran kecil atau medium o Untuk bagian dari sistem besar (misalnya user interface) o Untuk sistem dengan daur hidup pendek12 Rekayasa Perangkat Lunak

6

Pengembangan Sistem FormalBerbasis transformasi dari spesifikasi matematis melalui representasi yang berbeda untuk program yg dapat dieksekusi Transformasi adalah pemelihara kebenaran sehingga dapat menunjukkan program sesuai spesifikasinya Merupakan pendekatan Cleanroom untuk pengembangan software

13 Rekayasa Perangkat Lunak

Pengembangan Sistem Formal

Definisi kebutuhan

Spesifikasi formal

Transformasi formal

Integrasi dan testing sistem

14 Rekayasa Perangkat Lunak

7

Transformasi FormalTransformasi Formal

T1

T2

T3

T4

Spesifikasi formal

R1

R2

R3

Eksekusi Program

P1

P2

P3

P4

Pembuktian kebenaran transformasi15 Rekayasa Perangkat Lunak

Pengembangan Sistem FormalPermasalahano Perlu kemampuan dan training khusus untuk mengaplikasikan teknik ini o Secara formal sulit untuk menentukan beberapa aspek dari sistem seperti antarmuka user

Aplikasio Sistem kritis terutama dimana keselamatan dan keamanan harus dibuat sebelum sistem beroperasi

16 Rekayasa Perangkat Lunak

8

Pengembangan Reuse-orientedBerbasis systematic reuse dimana sistem diintegrasikan dalam komponen yang sudah ada atau sistem COTS (Commercial-off-theshelf) Level Proseso o o o Analisa komponen Modifikasi kebutuhan Desain sistem dengan reuse Pengembangan dan integrasi

Pendekatan ini menjadi lebih penting tetapi masih terbatas penggunaannya17 Rekayasa Perangkat Lunak

Pengembangan Reuse-oriented

Spesifikasi kebutuhan

Analisa komponen

Modifikasi kebutuhan

Desain sistem dengan reuse

Pengembangan dan integrasi

Validasi sistem

18 Rekayasa Perangkat Lunak

9

Iterasi ProsesKebutuhan sistem SELALU berkembang selama proyek berlangsung sehingga iterasi proses dimana level sebelumnya dilakukan rework merupakan bagian dari proses untuk sistem yang besar Iterasi dapat diaplikasikan untuk semua model proses generik 2 pendekatan :o Pengembangan incremental o Pengembangan spiral19 Rekayasa Perangkat Lunak

Pengembangan IncrementalPelepasan sistem tidak dalam bentuk pelepasan tunggal, tetapi pengembangan dan pelepasan dibagi ke dalam increment dimana setiap increment melepaskan bagian dari fungsional yang dibutuhkan Kebutuhan user diprioritaskan dan kebutuhan prioritas tertinggi dimasukkan dalam increment awal Bila pengembangan increment dimulai, kebutuhan dibekukan lebih dahulu dan setelah itu kebutuhan untuk increment selanjutnya dapat dilanjutkan20 Rekayasa Perangkat Lunak

10

Incremental development

Mendefinisikan kebutuhan outline

Increment kebutuhan

Desain arsitektur sistem

Mengembangkan Increment sistem

Validasi increment

Integrasi increment

Validasi sistem

Sistem final System incomplete

21 Rekayasa Perangkat Lunak

Keuntungan Pengembanan IncrementalNilai konsumen dapat diserahkan pada setiap increment sehingga fungsional sistem tersediah lebih dahulu increment awal berfungsi sebagai prototype untuk membantu memperoleh kebutuhan increment selanjutnya Resiko lebih rendah dari keseluruhan kegagalan proyek Layanan sistem prioritas tertinggi cenderung menerima testing terbanyak22 Rekayasa Perangkat Lunak

11

Pemrograman ExtremePendekatan baru untuk pengembangan berbasis pengembangan dan pelepasan fungsional increment yang sangat kecil Mempercayakan perbaikan konstan, keterlibatan user dalam tim pengembang dan pemrograman

23 Rekayasa Perangkat Lunak

Pengembangan SpiralProses direpresentasikan sebagai spiral bukan sebagai urutan aktivitas dengan melihat sistem sebelumnya (backtracking) Setiap loop dalam spiral merepresentasikan fase dalam proses Tidak ada fase yang tetap seperti spesifikasi atau desain- loop dalam spiral dipilih tergantung pada apa yang dibutuhkan Resiko ditaksir secara eksplisit dan penyelesaian sepanjang proses24 Rekayasa Perangkat Lunak

12

Model Spiral model pada Proses SoftwareMenentukan alternatif dan batasan obyektif Analisa resiko Analisa resiko Analisa resiko Prototype 3 Analisa resiko Prototype 2 Prototype 1 Simulasi, model, benchmark Prototype operasional Evaluasi identifikasi alternative, pemecahan resiko

REVIEW Rencana kebutuhan dan rencana daur hidup

Concept o f Operati onValidasi kebutuhan Desain V&V

Kebutuhan S/W

Desain Produk

Rencana Pengembangan Integrasi dan test plan Perencanaan fase berikutnya

Desain detail Kode

Tes Integrasi

Tes Unit

Servis

Tes penerimaan

Mengembangkan, verifikasi produk level berikutnya

25

Rekayasa Perangkat Lunak

Sektor Model SpiralSetting Obyektifo Obyektif khusus untuk fase diidentifikasi

Penaksiran dan pengurangan resikoo Resiko ditaksir dan aktifitas didigunakan untuk mengurangi resiko

Pengembangan dan Validasio Model pengembangan untuk sistem dipilih yang berupa model generik

Perencanaano Proyek direview dan fase berikutnya dari spiral direncanakan26 Rekayasa Perangkat Lunak

13

Spesifikasi SoftwareDari proses yang sudah berjalan ditentukan layanan apa yang dibutuhkan dan batasan operasi dan pengembangan sistem Proses rekayasa kebutuhano o o o Studi kelayakan Perolehan dan analisa kebutuhan Spesifikasi kebutuhan Validasi kebutuhan

27 Rekayasa Perangkat Lunak

Proses Rekayasa KebutuhanStudi kelayakan Mendapatkan dan analisa kebutuhan Spesifikasi kebutuhan Laporan kelayakan Model sistem Kebutuhan sistem dan user Dokumen kebutuhan Validasi kebutuhan

28 Rekayasa Perangkat Lunak

14

Implementasi dan Desain SoftwareProses mengubah spesifikasi sistem menjadi sistem yang dijalankan Desain softwareo Mendesain struktur software yang didapatkan dari spesifikasi

Implementasio Mengubah struktur software ke dalam program yang dieksekusi

Aktifitas desain dan implementasi saling berhubungan dan mungkin terpisah29 Rekayasa Perangkat Lunak

Aktifitas Proses DesainDesain arsitektur Spesifikasi abstrak Desain antar muka Desain komponen Desain struktur data Desain algoritma

30 Rekayasa Perangkat Lunak

15

Proses Desain Software

Spesifikasi kebutuhan Aktifitas desain

Desain arsitektur

Spesifikasi abstrak

Desain antar muka

Desain komponen

Desain struktur data

Desain algoritma

Arsitektur sistem

Spesifikasi software

Spesifikasi antar muka

Spesifikasi komponen

Spesifikasi struktur data

Spesifikasi algoritma

Produk desain

31 Rekayasa Perangkat Lunak

Metode DesainPendekatan sistematis untuk pengembangan desain software Desain biasanya terdokumentasi sebagai kumpulan model grafis Model yang mungkino o o o Model Model Model Model data-flow entity-relation-attribute struktural obyek

32 Rekayasa Perangkat Lunak

16

Pemrograman dan DebuggingMengubah desain ke dalam program dan menghilangkan error dari program Pemrograman adalah aktifitas personal tidak ada proses pemrograman generik Programmer membawa beberapa program testing untuk menemukan kegagalan dalam program dan menghilangkan kegagalan dalam proses debugging

33 Rekayasa Perangkat Lunak

Proses Debugging

Mencari error

Desain perbaikan error

Perbaikan error

Re-test program

34 Rekayasa Perangkat Lunak

17

Validasi SoftwareVerifikasi dan validasi bertujuan untuk menunjukkan bahwa sistem sesuai spesifikasinya dan sesuai kebutuhan konsumen Melibatkan pengecekan dan review proses dan testing sistem Testing sistem melibatkan eksekusi sistem dengan test case yang diambil dari spesifikasi data riil untuk diproses oleh sistem

35 Rekayasa Perangkat Lunak

Proses Testing

Testing unit Testing modul Testing sub sistem Testing sistem Testing penerimaan

Testing komponen

Testing integrasiRekayasa Perangkat Lunak

Testing user36

18

Tingkat TestingTesting Unito o Dilakukan tes pada komponen individu Dilakukan tes pada kumpulan komponan yang berhubungan Modul diintegrasikan ke dalam sub sistem dan dilakukan tes. Fokus pada testing antar muka Testing pada keseluruhan sistem. Terting terhadap properti penting Testing dengan data konsumen untuk memeriksa apakah dapat diterima37 Rekayasa Perangkat Lunak

Testing Modul Testing sub-systemo

Testing sistemo

Testing Penerimaano

Fase Testing

Spesifikasi kebutuhan

Spesifikasi sistem

Desain sistem

Desain detail

Perencanaan tes penerimaan

Perencanaan tes integrasi sistem

Perencanaan tes integrasi sub sistem

Kode dan tes modul dan unit

Servis

Tes penerimaan

Tes integrasi sistem

Tes integrasi sub sistem

38 Rekayasa Perangkat Lunak

19

Evolusi SoftwareSoftware bersifat fleksibel dan dapat berubah Perubahan kebutuhan karena perubahan lingkungan bisnis, software yang mendukung bisnis juga harus terlibat dan berubah Meskipun terdapat batas antara pengembangan dan evolusi (pemeliharaan), peningkatan yang tidak berhubungan menyebabkan sistem sedikit demi sedikit menjadi sistem baru.

39 Rekayasa Perangkat Lunak

Evolusi Sistem

Menentukan kebutuhan sistem

Menaksir sistem yang sudah ada

Menawarkan perubahan sistem

Modifikasi sistem

Sistem yang sudah ada

Sistem baru

40 Rekayasa Perangkat Lunak

20

Pendukung Proses Otomasi (CASE)Computer-aided software engineering (CASE) adalah software untuk mendukung proses pengembangan dan evolusi Aktifitas otomasio Editor grafis untuk pengembangan model sistem o Data dictionary untuk mengatur desain entity o Graphical UI builder untuk konstruksi antar muka user o Debugger untuk menemukan kegagalan program o Translator otomatis untuk membangkitkan versi baru dari program41 Rekayasa Perangkat Lunak

Teknologi CASETeknologi Case memudahkan perbaikan signifikan dalam proses software merkipun bukan perbaikan penting sesuai perkiraano Rekayasa software membutuhkan pemikiran kreatif hal ini tidak dapat diotomasi o Rekayasa software adalah aktifitas tim dan untuk proyek besar, banyak waktu dihabiskan untuk interaksi tim. Teknologi CASE tidak mendukung hal ini

42 Rekayasa Perangkat Lunak

21

Klasifikasi CASEKlasifikasi membantu mengerti perbedaan tipe tool CASE dan dukungan untuk aktifitas proses Perspektif Fungsionalo Tool diklasifikasi berdasarkan fungsi tertentu

Perspektif Proseso Tool diklasifikasi berdasarkan aktifitas proses yang didukung

Perspektif Integrasio Tool diklasifikasi berdasarkan organisasi ke dalam unit integrasi43 Rekayasa Perangkat Lunak

Klasifikasi Functional ToolTool type Planning tools Editing tools Change management tools Configuration management tools Prototyping tools Method-support tools Language-processing tools Program analysis tools Testing tools Debugging tools Documentation tools Re-engineering tools Examples PERT tools, estimation tools, spreadsheets Text editors, diagram editors, word processors Requirements traceability tools, change control systems Version management systems, system building tools Very high-level languages, user interface generators Design editors, data dictionaries, code generators Compilers, interpreters Cross reference generators, static analysers, dynamic analysers Test data generators, file comparators Interactive debugging systems Page layout programs, image editors Cross-reference systems, program restructuring systems

44

Rekayasa Perangkat Lunak

22

Reengineering tools Testing tools Debugging tools Program analysis tools Language-processing tools Method support tools Prototyping tools Configuration management tools Change management tools Documentation tools Editing tools Planning tools

Specification

Design

Implementation

Verification and Validation

Klasifikasi berbasis aktifitasRekayasa Perangkat Lunak

45

Integrasi CASEToolo Mendukung task proses individu seperti pemeriksaan konsistensi desain, text editing dll

Workbencho Mendukung fase proses seperti spesifikasi atau desain. Biasanya melibatkan sejumlah tool integrasi

Lingkungano Mendukung semua atau bagian substansi dari keseluruhan proses software. Biasanya melibatkan beberapa workbench terintegrasi46 Rekayasa Perangkat Lunak

23

Tool, workbench, lingkunganTeknologi CASE

Tools

Workbench

Lingkungan

Editor

Compiler

Pembanding File

Lingkungan terintegrasi

Lingkungan proses terpusati

Analisis dan desain

Pemrograman

Testing

Workbench multi-method

Workbench single-method

Workbench general-purpose

Workbench special language

47 Rekayasa Perangkat Lunak

SummaryProses software adalah aktivitas yang terjadi dalam memproduksi dan menghasilkan sistem software. Direpresentasikan dalam model proses software Aktifitas umum adalah spesifikasi, desain dan implementasi, validasi dan evolusi Model proses generik menggambarkan organisasi dari proses software Model proses iteratif menggambarkan proses software sebagai siklus aktifitas48 Rekayasa Perangkat Lunak

24

SummaryRekayasa kebutuhan adalah proses mengembangkan spesifikasi software Proses desain dan implementasi mengubah spesifikasi ke program eksekusi Validasi melibatkan pemeriksaan bahwa sistem sesuai dengan spesifikasi dan keperluan user Evolusi menyangkut modifikasi sistem setelah digunakan Teknologi CASE mendukung aktifitas proses software49 Rekayasa Perangkat Lunak

25