Pemeliharaan Software Software Maintenance 1 Definisi n modifikasi

  • Slides: 54
Download presentation
Pemeliharaan Software (Software Maintenance) 1

Pemeliharaan Software (Software Maintenance) 1

Definisi n “modifikasi produk software setelah di reales untuk: n n n memperbaiki kesalahan

Definisi n “modifikasi produk software setelah di reales untuk: n n n memperbaiki kesalahan (faults), untuk meningkatkan performa atau atribut lainnya (reliable, maintainable, …), adaptasi produk software terhadap lingkungan baru. ” (IEEE) 2

Alasan kesulitan pemeliharaan SW n n n Rendahnya kualitas software yang berjalan (yang sudah

Alasan kesulitan pemeliharaan SW n n n Rendahnya kualitas software yang berjalan (yang sudah ada). Sistem tidak dirancang untuk memperhatikan konsep pemeliharaan Pemeliharaan bukan merupakan bagian yang dirasakan perlu pada suatu SW 3

Spiral maintenance model 4

Spiral maintenance model 4

Sistem Software saat kini bisa lebih mudah berubah volatile daripada sebelumnya n n Mencerminkan

Sistem Software saat kini bisa lebih mudah berubah volatile daripada sebelumnya n n Mencerminkan perubahan lingkungan bisnis yang cepat Menekankan pada pengembangan metode yang baru: n n Faktor-faktor peningkatan Pendekatan iterasi Model “evolutionary” Memiliki Biological paradigm bukan assembly line paradigm 5

Saran untuk peningkatan n n Merancang agar SW bisa terpelihara Mengukur kompleksitas Mengimplementasikan procedure

Saran untuk peningkatan n n Merancang agar SW bisa terpelihara Mengukur kompleksitas Mengimplementasikan procedure management perubahan (SCM) Meningkatkan kemampuan staff Menambah tool pemeliharaan dan metrics 6

Permasalah yang ada? ã ã ã Pemeliharaan SW membutuhkan 50 -80% dari total biaya

Permasalah yang ada? ã ã ã Pemeliharaan SW membutuhkan 50 -80% dari total biaya pembuatannya Biaya pemeliharaan SW di seluruh dunia diperkirakan mencapai $30 billion Masih sedikit penelitan yang mengarah ke pemeliharaan software 7

n Microsoft Windows NT n n n 30 juta baris code ditambahkan selama 6

n Microsoft Windows NT n n n 30 juta baris code ditambahkan selama 6 tahun Telecom switch software n 5. 2 juta modifikasi sepanjang satu dekade Web-based applications n 73% dari biaya pembuatan ecommerce digunakan untuk re-design web site setelah implementasi pertama 8

Kategori pemeliharaan SW n Corrective maintenance n n Adaptive maintenance n n Perawatan berdasarkan

Kategori pemeliharaan SW n Corrective maintenance n n Adaptive maintenance n n Perawatan berdasarkan perubahan lingkungan Perfective maintenance n n perubahan yang dilakukan guna memperbaiki kesalahan Perubahan untuk meningkatkan kualitas sistem tanpa merubah fungsinya Preventive maintenance n Meningkatkan reliability, future maintainability, future enhancement (reverse engineering dan reengineering) 9

Proporsi kategori pemeliharaan SW Corrective maintenance (17%) Adaptive maintenance (18%) Perfective Maintenance (65%) Lientz

Proporsi kategori pemeliharaan SW Corrective maintenance (17%) Adaptive maintenance (18%) Perfective Maintenance (65%) Lientz and Swanson (1980) 10

Proses Pemeliharaan Change request Impact analysis Perfective maintenance System Release planning Change implementation Adaptive

Proses Pemeliharaan Change request Impact analysis Perfective maintenance System Release planning Change implementation Adaptive maintenance Corrective maintenance System release 11

Karakteristik Pemeliharaan SW n n n Aktivitas pada fase pemeliharaan dampak pendekatan software engineering

Karakteristik Pemeliharaan SW n n n Aktivitas pada fase pemeliharaan dampak pendekatan software engineering untuk keberhasilan aktifitas tersebut. Biaya untuk fase pemeliharaan software. Masalah yang sering dijumpai ketika prosees pemeliharaan software. 12

Permintaan perubahan n Perubahan yang diminta oleh users, customers atau management Pada kenyataannya, semua

Permintaan perubahan n Perubahan yang diminta oleh users, customers atau management Pada kenyataannya, semua perubahan memerlukan analisis yg hati-hati Pada kenyataan, perubahan SW dirasakan perlu untuk n Memperbaiki kesalahan n Perubahan system’s environment n Urgently required business changes 13

Structured vs. unstructured pemeliharaan SW software Configuration Evaluation design code Evaluation code Plan approach

Structured vs. unstructured pemeliharaan SW software Configuration Evaluation design code Evaluation code Plan approach ? Modify design Recode Review Test and Release 14

Biaya Pemeliharaan n Biaya yang dikeluarkan untuk melakukan pemeliharaan software yang bisa mencapai 80%

Biaya Pemeliharaan n Biaya yang dikeluarkan untuk melakukan pemeliharaan software yang bisa mencapai 80% dari total biaya pembuatan software. M = p + Ke (c-d) M = total usaha yang dikeluarkan untuk pemeliharaan p = productivity effort K = empirical constant c = pengukuran kompliksitas yang bisa berdasarkan kekurangan terhadap perancangan yang baik dan kokumentasi yang baik d = derajat familiarty software 15

Permasalahan yang ada n n n Kesulitan melakukan pelacakan evolusi software pd versi sebelumnya,

Permasalahan yang ada n n n Kesulitan melakukan pelacakan evolusi software pd versi sebelumnya, Kesulitan pelacakan pada proses pengembangan software, Sulit untuk mengerti program orang lain, Tidak adanya dokumentasi yang baik, Tidak adanya nara sumber, Kebanyakan software dirancang tanpa adanya pemikiran untuk diubah 16

Software Evolution Initial development n first running version evolution changes evolution is key part

Software Evolution Initial development n first running version evolution changes evolution is key part of lifecycle Evolution loss of evolvability servicing patches Servicing servicing discontinued Phase-out Switch-off Close-down 17

Alasan evolusi SW n Memperbaiki dan menajamkan requirement n n n Beberapa requirement yang

Alasan evolusi SW n Memperbaiki dan menajamkan requirement n n n Beberapa requirement yang ditemukan pada tahap inisial pengemebangan SW. Perubahan pada lingkungan operasi Iterasi pengembangan SW n n Menambahkan satu fitur pada satu saat, membaca resiko pada integrasi sistem Pengiriman yang cepat untuk versi yang kecil 18

Contoh: A tale of two systems’ evolution Financial System Shipping System Age (years) 20

Contoh: A tale of two systems’ evolution Financial System Shipping System Age (years) 20 10 181, 652 189, 999 1, 321 1, 446 Number of Modules 109 45 % of Online Modules 7% 62% % of Batch Modules 93% 38% 1, 666 3, 878 Size in Total Lines of Code (LOC) Size in Function Points (FP) Average Module Size (LOC) 19

Pendefinisian pengukuran software evolution n Amplitude = ukuran modifikasi software Periodicity = interval waktu

Pendefinisian pengukuran software evolution n Amplitude = ukuran modifikasi software Periodicity = interval waktu antara perubahan Deviation = variability panjang interval waktu 20

21

21

22

22

Kategori pengukuran evolusi software 23

Kategori pengukuran evolusi software 23

Software Re-engineering n Reorganisasi dan modifikasi sistem software agar bisa dipelihara (maintainable) 24

Software Re-engineering n Reorganisasi dan modifikasi sistem software agar bisa dipelihara (maintainable) 24

Re-engineering Sistem n n n Restrukturisasi atau penulisan ulang suatu sistem tanpa merubah fungsionalitasnya,

Re-engineering Sistem n n n Restrukturisasi atau penulisan ulang suatu sistem tanpa merubah fungsionalitasnya, Dapat diaplikasikan kalau beberapa (bukan keseluruhan) sub-system dari suatu sistem yang besar sering memerlukan perawatan, Memerlukan effort tambahan untuk memudahkan perawatan. Sistem mungkin di re-strukturisasi atau re-dokumentasi 25

Kapan melakukan Re-engineering n n n Kalau perubahan sistem kebanyakan dilakukan pada bagian sistem

Kapan melakukan Re-engineering n n n Kalau perubahan sistem kebanyakan dilakukan pada bagian sistem maka dilakukan re-engineering pd bagian tesebut Ketergantungan terhadap dukungan hardware/software yang penting Jika ada dukungan tools untuk restrukturisasi. 26

Keuntungan melakukan Reengineering SW n Mengurangi risiko n n Adanya risiko yang tinggi pada

Keuntungan melakukan Reengineering SW n Mengurangi risiko n n Adanya risiko yang tinggi pada pengembangan softwarebaru. (yaitu masalah pengembangan, staff, dan spesisfikasi). Mengurangi biaya n Biaya re-engineering secara signifikan lebih kecil dari biaya pembuatan software baru 27

Business process re-engineering n n n Konsentrasi pada proses re-disian bisnis agar lebih responsive

Business process re-engineering n n n Konsentrasi pada proses re-disian bisnis agar lebih responsive dan efficient Bergantung pada sistem komputer baru untuk mendukung proses perbaikan Software re-engineering didisain untuk mendukung proses yang ada 28

Forward engineering dan reengineering 29

Forward engineering dan reengineering 29

Proses re-engineering 30

Proses re-engineering 30

Faktor biaya Re-engineering n n Kualitas software yang akan di reengineered Fasilitas pendukung yang

Faktor biaya Re-engineering n n Kualitas software yang akan di reengineered Fasilitas pendukung yang tersedia untuk proses re-engineering Besarnya konversi data yang diperlukan Adanya staff yang ahli untuk proses reengineering 31

Pendekatan Re-engineering 32

Pendekatan Re-engineering 32

Source code translation n Melibatkan konversi code dari satu bahasa pemrograman ke yang lain

Source code translation n Melibatkan konversi code dari satu bahasa pemrograman ke yang lain mis. : COBOL ke C++ Diperlukan karena: n Perubahan Hardware platform n Kemampuan Staff yang kurangan n Perubahan kebijakan Organisational Akan realisitis jika translate dilakukan sec. Otomatis. 33

Proses translate Program 34

Proses translate Program 34

Reverse engineering n n n Menganalisa software untuk mengerti disain dan spesifikasi SW. Bisa

Reverse engineering n n n Menganalisa software untuk mengerti disain dan spesifikasi SW. Bisa merupakan bagian proses re-engineering tetapi dapat juga digunakan untuk melakukan spesifikasi ulang dalam re-implementasi sistem. Dapat menggunakan Program understanding tools (browsers, cross-reference generators, dll. ) 35

Proses reverse engineering 36

Proses reverse engineering 36

Reverse engineering n Reverse engineering sering diawali oleh reengineering tapi dapat juga di keseluruhan

Reverse engineering n Reverse engineering sering diawali oleh reengineering tapi dapat juga di keseluruhan proses reverse engineering itu sendiri n Disain dan specification system dapat di-reverseengineered sehingga bisa dijadikan sebagai input ke requirements specification process untuk penggantian system (system”s replacement) n Disain dan specification dapat di-reverseengineered untuk mendukung pemeliharaan program 37

Meningkatkan struktur program n n Program direstrukturisasi secara otomatis untuk menghilangkan cabang non-kondisi. Statement

Meningkatkan struktur program n n Program direstrukturisasi secara otomatis untuk menghilangkan cabang non-kondisi. Statement kondisi disederhanakan sehingga mudah dibaca. 38

Spaghetti logic 39

Spaghetti logic 39

Kontrol logic terstruktur 40

Kontrol logic terstruktur 40

Contoh penyederhanaan suatu kondisi -- Kondisi yang kompleks if not (A > B and

Contoh penyederhanaan suatu kondisi -- Kondisi yang kompleks if not (A > B and (C < D or not ( E > F) ) ). . . --Kondisi yang sederhana if (A <= B and (C>= D or E > F). . . 41

Restrukturisasi program yang otomatis 42

Restrukturisasi program yang otomatis 42

Masalah pada restrukturisasi n n Masalah restrukturisasi : n Kehilangan documentasi n Kebutuhan akan

Masalah pada restrukturisasi n n Masalah restrukturisasi : n Kehilangan documentasi n Kebutuhan akan komputasi yang tinggi Restrukturisasi tidak bisa membantu pada sistem yang memiliki kelemahan modularisainya yaitu komponen-komponen yg terkait terseber di seluruh code. 43

Modularitas Program Proses re-organisasi suatu program sehingga program yang berkaitan terkumpul menjadi satu module.

Modularitas Program Proses re-organisasi suatu program sehingga program yang berkaitan terkumpul menjadi satu module. n Biasanya dilakukan secara manual pada inspeksi program dan reorganisasi n 44

Tipe-tipe Modul n n Abstraksi Data n Abstract data type untuk pengelompokkan data structures

Tipe-tipe Modul n n Abstraksi Data n Abstract data type untuk pengelompokkan data structures dan operasinya Hardware modules n Fungsi yang diperliukan untuk interface dg hardware (driver). Functional modules n Module terdiri dari fungsi-fungsi yang memiliki tugas yang saling terkait. Process support modules n Modules yang berfungsi mendukung proses bisnis 45

Recovering data abstractions n n n Many legacy systems use shared tables and global

Recovering data abstractions n n n Many legacy systems use shared tables and global data to save memory space Causes problems because changes have a wide impact in the system Shared global data may be converted to objects or ADTs n n n Analyse common data areas to identify logical abstractions Create an ADT or object for these abstractions Use a browser to find all data references and replace with reference to the data abstraction 46

Data re-engineering n n n Involves analysing and reorganising the data structures (and sometimes

Data re-engineering n n n Involves analysing and reorganising the data structures (and sometimes the data values) in a program May be part of the process of migrating from a file-based system to a DBMSbased system or changing from one DBMS to another Objective is to create a managed data environment 47

Pendekatan untuk data reengineering 48

Pendekatan untuk data reengineering 48

Data problems n n n End-users want data on their desktop machines rather than

Data problems n n n End-users want data on their desktop machines rather than in a file system. They need to be able to download this data from a DBMS Systems may have to process much more data than was originally intended by their designers Redundant data may be stored in different formats in different places in the system 49

Data migration 50

Data migration 50

Data problems n n n Data naming problems n Names may be hard to

Data problems n n n Data naming problems n Names may be hard to understand. The same data may have different names in different programs Field length problems n The same item may be assigned different lengths in different programs Record organisation problems n Records representing the same entity may be organised differently in different programs Hard-coded literals No data dictionary 51

Data value inconsistencies 52

Data value inconsistencies 52

Data conversion n n Data re-engineering may involve changing the data structure organisation without

Data conversion n n Data re-engineering may involve changing the data structure organisation without changing the data values Data value conversion is very expensive. Special-purpose programs have to be written to carry out the conversion 53

The data re-engineering process 54

The data re-engineering process 54