322
MODUL REKAYASA PERANGKAT LUNAK STMIK DHARMAPALA RIAU

MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Embed Size (px)

Citation preview

Page 1: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

MODUL REKAYASA PERANGKAT LUNAK

STMIK DHARMAPALA RIAU

Page 2: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

1. What and Why Sofware

Engineering ?

I. INTRODUCTION TO SOFTWARE ENGINEERING

Page 3: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

1.1 Software Engineering (Rekayasa Perangkat Lunak)

Ekonomi dari semua bangsa-bangsa maju tergantung pada perangkat lunak

Semakin banyak sistem yang dikendalikan oleh perangkat lunak

Rekayasa Perangkat Lunak mempunyai kaitan dengan teori, metode, dan perkakas (tools) untuk pengembangan perangkat lunak profesional

Rekayasa Perangkat Lunak sudah menjadi bagian yang penting untuk menghadirkan pendapatan nasional pada semua negara maju

Page 4: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

1.2 Software Costs (Biaya-Biaya Perangkat Lunak)

Biaya-biaya perangkat lunak sering mendominasi biaya-biaya sistem. Biaya-biaya perangkat lunak pada suatu PC sering lebih besar dari harga perangkat keras.

Biaya-biaya perawatan perangkat lunak lebih besar dibanding dengan pengembangan perangkat lunak, karena sistem dengan masa pakai lama, biaya pemeliharaan mungkin beberapa kali biaya-biaya pengembangan.

Rekayasa Perangkat Lunak mempunyai kaitan dengan biaya-biaya pengembangan perangkat lunak yang ekonomis.

Page 5: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

1.3 FAQs about Software Engineering (Pertanyaan-pertanyaan Seputar SE)

Apakah software itu?

Apakah software engineering itu?

Apa perbedaan antara software engineering dan computer science?

Apa perbedaan antara software engineering dan system engineering?

Apakah software process itu?

Apakah software process model itu?

Page 6: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

FAQs about Software Engineering (Lanjutan)

Apa saja yang merupakan biaya-biaya rekayasa perangkat

lunak itu?

Apa saja metode rekayasa perangkat lunak itu?

Apakah CASE (Computer-Aided Software Engineering) itu?

Apa saja atribut dari perangkat lunak yang baik?

Apakah yang merupakan tantangan kunci dalam

menghadapi rekayasa perangkat lunak?

Page 7: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is software?

perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan;

struktur data yang memungkinkan program memanipulasi informasi secara proporsional; dan

dokumen yang menggambarkan operasi dan kegunaan program.

Produk Perangkat lunak mungkin :

Generic (Umum) - yang dikembangkan untuk dijual ke bidang pelanggan berbeda;

Bespoke/Custom (Pesanan) - dikembangkan untuk pelanggan tunggal menurut spesifikasi mereka.

Page 8: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is software engineering?

Software engineering adalah suatu disiplin rekayasa (rancang-bangun) yang terkait dengan semua aspek produksi perangkat lunak.

Engineer perangkat lunak mengadopsi pendekatan sistematis dan terorganisir untuk pekerjaan mereka dan menggunakan teknik dan tools yang disesuaikan dengan masalah yang dihadapi untuk dipecahkan, batasan pengembangan, dan sumber daya tersedia.

Page 9: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

IEEE Definition(IEEE = Institute of Electrical and Electronic Engineers)

Software engineering adalah:

1. Aplikasi dari sebuah pendekatan yang bersifat kuantifiabel, disiplin, dan

sistematis bagi pengembangan, operasi, dan pemeliharaan perangkat

lunak.

2. Studi tentang pendekatan-pendekatan seperti pada (1)

Bidang Penelitian Software Engineering mengacu pada kedua hal tsb.

Page 10: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is the difference between software engineeringand computer science?

Computer science mempunyai kaitan dengan theory and fundamentals; software

engineering mempunyai kaitan dengan practicalities of developing and delivering

useful software.

Computer science sekarang ini tidak cukup lengkap untuk bertindak sebagai

tiang penyokong software engineering.

Page 11: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is the difference between software engineering and system engineering?

System engineering mempunyai kaitan dengan semua aspek

pengembangan sistem berbasis-komputer yang mencakup

perangkat keras, perangkat lunak ,dan yang terkait

dengan proses bisnis.

Software engineering berkonsentrasi pada komponen

perangkat lunak sistem yang lebih besar.

System engineers mencakup spesifikasi sistem, desain

arsitektur, pengintegrasian, dan penyebaran.

Page 12: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is a software process?

Software process merupakan himpunan aktivitas tujuan pengembangan atau evolusi perangkat lunak.

Aktivitas umum dalam semua proses perangkat lunak adalah:

Specification (Spesifikasi)- hal-hal yang diperlukan oleh sistem dan batasan pengembangannya.

Development (Pengembangan)- produksi sistem perangkat lunak.

Validation (Pengesahan) - pemeriksaan perangkat lunak sesuai dengan keinginan pelanggan.

Evolution (Evolusi) - pengubahan perangkat lunak sesuai dengan permintaan pelanggan.

Page 13: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is

a software process model? Software process model merupakan representasi

sederhana suatu software process, yang diperkenalkan dari suatu perspektif spesifik.

Contoh perspektif proses adalah

Workflow Perspektif - Urutan aktivitas

Data-Flow Perspektif - Arus Informasi

Role/Action Perspektif – Peran dan Aksi

Proses umum model

Waterfall

Evolutionary development

Formal transformation

Integration from reusable components

Page 14: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What are the costs of software engineering?

Perkiraan kasar adalah 60% untuk biaya pengembangan, sedangkan

40% untuk biaya pengujian. Untuk custom sofware, biaya-biaya

evolusi sering melebihi biaya-biaya pengembangan.

Biaya-biaya berubah-ubah tergantung pada jenis sistem yang

dikembangkan dan kebutuhan atribut sistem seperti kehandalan

dan reliabilitas sistem.

Distribusi biaya-biaya tergantung pada model pengembangan yang

digunakan.

Page 15: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What are software engineering

methods?Software engineering methods merupakan

pendekatan terstruktur dalam pengembangan perangkat lunak yang meliputi model sistem, notasi, aturan, desain advice, dan panduan proses.

Model Descriptions (Uraian Model)

Uraian tentang model grafis yang harus diproduksi.

Rules (Aturan-aturan)

Batasan yang berlaku pada model sistem.

Recommendations (Rekomendasi)

Rekomendasi untuk praktik desain yang baik.

Process guidance (Panduan Proses)

Aktivitas yang mengikuti.

Page 16: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What is CASE (Computer-Aided Software Engineering)?

CASE adalah System software yang digunakan untuk mendukung

otomatisasi aktivitas proses perangkat lunak. CASE sering digunakan

untuk mendukung metode.

Upper-Case

Tools untuk mendukung aktivitas proses awal kebutuhan dan desain.

Lower-Case

Tools untuk mendukung aktivitas selanjutnya seperti programming,

debugging, dan testing.

Page 17: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What are the attributes of good

software?Software perlu memiliki fungsi kebutuhan dan kemampuan yang

diperlukan oleh pemakai dan harus maintainable, dependable , efficient, dan usable.

Maintainability

Software harus dapat ditingkatkan dan diubah sesuai dengan kebutuhan.

Dependability

Software harus dapat dipercaya (trustworthy).

Efficiency

Software seharusnya tidak membuat penggunaan sumber daya sistem menjadi boros.

Usability

Software harus dapat dipakai oleh para pemakai yang direncanakan.

Page 18: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

What are the key challenges facing

software engineering?

Tantangan : mengatasi sistem warisan (legacy systems), meningkatnya heterogenitas (Heterogenity) sistem, dan

tuntutan permintaan percepatan penyerahan(Delivery)sistem.

Legacy systems

Sistem warisan (sistem lama) harus dirawat dan dibaharui.

Heterogenity

Sistem terdistribusikan dalam bentuk campuran antara

perangkat keras dan lunak.

Delivery

Adanya peningkatan tekanan untuk penyerahan perangkat

lunak lebih cepat.

Page 19: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

1.4 Professional and Ethical

Responsibility

Software engineering melibatkan tanggung-jawab lebih luas dibanding hanya aplikasi kecakapan teknis.

Software engineer harus bertindak secara etis, bertanggung jawab, dan jujurjika mereka diharapkan untuk terhormat sebagai seorang profesional.

Perilaku etis tidak hanya sekedar menegakkan hukum saja tetapi harus lebih dari itu (lih. hal. berikutnya).

Page 20: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Issues of professional responsibility

Confidentiality (Kerahasiaan)

Engineer seharusnya menghormati kerahasiaan dari

klien mereka tanpa tergantung dengan ya atau

tidaknya suatu persetujuan kerahasiaan formal

ditandatangani.

Competence (Kemampuan)

Engineer mestinya tidak salah menggambarkan

tingkatan kemampuannya. Mereka mestinya tidak

dengan sadar menerima pekerjaan yang di luar

kemampuannya.

Page 21: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Issues of professional responsibility

(lanjutan)

Intellectual property rights (Hak milik intelektual)

Engineers harus sadar akan hukum lokal yang mengatur penggunaan dari properti intelektual seperti hak paten, hak cipta, dll. Mereka harus seksama untuk memastikan bahwa intelektual properti klien harus dilindungi.

Computer misuse (Penyalahgunaan Komputer)

Software engineers mestinya tidak menggunakan kecakapan teknis mereka untuk menyalahgunakan komputer orang lain. Penyalahgunaan komputer dari yang relatif sepele (misal untuk bermain game) sampai yang serius (pemberian virus).

***

Page 23: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.1 The Evolving Role of Software

Peran Perangkat Lunak saat ini:

Berfungsi sebagai sebuah produk

mengantarkan potensi penghitungan yang dibangun oleh perangkat lunak

komputer. Perangkat lunak sebagai transformer informasi yang

memproduksi, mengatur, memperoleh, memodifikasi, menampilkan atau

memancarkan informasi, sehingga pekerjaan menjadi semakin mudah

Berfungsi sebagai kendaraan yang mengantarkan sebuah produk

Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi

(jaringan) dan penciptaan serta kontrol dari program-program lain (piranti

dan lingkungan perangkat lunak)

Page 24: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.2 Evolution of Software

1st Era 2st Era 3st Era

1950 1960 1970 1980 1990 2000

4st Era

• Batch orientation

• Limited distribution

• Custom software

• Multiuser• Real-time• Database• Product software

• Distributed systems

• Embedded ‘intelligence’

• Low cost hardware

• Powerful desk-top systems

• Object-oriented technologies

• Expert systems• Artificial neural

networks• Parallel computing• Network

computers

Page 25: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.3 Serangkaian masalah perangkat lunak sehubungan

dengan evolusi sistem berbasis komputer

Kemajuan perangkat keras terus berlanjut melampaui kemampuan engineer dalam membangun perangkat lunak yang sesuai dengan perangkat keras yang ada.

Kemampuan engineer untuk membangun program baru tidak dapat memenuhi kebutuhan akan program baru dan tidak dapat membangun program yang cukup cepat untuk memenuhi kebutuhan bisnis dan pasar.

Pemakaian komputer yang tersebar luas membuat masyarakat semakin tergantung pada operasi perangkat lunak yang reliabel. Kerusakan ekonomi yang besar dan potensi penderitaan manusia dapat muncul bila terjadi kegagalan perangkat lunak.

Kita masih berjuang untuk membangun perangkat lunak komputer dengan reliabilitas dan kualitas yang tinggi.

Kemampuan kita untuk mendukung program yang ada terhambat oleh buruknya desain serta sumber daya yang tidak memadai.

Page 26: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.4 Software Characteristics

Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen fisik, sehingga perangkat lunak memiliki ciri yang berbeda dari perangkat keras.

Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik (manufaktur).

Perangkat lunak tidak pernah usang.

Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada.

Page 27: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Failure Curve of Hardware

kurva ideal

Tingkat

kegagalan

kematian

segerausang

Waktu

Page 28: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Failure Curve for Software

(idealized)

Tingkat

kegagalan

pada tingkat yang sama

sampai usang

Waktu

Page 29: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Actual Failure Curve for Software

Tingkat

kegagalan

perubahan

laju kegagalan meningkat

sehubungan dengan efek

sampingan

kurva

ideal

kurva

aktual

Waktu

Page 30: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.5 Software Components

Komponen perangkat lunak adalah informasi yang

tersimpan dalam dua bentuk dasar, yaitu

komponen yang tidak bisa dieksekusi (non

machine executable) dan yang dapat dieksekusi

mesin (machine executable).

Reusability merupakan suatu ciri penting dari

komponen perangkat lunak kualitas tinggi.

Page 31: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.6. Software Myths

Software Miths (mitos-mitos perangkat lunak) adalah asumsi-

asumsi permasalahan yang kebenarannya tidak dapat

dipertanggungjawabkan berkaitan dengan pengembangan

perangkat lunak

Tiga kelompok yang terkait dalam pengembangan perangkat

lunak

Management : manajer yang bertanggungjawab terhadap

pengembangan perangkat lunak

Customer : pelanggan yang memesan perangkat lunak

Practitioner’s : praktisi yang mengembangkan perangkat

lunak

Page 32: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.6.1 Management Myths

Dengan memiliki buku berisi standard dan prosedur yang banyak untuk pengembangan perangkat lunak, maka pekerjaan pasti lancar.

Buku-buku itu memang lengkap, tapi apakah digunakan ? Apakah praktisi perangkat lunak sadar dengan keberadaannya. Apakah cocok dengan pengembangan yang modern ? Apakah benar-benar lengkap ?

Untuk menghasilkan perangkat lunak yang berkualitas, maka kita perlu membeli komputer terbaru.

Untuk mendapatkan perangkat lunak yang berkualitas, CASE tools lebih penting daripada perangkat keras.

Bila terlambat maka tambahlah jumlah programer

Penambahan programmer semakin menambah keterlambatan.

Page 33: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.6.2 Customer Myths

Tujuan sistem secara umum cukup untuk memulai menulis program, rincian belakangan saja.

Definisi awal yang buruk merupakan sebab utama gagalnya kerja perangkat lunak

Rincian kebutuhan sistem sangat penting: fungsi

performance

antar-muka

batasan rancangan

kriteria validasi

dll

Perangkat lunak bersifat fleksibel, perubahan kebutuhan mudah diakomodasi oleh pengembang perangkat lunak

Dampak perubahan sangat bergantung pada tahap mana perubahan terjadi

Page 34: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2.6.3 Practitioner’s Myths

Program selesai, pekerjaan selesai

50% - 70% usaha dihabiskan setelah program diserahkan ke user untuk pertama kalinya.

Kualitas hanya bisa diketahui setelah program berjalan (running)

Kualitas dapat dijaga sejak PL dikembangkan.

Yang diserahkan ke user adalah program

Yang diserahkan adalah program, dokumen, dan data.

***

Page 36: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.1 Software Engineering Layers

Tools

Methods

Process

Quality

Page 37: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.2 A Generic View of Software

Engineering

Engineering meliputi kegiatan analisis, desain, konstruksi, verifikasi, dan manajemen kesatuan teknik atau sosial.

Pertanyaan-pertanyaan yang harus dimunculkan dan dijawab:

Apa masalah yang akan dipecahkan?

Karakteristik entitas yang manakah yang dipakai untuk menyelesaikan masalah tersebut?

Bagaimanakah entitas (dan pemecahan) tersebut diadakan?

Bagaimanakah entitas tersebut dibangun?

Pendekatan apakah yang akan dipakai untuk menemukan kesalahan-kesalahan yang dibuat dalam desain dan kontruksi dari entitas tersebut?

Bagaimanakah entitas tersebut ditopang selama proses adaptasi yang lama, pada saat koreksi, serta ketika perbaikan dibutuhkan oleh para pemakai entitas tersebut?

Page 38: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.3 General Phase to Software

Engineering Definition phase berfokus pada ‘apa’ (what):

informasi yang akan diproses

fungsi dan perfomance yang dibutuhkan

tingkah laku sistem yang diharapkan

interface yang akan dibangun

batasan sistem yang sukses

Development phase berfokus pada ‘bagaimana’ (how):

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

Page 39: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.4 Changes in Phase Development

Correction (Koreksi)

membetulkan cacat atau kerusakan

Adaptation (Adaptasi)

modifikasi perangkat lunak karena perubahan kebutuhan fungsional original (CPU, OS, aturan bisnis, karakteristik produk eksternal, dll)

Enhancement (Perkembangan)

memperluas perangkat lunak sehingga melampaui kebutuhan fungsi originalnya

Prevention (Pencegahan)

pencegahan sebagai antisipasi perubahan karena usia perangkat lunak

Page 40: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.5 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

Page 41: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.6 Software Development Stages

Requirements Analysis & Specification

Conceptual/System Design

Detailed/Program Design

Implementation/Coding

Unit & Integration Testing

System Testing

System Delivery

Maintenance

Page 42: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.7. The Software Process

Common Process Framework

Umbrella Activities

Framework Activities

Task Sets

Tasks

Milestones, deliveriables

SQA points

Page 43: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.7.1 Five Process Maturity Levels (SEI=Software

Engineering Institute)

Level 1: Initial

Software process yang ditandai seperti 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

Pengukuan detail dan kualitas produksi perangkat lunak.

Level 5: Optimizing

Penambahan proses melalui umpan balik kuantitatif, gagasan inovatif pengujian, dan teknologi.

Page 44: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8. Software Process Models

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

Page 45: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.1. Linier Sequential Model

Analysis Design Code Test

System/Information

Engineering

Page 46: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.1.1 Waterfall Model

Sebuah pendekatan pengembangan perangkat

lunak yang sistematik dan sekuensial.

Disebut juga ‘Classic Life Cycle’.

Paradigma yang sudah lama sekali, tetapi masih

banyak yang memakai karena dianggap masih

sesuai dengan keadaan sekarang.

Page 47: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Waterfall Model Diagram

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Page 48: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Modified Waterfall Model (M.Kochanski)

Waterfall with Spiral IntroductionSashimi

Waterfall with Subprojects

Page 49: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.1.2 V Model

REQUIREMENTS

ANALYSIS

SYSTEM

DESIGN

PROGRAM

DESIGN

CODING

UNIT & INTE-

GRATION TESTING

SYSTEM

TESTING

ACCEPTANCE

TESTING

OPERATION

& MAINTENANCE

Verify design

Validate requirements

Page 50: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.1.3 RAD Model

RAD = Rapid Application Development

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.

Page 51: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

RAD Model Diagram

business

modeling

data

modeling

process

modeling

application

generation

testing

&

turnover

business

modeling

data

modeling

process

modeling

application

generation

testing

&

turnover

business

modeling

data

modeling

process

modeling

application

generation

testing

&

turnover

60 - 90 hari

team #1

team #2

team #3

Page 52: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

RAD Model Phases

Business Modelling

Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaan-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 perangkat lunak dengan memakai komponen yang ada (bila memungkinkan) atau menciptakan komponen yang dapat dipakai lagi.

Testing and Turnover

Menguji komponen baru.

Page 53: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.2 Prototyping Model

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

Page 54: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Types of Prototyping

Evolutionary prototyping

Dimulai dari model, kemudian dikembangkan dan akhirnya dipakai.

Throw-away prototyping

Hanya dikembangkan sebagai model untuk mencari blue-print.

Page 55: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Evolutionary Prototyping

Prototype

Programming

Prototype

Requirements

Reviews

Release

Validates?

Page 56: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Throw-away prototyping

Release

System

Testing

System

Programming

Reviews

Validates?

Prototype

Programming

Prototype

Requirements

ReviewsValidates?

Page 57: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Prototyping Speciality

Frekuensi komunikasi user – developer meningkat

pengembang akan selalu meminta pendapat user

Membantu analis dalam

menentukan kebutuhan user yang sebenarnya

meminimalkan salah persepsi

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

Page 58: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

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.

Page 59: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.3 Evolutionary Model3.8.3.1 Incremental Model

Incremental Model merupakan gabungan antara model linier sekuensial dan prototyping.

Setiap linier sekuen menghasilkan produk yang deliveriables.

Increment pertama merupakan produk inti (core), yang mengandung persyaratan/kebutuhan dasar.

Penambahan dilakukan pada increment-increment berikutnya.

Page 60: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Incremental Model Diagram

analysis design code test

analysis design code test

analysis design code test

analysis design code test

system/information

engineering

increment 2

increment 3

increment 4

delivery of

1st increment

delivery of

2nd increment

delivery of

3rd increment

delivery of

4th increment

Page 61: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.3.2 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

Page 62: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Spiral Model Diagram

Planning

Risk Analysis

Engineering

Customer

Evaluation Construction

& Release

Customer

Communication

Project

Entry Point

analisa resiko

berdasarkan

kebutuhan awal

analisa resiko

berdasarkan evaluasi

user

produk-jadi

prototipe awal

prototipe tingkat

berikutnya

menentukan

tujuan, alternatif,

batasan sistem

dan budget Requirements

development plan

Integration and test plan

development plan

Page 63: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.3.3 Component Assembly Model

planning

engineering

risk analysis

customer evaluation

entry point

identify candidatecomponents

look up componentsin library

extract componentsif available

build components ifunavailable

put newcomponents in

library

construct n- thiteration of system

Customer

communication

Engineering,

contruction & release

Page 64: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.3.4 Concurrent Development Model

none

Under

development

A waiting

changes

Under

revision

Under

review

baselined

done

Analysis activity

Page 65: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Konkurensi Tercapai dengan Cara:

aktivitas sistem dan komponen yang berlangsung

secara simultan dan 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.

Page 66: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.4 Formal 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.

Formal method akan dibahas pada bab tersendiri

Page 67: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3.8.5 Fourth Generation Techniques

(4GT)

Terkait dengan penggunaan tools.

Pengembang software mendefinisikan karakteristik

software secara 'high level'; tool secara otomatis akan

membangkitkan kode.

4GT mempercepat proses pengembangan perangkat lunak.

Proses perancangan dan dokumentasi baik.

Masih dipertanyakan beberapa pihak: efisiensi kode yang

dihasilkan, kemudahan (relatif).

Page 68: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

4GT Techniques

requirementsgathering

design strategy

implementationusing 4GL

testing

***

Page 69: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

69

4. Konsep Manajemen Proyek Perangkat Lunak4.1 People

4.1.1 Para Pemain (Stakeholder)

4.1.2 Pemimpin Tim

4.1.3 Tim Perangkat Lunak

4.1.4 Tiga Organisasi Tim (Mantei)

4.1.5 Faktor-faktor dalam Perencanaan Struktur Tim RPL (Mantei)

4.1.6 Pengaruh Karakteristik Proyek pada Struktur Tim

4.1.7 Masalah Koordinasi dan Komunikasi

4.1.8 Teknik Koordinasi Proyek (Kraul dan Streeter)

4.2 Problem

4.2.1 Ruang Lingkup Masalah

4.2.2 Dekomposisi Masalah

4.3 Proses

4.3.1 Menggabungkan Masalah dan Proses

4.3.2 Dekomposisi Proses

4.3.3 Contoh Dekomposisi (simple project)

4.3.4 Contoh Dekomposisi (complex project)

Page 70: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

70

Konsep Manajemen Proyek Perangkat Lunak

Manajemen Proyek Perangkat Lunak merupakan

suatu aktivitas pelindung (umbrella activity)

untuk mengelola proyek perangkat lunak, yang

difokuskan pada 3P: People (manusia); Problem

(masalah) dan Process (proses)

People: semua orang yang terlibat dalam proyek

perangkat lunak

Problem: menentukan ruang lingkup dan batasan proyek

perangkat lunak sekaligus teknik pemecahannya.

Process: kerangka kerja yang komprehensif dalam

pembangunan perangkat lunak

Page 71: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

71

4.1 People

4.1.1 Para Pemain (Stakeholder) Senior managers: yang menentukan isu-isu bisnis yang sering

memiliki pengaruh penting dalam proyek.

Project (technical) managers: yang harus merencanakan, memotivasai, mengorganisasi, dan mengontrol sebuah produk atau aplikasi.

Practitioners: yang menyampaikan keteranpilan teknik yang diperlukan untuk merekayasa sebuah produk atau aplikasi.

Customers: yang menentukan jenis kebutuhan bagi perangkat lunak yang akan direkayasa.

End users: yang akan memakai perangkat lunak.

Page 72: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

72

4.1.2 Pemimpin Tim

Pemimpin tim (team leaders): seseorang yang memimpin sebuah proyek perangkat lunak.

Syarat : Model Kepemimpinan MOI (Weinberg):

Motivasi: kemampuan untuk memberi dorongan pada staf teknis untuk menghasilkan sesuatu dengan kemampuan terbaiknya.

Organisasi: kemampuan untuk membentuk proses yang sedang berlangsung yang memungkinkan konsep dasar diterjemahkan ke dalam suatu hasil akhir.

Gagasan dan Inovasi: kemampuan untuk mendorong manusia untuk menciptakan dan bertindak kreatif meskipun mereka bekerja di dalam suatu ikatan yang dibangun untuk suatu produk perangkat lunak yang spesifik.

Page 73: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

73

4.1.3 Tim Perangkat Lunak

Alternatif pemanfaatan SDM pada proyek perangkat lunak:

n individu diberi m tugas fungsional yang berbeda (m > n), ada individu yang merangkap kombinasi kerja.

n individu diberi m tugas yang berbeda (m < n), secara tidak langsung terbentuk tim informal.

n individu dibagi menjadi t tim, setiap tim mempunyai tugas yang spesifik.

Struktur tim yang terbaik berdasarkan gaya manajemen, jumlah orang, tingkat keahlian, kompleksitas masalah.

Page 74: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

74

4.1.4 Tiga Organisasi Tim (Mantei)

Democratic Decentralized (DD); tidak ada pimpinan yang tetap,

keputusan diambil secara bersama-sama, hubungan horizontal.

Controlled Decentralized (CD); ada pimpinan untuk setiap 'task' dan sub-

pimpinan untuk 'sub-task', terjadi komunikasi horizontal & vertikal.

Controlled Centralized (CC); ada team leader untuk top-level problem

solving & koordinasi internal, koordinasi vertikal

Page 75: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

75

4.1.5 Faktor-faktor dalam Perencanaan

Struktur Tim RPL (Mantei) Tingkat kesulitan masalah

Besarnya program (dalam LOC atau FP)

Team lifetime

Tingkat modularitas program

Kualitas dan reliabilitas program

Batas waktu pengembangan

Tingkat sosialisasi (sosiabilitas) proyek

Page 76: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

76

4.1.6 Pengaruh Karakteristik Proyek

pada Struktur TimTeam type:

Difficulty

high

low

Size

large

small

Team lifetime

short

long

Modularity

high

low

Reliability

high

low

Delivery date

strict

lax

Sociability

high

low

DD CD CC

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

Page 77: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

77

4.1.7 Masalah Koordinasi dan Komunikasi

Ada banyak hal yang menyebabkan proyek perangkat lunak bermasalah, penyebabnya diantaranya adalah:

Scale (skala): skala proyek yang demikian besar, sehingga koordinasi sulit.

Uncertainty (ketidakpastian): perubahan-perubahan yang terus-menerus.

Interoperability (interoperabilitas): perangkat lunak yang dibuat harus dapat berkomunikasi dengan perangkat lunak yang lain.

Page 78: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

78

4.1.8 Teknik Koordinasi Proyek

(Kraul dan Streeter) Pendekatan impersonal, formal.

Dokumen, memo teknis, milestone proyek, schedule, error tracking report, dll

Prosedur interpersonal, formal.

Difokuskan pada jaminan kualitas kegiatan, diantaranya inspeksi desain dan kode.

Prosedur interpersonal, informal.

Group meeting untuk bertukar informasi dan problem solving, requirement gathering dan pengembangan staff.

Komunikasi elektronik.

E-mail, E-BB, web sites, video conference.

Jaringan interpersonal.

Diskusi informal dengan orang di luar proyek.

Page 79: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

79

4.2 Problem

Manajer proyek perangkat lunak berhadapan dengan dilema awal proyek, yaitu menentukan perkiraan kuantitatif dan rencana organisasi tetapi informasi yang akurat belum tersedia.

Requirement analysis yang lengkap dibutuhkan untuk melakukan estimasi, tetapi memerlukan waktu yang lama dan kadang-kadang kebutuhan berubah-ubah pada saat proyek berjalan.

Solusi: definisikan scope (ruang lingkup) dengan benar dan segera.

Page 80: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

80

4.2.1 Ruang Lingkup Masalah

dibatasi oleh:

Context

Bagaimana perangkat lunak yang dibangun dapat memenuhi sebuah sistem, produk, atau konteks bisnis yang lebih besar, serta apa batasan yang ditentukan sebagai hasil dari konteks tersebut?

Information Objectives

Obyek data pelanggan apa yang dihasilkan sebagai output dari perangkat lunak, dan obyek data apa yang diperlukan sebagai input?

Function dan performance

Fungsi apa yang dilakukan oleh perangkat lunak untuk mentransformasi input data menjadi output?

Page 81: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

81

4.2.2 Dekomposisi Masalah

Dekomposisi masalah disebut juga partitioning (pembagian), merupakan aktivitas yang mendudukkan inti dari analisis kebutuhan perangkat lunak.

Dekomposisi dilakukan dalam 2 area:

Fungsionalitas yang harus dihasilkan

Proses yang akan dipakai untuk menghasilkan sesuatu

Manusia cenderung melakukan dekomposisi jika menghadapi masalah yang kompleks

Page 82: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

82

4.3 Proses

Fase-fase generik dan menandai proses perangkat lunak: definisi, pembangunan, dan pemeliharaan

Fase generik dijalankan menggunakan salah satu model rekayasa perangkat lunak.

Project manager harus memilih model rekayasa yang paling tepat berdasarkan karakteristik masalah, tim, dan kriteria proyek.

Page 83: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

83

Tahap awal project planning dimulai dengan penggabungan problem dan process.

Setiap fungsi yang akan direkayasa harus melampaui sejumlah aktivitas yang sudah ditentukan

Misal organisasi mengadopsi kerangka aktivitas sbb:

Customer communication – membangun komunikasi yang efektif antara pengembang dan pelanggan

Planning – menentukan sumber daya, ketepatan waktu, dan informasi proyek yang lain

Risk analysis – menentukan resiko-resiko manajemen dan teknis

Engineering – membangun aplikasi perangkat lunak

Construction and release – membangun, menguji, menginstal, dan memberikan dukungan kepada pemakai (dokumen dan pelatihan)

Customer evaluation – umpan balik pelanggan

Selanjutnya dibuat matriksnya.

4.3.1 Menggabungkan Masalah dan

Proses

Page 84: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

84

Software Engineering Tasks

Product Functions

Text input

Editing & formatting

Automatic copy edit

Page layout capability

Automatic indexing & TOC

File management

Document production

COMMON PROCESS

FRAMEWORK ACTIVITIES

cu

sto

mer

co

mm

un

icati

on

pla

nn

ing

risk

an

aly

sis

en

gin

eeri

ng

Page 85: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

85

4.3.2 Dekomposisi Proses

Memilih paradigma rekayasa perangkat lunak yang paling baik sesuai dengan tingkat relativitas dari perangkat lunak.

Bila proyek relatif kecil dan mirip dengan proyek sebelumnya, maka dapat dipilih pendekatan linier sekuensial

Bila masalah dapat dipecah-pecah dan batasan waktu yang ketat, maka dapat dipilih model RAD.

Bila batas waktunya ketat, tetapi fungsionalitastidak dapat optimal, maka dapat dipilih strategi pertambahan. dll

Sekali model dipilih, kerangka kerja umum (CPF=common Process Framework) harus disesuaikan dengan model.

Page 86: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

86

4.3.3 Contoh Dekomposisi

(simple project) Membuat daftar klarifikasi

Bertemu dengan customer untuk klarifikasi

Bersama-sama menentukan scope

Review scope

Penyempurnaan scope berdasarkan berbagai kendala

Page 87: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

87

4.3.4 Contoh Dekomposisi

(complex project) Mengkaji kebutuhan customer

Merencanakan dan menjadwal sebuah pertemuan formal dengan customer

Melakukan penelitian untuk menentukan pemecahan yang diusulkan

Mempersiapkan dokumen kerja serta agenda untuk pertemuan formal

Mengadakan pertemuan

Secara bersama-sama mengembangkan spesifikasi detail yang merefleksikan data, fungsi, dan karakteristik yang berhubungan dengan perilaku perangkat lunak

Mengkaji setiap spesifikasi detail tersebut untuk upaya perbaikan, konsistensi, dan mengurangi ambiguitas

Mencantumkan spesifikasi detail ke dalam sebuah dokumen ruang lingkup

Mengkaji dokumen ruang lingkup dengan semua pendapat yang ada.

Memodifikasi dokumen ruang lingkup sesuai dengan kebutuhan.

***

Page 88: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

88

5. Proses Perangkat Lunak dan Metrik Proyek

5.1 Domain Metrik

5.1.1 Tujuan Umum Pengukuran

5.1.2 Determinan Kualitas dan Efektivitas Perangkat Lunak

5.2 Pengukuran Perangkat Lunak

5.2.1 Size-Oriented Metrics

5.2.2 Function-Oriented Metrics

5.2.2.1 Function Points

5.2.2.2 Penghitungan Metrik Function Points

5.2.2.3 Feature Points

5.2.2.4 Penentuan Kompleksitas Transformasi Function Points

5.3 Penyatuan Pendekatan Metrik yang Berbeda

5.4 Kualitas Perangkat Lunak

5.4.1 Faktor yang Mempengaruhi Kualitas

5.4.2 Faktor yang Mempengaruhi Kualitas (Gilb)

5.5 Penyatuan Metrik-metrik dlm Proses Perangkat Lunak

Page 89: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

89

Proses Perangkat Lunak dan Metrik Proyek

Measure (mengukur); kuantitatif luasan, jumlah, dimensi,

kapasitas, atau ukuran dari atribut sebuah proses atau

produk.

Measurement (pengukuran); kegiatan menentukan sebuah

measure.

Metrics (IEEE): ukuran kuantitatif dari tingkat di mana

sebuah sistem, komponen, atau proses memiliki atribut

tertentu

Indikator adalah sebuah metrik atau kombinasi dari metrik

yang memberikan pengetahuan ke dalam proses perangkat

lunak, sebuah proyek perangkat lunak, atau produk

perangkat lunak.

Page 90: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

90

5.1 Domain Metrik

Pengukuran perangkat lunak dilakukan pada proses dan proyekperangkat lunak.

Indikator proses memungkinkan:

Software engineer memperoleh pengetahuan tentang reliabilitas sebuah proses yang sedang berlangsung.

Manajer dan pelaksana memperkirakan hal-hal yang harus dikerjakan dan yang tidak

Indikator proyek, memungkinkan manajer proyek:

Memperkirakan status proyek

Menelusuri resiko-resiko potensial

Menemukan area masalah sebelum menjadi kritis

Menyesuaikan aliran kerja atau tugas-tugas

Mengevaluasi kemampuan tim proyek untuk mengontrol kualitas.

Page 91: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

91

5.1.1 Tujuan Umum Pengukuran

Mengetahui kualitas perangkat lunak; baik atau

jelek

Menilai produktifitas pembuatan perangkat lunak;

kecepatan pembuatan, ukuran perangkat lunak

Menilai manfaat dari penerapan sebuah metoda;

mencari paradigma andalan

Dasar untuk melakukan perkiraan; pedoman di

masa mendatang

Membantu untuk memastikan apakah dibutuhkan

peralatan baru atau pelatihan tambahan?

Page 92: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

92

5.1.2 Determinan Kualitas dan

Efektivitas Perangkat LunakProduct

TechnologyPeople

ProcessCusto

mer

Chara

cte

ristics

Development

EnvironmentB

usin

ess

Conditio

ns

Page 93: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

93

5.2 Pengukuran Perangkat Lunak

Size-Oriented Metrics: metrik yang berorientasi pada besar fisik ukuran

perangkat lunak

Function-Oriented Metrics: metrik yang berorientasi pada fungsionalitas dan

utilitas perangkat lunak, menggunakan:

Function Points

Feature Points

Page 94: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

94

5.2.1 Size-Oriented Metrics

Normalisasi kualitas dan produktivitas dengan mengukur besar-kecilnya (LOC/KLOC)perangkat lunak, sehingga diperoleh:

Error per KLOC

Defect (cacat) per KLOC

Rupiah (Rp) per LOC

Halaman dokumentasi per KLOC

Metrik lain dapat diturunkan:

Error per orang-bulan

LOC per orang-bulan

Rupiah (Rp) per halaman dokumentasi

Page 95: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

95

Contoh (size-oriented metrics)

alpha 12,100 24 168 365 134 29 3

beta 27,200 62 440 1224 321 86 5

gamma 20,200 43 314 1050 256 64 6

.. .. .. .. .. .. .. ..

Project LOC Effort $(000) pp.doc. Errors Defects People

Page 96: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

96

Kontroversi Size-Oriented Metrics

Metrik size-oriented tidak diterima secara universal; kontroversi terletak pada pemakaian LOC.

Pendukung: LOC merupakan artifak proyek pengembangan perangkat lunak yang mudah dihitung.

Penentang: LOC tergantung bahasa pemrograman, LOC tidak mendukung desain yang baik tetapi program singkat, tidak dapat dengan mudah mengakomodasi bahasa non-prosedural, dan pemakaiannya membutuhkan tingkat detail yang sulit dicapai.

Page 97: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

97

5.2.2 Function-Oriented Metrics

Mengukur secara tidak langsung.

Ditekankan pada fungsional & utilitas program.

Diusulkan pertama kali oleh Albrecht, dengan usulan cara perhitungan yang disebut: function point (FP).

FP diturunkan dengan menggunakan hubungan empiris berbasis pada sesuatu yang terukur dari domain informasi dan berhubungan dengan kompleksitas PL. (lihat berikut)

Page 98: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

98

5.2.2.1 Function Points

Domain Informasi:

Jumlah input dari user: jumlah user input yang dibutuhkan aplikasi

Jumlah output untuk user: jumlah semua keluaran baik laporan maupun kesalahan (ke printer/layar)

Jumlah input inquiry: masukan on-line yang mengakibatkan keluaran on-line

Jumlah file

Jumlah interface eksternal: semua interface yang dibaca oleh mesin untuk memindahkan informasi ke sistem lain.

Page 99: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

99

5.2.2.2 Penghitungan Metrik Function

Points

number of user inputs 63 4x =

number of user outputs 74 5x =

number of user inquiries 63 4x =

number of files 157 10x =

number of external interfaces 105 7x =

total

measurement parameter complexsimple averagecount

Weighting Factor

FP= total x [0.65 + 0.01 x Fi]

Domain kompleksitas

Fi (i = 1 s/d 14) adalah ‘complexity adjustment values’ berdasarkan

respon yang diperoleh dari pertanyaan-pertanyaan berikut ini.

Page 100: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

100

Pertanyaan-Pertanyaan

Untuk menghitung Fi, pertanyaan-pertanyaan di bawah ini dijawab dengan memberi nilai antara 0 s/d

5

Apakah sistem memerlukan backup dan recovery?

Apakah diperlukan fasilitas komunikasi data?

Apakah diperlukan fasilitas ‘distributed processing’?

Apakah kinerja sangat penting?

Apakah sistem akan dijalankan pada lingkungan yang sudah ada yang sudah terpakai secara penuh?

Apakah memerlukan pemasukan data secara ‘on-line’?

Apakah pemasukan data ‘on-line’ terjadi pada transaksi input thd layar atau operasi ganda?

Apakah file master di’update’ secara on-line?

Apakah input,output, file secara inquiry begitu kompleks?

Apakah proses internal begitu kompleks?

Apakah kode yang dibuat harus dapat digunakan ulang?

Apakah konversi dan instalasi termasuk dalam perancangan?

Apakah sistem dirancang untuk dapat diinstall pada berbagai organisasi yang berbeda?

Apakah aplikasi dirancang untuk memberikan fasilitas perubahan dan kemudahan pemakaian bagi user?

Page 101: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

101

5.2.2.3 Feature Points

Seperti function point dengan penambahan karakteristik perangkat lunak lain: algorithma.

Boeing telah mengembangkan function point extension untuk sistem-sistem real time yang disebut 3D function point.

Untuk menghitung 3D function point hubungan berikut dipakai

Index = I + O + Q + F + E + T + R

Keterangan : I = input O = output

Q = inquiry, F = internal data structure

E = external file, T = transformation,

R = transition.

Page 102: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

102

5.2.2.4 Penentuan Kompleksitas

Transformasi Function Points

Semantic

Statements

Processing

Steps

1 - 5 6 - 10 11 +

1 - 10

11 - 20

21 +

low low average

low average high

average high high

Page 103: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

103

Perhitungan 3D function point index

internal data structures x 7 + x 10 + x 15 =

external data x 5 + x 7 + x 10 =

number of user inputs x 3 + x 4 + x 6 =

number of user outputs x 4 + x 5 + x 7 =

number of user inquiries x 3 + x 4 + x 6 =

transformations x 7 + x 10 + x 15 =

transitions x n/a + x n/a + x n/a =

3D function point index

measurement element low average high

Complexity Weighting

Page 104: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

104

assembly language

C

Cobol

Fortran

Pascal

Ada

object-oriented languages

fourth generation languages (4GLs)

code generators

spreadsheets

graphical languages (icons)

320

128

105

105

90

70

30

20

15

6

4

Programming Language LOC/FP (average)

Banyaknya LOC yang dibutuhkan untuk membangun 1 FP

5.3 Penyatuan Pendekatan

Metrik yang Berbeda

Page 105: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

105

5.4 Kualitas Perangkat Lunak

5.4.1 Faktor yang Mempengaruhi Kualitas

McCall dan Cavano mendefinisikan satu set quality factors yang merupakan

tahap awal untuk mengembangkan metrik untuk pengukuran kualitas

perangkat lunak:

product operation (using it),

product revision (changing it), dan

product transition (porting it).

(dibahas di Bab Matriks Teknis PL)

Page 106: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

106

5.4.2 Faktor yang Mempengaruhi Kualitas

(Gilb)

Correctness: perangkat lunak bekerja dengan baik & benar ( correctness =

kesalahan / kloc )

Maintainability: mudah dirawat; mttc (mean time to change) kecil

Integrity: tahan gangguan; tingkat sekuriti yang baik

Usability: mudah digunakan

Page 107: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

107

5.5 Penyatuan Metrik-metrik dalam

Proses Perangkat Lunaksoftware

engineering

process

software

project

software

product

data

collection

data

collection

data

collection

measures

metrics

indicators

***

Page 108: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

108

6.1 Observasi pada Estimasi

6.2 Tujuan Perencanaan Proyek

6.3. Ruang Lingkup Perangkat Lunak

6.3.1. Rangkaian Pertanyaan SW Scope

6.3.1.1 Contoh Rangkaian Pertanyaan Pertama

6.3.1.2 Contoh Rangkaian Pertanyaan Kedua

6.3.1.3 Contoh Rangkaian Pertanyaan Ketiga

6.3.2. Contoh Scoping

6.3.2.1 Penjelasan Gambar

6.3.2.2 Dekomposisi Pernyataan

6.3.2.3 Kesimpulan Contoh Scoping

6.4 Sumber Daya

6.4.1 Sumber Daya Manusia

6.4.2 Reusable Software Resources

6.4.3 Environmental Resources

6.5. Estimasi Proyek Perangkat Lunak

6.5.1. Teknik Dekomposisi

6.5.1.1 Software Sizing

6.5.1.2 Problem-based Estimation

6.5.1.3 Contoh Estimasi Berbasis-LOC

6.5.1.4 Contoh Estimasi Berbasis FP

6.5.1.5 Contoh Estimasi Berbasis Proses

6.5.2 Empirical Estimation Models

6.5.2.1 Beberapa Model Estimasi

6.5.2.2 COnstructive COst MOdel (COCOMO)

6.5.2.3 Persamaan Perangkat Lunak

6. Perenc. Proyek Perangkat Lunak (Software Project Planning)

Page 109: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

109

Project planning adalah serangkaian aktivitas-aktivitas kolektif dalam proses manajemen proyek perangkat lunak.

Estimation adalah aktivitas pertama dalam project planning

Estimation menjadi dasar bagi aktivitas perencanaan proyek yang lain.

Project planning menjadi peta jalan bagi kesuksesan rekayasa perangkat lunak

Perenc. Proyek Perangkat Lunak

Page 110: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

110

6.1 Observasi pada Estimasi

Estimasi pada project planning meliputi estimasi sumber daya, biaya, dan jadwal pengembangan perangkat lunak.

Hal-hal yang mempengaruhi estimasi:

Project complexity (kompleksitas proyek); berpengaruh terhadap ketidakpastian yang inheren dalam perencanaan

Project size (ukuran project); berpengaruh terhadap akurasi estimasi

Structural uncertainty (ketidakpastian struktural); berpengaruh terhadap resiko estimasi

Page 111: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

111

6.2 Tujuan Perencanaan Proyek

menyediakan sebuah kerangka kerja yang memungkinkan manajer membuat

estimasi yang dapat dipertanggungjawabkan mengenai sumber daya, biaya,

dan jadwal.

Tujuan project planning dapat tercapai melalui proses penemuan informasi

yang menunjuk ke estimasi yang dapat dipertanggungjawabkan.

Page 112: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

112

6.3. Ruang Lingkup Perangkat Lunak

(Software Scope)

Fungsi (functions)

Kinerja (perfomance)

Batasan(constraints)

Antarmuka (interface)

Keandalan (reliability)

Page 113: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

113

6.3.1. Rangkaian Pertanyaan SW Scope

Lingkup PL yang akan dibuat ditentukan melalui pertemuan-pertemuan antara customer dengan developer

Untuk menjembatani jurang komunikasi antara customer dengan developer, Gause & Weinberg mengusulkan 3 rangkaian pertanyaan berikut:

Rangkaian pertanyaan pertama adalah sekumpulan pertanyaan bebas konteks yang memusatkan pada customer, sasaran keseluruhan PL yang dibuat, dan keuntungan yang akan diperoleh.

Rangkaian pertanyaan kedua adalah sekumpulan pertanyaan yang memungkinkan analis mendapatkan pemahaman yang lebih baik atas problem, dan customer dapat menyuarakan persepsinya atas suatu solusi.

Rangkaian pertanyaan ketiga adalah pertanyaan-pertanyaan yang memusatkan pada efektivitas dari pertemuan itu sendiri (disebut meta-questions).

Page 114: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

114

6.3.1.1 Contoh Rangkaian Pertanyaan Pertama

Siapa di belakang permintaan pekerjaan ini?

Siapa yang akan menggunakan solusi ini?

Keuntungan ekonomis apa yang diperoleh dari solusi ini?

Adakah sumber daya lain untuk solusi ini?

Page 115: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

115

6.3.1.2 Contoh Rangkaian Pertanyaan Kedua

Bagaimana anda mengkarakterisir keluaran “yang

baik” yang akan dimunculkan oleh solusi ini?

Problem apa saja yang akan dihadapi oleh solusi

ini?

Dapatkan anda menunjukkan kepada kami (atau

menjelaskan) lingkungan di mana solusi ini akan

dipakai?

Adakah batasan atau isu kinerja khusus yang akan

mempengaruhi cara pendekatan terhadap solusi?

Page 116: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

116

6.3.1.3 Contoh Rangkaian Pertanyaan Ketiga

Apakah anda orang yang tepat untuk menjawab pertanyaan-pertanyaan ini? Apakah jawaban anda “resmi”?

Apakah pertanyaan-pertanyaan kami relevan untuk problem yang anda punya?

Apakah saya terlalu banyak pertanyaan?

Apakah ada orang lain yang dapat memberikan informasi-informasi tambahan?

Apakah ada hal-hal lain yang harus kami tanyakan kepada anda?

Page 117: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

117

6.3.2. Contoh Scoping

1

2

3

4

5

6

ID No.ID No.ID No.ID No.

SORTING

STATIONcontrol

connection

conveyor line

motion

shuntbar code

Page 118: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

118

6.3.2.1 Penjelasan Gambar

Conveyor Line Sorting System (CLSS) menyortir box-box yang bergerak pada ban berjalan.

Setiap box diidentifikasi dengan bar code yang menyatakan nomor part.

Box-box tersebut akan disortir ke dalam 6 wadahberdasarkan nomor part.

Box-box tersebut melewati stasiun sortir yang berisi pembaca bar code dan sebuah PC (Personal Computer).

PC di stasiun sortir dihubungkan dengan mekanisme langsiran (shunt) yang akan menyortir box-box tersebut ke dalam wadah-wadah yang sesuai.

Box-box tersebut lewat dengan urutan yang acak dan berjarak sama.

PL CLSS menerima informasi masukan dari pembaca bar code dengan interval waktu sesuai dengan kecepatan ban berjalan.

Page 119: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

119

6.3.2.1 Penjelasan Gambar(lanj)

Data bar code tersebut akan didekodekan ke dalam format identifikasi box.

PL akan melakukan look-up pada basis data part number yang berisi maksimum 1000 entry untuk menentukan lokasiwadah yang sesuai bagi box yang saat itu di stasiun sortir.

Lokasi wadah yang sesuai diberikan pada sorting shunt yang akan menempatkan box tersebut pada wadah yang sesuai.

Sebuah catatan (record) yang berisi wadah tujuan dari setiap box dibangkitkan untuk recovery nantinya dan pelaporan.

PL CLSS juga menerima masukan dari sebuah tachometer pulsa yang akan dipakai untuk sinkronisasi sinyal kontrol ke mekanisme shunting.

Berdasarkan pada jumlah pulsa yang akan dibangkitkan antara stasiun sortir dan shunt, PL akan menghasilkan sebuah sinyal kontrol ke shunt untuk menenpatkan box tersebut dengan benar.

Page 120: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

120

6.3.2.2 Dekomposisi Pernyataan

Dekomposisi dari pernyataan di atas, dapat diekstrak menjadi fungsi-fungsi penting dari PL yang akan dibuat; yaitu:

read bar code input (membaca input bar code)

read pulse tachometer (membaca pulsa tachometer)

decode part code data (mengkodekan bagian data kode)

do database look-up (mengerjakan look-up database)

determine bin location (menentukan lokasi kotak penyimpanan

produce control signal for shunt (memproduksi sinyal kontrol untuk shunt)

maintain record of box destinations (memelihara rekaman tujuan kotak)

Page 121: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

121

6.3.2.3 Kesimpulan Contoh Scoping

Kinerja sistem ini ditentukan oleh kecepatan ban berjalan. Pemrosesan setiap box harus selesai sebelum box berikutnya tiba di pembaca bar code.

Kendala-kendala yang membatasi PL CLSS adalah meliputi perangkat keras yang harus diakses (pembaca bar code, shunt, PC), memori yang tersedia, dan konfigurasi keseluruhan dari lini ban berjalan tersebut.

Page 122: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

122

6.3.2.3 Kesimpulan Contoh Scoping (lanj)

Interface : PL yang dibuat berinteraksi dengan elemen-elemen lain dari sistem berbasis komputer ini. Konsep interface mempunyai arti;(1) hardware yang mengeksekusi PL dan perangkat lain yang

secara tidak langsung dikontrol oleh PL tersebut.

(2) software yang telah ada dan harus dilink dengan software yang baru (dibuat) tersebut.

(3) orang yang menggunakan PL tersebut via keyboard atau I/O devices lainnya.

(4) prosedur-prosedur yang mengawali atau mengakhiri (mengikuti) PL tersebut sebagai urutan operasi yang sekuensial.

Page 123: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

123

6.4 Sumber Daya

Hardware/Software Tools

Reusable Software

Components

People

Page 124: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

124

6.4.1 Sumber Daya Manusia

Diperlukan keahlian untuk menyelesaikan pengembangan PL; baik dari segi

posisi organisasional (misal: manager, senior software engineer, dsb) maupun

spesialisasi (misal: telekomunikasi, basis data, dsb).

Sedangkan jumlah banyaknya personil yang dibutuhkan ditentukan setelah

estimasi beban kerja (development effort).

Page 125: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

125

6.4.2 Reusable Software Resources

Off-the-shelf components; memanfaatkan yang telah dibuat pada proyek internal sebelumnya.

Full-experience components; mereview spesifikasi, kode, desain atau pengujian data dari proyek sebelumnya

Partial-experience components; aplikasi, kode, desain atau data dari proyek sebelumnya dihubungkandengan proyek sekarang

New components; pembuatan komponen baru

Page 126: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

126

6.4.3 Environmental Resources

Lingkungan yang mendukung proyek PL, disebut juga software engineering

environment (SEE); meliputi

hardware

software

hardware & software khusus

Page 127: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

127

6.5. Estimasi Proyek Perangkat Lunak

(Software project estimation) Ada 2 teknik dalam melakukan estimasi proyek perangkat lunak, yaitu:

Decomposition Techniques

Empirical Estimation Models

Page 128: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

128

6.5.1. Teknik Dekomposisi

(Decomposition techniques) Dekomposisi masalah : memecah-mecah masalah yang

kompleks menjadi serangkaian masalah yang lebih kecil.

Ketelitian estimasi proyek PL diprediksi pada sejumlah hal:

(1) derajat ketepatan estimasi ukuran produk yang akan dibuat,

(2) kemampuan menterjemahkan ukuran terestimasi tersebut ke dalam beban kerja, waktu kalender, dan rupiah,

(3) derajat rencana proyek yang mencerminkan kemampuan tim software, dan

(4) kestabilan persyaratan-persyaratan produk dan lingkungan yang mendukung upaya software engineering.

Page 129: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

129

6.5.1.1 Software Sizing

Dalam kontek project planning, size mengacu pada hasil-hasil proyek PL yang dapat dikuantifikasi.

Putnam & Myers mengusulkan 4 cara untuk pengukuran problem; Fuzzy-logic sizing; menggunakan teknik reasoning

aproksimasi Function point sizing; mengembangkan estimasi karakteristik

domain informasi Standard component sizing; menggunakan komponen-

komponen standar yang ada.

Change sizing; memodifikasi PL dengan banyak cara, menggunakan suatu rasio kerja setiap perubahan, sehingga ukuran perubahan dapat diperkirakan

Page 130: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

130

6.5.1.2 Problem-based Estimation

Data LOC dan FP dipakai dalam dua hal selama estimasi proyek PL:

(1) sebagai suatu estimation variable yang dipakai untuk “memberi ukuran”

pada setiap elemen PL yang akan dibuat, dan

(2) sebagai baseline metrics yang dikumpulkan dari proyek terdahulu dan

dipakai bersama-sama dengan estimation variable untuk menghitung

proyeksi biaya dan beban kerja.

Page 131: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

131

Tanpa memandang variabel estimasi yang dipakai, project planner mulai dengan mengestimasi rentang nilai untuk setiap fungsi atau nilai domain informasi.

Dengan menggunakan data historis atau intuisi, ditentukan ukuran nilai yang optimistik (sopt), rata-rata (sm), dan yang pesimistik (spess).

Kemudian dihitung nilai yang diharapkan (three-point atau expected value) sbb.

EV = (sopt + 4 sm + spess)/6

6.5.1.2 Problem-based Estimation

(lanj)

Page 132: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

132

6.5.1.3 Contoh Estimasi Berbasis-LOC

Rekayasa : Software CAD yang dapat menerima data geometrik 2-D dan 3-D dari seorang engineer. Engineer akan berinteraksi dan mengkontrol sistem CAD tersebut melalui user interface yang akan mencerminkan karakteristik perancangan interface human-machine yang baik.

Semua data geometrik dan informasi pendukung lainnya akan disimpan dalam suatu basis data CAD.

Modul-modul analisis - design akan dibuat untuk menghasilkan keluaran yang akan memperagakan (display) pada berbagai graphics devices.

Software akan dirancang guna mengontrol dan berinteraksi dengan devices periferal yang meliputi mouse, digitizer, dan laser printer.

Page 133: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

133

Kita asumsikan fungsi-fungsi utama PL tersebut adalah:

user interface and control facilities (UICF)

two-dimensional geometric analysis (2DGA)

three-dimensional geometric analisys (3DGA)

database management (DBM)

computer graphics display facilities (CGDF)

peripheral control (PC)

design analysis modules (DAM)

6.5.1.3 Contoh Estimasi Berbasis-LOC

(lanj)

Page 134: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

134

user interface and control facilities (UICF)

two-dimensional geometric analysis (2DGA)

three-dimensional geometric analysis (3DGA)

database management (DBM)

computer graphics display facilities (CGDF)

peripheral control (PC)

design analysis modules (DAM)

Estimated LOCFunction

2.300

5.300

6.800

3.350

4.950

2.100

8.400

33.200estimated lines of code

6.5.1.3 Contoh Estimasi Berbasis-LOC

(lanj)

Page 135: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

135

6.5.1.4 Contoh Estimasi Berbasis FP

number of inputs

number of outputs

number of inquiries

number of files

number of external interfaces

Information Domain Value opt. likely pess.

20 24 30

12 15 22

16 22 28

4 4 5

2 2 3

est.

count weight FP-count

24

16

22

4

2

4

5

4

10

7

96

80

88

40

14

count-total 318

Page 136: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

136

Backup and recovery

Data communication

Distributed processing

Performance critical

Existing operation environment

On-line data entry

Input transaction over multiple screens

Master files updated on-line

Information domain values complex

internal processing complex

Code designed for reuse

Conversion/installation in design

Multiple installations

Application designed for change

Complexity adjustment factor

4

2

0

4

3

4

5

3

5

5

4

3

5

5

1.17

Factor Value

FPestimated

= count-total x [0,65 + 0,01 x Fi]

FPestimated

= 372

6.5.1.4 Contoh Estimasi Berbasis FP(lanj)

Page 137: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

137

6.5.1.5 Contoh Estimasi Berbasis Proses

Sederetan kegiatan proses software harus dikerjakan untuk masing-

masing fungsi.

Fungsi-fungsi dan kegiatan-kegiatan proses PL yang terkait dapat

dinyatakan dalam tabel berikut.

Page 138: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

138

Software Engineering Tasks

Product Functions

Text input

Editing & formatting

Automatic copy edit

Page layout capability

Automatic indexing & TOC

File management

Document production

COMMON PROCESS

FRAMEWORK ACTIVITIES

cu

sto

mer

co

mm

un

icati

on

pla

nn

ing

ris

k

an

aly

sis

en

gin

eerin

g

Page 139: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

139

6.5.2 Empirical Estimation Models

Model estimasi untuk software komputer dengan

menggunakan formula-formula yang diturunkan secara

empirik untuk memprediksi beban kerja sebagai fungsi

dari LOC atau FP.

Data empirik yang mendukung model-model estimasi

tersebut diturunkan dari sample proyek yang terbatas.

Model-model estimasi mempunyai struktur sbb.

CevBAE )(´+=

dengan A, B, dan C adalah konstanta yang diturunkan

secara empirik

E adalah effort dalam orang bulan

ev adalah variabel estimasi (dalam LOC atau FP)

Page 140: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

140

6.5.2.1 Beberapa Model Estimasi

91,0)(2,5 KLOCE ´=

16,1)(73,05,5 KLOCE ´+=

05,1)(2,3 KLOCE ´=

047,1)(288,5 KLOCE ´=

Walston-Felix model

Bailey-Basili model

Boehm simple model

Doty model untuk KLOC > 9

)(0545,039,13 FPE ´+-=

38 )(10728,762,60 FPE -´´=

)(12.157,585 FPE ´+=

Albrecht and Gaffney model

Kemerer model

Matson, Barnett, and Mellichamp

model

LOC-Oriented

FP-Oriented

Page 141: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

141

6.5.2.2 COnstructive COst MOdel

(COCOMO)Model mempunyai bentuk hirarki (berdasarkan Boehm) sbb:

Model 1. Basic COCOMO Model

Menghitung development effort (dan cost) sebagai fungsi dari

ukuran program yang dinyatakan dalam estimasi LOC.

E = abKLOCbb

D = cbEdb

dengan E adalah effort (usaha) dalam orang-bulan dan D adalah

waktu pengembangan dalam bulan kronologis.

Page 142: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

142

Software Project

organic

semi-detached

embedded

ab

2,4

3,0

3,6

bb

1,05

1,12

1,20

cb

2,5

2,5

2,5

db

0,38

0,35

0,32

BASIC COCOMO MODEL

Dengan mengambil nilai pada

contoh CAD, maka biaya per-

person:

E = 2,4 (KLOC)1,05

E = 2,4 (33,2)1,05

E = 95 person-month

Untuk menghitung durasi proyek:

D = 2,5 E0,35

E = 2,5 (95)0,35

E = 12,3 month

Jumlah orang yang

disetujui:

E = E/D = 95/12,3 = ~8

person• Organic – proyek perangkat lunak yang sederhana dan relatif kecil

• Semi-detached – proyek perangkat lunak menengah

• Embedded – proyek perangkat lunak yang kompleks seperti PL penerbangan

Page 143: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

143

Menghitung usaha pengembangan PL sebagai fungsi

ukuran program dan serangkaian pengendali biaya

yang menyangkut penilaian yang subyektif terhadap

produk, hardware, personil, dan atribut proyek.

E = aiKLOCbi x EAF

dengan E adalah effort dalam orang-bulan dan EAF

adalah faktor penyesuaian usaha dengan harga

berkisar antara 0,9 sampai 1,4.

Model 2. Intermediate COCOMO Model

Page 144: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

144

Software Project

organic

semi-detached

embedded

ai

3,2

3,0

2,8

bi

1,05

1,12

1,20

Model 2. Intermediate COCOMO Model (lanj)

• Organic – proyek perangkat lunak yang sederhana dan relatif

kecil

• Semi-detached – proyek perangkat lunak menengah

• Embedded – proyek perangkat lunak yang kompleks seperti

PL penerbangan

Page 145: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

145

Menghubungkan semua karakteristik model

intermediate dengan penilaian terhadap pengaruh

pengendali biaya pada setiap langkah (analisis,

perancangan, pemrograman, dll) dari proses rekayasa

perangkat lunak.

Model 3. Advanced COCOMO Model

Page 146: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

146

6.5.2.3 Persamaan Perangkat Lunak

Persamaa PL : model multivariasi yang mengasumsikan distribusi khusus effort sepanjang hidup proyek pengembangan perangkat lunak.

Dihasilkan (estimasi) dari data produktivitas 4000 proyek perangkat lunak yang sejaman.

Didefinisikan sbb:

E = [LOC x B0,333/P]3 x (1/t4)

keterangan :

E= effort dalam person-month atau person-year

t = durasi proyek dalam bulan atau tahun

B = faktor skill khusus (pertumbuhan skill). Untuk program kecil

(KLOC=5 sampai 15) B=0,16; untuk program lebih besar dari 70 KLOC, B=0,39

P = parameter produktivitas

Waktu pengembangan minimum didefinisikan:

tmin=8,14(LOC/P)0,43

***

Page 147: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

147

7. PENGELOLAAN RISIKO

Definisi Konseptual Risiko

7.1 Strategi Risiko: Reaktif vs Proaktif

7.2. Karakteristik Risiko

7.3. Identifikasi Risiko

7.4. Proyeksi Risiko

7.5. Pengurangan (Mitigation), Monitoring, dan Manajemen Risiko (RMMM)

7.6 Safety Risks & Hazards

Page 148: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

148

Definisi Konseptual Risiko(Robert Charette)

• Risiko berkaitan dengan kejadian yang akan datang.

• Risiko melibatkan perubahan, seperti perubahan dalam pemikiran, opini, tindakan, atau tempat.

• Risiko melibatkan pilihan dan ketidakpastiandalam pilihan itu sendiri.

Page 149: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

149

Dalam konteks rekayasa perangkat lunak :

• risiko apa saja yang dapat menyebabkan proyek PL

serba salah?

• Bagaimana perubahan-perubahan dalam persyaratan-

persyaratan pelanggan, teknologi pengembangan,

komputer target, dan entitas lain yang berkaitan

dengan keberhasilan proyek secara keseluruhan?

• Metode-metode dan tool-tool apa yang harus dipakai,

berapa orang yang harus dilibatkan, seberapa jauh

penekanan terhadap kualitas yang dipandang cukup

memadai?

Page 150: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

150

7.1 Strategi Risiko: Reaktif vs Proaktif

• Strategi reaktif : tim PL tidak melakukan sesuatu

sampai sesuatu yang tidak diinginkan terjadi.

Kemudian tim akan bertindak untuk mengatasi

masalah tersebut secepatnya. Cara ini kadang-kadang

disebut “fire fighting mode”.

• Strategi proaktif : kegiatan menanggulangi risiko sudah

diawali jauh sebelum kerja teknis dimulai. Dalam hal

ini, risiko-risiko yang potensial diidentifikasi,

probabilitas dan pengaruh proyek diperkirakan, dan

dibuat prioritas berdasarkan tingkat pentingnya.

Kemudian tim membuat rencana untuk mengelola

risiko-risiko tersebut.

Page 151: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

151

7.2. Karakteristik Risiko

Ketidakpastian - kejadian yang mencirikan

suatu risiko dapat terjadi atau tidak, yaitu

tidak ada risiko kemungkinan 100%.

Kerugian - jika risiko menjadi kenyataan,

akibat yang tidak diinginkan atau kerugian

akan diperoleh.

Page 152: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

152

Dalam menganalisis risiko, adalah sangat

penting untuk mengkuantifikasi tingkat

ketidakpastian dan tingkat kerugian yang

ditimbulkan oleh masing-masing risiko.

Untuk itu perlu dipertimbangkan berbagai

kategori risiko.

7.2.1 Kategori Risiko

7.2.2 Kategori Risiko Menurut R. Charette

Page 153: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

153

7.2.1 Kategori Risiko

risiko proyek : potensi muncul dari pembiayaan, jadwal, personal, sumber daya, pelanggan, persyaratan, kompleksitas, ukuran, dan ketidakpastian struktural.

risiko teknis : yang disebabkan oleh ambiguitas, spesifikasi, ketidakpastian teknik, keusangan teknik, dan teknologi yang leading edge.

risiko bisnis : risiko pasar, risiko strategi, pemasaran, risiko manajemen, dan risiko biaya.

Page 154: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

154

7.2.2 Kategori Risiko Menurut R. Charette

• Know risks : risiko yang dapat ditemukan

setelah evaluasi yang hati-hati pada rencana

proyek, lingkungan bisnis & teknis proyek yang

sedang dikerjakan, dan sumber-sumber informasi

handal lainnya.

• Predictable risks : risiko yang diesktrapolasi

dari pengalaman proyek-proyek sebelumnya.

• Unpredictable risks : risiko-risiko yang sangat

sulit diketahui sebelumnya.

Page 155: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

155

Ada 2 tipe risiko untuk masing-masing kategori di atas.

• Generic risks : risiko yang mengancam setiap proyek PL.

• Product specific risks : risiko-risiko yang hanya dapat diidentifikasi dengan pemahaman yang jelas pada teknologi, SDM, dan lingkungan yang spesifik bagi proyek tersebut. Untuk mengiden-tifikasi risiko tipe ini, rencana proyek & pernyataan tentang lingkup PL yang akan dibuat diperiksa.

Page 156: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

156

7.3. Identifikasi Risiko

Identifikasi risiko adalah upaya sistematis untuk menentukan

ancaman-ancaman pada rencana proyek (estimasi, jadwal,

pembebanan sumber-sumber, dsb.).

Salah satu metoda untuk mengidentifikasi risiko adalah dengan

membuat sebuah risk item checklist. Dari checklist tersebut dapat

dilakukan pembandingan dengan pengalaman proyek sebelumnya.

Bila deviasinya sama atau lebih besar, atau banyaknya jawaban

negatif, maka risiko proyek tersebut dapat dikatakan tinggi.

Checklist tersebut dapat dipakai untuk mengidentifikasikan dan

memusatkan perhatian pada suatu subset dari known & predictable

risks dalam subkategori umum berikut.

7.3.1 Item Identifikasi Risiko

7.3.2. Komponen-komponen & Penggerak Risiko

Page 157: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

157

7.3.1 Item Identifikasi Risiko Ukuran produk : risiko yang timbul sehubungan dengan ukuran

perangkat lunak yang direkayasa.

Dampak bisnis : berkaitan dengan batasan yang dibebankan oleh manajemen atau pasar.

Karakteristik pelanggan : berhubungan dengan kecerdikan pelanggan dan kemampuan perekayasa untuk berkomunikasi dengan pelanggan.

Definisi proses : risiko yang berkaitan dengan masalah-masalah proses dan teknis rekayasa.

Lingkungan pengembangan : berhubungan dengan ketersediaan dan kualitas tools yang digunakan dalam rekayasa.

Teknologi yang akan dibangun : risiko sehubungan dengan kompleksitas sistem dan ‘kebaruan’ teknologi.

Jumlah dan pengalaman staf : risiko sehubungan dengan keseluruhan teknik dan pengalaman perekayasa.

Page 158: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

158

7.3.2. Komponen-komponen & Penggerak Risiko

Penggerak risiko yang mempengaruhi komponen-komponen risiko PL -

kinerja, biaya, support, dan jadwal, harus diidentifikasi.

7.3.2.1 Komponen Risiko

• Performance risk

Derajat ketidakpastian bahwa produk akan memenuhi persyaratan-

persyaratannya dan sesuai untuk pemakaian yang diperuntukkannya.

• Support risk

Derajat ketidakpastian bahwa PL akan mudah dikoreksi, diadaptasi,

dan ditingkatkan.

• Cost riskDerajat ketidakpastian bahwa anggaran proyek akan terjaga (tetap).

• Schedule risk

Derajat ketidakpastian bahwa jadwal proyek tidak akan berubah dan

bahwa produk akan diserahkan tepat waktu.

Page 159: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

159

7.3.2.2 Penggerak Risiko

Dampak dari setiap penggerak risiko pada komponen risiko dibagi (dikelompokkan) ke dalam salah satu dari empat kategori berikut;

kecil sekali (negligible),

kecil (marginal),

kritis (critical), dan

bencana (catastrophic).

Tabel berikut ini yang dikembangkan oleh Angkatan Udara AS merupakan pedoman untuk menunjukkan konsekuensi potensial kesalahan (label 1) dan konsekuensi potensial jika hasil akhir yang diinginkan tidak tercapai (label 2).

Page 160: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

160

COMPONENTS

CATEGORY

PERFORMANCE SUPPORT COST SCHEDULE

CATASTROPHIC

CRITICAL

MARGINAL

NEGLIGIBLE

1

2

1

1

1

2

2

2

Page 161: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

161

7.4. Proyeksi Risiko

Proyeksi risiko, atau disebut juga estimasi risiko, mencoba

untuk menentukan peringkat setiap risiko berdasarkan dua

hal;

• Kemungkinan atau probabilitas bahwa risiko tersebut

nyata ada,

• Akibat (konsekuensi) pada problem-problem yang terkait

pada risiko tersebut bila benar terjadi.

7.4.1 Kegiatan Proyeksi Risiko

7.4.2 Pembuatan Tabel Risiko

7.4.3 Penilaian Risiko

Page 162: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

162

7.4.1 Kegiatan Proyeksi Risiko

• Menetapkan suatu skala yang mencerminkan kemungkinan yang dibayangkan pada suatu risiko,

• Melukiskan akibat-akibat dari risiko tsb.

• Mengestimasi dampak risiko pada proyek dan produk, dan

• Mencatat akurasi keseluruhan dari proyeksi risiko tsb sehingga tidak akan terjadi salah pengertian.

Untuk memudahkan digunakan tabel berikut.

Page 163: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

163

7.4.2 Pembuatan Tabel Risiko

Teknik sederhana untuk proyeksi risiko adalah

dengan Tabel Risiko (lihat tabel).

Setelah semua risiko yang mungkin (terpikirkan)

serta probabilitas kemunculannya dan tingkat

dampaknya, tertuliskan semua, tahap selanjutnya

adalah mengurutkan berdasarkan resultan

probabilitas dan dampak (merupakan kegiatan

penentuan prioritas).

Tahap selanjutnya adalah menentukan cut-off line.

Page 164: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

164

Risks Category Probability Impact RMMM

Size estimate may be significantly low

Larger number of users than planned

Less reuse than planned

End users resist system

Delivery deadline will be tightened

Funding will be lost

Customer will change requirements

Technology will not meet expectations

Lack of training on tools

Staff inexperienced

Staff turnover will be high

...

...

PS

PS

PS

BU

BU

CU

PS

TE

DE

ST

ST

60%

30%

70%

40%

50%

40%

80%

30%

80%

30%

60%

2

3

2

2

2

3

2

1

2

1

3

PS : Product Size BU : Business Risk

CU : Customer Risk TE : Technology Risk

DE : Development Risk ST : Staff Risk

Cut-off

Page 165: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

165

Risiko-risiko di atas garis cut-off harus ditangani

dengan seksama.

Risiko-risiko di bawah garis cut-off dievaluasi

kembali untuk menentukan prioritas tahap kedua.

Penggerak-penggerak risiko (bukan dampaknya)

dapat dinilai berdasarkan skala probabilitas

kualitatif dengan nilai-nilai: impossible,

improbable, probable, dan frequent.

Page 166: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

166

management

concern

probability of

occurrence

impact

1.0

0

very low

very high

high

Faktor risiko

dengan

pengaruh tinggi

tetapi

probabilitas

rendah, tidak

boleh

menyerap

sebagian besar

perhatian

manajemen.

low

Pengaruh Probabilitas dan Dampak

Risiko thd Perhatian Manajemen

Page 167: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

167

7.4.3 Penilaian Risiko

Tingkat referen resiko adalah tingkat degradasi

kinerja, pembengkakan biaya, kesulitan

dukungan, dan melesetnya jadual atau

kombinasinya yang menyebabkan proyek

diterminasi.

Tingkat referen resiko ini memiliki nilai tunggal

yang disebut referent point yang merupakan titik

impas untuk meneruskan atau menghentikan

proyek sama-sama dapat diterima. Titik-titik ini

kemudian dibuat prediksinya (lihat gambar). Bila

suatu kombinasi resiko jadwal dan biaya jatuh

pada daerah kurva yang tertutup akan

menyebabkan proyek terhenti.

Page 168: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

168

Proyeksi membengkaknya jadwal

Pro

ye

ks

i m

ele

se

tnya

ja

dw

al

Titik referen (nilai biaya,nilai waktu)

Page 169: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

169

7.5. Pengurangan (Mitigation), Monitoring, dan Manajemen Risiko (RMMM)

Semua kegiatan analisis risiko mempunyai satu tujuan tunggal : membantu tim proyek dalam pengembangan suatu strategi untuk menghadapi risiko.

Strategi yang efektif harus mempertimbangkan 3 isu berikut:

• menghindari risiko (risk avoidance),• monitoring risiko (risk monitoring),• manajemen risiko dan perencanaan kemungkinan

(risk management & contingency planning).

Page 170: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

170

7.5.1 Menghindari Risiko (risk avoidance)

Bila tim PL mengadopsi cara proaktif, maka penghindaran risiko selalu merupakan strategi yang terbaik.

Hal ini dicapai dengan mengembangkan rencana untuk mengurangi/menghindari risiko (risk mitigation).

Misal : pergantian staf (turnover) yang tinggi merupakan salah satu risiko proyek (ri), yang digambarkan dalam bentuk triplet sbb :

[ri, li, xi]

Berdasarkan pada data historis dan intuisi, kemungkinan (li) pergantian staf diestimasi sebesar 0,7 dan pengaruh (xi) dari risiko tersebut diprediksi kritis pada biaya dan jadwal proyek.

Page 171: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

171

Untuk mengurangi risiko ini, manajemen proyek harus mengembangkan suatu strategi untuk mengurangi turnover. Langkah-langkah yang mungkin diambil adalah sbb.

1. Adakan pertemuan dengan staf untuk menentukan sebab-sebab turnover (misal kondisi kerja yang jelek, gaji rendah, pasar tenaga kerja yang kompetitif).

2. Ambil tindakan untuk mengurangi sebab-sebabtersebut sebelum proyek mulai.

3. Begitu proyek mulai, misalkan turnover akan terjadi, maka kembangkan teknik-teknik untuk menjamin kontinuitas bila seseorang meninggalkan pekerjaannya.

Page 172: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

172

4. Organisir tim proyek sehingga informasimengenai setiap kegiatan pengembangan tersebar luas.

5. Tentukan standar dokumentasi dan tetapkan mekanisme untuk memastikan bahwa dokumen-dokumen tersebut dibuat dengan tepat.

6. Laksanakan kajian antarteman terhadap semua pekerjaan tersebut sehingga lebih dari satu orang yang terbiasa dengan pekerjaan itu.

7. Tentukan backup anggota staf pada setiap teknologi kritis.

Page 173: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

173

7.5.2 Monitoring Risiko (risk monitoring)

Sebagaimana proyek bergerak maju, kegiatan risk monitoring mulai.

Manajer proyek memantau faktor-faktor yang dapat memberikan

indikasi apakah risiko kemungkinan menjadi nyata atau kurang nyata?

Dalam contoh staff turnover, faktor-faktor berikut harus dipantau.

• Perilaku umum dari anggota tim berdasarkan pada tekanan-

tekanan proyek.

• Derajat kesatuan tim (kekompakan).

• Hubungan interpersonal di antara anggota tim.

• Masalah-masalah potensial yang berkaitan dengan kompensasi

dan keuntungan.

• Ketersediaan (availability) pekerjaan-pekerjaan di dalam

perusahaan tersebut dan di luar.

Page 174: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

174

7.5.3 Manajemen Risiko dan Perencanaan Kemungkinan

Risk management & contingency planning

mengasumsikan bahwa upaya pengurangan

(mitigation) telah gagal dan risiko telah menjadi

kenyataan.

Saat proyek sudah benar-benar berjalan dan jika

strategi mitigasi juga dijalankan, maka backup

telah tersedia (ada), informasi terdokumentasi,

dan pengetahuan telah disebarkan pada tim.

Selain itu, manajer proyek dapat secara temporer

melakukan pemusatan kembali sumber-sumber

(dan menyesuaikan kembali jadwal proyek).

Page 175: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

175

7.6 Safety Risks & Hazards (keselamatan & bahaya)

Risiko tidak hanya terbatas pada proyek PL itu sendiri.

Risiko dapat muncul setelah PL sukses dibuat dan

diserahkan kepada pelanggan.

Risiko-risiko ini secara tipikal berkaitan dengan akibat-

akibat dari kegagalan PL di lapangan.

Walaupun probabilitas kegagalan pada sistem yang

direkayasa dengan baik adalah kecil, suatu fault yang

tidak terdeteksi pada sistem kontrol atau monitoring

yang berbasis komputer dapat menyebabkan kerugian

yang besar.

Page 176: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

176

Software safety & hazard analysis adalah kegiatan

software quality assurance yang memusatkan

perhatian pada identifikasi dan penilaian hazard-

hazard yang potensial yang dapat memberi

dampak negatif pada PL dan menyebabkan seluruh

sistem gagal.

***

Page 177: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8. PROJECT SCHEDULING &

TRACKING8.1 Konsep Dasar8.1.1 Penyebab Keterlambatan Proyek PL8.1.2 Prinsip-prinsip Dasar8.2 Hubungan Manusia dan Kerja8.2.1 Contoh8.2.2 Distribusi Effort8.3 Penentuan Rangkaian Tugas Proyek PL8.3.1 Rangkaian Tugas (Task Set)8.3.2 Beberapa Tipe Proyek8.3.3 Tingkat Kesulitan8.3.4 Penentuan Kriteria Adaptasi8.3.5 Penghitungan Nilai Task Set Selector8.3.6 Contoh Perhitungan TSS8.3.7 Contoh Perhitungan TSS utk Proyek Pengembangan Aplikasi Baru8.3.8 Memilih Task-task Rekayasa PL8.3.9 Contoh task-task utama rekayasa perangkat lunak8.4 Rincian Task-task Utama8.5 Penentuan Task Network8.6 Penjadwalan8.7 Project Plan

Page 178: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.1 Konsep Dasar

8.1.1 Penyebab Keterlambatan Proyek PL

• Batas penyerahan yang tidak realistis yang ditetapkan oleh seseorang di luar grup rekayasa PL dan memaksakannya pada manajer dan praktisi dalam grup tsb.

• Perubahan kebutuhan pelanggan yang tidak tercermin dalam jadwal.

• Memandang rendah jumlah sumber daya yang akan diperlukan untuk mengerjakan pekerjaan tsb.

• Resiko-resiko yang dapat diprediksi dan/atau resiko-resiko yang tidak dapat diprediksi yang belum dipertimbangkanketika proyek dimulai.

• Kesulitan-kesulitan teknis yang belum dapat diramalkan sebelumnya.

Page 179: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

• Kesulitan-kesulitan manusia yang tidak dapat

diprediksi sebelumnya.

• Miskomunikasi di antara staf proyek yang

mengakibatkan keterlambatan.

• Ketidakmampuan manajer proyek untuk mengetahui

bahwa proyek tidak mengikuti jadwal dan tidak

melakukan tindakan yang dapat mengatasi masalah

tsb.

Batas waktu yang agresif (tidak realistik) adalah sebuah

kenyataan. Seringkali batas waktu tersebut ditetapkan

berdasarkan alasan-alasan yang disetujui oleh orang

yang menetapkan batas waktu tersebut, tetapi

seharusnya juga disetujui oleh orang yang

mengerjakannya.

Page 180: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.1.2 Prinsip-prinsip Dasar

Realitas RPL : ada ratusan tugas kecil yang harus

dikerjakan untuk mencapai tujuan yang lebih besar.

Tugas manajer proyek : menentukan tugas-tugas proyek,

mengindentifikasi tugas-tugas yang kritis, dan menelusuri

kemajuannya untuk memastikan bahwa penundaan dapat

direorganisasi setiap hari.

Solusi : manajer harus mempunyai jadwal yang telah

ditetapkan dengan derajat resolusi yang memungkinkan

manajer memonitor kemajuan dan mengontrol proyek

tersebut.

Penjadwalan proyek PL : suatu kegiatan mendistribusikan beban kerja terestimasi sepanjang durasi proyek yang telah direncanakan dengan mengalokasikan beban kerja pada tugas-tugas rekayasa PL. Prinsip-prinsip dasarnya sbb

Page 181: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Prinsip-prinsip Dasar

1. Compartmentalization (pembagian). Proyek harus

dibagi-bagi ke dalam sejumlah tugas dan aktivitas yang

dapat ditangani. Untuk melakukan ini, baik produk

maupun proses harus didekomposisi.

2. Interdependency (saling ketergantungan). Saling

ketergantungan dari setiap tugas dan aktivitas yang

dibagi-bagi harus ditentukan. Beberapa tugas harus

dikerjakan berurutan; yang lain dapat dikerjakan secara

bersamaan. Beberapa kegiatan tidak dapat dimulai

karena harus menunggu hasil dari kegiatan lain.

Beberapa kegiatan lainnya dapat bekerja secara bebas.

Page 182: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

3. Time allocation (alokasi waktu). Masing-masing tugas

yang akan dijadwalkan harus dialokasikan dalam

sejumlah satuan kerja (misalnya kerja orang-hari).

Selain itu harus ditetapkan waktu mulai dan waktu

selesai.

4. Effort Validation (validasi kerja). Dengan alokasi waktu,

manajer harus menjamin bahwa tidak terjadi alokasi

yang melebihi jumlah staf yang ada dalam suatu waktu.

5. Defined responsibilities (batasan tanggungjawab).

Setiap tugas yang dijadwalkan harus ditugaskan kepada

satu anggota tim tertentu.

6. Defined outcomes (batasan keluaran). Setiap tugas

yang dijadwalkan harus memiliki keluaran tertentu.

7. Defined milestones (tonggak ukur). Setiap tugas atau

grup tugas harus terkait dengan project milestone.

Page 183: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.2 Hubungan Manusia dan Kerja

8.2.1 Contoh

Misal ada 4 orang SE, masing-masing mampu menghasilkan 5000 LOC/th bila bekerja sendiri-sendiri dalam proyek individual.

Bila ke-4 SE tersebut ditempatkan pada sebuah tim untuk proyek (mis 1 tahun) terdapat 6 jalur komunikasi.

Masing-masing jalur komunikasi tsb butuh waktu yang harus disisihkan dari waktu membuat PL.

Page 184: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Krn overhead yang berkaitan dgn komunikasi untuk masing-masing jalur komunikasi diasumsikan produktivitas tim perjalur berkurang dengan 250 LOC/th.

Produktivitas tim menjadi :

4*5000 – 6*250 = 18.500 LOC/th

atau berkurang

(1500/2000) x 100% = 7,5%

dari yang diharapkan shg dpt menyebabkan proyek terlambat.

Misal bila 2 bln sebelum penyerahan, ditambahkan lagi 2 SE shg jumlah jalur menjadi 14. Diasumsikan per SE tambahan: 840 LOC / 2 bln shg produktivitas tim menjadi :

4*5000 + 2*840 – 14*250 = 18.180 LOC/th (vs 18.500).

Ini menunjukkan bahwa Jumlah Tenaga Kerja tidak memiliki hubungan linier dengan Produktivitas Kerja.

Page 185: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Suatu hubungan empirik yang menyatakan jumlah LOC (L)

dengan effort (E) dan waktu pengembangan (t), adalah;

L = P x (E/B)1/3 t4/3

dengan P adalah parameter produktivitas (antara 2000

sampai 28.000), B adalah faktor keahlian khusus (antara

0,16 sampai 0,39; lih 6.5.2.3). Bila persamaan tersebut

ditata lagi akan diperoleh :

E = L3/(P3t4)

Misal sebuah proyek PL real time membutuhkan usaha

33.000 LOC dan 12 person-year. Bila 8 orang ditugaskan

dalam tim, maka proyek akan terselesaikan kira-kira dalam

1,3 tahun. Tetapi jika waktu penyelesaian diulur 6 bln lagi

(diselesaikan dalam 1,75 tahun) dengan rumus di atas

diperoleh E = 3,8 person-year, artinya tenaga kerja dapat

dikurangi hingga 4 orang saja. Mana yg menguntungkan?

Page 186: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.2.2 Distribusi Effort

Distribusi beban kerja yang dianjurkan dalam phase-phase

definisi & pengembangan adalah 40 - 20 - 40; 40% atau

lebih beban kerja dialokasikan untuk tugas-tugas front-end

(analisis & design); 40% dipakai dalam back-end testing

dan 20% untuk coding.

Distribusi effort tergantung pada karakteristik proyek. Effort

yang dihabiskan dalam perencanaan proyek jarang

mencapai lebih dari 2% atau 3%.

Analisis persyaratan-persyaratan dapat menghabiskan 10%

sampai 25% effort. Sedangkan effort yang dihabiskan

dalam analisis atau pembuatan prototype tergantung pada

ukuran dan kompleksitas proyek; 20% s/d 25% biasanya

dihabiskan untuk perancangan PL.

Page 187: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Karena beban kerja juga diberikan dalam software

design, kesulitan-kesulitan yang akan dihadapi

dalam coding juga akan berkurang; kisaran antara

15% s/d 20% dari effort keseluruhan dapat dicapai.

Testing dilanjutkan dengan debugging dapat

mencapai 30% s/d 40%. Kekritisan PL sering

dipengaruhi oleh jumlah testing yang diperlukan.

Untuk PL yang human-rated persentasenya bahkan

lebih tinggi.

Page 188: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3. Penentuan Rangkaian Tugas Proyek PL

8.3.1 Rangkaian Tugas (Task Set)

Sejumlah model proses: linier sequensial,iterative, evolutionary, dsb, penuh dengansekumpulan task yang memungkinkan tim PLmenentukan, mengembangkan, dan padaakhirnya memelihara PL komputer.

Tidak ada satu set tunggal yang cocok untuksemua proyek. Oleh karena itu proses PL yangefektif harus menentukan sekumpulan task set,masing-masing dirancang untuk memenuhikebutuhan-kebutuhan tipe proyek yang berbeda.

Page 189: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Task set adalah sekumpulan task-task pekerjaan

rekayasa PL, milestones, dan deliverables yang

harus dipenuhi untuk menyelesaikan proyek.

Task set yang dipilih harus memberikan disiplin

yang cukup untuk mencapai kualitas PL yang

tinggi, tetapi harus tidak membebani tim proyek

dengan kerja yang tidak perlu.

Task set dirancang untuk mengakomodasi

berbagai tipe proyek dan tingkat kesulitan (degree

of rigor) yang berbeda.

Page 190: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.2 Beberapa Tipe Proyek

• Proyek-proyek pengembangan konsep.

• Proyek-proyek pengembangan aplikasi baru.

• Proyek-proyek peningkatan kemampuan aplikasi

yang sudah ada.

• Proyek-proyek perawatan aplikasi.

• Proyek-proyek reengineering.

Page 191: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.3 Tingkat Kesulitan

Degree of rigor (tingkat kesulitan) adalah suatu fungsi

dari berbagai karakteristik proyek.

Terdapat 4 degree of rigor.

o casual,

o structured,

o strict,

o quick reaction.

Manajer proyek harus mengembangkan suatu cara yang

sistematis untuk pemilihan degree of rigor yang sesuai

untuk suatu proyek.

Untuk memenuhi hal tersebut, kriteria adaptasi proyek

didefinisikan dan nilai task set selector dihitung, sbb.

Page 192: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.4 Penentuan Kriteria Adaptasi

Kriteria adaptasi dipakai untuk menentukan degree of rigor

bagi proses PL yang akan dipakai pada proyek.

Sebelas kriteria adaptasi (grade 1-5) untuk proyek PL:

• ukuran proyek,

• jumlah user,

• kekritisan misi yang diemban,

• umur (lamanya) aplikasi tersebut akan dipakai,

• kestabilan dalam persyaratan,

• kemudahan komunikasi customer/developer,

• kemapanan (maturity) teknologi yang dipakai,

• kendala-kendala pada kinerja,

• karakteristik embedded/nonembedded,

• project staffing, dan

• reengineering factors.

Page 193: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Masing-masing kriteria adaptasi diberi grade

antara 1 s/d 5. Grade1 merepresentasikan suatu

proyek yang membutuhkan subset yang kecil pada

task-task proses dan persyaratan-persyaratan

metodologi dan dokumentasi adalah minimal.

Grade 5 merepresentasikan suatu proyek yang

memiliki satu set task-task proses lengkap yang

harus dipergunakan, seluruh persyaratan-

persyaratan metode, dan dokumentasinya

substansial.

Page 194: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.5 Penghitungan Nilai Task Set Selector(TSS)

Memilih task set yang sesuai untuk sebuah proyek

dengan langkah-langkah berikut.

• Periksa masing-masing kriteria adaptasi dan beri

grade yang sesuai berdasarkan karakteristik

proyek.

• Periksa faktor bobot (nilai berkisar antara 0.8 s/d

1.2) yang diberikan pada masing-masing kriteria.

Faktor bobot menunjukkan tingkat pentingnya

(relatif) dari kriteria adaptasi tertentu pada tipe

PL yang dibuat terhadap lingkungan lokal.

Page 195: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

• Kalikan grade dengan faktor bobot dan dengan

entry point multiplier (bernilai 0 atau 1; yang

menunjukkan relevansi kriteria adaptasi dengan

tipe proyek) untuk tipe proyek yang sedang

dikerjakan.

Grade * weighting_factor * entry_point_multiplier

• Hitung task set selector dengan mengambil nilai

rata-rata dari product. Lihat tabel berikut.

Page 196: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.6 Contoh Perhitungan TSS

Adaptation Criteria

Size of project

Number of users

Business criticality

Longevity

Stability of requirements

Ease of communication

Maturity of technology

Performance constraints

Embedded/nonembedded

Project staffing

Interoperability

Reengineering factors

Grade Weight Entry Point Multiplier Product

Conc. NDev. Enhan. Maint. Reeng.

0

0

0

0

0

1

1

0

1

1

0

0

1

1

1

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

0

1

1

1

1

0

1

1

1

0

1

1

0

0

0

1

1

0

1

1

1

0

1

1

1

1

1

1

1

1

1.20

1.10

1.10

0.90

1.20

0.90

0.90

0.80

1.20

1.00

1.10

1.20

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

Task set selector (TSS) _______

Task Set Selector Value Degree of Rigor

TSS < 1.2

1.0 < TSS < 3.0

TSS > 2.4

casual

structured

strict

Page 197: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Adaptation Criteria

Size of project

Number of users

Business criticality

Longevity

Stability of requirements

Ease of communication

Maturity of technology

Performance constraints

Embedded/nonembedded

Project staffing

Interoperability

Reengineering factors

Grade Weight Entry Point Multiplier Product

Conc. NDev. Enhan. Maint. Reeng.

1

1

1

1

1

1

1

1

1

1

1

0

1.20

1.10

1.10

0.90

1.20

0.90

0.90

0.80

1.20

1.00

1.10

1.20

2.4

3.3

4.4

2.7

2.4

1.8

1.8

2.4

3.6

2.0

4.4

0.0

Task set selector (TSS) 2.8

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

_______

2

3

4

3

2

2

2

3

3

2

4

0

8.3.7 Contoh Perhitungan TSS untuk Proyek Pengembangan Aplikasi Baru

Page 198: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.8 Memilih Task-task Rekayasa PL

Untuk membuat jadwal proyek, task set harus didistribusikan pada garis waktu proyek.

Task set tergantung pada tipe proyek dan degree of rigor.

Masing-masing tipe proyek dapat didekati dengan menggunakan model proses (linier sekuensial, iterative, atau evolutionary).

Dalam beberapa hal, suatu tipe proyek dapat beralih, secara perlahan, menuju tipe proyek lainnya (sebagai contoh, proyek pengembangan konsep baru dapat dilanjutkan menjadi proyek pengembangan aplikasi baru, dst).

Page 199: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.3.9 Contoh task-task utama rekayasa perangkat lunak

untuk pengembangan konsep adalah;

• concept scoping,

• preliminary concept planning,

• technology risk assessment,

• proof of concept,

• concept implementation,

• customer reaction to concept.

Sifat dasar dari task-task pengembangan konsep adalah

iterative.

Bila model proses linier yang dipilih, maka dapat dilihat

gambar berikut.

Page 200: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Project

DefinitionPlanning

Engineering/

ConstructionRelease

Customer

Evaluation

Concept development

1.1 Concept scoping

1.2 Preliminary concept planning

1.3 Technology risk assessment

1.4 Proof of concept

1.5 Concept implementation

1.6 Customer reaction

New Application

Development Projects

Application

Enhancement Projects

Application

Maintenance

Reengineering

Page 201: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Project

Definition

Planning

Engineering/

Construction

Release

Customer

Evaluation

Customer reaction

Concept scoping

Preliminary concept planning

Technology risk assessment

Proof of concept

Concept implementation

Page 202: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.4 Rincian Task-task Utama

Task-task utama dapat dipakai untuk menentukan

jadwal makroskopik bagi suatu proyek.

Jadwal makroskopik tersebut harus dirinci lagi untuk

menghasilkan jadwal proyek terinci.

Rincian tersebut dapat dimulai dengan

mendekomposisi task-task utama ke dalam set-set

subtask.

Page 203: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Contoh task refinement untuk proyek pengembangan

konsep: concept scoping task, dengan menggunakan

process design language.

Tugas I.1 Penentuan Ruang Lingkup Konsep

I.1.1 Mengindentifikasi kebutuhan, keuntungan, dan

pelanggan potensial

I.1.2 Menentukan kejadian output/kontrol dan input yang

diharapkan, yang mengendalikan aplikasi

Memulai Tugas I.1.2

I.1.2.1 Mengkaji deskripsi kebutuhan yang ditulis

I.1.2.2 Memperoleh daftar output/input yang tampak

pada dokumen

dst ..........

Page 204: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.5 Penentuan Task Network

Task-task dan subtask-subtask mempunyai saling

ketergantungan berdasarkan pada urutan

pengerjaannya.

Selain itu bila lebih dari satu orang bekerja pada

proyek tersebut, ada kemungkinan task-task

dikerjakan secara paralel, task konkuren ini harus

dikoordinasikan.

Task network adalah representasi grafis dari aliran

task untuk suatu proyek.

Page 205: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

I.1

Concept

scoping

I.2

Concept

planning

I.3a

Tech. Risk

Assessment

I.4

Proof of

Concept

I.5b

Concept

Implement

I.5c

Concept

Implement

I.5a

Concept

Implement

Integrate

a, b, c

I.6

Customer

Reaction

I.3b

Tech. Risk

Assessment

I.3c

Tech. Risk

Assessment

Contoh Task Network

Page 206: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.6 Penjadwalan

Penjadwalan proyek PL tidak berbeda dengan

penjadwalan multitask engineering effort lainnya.

Tool-tool & teknik-teknik umum untuk penjadwalan

proyek dapat dipakai untuk proyek PL dengan

sedikit modifikasi.

Program Evaluation and Review Technique

(PERT) dan Critical Path Method (CPM) adalah

dua metoda penjadwalan proyek yang dapat

dipakai pada proyek pengembangan PL.

Page 207: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Work tasks week 1 week 2 week 3 week 4 week 5

1.1.1 Identify need and benefits

Meet with customers

Identify needs and project constraints

Establish product statement

Milestone: product statement defined

Page 208: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Tracking the Schedule

Tracking dapat dipenuhi dengan sejumlah cara yang

berbeda.

• Adakan pertemuan berkala untuk membahas status

proyek; setiap anggota tim melaporkan kemajuan dan

masalah-masalah yang dihadapi.

• Evaluasi hasil semua review yang dilakukan selama

proses rekayasa PL.

• Tentukan apakah formal project milestone telah

dipenuhi sesuai dengan tanggal yang telah terjadwal?

• Bandingkan waktu mulai sebenarnya dengan waktu

mulai terjadwal untuk masing-masing proyek task.

• Pertemuan informal dengan para praktisi untuk

mendapatkan penilaian subyektifnya atas kemajuan

saat itu dan problem-problem yang tampak.

Page 209: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

8.7 Project Plan

Setiap langkah dalam proses rekayasa PL harus

menghasilkan suatu hasil kerja yang dapat

diperiksa dan dapat bertindak sebagai dasar untuk

langkah berikutnya.

Software project plan dihasilkan di akhir dari

planning tasks.

Dia memberikan informasi tentang cost dan

jadwal yang akan dipakai selama proses rekayasa

PL.

Page 210: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Project Planning ContentI. Pendahuluan

A. Tujuan Rencana

B. Ruang Lingkup dan Tujuan Proyek

1. Pernyataan Ruang Lingkup

2. Fungsi-Fungsi Utama

3. Isu-isu Kinerja

4. Batasan Manajemen dan Teknis

II. Estimasi Proyek

A. Data Historis yang Digunakan untuk Estimasi

B. Teknik-teknik Estimasi

C. Estimasi Usaha, Biaya, Durasi

III. Strategi Manajemen Risiko

A. Tabel Risiko

B. Pembahasan Risiko untuk Dikelola

C. Rencana RMMM untuk setiap Risiko

IV. Jadwal

V. Sumber Daya Proyek

VI. Staf Organisasi

VII. Pelacakan dan Mekanisme Kontrol

VIII. Lampiran

***

Page 211: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9. Software Quality Assurance

9.1 Ruang Lingkup

9.2 Konsep Kualitas

9.2.1 Kualitas

9.2.2 Kontrol Kualitas

9.2.3 Jaminan Kualitas

9.2.4 Biaya Kualitas

9.3 Aktivitas SQA

9.4 Kajian Perangkat Lunak (Software Review)

9.5 Dampak Defects Software thd. Biaya

9.6 Kajian Teknik Formal (Formal Technical Review)

9.7 Review9.7.1 Review Meeting9.7.2 Laporan Review9.7.3 Pedoman Review9.8 Reliabilitas Perangkat Lunak9.8.1 Reliabilitas (kehandalan)9.8.2 Pengukuran Reliabilitas & Availabilitas9.9 Software Safety & Hazard Analysis9.10 Rencana SQA

Page 212: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.1 Ruang Lingkup

Tujuan utama dari rekayasa perangkat lunak adalah menghasilkan perangkat lunak yang berkualitas tinggi

Jaminan kualitas perangkat lunak adalah aktivitas pelindung yang diaplikasikan pada seluruh prosesperangkat lunak, yang meliputi:

pendekatan manajemen kualitas

teknologi rekayasa perangkat lunak yang efektif (metode)

kajian teknik formal yang diaplikasikan pada keseluruhan proses perangkat lunak

strategi pengujian multitiered

kontrol dokumentasi perangkat lunak dan perubahan yang dibuat untuknya

prosedur untuk menjamin kesesuaian dengan standar pengem-bangan perangkat lunak

mekanisme pengukuran dan pelaporan

Page 213: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.2 Konsep Kualitas

9.2.1 Kualitas Kualitas (menurut American Heritage Dictionary) adalah sebuah

karakteristik atau atribut dari sesuatu yang dapat diukur, dibandingkan dengan standar yang diketahui.

Berdasarkan pada sifat pengkurannya, ada dua jenis kualitas yang ada, yaitu kualitas desain dan kualitas konformansi.

1. Kualitas desain mengacu pada karakteristik tertentu yang ditentukan oleh desainer terhadap item tertentu. Desain berkualitas bila produk yang dihasilkan sesuai dengan spesifikasi yang ditentukan. Kualitas desain mencakup syarat, spesifikasi dan desain sistem.

2. Kualitas konformansi adalah tingkat spesifikasi desain yang terus diikuti selama pembuatan. Semakin tinggi tingkat konformansi, semakin tinggi tingkat kualitas konformasi.

Kualitas konformansi difokuskan pada implementasi, jika implementasi mengikuti desain, dan sistem yang dihasilkan memenuhi persyaratan dan kinerja, maka kualitas konformasi menjadi tinggi.

Page 214: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.2.2 Kontrol Kualitas

Kontrol kualitas merupakan serangkaian pemeriksaan, kajian, dan pengujian yang digunakan pada keseluruhan siklus pengembangan untuk memastikan bahwa setiap produk memenuhi persyaratan yang ditetapkan.

Kontrol kualitas mencakup loop (kalang) umpan balik pada proses yang menciptakan produk kerja dengan membandingkan output dari setiap proses dengan spesifikasi yang telah ditetapkan.

Page 215: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.2.3 Jaminan Kualitas

Jaminan kualitas terdiri atas fungsi auditing dan pelaporan manajemen.

Tujuan jaminan kualitas adalah untuk memberikan data yang diperlukan oleh manajemen untuk menginformasikan masalah kualitas produk, sehingga dapat memberikan kepastian dan konfidensi bahwa kualitas produk dapat memenuhi sasaran.

Page 216: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.2.4 Biaya Kualitas

Biaya kualitas menyangkut semua biaya yang diadakan untuk menampilkan kualitas yang berhubungan dengan aktivitas.

Biaya kualitas dapat dibagi ke dalam biaya yang dihubungkan dengan pencegahan, penilaian, dan kegagalan.

Biaya pencegahan meliputi

perencanaan kualitas

kajian teknis formal (FTR)

perlengkapan pengujian

pelatihan

Biaya penilaian meliputi

inspeksi dalam suatu proses dan interproses

pemeliharaan dan kalibrasi peralatan

pengujian

Biaya kegagalan meliputi

Internal (sebelum penyerahan produk)

pengerjaan kembali

perbaikan

analisis mode kegagalan

Eksternal (setelah penyerahan produk)

resolusi keluhan

penggantian dan pengembalian produk

dukungan help line

jaminan

Page 217: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.3 Aktivitas SQA

Jaminan kualitas perangkat lunak terdiri dari berbagai tugas yang berhubungan dengan dua konstituen yang berbeda:

perekayasa perangkat lunak yang mengerjakan kerja teknis

kelompok SQA yang bertanggungjawab terhadap perencanaan jaminan kualitas, kesalahan, penyimpanan rekaman, analisis, dan pelaporan

Aktivitas oleh kelompok SQA:

menyiapkan rencana SQA untuk suatu proyek;

berpartisipasi dalam deskripsi proses pengembangan proyek;

mengkaji aktivitas perangkat lunak untuk memverifikasi pemenuhan proses perangkat lunak yang sudah ditentukan;

meng-audit produk kerja perangkat lunak yang ditentukan untuk membuktikan kesesuaian dengan produk kerja yang ditentukan tersebut sebagai bagian dari proses perangkat lunak;

memastikan bahwa deviasi pada kerja dan produk kerja perangkat lunak didokumentasi dan ditangani sesuai prosedur pendokumentasian;

mencatat ketidakssesuaian dan melaporkannya kepada manajemen senior.

Page 218: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.4 Kajian Perangkat Lunak (Software

Review)

Software reviews adalah sebuah filter untuk proses rekayasa perangkat lunak.

Reviews dilaksanakan di berbagai titik selama pengembangan perangkat lunak dan membantu menemukan error yang kemudian dapat dihilangkan.

Software reviews membantu untuk memurnikanproduk kerja perangkat lunak yang terjadi sebagai suatu hasil dari analisis, desain, dan coding.

FTR (Formal Technical Review) atau disebut walkthrough adalah filter yang paling efektif untuk meningkatkan kualitas PL.

Page 219: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.5 Dampak Defects Software thd. Biaya

Dalam kontek proses PL, istilah defect dan fault adalah sinonim. Keduanya menyatakan secara tidak langsung suatu problem kualitas yang ditemukan setelah PL dirilis kepada end users.

Sasaran utama dari FTR adalah menemukan errors selagi proses PL berjalan sehingga tidak menjadi defect setelah PL dirilis.

Keuntungan sesungguhnya dari FTR adalah menemukan error sedini mungkin sehingga error tsb tidak menjalar ke langkah berikutnya dalam proses PL.

Sejumlah studi menunjukkan bahwa kegiatan desain mengintrodusir error antara 50% dan 65% dari seluruh error (dan pada akhirnya, seluruh defect) selama proses PL.

FTR telah menunjukkan bahwa sampai 75% efektif dalam menemukan cacat-cacat desain.

Dengan mendeteksi dan menghapus sejumlah besar persentase error, proses review secara subtansial mengurangi biaya pada langkah-langkah selanjutnya dalam phase-phase pengembangan dan maintenance.

Page 220: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.6 Kajian Teknik Formal

(Formal Technical Review)

FTR adalah aktivitas jaminan kualitas perangkat lunak yang dilakukan oleh perekayasa perangkat lunak.

Tujuan FTR adalah: menemukan error dalam fungsi, logika, atau

implementasinya dalam berbagai representasi perangkat lunak;

memverifikasi bahwa perangkat lunak yang direview memenuhi syarat;

memastikan bahwa perangkat lunak tersebut telah direpresentasikan sesuai dengan standard yang telah ditentukan sebelumnya;

untuk mencapai perangkat lunak yang dikembangkan dengan cara yang seragam;

membuat proyek lebih mudah dikelola.

Page 221: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.7 Review

9.7.1 Review Meeting

Review meeting (pertemuan kajian) adalah

pertemuan tim review produk kerja perangkat lunak

yang terdiri dari 3 sampai 5 orang guna mengkaji dan

mengevaluasi perangkat lunak yang telah dihasilkan.

Diakhir review, tim harus memutuskan apakah:

menerima hasil kerja tersebut tanpa modifikasi lebih

lanjut.

menolak hasil kerja tersebut karena adanya kesalahan

yang fatal, atau

menerima hasil kerja tersebut secara sementara

(error2 kecil telah ditemukan dan harus dikoreksi;

tetapi tidak perlu direview lagi).

Page 222: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.7.2 Laporan Review

Ada 2 dokumen yg dihasilkan dalam review meeting

yaitu daftar masalah review (review issues list) dan

laporan rangkuman review (review summary report).

Review summary report memuat jawab dari 3

pertanyaan berikut:

(1) apa yg telah direview,

(2) siapa yg telah mereviewnya, dan

(3) apa yang telah ditemukan & apa kesimpulannya.

Review issues list berisi hal2 yang berguna dlm:

(1) mengidentifikasi area problem, dan

(2) bertindak sebagai action item checklist untuk

memandu produsen dalam melakukan koreksi.

Page 223: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.7.3 Pedoman Review

Review produk, bukan produser

Menetapkan agenda dan tetap menjaganya

Membatasi perdebatan dan bantahan

Menetapkan area masalah, tetapi tidak mencoba untuk

menyelesaikan setiap masalah yang dicatat

Buat catatan tertulis

Membatasi jumlah peserta dan lakukan persiapan awal

Buat sebuah daftar utk setiap work product yang direview.

Alokasikan sumber-sumber daya dan jadwal waktu untuk FTR.

Lakukan pelatihan yang berguna bagi semua reviewer.

Review hasil-hasil review yang baru saja dilakukan.

Page 224: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.8 Reliabilitas Perangkat Lunak

9.8.1 Reliabilitas (kehandalan)

Reliabilitas perangkat lunak didefinisikan sebagai probabilitas operasi komputer bebas kegagalan dalam suatu lingkungan tertentu dan waktu tertentu. Misal suatu PL memiliki reliabilitas 0,96 pada 8 jam eksekusi, berarti apabila PL tsb dieksekusi 100 kali selama 8 jam dia akan beroperasi dg benar 96 kali.

Kehandalan perangkat lunak dapat diukur, diarahkan, dan diestimasi dengan menggunakan data pengembangan historis.

Page 225: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.8.2 Pengukuran Reliabilitas & Availabilitas

Dalam kenyataannya, semua kegagalan perangkat lunak dapat dilacak dari problem-problem desain atau implementasi.

Untuk sebuah sistem berbasis komputer, pengukuran sederhana kehandalan adalah berupa Mean Time Between Failure (MTBF),

MTBF = MTTF + MTTR(MTTF : mean time to failure dan

MTTR : mean time to repair)

Software availability adalah probabilitas bahwa sebuah program beroperasi berdasarkan persyaratannya pada suatu titik tertentu pada suatu waktu dan didefinisikan sebagai:

Availability = {MTTF/(MTTF + MTTR)} x 100%

Page 226: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.9 Software Safety & Hazard Analysis

Keamanan perangkat lunak dan analisis risiko

adalah aktivitas SQA yang memfokuskan pada

identifikasi & penilaian hazard (risiko)

potensial yang mungkin berpengaruh negatif

terhadap perangkat lunak dan menyebabkan

seluruh sistem menjadi gagal (fail).

Bila risiko dapat diidentifikasi pada awal

proses rekayasa perangkat lunak, maka ciri-

ciri desain perangkat lunak dapat ditetapkan

shg akan mengeliminasi risiko potensial.

Page 227: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

9.10 Rencana SQA

SQA plan adalah peta jalan untuk membangun jaminan kualitas perangkat lunak. SQA plan berfungsi sebagai template bagi aktivitas SQAyang dibangun untuk setiap proyek perangkat lunak.

Rencana SQA dicatat dalam dokumen produk kerja yang mencakup: dokumen proyek (rencana proyek); model (ERD); dokumen teknis (spesifikasi, rencana pengujian); dokumen pemakai (file-file help).

***

Page 228: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

10. SOFTWARE CONFIGURATION MANAGEMENT10.1. Pendahuluan

10.1.1 Perubahan

10.1.2 Tujuan SCM

10.1.3 Software Maintenance vs Software Configuration Management

10.1.4 Informasi dan Perubahan

10.2. Software Configuration Management

10.2.1 Sumber Dasar Perubahan

10.2.2 Baseline

10.2.3 SCI Baseline dan Database Proyek

10.3 Software Configuration Item (SCI)

10.4. SCM Process

10.4.1 Tanggung Jawab SCM

10.4.2 Pertanyaan Seputar SCM

10.4.3 Tugas SCM

10.5 Identifikasi Objek dalam SC

10.5.1 Tipe Objek

10.5.2 Keunikan Objek

10.5.3 Hubungan Antar-Objek

10.5.4 Evolusi Objek

10.6 Kontrol Versi (Version Control)

10.6.1 Versi PL

10.6.2 Komponen

10.6.3 Varian

10.6.4 Hub Objek Konfigurasi, Komponen, Varian, dan Versi

10.7 Kontrol Perubahan

10.7.1 Proses Kontrol Perubahan

10.7.2 Kontrol Akses & Sinkronisasi

10.8 Audit Konfigurasi

10.8.1 Proses Audit Konfigurasi

10.8.2 Pertanyaan dalam Proses Audit Konfigurasi

10.8.3 Pelaporan Status Konfigurasi (Status Accounting)

10.9 Software Configuration Management (SCM) Standards

Page 229: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

10.1.1 Perubahan

Perubahan adalah hal yang tidak dapat dihindarkan ketika

perangkat lunak komputer sedang dibuat.

Perubahan2 tersebut meningkatkan tingkat kebingungan

di antara para software engineer yang berkerja pada

proyek tersebut.

Kebingungan muncul bila perubahan2 tersebut tidak

dianalisis sebelum perubahan tersebut dilaksanakan;

dicatat sebelum diimplementasi, dilaporkan kepada yang

ingin mengetahui, atau dikontrol dengan suatu cara yang

akan meningkatkan kualitas & mengurangi error.

Software configuration management (SCM) adalah

kegiatan payung (umbrella activities) yang dilaksanakan

selama proses perangkat lunak.

10.1. Pendahuluan

Page 230: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Karena perubahan dapat terjadi kapan saja, maka

kegiatan SCM dibuat untuk;

1) mengidentifikasi perubahan,

2) mengontrol perubahan,

3) mengimplementasikan perubahan dengan benar,

dan

4) melaporkan perubahan kepada pihak-pihak yang

mempunyai kepentingan.

10.1.2 Tujuan SCM

Page 231: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Penting untuk dibedakan dengan jelas antara

software maintenance dan software configuration

management.

Software Maintenance adalah serangkaian aktivitas

rekayasa perangkat lunak yang terjadi setelah

perangkat lunak diserahkan ke pelanggan dan telah

dioperasikan.

Software configuration management adalah

serangkaian kegiatan tracking & control yang dimulai

ketika suatu proyek perangkat lunak dimulai dan

berakhir ketika perangkat lunak sudah tidak

beroperasi lagi.

10.1.3 Software Maintenance vs Software Configuration Management

Page 232: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Keluaran dari proses perangkat lunak adalah informasi yang

dapat dibagi ke dalam 3 kategori utama;

1) program komputer (baik dalam bentuk source code

maupun executable),

2) dokumen2 yang menjelaskan program komputer tersebut

(yang ditargetkan baik untuk technical practitioners

maupun users), dan

3) data (yang diisikan dalam program atau dikeluarkan dari

program).

Item2 yang terdiri dari semua informasi yang dihasilkan

sebagai bagian dari proses perangkat lunak secara kolektif

disebut Software Configuration Items (SCI).

10.1.4 Informasi dan Perubahan

Page 233: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Selama proses - rekayasa SCI berkembang dengan pesat.

System specification menghasilkan sebuah software project

plan dan software requirements specification (juga dokumen2

yang terkait dengan hardware), yang secara berurutan akan

menghasilkan dokumen2 untuk menciptakan suatu hirarki

informasi.

Perubahan masuk ke dalam proses rekayasa. Perubahan

dapat terjadi kapan saja, untuk suatu alasan. Ini sesuai dengan

Hukum 1 system engineering [BER80] yang menyatakan:

“Tidak masalah dimana anda berada dalam siklus kehidupan

sistem, sistem akan berubah, dan keinginan untuk

mengubahnya akan selalu ada selama siklus hidup tersebut”.

Page 234: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

10.2.1 Sumber Dasar Perubahan

Terdapat 4 sumber dasar perubahan. Bisnis baru atau kondisi pasar yang mendiktekan perubahan2 dalam

produk atau aturan2 bisnis.

Keinginan pelanggan baru yang meminta modifikasi data yang

dihasilkan oleh sistem informasi; fungsionalitas yang diberikan oleh

produk, atau layanan yang diberikan oleh suatu sistem berbasis

komputer.

Reorganisasi dan/atau perampingan bisnis yang menyebabkan perubahan

prioritas proyek atau struktur tim rekayasa perangkat lunak.

Kendala2 anggaran atau jadwal yang menyebabkan redefinisi sistem atau

produk.

SCM adalah sekumpulan kegiatan yang telah dikembangkan untuk

menangani perubahan2 selama siklus hidup dari perangkat lunak

komputer.

SCM dapat dipandang sebagai kegiatan SQA yang dipakai selama

proses perangkat lunak.

10.2. Software Configuration Management

Page 235: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Perubahan adalah kenyataan hidup dalam pengembangan perangkat

lunak. Pelanggan ingin memodifikasi persyaratan2. Pengembang ingin

memodifikasi metode2 teknis. Manager ingin memodifikasi cara

pendekatan proyek.

Baseline adalah sebuah konsep SCM yang membantu dalam kontrol

perubahan2 tanpa secara serius menghalangi perubahan2 yang dapat

dijustifikasi.

IEEE mendifinisikan baseline sebagai:

Suatu spesifikasi atau produk yang telah direview secara formal dan

disetujui bersama, yang selanjutnya berfungsi sebagai dasar bagi

pengembangan lebih lanjut, serta dapat diubah hanya melalui

prosedur2 kontrol perubahan formal.

Dalam konteks rekayasa perangkat lunak, baseline adalah milestone

dalam rekayasa perangkat lunak yang ditandai dengan penyampaian

(delivery) SCI dan persetujuan (approval) SCI tersebut yang diperoleh

lewat suatu FTR.

10.2.2 Baseline

Page 236: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Baseline

system engineering

requirements analysis

software design

coding

testing

release

System Specification

Software Requirements Specification

Design Specification

Source Code

Test Plans/Procedures/Data

Operational System

Page 237: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

SCIs

SCIs SCIsFormal

technical

reviews

Software

engineering

tasks

SCIs

SCIsSCM

controls

Project

database

approved

modified

extracted

stored

10.2.3 SCI Baseline dan Database Proyek

Jalur modifikasi

Perlu

modifikasi?

Page 238: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

SCI merupakan informasi yang diciptakan sebagai bagian dari proses

rekayasa perangkat lunak.

SCI berikut menjadi target bagi teknik2 CM dan membentuk

sekumpulan baseline.

1. System Specification

2. Software Project Plan

3. Software Requirement Specification

a. Graphical analysis model

b. Process specifications

c. Prototype(s)

d. Mathematical specification

4. Preliminary User Manual

5. Design Specification

a. Data design description

b. Architectural design description

c. Modul design descriptions

d. Interface design descriptions

e. Object description

10.3 Software Configuration Item (SCI)

Page 239: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

6. Source Code Listing

7. Test Specification

a. Test plan & procedure

b. Test cases & recorded results

8. Operation & Installation Manuals

9. Executable Program

a. Module executable code

b. Linked modules

10. Database Description

a. Schema & file structure

b. Initial content

11. As-built User Manual

12. Maintenance Documents

a. Software problem reports

b. Maintenance requests

c. Engineering change orders

13. Standard & Procedure for Software Engineering

Software Configuration Item (lanj)

Page 240: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

10.4.1 Tanggung Jawab SCM

SCM adalah sebuah elemen penting dari SQA

Tanggung jawab utamanya adalah mengontrol

perubahan.

SCM juga bertanggung jawab untuk :

mengidentifikasi individual SCI & berbagai versi

perangkat lunak,

meng-audit software configuration untuk memastikan

bahwa dia telah dikembangkan dengan benar, dan

melaporkan semua perubahan yang telah dilakukan

pada konfigurasi tersebut.

10.4. SCM Process

Page 241: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Diskusi mengenai SCM memperkenalkan sekumpulan pertanyaan

kompleks sebagai berikut.

Bagaimana suatu organisasi mengidentifikasi dan menangani

berbagai versi yang ada dari sebuah program (dan

dokumentasinya) dalam suatu cara yang akan memungkinkan

perubahan ditampung secara efisien?

Bagaimana suatu organisasi mengontrol perubahan sebelum dan

setelah perangkat lunak dirilis ke pelanggan?

Siapa yang mempunyai tanggung jawab (otoritas) untuk

approving (menyetujui) & prioritizing (memprioritaskan)

perubahan?

Bagaimana kita yakin bahwa perubahan2 tersebut telah dilakukan

dengan benar?

Mekanisme apa yang dipakai untuk memberitahu yang lain

bahwa perubahan telah dilakukan?

10.4.2 Pertanyaan Seputar SCM

Page 242: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Pertanyaan2 tersebut membawa kepada definisi 5 tugas

(task) SCM :

identifikasi,

kontrol versi,

kontrol perubahan,

auditing konfigurasi, dan

pelaporan.

10.4.3 Tugas SCM

Page 243: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

10.5.1 Tipe Objek

Untuk mengontrol & menangani SCI2, masing2 item harus

diberi nama berbeda dan kemudian diorganisir dengan

menggunakan metode berorientasi objek.

Dua tipe objek dapat diidentifikasi: basic objects (obyek

dasar) & aggregate objects (kumpulan obyek).

Sebuah basic object adalah sebuah “unit of text” yang

telah diciptakan oleh seorang software engineer pada

saat (selama) analisis, design, coding, atau testing.

Sebuah aggregate object adalah sekumpulan basic object

dan aggregate objects lainnya.

10.5 Identifikasi Objek dalam SC

Page 244: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Setiap object mempunyai sekumpulan fitur yang berbeda

yang mengidentifikasikannya secara unik;

sebuah nama (object name),

suatu deskripsi (object description),

suatu daftar sumber daya (resources list) dan

suatu realisasi (realization)

10.5.2 Keunikan Objek

Page 245: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Object name adalah sebuah string karakter yang

mengidentifikasi object secara tidak samar.

Object description adalah sebuah list item2 data yang

mengidentifikasi:

tipe SCI (misal dokumen, program, data) yang

direpresentasikan oleh object;

suatu project identifier; dan informasi perubahan

dan/atau versi.

Resources adalah entitas yang disediakan, diproses,

diacu atau sebaliknya diperlukan oleh object.

Realisasi adalah sebuah pointer pada “unit of text” untuk

suatu basic object dan null untuk suatu aggregate object.

10.5.2 Keunikan Objek (lanj)

Page 246: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Configuration object identification juga harus mempertimbangkan

hubungan yang ada antara “named objects”

Sebuah object dapat diidentifikasi sebagai <part-of> suatu aggregate

object.

Hubungan <part-of> menentukan sebuah hirarki object2.

Hubungan di antara object2 dalam suatu hirarki objek tidak hanya

sepanjang direct path dari hirarchical tree, tetapi dalam beberapa hal,

object2 diinterrelasikan melewati cabang2 dari object hirarchy.

Interrelationships antara configuration objects dapat

direpresentasikan dengan sebuah module interconection language

(MIL).

MIL menggambarkan interdependencies di antara configuration

objects dan memungkinkan suatu versi dari suatu sistem dikonstruksi

secara otomatis.

10.5.3 Hubungan Antar-Objek

Page 247: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Gambar : Configuration Objects

Design specification

data designarchitectural designmodule designinterface design

Test specification

test plantest proceduretest cases

Module N

interface descriptionalgorithm descriptionPDL

Data Model

Source code

Page 248: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Skema identifikasi untuk objek2 perangkat lunak harus

mengenali bahwa objek2 berevolusi selama proses

perangkat lunak.

Sebelum suatu objek dijadikan baseline, dia boleh

berubah berkali-kali, dan bahkan setelah suatu baseline

ditetapkan, perubahan2 mungkin cukup sering.

Dimungkinkan untuk menciptakan sebuah evolution graph

untuk suatu object. Evolution graph menggambarkan

sejarah perubahan dari object (lihat gbr).

Dimungkinkan juga perubahan2 dapat dilakukan pada

sembarang versi, tetapi tidak perlu pada semua versi.

10.5.4 Evolusi Objek

Page 249: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

obj

1.0

obj

1.1

obj

1.2

obj

2.0

obj

2.1

obj

1.3

obj

1.4

obj

1.1.1

obj

1.1.2

Grafik Evolusi

Page 250: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Clemm[CLE89] menggambarkan version control dalam

konteks SCM sbb:

Configuration management mengijinkan seorang user

untuk menentukan konfigurasi alternatif dari sistem

software melalui pemilihan versi2 yang sesuai. Hal ini

didukung oleh atribut2 yang terkait dengan masing2 versi

software, dan kemudian juga mengijinkan suatu

konfigurasi ditentukan (dan dikonstruksi) dengan

menggambarkan serangkaian atribut yang diinginkan.

10.6 Kontrol Versi (Version Control)

Page 251: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Atribut2 yang dikemukakan di atas dapat sesederhana

seperti hanya sebuah nomor versi tertentu yang terkait

pada masing2 objek atau sekompleks seperti suatu string

dari variable boolean (switches) yang menunjukkan tipe

tertentu dari perubahan2 fungsional yang telah dilakukan

pada sistem.

Salah satu representasi dari versi2 yang berlainan dari

suatu sistem adalah evolution graph (lihat gbr).

Masing2 node pada graph tersebut adalah sebuah

aggregate object, yaitu satu versi lengkap (utuh) dari

perangkat lunak.

10.6.1 Versi PL

Page 252: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Masing2 versi perangkat lunak adalah sekumpulan SCI

(source code, dokumen2, data) dan setiap versi dapat

terdiri dari variant2 yang berbeda.

Untuk melukiskan konsep ini, pikirkan sebuah versi dari

sebuah program sederhana yang tersusun dari

komponen2 1, 2, 3, 4, dan 5 (lihat gbr).

Komponen 4 hanya dipakai bila software

diimplementasikan dengan menggunakan display warna.

Komponen 5 diimplementasikan bila tampilan yang

dipakai monochrome.

Oleh karena itu, dua variant dari versi tersebut dapat

ditentukan: (1) komponen2 1, 2, 3, dan 4; (2) komponen2

1, 2, 3, dan 5.

10.6.2 Komponen

Page 253: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Grafik Evolusi Revisi Perangkat Lunak

obj

1.0

obj

1.1

obj

1.2

obj

2.0

obj

2.1

obj

1.3

obj

1.4

obj

1.1.1

obj

1.1.2

1

2 3

4 5

components

variants

Page 254: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Untuk membangun varian yang sesuai dari suatu versi

tertentu dari suatu program, masing2 komponen dapat

diberikan suatu “attribute-tuple”, yaitu sebuah lis dari fitur2

yang akan menentukan suatu komponen tertentu harus

dipakai bila suatu varian tertentu dari suatu versi

perangkat lunak dibuat.

Satu atau lebih atribut diberikan untuk masing2 varian.

Sebagai contoh, suatu atribut ‘color’ dapat dipakai untuk

menentukan komponen yang harus disertakan bila color

display yang harus didukung.

Cara lain untuk mengkonseptualisir hubungan antara

komponen, varian2, dan versi2 (revisi2) adalah

merepresentasikannya sebagai “object pool”

10.6.3 Varian

Page 255: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

components

versions

variants

object

Page 256: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Hubungan antara configuration object dan komponen2,

varian2, dan versi2 dapat direpresentasikan sebagai

sebuah ruang tiga dimensi.

Sebuah versi dapat dipilih dari beberapa varian yang ada

(sb vertikal) yang terdiri dari beberapa komponen.

Sebuah komponen tersusun dari sekumpulan objek2 pada

tingkat level revisi yang sama.

Sebuah varian adalah sekumpulan objek2 yang berbeda

pada tingkat revisi yang sama, dan oleh karena itu berada

berdampingan secara paralel dengan variant2 lain.

Sebuah versi baru ditentukan bila perubahan2 besar

(utama) dilakukan pada satu atau lebih object.

10.6.4 Hub Objek Konfigurasi, Komponen, Varian, dan Versi

Page 257: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Untuk proyek pengembangan perangkat lunak yang

besar, perubahan yang tidak terkontrol membawa pada

kekacauan (chaos).

Change control menggabungkan prosedur manusia dan

tool otomatis guna memberikan sebuah mekanisme untuk

mengontrol perubahan.

Suatu change request di submit dan dievaluasi untuk

menilai manfaat teknisnya, efek samping yang potensial,

dampak keseluruhan pada configuration objects dan

fungsi2 sistem lainnya.

10.7 Kontrol Perubahan

Page 258: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Hasil dari evaluasi tersebut dipresentasikan sebagai sebuah Change

Report yang dipakai oleh Change Control Authority (CCA), yaitu

seseorang atau grup yang membuat keputusan akhir terhadap status

dan prioritas dari perubahan tersebut.

Sebuah Engineering Change Order (ECO) dibuat untuk setiap

perubahan yang telah disetujui.

ECO menjelaskan perubahan2 yang harus dibuat, kendala2 yang

harus diperhatikan, dan kriteria2 untuk review & audit.

Objek yang akan diubah di’checked out’ dari basis data proyek,

dilakukan perubahan, dan kegiatan2 SQA yang bersesuaian

dilaksanakan.

Objek tersebut kemudian di’checked-in’ ke basis data dan mekanisme

version control yang sesuai dipakai untuk menciptakan versi

berikutnya dari perangkat lunak tersebut.

Proses check-in dan check-out mengimplementasikan dua elemen

penting dari kontrol perubahan, yaitu access control & synchronization

control.

10.7.1 Proses Kontrol Perubahan

Page 259: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Kontrol akses mengatur perekayasa perangkat lunak yang mempunyai otoritas untuk mengakses dan memodifikasi suatu configuration object tertentu (khusus).

Kontrol sinkronisasi membantu untuk memastikan bahwa paralel changes yang dilakukan oleh dua orang yang berbeda tidak saling overwrite satu terhadap lainnya.

Aliran kontrol akses & sinkronisasi dilukiskan secara skematik pada gbr berikut.

10.7.2 Kontrol Akses & Sinkronisasi

Page 260: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

check-in

access

control

check-out

software

engineer

project

database

ownership

info

configuration object

(baseline version)

configuration object

(baseline version)

configuration object

(extracted version)

configuration object

(modified version)

unlock

lock

audit info

Change Control

Page 261: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Identifikasi, kontrol versi, dan kontrol perubahan

membantu pengembang perangkat lunak untuk

mempertahankan aturan, bila tidak akan mendatangkan

situasi yang chaotic & fluid.

Walaupun demikian, bahkan mekanisme kontrol yang

berhasil mentrack perubahan hanya sampai ECO

dibangkitkan.

Bagaimana kita dapat menjamin bahwa perubahan

tersebut telah diimplementasikan dengan benar?

Jawabnya adalah dua hal: (1) FTR, dan (2) software

configuration audit.

10.8 Audit Konfigurasi

Page 262: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

FTR memusatkan pada ketepatan (correctness) teknis

dari configuration object yang telah dimodifikasi.

Para reviewer menilai SCI tersebut untuk menentukan

konsistensi terhadap SCI2 lain, penghilangan, dan

potensial side effects. FTR harus dilaksanakan untuk

semua perubahan termasuk yang paling sepele.

Software configuration audit melengkapi

(menyempurnakan) FTR dengan penilaian suatu

configuration object untuk karakteristik2 yang pada

umumnya tidak dipertimbangkan selama review.

10.8.1 Proses Audit Konfigurasi

Page 263: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Audit tersebut menanyakan dan menjawab pertanyaan2

berikut:

1. Apakah perubahan yang ditentukan dalam ECO telah dilakukan?

Apakah suatu modifikasi tambahan telah disertakan?

2. Apakah FTR telah dilakukan untuk menilai ketepatan teknis?

3. Apakah standard2 software engineering telah diikuti dengan

benar?

4. Apakah perubahan tersebut telah ditandai dalam SCI? Apakah

tanggal perubahan dan orang yang membuat perubahan telah

dicatat? Apakah atribut2 configuration object mencerminkan

perubahan tersebut?

5. Apakah prosedur2 SCM untuk pencatatan perubahan, perekaman,

dan pelaporan telah diikuti?

6. Apakah semua SCI yang terkait telah diupdate dengan benar?

10.8.2 Pertanyaan dalam Proses Audit Konfigurasi

Page 264: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Setiap kali suatu SCI diberi identifikasi baru atau

diupdate, sebuah Configuration Status Reporting CSR

entry dibuat.

Setiap kali suatu perubahan disetujui oleh CCA (yaitu,

suatu ECO dikeluarkan), sebuah entry CSR dibuat.

Setiap kali suatu configuration audit dilakukan, hasil2nya

dilaporkan sebagai bagian dari task CSR.

Output dari CSR dapat diletakkan dalam basis data on-

line shg pengembang perangkat lunak atau pengelola

(maintainers) dapat mengakses informasi perubahan

dengan keyword category.

10.8.3 Pelaporan Status Konfigurasi (Status Accounting)

Page 265: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Beberapa standard SCM awal, seperti MIL-STD-483,

DOD-STD-480A, dan MIL-STD-1521A, memusatkan

pada software yang dikembangkan untuk aplikasi

militer.

Standar ANSI/IEEE yang lebih baru, seperti

ANSI/IEEE Std. No. 828 - 1983, Std. No. 1042 - 1987,

dan Std. No. 1028 - 1988, dapat dipakai untuk

software komersial dan direkomendasikan baik untuk

organisasi2 rekayasa perangkat lunak besar & kecil.

***

10.9 SCM Standards

Page 266: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11. REKAYASA SISTEM BERBASIS KOMPUTER

III. METODE KONVENSIONAL

Page 267: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.1 Sistem Berbasis Komputer (Computer-based System)

Sistem berbasis komputer bertujuan untuk mendukung berbagai

fungsi bisnis atau untuk mengembangkan suatu produk yang

dapat dijual untuk menghasilkan keuntungan bisnis.

Elemen-elemen sistem berbasis komputer:

1. Perangkat lunak (program komputer, struktur data, dan dokumen

yang berhubungan)

2. Perangkat keras (perangkat elektronik dan elektromekanik)

3. Manusia (user yang memakai perangkat lunak dan perangkat keras)

4. Basisdata (kumpulan informasi besar dan terorganisir yang diakses

melalui perangkat lunak)

5. Dokumentasi (manual, formulir, dan informasi deskriptif lainnya)

6. Prosedur (langkah-langkah yang menentukan penggunaan elemen

sistem)

Page 268: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Rekayasa Perangkat Lunak terjadi sebagai konsekuensi dari

suatu proses yang disebut Rekayasa Sistem Berbasis

Komputer (Rekayasa Sistem)

Rekayasa Sistem memfokuskan diri pada berbagai elemen,

analisis, desain, dan pengorganisasian elemen-elemen

tersebut ke dalam suatu sistem yang dapat menjadi sebuah

produk, jasa, atau teknologi untuk mentransformasi

informasi atau kontrol. Oleh sebab itu rekayasa sistem

cenderung pada pengembangan sistem berbasis komputer.

Proses Rekayasa Sistem disebut Rekayasa Informasi bila

konteks kerja berfokus pada sistem informasi bagi

manajemen yang bersifat unik bagi suatu institusi. Hasil

rekayasa ini dapat bersifat masal (menjadi suatu produk

yang dipasarkan masal) hanya bila dapat diterapkan di

berbagai institusi tanpa merubah fungsi-fungsi

transformasi.

Page 269: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.1.1 Karakteristik Sistem Berbasis Komputer

Sistem Otomasi Pabrik

Sistem Pemanukfaturan

Sel PemanufakturanSistem Aliran Material

Perangkat Entry DataRobotMesin Control Numeric

Sistem InformasiSistem Inventori

Karakteristik Sistem Berbasis Komputer ditandai oleh adanya elemen-elemen yang berbasis komputer pula.

Page 270: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.1.2 Hirarki Rekayasa Sistem

Rekayasa melingkupi sekumpulan metode dari atas ke bawah

(top-down) dan dari ke bawah ke atas (bottom-up) untuk

mengendalikan hirarki dari sistem makro.

Proses rekayasa sistem dimulai dengan sebuah world view (WV).

Semua domain bisnis atau domain produk diuji untuk memastikan

bahwa bisnis atau konteks teknologi yang tepat dapat dibangun.

Pada domain tertentu, kebutuhan sistem yang ditargetkan (mis.

data, SW, HW, manusia) dianalisis. Kemudian analisis, desain, dan

konstruksi dari elemen yang ditargetkan diinisiasi.

Pada puncak hirarki, suatu konteks yang lebih luas dibangun, dan

di bagian dasarnya, aktivitas teknik lengkap - yang dilakukan oleh

disiplin rekayasa yang relevan - dilakukan.

Gambaran sistem :

WV = {D1 D2 D3……Dn} WV = wold view (sebuah sistem besar)

Di = {E1 E2 E3……En} Di = domain sistem (sub sistem)

E1 = {C1 C2 C3……Cn} Ei = elemen (pembentuk domain)

Page 271: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.1.3 Hirarki Rekayasa Perangkat Lunak

Domain Bisnis / Produk

domain interes

World View

elemen sistemPandangan Domain

Pandangan Elemen

Pandangan Detail

Page 272: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.2 Rekayasa Informasi Tujuan dari rekayasa informasi (information engineering) adalah

untuk

menentukan arsitektur yang memungkinkan suatu organisasi /bisnis (selanjutnya disebut bisnis saja) menggunakan informasi secara efektif,

membuat suatu rencana menyeluruh guna mengimplementasi arsitektur-arsitektur tersebut.

Tiga arsitektur yang harus dianalisis dan dirancang dalam konteks dan tujuan bisnis:

Arsitektur data

memberikan kerangka kerja untuk kebutuhan informasi dan bisnis atau fungsi bisnis. Blok bangunan dari arsitektur ini adalah objek data yang digunakan oleh suatu basisdata dan ditransformasikan untuk memberikan informasi yang melayani kebutuhan bisnis.

Arsitektur aplikasi

melingkupi elemen-elemen dari suatu sistem yang mentransformasi objek ke dalam arsitektur data untuk keperluan bisnis.

Infrastruktur teknologi

menyangkut perangkat keras dan perangkat lunak yang digunakan untuk mendukung aplikasi dan data.

Page 273: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Untuk memodelkan arsitektur sistem, ditetapkan hirarki

aktivitas rekayasa informasi, mulai dari World View, Domain

View, Element View hingga Detail View.

WV dicapai melalui information strategy planning (ISP),

dengan memandang bisnis keseluruhan sebagai sebuah entitas

dan memisahkan domain bisnis yang penting untuk perusahaan

/ institusi keseluruhan

Pandangan domain yang dikaitkan dengan IE disebut analisis

area bisnis/ Business Area Analysis (BAA)

BAA adalah pengindentifikasian data lengkap dan persyaratan

fungsi (dalam bentuk proses) dari area bisnis yang dipilih, yang

diindentifikasi selama ISP, dan memastikan interaksi mereka

(dalam bentuk matriks)

BAA mendefinisikan objek-objek data, hubungan antarobjek,

dan aliran data.

Page 274: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.2.1 Hirarki Rekayasa Informasi

Perusahaan

Sistem Informasi

Area Bisnis

PerencanaanStrategi Informasi (World View)

persyaratan pemrosesan

Analisis Area Bisnis(Pandangan Domain)

Desain Sistem Bisnis(Pandangan Elemen)

Konstruksi dan Integrasi (Pandangan Detail)

area bisnis

Perekaya Perangkat Lunak

Page 275: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.2.2 Analisis Area Bisnis

Gambaran analisis area bisnis adalah sbb.

BAA membentuk suatu kerangka kerja lengkap untuk membangun perusahaan / organisasi yang berbasis informasi.

BAA menggunakan satu area bisnis pada suatu waktu dan menganalisisnya secara detail.

BAA menggunakan diagram dan matriks untuk memodelkan dan merekam data / aktivitas dalam perusahaan serta untuk memberikan pemahaman yang jelas tentang relasi antaraspek-aspek informasiperusahaan secara rinci dan tajam.

Untuk memodelkan relasi antaraspek-aspek informasi perekayasa informasi harus menggambarkan penggunaan objek data dan transformasinya pada masing-masing area bisnis dan menggambarkan pula mekanisme fungsi dan proses bisnis pada masing-masing area bisnis dalam mentransformasi objek data.

Untuk melakukan tersebut, BAA menggunakan sejumlah model:

model data

model aliran proses

diagram dekomposisi proses

matriks lintas referensi

Page 276: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.2.3 Pemodelan Data

Objek : Pelanggan

Atribut :

nama

nama perusahaan objek : perusahaan

klasifikasi pekerjaan dan otoritas pembelian

alamat bisnis dan informasi kontak

pembelian sebelumnya

tanggal kontak terakhir rekaman kontak

status kontak status kontak terakhir

tanggal kontak selanjutnya

sifat kontak yang disepakati

Atribut nama perusahaan dimodifikasi untuk menunjuk objek lain yang disebut ‘perusahaan’ yang dapat berisi informasi tambahan mengenai besar perusahaan, kebutuhan pembelian, nama kontak yang lain, dsb., yang berguna dalam domain penjualan.

Page 277: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.2.4 Pemodelan Proses

Kegiatan pada suatu area bisnis mencakup serangkaian fungsi bisnis, yang diuraikan ke dalam proses bisnis yang lebih rinci.

Contoh : proses yang terjadi dalam fungsi penjualan

membangun kontak pelanggan

menyediakan literatur dan informasi yang sesuai

mengarahkan pertanyaan dan perhatian

memberi evaluasi produk

menerima pesanan penjualan

memeriksa ketersediaan konfigurasi yang dipesan

menyiapkan pesanan pengiriman

mengkonfirmasikan konfigurasi, penetapan harga, tanggal pengiriman ke pelanggan

mengirim pesanan pengiriman ke bagian pengiriman

tindak lanjut ke pelanggan

Penjabaran proses tersebut tertuang dalam model sbb.

Page 278: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.2.5 Pemodelan Aliran Informasi

Model aliran proses diintegrasikan dengan model data untuk

mengindikasi aliran informasi melalui suatu area bisnis.

Membangunkontak

pelanggan

MemberiInformasi

produk

MemberiEvaluasiproduk

MengarahkanPertanyaan/

perhatian

MenerimaPesanan

penjualan

MemeriksaKonfigurasi

ketersediaan

MenyiapkanPesanan

pengiriman

Mengkonfir-masikan Info

pesanan

MembangunKontak

pelangganTindak

lanjut kepelanggan

Model aliran proses untuk fungsi penjualan

Page 279: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Membangunkontak

pelanggan

MemberiInformasi

produk

MemberiEvaluasiproduk

MengarahkanPertanyaan/

perhatian

MenerimaPesanan

penjualan

MemeriksaKonfigurasi

ketersediaan

MenyiapkanPesanan

pengiriman

Mengkonfir-masikan Info

pesanan

MembangunKontak

pelangganTindak

lanjut kepelanggan

Rekayasa Informasi merupakan suatu pendekatan Rekayasa Sistem yang digunakan untukmenentukan arsitektur yang memungkinkan organisasi /bisnis menggunakan informasi scr efektif.

Rekamankontak

Infoproduk

Deskripsiproduk

Pemenuhanpesanan

DeskripsiProduk terevaluasi

Pelanggan

Pemenuhanpesanan

Format konfigurasi

ketersediaan

Info pesanan

Info pesanan utk konfirmasi

Datapengiriman

Pemenuhanpesanan

Info pesanan

Info query Data pesanan

• Objek data input dan output yang diperlihatkan untuk masing-masing proses menunjukkan transformasi informasi untuk menyelesaikan suatu fungsi bisnis

Page 280: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.3 Rekayasa Sistem Rekayasa Sistem merupakan suatu aktivitas pemecahan masalah yang

dihadapi sistem.

Data produk, fungsi, dan perilaku sistem harus ditemukan, dianalisis,

dan dialokasikan ke dalam komponen-komponen rekayasa.

Perekayasa sistem harus memperjelas dan membatasi persyaratan

sistem dengan mengidentifikasi ruang lingkup fungsi dan kinerja yang

diinginkan.

Rekayasa Sistem diawali dengan analisis sistem untuk membentuk

model arsitektur sistem dan spesifikasi sistem.

Page 281: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.3.1 Aktivitas-aktivitas dalam Analisis Sistem

Analisis sistem dilakukan dengan sasaran sebagai berikut:

mengidentifikasi kebutuhan pelanggan,

mengevaluasi konsep sistem untuk fisibilitas,

mengalokasikan fungsi-fungsi untuk perangkat keras, perangkat lunak, manusia, basisdata, dan elemen sistem yang lain,

membuat batasan biaya dan jadwal,

menciptakan definisi sistem yang membentuk pondasi bagi semua kerja rekayasa subsekuen.

1. Identifikasi Kebutuhan

Dilakukan dengan cara bertemu dengan pelanggan dan pemakai akhir.

Hasil dari indentifikasi kebutuhan dispesifikasi dalam suatu dokumen konsep sistem

Page 282: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2. Studi Fisibilitas

Fisibilitas ekonomi; evaluasi biaya pengembangan dibobot dengan pemasukan utama atau keuntungan yang didapat dari sistem atau produk yang dikembangkan

Fisibilitas teknis; studi mengenai fungsi, kinerja, dan batasan yang dapat mempengaruhi kemampuan untuk mencapai sebuah sistem yang dapat diterima

Fisibilitas legal; pertimbangan mengenai pelanggaran, kekerasan, atau liabilitas (pertanggung jawaban) yang dihasilkan dari pengembangan sistem

Alternatif; evaluasi mengenai pendekatan alternatif pada pengembangan sistem atau proyek

3. Analisis Ekonomi

Analisis biaya keuntungan yang menggambarkan biaya untuk pengembangan proyek dan membandingkannya dengan keuntungan yang nyata dan tidak nyata dari suatu sistem.

4. Analisis Teknis

Analis mengevaluasi kebaikan teknis dari konsep sistem, dan pada saat yang sama mengumpulkan informasi tambahan mengenai kinerja, reliabilitas, kemampuan pemeliharaan, dan produksibilitas.

Page 283: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

11.3.2 Pemodelan Arsitektur Sistem Untuk mengembangkan model sistem maka digunakan template

arsitektur, yang terdiri dari lima daerah pemrosesan : (1) interface

pemakai; (2) input; (3) fungsi dan kontrol; (4) output; (5)

pemeliharaan dan self-test.

Pemrosesan interface pemakai

Pemrosesaninput

Pemrosesanoutput

Fungsi proses dan kontrol

Pemeliharaan dan self-test

Page 284: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Contoh: Diagram konteks arsitektur untuk CLSS

Sistem Pengurutan

Conveyor Line

OperatorStasiunsorting

OperatorStasiunsorting

PembacaBar code

Conveyorlain

Mekanismepengurutan

mainframe

Data permintaan Query danreport

Kode Perintahlangsir

Bar code

Data diagnostik

Indikatorkecepatan

Data pelaporanterformat

***

Page 285: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12. KONSEP DAN PRINSIP ANALISIS

12.1 Analisis Persyaratan

12.2 Prinsip-Prinsip Analisis

12.3 Area Kerja Analisis

12.3.1 Identifikasi dan Perumusan Masalah

12.3.2 Evaluasi dan Sintesis

12.3.3 Pemodelan Analisis

12.3.4 Spesifikasi

12.3.5 Kajian

Page 286: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.1 Analisis PersyaratanAnalisis persyaratan adalah sebuah tugas rekayasa perangkat lunak yang menjembatani jurang antara alokasi perangkat lunak tingkat sistem dan desain perangkat lunak.

Analisis persyaratan memungkinkan perekayasa sistem menentukan fungsi dan kinerjaperangkat lunak, menunjukkan interface perangkat lunak dengan elemen-elemen sistem yang lain, dan membangun batasan yang harus dipenuhi oleh perangkat lunak.

Desain PL

Perangkat Lunak

Elemen2

lain

Analisis

Persyaratan PL

REKAYASA

SISTEM

Analisis

Persyaratan PL

Page 287: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.2 Prinsip-Prinsip Analisis

1. Prinsip Operasional

Domain informasi dari suatu masalah harus dipahami

Fungsi-fungsi yang akan dilakukan oleh perangkat lunak harus didefinisikan

Perilaku perangkat lunak harus direpresentasikan

Model-model yang menggambarkan informasi, fungsi dan tingkah laku sistem harus dipecah-pecah secara hirarki

Proses analisis harus bergerak dari informasi dasar ke detail implementasi

2. Prinsip Panduan untuk rekayasa persyaratan

Memahami masalah sebelum membuat model analisis

Mengembangkan prototipe, sehingga pemakai memahami bagaimana interaksi manusia dan komputer

Merekam asal dan alasan untuk setiap persyaratan

Menggunakan pandangan persyaratan bertingkat

Memprioritaskan persyaratan

Mengurangi ambiguitas

Page 288: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.3 Area Kerja Analisis

Analisis persyaratan memberikan model-model yang akan

diterjemahkan ke dalam data, arsitektur, interface, dan desain

prosedural kepada perancang perangkat lunak.

Analisis persyaratan perangkat lunak dapat dibagi menjadi lima area

kerja:

1) Identifikasi dan Perumusan Masalah

2) Evaluasi dan Sintesis

3) Pemodelan

4) Spesifikasi

5) Kajian

Page 289: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.3.1 Identifikasi dan Perumusan Masalah

Identifikasi bisa diawali dengan mempelajari spesifikasi sistem dan atau

rencana proyek perangkat lunak. Contohnya :

Pemasok besar suku cadang kendaraan bermotor membutuhkan sistem

kontrol inventaris. Analis merumuskan masalah yang berhubungan

dengan sistem manual yang ada sbb.

Ketidakmampuan untuk dengan cepat memperoleh status suatu komponen.

Dua atau tiga hari berkali-kali memperbarui suatu file kartu.

Pemesanan kembali secara bertingkat kepada penjual yang sama karena

tidak ada cara untuk menghubungkan para penjual dengan komponen, dsb.

Page 290: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.3.2 Evaluasi dan Sintesis

Dalam melakukan analisis, fokus utama analis adalah pada ‘apa’? bukan ‘bagaimana?’.

Data apakah yang diproduksi dan dikonsumsi, batasan apakah yang dipakai?

Selama aktivitas sintesis, evaluasi, dan solusi analis menciptakan model-model sistem untuk memahami aliran data dan kontrol, operasi behavioraldan pemrosesan fungsional, serta muatan informasi.

Model tersebut berfungsi sebagai dasar bagi desain perangkat lunak dan untuk membuat spesifikasi perangkat lunak.

Spesifikasi lengkap belum bisa didapatkan pada tahap ini, pendekatan alternatif pada analisis persyaratan adalah prototyping.

Page 291: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.3.3 Pemodelan Analisis

DataDictionary

(DD)

EntityRelationshipDiagram(ERD)

DataFlowDiagram(DFD)

StateTransitionDiagram

(STD)

Struktur Model AnalisisDD : mendeskripsikan semua objek data yang dikonsumsi PL

ERD : menggambarkan hub antarobjek data

DFD : merepresentasikan transformasi data dan fungsi-fungsi tranformasi

STD : menunjukkan perilaku sistem akibat kejadian eksternal

PSPEC : mendeskripsi setiap fungsi / proses pada DFD

CSPEC : deskripsi aspek kontrol PL

Page 292: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Pemodelan Data

Model data terdiri dari tiga informasi yang saling tergantung:

1. Objek data adalah representasi dari semua informasi gabungan yang harus dipahami oleh perangkat lunak

Objek data dapat berupa entitas eksternal (semua sumber data atau yang mengkonsumsi informasi), suatu benda (laporan atau tampilan), peristiwa (sambungan telepon) atau event (sebuah alarm), peran (tenaga penjualan), unit organisasi (bagian akuntansi), atau suatu struktur (file).

2. Atribut adalah properti suatu objek data.

Atribut digunakan untuk:

menamai sebuah contoh dari objek data,

menggambarkan contoh,

membuat referensi ke contoh yang lain pada tabel yang lain

3. Hubungan adalah relasi antara objek data yang satu dengan yang lainnya.

Misal: Sensor dan Pintu hubungan : Sensor menggerakkan Pintu

Page 293: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Objek Data, Atribut dan Hubungan

Objek: Atribut: Hubungan:

NamaAlamatUmurLisensi MengemudiNomor

MerkModelNomor IDTipe Warna

memiliki

Page 294: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Representasi Tabular Objek Data

Merk Model ID# Tipe Warna Pemilik

Lexus LS400 AB123 Sedan Putih RSP

BMW 750iL X456 Coupe Merah CCD

Ford Taurus YZ276 Sedan Putih LJL

Chevy Corvette Q1234 Sport Hijau BLF

pengidentifikasi

Atribut deskriptif Atribut

referensial

Atribut penamaan

Mengikat satu objek data ke data lain, dalam kasus ini, pemilik

Page 295: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.3.4 SpesifikasiPada prinsipnya Spesifikasi merupakan representasi persyaratan

dari perangkat lunak yang akan dibangun. Diperlukan pendekatan sbb.

Teknik spesifikasi yang terfasilitasi (Facilitated Aplication Specification Techniques = FAST)

Pertemuan dilakukan di tempat netral yang dihadiri oleh pengembang maupun pelanggan.

Tujuannya : identifikasi masalah, pemecahan, negosiasi, membentuk persyaratan PL.

Ada fasilitator (sebaiknya konsultan) yang bertugas mengontrol pertemuan.

Penyebaran fungsi kualitas

Quality Function Deployment (QFD) adalah teknik manajemen kualitas yang menterjemahkan kebutuhan pelanggan ke dalam persyaratan teknis bagi perangkat lunak

QFD berkonsentrasi pada pemaksimalan kepuasan pelanggan

Hasil proses spesifikasi dituangkan dalam Dokumen Spesifikasi PL(lih.SCI).

Page 296: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

12.3.5 KajianKajian digunakan untuk memastikan Spesifikasi sudah lengkap,

konsisten, dan akurat. Contoh pertanyaan kajian :

Apakah tujuan dan sasaran yang dinyatakan bagi PL tetap konsisten dengan tujuan dan sasaran sistem?

Apakah interface ke semua elemen sistem sudah digambarkan?

Apakah aliran informasi dan struktur telah didefinisikan dengan tepat bagi domain masalah?

Apakah diagram telah dipresentasikan dengan jelas?

Apakah fungsi mayor tetap ada dalam ruang lingkup dan sudah digambarkan dengan tepat?

Apakah perilaku PL konsisten dengan informasi yang harus diproses dan fungsi yang harus dilakukannya?

Apakah batasan desain realistis?

Apakah risiko teknologis pengembangan sudah dipertimbangkan?

Apakah kriteria validasi dinyatakan secara detil dan memadai untuk menggambarkan sebuah sistem yang berhasil?

Apakah ada inkonsistensi, penghilangan, atau redundancy?

Apakah kontak dengan pelanggan sudah lengkap?

Apakah pemakai sudah mengkaji manual atau prototype?

***

Page 297: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13. KONSEP DAN PRINSIP

PERANCANGAN

(DESAIN)

Page 298: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.1 Transformasi Model Analisis ke Model Desain

DataDictionary

(DD)

EntityRelationshipDiagram(ERD)

DataFlowDiagram(DFD)

StateTransitionDiagram

(STD)

Desain Data

Desain Arsitektur

Desain

Interface

Desain

Prosedural

Page 299: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.2 Desain DataDesain data adalah tahapan pemilihan representasi logis dari

objek data yang telah teridentifikasi dalam Analisis Persyaratan dan Spesifikasi. Prinsip2nya :

Prinsip2 analisis sistem yang diterapkan pada fungsi dan perilaku PL juga perlu diterapkan pada data.

Semua struktur data dan operasinya harus teridentifikasi.

Kamus data harus dibangun untuk merepresentasikan hub antarobjek data dan batasan2nya.

Keputusan desain data tingkat rendah harus dilakukan di akhir proses desain data.

Konsep information hiding (penyembunyian informasi suatu modul agar tidak diakses oleh modul lain yang tidak berkepentingan) dan perangkaian sangat penting bagi kualitas PL.

Pustaka struktur data dan operasi yang berguna harus dikembangkan agar dapat digunakan kembali.

Desain PL dan bahasa pemrograman harus mendukung spesifikasi dan realisasi tipe data abstrak.

Page 300: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.3. Desain Arsitektur PLArsitektur merupakan struktur hirarkhi dari komponen program (modul),

interaksinya, dan struktur data yang digunakan. Terdapat bbrp model

desain arsitektur :

Model Struktural : bdsk struktur komponen program

Model Kerangka Kerja : berupa peningkatan abstraksi desain

berdasarkan kerangka kerja

Model Dinamis : menggambarkan perilaku berdasarkan external events

Model Proses : fokus pada proses

Model Fungsional : menggambarkan hirarkhi fungsional

Page 301: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Alat process modeling : Flow Chart, Flow of Document, Data Flow Diagram, Structured Chart, HIPO Diagram, Pseudocode, Nassi-Shneiderman Chart, Warnier-Orr Diagram, Michael Jackson Diagram, Functional Decomposition, Action Diagram, Data Navigation Diagram, HOS Chart, dsb.

Alat data modeling : Entity Relationship Diagram, Network Diagram, Hierarchical Diagram, Table Normalization, atau gabungannya.

Alat object modeling : Object Diagram (Coad/Yourdon, Rambaugh, Firesmith, Booch, dsb.) yang dapat dibangun dengan Oracle Designer/2000, Microsoft Visual Studio – Enterprise Tools (Modeler), dsb.

Alat working modeling : Excelerator, Easycase, Oracle Designer/2000, Microsoft Visual Studio - Enterprise Tools (Modeler), dsb.

Studi perbandingan tentang berbagai macam alat tersebut dapat dijumpai di buku Structured Techniques (James Martin& Carma McClure).

Page 302: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.3.1. Modularitas13.3.1.1 Modularitas dan Kompleksitas Problem

Modularitas diterapkan melalui pembagian PL ke dalam komponen

– komponen PL yang dapat dipanggil terpisah sehingga bila

terdapat problem, maka problem tsb akan lebih mudah

diselesaikan. Kompleksitas ( C ) problem (p1 dan p2) yang

bergabung menjadi satu, lebih besar dibandingkan bila problem

tersebut dipandang secara terpisah.

C(p1+p2) > C(p1) + C(p2)

Oleh sebab itu modularitas penting dalam desain arsitektur PL.

Namun berkaitan dengan biaya, sebaiknya dihindari kondisi

undermodularity maupun overmodularity. Semakin banyak modul

semakin rendah biaya per-modul tetapi semakin tinggi biaya

integrasinya.

Page 303: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.3.1.2 Independensi Fungsional

Konsep ini mrpk pertumbuhan langsung dari modularitas, konsep abstraksi PL,

dan Information Hiding. Independensi diukur melalui Kohesi dan Kopling.

Kohesi

Modul yang kohesif seharusnya hanya melakukan satu hal saja (kohesi tinggi =

fungsional <> koinsidental).

Kopling

Sehubungan dengan perangkaian dengan modul lain, maka modul yang baik

seharusnya memiliki hubungan yang sederhana (kopling rendah)

Page 304: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.3.2 Proses Desain Arsitektur

13.3.2.1 Pemetaan Transformasi

Informasi dari ‘dunia eksternal’ mengalir masuk ke dalam PL dan keluar lagi dalam bentuk informasi dunia eksternal. Misal ketikan keyboard dan bunyi di saluran telpon akan masuk ke pusat transformasi dan dialirkan ke dunia luar dalam bentuk tampilan layar. Aliran ini disebut aliran transformasi. Dalam DFD dapat dijumpai adanya aliran transformasi ini.

Guna menyusun struktur program aliran transformasi dari DFD ini dipetakan dengan langkah pengkajian thd Context DFD, penentuan pusat transformasi, pemfaktoran dan penyaringan, dan pemetaan. Contohnya sbb.

Page 305: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Contoh Pemetaan

Transformasi

Membangunkontak

pelanggan

MemberiInformasi

produk

MemberiEvaluasiproduk

MengarahkanPertanyaan/

perhatian

MenerimaPesanan

penjualan

MemeriksaKonfigurasi

ketersediaan

MenyiapkanPesanan

pengiriman

Mengkonfir-masikan Info

pesanan

MembangunKontak

pelangganTindak

lanjut kepelanggan

Penerimaan

Pesanan

Penjualan

Promosi Persiapan

Pengiriman

Page 306: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.3.2.1 Pemetaan Transaksi

Aliran transaksi ditandai dengan pergerakan data sepanjang jalur masuk yang

mengkonversikan informasi dunia eksternal ke dalam suatu transaksi.

Transaksi ini akan menimbulkan jalur aksi. Pusat aliran informasi tempat

banyak jalur aksi berasal disebut pusat transaksi.

Pemetaan DFD yang mengandung aliran transaksi ke struktur program hampir

sama dengan pemetaan aliran transformasi, namun yang diidentifikasi adalah

pusat transaksinya (lihat contoh)

Page 307: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Contoh Pemetaan Transaksi

a

b

d p

q

r

s

d

c1

r sq

p

a

b

Kontrol Transaksi

Page 308: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.4 Desain Interface

1. Internal : merupakan desain interface antarmodul dalam PL yang dikendalikan oleh data

yang harus mengalir di antara modul-modul. Aliran transformasi dalam DFD merupakan

pijakan utama dalam desain ini selain kemampuan bahasa pemrograman.

2. Eksternal : merupakan interface untuk entitas eksternal (tidak termasuk manusia), misalnya

sensor pada PL Safehome.

3. Manusia – Mesin : merupakan interface antara manusia dengan PL (Human – Computer

Interface). Interface ini memiliki tantangan besar karena berkaitan dengan pengguna

dengan berbagai karakter yang lebih sulit untuk dipelajari. Terdapat tiga kategori pedoman

desain HCI sbb.

Page 309: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

a. Interaksi Umum

Format konsisten

Berikan umpan balik

Konfirmasi untuk aksi destruktif (misal Hapus)

Ijinkan pembatalan (misal Undo)

Kurangi jumlah informasi yang harus diingat

Efisiensi dalam dialog, gerakan (tangan), pemikiran

Perlindungan thd kegagalan

Kategorikan aktivitas sejenis dan posisinya di layar

Sediakan Help yang sensitif konteks

Berikan petunjuk singkat (tools tips) pada setiap button / ikon / nama

Gunakan perintah dan nama2 yang pendek

b. Output

Tampilkan informasi yang relevan dg konteks

Jangan membanjiri pemakai dg informasi

Gunakan label, singkatan, warna yg standar dan konsisten

Peliharalah konteks visual saat pengguna melakukan zoom-in / zoom-out

Pesan kesalahan harus memiliki arti yang jelas

Gunakan variasi huruf, indentasi, pengelompokan untuk memudahkan pemahaman

Gunakan jendela untuk tipe-tipe informasi yang berbeda

Gunakan tampilan alami (bukan angka / grafik) bila memungkinkan

Geografi layar dioptimalkan shg tidak ada jendela yang ‘hilang’ / sulit ditemukan

Berikan kemungkinan kustomisasi output (utk advance user)

Jangan ada informasi / data yang tidak lengkap / hilang sebagian

c. Input

Minimalkan jumlah aksi input (combo box, list, dsb.)

Konsisten

Berikan kemungkinan kustomisasi input (utk advance user)

Mode input harus fleksibel (mouse / keyboard)

Non-aktifkan button / ikon yang tidak relevan dengan aksi

Berikan kesempatan untuk mengontrol aliran interaksi (mengubah, membetulkan, mengulang)

Sediakan Help

Jangan meminta aktivitas manual (perhitungan, tanggal, waktu, dsb) bila dapat dilakukan oleh PL

Page 310: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

13.5 Desain Prosedural

Spesifikasi prosedural ditetapkan setelah desain data, arsitektur, dan interface selesai guna penyusunan algoritma PL.

Desain prosedural diterapkan melalui teknik pemrograman terstruktur yang didasarkan pada struktur logika algoritma :

Sekuensial

Percabangan

Perulangan

Alat-alat yang dapat digunakan :

Flow Chart, HIPO Diagram, Pseudocode, Nassi-Shneiderman Chart, Warnier-Orr Diagram, Action Diagram, HOS Chart, dsb.

***

Page 311: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14. PENGUJIAN

PERANGKAT LUNAK

14.1 Dasar-dasar Pengujian

14.2 Teknik Pengujian

14.3 Strategi Pengujian dan V&V

Page 312: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Metrik Kualitas PL

Operasi

Produk

Revisi

Produk

Transisi

Produk

Faktor Kualitas PL McCall

Correctness, Reliability, Usability, Integrity, Efisiency

Portability

Reusability

Interoperability

Maitainabilty

Flexibility

TESTABILITY

14.1 Dasar-dasar Pengujian

Page 313: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Testability

Karakteristik PL yang dapat diuji :

Operabilitas

Observabilitas

Kontrolabilitas

Dekomposabilitas

Kesederhanaan

Stabilitas

Kemampuan untuk dapat dipahami

Sebelum melakukan pengujian perlu dipersiapkan Test Case terlebih dahulu agar diperoleh kemungkinan tertinggi dalam menemukan kesalahan dengan waktu dan usaha yang minimum. Desain Test Case dapat dilakukan melalui berbagai teknik pengujian sbb.

Page 314: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14.2 Teknik Pengujian

14.2.1 Pengujian White-Box (Glass Box)

Semua jalur independen pada suatu modul ditelusuri minimal 1

kali

Semua jalur keputusan logis True / False dilalui

Semua loop dieksekusi pada batas yang tercantum dan batas

operasionalnya

Struktur data internal digunakan agar validitas terjamin.

1. Pengujian Basis Path

Merupakan salah satu teknik White Box

Merupakan salah satu teknik pengujian struktur kontrol

Menjamin semua statemen dalam setiap jalur independen

program dieksekusi minimal 1 kali.

Perhitungan jalur independen dapat dilakukan melalui metrik

Cyclomatic Complexity

Page 315: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

Didasarkan pada teori graph.

Desain prosedural diterjemahkan dalam suatu grafik alir.

Dihitung melalui 4 cara

V(G) = jumlah region grafik alir

V(G) = jumlah path

V(G) = E – N + 2

V(G) = P + 1

E : Edge

N : Node

P : simpul predikat (IF / percabangan)

Ri : Region ke I [MCCL92]

Contoh V(G) = 4

V(G) > 10 : more troblesome and less reliable[MART88].

Cyclomatic Complexity

1

2,3

4,5

6

9

7 8

11

10

R3

R4

R1

R2

Page 316: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

2. Pengujian Struktur Kontrol

Teknik ini merupakan perbaikan dari basis path yang

meliputi :

Pengujian Kondisi : didasarkan pada struktur

kontrol (=, <, >, not, and, dsb.)

Pengujian Aliran Data : didasarkan pada adanya

hubungan antar-statemen pada program.

Pengujian Loop : berfokus pada validitas konstruksi

loop.

Page 317: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14.2.2 Pengujian Black-Box

Pengujian ini berfokus pada persyaratan fungsional PL dan merupakan

komplemen dari pengujian White-Box. Hal tsb dapat dicapai

melalui :

1. Pengujian Graph-based : dimulai dengan membuat grafik

sekumpulan node yang mempresentasikan objek(misal New File,

Layar baru dg atributnya), link (hubungan antarobjek), node-

weight (misal nilai data tertentu seperti atribut layar, perilaku),

dan link-weight (karakteristik suatu link, misal menu select)

2. Equivalence Partitioning : membagi domain input untuk

pengujian agar diperoleh kelas-kelas kesalahan (misal kelompok

data karakter, atau atribut yang lain)

3. Analisis Nilai Batas : pengujian berdasarkan nilai batas domain

input.

4. Pengujian Perbandingan : disebut juga pengujian back-to-back

yang diterapkan pada pada suatu versi PL atau PL redundan untuk

memastikan konsistensinya.

Page 318: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14.2.3 Pengujian untuk Aplikasi dan Lingkungan Khusus

1. Pengujian GUI : dilakukan melalui sederetan check list untuk

menguji tampilan.

2. Pengujian Arsitektur Client – Server : berkaitan dengan sifat

pemrosesan terdistribusi, kinerja, kehadiran sejumlah platform

HW yang berbeda, kompleksitas komunikasi data dan jaringan,

kebutuhan akan layanan client multiple, dan persyaratan

koordinasi yang dibebankan pada server.

3. Pengujian Dokumentasi dan Help : didekati dalam 2 fase, yakni

FTR dan live test yang dikaitkan langsung pada penggunaan nyata.

4. Pengujian Sistem Real Time : berkaitan dengan penanganan

interupsi, timing data, proses paralel. Langkah2 yang dilakukan

meliputi Pengujian Task, Pengujian Perilaku, Pengujian antar-task,

dan Pengujian Sistem.

Page 319: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14.3 Strategi Pengujian dan V&V

1. Strategi Pengujian

mengintegrasikan metode desain test case PL ke dalam sederetan langkah yang bertujuan untuk menghasilkan perangkat lunak yang berhasil.

2. Verifikasi & Validasi

harus dilakukan pada tiap tahap pengembangan sistem,

dengan dokumentasi dari tahap sebelumnya.

Verifikasi are we building the product right : untuk memastikan bhw PL scr tepat mengimplementasikan suatu fungsi tertentu.

Validasi are we building the right product : untuk memastikan bhw PL dpt ditelusuri hingga ke persyaratan pelanggan. Validasi mrpk seri akhir pengujian yang melibatkan user (User Testing) baik yang berlangsung dlm lingkungan pengembang (Alpha Test) maupun di luar lingkungan pengembang (Beta Test). Teknik pengujian Black-Box digunakan scr eksklusif dalam validasi.

Page 320: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14.3.1 Proses Pengujian

Unit

Testing

Module

Testing

Sub-system

Testing

System

Testing

Acceptance

Testing

COMPONENT

TESTING

INTEGRATION

TESTING USER

TESTING

Page 321: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

1. Component TestingPengujian terhadap komponen sistem, seringkali menggunakan teknik pengujian

White-Box.a. Unit Testing

• pengujian tahap awal• pengujian komponen secara terpisah• unit-unit terkecil diuji : function, procedure, subprogram, dll

b. Module Testing (modul memadukan beberapa komponen)• menguji interaksi antarunit• menguji perilaku modul

2. Integration TestingPengujian terhadap integrasi antarmodul scr Top-Down, Bottom-Up, dan

Pengujian Regresi (test case ulang pada suatu subset untuk memastikan tidak adanya perubahan akibat pengujian). Integration Test dilakukan baik dengan teknik pengujian Black-Box maupun sebagian White-Box.

a. Sub-system TestingPengujian terhadap antarmuka pada modul-modul yang sudah diintegrasikan

b. System Testing• Pengujian terhadap perilaku sistem• Apakah sistem sesuai dengan spesifikasi

3. User Testing

Pengujian oleh user, seringkali menggunakan teknik Black-Box.

a. Pengujian Tahap Akhir

b. Pengujian User (acceptance testing)

• diuji dengan data sebenarnya

• pengujian terhadap fasilitas yang tersedia

• menilai kinerja (performance)

Page 322: MODUL REKAYASA PERANGKAT LUNAK - … · Semakin banyak sistem yang dikendalikan oleh perangkat lunak ... Dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan)

14.3.2 Perencanaan Pengujian

Requirement

Specification

System

Specification

System

Design

Detailed

Design

Module &

Unit Code

and Test

Sub-system

Integration Test

System

Integration Test

Acceptance

TestUse

ACCEPTANCE

TEST PLAN

SYSTEM

INTEGRATION

TEST PLAN

SUB-SYSTEM

INTEGRATION

TEST PLAN

***