Software process adalah sebuah
kerangka kerja untuk tugas-tugas yang dibutuhkan untuk membangun software
dengan kualitas yang tinggi. Software process dan software engineering bisa
dikatakan sama dan bisa pula dikatakan tidak sama.
Software Engineering-A layered Technology
Pengertian software engineering menurut Fritz Bauer adalah pembentukan dan penggunaan dari
prinsip-prinsip engineering untuk mendapatkan software secara ekonomis yang
dapat dipercaya serta dapat bekerja secara efisien pada mesin-mesin yang nyata.
Software engineering layer
Software engineering merupakan
lapisan dari teknologi. Yang menjadi lapisan paling bawah dari software
engineering adalah a quality focus. Sedangkan process meruapakan sebuah pondasi
untuk software engineering. Process didefinisikan sebagai kerangka yang sudah
mapan untuk keefektifan pengiriman teknologi software eengineering.
Software engineering metods
menyediakan tentang “bagaimana untuk”
membuat suatu software. Software
engineering metods bergantung pada prinsip-prinsip dasar yang diperintahkan
setiap area dari teknologi dan termasuk aktifitas membuat model, dan diskriptif
teknik yang lain.
Software engineering tools
menyediakan bantuan untuk mengotomatisasi atau semiautomatisasi untuk process
dan methods.
A Process Framework
A Process Framework membentuk
pondasi untuk melengkapi software process dengan mengidentifikasi beberapa
aktivitas framework yang dapat dipakai untuk untuk semua projek software tanpa
memperhatikan ukuran atau kerumitan mereka.
Berikut ini merupakan generic
process framework yang dapat digunakan untuk sebagian besar software projects:
1. Comunication:
kegiatan komunikasi dan kolaborasi dengan kostumer dan kegiatan lainnya yang
sejenis.
2.
Planning:
segala aktivitas yang berhubungan dengan perencaan software engineering agar
bekerja sesuai dengan apa yang direncanakan.
3. Modeling:
meliputi kegiatan untuk memmbuat model-model yang mengijinkan pengembang dan
kostumer untuk memehami secara lebih baik ketentuan software dan membuat design
sesuai dengan ketentuan.
4. Constraction:
mengkombinasikan code generation dan mengetes agar bila terjadi error dapat
code dapat segera diperbaiki.
5. Deployment:
software dikirim kepada kostumer.
Aktifitas software engineering
1. Pelacakan
dan pengontrolan software : tim melakukan penilaian kemajuan dan melakukan
koreksi untuk memmaintain schedule.
2. Pengelolaan
resiko yang mungkin terjadi
3. Jaminan
kualitas software : aktivitas untuk memaintain kualitas software.
4. Meninjau
teknik – teknik yang digunakan
5. Pengukuran:
mendefinisikan dan mengumpulkan proses, projek dan produk yang akan ditampilkan
pada konsumen.
6. Mengelola
konfigurasi software
7. Reusability
menagement
8. Work
product preparation and production :
aktivitas untuk membuat model, dokumen, dan lain-lain.
Essence of practice
1. Memahami
setiap masalah dengan cara komunikasi dan analisis
2. Merencanakan
solusi (software design)
3. Melakukan
atau mengerjakan rencana (code generation)
4. Menjelaskan
hasil untuk menguji akurasi (testing and quality assurane)
Memahami Masalah
Untuk memahamai masalah kita
perlu memperhatikan beberapa hal. Berikut ini merupakan beberapa hal yang perlu
diperhatikan untuk memahami masalah:
1. Siapa
yang menggunakan atau siapa saja yang terlibat
2. Fungsi-fungi
apa dan fitur-fitur apa yang dibutuhkan untuk mengerjakan masalah
3. Apakah
mungkin memperkecil masalah untuk bisa lebih mudah dipahami?
4. Dapatkah
model analisis grafik dibuat?
The capability Maturity Model Integration
(CMMi)
CMMI adalah proses meta model
yang meliputi banyak hal yang menggambarkan tujuan-tujuan secara
spesifik, praktek, dan kemampuan serta harus dihadirkan dalam mature software
process.
Berikut ini merupakan capability
levels:
1. Level
0 (incomplete) : pada level ini berarti process area tidak dapat bekerja dengan
baik dan tidak dapat mencapai tujuan yang telah ditetapkan sebelumnya.
2. Level
1(performed): semua tujuan pada process area telah terpenuhi.
3. Level
2(managed): level 1 sudah terpenuhi dan
semua pekerjaan serta work product dimonitor, dikontrol, direview dan
dievaluasi apakah sesuai dengan process description atau tidak.
4. Level
3(defined): level 2 sudah terpenuhi dan dikhususkan dari set organisasi
standart process menurut organisasi tailoring guidelines.
5. Level
4(quantitatively managed): level ke 3 sudah terpenuhi dan process area
dikontrol serta diperbaiki menggunakan pengukuran dan penaksiran kwantitatip.
6.
Level
5(optimized) : level 4 sudah terpenuhi dan process area diadaptasi serta
dioptimasikan dengan mengguankan kwantitatip( statistical).
Process Patterns
Process
petterns merupakan mekasnisme yang efektif untuk menggambarkan beberapa
software process.
Penggambaran
process pattern
1. Pattern
name: memberikan arti nama yang menggambarkan
fungsinya dalam software process.
2. Type:
terdiri dari tiga jenis yaitu: task pattern, stage patterns, dan phase
patterns.
3. Initial
context : menggambarkan pattern yang diguanakn.
4. Problem:
masalah diselesaikan dengan pattern yang telah digambarkan sebelumnya.
5. Solutions:
pengimplementasian dari pattern yang telah digambarkan sebelumnya.
6. Resulting
context : suatu kondisi yang akan memberikan hasil jika pattern sudah berhasil
diimplementasikan.
7. Related
patterns: suatu daftar dari semua process patterns yang secara langsung terkait
dengan syarat.
Personal and Team Process Models
1. Personal
software Process (PSP)
Dalam PSP
terdapat 5 aktivitas framework
diantaranya sebagai berikut:
·
Planning
·
High level design
·
High level design review
·
Development
·
Postmortem
2. Team
Software Process (TSP)
Tujuan dari TSP
adalah membangun “self-directed” project team yang diorganisasikan sendiri
untuk memproduksi software dengan kualitas yang tinggi.
Aktivitas kerangka
kerja TSP yaitu sebagai berikut:
·
Launch
·
High-level design
·
Implementation
·
Integration and test
·
Postmortem.
Process Technology
Alat-alat (tools) Proses technology mengatur sebuah
software untuk membuat model yang optimal dari proses kerangka kerja pada
umumnya, task set, aktiviitas yang memayungi kerangka kerja. Model biasanya
direpresentasikan sebagai network kemudian dianalisis untuk menentukan
workflownya dan memeriksa alternatif struktur proses yang mungkin bisa
mengurangi waktu dan uang pengembangan.