VI045102
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,
Tugas : 30%
UTS : 30%
Power Designer 6 / Power Designer 9
Rational Rose 7 / IBM Rational Software
Architect
Review RPL
Pemodelan PL
Pemodelan Data dan CASE Tool
UML in Depth ( Kelas, Use Case, State, dll)
Day 1
Perangkat Lunak
Review Rekayasa 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
Software is developed or engineered, not
manufactured
Software doesn’t “wear out”
Most software are custom built, not assembled
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.
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
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
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
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
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
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
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
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
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
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
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
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
Meningkatkan keakuratan, performance &
efficiency produk secara keseluruhan dalam pengembangan
Menerapkan metodologi yang terdefinisi
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
Rekayasa Sistem berhubungan dengan semua
aspek pengembangan sistem berbasis komputer, termasuk perangkat keras, perangkat lunak dan rekayasa proses.
Rekayasa Perangkat Lunak adalah bagian dari
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,
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
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
Pengembangan Eksplorasi:
Sistem berubah dengan adanya fitur-fitur tambahan dari user.
Prototype yang dapat dibuang (
Throw-Away):
Memahami persyaratan user untuk
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
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.
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
Studi Kelayakan
Elisitasi dan Analisis Persyaratan
Spesifikasi Persyaratan
Studi
Kelayakan Model SistemModel Sistem
Persyaratan User dan Sistem
Persyaratan User dan Sistem
Dokumen Persyaratan
Perancangan Arsitektural
Spesifikasi Abstrak
Perancangan Interface
Perancangan Komponen
Perancangan Struktur Data
Pengujian
Definisi
Yang Ada SistemBaru Sistem
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.
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
Rational Rose  UML