Saturday, May 4, 2013

Konsep Rekayasa Agenda Perangkat Lunak




Konsep Rekayasa Agenda
Perangkat Lunak
Lingkup rekayasa perangkat lunak
Pengembangan perangkat lunak berbasis objek.
Proses rekaya perangkat lunak
Model siklus hidup perangkat lunak
Penjaminan kualitas perangkat lunak
Penerapan rekayasa perangkat lunak
Permasalahan dalam pengembangan perangkat lunak.
6 (enam) praktek terbaik dalam pengembangan perangkat lunak.
Penggunaaan Rational Unified Process (RUP) dalam praktek pengembangan perangkat lunak.
Tujuan dan Sasaran
Memberi pengertian  tentang rekayasa perangkat lunak sebagai software yang bebas kesalahan, diproduksi tepat waktu, tepat anggaran, dan memenuhi kebutuhan pengguna.
Memberikan pengertian tentang populer rekayasa perangkat lunak.
Rekayasa Perangkat Lunak
Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software Engineering. Istilah Software Engineering mulai dipopulerkan tahun 1968 pada Software Engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur.
Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).

Tujuan RPL
Memperoleh biaya produksi perangkat lunak yang rendah.
Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.
Menghasilkan perangkat lunak yang biaya perawatannya rendah.
Perbandingan Tahap RPL
Ruang Lingkup
Perkembangan RPL
Batch orientation
Custom software
Hasil yang Diperoleh :
software bebas kesalahan,
diproduksi tepat waktu,
tepat anggaran,
dan memenuhi kebutuhan pengguna.

METODE REKAYASA PERANGKAT LUNAK
Dalam rekayasa perangkat lunak, diperlukan tahapan-tahapan kerja yang harus dilalui.

Rekayasa perangkat lunak yang sukses tidak hanya membutuhkan kemampuan komputasi seperti algoritma, pemrograman, dan basis data yang kuat, namun juga perlu penentuan tujuan yang baik, identifikasi cara penyelesaian, metode pengembangan, urutan aktifitas, identifikasi kebutuhan sumberdaya, dan faktor-faktor lain.

Hal-hal seperti ini disebut dengan metode rekayasa perangkat
Model RPL
Pada Rekayasa Perangkat Lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC)
Model RPL (cont..)
Terdapat barbagai model RPL, setiap model yang dikembangkan mempunyai karakteristik sendiri-sendiri.
Secara umum ada persamaan dari model-model ini, yaitu:
Kebutuhan terhadap definisi masalah yang jelas.
Tahapan-tahapan pengembangan yang teratur, mengikuti pola umum : analisis – design – coding – testing - maintenance
Stakeholder berperan sangat penting dalam keseluruhan tahapan
pengembangan.
Dokumentasi
Keluaran dari proses pengembangan perangkat lunak harus bernilai
ekonomis.
KENAPA MENGUNAKAN METODA RPL ?
Riset membuktikan:
30% dari proyek s/w dibatalkan sebelum selesai.
50% dari proyek memiliki kenaikan dana 180%.
Model – Model
Rekayasa Perangkat Lunak

Waterfall Model
Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model. Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model.
Disebut waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat.

Waterfall Model


Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sbb :

TAHAP INVESTIGASI
dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak
TAHAP ANALISIS
bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
TAHAP DESAIN
bertujuan menentukan spesifikasi detil dari komponenkomponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
TAHAP IMPLEMENTASI
merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakuan pengujian, pelatihan dan perpindahan ke sistem baru.
TAHAP PERAWATAN (MAINTENANCE)
dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.
Klasifikasi Prototyping
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997).
Prototyping
Reusable prototype :
Prototype yang akan ditransformasikan menjadi produk final.
Throwaway prototype :
Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
Input/output prototype :
Prototype yang terbatas pada antar muka pengguna (user interface).
Processing prototype :
Prototype yang meliputi perawatan file dasar dan proses-proses transaksi.
System prototype :
Prototype yang berupa model lengkap dari perangkat lunak.
Tahapan Prototyping
Tahapan Prototyping
Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.

Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet, database, pengolah grafik, dan software CASE (Computer-Aided System Engineering).

Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi.
Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagian-bagian dari perangkat lunak yang di-prototype-kan.
Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika diperlukan.
Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan penghilangan kode-kode yang tidak dibutuhkan, penambahan program-program yang memang dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.
PROTOTYPING
Teknik prototyping merupakan model pengembangan yang tidak memperhatikan struktur internal.
Penggunaan teknik prototyping adalah menentukan kebutuhan nyata klien, dan membangun model secara cepat untuk mempersingkat proses pengembangan software.

Unified Process Model

Unified Process
Unified Process (UP) atau kadang disebut sebagai Unified Software Development Process (USDP) adalah kerangka proses pengembangan yang bersifat use-case-driven, berpusat pada arsitektur perangkat lunak, interatif dan tumbuh-kembang (Alhir, 2005). Kerangka pengembangan ini termasuk baru dalam metodologi pengembangan perangkat lunak. UP dapat diaplikasikan pada berbagai skala proyek, mulai dari skala kecil sampai dengan skala besar.
Bagan biasa disebut sebagai “hump chart”. Terlihat ada empat tahap pengembangan yaitu inception, elaboration, construction dan transition. Selain itu tampak pula sejumlah aktivitas (disciplines) yang harus dilakukan sepanjang pengembangan perangkat lunak, yaitu, business modeling, requirements, analysis and design, implementation, test. Tahap dan aktivitas tersebut akan dilakukan secara iteratif (Ambler, 2005).
Tahapan UP
INCEPTION.
Tahapan ini merupakan tahapan paling awal dimana aktivitas penilaian terhadap sebuah proyek perangkat lunak dilakukan. Tujuannya adalah untuk mendapatkan kesepakatan dari stakeholder sehubungan dengan tujuan dan dana proyek.
ELABORATION.
Tujuan dari tahap ini adalah untuk mendapatkan gambaran umum kebutuhan, persyaratan dan fungsi-fungsi utama perangkat lunak. Hal ini penting untuk mengetahui secara lebih baik resiko-resiko proyek, baik meliputi resiko arsitektur perangkat lunak, perencanaan, maupun implementasi. Pada tahap ini telah dimulai rancang bangun perangkat lunak secara iterative melalui aktivitas-aktivitas seperti business modeling, requirements, analysis dan design meskipun baru pada tahap awal.
Tahapan UP
CONSTRUCTION
Tujuan dari tahapan ini adalah membangun perangkat lunak sampai dengan saat perangkat lunak tersebut siap digunakan.  Titik berat tahapan ini adalah pada penentuan tingkat prioritas kebutuhan / persyaratan, melengkapi spesifikasinya, analisis lebih dalam, disain solusi yang memenuhi kebutuhan dan persyaratan, pengkodean dan pengujian perangkat lunak. Jika dimungkinkan versi awal dari perangkat lunak diuji cobakan untuk mendapatkan masukan dari pengguna.
TRANSITION. Tahap ini difokuskan pada bagaimana menyampaikan perangkat lunak yang sudah jadi pada pengguna. Perangkat lunak akan secara resmi diuji oleh baik oleh penguji (tester) yang kompeten maupun oleh pengguna. Beberapa aktivitas seperti pemindahan pusat data dan pelatihan pengguna dan staf pendukung harus dilakukan pada tahap ini.
Tahapan UP
Insepsi (Inception):
mendefinisikan lingkup dari proyek.
Elaborasi (Elaboration):
perencanaan proyek, spesifikasi fitur, arsitektur dasar.
Konstruksi (Construction):
membangun produk.
Transisi (Transition):
transisi produk ke komunitas
pengguna akhir.

Tugas 1
Sebutkan pengertian dari perangkat lunak dan rekayasa perangkat lunak.
Apakah perbedaan antara program komputer dan prosedur ?
Bahasa Pemrograman apa yang mendukung multi platform ?
Sebutkan permasalahan2 dalam pengembangan software !

Jawaban Tugas 1
pengertian dari perangkat lunak dan rekayasa perangkat lunak
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi
RPL adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
2. perbedaan antara program komputer dan prosedur?
Program adalah kumpulan perintah yang dimengerti oleh Komputer
Prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi
3. Bahasa mendukung Multi Platform = JAVA
Permasalahan Pengembangan Software
Kebutuhan pengguna dan atau bisnis tidak terpenuhi.
Modul-modul tidak terintegrasi.
Sulit untuk dikelola dan dipelihara.
Sulit menemukan kesalahan.
Kinerja rendah dibawah beban tinggi.
Kurangnya koordinasi tim.
Isu-isu pengembangan dan release.
UML
Dalam pengembangan perangkat lunak dengan menggunakan UP, maka tidak lepas dari penggunaan notasi-notasi yang biasa disebut sebagai UML (Unified Modeling Language).
UML adalah sebuah bahasa pemrograman visual standard untuk pengembangan sebuah software. UML tidak hanya dapat terhubung secara langsung dengan berbagai bahasa pemrograman seperti Java, C++ dan lainnya, tetapi juga dapat terhubungan dalam Object-Oriented Database.
UML
UML merupakan bahasa standar untuk mendapatkan blueprint software.
UML digunakan untuk memvisualisasikan, spesifikasi, konstruksi, dan dokumentasi sebuah sistem. Jadi, merupakan bagian dari software development.
UML bisa untuk memodelkan sistem informasi bahkan untuk memodelkan bisnis !

UML
Untuk memahami UML, dibentuk model konseptual mengenai basic building blocks
Basic building blocks terdiri dari :
Things
Relationship
Diagram
Things merupakan abstraksi yang dihubungkan melalui relationship sehingga membentuk sebuah diagram.

UML Diagram
Diagram adalah representasi grafis dari himpunan elemen.
UML memiliki 9 diagram, yaitu :
Class diagram
Object diagram
Use case diagram
Sequence diagram
Collaboration diagram
Statechart diagram
Activity diagram
Component diagram
Deployment diagram
UML Diagram

Pemodelan secara Visual
Mengapa perlu pemodelan visual?
Mengakomodasi struktur dan behavior.
Menunjukkan bagaimana elemen-elemen sistem saling bersesuaian.
Menjaga desain dan implementasi tetap konsisten.
Menyembunyikan atau memunculkan detil bila perlu.
Meningkatkan komunikasi.
Jawabannya : UML

Pemodelan Visual dengan UML

Pemodelan Visual dengan UML
Use Case Diagram
NOTASI
Contoh Use Case Diagram
SKENARIO RESTORAN CEPAT SAJI :
PEMBELI
Pesan & bayar
KASIR
Siapkan burger
Sipkan kentang
Siapkan minum
PELAYAN
Sajikan
Contoh Use Case Diagram
SEQUENCE DIGRAM
Sequence diagram mendokumentasikan komunikasi/interaksi antar kelas-kelas.
Diagram ini menunjukkan sejumlah obyek dan message (pesan) – yang diletakkan diantara obyek-obyek didalam use case. Perlu diingat bahwa di dalam diagram ini, kelas-kelas dan aktor-aktor diletakkan dibagian atas diagram dengan urutan dari kiri ke kanan dengan garis lifeline yang diletakkan secara vertikal terhadap kelas dan aktor.
SEQUENCE DIAGRAM
NOTASI
CONTOH SEQUENCE DIAGRAM
PERMASALAHAN YG TIMBUL
Masalah selalu ada…
Kemajuan perangkat keras melebihi kemampuan membuat software
Kemampuan membangun program baru tidak dapat memenuhi permintaan program-program baru, begitu juga kecepatan membangun program  tidak dapat mengikuti kebutuhan bisnis dan pasar
Penyebaran penggunaan computer telah membuat kebergantungan masyarakat thdp komputer
Tantangan untuk membangun software dengan reliability & quality yang tinggi
Kemampuan men-support dan meningkatkan program terancam oleh design yang buruk dan keterbatasan sumberdaya

Problem Solving…
TUGAS :
Buatlah Paper yang membahas macam2 metode / model perancangan dan design Software ? Jelaskan Tahapan Iterasi yg diterapkan di model2 tersebut.
BUAT RANGKUMAN : Mana yang anda anggap paling tepat untuk digunakan ? Jelaskan Alasannya !


No comments:

Post a Comment