Suatu Perangkat Lunak menjadi kebutuhan manusia dengan berbagai bagian disiplin ilmu yang dibidangi setiap tenaga profesionalnya, menjadi bagian penting yang melatarbelakangi tumbuhnya perkembangan perangkat lunak dengan berbagai krisis perangkat lunak menurut berbagai sisi pandang konsmen, manajer dan pengembang/praktisi. Rekayasa Perangkat Lunak berasal dari 2 kata Rekayasa dan Perangkat Lunak. Rekayasa Perangkat Lunak merupakan perihal kegiatan yang kreatif dan sistematis berdasar suatu disiplin ilmu yang membangun suatu perangkat lunak berdasar suatu aspek masalah tertentu. Dalam Rekayasa Perangkat Lunak dilakukan Proses Perangkat Lunak dengan menggunakan model Proses yang merupakan Daur Hidup Rekayasa Perangkat Lunak. Model Proses ini terdiri dari beberapa karakteristik pendekatan proses. Dalam Proses pembangunan Perangkat Lunak perlu diketahui Biaya yang dikeluarkan.
Faktor-faktor yang melatarbelakangi munculnya RPL :
- Ketidakmampuan organisasi memprediksi waktu, usaha dan beaya u/ membangunperangkat lunak
- Perubahan nisbah/rasio beaya perangkat keras thd harga perangkat lunak - Kemajuan pesat perangkat keras - Kemajuan dalam teknik-teknik pembuatan perangkat lunak - Tuntutan yang lebih tinggi thd jumlah perangkat lunak - Tuntutan yang lebih tinggi thd mutu perangkat lunak - Meningkatnya peran pemeliharaan
Krisis Perangkat Lunak
Masalah nyata yang sudah mengganggu perkembangan perangkat lunak Serangkaian masalah yang terjadi dalam perkembangan perangkat lunak komputer. Masalah yang ada tidak hanya terbatas pada perangkat lunak yang tidak berfungsi dengan baik tapi juga pada penderitaan yang melingkupi masalah-masalah yang berhubungan dengan bagaimana mengembangkan perangkat lunak, bagaimana memelihara volume perangkat lunak yang sedang tumbuh dan bagaimana mengejar kebutuhan perangkat lunak lebih banyak lagi Penyebab krisis atau penderitaan Perangkat lunak dapat ditelusuri dengan sebuah mitologi yang muncul selama masa sejarah awal erkembangan perangkat lunak. Mitos perangkat lunak ini berbicara atas salah informasi dan keraguan. Masa sekarang kebanyakan kaum profesional memiliki banyak pengetahuan mengetahui berbagai mitos di bidang ilmu yang digelutinya (sikap yang salah yang menyebabkan masalah yang serius bagi manajer serta masyarakat teknis). Hal ini terlihat berbagai sisi pandang dari pihak Manajer/Sponsor, elanggan atau Pengembang/Praktisi
Rekayasa Perangkat Lunak
Perangkat Lunak Merupakan program-program komputer dan dokumentasi yang berkaitan. Produk perangkat lunak dibuat untuk pelanggan tertentu ataupun untuk pasar umum terdiri dari: Generik – dibuat untuk dijual ke suatu kumpulan pengguna yang berbeda Bespoke (custom) – dibuat untuk suatu pengguna tunggal sesuai dengan spesifikasinya. Rekayasa perangkat lunak berasal dari 2 kata yaitu Software( Perangkat Lunak) dan Engineering (Rekayasa). Perangkat Lunak (Software) adalah source code pada suatu program atau sistem. Perangkat lunak tidak hanya dokumentasi terhadap source code tapi juga dokumentasi terhadap sesuatu yang dibutuhkan selama pengembangan, instalasi, penggunaan dan pemeliharaan sebuah sistem. Engineering atau Rekayasa adalah aplikasi terhadap pendekatan sistematis yang berdasar atas ilmu pengetahuan dan matematis serta aplikasi tentang produksi terhadap struktur,mesin, produk, proses atau sistem. Rekayasa Perangkat Lunak adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek.
Produk perangkat lunak
mengadopsi pendekatan yang sistematis dan terorganisir terhadap pekerjaannya dan menggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia Rekayasa Perangkat Lunak (RPL) juga merupakan pendekatan sistematis dan matematis u/ membangun, memelihara dan mengenyahkan perangkat lunak. Dari cara pandang lain, RPL adalah pendekatan sistematis u/ merekayasa p.l yang handal/bermutu, tepat waktu dan dengan biaya yang optimal.
Mutu Perangkat Lunak
Terdapat 3 pihak (minimal) yang mempengaruhi mutu p.l yaitu
- Sponsor
Seseorang atau organisasi yang membiayai/membayar selama
pengembangan atau perantaraan sistem software dan biasanya mempunyai respon terhadap pengembangan sistem software itu sendiri dengan melibatkan perhitungan biaya yang optimal.
- User
Setiap orang yang secara langsung berinteraksi terhadap eksekusi
software, yang secara langsung memberi input ke komputer dan menggunakan/menikmati output dari komputer.
- Developer
Seseorang atau organisasi yang memberikan modifikasi dan
memelihara terhadap error serta mengembangkan sistem software tersebut.
Masing-masing komponen kategori mempunyai sudut pandang tersendiri thd mutu suatu perangkat lunak.Tapi kriteria tersebut tidak saling independen.
Kategori Perangkat Lunak
Kategori Perangkat lunak secara umum dapat dikelompokkan sebagai berikut:
· Perangkat Lunak Sistem, Sekumpulan program yang ditulis untuk melayani program-program yang lain. Seperti kompiler, editor dan utilitas pengatur file.
· Perangkat Lunak Real-Time, Program-program yang memonitor/menganalisi/mengontrol kejadian dunia nyata pada saat terjadinya ( real-time event)
· Perangkat Lunak Bisnis, memroses informasi bisnis spt payroll, inventory dll.
· Perangkat Lunak Teknik dan Ilmu Pengetahuan, ditandai dengan penggunaan algoritma number crunching.
· Embedded Software, produk yang ada dalam read-only memory dan dipakai untuk mengontrol hasil dan sistem untuk keperluan konsumen dan pasar industri
· Perangkat Lunak Komputer Personal, sesuai kebutuhan personal spt pengolah kata,angka dan manajamen database
· Perangkat Lunak Kecerdasan Buatan, menggunakan algoritma non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara langsung.
Karakteristik Perangkat Lunak
Atribut Perangkat Lunak seharusnya memberikan pengguna kebutuhan fungsionalitas dan unjuk kerja yang dapat di rawat, berguna. Dalam Buku Software Engineering Ian Sommerville, Perangkat Lunak mempunyai Karakteristik sebagai berikut: 1. Maintanability (Dapat Dirawat), Perangkat Lunak harus dapat memenuhi perubahan kebutuhan 2. Dependability, Perangkat Lunak harus dapat dipercaya 3. Efisiensi, Perangkat Lunak harus efisien dalam penggunaan resource 4. Usability, Perangkat Lunak harus dapat digunakan sesuai dengan yang direncanakan
Proses Perangkat Lunak
1. Proses Perangkat Lunak merupakan Sekumpulan aktifitas yang memiliki tujuan untuk pengembangan ataupun evolusi perangkat lunak. Aktifitas umum dalam semua proses perangkat lunak terdiri dari: Software Specification – apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya
2. Software Development – proses memproduksi sistem perangkat lunak
3. Software Validation – pengujian perangkat lunak terhadap keinginan penggunak
4. Software Evolution – perubahan perangkat lunak berdasarkan perubahan keinginan.
Suatu proses model adalah suatu representasi abstrak suatu model. Proses model menampilkan suatu deskripsi suatu proses dari beberapa perspektif tertentu,
Proses Perangkat Lunak dapat dikatakan sebagai aktifitas yang saling terkait (koheren) untuk menspesifikasikan, merancang, implementasi dan pengujian sistem perangkat lunak.
Karakteristik Proses Perangkat Lunak
Karakteristik Proses Perangkat Lunak terdiri dari:
· Understandability, membuat proses secara eksplisit didefinisikan dan bagaimana sehingga mudah untuk mengerti definisi proses
· Visibility, Aktifitas proses menghasilkan hasil yang jelas sehingga tahapan proses yang dilakukan terlihat
· Supportability, Aktifitas Proses dapat didukung atas CASE tools Acceptability, Penerimaan atas proses yang terdefinisi dan yang digunakan oleh Engineer selama pembangunan Produk Perangkat Lunak.
· Reliability, Proses didesain dalam suatu metode untuk dihindarkan dari kesalahan
· Robustness, Proses dapat meneruskan dalam masalah yang tidak diharpkan terjadi
· Maintainabiity, Proses yang merefleksi atas perubahan thd permintaan atau perbaikan proses yang diidentifikasi
· Rapidity, bagaimana cepat dapat berjalan atas proses pengiriman atau implementasi sebuah sistem dari Spesifikasi yang ada sampai selesai
Daur Hidup Pembangunan Perangkat Lunak
Di dalam pengembangan rekayasa perangkat lunak biasanya dipandu dengan pemodelan dengan Daur Hidup Perangkat Lunak (Software Development Life Cycle). Tak ada standar sehingga bervariasi model proses u/ menggambarkan rekayasa daur hidup p.l. Namun tahap-tahap yang prinsipal terhadap pemetaan model proses kedalam aktifitas pengembangan yang fundamental alalah sbb:
1. Requirement Analysis and definition
2. System and Software Design
3. Implementation and unit testing
4. Integration and system Testing
5. Operation and maintenance
Model di atas secara esensial sama dengan model „waterfall‟ atau ai r
terjun. Kita dapat menganalogikan daur hidup p. L dengan daur hidup manusia dari benih s/d tua dan meninggal.
Model Proses Perangkat Lunak
Model Proses Perangkat Lunak merupakan suatu representasi proses perangkat lunak yang disederhanakan, dipresentasikan dar perspektif khusus. Contoh perspektif proses:
· Perspektif Alur-kerja (workflow) - barisan kegiatan
· Perspektif Alur Data (Data flow) – alur informasi
· Perspektif Peran/Aksi – siapa melakukan apa.
Menurut Ian Somerville, Model proses secara umum terdiri dari:
1. Pendekatan Model Air terjun (Water fall),
Menempatkan semua aktifitas sesuai dengan tahapan pada model Waterfall dengan memisahkan dan membedakan antara spesifikasi dan pengembangan
2. Pengembangan yang berevolusi,
Pendekatan yang melanjutkan Aktifitas satu dan yang lainnya dari Spesifikasi dan pengembangan serta validasi secara cepat
3. Pengembangan sistem Formal,
Pendekatan aktifitas bersasar suatu model sistem matematika yang ditransformasikan ke implementasi,
4. Pengembangan Sstem berbasis Re-use (penggunaan ulang) komponen,
sistem dibangun dari komponen yang sudah ada dengan fokus integrasi sistem.
Model Waterfall (Air Terjun)
Fase Model Air Terjun
1. Analisis Kebutuhan dan pendefinisiannya
2. Perancangan sistem dan Perangkat Lunak
3. Implementasi dan unit testing
4. Integrasi dan pengujian sistem
5. Pengoperasian dan perawatan
Proses kembali ke state sebelumnya untuk mengantisipasi perubahan Setelah proses menuju ke suatu state di bawahnya adalah sangat sulit.
Masalah pada Model Air Terjun:
· Partisi projek ke stages yang berbeda tidak fleksibel.
· Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna
· Oleh sebab itu model ini hanya cocok digunakan apabila kebutuhan pengguna sudah dimengerti dengan baik,
Biaya Perangkat Lunak
Sekitar 60% untuk biaya pengembangan, 40% biaya pengujian. Untuk perangkat lunak berbasis pengguna (custom), biaya evolusi biasanya melebihi biaya pengembangan. Biaya beragam tergantung pada tipe sistem yang akan dikembangkan dan kebutuhan sistem seperti unjuk kerja dan kehandalan sistem, Distribusi biaya bergantung pada model pengembangan yang digunakan.
Pemilihan Sebuah Bahasa Pemrograman
Pemilihan terhadap penggunaan Bahasa Pemrograman dalam pengembangan sistem merupakan hal yang krusial. Hal ini sangat esensi dalam siklus Hidup Pengembangan Sistem. Pada tahapan Coding dan Testing difasilitasi bahasa yang terpilih dan pada Tahapan Pemeliharaan lebih mudah dikerjakan. Apalagi dihubungkan dengan biaya dalam pengembangan perangkat lunak.
Terdapat 2 faktor ang berhubungan terhadap Pemilihan Bahasa Pemrograman yaitu:
a. Perihal Pragmatik Pemilihan Bahasa
b. Bahasa Pemrograman yang dipilih Pragmatik dalam Pemilihan Bahasa Pemrograman mengandung perihal berikut:
1. Sponsor Requirement, Permintaan Sponsor
2. Knowledge of coders, Pengetahuan yang mudah dipahami Programmer
3. Languages used in previous and/or concurrent projects, Bahasa Pemrograman yng digunakan proyek sebelumnya atau proyek yang berbarengan terkait dengan Pengetahuan Programmer
4. Availability and quality of language compiler, Ketersediaan dan kualitas Kompiler Bahasa Pemrograman yang sesuai target hardware yang digunakan
5. Availability of supporting software development tools, Ketersediaan Alat Bantu Perangkat lunak Pendukung Editor, Debugger, Linker dan yang lainnya
6. Portability, Sistem yang dikembangkan dapat beroperasi di berbagai mesinkomputer dan berjalan pada aneka Sistem Operasi yang berbeda
Programming-in-the Small Concerns & Programming-in-the Large Concerns
Karakteristik Bahasa Pemrograman secara individu dipertimbangkan ketika memilih sebuah bahasa target yang akan digunakan pada Pengembangan Perangkat Lunak yang efisien, reliable dan pada Pemeliharaan perangkat lunak. Seorang Software Engineer dapat memperlihatkan fitur-fitur bahasa pemrograman yang mendukung pada pengembangan Perangkat Lunak berasal dari 2 aspek yang berbeda (Rujukan Bell, Morrey & Pugh, 1987) yaitu:
1. Programming-in-the Small, Menguji atau mencoba fitur-fitur yang mendukung dengan Pengkodean program modul-modul tunggal dan program-program kecil oleh kepentingan Programmer secara individu.
2. Programming-in-the Large,Pemrograman ini merujuk pada
pengembangan sebuah system yang keseluruhannya dipengeruhi oleh koordinasi atas sekelompok orang (Sofware Engineer), dimana setiap engineer membuat respon komponen-komponen pada system dengan bagian yang berbeda-beda.
Programming-in-the Small
Dalam Pemrograman kekuatan bahasa adalah kemampuan membawa suatu pekerjaan pembuatan program yang diinginkan secara mudah dan dengan membuat pengaruh kebutuhan pemrograman itu kecil. Kekuatan bahasa itu secara langsung berkaitan dengan fitur-fitur yang ada dan struktur data yang mendukung bahasa tersebut. Karakteristik Fitur-fitur yang terkait dengan pemrograman dengan skala kecil (Programming-in-the Small) terdiri dari: a. Sifat Simplicity, Clarity dan Orthogonality dari bahasanya b. Sintaks dari bahasa pemrogramannya c. Jumlah dan tipe kontrol struktur (Decision structure, loop control structure dan exception handling) d. Abstraksi Data terhadap tipe struktur datanya Simplicity sebuah bahasa pemrograman merupakan ukuran dari kamus data dari bahasa seperti jumlah operator, operan dan reserved word (seperti if..then dsb)dalam bahasa itu. Simplicity ini perihal yang diinginkan karena sifat ini membuat programer menjadi familier terhadap keseluruhan isi bahasa yang digunakan. Clarity merupakan tingkat dari bahasa berkaitan dengan pengertian sintaks natural, pemahaman dan ketidakbingungan programmer dalam menggunakan bahasa pemrograman sampai berjalan. Orthogonality merupakan tingkat dari programer bebas mengkombinasikan fitur-fitur yang ada di bahasa pemrograman itu seperti pemanfaatan fungsi yang memiliki nilai balik untuk diolah langsung dengan nilai yang lain dan tipe data tertentu.
Programming-in-the Large
Fitur-fitur pada pemrograman ini terdapat pada pembuatan modul antarmuka, dukungan terhadap fungsional dan abstraksi data dan bagian kompilasi terhadap modul-modul program secara independen oleh linkage editor atau linker. Programming ini dibutuhkan pada saat sebuah system mengandung banyak baris kode atau mempunyai skala yang besar yang membutuhkan pendekatan pengembangan sistem secara integrasi terhadap sekelompok proyek system. Konsep penting dalam pemrograman terkait dengan penyelesaian masalah oleh seorang programmer adalah abstraksi prosedural yang berbentuk modul prosedur/fungsi dan abstraksi data. Pada Pemrograman berskala besar (Programming-in-the Large) meminta abstraksi pada level yang lebih tinggi dengan dukungan abstraksi data yang sesuai dengan modul prosedural yang terkait. Pada Pemrograman ini, bahasa pemrograman seharusnya mempunyai fitur karakteristik sbb:
a. Mekanisme untuk enkapsulasi atau pembentukan kelopok tingkat tinggi terhadap abstraksi prosedural dan data
b. Pemisahan yang jelas antara spesifikasi deskripsi sebuah abstraksi dan implementasi abstraksi
c. Mekanisme untuk memproteksi akses dari luar terhadap informasi yang dienkapsulasi
d. Metode yang sederhana pada pemberian modul ke bagian modul lain (reusable atau Peggunaan kembali suatu modul ke modul lain) Unit Enkapsulasi bisa tersiri dari program unit, subprogram, package, tasks dan generic units.
B. Model Proses Perangkat Lunak
Program hendaknya dapat menyelesaikan berbagai macam masalah mulai dari yang berskala kecil, menengah, hingga skala yang besar dan kompleks. Untuk bisa menyelesaikan masalah yang bear dan kompleks, akan lebih mudah jika permasalahan tersebut dipecahkan menjadi masalah-masalah yang lebih kecil, sehingga lebih fokus untuk diselesaikan. Solusi untuk masalah yang lebih kecil, kadang kala masih bisa digunakan kembali untuk menyelesaikan permasalahan yang lain.
Pengembangan Perangkat Lunak
Pengembangan perangkat lunak adalah suatu proses dimana kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak. Proses ini mencakup aktivitas penerjemahan kebutuhan pemakai menjadi kebutuhan perangkat lunak, transformasi kebutuhan perangkat lunak menjadi desain, penerapan desain menjadi kode program, uji coba kode program, dan instalasi serta pemeriksaan kebenararan perangkat lunak untuk operasional [4]. Berdasarkan pengertian tersebut, secara umum dapat dikatakan bahwa proses pengembangan perangkat lunak mengikuti tahap-tahap:
1. Menentukan APA yang harus dikerjakan oleh perangkat lunak dalam satu rentang waktu tertentu.
2. Mendefinisikan BAGAIMANA perangkat lunak dibuat, mencakup arsitektur perangkat lunaknya, antarmuka internal, algoritma, dan sebagainya.
3. Penerapan (penulisan program) dan pengujian unit-unit program.
4. Integrasi dan pengujian modul-modul program.
5. Validasi perangkat lunak secara keseluruhan (pengujian sistem).
Siklus Pengembangan Perangkat Lunak
Siklus pengembangan perangkat lunak atau sering disebut juga dengan siklus hidup perangkat lunak adalah [4]: Periode waktu yang diawali dengan keputusan untuk mengembangkan produk perangkat lunak dan berakhir setelah perangkat lunak diserahkan. Umumnya siklus pengembangan ini terdiri dari tahap analisis kebutuhan, perancangan, penerapan, pengujian, dan instalasi serta pemeriksaan. Periode waktu yang diawali dengan keputusan untuk mengembangkan produk perangkat lunak dan berakhir saat produk tidak dapat ditingkatkan lebih jauh lagi oleh pengembang.
Model Proses Pengembangan Perangkat Lunak
Model proses perangkat lunak (atau disebut juga paradigma rekayasa perangkat lunak) adalah suatu strategi pengembangan yang memadukan lapisan proses, metode, dan alat serta tahap-tahap generik. Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat proyek dan aplikasi, metode dan alat yang digunakan, serta pengendalian dan hasil yang diinginkan. Berikut adalah beberapa model proses pengembangan perangkat lunak.
Linear Sequential Model
Linear sequential model (atau disebut juga “classic life cycle” atau “waterfall model”) adalah metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan cakupan aktivitas:
1. Pemodelan dan rekayasa sistem/informasi.
Menetapkan kebutuhan untuk seluruh elemen sistem dan kemudian memilah mana yang untuk pengembangan perangkat lunak.
2. Analisis kebutuhan perangkat lunak 3. Perancangan 4. Pembuatan kode 5. Pengujian 6. Pemeliharaan Beberapa kelemahan linear sequential model: 1. Proyek yang sebenarnya jarang mengikuti alur sekuensial, sehingga
perubahan yang terjadi dapat menyebabkan hasil yang sudah didapat tim harus diubah kembali.
2. Linear sequential model mengharuskan semua kebutuhan pemakai sudah dinyatakan secara eksplisit di awal proses, tetapi kadang-kadang hal ini tidak dapat terlaksana karena kesulitan yang dialami pemakai saat akan mengungkapkan semua kebutuhannya tersebut.
3. Pemakai harus bersabar karena versi dari program tidak akan didapat sampai akhir rentang waktu proyek.
4. Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
Prototyping Model
Pendekatan prototyping model digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusiamesin yang harus diambil.
Cakupan aktivitas prototyping model terdiri dari:
1. Mendefinisikan objetif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui.
2. Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype
3. Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan-perbaikan terhadap prototype yang sudah dibuat.
Kelemahan prototyping model:
1. Walaupun pemakai melihat berbagai perbaikan dari setiap versi
prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
2. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
RAD (Rapid Application Development) Model
Merupakan model proses pengembangan perangkat lunak secara linear
sequential yang menekankan pada siklus pengembangan yang sangat singkat. Pendekatan RAD model mempunyai cakupan:
1. Pemodelan bisnis
2. Pemodelan data
3. Pemodelan proses
4. Pembuatan aplikasi
5. Pengujian dan pergantian
Kelemahan RAD model:
1. Untuk proyek dengan skala besar, RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD.
2. RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen untuk melaksanakan berbagai aktivitas melengkapi sistem dalam kerangka waktu yang singkat.
3. Akan menimbulkan masalah jika sistem tidak dapat dibuat secara modular.
4. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
Incremental Model
Merupakan kombinasi linear sequential model (diaplikasikan secara berulang) dan filosofi pengulangan dari prototyping model. Setiap tahapan linear sequential menghasilkan deliverable increment bagi perangkat lunak, dimana increment pertamanya merupakan sebuah produk inti yang mewakili kebutuhan dasar sistem. Produk inti ini nantinya dikembangkan menjadi increment-increment selanjutnya setelah digunakan dan dievaluasi sampai didapat produk yang lengkap dan memenuhi kebutuhan pemakai. Kelemahan incremental model: 1. Hanya akan berhasil jika tidak ada staffing untuk penerapan secara
menyeluruh. 2. Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih
lanjut.
Spiral Model
Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model. Dalam model ini perangkat lunak dikembangkan dalam suatu seri incremental release. Spiral model dibagi menjadi 6 aktivitas kerangka kerja sebagai berikut:
1. Komunikasi dengan pemakai
2. Perencanaan
3. Analsis resiko
4. Rekayasa
5. Konstruksi dan pelepasan
6. Evaluasi
Kelemahan spiral model:
1. Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan.
2. Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
3. Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
Component Assembly Model
Menggabungkan berbagai karakteristik dari spiral model. Pembuatan aplikasi dengan pendekatan model ini dibangun dari komponen-komponen perangkat lunak yang sudah dipaketkan sebelumnya dengan cakupan aktivitas sebagai berikut:
1. Mengidentifikasi calon-calon komponen (kelas objek)
2. Melihat komponen-komponen dalam pustaka
3. Mengekstrak komponen jika ada
4. Membangun komponen jika tidak ada
5. Menyimpan komponen baru pada pustaka
6. Mengkontruksi iterasi ke-n dari sistem
Fourth Generation Techniques (4GT)
Menggunakan perangkat bantu yang akan membuat kode sumber secara otomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakan untuk mengembangkan perangkat lunak yang menggunakan bentuk bahasa khusus atau notasi grafik yang diselesaikan dengan syarat yang dimengerti pemakai.
Cakupan aktivitas 4GT:
1. Pengumpulan kebutuhan.
2. Translasi kebutuhan menjadi prototype operasional, atau langsung melakukan implementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
3. Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun 4GL akan digunakan.
4. Pengujian.
5. Membuat dokumentasi.
6. Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat lunak lainnya. Salah satu keuntungan penggunaan model 4GT adalah pengurangan waktu dan peningkatan produktivitas secara besar, sementara kekurangannya terletak pada kesulitan penggunaan perangkat bantu dibandingkan dengan bahasa pemrograman, dan juga kode sumber yang dihasilkannya tidak efisien.
C. Rekayasa Sistem
Program hendaknya dapat menyelesaikan berbagai macam masalah mulai dari yang berskala kecil, menengah, hingga skala yang besar dan kompleks. Untuk bisa menyelesaikan masalah yang bear dan kompleks, akan lebih mudah jika permasalahan tersebut dipecahkan menjadi masalah-masalah yang lebih kecil, sehingga lebih fokus untuk diselesaikan. Solusi untuk masalah yang lebih kecil, kadang kala masih bisa digunakan kembali untuk menyelesaikan permasalahan yang lain.
Apa yang Disebut Rekayasa Sistem?
Rekayasa sistem adalah aktivitas untuk menetapkan kebutuhan-kebutuhan pada tingkat sistem, kemudian mengalokasikan beberapa bagian dari kebutuhan-kebutuhan tersebut ke satu atau beberapa komponen rekayasa, misalnya perangkat lunak. Rekayasa sistem dapat membantu menerjemahkan kebutuhan pelanggan menjadi model sistem tertentu, sehingga dapat memberikan gambaran bagaimana interaksi antara satu elemen sistem dengan elemen sistem lainnya. Menurut Pressman [1], cakupan rekayasa sistem meliputi:
· Rekayasa informasi, yaitu rekayasa sistem yang konteks pekerjaan rekayasanya berfokus pada perusahaan bisnis (business enterprise), meliputi pengumpulan kebutuhan-kebutuhan untuk tingkat bisnis strategis dan tingkat area bisnis.
· Rekayasa produk (sering disebut juga dengan rekayasa sistem), yaitu rekayasa sistem yang merupakan aktivitas penyelesaian masalah. Data, fungsi, dan perilaku produk yang diinginkan dicari, dianalisis, dibuat model kebutuhannya, kemudian dialokasikan ke komponen rekayasa. Selanjutnya komponen-komponen ini disatukan dengan infrastruktur pendukungnya sampai produk tersebut jadi.
Kedua bentuk rekayasa di atas digunakan untuk pengembangan sistem berbasis komputer. Dalam hal ini untuk mengalokasikan peran perangkat lunak komputer serta menentukan kaitan yang menyatukan perangkat lunak dengan elemen sistem berbasis komputer lainnya.
Sistem Berbasis Komputer
Sistem berbasis komputer dapat didefinisikan sebagai Kumpulan atau susunan elemen-elemen yang diorganisasi untuk mengerjakan berbagai tujuan (goal) yang sudah didefinisikan sebelumnya dengan cara memproses informasi.Elemen-elemen sistem berbasis komputer :
Perangkat lunak, yaitu program komputer, struktur data, dan dokumentasi terkait.Perangkat keras, yaitu perangkat elektronik yang menyediakan kemampuan komputasi dan perangkat elektromekanik (misalnya: sensor, motor, pompa) yang menyediakan fungsi dunia luar. Manusia, yaitu pemakai dan operator perangkat keras dan perangkat lunak. Basis data, yaitu kumpulan informasi yang besar dan terorganisasi yang diakses melalui perangkat lunak. Dokumentasi, yaitu buku-buku manual, formulir, dan informasi deskriptif lainnya yang menggambarkan penggunaan dan atau operasional sistem. Prosedur, yaitu langkah-langkah yang menjelaskan pemakaian spesifik dari setiap elemen sistem. Beberapa contoh sistem berbasis komputer: Sistem informasi, yaitu sistem yang akan mengolah data dari dalam atau luar organisasi menjadi informasi untuk mendukung proses operasional dan manajerial.Sistem kendali proses, yaitu sistem yang mengendalikan proses-proses fisis dengan bantuan perangkat elektromekanik dan sensor tertentu. Sistem pakar, yaitu sistem yang mengaplikasikan metodologi penalaran pengetahuan untuk ranah tertentu sehingga dapat memberikan saran atau rekomendasi layaknya seorang pakar.
Rekayasa Informasi
Tujuan dari rekayasa informasi/information engineering (IE) adalah: Mendefinisikan suatu arsitektur yang memungkinkan bisnis menggunakan informasi secara efektif. Membuat rencana menyeluruh untuk mengimplementasi arsitektur-arsitektur tersebut, yaitu:
1. arsitektur data: kerangka kerja untuk informasi yang dibutuhkan bisnis/fungsi bisnis. Informasi dari arsitektur ini merupakan objek data yang digunakan oleh suatu basisdata dan ditransformasikan menjadi sebuah informasi yang dibutuhkan oleh bisnis/fungsi bisnis.
2. arsitektur aplikasi: elemen sistem yang mentransformasi objek pada arsitektur data untuk berbagai keperluan bisnis. Arsitektur aplikasi ini bisa dianggap sebagai sistem program (perangkat lunak) yang melakukan transformasi datatersebut. Namun dalam konteks yang luas arsitektur aplikasi bisa mencakup perasan manusia dan prosedur bisnis yang belum terotomatisasi.
3. infrastuktur teknologi: fondasi untuk arsitektur data dan aplikasi, mencakup perangkat keras dan perangkat lunak yang digunakan untuk mendukung data dan aplikasi. Hal ini bisa mencakup komputer, jaringan komputer, teknologi penyimpanan, dan arsitektur untuk mengimplementasikan teknologi tersebut.
Untuk memodelkan arsitektur diatas, ditetapkan sebuah hirarki aktivitas rekayasa informasi seperti yang terlihat pada gambar 3.1 dibawah ini.
Aktifitas dalam hirarki diatas dilakukan melalui perencanaan stategi informasi (Information Strategy Planning) yang akan dibahas pada sub bab berikutnya. Perencanaan stategi informasi ini memandang bisnis secara keseluruhan sebagai sebuah entitas dan memisahkan domain bisnis yang penting dalam sebuah enterprise (perusahaan). Selain itu perencanaan strategi informasi mendefinisikan objek data, hubungannnya, serta bagaimana data tersebut mengalir dalam domain bisnis yang terlihat pada tingkat enterprise (perusahaan). Selanjutnya dari pandangan domain pada aktivitas rekayasa infromasi disebut sebagai analisis area bisnis/bussiness area analysis yang mengidentifikasikan data (entitas/objek data) dan fungsi yang dibutuhkan oleh area bisnis (domain) yang telah dipilih. Keluaran dari aktivitas analisis area bisnis adalah untuk memisahkan area dimana sistem infromasi dapat mendukung area bisnis tersebut. Dalam pandangan elemen pada aktivitas rekayasa informasi, kebutuhan dasar dari sistem informasi tersebut akan di modelkan dan diterjemahkan ke dalam asrsitektur data, arsitektur aplikasi dan infrastruktur teknologi. Aktivitas ini disebut dengan desain sistem bisnis/bussiness system design. Setelah aktivitas desain sistem bisnis dilakukan, aktivitas konstruksi dan integrasi /construction and Integration yang berfokus pada detail dari implementasi. Kemudian desain arsitektur dan infrastruktur pada aktivitas desian sistem bisnis akan diimplementasikan dengan mengkonstruksikan/membangun basisdata dan struktur data, membangun aplikasi yang menggunakan komponen-komponen program, serta memilih infrastruktur teknologi yang sesuai untuk mendukung desain tersebut. Kemudian akan diintegrasikan untuk membentuk sebuah sistem informasi atau aplikasi yang lengkap.
Perencanaan Strategi Informasi
Perencanaan Strategi Informasi merupakan langkah pertama dalam aktivitas rekayasa informasi. Tujuan dari aktivitas ini adalah :
1. Menentukan sasaran dan tujuan dari bisnis. Sasaran yang dimaksud disini merupakan sebuah pernyataan umum dari arah yang ingin dicapai. Sebagai contoh sasaran bisnis untuk perusahaan perakitan mobil adalah mengurangi biaya pembuatan produk. Sedangkan Tujuan bisnis disini merupakan bentuk kegiatan kuantitatif dari sasaran. Sebagai contoh untuk mencapai sasaran supaya perusahaan perakitan mobil dapat mengurangi biaya pembuatan produk, perusahaan mempunyai tujuan sebagai berikut: mengotomatisasi pemasangan komponen yang dilakukan secara manual. mengimplementasikan sistem kontrol produksi secara real-time. mendapatkan konsensi harga 10% dari pemasok, dan lainnya. Jadi dapat disimpulkan bahwa sasaran lebih cenderung ke strategi sedangakan tujuan bersifat taktis.
2. Mengisolasi faktor-faktor sukses dan kritis yang memungkinkan tujuan dan sasaran dari bisnis tercapai. Faktor sukses dan kritis ini harus ada, jika sasaran dan tujuan bisnis akan dicapai, sehingga perencanaan managemen harus mengakomodasinya. Beberapa faktor sukses kritis untuk sasaran perusahan perakitan mobil seperti pada contoh diatas berupa:
mesin dengan realibilitas yang tinggi. motivasi dan pelatihan pekerja. rencana penjualan untuk meyakinkan pemasok menurunkan harga, dan lainnya.
3.Menganalisa pengaruh teknologi dan otomasi terhadap tujuan dan sasaran dari bisnis. Tujuan analisa pengaruh teknologi adalah menguji sasaran dan tujuan serta memberikan indikasi mengenai teknologi-teknologi yang akan berpengaruh langsung dan tidak langsung terhadap sasaran dan tujuan dari bisnis.
4.Menganalisa informasi yang ada untuk menentukan perannya dalam pencapaian tujuan dan sasaran bisnis.
Pemodelan Enterprise Tujuan dari pemodelan enterprise untuk mengetahui pandangan terhadap sebuah bisnis, yaitu Menentukan struktur dan fungsi organisasional dalam area bisnis yang digambarkan oleh struktur organisasi. Mendekomposisi fungsi bisnis Menghubungkan sasaran, tujuan dan faktor sukses kritis dengan organisasi dan fungsinya. Pemodelan enterprise juga akan menciptakan model data tingkat bisnis yang menentukan objek data dan hubungannya dengan elemen model perusahaan lain yang akan dibahas pada sub bab 3.2.1.2. Gambar 3.3 merupakan pemodelan enterprise beserta area bisnis dan fungsi-fungsi bisnisnya.
Masing-masing kotak dalam diagram organisasi diatas menunjukkan area bisnis enterprise. Kemudian fungsi-fungsi bisnis dan proses bisnis akan diidentifikasikan, kemudian fungsi bisnis tersebut akan dihubungkan dengan area bisnis yang bertanggung jawab terhadap fungsi tersebut. Fungsi bisnis ini merupakan aktivitas yang dimiliki oleh sebuah area bisnis yang harus diselesaikn untuk mendukung keseluruhan bisnis enterprise. Sedangkan proses bisnis sebuah proses yang menerima input dan mengeluarkan output yang merupakan transformasi dari fungsi bisnis pada area bisnis tertentu. Untuk memahami sebuah fungsi bisnis ditransformasikan ke dalam serangkaian proses bisnis, perhatikan fungsi analisis pasar pada gambar 3.3.Proses binis pada fungsi bisnis analisis pasar berupa : Mengumpulkan semua data penjualan Menganalisa data penjualan Mengembangkan profil pembeli Mempelajari trend pembelian dan lainnya. 3.2.1.1 Pemodelan Data Tingkat Bisnis Pemodelan data tingkat bisnis menurut schaum adalah sebuah aktivitas
pemodelan enterprise yang berfokus pada objek data (entitas) yang dibutuhkan untuk mencapai sasaran dan fungsi bisnis dari sebuah enterprise (sub bab 3.2.1.1). Objek data yang akan dimodelkan pada tingkat bisnis pada umumnya merupakan data yang berhubungan dengan informasi konsumen dan produsen, seperti pelanggan, barang, penjualan, data pegawai dan lainnya. Sebagai contoh perekayasa informasi akan menentukan objek data pelanggan sebagai objek yang berperan dalam pemodelan enterprise, untuk menggambarkan objek pelanggan lebih jelas ditentukan atribut-atribut dari objek tersebut yaitu : Objek : Pelanggan Atribut : Nama Nama Perusahaan Pekerjaan Alamat Bisnis Produk yang diminati Pembelian Tanggal kontak terakhir Status kontak Setelah menentukan semua objek data yang ada dalam pemodelan enterprise, kemudian akan dilakukan keterhubungan antar objek data tersebut. Sebagai contoh gambar 3.4 menunjukkan hubungan antar objek data pelanggan dengan sebuah produk XYZ dan seorang sales. Pada gambar 3.4 menunjukkan keterhubungan dua arah antar objek data, yaitu seorang pelanggan membeli sebuah produk XYZ dan produk XYZ dibeli oleh seorang pelanggan. Namun secara detail informasi tambahan dari masing-masing objek data ini akan dijelaskan pada bab 6.
Analisa Area Bisnis Analisa area bisnis merupakan tahapan aktifitas rekayasa infromasi dari sisi
pandangan domain. Dalam aktivitas ini perekayasa informasi akan menganalisa dan menggambarkan bagaimana objek data digunakan dan ditransformasikan pada masing-masing area bisnis, serta bagaimana fungsi dan proses bisnis pada area bisnis mentransformasikan objek data tersebut. Untuk memodelkan objek data dan transformasinya terhadap area bisnis dapat menggunakan sejumlah model yang berbeda yaitu Model data Model aliran proses Diagram dekomposisi proses Berbagai matriks lintas referensi Objek data yang telah disaring pada tahap perencanaan strategi informasi akan digunakan pada masing-masing area bisnis. Sebagai contoh pada sub bab 3.2.1.2 objek data pelanggan akan digunakan oleh bagian penjualan. Setelah dilakukan analisis dan evaluasi kebutuhan bagian penjualan (domain penjualan), selanjutnya objek data pelanggan akan disaring kembali disesuaikan dengan kebutuhan yang diinginkan oleh penjualan. Objek : Pelanggan Atribut : Nama Nama Perusahaan à Objek : Perusahaan Pekerjaan Alamat Bisnis Produk yang diminati Pembelian Tanggal kontak terakhir à rekaman kontak Status kontak à status kontak terakhir à tanggal kontak selanjutnya à sifat kontak yang disepakati Nama perusahaan merupakan atribut yang dimodifikasi untuk objek data yang lain yaitu Perusahaan. Objek perusahaan ini tidak hanya berisi atribut nama perusahaan saja, namun ada atribut tambahan yang lainnya seperti alamat perusahaan, kebutuhan pembelian, besar perusahaan dan lainnya. Selain itu ada beberapa aribut yang dimodifikasi dan ditambahkan yang berguna untuk domain penjualan seperti rekaman kontak, status kontak terakhir, tanggal kontak selanjutnya dan sifat kontak yang disepakati.
Pemodelan Proses Aktivitas yang dilakukan pada area bisnis mencakup serangkaian fungsi yang
disaring ke dalam beberapa proses bisnis. Untuk menggambarkan urutan proses bisnis ini dapat dimodelkan dengan menggunakan diagram aliran proses. Sebagai contoh pada sub bab 3.2.1.2 dari fungsi penjualan akan disederhanaakan menjadi beberapa proses bisnis. Fungsi penjualan : membangun kontak pelanggan menyediakan informasi dan literatur yang sesuai Mengarahkan pertanyaan dan perhatian Memberi evaluasi terhadap produk Menerima pesanan penjualan Memeriksa ketersediaan pesanan Menyiapkan pengiriman pesanan Mengkonfirmasi informasi pengiriman seperti penetapan harga, tanggal pengiriman pada pelanggan. Mengirim pesan pengiriman ke bagian pengiriman Tindak lanjut dengan pelanggan
Dari proses bisnis pada fungsi penjualan diatas dapat dimodelkan dengan menggunakan diagram aliran proses seperti pada gambar 3.5.
3.2.2.1 Pemodelan Aliran Informasi Model aliran proses pada sub bab 3.2.2.1 diintegrasikan dengan model data
akan mengidentifikasikan bagaimana informasi yang mengalir dalam suatu area bisnis. Objek data masukan dan data keluaran akan diperlihatkan pada masingmasing proses yang menunjukkan transformasi informasi. Informasi ini digunakan untuk menyelesaikan fungsi bisnis. Gambar 3.6 menggambarkan pemodelan aliran informasi dari diagram aliran proses pada fungsi penjualan.
Setelah aliran proses dan informasi dimodelkan, maka perekayasa informasi akan menguji apakah proses yang ada akan direkayasa ulang dan apakah sistem informasi atau aplikasi yang ada akan dimodifikasi atau diganti dengan teknologi informasi atau aplikasi yang lebih efisien. Model proses yang telah direvisi akan menjadi dasar untuk spesifikasi perangkat lunak yang baru atau yang telah direvisi untuk mendukung fungsi bisnis.
Rekayasa Produk
Rekayasa produk disebut juga dengan rekayasa sietem yang merupakan aktivitas pemecahan masalah. Data, fungsi, dan perilaku produk yang diinginkan dicari, dianalisis, dibuat model kebutuhannya, kemudian dialokasikan ke komponen rekayasa. Selanjutnya komponen-komponen ini disatukan dengan infrastruktur pendukungnya sampai produk tersebut jadi. Komponen rekayasa disini seperti perangkat lunak, perangkat keras, data (basisdata) dan manusia. Sedangkan infrastruktur pendukung berupa teknologi yang dibutuhkan untuk menyatukan komponen dan informasi. Sebagian besar produk dan sistem yang baru masih samar akan fungsi yang dibutuhkan. Oleh karena itu, perekayasa sistem harus membatasi kebutuhan produk dengan mengidentifikasi ruang lingkup fungsi dan kinerja yang diinginkan dari sistem atau produk tersebut. Dalam rekayasa produk ada beberapa aktivitas yang akan dilakukan untuk mengetahui data, fungsi dan perilaku produk yang diinginkan sebelum pengembangan produk dilakukan diantaranya adalah:
Analisa Sistem
Tujuan dilakukan analisa sistem adalah Mengidentifikasi kebutuhan pelanggan. Mengevaluasi kelayakan sistem. Melakukan analisis teknis dan ekonomis, Mengalokasikan fungsi-fungsi untuk perangkat lunak, perangkat keras, basisdata, manusia, dan elemen sistem yang lain. Membuat batasan biaya dan jadwal. Menentukan definisi sistem yang menjadi dasar kerja bagi komponen
sistem baik perangkat lunak, perangkat keras, basisdata dan manusia.
Identifikasi Kebutuhan Langkah pertama dari aktivitas analisa sistem adalah analisa kebutuhan dengan mengidentifikasi kebutuhan dari pelanggan. Mengidentifikasikan kebutuhan ini dilakukan dengan melakukan pertemuan antara seorang analis dengan pelanggan. Seperti halnya rekayasa informasi, tujuan dari pertemuan ini untuk memahami sasaran produk dan menentukan tujuan dibangunnya sebuah produk supaya sasaran tersebut tercapai. Setelah tujuan ditentukan, analis akan melanjutkan aktivitas evaluasi informasi. Berikuta ada beberapa pertanyaan yang dapat digunakan untuk membantu mengevaluasi informasi dari sistem atau produk yang akan dibangun.
Studi Kelayakan Pengembangan sistem atau produk berbasis komputer lebih banyak terganggu
dengan kurangnya sumber daya dan waktu penyelesaian dan penyampaian produk. Oleh karena itu, perlu dilakukan lebih awal evaluasi terhadap kelayakan sebuah proyek pengembangan sistem atau produk tersebut. Berikut ada empat studi kelayakan yang dapat dievaluasi. 1. Kelayakan Ekonomis
Studi mengenai evaluasi biaya pengembangan dengan keuntungan yang diperoleh dari sistem atau produk yang dikembangkan.
2. KelayakanTeknis Studi mengenai fungsi, sasaran dan kinerja yang perlu dipertimbangkan yang dapat mempengaruhi kemampuan sistem yang akan dikembangkan. Pertimbangan yang dihubungkan dengan kelayakan teknis meiputi
Resiko pengembangan Keberadaaan sumber daya Teknologi
3. Kelayakan Legal Studi mengenai pertimbangan yang perlu dilakukan mengenai kontrak, pelanggaran atau liabilitas yang akan dihasilkan dari sistem yang akan dikembangkan.
4. Alternatif Studi mengenai evaluasi pendekatan alternatif pada pengembangan sistem atau produk.
Hasil dari studi kelayakan akan menentukan proyek dilanjutkan atau dihentikan. Hasil studi kelayakan akan didokumentasikan terpisah dan dilampirkan pada dokumen spesifikasi sistem. I. Pendahuluan A. Pernyataan Masalah B. Lingkungan Implementasi C. Larangan-larangan II. Ringkasan dan Rekomendasi Manajemen A. Penemuan-penemuan Penting B. Komentar C. Rekomendasi D. Pengaruh III. Alternatif-alternatif A. Konfigurasi Sistem Alternatif B. Kriteria yang digunakan dalam pemilihan pendekatan akhir IV. Deskripsi Sistem A. Ruang Lingkup Sistem B. Kelayakan Elemen Sistem V. Analisis Biaya dan Keuntungan VI. Evaluasi Resiko Te knis VII. Percabangan Legal VIII. Topik-topik Proyek Khusus Lainnya
Gambar 3.7 Outline Dokumen Studi Kelayakan
3.3.4 Analisis Ekonomis Analisis biaya dan keuntungan merupakan salah satu informasi analisa
ekonomis yang paling penting yang diisikan dalam studi kelayakan. Analisis biaya dan keuntungan menggambarkan biaya pengembangan proyek dan
membandingkannya dengan keuntungan yang akan diperoleh dari pengembangan sistem. Analisis biaya dan keuntungan berbeda antara sistem yang satu dengan yang lainnya tergantung dari karakteristik dari sistem yang akan dikembangkan dan ukuran proyek. Keuntungan yang diperoleh dari pengembangan sistem tidak hanya berupa hal yang bisa diukur. Keuntungan yang tidak bisa diperoleh dari pengembangan proyek seperti kepuasan pelanggan, keputusan bisnis yang lebih baik, kualitas desain yang lebih baik dan lainnya. Hasil dari analisa ekonomi didokumentasikan menjadi satu dalam dokumen studi kelayakan seperti terlihat pada gambar 3.7
3.3.5 Analisis Teknis Pada aktivitas analisis teknis, seorang analis melakukan evaluasi secara teknis
terhadap sistem serta mengumpulkan informasi mengenai reliabilitas, kinerja, pemeliharaan dan produktifitas dari sistem yang akan dikembangkan. Analisis meliputi penilaian viabilitas teknis dari sistem seperti teknologi apa yang akan dibutuhkan untuk membangun sistem, materi, metode, algoritma atau proses baru apa yang diperlukan oleh sisem, bagaimana masalah teknologi mempengaruhi sistem dan bagaimana resiko pengembangan sistem. Pemodelan matematis atau teknik optimasi pada saat analisis teknis dapat digunakan untuk mempermudah analis dalam menggambarkan sistem yang akan dikembangkan. Menurut Blanchard dan Fabrycky ada beberapa kriteria penggunaan model selama analisis teknis pada sistem, yaitu
Model harus mewakili sistem yang sedang dievalusi dengan cara yang sederhana dan mudah dipahami.
Model harus menggambarkan faktor-faktor yang relevan dengan masalah yang ada dan hindari faktor yang tidak penting.
Model harus dibuat komprehensif dengan memasukkan semua faktor yang relevan dan sistem harus mampu memberikan hasil yang sama.
Desain model harus sederhana supaya memungkinkan pengimplementasian yang tepat waktu dalam pemecahan masalah.
Desain model harus dapat mengantisipasi faktor-faktor yang memungkinkan adanya modifikasi dan atau perluasan terjadi pada sistem.
Hasil dari analisis teknis meruapakan dasar apakah pengembangan sebuah sistem akan diteruskan atau dihentikan.
3.4 Pemodelan Arsitektur Sistem Setiap sistem berbasis komputer dapat dimodelkan sebagai sebuah
pemindahan informasi dengan menggunakan arsitektur input-pemrosesanoutput. Hartley dan Pirbai [2] memperluas arsitektur ini dengan menambahkan 2 fitur tambahan yaitu pemrosesan antarmuka pemakai dan pemrosesan self-test. Meskipun dua fitur tambahan ini tidak selalu dipakai tetapi fitur tambahan ini umum dipakai pada pemodelan sistem berbasis komputer yang membuat model sistem menjadi lebih baik. Model sistem ini menjadi dasar bagi analisis kebutuhan dan langkah desain selanjutnya. Untuk memodelkan sistem maka digunakan model template arsitektur[2] yang mengalokasikan elemen sistem menjadi 5 bagian pemrosesan yaitu 1. antarmuka pemakai, 2.input, 3. fungsi dan kontrol sistem, 4.output dan 5. pemeliharaan dan self-test seperti yang terlihat pada gambar 3.8
Seperti halnya pemodelan pada rekayasa sistem dan perangkat lunak, template arsitektur memungkinkan analis membuat herarki sistem secara detail. Diagram konteks arsitektur menggambar sistem pada level paling atas. Diagram konteks ini membangun batas informasi diantara sistem yang akan diimplementasikan dengan lingkungan dimana sistem akan dioperasikan [2]. Sebagai contoh pada gambar 3.9 diagram konteks arsitektur untuk sistem pengurutan pembawa barang pada bidang manufaktur.
Dari diagram konteks diatas dapat saring kembali menjadi subsistemsubsistem atau modul-modul sistem dengan aliran informasi yang penting antar modul tersebut dengan menggunakan model diagram aliran arsitektur (architecture flow diagram). Diagram aliran arsitektur ini masih membagi pemrosesan sub sistem ke dalam lima elemen pemrosesn seperti diagram konteks arsitektur. Pada tingkat ini, masing-masing dari subsistem dapat berisi satu elemen sistem atau lebih (perangkat keras, perangkat lunak, manusia). Gambar 3.10 Diagram aliran arsitektur untuk sistem pengurutan barang pada gambar 3.9.
Diagram aliran arsitektur yang awal menjadi puncak dari hirarki diagram aliran arsitektur. Masing-masing bujursangkar pada diagram aliran arsitektur dapat diperluas atau didetailkan lagi ke dalam template arsitektur yang lain. Proses ini dapat digambarkan seperti pada gambar 3.11. Deskripsi naratif dari masing-masing subsistem dan definisi semua data yang mengalir pada diagram aliran arsitektur menjadi elemen penting dalam membuat spesifikasi sistem.
3.5 Spesifikasi Sistem Spesifikasi sistem merupakan dokumen yang berfungsi menggambarkan fungsi
dan kinerja sistem berbasis komputer yang akan dikembangkan, membatasi elemen-elemen sistem yang telah dialokasikan, serta memberikan indikasi mengenai perangkat lunak dan konteks sistem keseluruhan dan informasi data dan kontrol yang dimasukkan dan dikeluarkan oleh sistem yang telah digambarkan dalam diagram aliran arsitektur. Berikut salah satu format dokumen dari spesifikasi sistem yang bisa anda gunakan.
I. Pendahuluan A. Lingkup dan Tujuan Dokumen B. Tinjauan
1. Sasaran 2. Batasan
II. Fungsional dan Deskripsi Data A. Arsitektur Sistem
1. Diagram Konteks Arsitektur 2. Deskripsi Diagram Konteks Arsitektur
III. Deskripsi Subsistem A. Spesifikasi Diagram Arsitektur untuk n Subsistem
1. Diagram Aliran Arsitektur 2. Penjelasan Modul Sistem 3. Isu-isu Kinerja 4. Batasan-batasan Desain 5. Alokasi Komponen Sistem
B. Kamus Arsitektur C. Diagram dan Deskripsi Interlasi Arsitektur
IV. Hasil Pemodelan dan Simulasi Sistem A. Model Sistem yang Digunakan untuk Simulasi B. Hasil Simulasi C. Isu-isu Kinerja Khusus
V. Isu-isu Proyek A. Biaya Pengembangan B. Jadwal
VI. Lampiran
