Materi Rekasa Perangkat Lunak


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   
            The Second era (2)
  • 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.
          Karakteristik software:
  • 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
  1. RPL merupakan teknologi layer
  2. Menurut IEEE, RPL adalah :
  3. Aplikasi yang pendekatannya sistematis, disiplin, bisa terukur untuk pengembangan operasional dan    pembuatan software.
  4. Pondasi RPL adalah lapisan proses, karena terkait dengan teknologi dan waktu pengembangan.
  5. Proses mendefinisikan framework key prosess Are (KPA) yang harus dibuat untuk penekanan teknologi RPL yang efektif.
  6. Metode RPL memberikan teknik bagaimana membangun software.  Yang termasuk metode: Analisa, desain, pembuatan program, pengujian dan perawatan.
  7. 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
  1. 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.
  1. Pekerjaan yang berhubungan dengan RPL bisa dikategorikan ke dalam 3 fase umum tanpa memandang area aplikasi, ukuran proyek atau kompleksitas. Fase tersebut yaitu:
    1. Definition Phase
    2. Development Phase
    3. Maintenance Phase
  1. 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.
  1. 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

  1. Ada tiga aktivftas teknis yang selalu terjadi:
    1. Desain software
    2. Pembuatan Program
    3. Pengujian Software
  2. Maintenance Phase
Difokuskan pada perubahan sehubungan dengan adanya koreksi kesalahan, adaptasi dan pengembangan yang dikehendaki customer.
  1.  Ada 4 tipe perubahan:
    1. Correction Mengubah software untuk memperbaiki kesalahan-kesalahan yang ada.
    2. Adaption Modifikasi yang dilakukan terhadap software dikarenakan adanya perubahan lingkungan eksternal (misal: CPU, sistem operasi, aturan bisnis, karakter produk eksternal).
    3. Enhancemen Pada saat sofrware dipakai, user meminta tambahan-tambahan fungsi. Sehingga software dikembangkan dari kebutuhan semula.
    4. 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
  1. Manajemen proyek perangkat lunak merupakan bagian yang penting dalam pembangunan perangkat lunak.
  2. 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)
  1. 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.
  1. Manajemen proyek per. lunak merupakan layer pertama pada proses software engineering & sangat penting untuk kesuksesan proyek

People
  1. Lima konstituen proyek PL:
    1. Manajer Senior -> menentukan isu-isu bisnis
    2. Manajer (teknik) Proyek -> merencanakan, memotivasi, mengorganisir, mengontrol produk
    3. Pelaksana -> menyampaikan ketrampilan teknik
    4. Pelanggan -> menentukan jenis kebutuhan PL
    5. Pemakai Akhir -> berinteraksi dg PL
  1. 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.
  2. Pimpinan Tim (1)
    1. Pemimpin Tim PL = manager proyek.
    2. Seorang pemimpin tim diharuskan mempunyai ketrampilan memimpin yang cukup.
    3. 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)
    1. 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
  1. Tim Perangkat Lunak (1)
    1. Struktur tim “terbaik” tergantung gaya manajemen sebuah organisasi, jumlah orang dalam tim, tingkat ketrampilannya, kesulitan masalah secara keseluruhan.
    2. 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
  2. Tim Perangkat Lunak (2)
    1. 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
  3. Tim Perangkat Lunak (3)
    1. Pengaruh Karakteristik Proyek pada Struktur Tim

1.     
                             7. Tim perangkat Lunak (4)
    1. 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:
    1. Skala usaha pengembangan besar, kompleksitas tinggi, kesulitan mengkoordinasi tim
    2. Ketidakpastian -> aliran perubahan terus menerus
    3. Interoperabilitas -> PL baru berkomunikasi dgn PL yg sudah ada atau menyesuaikan diri dgn batasan yg sudah ditentukan
            9. Teknik koordinasi proyek:
    1. Pendekatan impersonal, formal -> penyampaian & dokumen RPL, memo2 teknis, kejadian penting pd proyek, jadual & piranti kontrol proyek, kebutuhan akan perubahan, laporan pelacakan kesalahan, data cadangan
    2. Prosedur interpersonal, formal -> aktivitas jaminan kualitas yg diterapkan pd produk kerja RPL; pertemuan pengkajian, perancangan & inspeksi kode
    3. Prosedur interpersonal, informal -> pertemuan kelompok utk penyebaran informasi & pemecahan masalah
    4. Komunikasi elektronik -> e-mail, papan buletin elektronik, web site, sistem konferensi berbasis video
    5. Jaringan interpersonal -> diskusi informal dg orang2 diluar proyek
 
Problem
  1. 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
  1. Dekomposisi masalah (partitioning/ pembagian):
    • Fungsionalitas yg harus disampaikan
    • Proses yg dipakai utk menyampaikannya
Process
  1. Fase2 generik proses PL – definisi, pengembangan dan pemeliharaan –diaplikasikan pd semua PL
  2. 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.
  3. 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
  4. 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
  1. 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
READ MORE - Materi Rekasa Perangkat Lunak