Senin, 01 April 2013

SYSTEM ENGINEERING

Sistem berbasis Komputer

Sistem adalah kumpulan elemen-elemen atau komponen-komponen atau subsistem-subsistem yang saling berintegrasi dan berinteraksi untuk mencapai tujuan tertentu. Sebuah sistem memiliki sistem yang lebih besar yang dinamakan supra sistem, supra sistem dimungkinkan memiliki sistem yang lebih besar, sehingga dinamakan supra dari supra sistem.

Terdapat beberapa definisi sistem yaitu :
Gordon B. Davis ( 1984 ) :
Sebuah sistem terdiri dari bagian-bagian yang saling berkaitan yang beroperasi bersama untuk mencapai beberapa sasaran atau maksud “.

Raymond Mcleod (2001) :
Sistem adalah himpunan dari unsur-unsur yang saling berkaitan sehingga membentuk suatu kesatuan yang utuh dan terpadu “.

Sebagai contoh sistem komputer memiliki subsistem perangkat lunak (software), subsistem perangkat keras (hardware), dan subsistem pengguna (brainware). Sedangkan subsistem hardware terdiri dari subsistem piranti input, piranti proses, dan piranti output. Subsistem piranti input terdiri dari komponen seperti mouse, keyboard, suara, dan sebagainya.
Sistem berasal dari bahasa Latin (systēma) dan bahasa Yunani (sustēma) adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi. Istilah ini sering dipergunakan untuk menggambarkan suatu set entitas yang berinteraksi, di mana suatu model matematika seringkali bisa dibuat.
Sistem merupakan kumpulan bagian-bagian atau sub-sub sistem yang disatukan dan dirancang untuk mencapai suatu tujuan.
Tujuan dari sistem tersebut adalah untuk mengorganisasikan sistem informasi yang baru agar dapat mengatasi berbagai masalah yang terjadi pada suatu organisasi, serta memberikan pengertian mengenai suatu bentuk sistem yang ada pada suatu organisasi serta trik-trik manageman yang berkaitan dengan sistem informasi manageman (SIM) berbasis komputer.


Gambar 3.1 Susunan Sistem

Sistem mempunyai karakteristik atau sifat-sifat yang tertentu seperti elemenelemen (elements), batasan sistem (boundary), lingkungan sistem (environments), penghubung (interface), masukan (input), pengolahan (process), keluaran (output), dan tujuan (goals).
Didalam sebuah sistem memiliki penghubung yang berfungsi melakukan interaksi antar subsistem atau elemen didalam sebuah sistem. Sistem dapat juga dapat menerima energi masukan dari elemen yang lain dan melakukan pengolahan untuk menghasilkan energi keluaran baik yang berguna maupun tidak berguna bagi sistem. Jika keluaran tidak berguna maka akan dijadikan sampah atau dibuang oleh sistem. Suatu sistem dibuat pasti memiliki tujuan tertentu. Sebuah sistem dibuat jika dapat menghasilkan tujuan sesuai dengan yang dibutuhkan.

Gambar 3.2 Transformasi Elemen Sistem


Sistem berbasis komputer adalah sistem yang komponen-komponennya atau subsistem-subsistemnya terdiri dari :
  • 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.
Keenam komponen tersebut merupakan dasar pembentuk sistem berbasis komputer, dan setiap komponen tersebut merupakan hasil aktifitas rekayasa perangkat lunak (software engineering). Perangkat lunak komputer adalah produk yang dihasilkan melalui serangkaian aktivitas proses rekayasa atau pengembangan software, yang menghasilkan aktivitas berupa :
  • Dokumen-dokumen yang menspesifikasikan program yang hendak dibangun
  • Program yang dieksekusi komputer
  • Dokumen yang menjelaskan program dan cara kerja program
  • Data berbentuk angka atau teks, yang juga berupa audio, video, gambar, dan sebagainya.

Ada beberapa elemen yang membentuk sebuah sistem, yaitu : tujuan, masukan,  proses, keluaran, batas, mekanisme pengendalian dan umpan balik serta lingkungan.  Berikut  penjelasan mengenai elemen-elemen yang membentuk sebuah sistem :
  1. Tujuan
    Setiap sistem memiliki tujuan (
    Goal), entah hanya satu atau mungkin banyak. Tujuan inilah yang menjadi pemotivasi yang mengarahkan sistem. Tanpa tujuan, sistem menjadi tak terarah dan tak terkendali. Tentu saja, tujuan antara satu sistem dengan sistem yang lain berbeda.
  2. Masukan
    Masukan (
    input) sistem adalah segala sesuatu yang masuk ke dalam sistem dan selanjutnya menjadi bahan yang diproses. Masukan dapat berupa hal-hal yang berwujud (tampak secara fisik) maupun yang tidak tampak. Contoh masukan yang berwujud adalah bahan mentah, sedangkan contoh yang tidak berwujud adalah informasi (misalnya permintaan jasa pelanggan).
  3. Proses
    Proses merupakan bagian yang melakukan perubahan atau transformasi dari masukan menjadi keluaran yang berguna dan lbih bernilai, misalnya berupa informasi dan produk, tetapi juga bisa berupa hal-hal yang tidak berguna, misalnya saja sisa pembuangan atau limbah. Pada pabrik kimia,  proses dapat berupa bahan mentah. Pada rumah sakit, proses dapat berupa aktivitas pembedahan pasien.
  4. Keluaran
    Keluaran (
    output) merupakan hasil dari pemrosesan. Pada sistem informasi, keluaran bisa berupa suatu informasi, saran, cetakan laporan, dan sebagainya.
  5. Batas
    Yang disebut batas (
    boundary) sistem adalah pemisah antara sistem dan daerah di luar sistem (lingkungan). Batas sistem menentukan konfigurasi, ruang lingkup, atau kemampuan sistem. Sebagai contoh, tim sepakbola mempunyai aturan permainan dan keterbatasan kemampuan pemain. Pertumbuhan sebuah toko kelontong dipengaruhi oleh pembelian pelanggan, gerakan pesaing dan keterbatasan dana dari bank. Tentu saja batas sebuah sistem dapat dikurangi atau dimodifikasi sehingga akan mengubah perilaku sistem. Sebagai contoh, dengan menjual saham ke publik, sebuah perusahaan dapat mengurangi keterbasatan dana.
  6. Mekanisme Pengendalian dan Umpan Balik
Mekanisme pengendalian (control mechanism) diwujudkan dengan menggunakan umpan balik (feedback), yang mencuplik keluaran. Umpan balik ini digunakan untuk mengendalikan baik masukan maupun proses. Tujuannya adalah untuk mengatur agar sistem berjalan sesuai dengan tujuan.
  1. Lingkungan
    Lingkungan adalah segala sesuatu yang berada diluar sistem. Lingkungan bisa berpengaruh terhadap operasi sistem dalam arti bisa merugikan atau menguntungkan sistem itu sendiri. Lingkungan yang merugikan tentu saja harus ditahan dan dikendalikan supaya tidak mengganggu kelangsungan operasi sistem, sedangkan yang menguntungkan tetap harus terus dijaga, karena akan memacu terhadap kelangsungan hidup sistem.


Rekayasa Sistem
System Engineering atau 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, 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.


  1. 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 data tersebut. 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.2 dibawah ini.




Gambar 3.2 Hirarki Rekayasa Perangkat Lunak

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.

  1. Rekayasa Produk
Rekayasa produk disebut juga dengan rekayasa sistem 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:

Analisis 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.

3.4.2 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.
  • Adakah teknologi untuk membangun sistem?
  • Batasan apa saja yang akan dialokasikan terhadap jadwal dan biaya?
  • Pengembangan dan sumber daya apa saja yang dibutuhkan?
Jika sistem atau produk yang akan dibangun berupa produk yang akan dijual ke pelanggan, ada beberpa pertanyaan yang bisa diajukan yaitu
  • Bagaimana produk tersebut dapat bersaing dengan produk yang telah ada?
  • Pasar apa saja yang potensial bagi produk yang akan dibangun?
Setelah semua informasi dikumpulkan pada aktivitas identifikasi kebutuhan. Informasi tersebut akan dispesifikasikan dalam sebuah dokumen konsep sistem.

3.4.3 Studi Feasibilitas
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.
  1. KelayakanTeknis
Studi mengenai fungsi, sasaran dan kinerja yang perlu dipertimbangkan yang dapat mempengaruhi kemampuan sistem yang akan dikembangkan.
Pertimbangan yang dihubungkan dengan kelayakan teknis meliputi
  • Resiko pengembangan
  • Keberadaaan sumber daya
  • Teknologi
  1. Kelayakan Legal
Studi mengenai pertimbangan yang perlu dilakukan mengenai kontrak, pelanggaran atau liabilitas yang akan dihasilkan dari sistem yang akan dikembangkan.
  1. 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



  1. Pemodelan Arsitektur Sistem
Setiap sistem berbasis komputer dapat dimodelkan sebagai sebuah pemindahan informasi dengan menggunakan arsitektur input-pemrosesan-output. Pemodelan Arsitektur Sistem 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 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.


Gambar 3.3 Template Arsitektur Sistem


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.
Sebagai contoh pada gambar 3.4 diagram konteks arsitektur untuk sistem pengurutan pembawa barang pada bidang manufaktur.



Gambar 3.4 diagram konteks arsitektur untuk sistem pengurutan pembawa barang
pada bidang manufaktur

Dari diagram konteks diatas dapat saring kembali menjadi subsistem- subsistem 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.5 Diagram aliran arsitektur untuk sistem pengurutan barang pada
barang manufaktur

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.
Deskripsi naratif dari masing-masing subsistem dan definisi semua data yang mengalir pada diagram aliran arsitektur menjadi elemen penting dalam membuat spesifikasi sistem.







Gambar 3.6 Hirarki Diagram Aliran Arsitektur


SEKIAN DAN TERIMA KASIH . 




















Selasa, 19 Maret 2013

RPL PART II

MODEL PROSES PERANGKAT LUNAK

Proses rekayasa perangkat lunak : Serangkaian kegiatan dan hasil yang berhubungan dengannya, yang menuju pada dihasilkannya produk perangkat lunak.

Kegiatan-kegiatan mendasar yg umum bagi semua proses Perangkat Lunak :

1. Spesifikikasi Perangkat Lunak Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
2. Pengembangan (Perancangan dan Implementasi) Perangkat Lunak Perangkat lunak yang memenuhi spesifikasi harus di produksi
3. Validasi Perangkat Lunak à Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan oleh pelanggan.
4. Evolusi Perangkat Lunak Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.

Berikut ini adalah contoh model proses pengembangan perangkat lunak : 

Model proses perangkat lunak masih menjadi object penelitian, tapi sekarang ada banyak model umum atau paradigma yang berbeda dari pengembangan perangkat lunak, antara lain:
· Pendekatan Waterfall
Berisi rangkaian aktivitas proses seperti yang telah diuraikan diatas dan disajikan dalam proses yang terpisah, seperti spesifikasi kebutuhan, implementasi desain perangkat lunak, uji coba dst. Setelah setiap langkah didefinisikan, langkah tersebut di sign off dan pengembangan dilanjutkan pada langkah berikutnya.
· Pengembangan secara evolusioner
Pendekatan ini interleaves aktivitas spesifikasi, pengembangan dan validasi. Sistem awal dengan cepat dikembangkan dari kastamer untuk memproduksi sistem yang memenuhi kebutuhan kastamer. Kemudian sistem disampaikan. Sistem itu mungkin diimplementasikan kembali dengan pendekatan yang lebih terstruktur untuk menghasilkan sistem yang kuat dan maintable.
· Transformasi formal
Pendekatan ini berdasarkan pembuatan spesifikasi sistem formal secara matematik dan transformasi spesifikasi dengan menggunakan metode matematik atau dengan suatu program. Transformasi ini adalah correctnesspreserving ini berarti bahwa kita dapat yakin program yang dikembangkan sesuai dengan spesifikasi.
· Penggabungan sistem dengan menggunakan komponen-komponen yang dapat digunakan kembali (reuse).
Teknik ini menganggap bagian-bagian dari sistem sudah ada. Proses pengembangan sistem lebih berfokus pada penggabungan bagian-bagian daripada pengembangan tiap bagian.


Dalam gambar diatas, proses berada ditengah-tengah sebuah segitiga yang menghubungkan tiga faktor yang sangat besar pengaruhnya terhadap kualitas perangkat lunak dan untuk kerja organisasional. Ketrampilan dan motivasi yang diperlihatkan manusia merupakan satu-satunya faktor yang paling berpengaruh pada kualitas dan untuk kerja tim. Teknologi yang menghuni proses juga berpengaruh. Segitiga proses yang berada dalam lingkaran yang menggambarkan kondisi lingkungan yang menyangkut lingkungan pengembangan, kondisi bisnis dan karakteristik pelanggan.
Mengukur realibilitas proyek perangkat lunak secara tidak langsung yaitu mengambl serangkaian metrik berdasarkan keluaran yang diambil oleh proses. Kelauaran menyangkut pengukuran kesalahan yang ditemukan sebelum pelepasan perangkat lunak, cacat yang disampaikan dan dilaprokan oleh pemakai akhir, produk kerja yang dikirim, usaha manusia yang dilakukan, waktu kalender yang digunakan, konfirmasi jadwal, serta pengukuran yang lain.

Waterfall/Linear Sequential Model
Model ini adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut ini ada dua gambaran dari waterfall model. Sekalipun keduanya menggunakan nama-nama fase yang berbeda, namun sama dalam intinya.
Fase-fase dalam Waterfall Model menurut referensi Pressman:

Fase-fase dalam Waterfall Model menurut referensi Pressman:



Fase-fase dalam Waterfall Model menurut referensi Sommerville:


Dimodelkan setelah siklus rekysa konvensional, model sekuensial linier melingkupi aktivitas – aktivitas sebagai berikut:
1. Rekayasa dan pemodelan sistem/informasi
Karena sistem merupakan bagian dari sebuah sistem yang lebihbesar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software harus berhubungan dengan elemen-elemen yang lain seperti software, manusia, dan database. Rekayasa dan anasisis sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta disain tingkat puncak. Rekayasa informasi mancakup juga pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis.
2. Analisis kebutuhan Software
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khusunya pada software. Untuk memahami sifat program yang dibangun, analis harus memahami domain informasi, tingkah laku, unjuk kerja, dan interface yang diperlukan. Kebutuhan baik untuk sistem maupun software didokumentasikan dan dilihat lagi dengan pelanggan.
3. Desain
Desain software sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Proses desain menterjemahkan syarat/kebutuhan ke dalam sebuah representasi software yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi software.
4. Generasi Kode
Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.
5. Pengujian
Sekali program dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal software, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan – kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan.
6. Pemeliharaan
Software akan mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah software yang dilekatkan). Perubahan akan terjadi karena kesalahan – kesalahan ditentukan, karena software harus disesuaikan untuk mengakomodasi perubahan – perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan software mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.



Evolutionary Software Process Models
Bersifat iteratif/ mengandung perulangan. Hasil proses berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Dua model dalam evolutionary software process model adalah:

1. 
Incremental Model


KETERANGAN GAMBAR SEBAGAI BERIKUT :

  • Kombinasikan elemet-element dari waterfall dengan sifat iterasi/perulangan.
  • Element-element dalam waterfall dikerjakan dengan hasil berupa produk dengan spesifikasi tertentu, kemudian proses dimulai dari fase pertama hingga akhir dan menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi kebutuhan yang ditetapkan oleh pengguna.
  • Produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk yang komplit dihasilkan.
  • Model ini cocok jika jumlah anggota tim pengembang/pembangun PL tidak cukup.
  • Mampu mengakomodasi perubahan secara fleksibel.
  • Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk yang sudah bisa berfungsi dengan spesifikasi dasar.
Ada pula masalah-masalah tentang Incremental Model daiantaranya adalah :1. Cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding)
2. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.

Contoh Gambar Spiral Model :



Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor :
  • Objective settings (menentukan tujuan): menentukan tujuan dari fase yang ditentukan. Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui, dan sudah direncanakan.
  • Risk assessment and reduction (Penanganan dan pengurangan resiko): setiap resiko dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan, misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.
  • Development and Validation (Pembangunan dan pengujian): Setelah evaluasi resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user interface dominan, maka membuat prototype User Interface. Jika bagian keamanan yang bermasalah, maka menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi sistem model waterfall lebih cocok.
  • Planning: Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop selanjutnya.


Pembagian sektor tidak bisa saja dikembangkan seperti pada pembagian sektor berikut pada model variasi spiral di bawah ini:

§ Customer communication: membangun komunikasi yang baik dengan pengguna/customer.
§ Planning: mendefinisikan sesumber, batas waktu, informasi-informasi lain seputar proyek
§ Risk analysis: identifikasi resiko managemen dan teknis
§ Engineering: pembangunan contoh-contoh aplikasi, misalnya prototype
§ Construction and release : pembangunan, test, install dan support.
§ Customer evaluation: mendapatkan feedback dari pengguna beradasarkan evaluasi PL pada fase engineering dan fase instalasi.


Pada model spiral, resiko sangat dipertimbangkan. Resiko adalah sesuatu yang mungkin mengakibatkan kesalahan. Model spiral merupakan pendekatan yang realistik untuk PL berskala besar. Pengguna dan pembangun bisa memahami dengan baik software yang dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik. Namun demikian, waktu yang cukup panjang mungkin bukan pilihan bagi pengguna, karena waktu yang lama sama dengan biaya yang lebih besar.











Jumat, 01 Maret 2013

RPL PART I



REKAYASA PERANGKAT LUNAK SEBAGAI PRODUK


PERANGKAT LUNAK
Perangkat Lunak (Software) tidak sama dengan program komputer. Perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan, yang diperlukan untuk membuat agar program beroperasi dengan benar.

RPL atau Software Engineering (SE) Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai
dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Perangkat Lunak yang dibuat
harus mampu:
  • Tepat waktu
  • Tepat anggaran
  • Meningkatkan kinerja
  • Mengoperasikan prosedur sistem dengan benar
  • Sistem Perangkat Lunak terdiri dari :Sejumlah program yg terpisahFile-file konfigurasi Dokumentasi sistem Dokumentasi User
Perangkat lunak merupakan kumpulan dari program, prosedur, dan dokumen data lain yang saling berhubungan yang merepresentasikan masalah di dunia nyata yang dikonfigurasikan dalam sebuah bentuk aplikasi yang harus
dikerjakan komputer.

Produk Perangkat Lunak :

Perangkat lunak tidak sama dengan produk perangkat keras Produk perangkat lunak dikembangkan (developed) atau direkayasa (engineered). Sebagian besar dikembangkan atau dibangun berdasrkan pemesanan dan sebagian kecil dibuat secara paket. Tidak dipabrikkan seperti pabrik perangkat keras, misal komputer, mobil. Perangkat lunak secara pemakaian tidak pernah AUS layaknya perangkat keras.

Dua tipe produk perangkat lunak :

Produk Generik - Sistem stand-alone standar yg diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka ke siapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped. Contoh : pengolah kata (word processor).
Produk pesanan (yang disesuaikan) - Sistem yg dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak. Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol lalu lintas udara.

Beberapa Ciri Karateristik Rekayasa Perangkat Lunak :

Menurut Pressman (2001) , ada beberapa karakteristik perangkat lunak dibandingkan dengan perangkat keras yang perlu diketahui, yaitu:
  • Perangkat lunak itu dibangun atau direkayasa, tidak dihasilkan dengan menggunakan mesin/taangan seperti perangkat keras.
  • Perangkat lunak itu tidak akan usang atau lusuh sejalan dengan waktu.
  • Perangkat lunak akan terus menerus dibuat menurut pesanan, sadangkan perangkat keras akan disusun dengan menggunakan komponen.

Berdasarkan Aplikasinya , Rekayasa Perangkat Lunak Di Bagi 7 Bagian Yaitu :
  • Perangkat Lunak Sistem (Sistem Software) Sekumpulan program yang ditulis untuk kepentingan program lain, contoh editor,driver dan lain-lain 

  • Perangkat Lunak Waktu Nyata (Real Time Software) Perangkat lunak yang digunakan untuk mengukur/menganalisis atau mengontrol proses pemasukan data dari lingkungan luar sampai menghasilkan laporan yang diinginkan 

  • Perangkat Lunak Bisnis (Business Software) Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau fasilitas pengambilan keputusan manajemen, contoh sistem akuntansi,inventory, payroll dan lain-lain 

  • Perangkat Lunak Rekayasa dan Sains (Engineering and Scientific Software) Perangkat lunak yang digunakan di dalam bidang aplikasi teknik dan kerekayasaan Perangkat lunak jenis ini biasanya berhubungan dengan komputasi data numerik, CAD (Computer Aided Design), simulasi sistem, dan lain-lain. 

  • Embedded Software Perangkat lunak yang digunakan untuk mengontrol suatu produk dan sistem dimana perangkat lunak tersebut disimpan. Biasanya ditempatkan di ROM, contoh Tombol di Microwave Oven 

  • Perangkat Lunak Komputer Pribadi (Personal Computer Software) Banyak digunakan pada aplikasi yang bersifat perorangan, contohnya :pengolah kata, spreadsheet, game, DBMS dan lain-lain. 

  • Perangkat Lunak Intelegensia Buatan (Artificial Intelligent Software) Dibuat dengan menggunakan teknik algoritma non-numerik untuk memecahkan masalah yang kompleks, digunakan dalam bidang aplikasi kecerdasan buatan, contohnya : game, expert sistem, neural network, Turbo Prolog, dan lain-lain.

Beberapa Proses Kerja Perangkat Lunak Adalah Serangkaian kegiatan yang menghasilkan perangkat lunak. Terdapat 4 kegiatan pada proses perangkat lunak,yaitu :







  • Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien pada komputer (Fritz Bauer, 1968). 
  • Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993). 
  • Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer (Pressman, 97). 
  • Merupakan aplikasi dari prinsip-prinsip sains untuk mengurutkan transformasi masalah menjadi solusi yang dapat bekerja dengan baik


Tujuan Rekayasa Perangkat Lunak  :


Menghasilkan sebuah perangkat lunak yang berkualitas. Yang dimaksud dengan
berkualitas dapat dilihat dari tiga sisi, sisi sponsor (individu atau organisasi yang telah
mengeluarkan biaya dalam pembangunan perangkat lunak), sisi pemakai (siapapun
yang menggunakan perangkat lunak tersebut), sisi maintainer / modifier (yang
memelihara dan memodifikasi perangkat lunak tersebut) dengan biaya yang efisien
dan tepat pada waktunya.
Berikut Gambar Parameter Perangkat Lunak Yang Berkualitas Berdasarkan Sudut Pandang :





Sisi Sponsor :
Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang. Sponsor
 ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas
organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan
dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat
harus handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan,
modifikasi dan peningkatan dari sistem tersebut harus serendah mungkin.
Sisi Pemakai :
Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan
 tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi
yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien,
perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu
pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari,
mudah digunakan dan mudah untuk diingat.
Sisi Maintainer/modifier :
Perangkat lunak tersebut memiliki sangat sedikit error pada saat penginstallan
pertama (catatan : sangat kecil kemungkinannya untuk menghasilkan perangkat
lunak yang 100 % bebas dari bug). Selain itu perangkat lunak tersebut harus
terdokumentasi dengan baik. Source code juga harus mudah dibaca, terstruktur
dan dirancang dengan baik dan bersifat modular.


Beberapa Gambar Perangkat Lunak Sebagai Produk :