Paper VII – Software Process Model ................................................................................................... 1
Software Process Model Sevendi Eldrige Rifki Poluan, Alexander Reski Rantepadang E-Mail Address (
[email protected],
[email protected]) Teknik Informatika, Fakultas Ilmu Komputer, Universitas Klabat Abstrak – Sistem komputer terdiri atas tiga elemen utama, yaitu Hardware, Software dan Brainware [1]. Penekanan utama pada paper ini adalah pemanfaatan Software. Software adalah sekumpulan data elektronik yang dikembangankan bersamaan dengan munculnya hardware komputer sekitar permulaan tahun 1920-an yang di dalamnya berisi aturan-aturan atau instruksi-instruksi yang memiki tujuan utama dalam mengoperasikan dan menjalankan satu atau lebih perintah di dalam komputer [2]. Mengikuti tren perkembangan teknologi yang terus mengalami perubahan, ruang lingkup penggunaan software saat ini sudah merambak semua sektor teknologi yang ada saat ini. Dalam pengembangannya, sebuah software seperti halnya sebuah rumah efisiensinya terletak pada terpenuhinya semua kebutuhan-kebutuhan yang dibutuhkan oleh pemilikknya baik itu dilihat dari fungsinya, maupun kenyamanan pemilikknya dalam penggunaan semua resources yang ada di dalamnya. Sebuah software tidaklah dilihat berdasarkan tingkat kepuasan penggunanya tetapi bagaimana tingkatan pencapaian kebutuhan penggunanya dalam menyelesaikan berbagai permasalahan yang ada. Dan untuk mendapatkan hal itu, maka sebuah software dalam pengembangannya membutuhkan cara dan proses yang tepat. Software proces model adalah proses rangkaian pengembangan sebuah perangkat lunak yang didasari atas standar pertimbanganpertimbangan tertentu yang memungkinkan sebuah software dapat mencapai kesempurnaan untuk memenuhi kebutuhan-kebutuhan pengguna dalam menyelesaikan permasalahan-permasalahannya. Kata kunci: Developer, Software, Software Process Model.
I.
Pendahuluan
Software Process Model adalah merupakan standarisasi yang ditetapkan untuk membangun suatu perangkat lunak. Di dalam sebuah komputer terdapat sejumlah komponenkomponen hardware aktif yang saling bekerja sama satu dengan yang lainnya untuk menghidupkan komputer. Ketika ada satu dari sejumlah komponen hardware yang ada di dalam komputer memiliki masalah atau mengalami kerusakan, maka secara sistematis komputer tidak akan berjalan sebagaimana mestinya. Kecatatan pada salah satu dari sejumlah komponen hardware di dalam komputer bisa membawah sejumlah perubahan besar pada komputer tersebut. Jadi untuk memastikan sebuah komputer dapat berjalan sebagaimana mestinya, maka diperlukan adanya saling kerja sama. Kerja sama bukan hanya ada di kehidupan manusia saja, tetapi pada komponen-komponen yang ada pada komputer pun membutuhakan adanya saling kerja sama untuk mensukseskan pengeoperasian komputer. Dalam mebangun sebuah software, Software Process Model memberikan suatu standarisasi bagi developer bagaimana proses pembuatan software itu dimulai dan bagaimana pembuatan software itu harus diproses. Setiap proses-proses yang diproses oleh developer mengantar deveoloper untuk melakukan proses-proses yang lainnya.
Proses desain, konstruksi dan implementasi tidak akan terlaksana jika proses penganalisan permasalahan tida ada, dan begitu juga sebaliknya. Jadi, setiap tahap proses dalam perancangan sebuah software mengantar developer pada tahap-tahap proses selanjutnya, setiap informasi-informasi yang didapatkan pada tahap-tahap sebelumnya akan menentukan informasi-infromasi yang akan diperoleh develoer pada tahap-tahap selanjutnya, hal ini membuktikan bahwa keterkaitan setiap tahap proses dalam membuat sebuah software itu memiliki hubungan yang sangat erat. Setiap software dalam perancangannya memiliki proses perancangan yang berbedabeda berdasarkan jenis dan penerapannya [3]. Hal ini menginformasikan kepada developer bahwa adanya perbedaan dalam setiap tahap proses perancangan setiap software.
II. Kerangka Teori Penentuan terbentukknya sebuah software yang baik adalah banyaknya informasi-informasi yang diperoleh developer untuk menolong developer membangun software yang tepat dan efisien. Mendapatkan informasi adalah salah satu tahap inti yang harus dilakukan oleh developer sebelum melakukan perancangan dan pengkodean. Tahap itu adalah tahap
Paper VII – Software Process Model ................................................................................................... 2
fondasi bagi para developer untuk melakukan pengembangan. Perancangan sebuah software ditentukan berdasarkan jenis software yang akan dibangun [3]. Perbedaan tahapan pembangunan software itu sendiri biasanya disebut dengan Software Proccess Model. Software Process Model memiliki sejumlah patokan proses model utama yang biasanya dijadikan dasar dalam pembangunan sebuah software. Developer dalam membangun sebuah software biasanya dilatar belakangi atas adanya permasalahan-permasalahan sistematis. Yang
Gambar 1 Tahap Penyelesaian Masalah [3] dengaan permasalahan tersebut, menjadi bahan pertimbangan bagi developer untuk dianalisa demi mendapatkan solusi yang tepat. Seperti pada Gambar 1, mengambarkan proses yang dilakukan oleh developer dari tahap pendefinisian Status Quo (permasalahan yang ada saat ini) yang mendefinisikan permasalahan-permasalahan sampai pada pendefinisan solusi-solusi yang tepat untuk diintegrasikan ke dalam bentuk sistem sebagai hasil penyampaian penganalisaan developer terhadap permasalahan yang ada.
A. Linear Sequential Model Linear Sequential Model sering disebut dengan classic life cycle atau biasanya dikenal dengan waterfall model [4]. Proses ini adalah proses yang memiliki sifat sistematis sistem penerapannya, dimana setiap tahap yang dilakukan harus bisa dipastikan bahwa semua kebutuhan yang akan dilakukan sudah dipenuhi dengan sempurna (fixed) sehingga memungkinkan pada tahap selanjutnya tidak ada lagi sistem ulangan-ulangan untuk kembali pada tahap-tahap sebelumnya.
Gambar 2 Linear Sequential Model [3] Membangun sebuah software, tanggung jawab engineer adalah seorang engineer harus memiliki pemahaman dan pengertian yang dalam mengenai ruang lingkup informasiinformasi software yang akan dibangun. Baik dari segi fungsi, performa, interface, requirements dan semua informasi-informasi yang diperlukan untuk memungkinkan terbangunnya suatu software yang utuh. Karena pemahaman yang mendalam menjadi suatu modal utama bagi engineer dalam membangun sebuah software yang utuh. Pada Gambar 2 menggambarkan urutan tahap-tahap yang akan dilakukan oleh developer untuk membangun sebuah software. Yang dimulai dari tahap analisis sampai pada tahapa testing. 1) Software Requirements Analysis Tahap ini adalah tahap inti yang menentukan developer mendapatkan hasil bangunan software yang efisien. Seorang developer akan mengumpulkan sejumlah informasi penting sehubungan dengan software yang akan ia bangun. Informasi tersebut akan menjadi landasan bagi developer untuk mengerti dan memahami mendalam mengenai software yang akan ia bangun. 2) Design Software design adalah tahap yang dilakukan developer untuk melakukan perancangan terhadap sistem yang akan ia bangun. Biasanya desain terdiri atas empat tahap utama sebagao tajap dimana developer akan melakukan transalasi setiap requirements yang ia peroleh ke dalam bentuk perancangan-perancangan sebagai tahap sebelum ia melakuan pengkodean. Empat tahap tersebut yaitu perancangan struktur data, perancangan arsitektur, perancangan antar muka software, dan perancangan prosedural atau algoritma software. 3) Code Generation Hasil-hasil perancangan yang dirancang oleh developer akan
Paper VII – Software Process Model ................................................................................................... 3
ditranslasikannya ke dalam bentuk kode program yang akan memungkinkan mesin dijalankan dan dilakukan oleh komputer. 4) Testing Testing adalah tahap yang dilakukan untuk melakukan pengetesan terhadap software yang sudah dibangun untuk memastikan bahwa software tersebut sudah dibangun berdasarkan requirements yang diinginkan dan terpenuhi sesuai dengan kebutuhan hasil analisa developer terhadap pengguna. Salah satu yang menjadi kekurangan penerapan model ini adalah kesulitan bagi developer untuk mengakomodasikan perubahan-perubahan jika adanya perubahanperubahan yang harus dilakukan [5]. Proses ini biasanya cocok diterapkan pada perancanganperancangan sistem yang yang kebutuhankebutuhannya sudah terkumpul secara lengkap sehingga memungkinkan tidak akan dilakukannya perubahan-perubahan pada tahap-tahap yang sudah dilalui.
B. Prototyping Model Dalam prototyping model kadang kala developer sendiri tidak terlalu yakin dengan penerapan algoritma yang ia libatkan dalam pembuatan software [4]. Sehingga dengan proses ini dapat memungkinkan developer untuk melakukan perubahan-perubahan yang dibutuhkan untuk diubah oleh developer.
komputer untuk mengerti sistematika setiap requirements yang diharapkan untuk yang akan dilakukan oleh developer dalam mana ia melakukan pembangunan softwarenya nanti. Developer kemudian akan membuat perancangan secara cepat (sekilas) sistematika rancangan software yang akan dibangun. Di dasari denga konsep rancangan yang sudah dibangun oleh developer, proses pengkodean pun akan dilakukan oleh developer untuk menimplementasikan desain yang dirancang developer ke dalam bentuk software. Secara sistematis karena semua proses yang dilakukan dalam pebuatan software pada proses ini dilakukan dengan cepat, aka secara otomatis akan terdapat banyak kekurangankekurangan yang akan didapati di dalam setiap langkah proses yang dilakukan developer. Sehingga membutuhkan perulanganperulangan pengidentifikasian setiap tahap proses, mulai dari requirements sampai pada tahap pengkodean. Membuktikan bahwa proses interaksi antar developer dan costumer, dilakukan secara terus menerus untuk menemukan adanya kekurangan-kekurangan pada sistem yang harus diperbaiki. Proses ini secara berulang dilakukan terus-menerus sampai proses dimana pencapaian developer terhadap software yang akan dibangun secara utuh sudah memenuhi semua kebutuhankebutuhan custumer yang sebenarnya.
C. Rapid Application Development (RAD) Model Rapid Application Development (RAD) Model adalah merupakan proses pebangunan perangkat lunak yang incremental [6]. Model ini merupakan model yang mengadopsi proses model Linear Sequential yang memungkinkan software yang dibangun, dibangun desain dan dibangun dalam waktu yang cepat.
Gambar 3 Prototyping Model [4] Prototyping model dimulai dengan pengumpulan informasi-informasi berupa requirements oleh developer kepada pengguna tetapi requirements yang dikumpulkan oleh developer tidak serinci mungkin. Developer dan customer bertemu dan mendefinisikan tujuan yang akan dicapai secara keseluruhan mengenai software yang akan dibangun, mengidentifikasi secara keseluruhan apa yang dibutuhkan untuk dipenuhi dalam pembuatannya dan membuat perencanaan-perencanaan cepat (dadakan)
Gambar 4 RAD Model [3] Tahap yang digambarkan pada Gambar 4 diatas, memvisualisasikan proses yang
Paper VII – Software Process Model ................................................................................................... 4
dilakukan didalam RAD Model dimana secara sistematis, prosesnya dibagi atas beberapa modul yang penyelesaian waktunya diselesaikan hampir dalam waktu yang bersamaan sesuai berdasarkan batasan waktu yang sudah ditentukan. 1) Business Modelling Tahap ini adalah tahap dimana informasi dikelola oleh developer yang diuraikannya di dalam bentuk pertanyaanpertanyaan sebagai kebutuhan sistem. 2) Data Modelling Di dalam tahap ini berisi informasiinformasi yang sengaja disusun menjadi sekumpulan objek sebagai hasil analisa developer terhadap kebutuhan sistem. Sekumpulan objek tersebut kemudian akan dikelola oleh developer, menspesifikasikannya secara rinci setiap karakteristik yang dimiliki setiap objek sebagai hasil simpulan dari semua hasil analisa developer terhadap setiap objek yang dibentuk dengan maksud untuk mendapatkan informasi adanya hubunganhubungan yang dibentuk antar objek yang satu dengan objek yang lainnya. 3) Process Modelling Objek-objek data yang sudah didefinisikan digunakan sebagai landasan untuk mengimplementasikan setiap fungsifungsi pengoperasian software yang akan dibangun (adding, modifying, deleting, retrieving a data object [4]). 4) Application Generation RAD mengijinkan digunakannya kembali komponen-komponen program yang sudah ada ketimbang harus membuatnya dari awal. Dan kalaupun program tersebut dimungkinkan untuk dibuat kembali dari awal, maka pembuatannya sengaja dirancang untuk bisa digunakan kembali kapan pun program tersesbut diperlukan. 5) Testing and Turnover Program yang dibangun dengan RAD Model adalah program-program yang sengaja dibangun untuk bisa dipergunakan kembali dan secara otomatis programprogram tersebut sudah melewati tahap uji coba sebelumnya. Sehingga proses uji cobanya tidak lagi dilakukan secara keseluruhan, tetapi proses uji coba hanya dilakukan pada komponen-komponen baru yang dibangun oleh developer tetapi lain halnya dengan interfacenya, dimana tahap uji coba terhadap interface, dilakukan (diuji) secara menyeluruh.
Penerapan proses model RAD ini tidak cocok untuk diterapkan pada proses-proses penelitian dalam ukuran proyek yang besar. Karena bisa saja proyeknya tidak akan berjalan sebagaimana mestinya, melihat waktu yang ditentukan dan disepakati bersama bisa saja tidak terpenuhi.
D. Evolutionary Software Process Model Evolutionary Software Process Model adalah proses model yang mengandung prosesproses perulangan. Proses ini menghasilkan produk yang secara berkala terus dilakukan pembaharuan berdasarkan batasan-batasan waktu yang sudah ditentukan.
D.1 Incremental Model Incremental Model adalah proses pemodelan kombinasi antar elemen-elemen Linear Sequential Model dan Prototyping Model. Setiap jangka waktu tertentu, hasil produk ini secara berkala diperbaharui sehingga memungkinkan spesifikasi kebutuhankebutuhan pengguna akan fungsi, performa dan efisiensinya dipenuhi. Dengan adanya pembaharuan secara berkalah menginformasikan bahwa ketidakadanya perancangan kembali produk software yang akan dibangun, tetapi didasarkan atas software yang sudah ada dianalisa dan kemudian dijadikan bekal untuk pembangunan increment pembaharuannya.
Gambar 5 Incremental Model [4] Model ini tidak cocok untuk proyek yang memiliki kapasitas akses berukuran besar. Model ini cocok untuk digunakan sebagai dasar pemodelan dalam perancangan-perancangan pembuatan software yang sudah ada untuk dilakukan pengembangan. Cocok untuk proyekproyek pemrancangan pengembangan pembuatan sistem yang berukuran kecil.
Paper VII – Software Process Model ................................................................................................... 5
D.2 Spiral Model Spiral Model adalah proses pemodelan dalam melakukan perancangan software yang ditawarkan oleh Boehm [3]. Proses model ini adalah proses model evelusioner yang didasari atas dua proses model yang digabungkan menjadi satu proses model, yaitu Prototyping Model dengan konsep perulangannya dan Linear Sequential Model dengan pengontrolannya. Perulangan-perulangan yang
1)
2)
3)
Gambar 6 Spiral Model [4] dilakukan pada proses model ini adalah merupakan perulangan-perulangan setiap tahapan proses yang dilakukan developer sebagai perbaikan-perbaikan terdadap software yang akan dibangun untuk mendapakan hasil yang lebih baik. Sedangkan Waterfall dengan pengontrolannya adalah merupakan suatu dasar pemodelan pada Model Spiral untuk melakukan pengembangan atau pembuatan software berdasarkan alur proses yang tepat. Setiap tahapan yang dilakukan pada model Spiral dimungkinkan untuk dipertimbangkannya setiap resiko-resiko analisis sebagai dasar bagi developer untuk mendapatkan hasil yang maksimal. Di mana dimungkinkan apabila adanya kesalahan-kesalahan atau kekeliruankekeliruan karena tidak terpenuhinya kebutuhan pengguna, maka proses perbaikan akan dilakukan. Selama software yang dibangun developer belum dikatakan sempurna atau selesai, maka hubungan anta pengguna dan developer terus terbangun untuk mempermudah developer menemukan setiap pori-pori kemungkinaan tidak terpenuhinya kebutuhan-kebutuhan pengguna untuk dianalisa dan dipertimbangkan lebih lanjut dan melakukan diperbaiki. Gambar 6 Menggambarkan setiap langkah tahapan yang dilakukan pada proses model Spiral.
4)
5)
6)
Customer Communication Komunkasi adalah langkah awal suatu perencanaan dalam membangun sebuah software. Langkah dimana terjadinya pertemuann antar developer dan pengguna/customer untuk menemukan ruang lingkup tujuan pembuatan software secara umum yang didasarkan atas kebutuhan-kebutuhan dan requirements pengguna. Planning Tahap ini adalah tahap bagi developer untuk menyusun suatu sistematika perencanaan-perencanaan untuk melakukan penyelesaian software yang akan dibangun. Risk Analysis Mengidentifikasi setiap resiko-resiko yang diperoleh pada setiap proses tahapan pengembangan sebuah software. Engineering Engineering adalah tahap pembangunan sampel-sampel pemodelan software yang akan dibangun sebagai rancangan sementara bagaimana software tersebut akan bangun nantinya. Constructon and Release Tahapan ini meliputi tahapan untuk melakukan pembangunan software, pengetesan software, penginstalan software dan pembuatan manual dari software yang dibangun. Customer Evaluation Pada tahap ini adalah tahap bagi developer untuk mendapatkan feedback dari pengguna berdasarkan hasil bangunan software yang ia bangun.
Proses model Spiral membantu developer memahami dengan luas permasalahanpermasalahan software yang akan ia bangun, sebagai hasil analisanya terhadapa pengguna karena setiap kemajuan yang dicapai pada proses model ini diamati dengan baik oleh developer. Proses model ini cocok digunakan untuk perancangan dan pembangunan software untuk proyek yang besar.
E. Component-based Model
Development
Component-based Development Model berkaitan dengan teknologi yang berorientasi pada objek. Seperti halnya pemrograman berorientasi objek, komponen-komponen
Paper VII – Software Process Model ................................................................................................... 6
dibangun dalam bentuk kelas-kelas yang memliki ciri khas untuk bisa dipergunakan kembali. Kelas-kelas yang dibangun disimpan di dalam kelas library sehingga bisa dimanfaatkan oleh kelas-kelas lain untuk dipergunakan sesuai dengan kebutuhan [7]. Jadi penggunaan ini bisa membantu developer mempersingkat waktunya dalam melakukan pengembangan suatu software karena dengan model ini, para developer tidak lagi perlu untuk melakukan pengembangan kelas-kelas yang baru untuk menyokong kelas-kelas yang lain dalam mencapai kebutuhan pengguna tetapi hanya dengan menggunakan kelas-kelas atau modulmodul yang sudah ada. Component-based Devepment Model adalah suatu proses perancangan dan pembangunan suatu software dengan memanfaatkan komponen-komponen software yang sudah ada.
Gambar 7 Component-based Development Model [4] Pada Gambar 7, Component-based Development Model dibagi atas dua bagian utama yang terjadi secara paralel, yaitu software engineering dan domain engineering. 1) Domain engineering Domain engineering menciptakan model domain bagi software yang akan digunakan untuk menganalisa kebutuhankebutuhan pengguna yang akan dipenuhi. Mengidentifikasi, mengelompokkan, dan mengalokasikan komponen-komponen software yang akan dibangun sehingga bisa dipergunakan kembali pada sistem lain yang nantinya akan dibangun. 2) Software Engineering Software enginering adalah tahap dimana developer akan melakukan analisa terhadap setiap domain model yang sudah ditetapkan dan kemudian akan menentukan spesifikas sistem berdasarkan model struktur sistem yang ada sehingga bisa membantu proses pembangunan
software. Software yang dibangun, dibangun atas kerangka analisa dan perancangan sistem yang sudah ditetapkan oleh developer.
F. Extreme Programming Model Extreme Programming Model adalah proses model yang diciptakan oleh Kent Beck [4]. Model ini melibatkan pengguna secara langsung dalam pengembangan suatu software. Nilai-nilai penting yang diberikan oleh Extreme Programming Model adala : 1) Communication Komunikasi antar developer dan pengguna seringkali dipermasalahkan. Sehingga Extreme Programming dibangun untuk mengatasi hal ini. Extreme Programming membentuk pair programming atau pemrograman berpasangan. Penerapan ini dilakukan untuk mencegah terjadinya hal-hal yang tidak diinginkan. Seperti apabila terjadinya kecelakaan pada pihak developer yang satu sehingga data informasi software yang dibangun semuanya hilang, maka masih ada data yang lain pada pihak developer yang masih utuh. Modal utama pair programming adalah adanya kekompakan yang erat antar developer. 2) Simplicity Simplicity enekankan pada kesederhanaan dalam melakukan pengkodean. Pembuatan kode yang sederhan ditentukan atas ketepatan informasi yang diperoleh. 3) Feedback Setiap feedback ditanggapi dengan melakukan pengetesan. 4) Courage Keberanian yang tinggi meningkatkan efisiensi software yang akan dibangun. Setiap kesalahan-kesalahan atau kekeliruan-kekeliruan yang muncul langsung diambil alih dan ditanggapi untuk dilakukan perbaikan.
Paper VII – Software Process Model ................................................................................................... 7
Gambar 8 Extreme Programming [4]
III.
[2] Dena Setiawan (2013), “Sejarah Perkembangan
Kesimpulan
Software Process Model adalah proses pemodelan seorang developer untuk melakukan pengembangan dan pembangunan sebuah software yang didasarkan atas ukuran besar kecil proyek pembangunan atau pengembangan software yang akan dilaksanakan. Dengan Software Process Model dapat menjadi suatu standarisasi pendeskripsian informasi yang diperoleh developer atas pengguna/customer untuk diolah sehingga membentuk rancanganrancangan terstruktur yang membantu mempermudah developer dalam melakukan pembangunan software yang efektif dan efisien.
Daftar Pustaka [1] Noor Haryono, “Pengantar Informatika”, Ringkasan Meeri Kuliah, IlmuKomputer.com (2003).
[3] [4] [5] [6] [7]
Hardware, Software dan Internet [Online]”, Available: http://www.slideshare.net/tantripala/sejarahperkembanganhardwaresoftwaredaninternet Eldad Eilam, “Reversing : Secrets of Reverse Engineering”, Inidanapolis, Indiana : Wiley Publishing, Inc., 2005. Roger S. Pressman, “Software Engineering A Practitioneer’s Approach”, McGraw-Hill Higher Education, 5th Ed., USA:McGraw-Hill, 2001. Umi Proboyekti, “Software Proccess Model”, Bahan Ajar Perangkat Lunak. Sommerville, Ian, “Software Engineering”, 6th Ed., Addison Wesley, 2001. Eric Jendrock, Jennifer Ball, Debbie Carson, Ian Evans, Scott Fordin, Kim Haase, “The JavaTM EE 5 Tutorial”, For Sun Java System Application Server Platform Edition 9, USA:Sun Microsystem Inc., September 2006.
FORMAT MAKALAH ... 8