MODUL REKAYASA
PERANGKAT LUNAK
1. What and Why Sofware
Engineering ?
I. INTRODUCTION TO
SOFTWARE ENGINEERING
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
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.
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?
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
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
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
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)
What is the difference between
software engineering
and
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
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
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
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
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
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.
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,
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.
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.
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 jujur
jika mereka diharapkan untuk terhormat sebagai seorang profesional.
Perilaku etis tidak hanya sekedar menegakkan hukum saja tetapi harus lebih
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.
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).
2 The Software
Product
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)
2.2 Evolution of Software
1st Era2
stEra
3
stEra
1950 1960 1970 1980 1990 20004
stEra
• 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 computers2.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.
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.
Failure Curve of Hardware
kurva ideal Tingkat kegagalan kematian segera usang WaktuFailure Curve for Software
(idealized)
Tingkat kegagalan
pada tingkat yang sama sampai usang
Actual Failure Curve for Software
Tingkat kegagalan
perubahan
laju kegagalan meningkat sehubungan dengan efek
sampingan kurva ideal kurva aktual Waktu
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
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
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
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
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.
3. The Software
Process
3.1 Software Engineering Layers
Tools Methods
Process
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?
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
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)
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
3.6 Software Development Stages
Requirements Analysis & Specification
Conceptual/System Design
Detailed/Program Design
Implementation/Coding
Unit & Integration Testing
System Testing
System Delivery
Maintenance
3.7. The Software Process
Common Process Framework
Umbrella Activities Framework Activities Task Sets Tasks Milestones, deliveriables SQA points
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.
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
3.8.1. Linier Sequential Model
Analysis Design Code Test
System/Information Engineering
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.
Waterfall Model Diagram
Requirements definition System and software design Implementation and unit testingIntegration and system testing
Operation and maintenance
Modified Waterfall Model
(M.Kochanski)Waterfall with Spiral Introduction Sashimi
3.8.1.2 V Model
REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODINGUNIT & INTE-GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE Verify design Validate requirements
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.
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 #3RAD 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
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
Types of Prototyping
Evolutionary prototyping
Dimulai dari model, kemudian dikembangkan dan akhirnya dipakai.
Throw-away prototyping
Evolutionary Prototyping
Prototype Programming Prototype Requirements Reviews Release Validates?Throw-away prototyping
Release System Testing System Programming Reviews Validates? Prototype Programming Prototype Requirements Reviews Validates?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
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
3.8.3 Evolutionary Model
3.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
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
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
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 sistemdan budget Requirements development plan Integration and test plan
3.8.3.3 Component Assembly Model
planning engineering risk analysis customer evaluation entry point identify candidate components look up components in library extract components if available build components if unavailable put new components in library construct n-th iteration of system Customer communication Engineering,3.8.3.4 Concurrent Development Model
none Under development A waiting changes Under revision Under review baselined done Analysis activityKonkurensi 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.
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.
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
4GT Techniques
requirements gathering design strategy implementation using 4GL testing ***69
4. Konsep Manajemen Proyek
Perangkat Lunak
4.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)
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
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.
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.
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.
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
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
76
4.1.6 Pengaruh Karakteristik Proyek
pada Struktur Tim
Team 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
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
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.
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.
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?
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
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
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
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 c u s to m e r c o m m u n ic a tio n p la n n in g ris k a n a ly s is e n g in e e rin g
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 fungsionalitas
tidak dapat optimal, maka dapat dipilih strategi pertambahan. dll
Sekali model dipilih, kerangka kerja umum
(CPF=common Process Framework) harus disesuaikan dengan model.
86
4.3.3 Contoh Dekomposisi
(simple project)
Membuat daftar klarifikasi
Bertemu dengan customer untuk klarifikasi Bersama-sama menentukan scope
Review scope
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.
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)
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
90
5.1 Domain Metrik
Pengukuran perangkat lunak dilakukan pada proses dan proyek
perangkat 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
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
92
5.1.2 Determinan Kualitas dan
Efektivitas Perangkat Lunak
Product Technology People Process Cu stomer Ch ara cte ris tic s Development Environment Bu sine ss Co nd ition s
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
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
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
.. .. .. .. .. .. .. ..
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.
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)
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.
99
5.2.2.2 Penghitungan Metrik Function
Points
number of user inputs x 3 4 6 =
number of user outputs x 4 5 7 =
number of user inquiries x 3 4 6 =
number of files x 7 10 15 =
number of external interfaces x 5 7 10 =
total
measurement parameter count simple averagecomplex
Weighting Factor
FP= total x [0.65 + 0.01 x
F
i]
Domain kompleksitas
Fi (i = 1 s/d 14) adalah ‘complexity adjustment values’ berdasarkan
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?
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.
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
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
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
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).
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
107
5.5 Penyatuan Metrik-metrik dalam
Proses Perangkat Lunak
software engineering process software project software product data collection data collection data collection measures metrics indicators ***
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)
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
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);
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
112
6.3. Ruang Lingkup Perangkat Lunak
(Software Scope)
Fungsi (functions)
Kinerja (perfomance)
Batasan(constraints)
Antarmuka (interface)
Keandalan (reliability)
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).
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?
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
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?
117
6.3.2. Contoh Scoping
1 2 3 4 5 6 ID No. ID No. ID No. ID No. SORTING STATION control connection conveyor line motion shunt bar code118
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 wadah
berdasarkan 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.
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 lokasi
wadah 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.
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
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.
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.
123
6.4 Sumber Daya
Hardware/Software Tools Reusable Software Components People124
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
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
dihubungkan
dengan proyek sekarang
126
6.4.3 Environmental Resources
Lingkungan yang mendukung proyek PL, disebut juga software engineering
environment (SEE); meliputi
hardware software
127
6.5. Estimasi Proyek Perangkat Lunak
(
Software project estimation
)
Ada 2 teknik dalam melakukan estimasi proyek perangkat lunak, yaitu:
Decomposition Techniques
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.
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
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.
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