Title: Pemodelan Perangkat Lunak
1Pemodelan Perangkat Lunak
2Referensi
- 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
3Tools
- Power Designer 6 / Power Designer 9
- Rational Rose 7 / IBM Rational Software Architect
- Java Compiler (Netbeans, Gel, Eclipse)
4Topik dalam Pemodelan PL
- Review RPL
- Pemodelan PL
- Pemodelan Data dan CASE Tool
- UML in Depth ( Kelas, Use Case, State, dll)
- Design Pattern
5Lessons
- Perangkat Lunak
- Review Rekayasa Perangkat Lunak
- Pemodelan Perangkat Lunak
6Perangkat Lunak
7Definisi 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.
8Karateristik Perangkat Lunak
- Software is developed or engineered, not
manufactured - Software doesnt wear out
- Most software are custom built, not assembled
from existing component
9Problem 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
10Macam-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
11Perangkat 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
12Perangkat 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.
13Perangkat 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)
14Perangkat 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
15Persyaratan 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
16Persyaratan 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
17Persyaratan 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.
18Ukuran 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
19Persyaratan 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
20Persyaratan 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
21Review Rekayasa Perangkat Lunak
22Definisi 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.
23Tujuan Rekayasa Perangkat Lunak
- Meningkatkan keakuratan, performance efficiency
produk secara keseluruhan dalam pengembangan - Menerapkan metodologi yang terdefinisi dengan
baik untuk resolusi software
24Perbedaan 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.
25Perbedaan 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
26Proses 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
27Model 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
28Waterfall Development Model
29Pendekatan 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.
30Evolutionary 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.
31Evolutionary Development Model
32Evolutionary 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.
33Spiral Development Model
34Spiral 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.
35Incremental Development Model
36Incremental 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.
37Fase Utama Persyaratan Perangkat Lunak
- Studi Kelayakan
- Elisitasi dan Analisis Persyaratan
- Spesifikasi Persyaratan
- Validasi Persyaratan
38Spesifikasi Persyaratan Perangkat Lunak
39Kegiatan Perancangan Perangkat Lunak
- Perancangan Arsitektural
- Spesifikasi Abstrak
- Perancangan Interface
- Perancangan Komponen
- Perancangan Struktur Data
- Perancangan Algoritma
40Perancangan dan ImplementasiPerangkat Lunak
41Validasi Perangkat Lunak
Pengujian Unit
Pengujian Modul
Pengujian Sub Sistem
Pengujian Sistem 1
Pengujian Sistem 2
Pengujian Komponen
Pengujian Integrasi
Pengujian User
42Evolusi Perangkat Lunak
43Pemodelan Perangkat Lunak
44Pemodelan 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
45Types 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.)
46Modeling CASE Tool
- Rational Rose ? UML
- PowerDesigner ? Data Modeling
47Lambok Napitu A.md,kom
End Session