Apa sih yang dimaksud dengan life cycle dalam rekayasa perangkat lunakatau sering disebut SDLC (Software Development Live Cycle)? Life cycle disini digunakan sebagai istilah bagaimana sebuat proses pembuatan dari sebuah software itu bekerja sampai aplikasi siap diproduksi. Tentunya ketika kalian membuat sebuah software pasti melewati suatu proses pengembangan seperti mengumpulkan informasi kebutuhan dari customer, mendapatkan tenaga ahli dalam sebuah proyek, merancang konsep sebuah produk, mengimplementasikannya menjadi sebuah produk nyata, kemudian melakukan sebuah pengujian tingkat kelayakan produk di pasar untuk melihat tingkat kehandalan sebuah produk dan lain-lain. Dari penjelasan tersebut dapat kita katakan dalam mengembangkan produk terdapat sebuah proses dan proses tersebut bisa dikatakan adalah sebuah life cycle, dan di dalam sebuah pembuatan software life cycle tersebut diolah oleh berbagai peran yang saling mendukung untuk mendapat produk yang layak, handal, dan diterima di pasar, dan semua itu dilakukan dalam proses rekayasa perangkat lunak. Life cycle rekayasa perangkat lunak sebenarnya hanya terdiri dari 4 poin tahapan pengembangan yang sering terlibat dalam sebuah pengembangan produk yaitu :
Mengenal Rekayasa Kebutuhan
Mengenal rekayasa kebutuhan dari seorang project manager atau analis sistem tentu membutuhkan sebuah pengalaman nyata, untuk itu kita dahului dengan bagaimana cara mengenal rekayasa kebutuhan dan apa perbedaannya dengan rekayasa perangkat luna. Diagram diatas terdapat siklus dari rekayasa perangkat lunak dan rekayasa kebutuhan. Didalam software engineering sesuai dengan siklus terdapat banyak peran yang dilibatkan. Rekayasa kebutuhan atau bisa juga disebut dengan Requirement Engineering merupakan suatu bagian dari Rekayasa perangkat lunak, hanya saja dalam bagian ini lebih condong ke bagian planning dari siklus RPL. Dimana bahasan yang dijelaskan antara lain bagaimana membuat sebuah kebutuhan dari software agar bisa diterima oleh customer dalam sebuah proyek baik itu mulai dari tahapan awal sampe akhir proyek. Sehingga dalam menyusun sebuah proposal dari proyek pastikan memenuhi unsur kebutuhan dari customer dan dapat menarik untuk digunakan oleh customer mulai dari media promosi, penyusunan SRS dokumen, kejelasan proposal dan kejelasan perkembangan progress dari suatu proyek. Dan dalam tahapan ini kita belajar bagaimana menjadi seorang project manager atau analis sistem yang baik dalam sebuah proyek. Adapun tahapan dari sebuah rekayasa kebutuhan antara lain :
Pengenalan Webserver
Mungkin ada beberapa dari anda yang sudah mengenal cara menggunakan dan mengenal webserver, tapi ada juga beberapa yang belum menganal apa itu webserver. Webserver pada dasarnya adalah sebuah mesin virtual yang digunakan untuk menjalankan sebuah bahasa pemrograman web, seperti PHP, Javascript atau Python. Dan webserver ini biasanya dijalankan dalam sebuah aplikasi yang digunakan untuk membaca perintah-perintah source code yang dibuat oleh programmer. Dan dalam bahasan kali aplikasi webserver yang akan digunakan adalah XAMPP, dan saya menganggap proses instalasi XAMPP sudah kalian lakukan, karena instalasi aplikasi sangat mudah dilakukan, dan silahkan download aplikasi XAMPP. Dan perlu diperhatikan kembali aplikasi ini didalamnya sudah terdapat beberapa aplikasi yang terintegrasi untuk digunakan sebagai webserver seperti apache untuk mengeksekusi perintah bahasa pemrograman PHP, Mysql atau mariaDB sebagai DBMS (Database Management System) untuk mengolah data-data yang akan dibangun dalam sebuah aplikasi seperti proses insert, update, delete maupaun view data. Meskipun sebenarnya masih banyak webserver lain seperti nodejs yang berjalan dalam port 8080 untuk mengeksekusi perintah javascript. Sedangkan pada apache, default port yan digunakan dari webserver adalah 80. Dan kalian bisa melihat port yang digunakan dalam webserver pada bagian netstat pada XAMPP seperti yang terlihat pada gambar di bawah
Tingkat Ketelitian (Fidelity Level) dari Wireframe
“Fidelity Level atau Tingkat Ketelitian dalam Wireframe dipengaruhi oleh tingkat kemampuan desainer baik dalam hal menggambar maupun kemampuan source code.” Dalam membuat sebuah wireframe selain penggunaan media, kejelasan sebuah wireframe juga ditentukan dari penggunaan warna, komponen, gambar maupun video. Meskipun wireframe dibuat dengan menggunakan software, belum tentau wireframe tersebut lebih baik dibandingkan yang menggunakan sketsa, paper cut-out, ataun UXpin. Karena tingkat ketelitian sebuah wireframe juga semakin memperjelas fungsi-fungsi yang terdapat dalam sebuah aplikasi. Adapun tingkat ketelitian dari sebuah software diantarannya :
Media dan Tools Pembuatan Wireframe
Sebelum menginjak pembahasan media dan tools pada wireframe terlebih dahulu perlu membahasa siklus desain User Interface (UI). Desain user interface dalam rekayasa perangkat lunak adalah bagian dari tahap desain dari empat siklus secara umum dari rekayasa perangkat lunak. Di dalam proses pengembangan interface dari sebuah aplikais terdapat 4 tahapan yaitu : Interface analysis dan modelling. Pada tahapan ini seorang desainer memodelkan alur kerja dari sebuah user interface dalam sebauh model, bisa menggunakan workflow baik task flow atau user flow dari sebuah interface yang dibuat berdasarkan konsep use case yang dibuat sebelumnya Inteface design. Pada tahapan ini seorang desain UI bertugas membuat sebuah sketsa dari interface yang sudah dimodelkan melalui workflow yang telah dibuat dan membuat gambaran kasar dari inteface bisa melalui sketsa pensil, software, ataupun presentasi. Dan konsep desain ini lebih dikenal denagn nama wireframe atau blueprint dari sebuah aplikasi. Interface contruction. Pada tahapan ini desainer sudah mulai melakukan implemetansi UI yang sebelumnya masih dalam bentuk / konsep wireframe, kemudian menerapkannya dalam sebuah sorce code berupa tampilan dari fungsi-fungsi yang telah dibuat sebelumnya berdasarkan work flow , use case dan data flow. Inteface validation. Dalam tahapan ini dilakukan analisa terhadap keseluruhan interface yang sudah diimplementasikan apakah sudah sesuai dengan model yang sudah dibuat sebelumnya. Jika ada beberapa interface yang tidak sesuai dengan model yang telah dibuat maka bisa dilanjutkan kembali ke tahapan analisis dan modeling.
3 Langkah dalam Requirement Engineering
Dalam menyusun Software Requirement Specification sebagai salah satu dokumen yang harus dikuasai oleh seorang Requirement Engineer atau Analyst system, mereka dituntut untuk mampu memahami tentang tipe-tipe requirement, tahapan requirement dan model-model diagram yang bisa digunakan dalam mendukung suatu requirement. Dan dalam RE dibahas terdapat dalam pembahasan natural language, model RE, dan artifact RE, dimana ketiga fungsi dari natural language, model dan artifact dalam Requirement Engineering merupakan sebuah hal vital. Adapun yang akan dibahasa dalam materi kali ini adalah 3 tahapah dalam memahami Requirement Engineering. Natural Language Jangan menganggap natural language seperti bahasa keseharian kita kemudian dituangkan ke dalam sebuah deskripsi untuk ditulis kembali dalam sebuah dokumen yang diceritakan secara lebar, dan ini bukanlah natural langauge. Jika menganggap natural language dalam sebuah requirement engineering adalah hal ini sangat salah kaprah. Karena dalam RE, natural language digunakan untuk mempermudah komunikasi yang diberikan oleh analis kepada seorang user, sehingga dengan sekali lihat seorang user mengetahui secara sekilas tentang aplikasi yang akan dibuat. Untuk memberikan kemudahan dalam memahami sebuah software yang dibuat maka NL bisa diterapkan dengan menggunakan sebauh model seperti penggunaan Use Case, Context Diagram, Data Flow Diagram atau Flowchart. Sebagai contoh penggunaan use case diagram berikut :
Tipe-Tipe Requirement Engineering (Fungsional dan Non Fungsional RE)
Terdapat 2 kebutuhan penting dalam yang berhubungan dengan tipe RE (Requirement Engineering), yaitu fungsional dan non fungsional RE, kedua tipe RE ini memiliki hubungan erat terhadap dukungan pada langkah proses requirement engineering baik itu fungsional maupun non fungsional RE. Functional Requirement Kebutuhan ini pada dasarnya adalah menggambarkan jalannya sebuah fitur dari aplikasi atau sistem mulai dari proses input sampai dengan output yang akan dihasilkan. Masih ingat dengan use case whatsapp sebelumnya yang pernah digambarkan pada bahasan sebelumnya. Perhatikan pada use case tersebut terdapat beberapa fitu yang ada dalam sistem whatsapp seperti chat, status, pilih kontak, video, voice call dan update status. Dan yang perlu diketahui fitur-fitur tersebut memiliki cara kerja sendiri-sendiri ketika user mengoperasikan fitur tersebut. Yang dimaksud functional requirement adalah proses fitur-fitur aplikasi dioperasikan oleh pengguna. Dan di dalam use case description seperti yang pernah dibahas sebelumnya bagian functional requirement terletaka pada isian pre-conditon, alternate condition, dan post condition. Sebagai contoh fitur panggilan suara memiliki functional requirement diantaranya :
Tipe-Tipe Requirement Engineering (Business, Real, State, User Requirement)
Tipe requirement yang akan dijelaskan berikut yaitu terkait business, state, real dan user requirement, tipe requirement tersebut, kegunaan masing-masing dari business, state, real dan user requirement memiliki konsep yang sama pada model, artifact dan natural language. Business Requirement Kebutuhan satu ini berkaitan dengan alur kerja suatu sistem dari awal sampai akhir yang menggambarkan sekilas tentang konsep kerja dari suatu sistem yang melibatkan stakeholder, process dan bisa juga melibatkan aliran data maupun media penyimpanan dalam suatu sistem. Pada dasarnya bisnis requirement digunakan untuk menjelaskan suatu konsep dasar dari keseluruhan sistem kepada stakeholder. Jika stakeholder menganggap di dalam gambaran business requirement terdapat suatu proses yang dianggap kurang atau tidak perlu dimunculkan maka seorang analis yang berperan sebagai didalam pembuatan dokumen wajib merubah gambaran tentang konsep bisnis dari sistem yang telah dirancang. Sistem yang dibuat dalam requirement ini bersifat dinamis sesuai kebutuhan organisasi atau konsep aplikasi. Biasanya business requirement digambarkan dalam bentuk diagrama seperti use case, context diagram, atau data flow diagram yang secara umum sering digunakan oleh seorang analis dalam mendeskripsikan sebuah sistem.
Peran Use Case pada Requirement Engineering
Elicitation Requirement Engineering Tahapan ini adalah tahapan yang berisikan gambar dari suatu aplikasi yang didapatkan oleh sistem analis pada customer. Dan sistem analis pada tahapan requirement engineering ini menggambarkannya dalam sebuah rancangan UML atau use case sehingga untuk mendokumentasikan dan menjelaskan kepada konsumen dan programmer lebih mudah, sehingga proses requirement engineering lebih maksimal dengan model use case. Contoh hasil gambaran dari seorang analis seperti yang digambarkan di atas. Dan dengan bantuan teks analis juga mendeskripsikan kebutuhan konsumen berdasarkan diskusi kedua belah pihak. Berdasarkan UML diagram di atas, siklus elicitation diantaranya berfugsi untuk mendeskripsikan secara umum mengenai kebutuhan-kebutuhan dalam mengembangkan software. Dan berdasarkan gambar tersebut dapat dijabarkan kebutuhan yang diperlukan dalam mengembangkan aplikasi :
Software Requirement pada Android Studio
Pada artikel sebelumnya sudah dibahas mengenai environment requirement dan interface requirement dalam pengembangan aplikasi smartphone menggunakan android studio. Dan selanjutnya pada bagian ini akan dibahas software requirement pada android studio. Dan yang harus diperhatikan, requirement pada environment berbeda dengan software requirement pada android studio. Pada dasarnya software requirement disini kebutuhan tambahan dari aplikasi untuk terus bertahan hidup sedangkan pada evironment requirement lebih kepada kebutuhan dasar, dimana jika tidak ada hal tersebut dalam waktu seketika sebuah software tidak bisa dijalankan atau tidak bisa diinstall. Namun pada sisi RE ini sebuah aplikasi masih bisa berjalan dan diinstall hanya saja tidak bisa digunakan untuk mengembangkan sebuah aplikasi karena masih memerlukan beberapa pendukung sehingga aplikasi android studion bisa berjalan dengan baik. Adapaun software requirement yang dibutuhkan pada sebuah android studio.