Akbar
SMKN 3 Banjarbaru
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
Power Designer 6 / Power Designer 9
Rational Rose 7 / IBM Rational Software Architect
Java Compiler (Netbeans, Gel, Eclipse)
Review RPL
Pemodelan PL
Pemodelan Data dan CASE Tool
UML in Depth ( Kelas, Use Case, State, dll)
Design Pattern
Perangkat Lunak
Review Rekayasa Perangkat Lunak
Pemodelan 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.
Software is developed or engineered, not
manufactured
Software doesn’t “wear out”
Most software are custom built, not assembled from
existing component
Sistem Operasi : Sistem Operasi (disebut juga
platform software) terdiri dari program utama dan
program low-level yang mengatur operasi dasar
komputer.
Device Driver : adalah program komputer yang
mengawal jenis-jenis peranti yang dipasangkan
(install) pada komputer
Program Utilitas: Adalah sebuah program yang
digunakan untuk Meningkatkan kapabilitas program
komputer yang telah ada pada computer.
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
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
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
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.
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)
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
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: 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 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.
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
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 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
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.
Proses membuat perangkat lunak dengan
menggunakan kaidah-kaidah atau prinsip-
prinsip rekayasa sehingga dihasilkan perangkat
lunak yang berkualitas
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
• Meningkatkan keakuratan, performance & efficiency produk secara
keseluruhan dalam pengembangan
• Menerapkan metodologi yang terdefinisi dengan baik untuk resolusi
software
• Perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang
diinginkan.
• Dapat digunakan dan beroperasi dengan benar di lingkungan
sebenarnya.
• Memberikan manfaat bagi pemakai yang menggunakannya.
• Biaya yang dikeluarkan untuk membuatnya rendah,
• Tepat waktu, baik saat pembuatan, penyerahan ke pemakai, maupun
instalasinya.
• Setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan
dapat dipertanggungjawabkan kebenarannya (ada proses verifikasi dan
validasi).
a) Understandability, membuat bagaimana agar proses mudah untuk
dimengerti
b) Visibility, Aktifitas proses menghasilkan hasil yang jelas
c) Supportability, Aktifitas Proses dapat didukung atas CASE tools
d) Acceptability, Penerimaan atas proses yang digunakan selama
pembangunan Produk Perangkat Lunak.
e) Reliability, Proses didesain dalam suatu metode untuk dihindarkan
dari kesalahan
f) Robustness, Proses dapat meneruskan dalam masalah yang tidak
diharapkan terjadi
g) Maintainabiity, Proses yang merefleksi atas perbaikan proses yang
diidentifikasi
h) Rapidity, bagaimana cepat proses pengiriman sebuah sistem dari
Spesifikasi yang ada sampai selesai
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 memperlihatkan berbagai hubungan serta
kaitan timbal balik sebagai bentuk sebab akibat
Model sebagai bentuk penyederhanaan realitas
memiliki kompleksitas yang lebih rendah daripada
realitas itu sendiri.
Model dikatakan lengkap apabila dapat mewakili
berbagai aspek dari realitas yang sedang dikaji.
Pemodelan merupakan sebuah alat menarik yang
dapat memberikan sebuah metode untuk
mengeksplorasi sistem yang kompleks.
o We model all the time, even thought we don’t
think about it
• Kita memodelkan apa yang kita pikirkan, saat kita
bicara, seperti kita membaca, saat kita
berkomunikasi
• Pikiran = model mental dari kenyataan
oPemodelan
• Memberi kesempatan bereksperimen dengan
sistem tanpa menghancurkan pada saat yang
sama
• Tujuan nya adalah bagaimana memperkenalkan
beberapa pendekatan pemodelan yang dapat
membantu kita untuk memahami bagaimana dunia
ini bekerja
Adalah cara sederhana untuk memandang suatu
masalah.
Model sebagai suatu representasi
(penggambaran) atau formalisasi dalam bahasa
tertentu (yang disepakati) dari suatu system
nyata.
Sistem nyata yaitu system yang sedang
berlangsung dalam kehidupan, system yang
menjadi titik perhatian dan dipermasalahkan.
33
Pemodelan adalah proses membangun dan
membentuk sebuah model dari suatu system nyata
dalam bahasa formal tertentu.
Model yang baik cukup hanya mengandung bagian-
bagian yang perlu saja
34
35
Hal-hal yang Mempengaruhi
Pemodelan
0 “Kacamata” (sudut pandang, visi, wawasan)
pemodel
0 Sistem nilai yang dianut pemodel
0 Ilmu pengetahuan pemodel
0 Pengalaman hidup pemodel
0 Proses perubahan image menjadi model karena
bahasa formal yang digunakan
Membantu berpikir, menerangkan fakta
Untuk komunikasi/instruksi
Untuk prediksi/penaksiran
Untuk pengendalian
Pengganti teori/bila teori sudah ada, sebagai koreksi
terhadap teori tersebut.
37
Dengan model, dapat dilakukan analisis dan
percobaan dalam situasi yang kompleks dengan
mengubah nilai atau bentuk relasi antar variable yang
tidak mungkin dilakukan pada system nyata.
Model memberikan penghematan dalam
mendeskripsikan suatu keadaan nyata
Penggunaan model dapat menghemat waktu, biaya,
tenaga, dan sumber daya berharga lainnya dalam
analisis permasalahan
Model dapat memfokuskan perhatian lebih banyak
pada karakteristik yang penting dari masalah
38
Beberapa Aspek Model
0 Model terbaik harus seimbang antara kenyataan dan
kesederhanaan
0 Terkait ruang dan waktu, kita juga mendaftar hanya
acara durasi yang tepat
0 Setiap kali kita tertarik untuk detail lebih lanjut
mengenai waktu atau ruang, kita perlu memperluas
kemampuan pemodelan dari indera dan otak kita
dengan beberapa tambahan perangkat
0 mikroskop, teleskop, kamera kecepatan tinggi, camcoder
0 Hal ini diperlukan untuk tujuan pemodelan tertentu,
skala temporal dan spasial tertentu
Mengandung semua variable yang relevan
Sederhana
Memiliki kegunaan
Mewakili persoalan
Tingkat generalisasi yang tinggi
Mekanisme transparansi
Potensial untuk dikembangkan
Peka terhadap perubahan asumsi
40
Memudahkan pengertian tentang system yang
diwakilinya
Memperbanyak alternatif untuk pengambilan
keputusan
41
Kriteria dalam memodelkan suatu sistem
Model harus mewakili (merepresentasikan)
sistem nyatanya
Model merupakan penyederhanaan dari
kompleksnya sistem, sehingga
diperbolehkan adanya penyimpangan pada
batas-batas tertentu
42
Harus diperhatikan faktor - faktor yang mempengaruhi
perilaku dari sistemnya
Variabel – variabel yang menentukan performansi dari
sistem yang diamati
Bagaimana variabel – variabel tersebut dapat dikendalikan
dan diatur
43
Contoh Model
0 Gambaran dunia yang kita lihat di sekitar
0 Berhubungan dengan penyederhanaan
0 Peta
0 Kurang detil dari banyak sisi, tetapi mencukupi
0 Foto
0 Model matematika
0 Analisis dengan berbagai cara, meramalkan perilaku
t';-"~
IRIAN JAVA
.'
~. ...
!~ ;~
, ,,'
JAVAPURA
.
SUMATR
. W:~NA·
~I
,';'it,;._ •
"SMAl
JAV
A
Peran Model
0 Model sangat penting, terutama jika kita berurusan
dengan sistem yang kompleks yang mencakup di luar
dunia fisik dan termasuk manusia, ekonomi, dan
masyarakat
0 Model dapat memberikan pemahaman, visualisasi, dan
alat komunikasi penting
0 Proses pemodelan dengan sendirinya adalah
kesempatan besar untuk membawa bersama-sama
pengetahuan dan data, dan menghadirkan mereka
dalam cara yang koheren dan terpadu
Snapshot of Reality
0 Gambar yang diciptakan oleh indera bersifat statis
0 Hanya berubah ketika realitas itu berubah
0 Saat berubah, serangkaian foto yang memberi ide perubahan
0 Kita tidak bisa memodifikasi model ini
0 Kita berimajinasi dengan bermain "bagaimana jika?"
0 Percobaan mental yang bisa kita perbuat
0 Model fisik memungkinkan kita untuk mempelajari
fitur tertentu dari sistem kehidupan nyata bahkan
tanpa memodifikasi objek sebenarnya (prototipe)
0 Suatu model pesawat ditempatkan dalam terowongan angin
untuk menilai sifat aerodinamis dari pesawat nyata
All Models are Wrong …
Some Models are Useful
0 Semua model salah karena mereka selalu lebih
sederhana dari kenyataan, dan dengan demikian
beberapa fitur dari sistem kehidupan nyata bisa
disalahtafsirkan atau diabaikan dalam model
0 Apa penggunaan pemodelan?
0 Ketika berhadapan dengan sesuatu yang kompleks, kita
cenderung untuk mempelajarinya bertahap, melihat beberapa
bagian secara utuh dan mengabaikan beberapa bagian lain
untuk mendapatkan gambaran yang lebih besar
0 Itulah apa yang kita lakukan ketika membangun model.
0 Oleh karena itu, model sangat penting untuk memahami dunia
di sekitar kita.
Model and Real-life Object
0 Jika kita memahami bagaimana sesuatu bekerja,
0 Lebih mudah untuk memprediksi perilakunya di bawah
kondisi yang berubah
0 Jika kita telah membangun sebuah model yang baik yang
telah memperhitungkan fitur penting dari objek nyata
kehidupan
0 Perilaku model di bawah kondisi tertentu kemungkinan
akan mirip dengan perilaku objek/prototipe yang
dimodelkan
0 Jika kinerja objek dipahami dan perilakunya dapat
diprediksi
0 Informasi tambahan untuk mengontrol objek
Refine The Model
0 Model perlu dibandingkan dengan prototipe dan
diperbaiki terus-menerus
0 Pengukur kriteria kecukupan model hanya sistem
kehidupan nyata dan perilakunya
0 Model hanya dapat mewakili bagian tertentu dari
sistem yang dipelajari
0 Seni membangun sebuah model yang berguna
terutama terdiri dari pilihan tingkat penyederhanaan
yang tepat agar sesuai dengan tujuan penelitian
1.Elaborasi
Pengembangan model dimulai dengan yang
sederhana dan secara bertahap dielaborasi hingga
diperoleh model yang lebih representatif.
Penyederhanaan dilakukan dengan menggunakan
system asumsi yang ketat yang tercermin pada
jumlah, sifat dan relasi variabel-variabelnya. Tetapi
asumsi yang dibuat tetap harus memenuhi
persyaratanya yakni konsistensi, Ekuivalensi dan
Relevansi.
50
2. Sinektik
Sinektik adalah metoda yang dibuat untuk
mengembangkan pengenalan masalah-masalah secara
analogi.
Sinektik menuntut kemampuan kreatif yang tinggi dari
seorang analis dalam membuat analogi yang tepat.
Sinektik didasarkan pada asumsi bahwa kesadaran
mengenai hubungan yang identik atau mirip di antara
masalah system nyata dalam skala besar akan
meningkatkan kapasitas pemecahan masalah dari seorang
analis. Dalam mengembangkan model dengan sinektik ini
dapat dihasilkan empat tipe analogi, yaitu:
51
Analogi Personifikasi
Dalam hal ini, analis berusaha membayangkan dirinya
mengalami masalah system nyata seperti yang dihadapi
oleh pengambil keputusan dalam perusahaan.
Analogi Langsung
Analis mencari hubungan yang serupa di antara dua atau
lebih situasi problematic
Contoh :
Dalam merancang pondasi tiang listrik tegangan tinggi di
daerah rawa-rawa dapat dianalogikan dengan akar pohon
kelapa di pantai.
52
Analogi Simbolik
Analis berusaha menemukan hubungan yang serupa
antara situasi problematic system nyata dengan proses
simbolik.
Contoh :
Laju mengalirnya air pada suatu tingkat volume
tertentu dlam bak dan laju pertumbuhan penduduk
dari sejumlah penduduk suatu kota.
53
Analogi Personifikasi (Dalam hal ini, Analogi
Fantasi)
Dalam membuat analogi fantasi, analis sama
sekali bebas mencari kesamaan antara situasi
problematik yang dihadapi dan beberapa masalah
perusahaan lain yang bersifat khayali.
55
Ada tiga komponen utama prinsip iterative
ini, yaitu :
Pengembangan model awal atau dugaan
Langkah-langkah atau aturan yang harus
ditempuh supaya dapat diperoleh model yang
memadai
Ukuran kompleksitas model sebagai titik akhir
di mana kita menghentikan proses iteratif.
56
Penggunaan prinsip-prinsip dasar di atas dalam
membuat suatu model perlu dilengkapi dengan
metodologi (suatu urutan proses dan prosedur
yang disusun secara sistemik dan sebagai suatu
kesatuan yang akan menghasilkan sesuatu (solusi,
keputusan, model, dsb).
Contoh metodologi :
Dalam OR (Programa linier, program dinamik,
model persediaan, model proses markov,dsb),
Peramalan, Ekonometrik,dsb.
57
Definisi Masalah
Model konseptual
Formulasi model
58
Prinsip Analisis dan Desain.
Prinsip analisis :
Untuk mencari kebutuhan pengguna dan organisasi
serta menganalisa kondisi yang ada (sebelum
diterapkan sistem informasi yang baru).
Desain :
Bertujuan menentukan spesifikasi detil dari komponen-
komponen sistem informasi (manusia, hardware,
software, network dan data) dan produk-produk
informasi yang sesuai dengan hasil tahap analisis.
Prinsip analisis
1. Domain informasi dari suatu masalah harus
direpresentasikan dan dipahami.
2. Fungsi-fungsi yang akan dilakukan oleh perangkat
lunak harus didefinisikan.
3. Tingkah laku perangkat lunak (sebagai suatu urutan
kejadian eksternal) harus diwakilkan.
4. Model-model yang menggambarkan informasi, fungsi,
dan tingkah laku harus dipecah-pecah dalam suatu cara
yang membongkar suatu detail dalam bentuk lapisan.
5. Proses analisis harus bergerak dari informasi dasar ke
detail implementasi.
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
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.
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.
Spesifikasi Versi Awal
Penjelasan
Garis Besar Pengembangan Versi Menengah
Spesifikasi
Persyaratan
Validasi
Laporan
Model Sistem Persyaratan
Kelayakan
Persyaratan
User dan Sistem
Dokumen
Persyaratan
Perancangan Arsitektural
Spesifikasi Abstrak
Perancangan Interface
Perancangan Komponen
Perancangan Struktur Data
Perancangan Algoritma
Spesifikasi Perancangan Arsitektur
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
Pengujian
Unit
Pengujian
Modul
Pengujian
Sub Sistem
Pengujian
Sistem 1
Pengujian
Sistem 2
Pengujian
Pengujian Integrasi Pengujian User
Komponen
Definisi Pengajuan
Nilai Sistem Modifikasi
Persyaratan Perubahan
Yang Ada Sistem
Sistem Sistem
Sistem Sistem
Yang Ada Baru
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
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.)
Rational Rose UML
PowerDesigner Data Modeling