Sabtu, 20 April 2019

Soal dan Jawaban Rekayasa Perangkat Lunak (Model Proses, Karakteristk Software, DFD)


Nama  : Lisa Yulinar Syavira
Kelas    : SP4.2
NIM     : 1117101503
Matkul : Ujian Tengah Semester – Rekayasa Perangkat Lunak

Pertanyaan :
1.      Jelaskan dan Sebutkan Tahap umum dalam Pengembangan Perangkat Lunak (Software  Development Stages)!
2.      Pengertian perangkat lunak merupakan suatu instruksi (program komputer) yang ketika dijalankan menyediakan fungsi dan tampilan yang diinginkan, struktur data yang memberi kesempatan program untuk memanipulasi informasi dan dokumen yang mendiskripsikan operasi dan penggunaan program.
a.      Bagaimana karakteristik perangkat lunak ?
b.      Sebutkan dan jelaskan Software Enginering Layer!
3.      Andaikan anda terpilih menjadi seorang manajer proyek pada sebuah perusahaan yang akan mengembangkan aplikasi game edukasi di mana tugas anda adalah membuat game baru yang sebelumnya belum ada dan kebutuhan-kebutuhan dalam membangun perangkat lunak juga belum disiapkan. Model process apa yang akan saya gunakan dalam melakukan pengembangan perangkat lunak dan jelaskan alasannya! Serta Buatlah rancangan context diagram, dekomposisi diagram, dan DFD level 0 dan 1 !
Jawaban :
1.      Tahap umum pengembangan perangkat lunak
a.      Model Pengembangan Air Terjun (Waterfalll Model)
Pengembangan perangkat lunak yang difokuskan pada perancangan dan pengendalian (Bassil dan Musa, 1991). Model waterfall berfungsi untuk membantu mengatasi kerumitan yang terjadi akibat proyek-proyek pengembangan perangkat lunak (Boehm, 1976).
Tahapan-tahapan dalam model waterfall antara lain :
·         Tahap kebutuhan sistem
Seluruh kebutuhan software harus bisa didapatkan dalam fase ini. Jadi, apa saja yang dibutuhkan sebelum software dikerjakan harus disiapkan dengan sebaik mungkin.
·         Spesifikasi kebutuhan software
Kegunaan software yang diharapkan pengguna dan batasan software. Informasi ini biasanya dapat diperoleh melalui wawancara, survey, atau diskusi. Kemudian dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap selanjutnya.
·         Desain software
Tahap ini dilakukan sebelum melakukan coding. Bertujuan untuk memberi gambaran apa yang seharusnya dikerjakan dan bagaimana tampilannya.
·         Implementasi software
Mulai dilakukan pemrograman. Pembuatan software dipecah menjadi modul-modul kecil yang nantinya akan digabungkan dalam tahap berikutnya. Selain itu juga dilakukan pemeriksaan modul apakah sudah memenuhi fungsi yang diinginkan atau belum.
·         Uji mesin formal integrasi software
Dilakukan penggabungan modul-modul yang sudah dibuat dan digunakan untuk mengetahui apakah software yang dibuat telah sesuai dengan desainnya dan masih terdapat kesalahan atau tidak.
·         Operasi dan perawatan
Tahap terakhir dalam model waterfall. Software yang sudah jadi dijalankan serta dilakukan pemeliharaan. Termasuk dalam memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.
b.      Prototyping Model
Proses yang memungkinkan developer membuat model software. Metode ini baik digunakan apabila client tidak bisa memberikan informasi yang maksimal mengenai kebutuhan yang diinginkan. Seorang customer  sulit menentukan inut yang terperinci, proses yang diinginkan dan output yang diharapkan hal tersebut menyebabkan developer tidak yakin dengan efisiensi algoritma yang dibuat, sehingga sulit dalam menyesuaikan sistem operasi serta interaksi manusia dan mesin yang harus diambil.
 Tahapan-tahapan dalam model prototyping  antara lain :
·         Pengumpulan kebutuhan
Developer dan klien bertemu dahulu untuk menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang dibutuhkan selanjutnya.
·         Perancangan
Rancangan mewakili semua aspek software yang diketahui, dan menjadi dasar pembuatan prototype.
·         Mengodekan sistem
Prototyping yang sudah disepakati, diterjemahkan ke dalam bahasa pemrograman yang sesuai.
·         Pengujian sistem
Jika software sudah siap dipakai, maka harus dites terlebih dahulu sebeum digunakan. Pengujian dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dan lain-lain.
·         Evaluasi sitem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sesuai dengan yang diharapkan, jika sudah maka lanjut pada tahap berikutnya dan jika belum maka mengulangi langkah yang sebelumnya.
·         Implementasi sistem
Software yang telah diuji dan diterima pelanggan siap untuk digunakan.
c.       Rapid Application Development (RAD)
RAD merupakan model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari).
Tahapan-tahapan dalam model RAD antara lain :
·         Business modeling
Berisi tentang informasi apa yang mengendalikan proses bisnis, informasi yang dimunculkan, siapa yang memunculkan, ke mana informasi pergi, dan siapa yang memrosesnya.
·         Data modeling
Bagian dari fase Business modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisinis tersebut.
·         Process modeling
Fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi fungsi bisinis.
·         Application generation
Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang ada atau menciptakan komponen yang bias dipakai lagi.
·         Testing and turnover
Mengurangi keseluruhan waktu pengujian. Komponen baru harus diuji dan semua interface harus dilatih secara penuh.
d.      Spiral Model
Model yang menitikberatkan pada pembuatan prototype dan manajemen resiko yang sangat fleksibel jika dibandingkan dengan model waterfall.
Tahapan-tahapan dalam model spiral antara lain :
·         Customer communication
Komunikasi antara pengembang dengan pelanggan.
·         Planning
Penentuan tujuan, alternative dan batasan.
·         Risk analysis
Analisa alternative dan identifikasi atau pemecahan resiko.
·         Engineering
Pengembangan level berikutnya dari produk.
·         Construction and release
Testing, instalasi dan menyediakan support termasuk dengan training pada user dan pembuatan dokumentasi.
·         Customer evaluation
Penilaian terhadap hasil engineering.
e.      Iterative Model
Model iterative merupakan analisis tiap-tiap produk, perancangan dan kebutuhan dimodifikasi terus-menerus melalui serangkaian iterasi untuk menyediakan sebuah sistem kepada pengguna yang mengevolusi kebutuhan pelanggan dengan rancangan yang telah dikembangkan berdasarkan umpan balik (feedback) dan pembelajaran (learning).  
Tahapan-tahapan dalam model iteratif antara lain :
·         Analisis domain
·         Definisi kebutuhan
·         Arsitektur perangkat lunak
·         Penilaia resiko
·         Prototype
·         Pengembangan lingkungan dan rangkaian pengujian (test suite)
·         Integrasi dengan iterasi yang sebelumnya
·         Pelepasan iterasi
f.        Object Oriented Programming Model (OOP Model)
Pemrograman berorientasi objek dilakukan berdasarkan objek, dengan sekumpulan data yang ditetapkan dan sekumpulan operasi-operasi (metode) yang dapat dilaksanakan dalam data tersebut. Pendekatan berorientasi objek telah menjadi sebuah dasar utama dari rekayasa perangkat lunak (software engineering). 
Tahapan-tahapan dalam model OOP antara lain :
·         Tahap analisis
Tahap ini berpusat pada perolehan dan penyajian kebutuhan-kebutuhan pelangga dengan cara yang singkat, untuk menggambarkan sebuah sistem penting yang mewakili kebutuhan-kebutuhan pengguna yang kurang diperhatikan dengan platform implementasi (hardware maupun software) yang telah dikembangkan.
·         Tahap perancangan
Melibatkan perubahan sistem penting sehingga sistem dapat diterapkan pada sekumpulan hardware dan software yang diberikan. Kelas-kelas penting dan kelas-kelas inkarnasi digabung dan diperhalus ke dalam hierarki kelas pengembangan.
·         Tahap implementasi
Mengambil kelas-kelas yang ditetapkan untuk penyelesaian.
2.      Perangkat lunak
a.      Karakteristik perangkat lunak
·         Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik.
·         Perangkat lunak tidak pernah usang
·         Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada
·         Komponen perangkat lunak dibangun dengan bahasa pemrograman yang memiliki kosakata yang terbatas, sebuah tata bahasa yang dibatasi secara eksplisit, serta aturan-aturan syntax dan semantic yang dibangun dengan baik
·         Bahasa tingkat mesin merupakan perwakilan simbolik dari serangkaian instruksi CPU
·         Bahasa tingkat menengah memungkinkan pengembangan perangkat lunak serta program tidak tergantung pada mesin dan masih dipakai secara luasdi dalam industri
·         Kode mesin, bahasa assembly (tingkat mesin), bahasa pemrograman tingkat menengah, sering disebut tiga generasi bahasa komputer yang pertama
·         Bahasa generasi keempat, juga disebut bahasa nonprocedural, menggerakkan pengembang perangkat lunak untuk mengkhususkan pada detail prosedural
b.      Software engineering layer
Rekayasa perangkat lunak adalah teknologi berlapis. Berbagai lapisan yang menjadi dasar teknologi ini adalah lapisan fokus kualitas, lapisan proses, lapisan metode, dan lapisan alat.
·         Quality focus
Fokus pertama kali yang akan dibuat adalah membangun kualitas yang seperti apa, siapa sasarannya, aplikasi yang dibangun akan seperti apa, dan lain sebagainya.
·         Process
Dasar dari rekayasa perangkat lunak. Pada dasarnya, proses mendefinisikan kerangka kerja untuk pengiriman perangkat lunak yang tepat waktu.
·         Methods
Pada lapisan metode, metode implementasi yang sebenarnya dilakukan dengan bantuan analisis kebutuhan, perancangan, pengodean menggunakan konstruksi dan pengujian pemrograman yang diinginkan.
·         Tools
Alat perangkat lunak digunakan untuk membawa otomatisasi dalam proses pengembangan perangkat lunak.
3.      Jika saya terpilih menjadi seorang manajer proyek pada sebuah perusahaan yang akan mengembangkan aplikasi game edukasi dan saya ditugaskan untuk membuat game baru yang sebelumnya belum ada dan kebutuhan-kebutuhan dalam membangun perangkat lunak juga belum disiapkan maka saya akan membuat aplikasi game berbasis Android yang berjudul Mixing Medicine, yaitu game tentang dunia kesehatan (apoteker). Cara memainkannya cukup mudah, yaitu untuk player yang baru pertama kali memainkan game ini akan diminta untuk menginputkan nama terlebih dahulu, selanjutnya sistem akan menampilkan button features, option, game. Pada saat bermain, Players akan diberikan fitur 'cara bermain'. Sebelum bermain, player bisa memilih jenis penyakit yang diinginkan, sehingga secara otomatis sistem akan memberikan jenis racikan obat untuk dicampur agar terbentuk jenis obat baru yang dapat digunakan untuk mengobati pasien dengan penyakit yang telah diketahui tersebut. Ada batasan waktu saat bermain, dan player harus bisa menyelesaikan permainan dalam satu waktu agar dapat melanjutkan pada level yang lebih tinggi. Dan model proses yang akan saya gunakan adalah waterfall karena model proses waterfall merupakan model pengembangan sistem yang bersifat sistematis dan proses pengerjaannya pun dilakukan satu per satu (step by step) sehingga dapat meminimalisir adanya kesalahan, serta karena sifatnya yang terstruktur dapat membuat program yang dikerjakan selesai tepat pada waktu yang telah ditentukan. Berikut adalah rancangan pembuatan Game Mixing Medicine. 
a.      Rancangan context diagram

b.      Dekomposisi diagram

c.       DFD level 0 dan 1
DFD level 0

 DFD level 1


SUMBER REFERENSI :
Judul
Rekayasa Perangkat Lunak
Pengarang
Penerbit
Penerbit Andi
ISBN
9792913475, 9789792913477

Judul
Software Engineering
Pengarang
Penerbit
Deepublish, 2017
ISBN
6024532792, 9786024532796
Tebal
174 halaman

Judul
Software Engineering
Pengarang
Penerbit
Deepublish, 2017
ISBN
6024532792, 9786024532796
Tebal
174 halaman

Judul
Software Engineering
Pengarang
Penerbit
Technical Publications, 2009
ISBN
8184315732, 9788184315738
Tebal
304 halaman