Minggu, 09 Februari 2014

Pengembangan Perangkat Lunak

Kali ini saya ingin menulis mengenai pengembangan perangkat lunak.
Perangkat lunak itu apa???
Perangkat lunak itu adalah software yang digunakan untuk membantu kita dalam menyelesaikan tugas kita.
Untuk bisa membuat sebuah software kita harus memiliki data sebanyak-banyaknya. Ini akan membantu kita dalam menganalisis data yang nantinya akan dikembangkan menjadi software. Jika sudah memiliki data yang cukup, maka akan mudah membuat alur model bisnisnya.
Membuat model bisnis itu tidak mudah, karena tidak semua alur kegiatan kerja dapat dikatakan sebagai model bisnis. Alur kegiatan kerja berasal dari entitas-entitas yang ada dalam data, yang kemudian menjelaskan hubungan antar entitas tersebut. Adanya proses input, output, dan goal pada entitas lebih memudahkan kita untuk mengerjakan tahap selanjutnya.
Karena tahap selanjutnya itu penggambaran ERD(Entity Relationship Diagram).
Menggambar ERD itu mudah, namun terkadang kita hanya bingung dengan data yang ada. Mengapa saya bilang menggambar ERD itu mudah..., karena hanya memakai beberapa simbol, yaitu:


Ketiga simbol di atas adalah simbol yang paling sering digunakan untuk menggambar ERD. Persegi panjang untuk menunjukkan entitas, oval untuk menunjukkan artribut, Belah ketupat untuk menunjukkan relasi.
Penggambaran ERD ini untuk memudahkan penjelasan dari model bisnis.
Model fungsi ini agak ribet karena setiap entitas memiliki input, proses, output. Entitas bisa menjadi sebuah inputan, dan entitas juga bisa menjadi sebuah output.

Tahap selanjutnya......
Pembuatan DFD(Data Flow Diagram)
Untuk pembuatan DFD ini merupakan lanjutan dari model fungsi diatas. Pembuatan DFD dimulai dari function partitioning, DFD level 0, DFD level 1, DFD level 2, dst. Dimana setiap proses yang ada itu berurutan.
DFD level 0 sampai DFD level 2 atau seterusnya(tergantung function partitioning berhenti di level berapa), hanya menggambarkan kembali model fungsi yang telah dibuat. Tetapi pastikan apa yang ad di model fungsi harus tetap sama dengan penggambaran di DFD level dan jumlah yang diinput harus sama dengan jumlah yang dioutput. Data yang dihasilkan harus disimpan di data store.
Tahap selanjutnya......
Pembuatan Behavior Model
Pada model behavior ini, dimana proses yang sudah ada sebelumnya dibuat menjadi lebih spesifik. Untuk membuat proses terlihat lebih spesifik, maka kamu bisa menggambarkannya dalam bentuk flowchart yang didalamnya terdapat input, proses, dan output.
Tahap terakhir yaitu User Interface Design
Jika kamu bisa menyelesaikan tahapan-tahapan diatas maka kamu sudah hampir membuat sebuah software. Karena kamu tinggal mengimplementasikan ke dalam suatu program atau memberikan ke programer. Jika pengerjaan tersebut dilakukan dengan benar dan jelas maka tidak akan susah untuk membuat programnya.
Tapi perlu di ingat untuk membuat tampilan programnya juga. Seperti tampilan untuk menginput data, dimana tampilannya mudah dimengerti oleh user dan tampilan output yang di hasilkan bisa berupa juga laporan. Tampilan input haruslah memudahkan user dalam menginput data jangan sampai membuat user harus mengingat semua data yang telah diinput. Sedangkan untuk tampilan output harus pula dibuat semudah mungkin agar user bisa memahami outputnya.
Dibuat pula interaksi antara user dengan komputer seperti konfirmasi ulang penginputan data, konfirmsi sebelum menghapus data. Tampilan program yang dibuat harus konsisten karena lebih memudahkan user dalam mengoperasikannya.
Sekian yang dapat saya sampaikan...
Semoga ini dapat bermanfaat bagi kalian yaa...^_^


Refleksi Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak...
Awalnya, saya merasa kalau mata kuliah ini sangat sulit untuk dimengerti.
Namun, setelah mengikuti selama satu semester ini saya mulai memahami beberapa langkah-langkah yang penting dalam membuat suatu model. Untuk mengerjakan suatu model diperlukan data-data yang lengkap. Data-data itulah yang bisa membantu kita untuk mengerjakan langkah selanjutnya. Data kemudian di analisis dan dibuat dalam suatu proses. Proses itu yang nantinya akan terus dikembangkan sampai menjadi sebuah hasil yang bisa dimengerti dalam pembuatan programnya.
Hal inilah yang membuat proses pengerjaan datanya pun tidak boleh dikerjakan secara asal-asalan apalagi kalau sampai mengarang. Pengerjaan ini selalu berurutan jadi jika dimana awalannya sudah salah maka yang lain akan salah. Jika dikerjakan dengan baik dan bisa dimengerti (sewaktu pembuatan program) maka itu akan memudahkan kita dalam menyelesaikan program. Pembuatan program juga harus memperhatikan tampilan yang akan muncul di hadapan user. Kita harus memperhatikan interaksi yang terjadi antara user dengan komputer.
Proses belajar mengajar yang diterapkan juga menyenangkan karena dibuat dalam sebuah kelompok dimana kita dapat saling membantu(teman yang mengerti membantu teman kelompok yang belum mengerti). Beberapa tugas dikerjakan secara berkelompok, hasil tugas itu di pajang di dalam kelas dan dibuat seperti pameran. Hanya satu orang yang menjelaskan hasil kerja kelompok, dan beberapa anggota lain mengunjungi tempat yang berbeda. Ini dapat membuat kita lebih aktif dalam bertanya.

Materi yang diberikan oleh dosen juga dapat dipahami karena cara penyampaiannya sesuai dengan kehidupan sehari-hari dan adanya contoh-contoh di dalamnya. Dan lebih senangnya lagi final ditiadakan, kita hanya diberikan tugas. Tapi menurut saya itu memiliki keuntungan dan kerugian masing-masing, tergantung bagaimana kita menyikapinya.

Perbedaan incremental, prototyping, dan waterfall pada game simse

Awal memainkan game ini sangat sulit karena saya masih belum mengerti bagaimana itu proses incremental, proses prototyping, dan proses waterfall. Sehingga score yang biasa saya dapat itu rendah.
Namun, setelah saya memainkan berulang-ulang saya baru memahami cara memainkannya dan saya berhasil mendapat score terbaik saya.
Untuk incremental model, ada pembagian tugas yang saya berikan ke masing-masing pekerja sesuai dengan kemampuan yang dimiliki. Keunikan dari model ini ada harga yang harus dibayar, dan hanya bisa dibayar dengan waktu yang kita punya. Tapi, karena keunikan model ini saya bisa mendapat score tertinggi pada model ini.
Untuk prototyping model, juga memiliki keunikan tersendiri. Karena proses pengerjaan yang dilakukan itu berkelompok, jadi tidak ada pembagian tugas seperti incremental model. Adanya interaksi dengan customer juga merupakan keunikan tersendiri untuk prototyping model.
Untuk waterfall model, juga membutuhkan pembagian kerja sesuai dengan kemampuan masing-masing seperti incremental model. Keunikan dari model ini yaitu adanya gaji yang bisa kita berikan kepada para pekerja dan bebas untuk menentukan jumlah nominalnya. Penggunaan tool juga merupakan keunikan dari waterfall. Tools ini untuk membantu pekerja dalam menyelesaikan tugasnya.
Dari ketiga model ini, saya paling senang memainkan incremental model sebab incremental model mudah untuk dimainkan.
Game ini sangat bermanfaat untuk kalian semua, game ini mengajarkan kita untuk bagaimana menempatkan orang-orang di posisi yang tepat sesuai dengan kemampuan mereka. Mengajarkan kita untuk mengatur waktu dan uang yang ada.
Saran saya, kalian jangan pernah hanya melihat game dari tampilan saja, tapi lihat juga manfaat yang diberikan dari game tersebut.
Jadi, bagi kalian yang penasaran dengan game ini kalian bisa download di http://www.ics.uci.edu/~emilyo/SimSE/


SimSE Rapid Prototyping Game

Pada kesempatan kali ini saya akan bercerita tentang SimSERapidPrototypingGame.
Pada game ini saya bisa mendapat score 90 dengan waktu 828.
Sebenarnya, game ini lebih mudah dibandingkan dengan game lain karena kita tidak perlu memperhatikan kelebihan masing-masing orang. Dimana kelebihan masing-masing orang kita gunakan untuk mempermudah dalam menyelesaikan tugas yang ada.
Game ini, melibatkan konsumen selama proses pengerjaannya.
Pertama-tama, saya menggunakan java untuk prototyping language dan implementation langunge. Lalu para pekerja mengadakan pertemuan dengan konsumen untuk membicarakan mengenai software yang akan di buat(pilih outline requirements with customer). Pada bagian requirements document ada bagian yang nilainya bertambah. Dan akan muncul sebuah informasi tentang pertemuan yang telah dilakukan.
Setelah itu, para pekerja akan melakukan create requirements specification. Ini juga akan mengubah nilai pada bagian requirements documents. Akan muncul pula informasi tentang hasil dari create requirements specification.
Lakukan develop prototype untuk mengembalikan hasil create requirements specification ke konsumen. Konsumen akan memberikan respon, dan hentikan semua kegiatan pekerja. Pilih have customer evaluate prototype, ini akan membuat nilai pada prototype berubah dan pastikan percent evaluated bernilai 100.  Usahakan percent discovered requirements prototyped bernilai sekitar 80-an keatas (karena akan berpengaruh pada score yang akan didapat). Bila percent discovered requirements prototyped belum mendapat nilai sekitar 80-an keatas, maka proses develop prototype dan have customer evaluate prototype bisa diulangi minimal sebanyak 3 kali.
Pilih kembali create requirements specification untuk membuat percent complete pada requirements documents bernilai 100.
Lanjutkan ke pembuatan design system. Dimana semua pekerja bersama-sama mendesign dan usahakan percent complete pada design complete bernilai 100.
Terakhir ke pembuatan implement system. Dimana semua pekerja bersama-sama melakukan implement dan usahakan percent complete pada code bernilai 100.
Kirim hasil product ke customer.



Jika kalian penasaran dengan game ini, kalian bisa mendownload di:



SimSE Waterfall Game

Kali ini saya akan membahas mengenai SimSEWaterfallGame
Awal memainkan game ini saya merasa kesulitan, namun setelah mecoba beberapa kali akhirnya saya bisa menyelesaikan game ini dengan baik.
Dalam game ini, score yang saya dapatkan adalah 95 dengan waktu 1248.
Cara memainkan game ini sebenarnya simple hanya saja bagaimana cara kita mengatur pembagian kerja orang-orang di dalam. Kita harus mengetahui kelebihan masing-masing supaya kita bisa memilih pekerjaan apa yang cocok untuk mereka kerjakan.
Pembagian kerja yang saya lakukan berdasarkan pengalaman kerja masing-masing. Andre untuk melakukan RequirementsExperience, DesignExperince, dan TestingExperince. Anita untuk melakukan RequirementsExperience, dan DesignExperince. Calvin RequirementsExperience, dan CodingExperince. Emily untuk DesignExperince, dan CodingExperience. Pedro untuk RequirementsExperience, dan TestingExperince. Sedangkan untuk Mimi dan Roger saya tidak perkerjakan atau dipecat, karena menurut saya mereka masih belum memiliki kelebihan yang menonjol dan disamping itu pula mereka masih dapat dikatakan sebagai pemula. Jadi, untuk mempermudah pekerjaan yang akan dikerjakan, saya memberhentikan mereka.
Pada saat RequirementsExperience, yang bekerja hanya Andre, Anita, Calvin, dan Pedro. Jadi saya menambah gaji mereka yang akan bekerja, supaya mereka labih giat dalam mengerjakan tugasnya. Tidak lupa juga memberikan alat bantu untuk membantu mereka, sehingga pekerjaan cepat selesai.
Untuk menambahkan alat bantu, pilih salah satu orang yang akan bekerja, klik kanan lalu pilih purchase tool(s), dan pilih alat bantu yang sesuai dengan pekerjaan yang akan dikerjakan. Dan untuk yang tidak bekerja bisa dikurangi gajinya. Lakukan create requirements document, review requirement documents, dan correct the requirements document.
Pastikan hasil yang didapat bernilai 100.
Jika sudah maka kita bisa dapat mengerjakan tahap DesignExperince, CodingExperience, dan TestingExperince dengan langkah-langkah seperti diatas.
Kirim hasil product ke customer.
Usahakan jangan sampai melewati batas waktu yang telah ditetapkan karena itu bisa mempengaruhi score yang akan diperoleh.



Jika kalian penasaran dengan game ini, kalian bisa mendownload di:
http://www.ics.uci.edu/~emilyo/SimSE/



SimSE Incremental Game

Hai semuanya.....
Kali ini saya akan bercerita tentang SimSE.
Pasti kalian bertanya, SimSE itu apa sih?
SimSE itu adalah permainan yang berhubungan dengan rekayasa perangkat lunak.
Pertama-tama saya memainkan SimSEIncrementalGame. Saya berhasil mendapat score 100.0 dengan waktu 164. Untuk bisa mendapat score seperti saya, pertama-tama kita melihat kelebihan masing-masing dan dari kelebihan itulah kita bisa memberikan tugas.
Saya memberikan tugas kepada Amy yaitu untuk melakukan implement dan evolve code. Bob untuk mengerjakan design, integrate. Karl untuk melakukan requirements, difficulty analysis, risk analysis. Sedangkan Lola untuk membantu pekerjaan Karl, karena menurut saya Lola tidak memiliki kelebihan yang menonjol.
Namun, yang dikerjakan terlebih dahulu yaitu melakukan requirement, mendesign, serta melakukan implement. Pengerjaan modul ini sesuai dengan pembagian tugas diatas dan dikerjakan mulai dari modul 1 sampai modul 4.
 Jika sudah selesai, pastikan hasil yang didapat bernilai 100.  Karena pengerjaan yang dilakukan Karl dan Lola itu cepat, maka mereka bisa melanjutkan tugas mereka untuk melakukan difficulty analysis dan risk analysis. Pengerjaan modul ini mulai dari modul 1 sampai modul 4. Dan untuk mengetahui hasil dari difficulty analysis dan risk analysis, kita harus membayar dengan waktu yang kita punya. Tapi jangan khawatir kita hanya membayar sebanyak “1 Ticks” untuk masing-masing jawaban. Jika Bob sudah selesai mengerjakan tugasnya, maka Bob juga bisa mengerjakan integrate. Begitu pula dengan Amy, jika sudah selesai dengan tugasnya, dia juga bisa mengerjakan evolve code.
Kirim hasil product ke customer.
Usahakan waktu yang digunakan tidak melebihi dari ketentuan yang telah ditetapkan. Karena waktu juga dapat mempengaruhi nilai yang akan kita dapat nantinya.


Bagi kalian yang penasaran dengan SimSEIncrementalGame, kalian bisa mengunjungi:            http://www.ics.uci.edu/~emilyo/SimSE/
Semoga kalian bisa memainkan game ini dengan mendapat score yang terbaik pula... ^_^