Senin, 12 Februari 2018

Tugas 1 MPPL

1. Software Process dan Software Product

Pengertian Software process

  1. Menurut Reidar Conradi pada bukunya yang berjudul Software Process Technology: 7th European Workshop, Software Process adalah Proses perangkat lunak yang direpresentasikan sebagai sebuah proses program dan dapat mengeksekusi secara otomatis.
  2. Menurut Ian Sommerville pada bukunya yang berjudul Software Engineering (9th Edition), Software Process adalah Pendekatan sistematis yang digunakan dalam rekayasa perangkat lunak serta merupakan sebuah aktifitas terurut yang menuju kepada produksi dari pembuatan produk rekayasa perangkat lunak.
  3. Sedangkan menurut M Deploy pada tulisannya yang berjudul Software Engineering Process, Software process adalah serangkaian langkah-langkah yang terurut untuk membuat sebuah produk rekayasa perangkat lunak. Software process adalah suatu hirarki yang tiap langkah dapat memiliki sub-sub langkah dalam proses rekayasa perangkat lunak.

Terdapat 4 aktifitas umum yang mendasar pada semua proses rekayasa perangkat lunak, yaitu:

    • Software specification, yaitu pengguna dan perekayasa menentukan perangkat lunak yang akan dibuat dan dibatasi pada proyek tersebut.
    • Software development, dimana perangkat lunak tersebut dirancang dan diprogram.
    • Software validation, dimana perangkat lunak di cek apakah sudah memenuhi apa yang dibutuhkan oleh pengguna
    • Software evolution, dimana perangkat lunak diubah,diperbaiki untuk mengatasi perubahan pengguna dan mengikuti perkembangan jaman.

Dalam software process terdapat beberapa model, yaitu:

  1. Waterfall
    • Model ini adalah model yang pertama kali muncul pada tahun 1970an diperkenalkan oleh Winston W. Royce. Model ini memisahkan fase spesifikasi dengan fase pengembangan
  2. RAD (Rapid Application Development)
    • Rapid Application Development (RAD) adalah sebuah strategi pengembangan sistem yang menekankan kecepatan dalam pengembangan melalui keterlibatan pengguna dalam pembangunan secara cepat, iteratif, dan incremental dari suatu serangkaian prototype dari suatu sistem yang dapat berkembang menjadi suatu sistem akhir atau versi tertentu.
  3. Prototyping Model
    • Pada model ini, user berperan aktif dalam pembuatan software. model ini digunakan apabila developer kesulitan dalam pengumpulan kebutuhan dan user juga tidak dapat menggambarkan software yang diinginkannya, atau dimana user sering menambah dan mengubah apa yang diinginkannya. 

Software Product

Software produk merupakan hasil dari pengembangan perangkat lunak yang siap untuk digunakan bagi penggunanya. Produk perangkat lunak mempunyai klasifikasi masing -masing sesuai dengan tingkat kematangan perangkat lunak tersebut dibuat. 

Level Produk perangkat lunak ini dibedakan menjadi beberapa jenis, sesuai dengan cmm yang diterapkan yaitu : 

  • Level 1, produk dibuat seadanya
  • Level 2, dipikirkan sebelum dan sesudah sperangkat lunak dibuat
  • Level 3, pemikiran hasil sebagai umpan balik dalam proses perencanaan dan evaluasi
  • Level 4, adanya pemprediksian dalam pengembangan perangkat lunak
  • Level 5, membuat pebelajaran terhadap masukkan yang diterima untuk memperbaiki perangkat lunak

2. Berapa biaya yang dibutuhkan untuk membuat software?

Sebuah proyek dikatakan berhasil apabila sistem tersebut bisa diserahkan tepat waktu, sesuai antara biaya dan kualitas yang diinginkan. Hal tersebut menandakan bahwa apa yang ditargetkan manajer proyek telah bisa dicapat. Meski target yang dibuat manajer proyek masuk akal, tapi tidak memperhitungkan catatan level produktivitas timnya, kemungkinan tidak akan bisa memenuhi deadline dikarenakan estimasi awal yang salah. Oleh karenanya, perkiraan yang realistik menjadi kebutuhan yang sangat krusial bagi seorang manajer proyek

 Dimana Estimasi Dilakukan ? 

Estimasi bisa dilakukan pada tahapan yang berbeda dalam proyek perangkat lunak. Namun setiap tahap memiliki alasan dan metode estimasi yang berbeda-beda. Adapun tahapan dimana estimasi bisa dilakukan, antara lain :
    1. Perencanaan Strategis (strategic planning)
    2. Studi kelayakan (feasibility study)
    3. Spesifikasi Sistem (system specification)
    4. Evaluasi proposal supplier (evaluation of supplier’ proposals)
    5. Perencanaan Poyek (project planning)

Problema ‘Over-Estimate’ Dan ‘Under-Estimate’

  • Parkinson’s Law : ‘work expands to fill the time available’. Bila staf diberi target yang mudah akan bekerja kurang keras.
  • Hukum Brooks’ Law : ‘ Putting more people on a late job makes it later’. Biaya yang diperlukan untuk mewujudkan sebuah proyek akan meningkat secara tidak proporsional terhadap jumlah staf yang dipekerjakan.  Bila estimasi biaya yang diperlukan berlebihan menyebabkan  jumlah staf yang dialokasikan lebih banyak dari yang diperlukan dan overhead manajemen akan meningkat.

Dasar Estimasi Perangkat Lunak

  1. Kebutuhan data historis : memerlukan informasi bagaimana proyek yang telah diimplementasikan sebelumnya, terutama bahasa pemrograman dan tool yang digunakan, standar yang dipakai dan pengalaman staf.
  2. Metrik pekerjaan: biasanya tidak mungkin menghitung langsung harga aktual atau waktu yang diperlukan untuk merealisasikan proyek. Waktu yang dipakai untuk menulis program bisa berbeda sesuai kompetensidan pengalaman software developer. Secara praktis, untuk mengukur volume pekerjaan didasarkan pada jumlah source lines of code (SLOC) atau function points.    
  3. Kompleksitas : Telah banyak usaha yang dilakukan untuk mengukur kompleksitas secara obyektif, namun seringkali akan tergantung penilaian subyektif estimatornya.

Teknik-Teknik Estimasi Biaya Perangkat Lunak 

  • Algorithmic models : menggunakann ‘effort driver’ yang menggambarkan karakteristik dari sistem target dan lingkungan implementasi untuk memprediksi biaya.
  • Expert  judgement : dimana nasehat staf yang memiliki kemampuan  sangat diharapkan 
  • Analogy : kemiripan, kelengkapan, proyek diidentifikasi dan biaya aktualnya digunakan sebagai dasar estimasi proyek baru.
  • Parkinson : mengidentifikasi kelayakan biaya staf untuk mengerjakan proyek dan menggunakannya sebagai estimasi   (bukan merupakan metode prediksi biaya yang sebenarnya).
  • Price to win : estimasi harus kelihatan cukup rendah untuk memenangkan kontrak.  
  • Top-down: keseluruhan estimasi diformulasikan untuk keseluruhan proyek yang kemudian dipecah ke dalam usaha yang  diperlukan untuk komponen-komponen tugas.
  • Bottom-up : komponen-komponen tugas diidentifikasi, diukur dan dilakukan estimasi sendiri-sendiri untuk kemudian dijumlahkan  

3. Team yang terlibat dalam pembuatan software

  1. Project manager 
    • Project manager adalah orang yang ditunjuk untuk menggerakkan organisasi proyek dan memimpinnya dalam mencapai objective proyek. Project Manager adalah posisi puncak yang luar biasa dalam proyek.
    • Tanggung jawab project manager adalah untuk memenuhi kebutuhan yang berupa kebutuhan tugas, kebutuhan team, dan kebutuhan individual. Project manager menjadi penghubung antara strategi dan tim. Peran project manager dalam perkembangan bisnis dan keberlangsungan hidup perusahaan menjadi semakin lebih strategis.
  2. Sistem Analis
    • Analis sistem adalah seseorang yang bertanggung jawab atas penelitian, perencanaan, pengkoordinasian, dan merekomendasikan pemilihan perangkat lunak dan sistem yang paling sesuai dengan kebutuhan organisasi bisnis atau perusahaan. 
  3. Programmer
    • Programmer adalah  profesi yang paling sering terdengar, karena profesi ini sudah ada sejak diciptakannya komputer itu sendiri. Profesional dalam bidang software development dan consulting umumnya pernah meniti karir sebagai seorang programmer. Keahlian dalam algoritma dan penguasaan terhadap salah satu atau beberapa bahasa memprograman mutlak diperlukan oleh seorang programmer. Programer adalah profesi inti dan tulang punggung dalam software development karena tidak akan terwujud sebuah software aplikasi tanpa adanya programmer, sedangkan tanpa didukung profesi lainnya, seorang programmer dapat membuat sebuah aplikasi yang berguna walaupun dengan cakupan terbatas
  4. Database administrator (DBA)
    • Database administrator (DBA) adalah orang yang bertanggung jawab untuk mendesain, implementasi, pemeliharaan dan perbaikan database. DBA sering disebut juga database koordinator database programmer, dan terkait erat dengan database analyst, database modeler, programmer analyst, dan systems manager. Peran DBA mencakup pengembangan dan desain strategi database, pemantauan dan meningkatkan kinerja dan kapasitas database, dan perencanaan kebutuhan pengembangan di masa depan. DBA mungkin juga merencanakan, mengkoordinasi dan melaksanakan langkah-langkah keamanan untuk menjaga database. Suatu perusahaan mungkin mengharuskan seorang DBA memiliki sertifikasi atau gelar untuk  sistem database (misalnya, Microsoft Certified Database Administrator).
  5. Designer
    • Designer adalah  adalah orang yang memiliki keahlian menciptakan konten presentasi (biasanya hypertext atau hypermedia) yang dikirimkan ke pengguna-akhir melalui World Wide Web, menggunakan Web browser atau perangkat lunak Web-enabled lain seperti televisi internet, Microblogging, RSS, dan sebagainya.
  6. Fungsional
    • Fungsional adalah  kedudukan yang menunjukkan tugas, tanggung jawab, wewenang dan fungsional pada hakekatnya adalah jabatan teknis yang tidak tercantum dalam struktur organisasi, namun sangat diperlukan dalam tugas-tugas pokok dalam suatu organisasi.
  7. Network Engineer
    • Network Engineer adalah seseorang yang bekerja di bidang engineering dan mampu menggunakan ilmunya untuk menghasilkan suatu benda yang dapat dimanfaatkan dalam kehidupan sehari-hari. Seorang engineer/insinyur juga membantu memecahkan permasalahan dibidang teknologi yang ada.

Sumber:
http://stringlabs.blogspot.co.id/2015/02/software-process-rpl.html
http://deddypratomo9106205311.blogspot.co.id/2007/06/perbedaan-software-proses-dan-software.html
https://dewantoroaldi11611.wordpress.com/2014/11/27/fungsi-dari-peran-pada-sebuah-project-it/
https://yayuk05.wordpress.com/2007/11/27/estimasi-biaya-perangkat-lunak/

Tidak ada komentar:

Posting Komentar