Soal
Tugas 1
1.
Jelaskan apa yang dimaksud dengan
software tidak pernah usang?
2.
Ukuran Kualitas software diantaranya
Usabilitas (mudah digunakan), jelaskan?
3.
Jelaskan secara lengkap model software yang
anda ketahui?
4.
Sebutkan dan jelaskan orang-orang yang terlibat
dalam pengembangan Perangkat Lunak?
5.
Menurut anda apa yang dimaksud kualitas
pada perangkat lunak?
Jawaban
1. Perangkat lunak dikatakan tidak pernah usang
karena perangkat lunak tersebut selalu update(diperbarui) agar selalu sesuai
dengan kebutuhan pengguna sehingga pengguna tetap menggunakan perangkat lunak
tersebut.
2.
Karena pada penggunaan software/ PL tersebut memiliki
tools atau interface yang mudah dipahami oleh user begitupun software yang
disediakan memiliki ukuran yang rendah dan menambah kenyaman dalam pemakaiannya
bahkan dengan desain yang unik sehingga menarik perhatian para user yang
mencobanya.
3. Model incremental
(Incremental waterfall model) merupakan perbaikan dari model waterfall dan
sebagai standar pendekatan top-down. Ide dasar dari model ini adalah membangun
software secara meningkat (increment) berdasarkan kemampuan fungsional.Model
incremental ini diaplikasikan pada sistem pakar dengan penambahan rules yang mengakibatkan
bertambahnya kemampuan fungsional sistem. Model incremental merupakan model
continous rapid prototype dengan durasi yang diperpanjang hingga akhir proses pengembangan.
4. Orang yg
terlibat dalam proyek perangkat lunak, diantaranya :
a.
manajer senior : yang menentukan
usaha yang dikerjakan, dan pemegang keputusan dalam proyek.
b.
manajer proyek (teknis)– pemimpin
tim: yang membuat rencana, memotivasi, mengatur dan mengendalikan praktisi yang
mengerjakan PL.
c.
praktisi : yang mengerjakan
Perangkat Lunak.
d.
klien : yang menentukan kebutuhan
Perangkat Lunak dan pihak lain yang berkaitan dengan hasil produk
e.
pengguna PL : yang berinteraksi
langsung dengan Perangkat Lunak yang dibangun.
5. Kualitas perangkat lunak yaitu suatu
pengukuran tentang baik dan buruknya suatu software yang dibuat dan pemakaian
yang efektif dan efisien bagi user sehingga merasa puas dan nyaman dalam
menggunakan software tersebut.
Materi 1 Pendahuluan
Evolusi Software
Tahun-tahun
awal (1)
- Orientasi Batch
- Dstribusi terbatas
- Custom software
- Multi User
- Realtime
- Database
- Software produk
Era
ketiga (3)
- System terdistribusi
- Embeded Intelligent
- Low Cost Hardware
Era
keempat(4)
- Powerful desktop system
- Object Oriented Technologies
- Expert systems
- Artificial Neural Network
- Parallel Computing
- Network Computer
SOFTWARE
Software adalah:
- Instruksi (Program komputer) yang pada saat dieksekusi menghasilkan fungsi dan unjuk kerja yang dikehendaki.
- Struktur data yang memungkinkan program untuk memanipulasi informasi secukupnya.
- Dokumen yang menjelaskan operasional dan penggunaan program.
- Software dikembangkan atau direkayasa, bukan dipabrikasi dengan cara klasik.
- Software tidak bisa wear-out (tidak pernah usang).
- Kebanyakan software adalah “Custom-built diassembly “ , serta tidak dapat dirakit berdasar komponen-komponen yang sudah ada.
Menurut
McCall yang dikutip oleh Roger Pressman dalam bukunya
Rekayasa Perangkat Lunak (2002 : 611)
mengusulkan kategori yang berguna mengenai faktor – faktor yang mempengaruhi
perangkat lunak. Berfokus pada 3 hal penting produk perangkat lunak
karakteristik operasional, kemampuannya untuk beradaptasi dengan lingkungan
yang baru. Faktor – faktor kualitas perangkat lunak McCall terdiri dari :
1. Kebenaran adalah tingkat dimana
program memenuhi spesifikasinya dan memenuhi sasaran misi karyawan.
2. Reliabilitas adalah tingkat dimana sebuah program
dapat diharapkan melakukan fungsi yang diharapkan dengan ketelitian yang
diminta.
3. Efisiensi adalah jumlah sumber daya penghitungan
kode yang diperlukan oleh program untuk melakukan fungsinya.
4. Integritas adalah tingkat dimana akses ke
perangkat lunak atau data oleh orang yang tidak berhak dapat di kontrol.
5. Usabilitas adalah usaha yang dibutuhkan untuk
mempelajari, mengoperasikan, menyiapkan input, dan mengintrepretasikan output
suatu program.
6. Maintanabilitas adalah usaha yang diperlukan untuk
mencari dan membetulkan kesalahan pada sebuah program.
7. Flexibilitas adalah usaha yang diperlukan untuk
memodifikasi program operasional.
8. Testabilitas adalah usaha yang diperlukan untuk
menguji sebuah program untuk memastikan apakah program melakukan fungsi –
fungsi yang dimaksudkan.
9. Portabilitas adalah usaha yang diperlukan untuk
memindahkan program dari satu perangkat keras dan atau lingkungan.
10. Reusabilitas adalah tingkat dimana sebuah program (
bagian dari suatu program ) dapat digunakan kembali di dalam aplikasi lain.
11. Interperabilitas adalah usaha yang diperlukan untuk
merangkai satu system dengan yang lainnya.
Aplikasi Software
System Software
1. Sekumpulan
program yang dibuat untuk melayani program lainnya.
2. Misal:
compiler, editor dan program manajemen utilities.
Real Time Software Program
yang memonitor atau menganalisa atau mengontrol aktifitas sehari-hari.
3. Elemen
dari Real Time Software:
a. Komponen
pengumpulan data, yang mengumpulkan dan menformat informasi dari lingkungan
ekternal.
b. Komponen
analisa, yang mentransformasikan informasi yang diperlukan atau aplikasi
tersebut.
c. Komponen
kontrol/output, yang memberikan respon terhadap lingkungan eksternal.
d. Komponen
monitoring, yang mengkoordinasi komponen-komponen lainnya sehingga bisa
memberikan respon yang Real Time (biasanya antara 1 milidetik/1 menit).
4. Business
SoftwareSoftware MIS yang mengakses satu atau
beberapa database yang berisi informasi bisnis.
5. Enginering
and Scientific Software
6. Batasan
aplikasinya mulai dari astronomi sampai vulkanologi, dari otomotif sampai
pesawat ruang angkasa, dari molekul biologi sampai automated manufacturing.
7. Embeded
SoftwareBiasanya diletakkan pada read only
memory dan digunakan untuk mengontrol produk dan sistem untuk pelanggan dan
pasar industri. Misal: key pad untuk mengontrol microwave oven.
8. Personal
Computer Software
9. Misal:
Wordprocessing, spreadsheet, computer graphic, multimedia, entertaintment,
database management, personal and business financial application, akses
database atau jaringan external, dan lain-lain.
10. Artificial
Intelligent Software Software yang menggunakan algoritma
non numerik untuk menyelesaikan permasalahan yang komplek. Areal AI yang aktif
dikenal dengan expert system atau knowledge based system. Cabang
baru dari AI adalah Artificial Network.
Proses
- RPL merupakan teknologi layer
- Menurut IEEE, RPL adalah :
- Aplikasi yang pendekatannya sistematis, disiplin, bisa terukur untuk pengembangan operasional dan pembuatan software.
- Pondasi RPL adalah lapisan proses, karena terkait dengan teknologi dan waktu pengembangan.
- Proses mendefinisikan framework key prosess Are (KPA) yang harus dibuat untuk penekanan teknologi RPL yang efektif.
- Metode RPL memberikan teknik bagaimana membangun software. Yang termasuk metode: Analisa, desain, pembuatan program, pengujian dan perawatan.
- Tool pad RPL digunakan untuk memberikan dukungan otomatisasi atau semi otomatis pada proses dan metode. Sistem yang biasa digunakan untuk mendukung pengembangan disebut Computer Aided Software Enginering (CASE). CASE mengkombinasikan software, hardware dan database RPL (berisi informasi mengenai analisa, desain, pembuatan program dan pengujian).
Hal-hal
Umum RPL
- Rekayasa adalah analisa, desain, pembuatan, verifikasi dan manajemen teknis (atau sosial). Tanpa memandang entitas yang harus direkayasa, ada beberapa pertanyaan yang harus dijawab:
a.
Problem apa yang harus dicarikan
solusinya ?
b.
Apa saja karakteristik entitas yang
digunakan untuk menyelesaikan persoalan tersebut.
c.
Bagaimana entitas (dan solusinya) dapat
direalisasikan ?
d.
Bagaimana entitas akan dibangun ?
e.
Pendekatan apa yang akan digunakan untuk
mencegah terjadinya kesalahan desain dan pembuatan entitas?
f.
Bagaimana entitas akan didukung selama
mungkin, pada saat ada permintaan koreksi, adaptasi dan
pengembangan oleh user.
- Pekerjaan yang berhubungan dengan RPL bisa dikategorikan ke dalam 3 fase umum tanpa memandang area aplikasi, ukuran proyek atau kompleksitas. Fase tersebut yaitu:
- Definition Phase
- Development Phase
- Maintenance Phase
- Definition Phase
Selama fase ini,
software developer berusaha untuk mengidentifikasi informasi apa saja yang
harus diproses, apa saja fungsi dan kinerja yang digunakan,
tingkah laku sistem yang diharapkan, apa saja interface yang harus dibuat, apa
saja kendala desain yang ada, dan kriteria validasi yang diperlukan untuk
mendefinisikan kesuksesan sistem.
- Development Phase
Selama fase ini,
software developer berusaha untuk mendefinisikan bagaimana data disusun,
bagaimana fungsi bisa diimplementasikan sesuai dengan arsitektur software,
bagaimana prosedur detil untuk implemetasi , bagaimana karakter interface,
bagaimana hasil desain bisa ditranslasikan ke bahasa pemrograman dan bagaimana
cara pengujiannya
- Ada tiga aktivftas teknis yang selalu terjadi:
- Desain software
- Pembuatan Program
- Pengujian Software
- Maintenance Phase
Difokuskan pada
perubahan sehubungan dengan adanya koreksi kesalahan, adaptasi dan pengembangan
yang dikehendaki customer.
- Ada 4 tipe perubahan:
- Correction Mengubah software untuk memperbaiki kesalahan-kesalahan yang ada.
- Adaption Modifikasi yang dilakukan terhadap software dikarenakan adanya perubahan lingkungan eksternal (misal: CPU, sistem operasi, aturan bisnis, karakter produk eksternal).
- Enhancemen Pada saat sofrware dipakai, user meminta tambahan-tambahan fungsi. Sehingga software dikembangkan dari kebutuhan semula.
- Prevention Sering disebut software re-enginering, harus dilakukan untuk memungkinkan software bisa sesuai dengan keinginan end user. Pada fase ini dilakukan perubahan-perubahan ke program komputer, sehingga program tersebut bisa dikoreksi, beradaptasi dan dikembangkan dengan mudah.
Materi 2 Model-model Software
Model
sekuensial linear
Model
sekuensial linear disebut juga model waterfall atau air terjun. Model ini peertama kali muncul pada tahun1970
yang diperkenalkan oleh WinstonW.Royce. walaupun sudah dikenal dalam waktu yang
lama dan sering di anggap kuno tetapi model ini paling banyak dipakai dalam
industri perangkat lunak .
Model
sekuensial linear berisi rangkaian proses yang disajikan secara terpisah, yaitu
analisis kebutuhan,perancangan,pemgkodean,pemgujian, seta implementasi dan
pemeliharaan. Setelah setiap proses dilakukan, proses tersebut ditutup dan
pengembangan dilanjutkan pada proses berikutnya.
Untuk
mengatasi kekurangna-kekurangan tersebut, dibuatlah model sekuensial linear
yang dimodifikasis. Keunggulan model ini dibandingkan model sekuensial linear
biasa adalah model ini memungkinkan tahap-tahap yang telah dilalui ditinjau
kembali sehinnga jika ternyata terjadi
kesalahan atau kekurangan dalam menentukan kebutuhan di tahap awal, bisa
dilakukan perbaikan atau peambahan lagi.
Model sekuensial linier
melingkupi aktivitas – aktivitas sebagai berikut :
1 Rekayasa dan pemodelan sistem/informasi
Karena sistem merupakan
bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun
syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari
kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software
harus berhubungan dengan elemen-elemen yang lain seperti software, manusia, dan
database. Rekayasa dan anasisis system menyangkut pengumpulan kebutuhan pada
tingkat sistem dengan sejumlah kecil analisis serta disain tingkat puncak.
Rekayasa informasi mancakup juga pengumpulan kebutuhan pada tingkat bisnis strategis
dan tingkat area bisnis.
2 Analisis kebutuhan Software
Proses pengumpulan
kebutuhan diintensifkan dan difokuskan, khusunya pada software. Untuk memahami
sifat program yang dibangun, analis harus memahami domain informasi, tingkah
laku, unjuk kerja, dan interface yang diperlukan. Kebutuhan baik untuk sistem
maupun software didokumentasikan dan dilihat lagi dengan pelanggan.
3 Desain
Desain software
sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah
program yang berbeda struktur data, arsitektur software, representasi
interface, dan detail (algoritma) prosedural. Proses desain menterjemahkan
syarat/kebutuhan ke dalam sebuah representasi software yang dapat diperkirakan
demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain
didokumentasikan dan menjadi bagian dari konfigurasi software.
4 Generasi Kode
Desain harus
diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode
melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan
kode dapat diselesaikan secara mekanis.
5 Pengujian
Sekali program dibuat,
pengujian program dimulai. Proses pengujian berfokus pada logika internal
software, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal
fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan – kesalahan
dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang
sesuai dengan hasil yang dibutuhkan.
6 Pemeliharaan
Software akan mengalami
perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin
adalah software yangdilekatkan). Perubahan akan terjadi karena kesalahan –
kesalahan ditentukan, karena software harus disesuaikan untuk mengakomodasi
perubahan – perubahan di dalam lingkungan eksternalnya (contohnya perubahan
yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang
baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk
kerja. Pemeliharaan software mengaplikasikan lagi setiap fase program
sebelumnya dan tidak membuat yang baru lagi.
Kekurangan model
sekuensial linear
Masalah yang kadang
terjadi ketika model sekuensial linier diaplikasikan adalah :
1. Jarang sekali proyek nyata mengikuti
aliran sekuensial yang dianjurkan oleh model. Meskipun model linier bisa
mengakomodasi iterasi, model ini melakukannya dengan cara tidak langsung.
Sebagai hasilnya, perubahan – perubahan dapat menyebabkan keraguan pada saat
tim proyek berjalan.
2. Kadang – kadang sulit bagi pelanggan untuk
menyatakan semua kebutuhannya secara eksplisit. Model linier sekuensial
memerlukan halini dan mengalami kesulitan untuk mengakomodasi
ketidakpastiannatural yang ada pada bagian awal beberapa proyek.
3. Pelanggan harus bersifat sabar. Sebuah
versi kerja dari program – program kerja itu tidak akan diperoleh sampai akhir
waktu proyek dilalui. Sebuah kesalahan besar, jika tidak terdeteksi sampai
program yang bekerja tersebut dikaji ulang, bisa menjadi petaka.
4. Pengembang sering melakukan penundan yang
tidak perlu. Sifat alami dari siklus kehidupan klasik membawa kepada blocking
state di mana banyak anggota tim proyek harus menunggu tim yang lain untuk
melengkapi tugas yang saling memiliki ketergantungan. Blocking state cenderung
menjadi lebih lazim pada awal dan akhir sebuah proses sekuensial linier.
Kelebihan model
sekuensial linier
1. software yang dikembangkan dengan metode
ini biasanya menghasilkan kualitas yang baik.
2. Document pengembangan sistem sangat
terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum
melangkah ke fase berikutnya.
Model
Prototype
Prototype
adalah sebuah Javascript Framework yang dibuat untuk lebih memudahkan proses
dalam membangun aplikasi berbasis web.
Paradigma
dari metode prototyping adalah sistem informasi yang menggambarkan hal-hal
penting dari sistem informasi yang akan datang. Prototipe sistem informasi
bukanlah merupakan sesuatu yang lengkap, tetapi sesuatu yang harus dimodifikasi
kembali, dikembangkan, ditambahkan atau digabungkan dengan sistem informasi
yang lain bila perlu.
Model
ini digunakan jika customer tidak menjelaskan detail kebutuhan input, proses
atau output, sehingga developer tidak dapat memastikan algoritma yang akan
dipakai, kesesuaian sistem operasi atau bentuk user interface. Prototyping
model dimulai dengan mendengarkan kebutuhan user. Engineer dan customer bertemu
dan menentukan semua tujuan software dan menentukan kebutuhan-kebutuhan.
Developer kemudian membangun prototype dan user menguji coba prototype untuk
memberikan feedback. Prototype dapat dijalankan sebagai sistem yang pertama.
User bisa mendapatkan pengertian dari sistem yang sesungguhnya dan developer
dapat membangun sistem dengan segera. Kekurangan : kontrak akan merugikan,
dirugikan oleh keinginan customer yang meminta penambahan-penambahan. Kelebihan
: akan mengurangi waktu pembuatan program, kebutuhan customer akan lebih
terpenuhi dengan baik, jika kebutuhannya belum jelas, maka dengan prototype
akan lebih menguntungkan.
Empat langkah yang
menjadi karakteristik metode Prototyping yaitu
1. Pemilihan fungsi
Mengacu pada pemilahan
fungsi yang harus ditampilkan oleh prototyping. Pemilahan harus selalu
dilakukan berdasarkan pada tugas-tugas yang relevan yang sesuai dengan contoh
kasus yang akan diperagakan.
2. Penyusunan Sistem
Informasi
Bertujuan untuk
memenuhi permintaan akan tersedianya prototype.
3. Evaluasi
4. Penggunaan
Selanjutnya
Tahapan-tahapan
Prototyping
1. Pengumpulan
kebutuhan : Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh
perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem
yang akan dibuat.
2. Membangun
prototyping : Membangun prototyping dengan membuat perancangan sementara yang
berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan
format output)
3. Evaluasi prototyping
: Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun
sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan
diambil. Jika tidak prototyping direvisi dengan mengulangu langkah 1, 2 , dan
3.
4. Mengkodekan sistem :
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam
bahasa pemrograman yang sesuai
5. Menguji sistem :
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites
dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis
Path, pengujian arsitektur dan lain-lain
6. Evaluasi Sistem :
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang
diharapkan . Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
7. Menggunakan sistem :
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Jenis-jenis Prototyping
ð Feasibility
prototyping – digunakan untuk menguji kelayakan dari teknologi yang akan
digunakan untuk system informasi yang akan disusun.
ð Requirement
prototyping – digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
ð Desain
Prototyping - digunakan untuk mendorong
perancangan system informasi yang akan digunakan.
ð Implementation
prototyping – merupakan lanjytan dari rancangan protipe, prototype ini langsung
disusun sebagai suatu system informasi yang akan digunakan.
Teknik-teknik
Prototyping meliputi
1. Perancangan
Mode
2. Perancangan
Dialog
3. Simulasi
Keunggulan dan
Kelemahan Prototyping
Keunggulan Prototyping
:
1. End user dapat berpartisipasi aktif
2. Penentuan kebutuhan lebih mudah diwujudkan
3. Mempersingkat waktu pengembangan SI
1. Adanya komunikasi yang baik antara
pengembang dan pelanggan
2. Pengembang dapat bekerja lebih baik dalam
menentukan kebutuhan pelanggan
3. Pelanggan berperan aktif dalam
pengembangan sistem
4. Lebih menghemat waktu dalam pengembangan
sistem
5. Penerapan menjadi lebih mudah karena
pemakai mengetahui apa yang diharapkannya.
Kelemahan Prototyping :
1. Proses analisis dan perancangan terlalu
singkat
2. Mengesampingkan alternatif pemecahan
masalah
3. Bisanya kurang fleksible dalam mengahadapi
perubahan
4. Prototype yang dihasilkan tidak selamanya
mudah dirubah
5. Prototype terlalu cepat selesai
Rapid
Application Development (RAD) Model
RAD
merupakan incremental software process yang menekankan pada siklus development
yang singkat. Model ini mengunakan pembuatan berdasarkan komponen, menekankan
penggunaan kembali code dan code generation. Jika requirement telah diketahui
dengan pasti dan scope project mendesak, RAD proses memungkinkan team
development untuk sistem fungsional keseluruhan dalam periode waktu yang sangat
singkat (misalnya 60-90 hari). RAD model dapat digunakan untuk project yang
dapat dipisah, misalnya ada 1 project besar, dibagi 3, dikerjakan oleh team
yang berbeda-beda (dari analisis sampai testing) kemudian diintegrasikan. Jika
menggunkan RAD model, kualitas team harus solid dan punya disiplin tinggi.
Kekurangan : (1). untuk project yang besar dan membutuhkan sumber daya manusia
yang cukup. (2) Jika developer dan customer berkomitmen untuk menyelesaikan
project dalam waktu yang singkat, maka project akan gagal. (3). Jika pemodulan
project tidak tepat, maka pembangunan komponen untuk RAD akan bermasalah.
Rapid
application development (RAD) atau rapid prototyping adalah model proses
pembangunan perangkat lunak yang tergolong dalam teknik incremental
(bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan
cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid
application development menggunakan metode iteratif (berulang) dalam
mengembangkan sistem dimana working model (model bekerja) sistem
dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan
(requirement) user dan selanjutnya disingkirkan.[1] Working model digunakan
kadang-kadang saja sebagai basis desain dan implementasi sistem final.
Model
RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai
dengan menerapkan :
1. Component based construction ( pemrograman
berbasis komponen bukan prosedural).
2. Penekanan pada penggunaan ulang (reuse)
komponen perangkat lunak yang telah ada.
3. Pembangkitan kode program otomatis/semi
otomatis.
4. Multiple team (banyak tim), tiap tim
menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung
dari area dan kompleksitasnya sistem yang dibangun.
Jika
keutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap dan jelas,
maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak
yang dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan
model waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat
pendek dengan penerapan teknik yang cepat.
Sistem
dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang
hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak
tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai
dengan pembagian modul sistem.
Kelemahan
Beberapa
hal (kelebhan dan kekurangan) yang perlu diperhatikan dalam implementasi
pengembangan menggunakan model RAD :
1. Model RAD memerlukan sumber daya yang cukup
besar, terutama untuk proyek dengan skala besar.
2. Model ini cocok untuk proyek dengan skala
besar.
3. Model RAD memerlukan komitmen yang kuat
antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
4. kinerja dari perangkat lunak yang dihasilkan
dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat
dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
5. sistem yang tidak bisa dimodularisasi tidak
cocok untuk model ini.
6. penghalusan dan penggabungan dari beberapa
tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
7. proyek bisa gagal karena waktu yang
disepakati tidak dipenuhi
8. risiko teknis yang tinggi juga kurang cocok
untuk model ini.
Kelebihan
1. Fleksibilitas yang lebih besar
2. Sangat mengurangi manual coding
3. Peningkatan keterlibatan pengguna
4. Mungkin lebih sedikit cacat
5. Mungkin dikurangi biaya
6. Singkat siklus pengembangan
Incremental
Model
Pada tahun 1971 Harlan Mills (IBM)
mengusulkan semestinya perkembangansoftware lebih tepat daripada membuatnya.
Kita mulai membangun system sangat sederhanayang mendukung, memiliki fungsi
sederhana, kemudian menambahkan dan mengembangkansoftware tersebut. Semestinya
software pengembangan seperti bunga atau pohon. Nama lainperangkat lunak tersebut
adalah incremental model.
Model
incremental (Incremental waterfall model) merupakan perbaikan dari model waterfall
dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalah membangun
software secara meningkat (increment) berdasarkan kemampuan fungsional.Model
incremental ini diaplikasikan pada sistem pakar dengan penambahan rules yang mengakibatkan
bertambahnya kemampuan fungsional sistem. Model incremental merupakan model
continous rapid prototype dengan durasi yang diperpanjang hingga akhir proses pengembangan.
Pada model prototipe biasa, prototipe hanya dibuat pada tahap awal untuk
mendapatkan kebutuhan user.Model Incremental dalam rekayasa perangkat lunak,
menerapkan rekayasa perangkatlunak perbagian, hingga menghasilkan perangkat
lunak yang lengkap. Proses membangunberhenti jika produk telah mencapai seluruh
fungsi yang diharapkan.Pada awal tahapan dilakukan penentuan kebutuhan dan
spesifikasi. Kemudian dilakukanperancangan arsitektur software yang terbuka,
agar dapat diterapkan pembangunan per-bagian pada tahapan selanjutnya.
Tahapan
Incremental Model
1.Requirement
2.Specification
3.Architecture
Design
Incremental
model menerapkan rangkaian linear. Setiap rangkaian linear mendelivery
increment dari software. Sebagai contoh, software word-processing, dibangun
menggunakan incremental model, mendelivery fungsi dasar file management,
editing, dan fungsi document production pada increment pertama. Kemampuan
editing, dan fungsi document production yang lebih baik pada increment kedua,
checking dan grammar spelling pada increment ketiga. Proses akan diulangi
sampai produk yang lengkap telah dihasilkan. Jika menggunakan Incremental
model, increment yang pertama merupakan inti product. Incremental model fokus
pada pendeliverian opertional product pada tiap increment.
Kelebihan Model
Incremental
1. Penambahan kemampuan fungsional akan lebih
mudah diuji, diverifikasi, dan divalidasi dandapat menurunkan biaya yang
dikeluarkan untuk memperbaiki system.
2. Nilai penggunaan
dapat ditentukan pada setiap increament sehingga fungsionalitas
sistemdisediakan lebih awal
3. Increment awal
berupa prototype untuk membantu memahami kebutuhan pada incrementberikutnya.
4. Memiliki risiko
lebih rendah terhadap keseluruhan pengembagan sistem.
5. Prioritas tertinggi
pada pelayanan sistem adalah yang paling diuji
Kekurangan Model
Incremental
1. Tiap bagian tidak
dapat diintegrasikan
2. Setiap tambahan yang
dibangun harus dimasukkan kedalam struktur yang ada tanpamenurunkan kualitas
dari yang telah dibangun system tersebut sampai saat ini.
3. Penambahan staf dilakukan jika hasil
incremental akan dikembangkan lebih lanjut.
Model
assembly
Model assembly
teknologi dan metode yang digunakan oleh komputer-aided design dan produk
visualisasi sistem perangkat lunak komputer untuk menangani beberapa file yang
mewakili komponen dalam suatu produk. Komponen dalam perakitan
direpresentasikan sebagai padat atau permukaan model.
Desainer umumnya
memiliki akses ke model yang lain bekerja pada secara bersamaan. Sebagai
contoh, beberapa orang dapat merancang satu mesin yang memiliki banyak bagian.
Bagian-bagian baru yang ditambahkan ke model perakitan karena mereka
diciptakan. Setiap desainer memiliki akses ke model perakitan, sementara
pekerjaan yang sedang berlangsung, dan saat bekerja di bagian mereka sendiri.
Evolusi desain dapat dilihat oleh semua orang yang terlibat.
File-file data individu
menggambarkan geometri 3D dari komponen individu dirakit bersama-sama melalui
sejumlah sub-perakitan tingkat untuk membuat perakitan menggambarkan seluruh
produk.Semua CAD dan CPD sistem mendukung bentuk bottom-up konstruksi. Beberapa
sistem, melalui penyalinan asosiatif geometri antar komponen juga memungkinkan
top-down metode desain.
Komponen dapat
diposisikan dalam perakitan produk menggunakan metode koordinat penempatan
absolut atau melalui kondisi kawin. Kondisi kawin adalah definisi dari posisi
relatif komponen antara satu sama lain; untuk penyelarasan contoh sumbu dua
lubang atau jarak dari dua wajah dari satu sama lain. Posisi akhir dari semua
komponen berdasarkan hubungan ini dihitung menggunakan mesin geometri kendala
dibangun ke dalam CAD atau paket visualisasi.
Pentingnya model
perakitan dalam mencapai manfaat penuh dari PLM telah menyebabkan kemajuan yang
sedang berlangsung dalam teknologi ini. Ini termasuk penggunaan struktur data
ringan seperti JT yang memungkinkan visualisasi dan interaksi dengan data dalam
jumlah besar produk, antarmuka langsung ke antara Mock up digital dan sistem
PDM dan aktif digital mock up teknologi yang menyatukan kemampuan untuk
memvisualisasikan perakitan mengejek atas dengan kemampuan untuk mengukur,
menganalisis, mensimulasikan, desain dan merancang ulang.
Fourth
Generation Tehnique Paradigm - Model tehnik generasi ke 4 / 4G
Istilah
Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang
memungkinkan seorang developer software menerapkan beberapa karakteristik
software pada tingkat yang tinggi, yang kemudian menghasilkan source code dan
object code secara otomatis sesuai dengan spesifikasi yang ditentukan
developer. Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :
· DataBase Query
· Pembentukan laporan ( Report Generation )
· Manipulasi data
· Definisi dan interaksi layar (screen)
· Pembentukan object dan source ( Object
and source generation )
· Kemampuan grafik yang tinggi, dan
· Kemampuan spreadsheet
Keterangan:
Model 4GT untuk software engineering dimulai
dengan rangkaian pengumpulan kebutuhan. Idealnya, seorang customer menjelaskan
kebutuhan-kebutuhan yang selanjutnya diterjemahkan ke dalam prototype. Tetapi
ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang
diperlukan, tidak jelas dalam menetapkan faktafakta yang diketahui dan tidak
dapat menentukan informasi yang diinginkan oleh peralatan 4GT.
Untuk
aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan
kebutuhan ke implementasi yang menggunakan bahasa non prosedur fourth
generation (generasi ke 4). Tetapi untuk proyek besar, pengembangan strategi
desain sistem tetapdiperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT
tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui
dalam pengembangan software yang menggunakan pendekatan konvensional.
Implementasi
yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang
diinginkan yang kemudian diterjemahkan ke dalam bentuk source code dan object
code secara otomatis.
Langkah
yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product.
Selanjutnya developer harus melakukan pengetesan, pengembangan dokumentasi dan
pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software
engineering. Masalah yang dihadapi dalam model 4GT adalah sebagian orang beranggapan bahwa :
ð peralatan
4GT tidak semudah penggunaan bahasa pemrograman,
ð source
code yang dihasilkan oleh peralatan ini tidak efisien,
ð pemeliharaan sistem
software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.
Materi 3
KONSEP
MANAJEMEN PROYEK
Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
- Manajemen proyek perangkat lunak merupakan bagian yang penting dalam pembangunan perangkat lunak.
- Sekalipun tidak bersifat teknis seperti pengkodean, hal-hal dalam manajemen proyek PL ini mampu menentukan apakah proyek akan berjalan dengan baik sehingga menghasilkan produk yang baik.
Manajemen
Personel, Produk dan Proses
3. Manajemen
proyek perangkat lunak mengatur 4 hal penting :
a. Personel
b. Masalah
(problem) Ã
berkaitan dengan Produk
c. proses
dan
d. Proyek
Ã
tambahan (tapi sangat penting)
- Empat hal ini berurutan mulai dari yang paling penting.
Spektrum
Manajemen
5. Personel
mendapat tempat paling penting karena tanpa personel yang baik dan tepat maka 3
hal lain tidak bisa berjalan dengan baik.
- Manajemen proyek per. lunak merupakan layer pertama pada proses software engineering & sangat penting untuk kesuksesan proyek
People
- Lima konstituen proyek PL:
- Manajer Senior -> menentukan isu-isu bisnis
- Manajer (teknik) Proyek -> merencanakan, memotivasi, mengorganisir, mengontrol produk
- Pelaksana -> menyampaikan ketrampilan teknik
- Pelanggan -> menentukan jenis kebutuhan PL
- Pemakai Akhir -> berinteraksi dg PL
- Efektifitas kerja masing-masing personel di atas harus diusahakan oleh pemimpin tim. Pemimpin tim ini yang mengatur tim proyek agar dapat memberikan yang terbaik dari masing-masing personel.
- Pimpinan Tim (1)
- Pemimpin Tim PL = manager proyek.
- Seorang pemimpin tim diharuskan mempunyai ketrampilan memimpin yang cukup.
- Kemampuan yang dibutuhkan dalam kepemimpinan seperti:
- Motivasi -> kemampuan memberi dorongan utk menghasilkan sesuatu
- Organisasi -> kemampuan membentuk proses yg sedang berlangsung yg memungkinkan konsep dasar diterjemahkan ke hasil akhir
- Gagasan dan Inovasi -> kemampuan mendorong manusia utk menciptakan & bertindak kreatif
3. Pimpinan Tim (2)
- Karakteristik yg menentukan manajer proyek yg efektif memberi tekanan :
- Pemecahan masalah -> dapat mendiagnosis isu-isu organisasi & teknis, secara sistematis membentuk sebuah pemecahan atau dgn tepat memotivasi pelaskana, menerapkan hasil pengalaman, fleksibel utk mengubah arah
- Identifikasi manajerial -> bersentuhan langsung dengan proyek
- Prestasi -> memiliki inisiatif dan prestasi, pengambilan resiko tdk ada hukuman
- Pengaruh dam pembentukan tim -> mampu “membaca” manusia
- Tim Perangkat Lunak (1)
- Struktur tim “terbaik” tergantung gaya manajemen sebuah organisasi, jumlah orang dalam tim, tingkat ketrampilannya, kesulitan masalah secara keseluruhan.
- Contoh Struktur Organisasi Tim :
- Demokratis terdesentralisasi (DD) -> tidak memiliki pimpinan yg permanen, “koordinator” dipilih dlm jangka pendek, keputusa & pendekatan masalah dibuat oleh konsensus kelompok
- Terkontrol terdesentralisasi (CD) -> memiliki pimpinan tertentu & sekunder, pemecahan masalah aktivitas kelompok tapi implementasinya dipecah diantara sub2 kelompok oleh pimpinan, komunikasi horisontal & vertikal
- Terkontrol tersentralisasi (CC) -> koordinasi pemecahan masalah tingkat puncak & internal tim diatur pimpinan tim
- Tim Perangkat Lunak (2)
- Faktor proyek yg harus dipertimbangkan saat merencanakan struktur tim RPL:
- Kesulitan masalah yg akan dipecahkan
- Ukuran program2 resultan pd baris kode & titik fungsi
- Waktu tim akan tinggal bersama
- Tingkat dimana masalah dapat dimodularisasikan
- Kualitas yg diperlukan serta keandalan sistem yg dibangun
- Kepastian tanggal penyampaian
- Tingkat sosiabilitas (komunikasi) yg dibutuhkan oleh proyek
- Tim Perangkat Lunak (3)
- Pengaruh Karakteristik Proyek pada Struktur Tim
1.
7. Tim
perangkat Lunak (4)
- Paradigma organisasional tim RPL:
·
Paradigma tertutup ->membentuk tim di
sepanjang hirarki otoritas tradisional
·
Paradigma random -> membentuk tim
secara longgar & tergantung inisiatif individual anggota tim
·
Paradigma terbuka -> cenderung
membentuk tim dgn cara tertentu, tercapai banyak kontrol dan inovasi
·
Paradigma sinkron -> bertumpu pd
penggolongan alami suatu masalah
8. Alasan
RPL menemui kesulitan:
- Skala usaha pengembangan besar, kompleksitas tinggi, kesulitan mengkoordinasi tim
- Ketidakpastian -> aliran perubahan terus menerus
- Interoperabilitas -> PL baru berkomunikasi dgn PL yg sudah ada atau menyesuaikan diri dgn batasan yg sudah ditentukan
- Pendekatan impersonal, formal -> penyampaian & dokumen RPL, memo2 teknis, kejadian penting pd proyek, jadual & piranti kontrol proyek, kebutuhan akan perubahan, laporan pelacakan kesalahan, data cadangan
- Prosedur interpersonal, formal -> aktivitas jaminan kualitas yg diterapkan pd produk kerja RPL; pertemuan pengkajian, perancangan & inspeksi kode
- Prosedur interpersonal, informal -> pertemuan kelompok utk penyebaran informasi & pemecahan masalah
- Komunikasi elektronik -> e-mail, papan buletin elektronik, web site, sistem konferensi berbasis video
- Jaringan interpersonal -> diskusi informal dg orang2 diluar proyek
Problem
- Ruang lingkup PL:
- Konteks -> Bagaimana PL dibangun utk memenuhi sebuah sistem, produk atau konteks bisnis yg lebih besar, batasan yg ditentukan
- Tujuan informasi -> Obyek data sebagai input atau output
- Fungsi dan unjuk kerja -> Fungsi PL utk transformasi input data menjadi output
- Dekomposisi masalah (partitioning/ pembagian):
- Fungsionalitas yg harus disampaikan
- Proses yg dipakai utk menyampaikannya
Process
- Fase2 generik proses PL – definisi, pengembangan dan pemeliharaan –diaplikasikan pd semua PL
- Manajer proyek harus memutuskan model proses mana yang paling sesuai untuk proyek etrtentu, yang kemudian menentukan sebuah rencana utama yang didasarkan pada sejumlah aktivitas kerangka kerja proses yang umum.
- Menggabungkan masalah dan proses -> aktivitas kerangka kerja :
- Komunikasi pelanggan – membangun komunikasi yg efektif antara pengembang & pelanggan
- Perencanaan – menentukan sumber daya, ketepatan waktu, & informasi proyek lain
- Analisis resiko – memperkirakan resiko2 manajemen & teknis
- Rekayasa – membangun satu perwakilan aplikasi atau lebih
- Konstruksi & peluncuran – membangun , menguji, memasang (instal) & memberikan dukungan pd pemakai
- Evaluasi pelanggan – memperoleh umpan balik dr pelanggan didasarkan evaluasi representasi PL selama masa perekayasaan& diimplementasi selama masa instalasi
- Dekomposisi proses :
- Proyek relatif kecil – menggunakan pendekatan linier
- Batasan waktu ketat & masalah dpt dipecah2 – model RAD
- Batasan waktu ketat & fungsionalitas tdk dpt disampaikan – model pertambahan
Proyek
- Kesulitan proyek :
·
Cara
dimana kemajuan dinilai adalah cacat
·
Tidak ada cara utk mengkalibrasi
kemajuan, tidak diperoleh metrik kuantitatif
·
Rencana proyek belum dirancang utk
mengakomodasi sumber daya yg diperlukan pd akhir proyek
·
Resiko2 belum dipertimbangkan secara
eksplisit, belum dibuat rencana utk mengurangi, memonitor, mengaturnya
·
Jadual yg ada tidak realistis dan cacat