Anda di halaman 1dari 47

Pemodelan Perangkat Lunak

Referensi
• Ian Somerville, Software Engineering, 6th Edition, Addison Wesley,
2001
• Roger R. Pressman, Software Engineering, 6th Edition McGraw-Hill,
2005
• Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design
Patterns: Elements of Reusable Object-Oriented Software, Addison-
Wesley, 1995
Tools

• Power Designer 6 / Power Designer 9


• Rational Rose 7 / IBM Rational Software Architect
• Java Compiler (Netbeans, Gel, Eclipse)
Topik dalam Pemodelan PL

• Review RPL
• Pemodelan PL
• Pemodelan Data dan CASE Tool
• UML in Depth ( Kelas, Use Case, State, dll)
• Design Pattern
Lessons

• Perangkat Lunak
• Review Rekayasa Perangkat Lunak
• Pemodelan Perangkat Lunak
Perangkat Lunak
Definisi Perangkat Lunak
• Perangkat Lunak adalah suatu aplikasi program komputer yang
di dalamnya terdapat:
• program itu sendiri,
• konfigurasi yang digunakan,
• dokumentasi yang menjelaskan struktur sistem,
• dokumentasi yang menjelaskan bagaimana menggunakan sistem,
• dan informasi tentang versi terbaru
• Produk Perangkat Lunak dikembangkan sesuai dengan siapa
pemakai perangkat lunak tersebut.
• Produk Perangkat lunak dibagi menjadi:
• Produk Generik, yang dijual pada pasar terbuka
• Produk Spesifik, yang dibuat dan dijual sesuai pesanan dari pemakai.
Karateristik Perangkat Lunak

• Software is developed or engineered, not manufactured


• Software doesn’t “wear out”
• Most software are custom built, not assembled from existing
component
Problem dalam Pembuatan Perangkat Lunak

• Tidak memiliki waktu yang cukup dalam mengumpulkan data pada


proses pembuatan perangkat lunak.
• Ketidakpuasan user pada S/W yang dibuat
• Kualitas S/W terkadang meragukan.
• Sulit dalam memaintenance S/W sekarang
Macam-Macam Perangkat Lunak

• Perangkat Lunak Berdasarkan Pemakai


• Generik: Perangkat lunak yang bisa digunakan secara umum
• Spesifik: Perangkat lunak yang dibuat berdasarkan pesanan
• Perangkat Lunak Berdasarkan Fungsional
• Interfacing
• Operating System
• Perangkat Lunak Aplikasi
• CASE Tools
Perangkat Lunak Berdasarkan
Pemakai
• Generik: Perangkat lunak yang digunakan secara umum.
Sebagai contoh:
• Operating System, seperti Microsoft Windows,
• Word Processing, seperti Microsoft Word, WordPad
• Spreadsheet, seperti Microsoft Excell
• Beberapa aplikasi khusus bisa dibuat menjadi generik dengan
membuatnya general dan mudah digunakan siapa saja seperti
aplikasi akuntansi, aplikasi sekolah, dan lain-lain
• Spesifik: Perangkat lunak yang dibuat berdasarkan pesanan.
Banyak Software House yang menghasilkan perangkat lunak
ini berdasarkan proyek/pesanan tertentu. Sebagai contoh:
Aplikasi Rumah Sakit, Aplikasi Pendidikan, Aplikasi
Kesehatan, dan lain-lain
Perangkat Lunak Berdasarkan
Fungsionalnya
• INTERFACING: Perangkat lunak ini menghubungkan suatu perangkat
keras tertentu, seperti hardware driver, interfaces dengan perangkat
keras lain. Misal:
• Driver untuk Kamera, Handphone atau perangkat keras lainnya
• Program interface seperti Sensor Suhu dengan LM555, PPI 8255, Komunikasi
Serial RS232.
Perangkat Lunak Berdasarkan
Fungsionalnya
• OPERATING SYSTEM: Perangkat lunak yang
menjalankan sistem komputer dan merupakan
interface dari sistem komputer dan program aplikasi
yang berjalan diatasnya.
• Beberapa OS yang dikenal secara luas:
• Microsoft Windows
• Linux dan varians-nya, seperti Redhat, SuSE, Mandrake, Debian, dsb.
• Unix
• FreeBSD
• Macintosh (Apple)
Perangkat Lunak Berdasarkan
Fungsionalnya
• PROGRAM APLIKASI: program ini digunakan untuk
keperluan tertentu, yang tujuannya membantu
pekerjaan manusia menjadi lebih mudah. Program
ini yang banyak dibahas dalam pembuatan
perangkat lunak.
• Program Aplikasi ini tergantung pada kebutuhan
dari program itu sendiri, seperti:
• Program Office
• Program Graphics Design
• Program Multimedia
• dan lain-lain
Persyaratan Perangkat Lunak

• Perangkat lunak harus memberikan bantuan dalam


merepresentasikan dan mengakses file-file eksternal yang
dibuat dengan alat bantu lain.
• Persyaratan Fungsional dan Non-Fungsional
• Persyaratan User
• Persyaratan Sistem
• Dokumentasi Persyaratan Perangkat Lunak
Persyaratan Fungsional dan Non-
Fungsional
• Persyaratan Fungsional: Pernyataan layanan
tentang bagaimana sistem harus bereaksi terhadap
input, sistem harus berlaku pada situasi-situasi
tertentu. Secara khusus menyatakan apa yang tidak
boleh dilakukan sistem.
• Persyaratan Non Fungsional: Pernyataan tentang
batasan layanan dan fungsi yang diberikan sistem.
• Persyaratan Domain: Persyaratan yang datang dari
domain aplikasi sistem dan merefleksikan
karakteristik domain tersebut
Persyaratan Non Fungsional

• Persyaratan Produk: persyaratan yang diambil dari


spesifikasi produk, seperti persyaratan hardware
untuk mendukung kinerja.
• Persyaratan Organisasi: persyaratan yang berasal
dari kebijakan dan prosedur pada organisasi.
• Persyaratan Eksternal: Persyaratan yang berasal
dari faktor eksternal terhadap sistem dan proses
pengembangannya.
Ukuran Persyaratan Non
Fungsional
 Kecepatan dalam: Transaksi yang diproses/detik, waktu
tanggal user/event atau waktu refresh layar
 Ukuran dalam: KB atau jumlah Chip RAM
 Kemudahan penggunaan dalam: waktu pelatihan atau
jumlah frame help
 Kehandalan dalam: waktu rata-rata kegagalan,
probabilitas ketidaksediaan, kecepatan terjadinya
kegagalan, atau ketersediaan
 Ketahanan dalam: waktu start ulang setelah kegagalan,
prosentase event yang gagal, atau probabilitas korupsi
data
 Portabilitas dalam: prosentase pernyataan tergantung
target, atau jumlah sistem target
Persyaratan User

• Mendeskripsikan persyaratan fungsional dan non-


fungsional sehingga dapat dipahami oleh user yang
tidak memiliki pengetahuan teknik.
• Persyaratan user harus ditulis memakai bahasa
natural, formal dan diagram intuitif yang sederhana.
Persyaratan user tidak boleh didefinisikan memakai
model implementasi.
• Masalah yang sering muncul:
• Tidak Adanya Kejelasan
• Kesimpang-siuran Persyaratan
• Penggabungan Persyaratan
Persyaratan Sistem

• Persyaratan sistem ini lebih rinci dari persyaratan user, dan berfungsi
sebagai dasar kontrak untuk implementasi sistem.
• Persyaratan sistem ini digunakan sebagai titik awal perancangan
sistem.
• Bahasa natural banyak digunakan dalam mendefinisikan persyaratan
sistem
Review Rekayasa Perangkat
Lunak
Definisi Rekayasa Perangkat Lunak
• Rekayasa Perangkat Lunak adalah disiplin ilmu yang membahas
semua aspek produksi perangkat lunak, mulai tahap awal spesifikasi
sistem sampai pemeliharaan sistem setelah digunakan.
• Perekayasa Perangkat Lunak memakai pendekatan yang sistematis
dan terorganisir untuk menghasilkan perangkat lunak berkualitas
tinggi.
Tujuan Rekayasa Perangkat Lunak

• Meningkatkan keakuratan, performance & efficiency produk secara


keseluruhan dalam pengembangan
• Menerapkan metodologi yang terdefinisi dengan baik untuk resolusi
software
Perbedaan Rekayasa Perangkat
Lunak dan Ilmu Komputer
• Ilmu Komputer berhubungan dengan teori dan metode yang
mendasari sistem komputer dan perangkat lunak. Teori ini
merupakan suatu model fisik dan analitik untuk
menyelesaikan kasus yang spesifik.
• Rekayasa Perangkat Lunak berhubungan dengan masalah-
masalah praktis untuk menghasilkan suatu perangkat lunak.
Pendekatan dilakukan dengan model bisnis dan strategi
bisnis suatu perangkat lunak.
Perbedaan Rekayasa Perangkat
Lunak dan Rekayasa Sistem
• Rekayasa Sistem berhubungan dengan semua aspek pengembangan
sistem berbasis komputer, termasuk perangkat keras, perangkat
lunak dan rekayasa proses.
• Rekayasa Perangkat Lunak adalah bagian dari Rekayasa Sistem
Proses Perangkat Lunak

• Proses perangkat lunak adalah serangkaian kegiatan yang tujuannya


untuk mengembangkan atau evolusi perangkat lunak.
• Kegiatan-kegiatan tersebut adalah:
• Spesifikasi perangkat lunak,
• Pengembangan perangkat lunak,
• Validasi perangkat lunak,
• Evolusi perangkat lunak
Model Pengembangan Sistem

• Model proses perangkat lunak adalah representasi


yang disederhanakan dari proses perangkat lunak
yang dipresentasikan dari sudut pandang tertentu
• Paradigma pengembangan model sistem :
• Waterfall Development Model
• Evolutionary Development Model
• Spiral Development Model
• Incremental Development Model
Waterfall Development Model
Pendekatan Waterfall Model

• Development activities are performed in sequential order, with


possibly minor overlap, and minimal or no iteration between
activities.
• User needs are determined, requirements are defined, and the full
system is designed, built, and tested for ultimate delivery at one
point in time. Some people refer to this as a stage-wise model.
Evolutionary Development Model

• Pengembangan Eksplorasi:
• Sistem berubah dengan adanya fitur-fitur tambahan dari user.
• Prototype yang dapat dibuang (Throw-Away):
• Memahami persyaratan user untuk mendapatkan definisi persyaratan yang
lebih baik.
Evolutionary Development Model

Spesifikasi Versi Awal

Penjelasan
Garis Besar Pengembangan Versi Menengah

Validasi Versi Akhir


Evolutionary Development Model

• Masalah-masalah dalam Pengembangan


Evolusioner
• Proses tidak dapat dilihat
• Sistem seringkali mempunyai struktur yang tidak baik
• Mungkin diperlukan alat bantu khusus
• Model pengembangan evolusioner ini cocok untuk
aplikasi yang kecil dan life-cycle yang pendek.
Spiral Development Model
Spiral Development Model

• Spiral Model Description


• The development spiral consists of four quadrants
• Quadrant 1: Determine objectives, alternatives, and constraints.
• Quadrant 2: Evaluate alternatives, identify, resolve risks.
• Quadrant 3: Develop, verify, next-level product.
• Quadrant 4: Plan next phases.
Incremental Development Model
Incremental Development Model

 Proses perangkat lunak dibagi menjadi serangkaian


increment yang dikembangkan secara bergantian.
 Keuntungan Pengembangan Incremental
 User tidak perlu menunggu seluruh sistem dikirimkan, karena
increment pertama mempunyai persyaratan kritis dan
perangkat lunak segera dapat digunakan.
 User dapat memakai increment pertama sebagai prototype
 Resiko kegagalan proyek secara keseluruhan lebih rendah
 Pengujian paling ketat diberlakukan pada increment pertama.
Fase Utama Persyaratan
Perangkat Lunak
• Studi Kelayakan
• Elisitasi dan Analisis Persyaratan
• Spesifikasi Persyaratan
• Validasi Persyaratan
Spesifikasi Persyaratan Perangkat
Lunak
Elisitasi dan
Studi
Analisis
Kelayakan
Persyaratan

Spesifikasi
Persyaratan

Validasi
Laporan
Model Sistem Persyaratan
Kelayakan

Persyaratan
User dan Sistem

Dokumen
Persyaratan
Kegiatan Perancangan Perangkat
Lunak
• Perancangan Arsitektural
• Spesifikasi Abstrak
• Perancangan Interface
• Perancangan Komponen
• Perancangan Struktur Data
• Perancangan Algoritma
Perancangan dan Implementasi
Perangkat Lunak Arsitektur
Spesifikasi Perancangan
Persyaratan Arsitektural Sistem

Spesifikasi Spesifikasi
Abstrak Perangkat Lunak

Perancangan Spesifikasi
Interface Interface

Perancangan Spesifikasi
Komponen Komponen

Perancangan Spesifikasi
Struktur Data Struktur data

Perancangan Spesifikasi
Algoritma Algoritma
Validasi Perangkat Lunak
Pengujian
Unit

Pengujian
Modul

Pengujian
Sub Sistem

Pengujian
Sistem 1

Pengujian
Sistem 2
Pengujian
Pengujian Integrasi Pengujian User
Komponen
Evolusi Perangkat Lunak

Definisi Pengajuan
Nilai Sistem Modifikasi
Persyaratan Perubahan
Yang Ada Sistem
Sistem Sistem

Sistem Sistem
Yang Ada Baru
Pemodelan Perangkat Lunak
Pemodelan Perangkat Lunak

 Pemodelan dan analisa dapat dianggap sebagai akar konsep dari


semua displin teknik karena keutamaannya dalam
mendokumentasikan dan mengevaluasi alternatif serta pilihan
desain.
 Pemodelan dilakukan pada awal analisa, spesifikasi dan validasi
persyaratan.
 Persyaratan yang dimaksud adalah semua kebutuhan pengguna,
kustomer dan stakeholder yang harus dipenuhi oleh sistem.
 Dalam pembuatan persyaratan melibatkan :
 Analisa studi kelayakan dari sistem yang akan dibuat,
 Memperoleh dan menganalisa kebutuhan dari stakeholder
 Pembuatan gambaran yang akurat terhadap sistem tentang apa yang harus
dilakukan sistem dan apa yang tidak.
 Validasi terhadap dokumen atau spesifikasi oleh stakeholder
Types of Models

 Information modeling (e.g. entity-relationship modeling, class


diagrams, etc.)
 Behavioral modeling (e.g. structured analysis, state diagrams, use
case analysis, interaction diagrams, failure modes and effects
analysis, fault tree analysis etc.)
 Structure modeling (e.g. architectural, etc.)
 Domain modeling (e.g. domain engineering approaches, etc.)
 Functional modeling (e.g. component diagrams, etc.)
 Enterprise modeling (e.g. business processes, organizations, goals,
etc.)
 Modeling embedded systems (e.g. real-time schedulability analysis,
external interface analysis, etc.)
Modeling CASE Tool

• Rational Rose  UML


• PowerDesigner  Data Modeling
Next Course : Software
system modelling

Anda mungkin juga menyukai