Materi 1a
Kuliah
IT-505 PSBO
©Ayi Purbasari, S.T.,
M.T.
Tujuan
• Bagian ini menjelaskan tentang pengertian
perangkat lunak dan rekayasa perangkat
lunak.
– Mengetahui arti, karakteristik, dan jenis-jenis perangkat lunak sebagai produk rekayasa
perangkat lunak.
– Memahami tujuan pengggunaan rekayasa perangkat lunak.
– Mengetahui proses pengembangan perangkat lunak. – Mengetahui aktivitas dan model proses
pengembangan perangkat lunak.
Defnisi Rekayasa
• Rekayasa:
– Upaya pembentukan produk
berkualitas
melalui pendekatan
yang sistematis yang berdasarkan sains
dan matematika dalam merancang,
11/29/18 -ap- 5
Defnisi Perangkat
Lunak .. (1)
• “1) Instruksi (program
komputer) yang bila
dieksekusi dapat
menjalankan fungsi
tertentu; 2) Struktur data
yang dapat membuat
program memanipulasi
informasi; dan 3)
Dokumen yang
Defnisi Perangkat
Lunak .. (2)
• “Program komputer, prosedur, aturan,
dan dokumentasi yang berkaitan
dengannya serta data yang berkaitan
dengan operasi suatu sistem
komputer.” The Institute of Electrical
and Electronics Engineers (IEEE)
[IEE93]
11/29/18 -ap- 7
Defnisi Perangkat
Lunak .. (3)
• Perangkat Lunak = Program Komputer +
Data + Dokumen
– Program Komputer: Kumpulan instruksi yang apabila dieksekusi oleh sistem komputer akan menjalankan proses atau fungsi tertentu.
– Data: Struktur data atau basis data yang
memungkinkan data yang tersimpan padanya dimanipulasi oleh program.
Defnisi RPL .. (1)
• Rekayasa perangkat lunak merupakan suatu proses rancang bangun perangkat lunak yang
menggunakan kaidah-kaidah ilmu, seperti prinsip, konsep, dan metode sehingga dihasilkan
perangkat lunak yang berkualitas (dapat digunakan dan beroperasi dengan benar,
bermanfaat, serta sesuai dengan kebutuhan yang diinginkan).
• Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat
lunak secara ekonomis namun andal dan dapat bekerja secara efsien pada komputer (Fritz
11/29/18 -ap- 9
Defnisi RPL .. (2)
• Suatu disiplin yang mengintegrasikan proses,
metode, dan alat (tools) untuk pembangunan
perangkat lunak komputer. [PRE01]
• Suatu
teknologi berlapis
, yaitu alat bantu
(tools), metode dan model proses, dengan
kualitas sebagai dasar utamanya. [PRE01]
• Teori, metode, dan alat bantu yang
dibutuhkan untuk mengembangkan perangkat
lunak. [SOM96]
11/29/18 -ap- 11
Apa Tujuan RPL? .. (1)
• Fokus dari rekayasa perangkat lunak adalah
kualitas:
– 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, dalam arti efektif dan sesuai dengan anggaran yang telah ditetapkan.
– tepat waktu, baik saat pembuatan, penyerahan ke pemakai, maupun instalasinya.
– setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan
dapat dipertanggungjawabkan kebenarannya (ada proses verifkasi
Apa Tujuan RPL? .. (2)
• Lebih jauh lagi, rekayasa perangkat lunak harus mampu
menghasilkan produk perangkat
lunak dengan atribut kualitas
: [IEE93]– Maintainability: Perangkat lunak harus memungkinkan untuk dikembangkan sesuai dengan perubahan kebutuhan pemakai.
– Dependability: Berkaitan dengan rentang karakteristik yang mencakup keandalan, keamanan, dan keselamatan.
Perangkat lunak harus tidak menyebabkan kerusakan fsis dan ekonomis saat sistem mengalami kegagalan.
– Efciency: Perangkat lunak harus efsien dalam penggunaan sumber daya seperti memory dan siklus pemroses.
Pengembangan
Proses Pengembangan
Perangkat Lunak
• Pengembangan perangkat lunak didefnisikan sebagai suatu proses dimana kebutuhan
pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai model proses yang digunakan
11/29/18 -ap- 15
Proses Pengembangan
Perangkat Lunak
Proses
Oramg Alat Bantu
Produk
Kumpulan aktivitas
Kumpulan aktivitas
dengan menggunakan
dengan menggunakan
pendekatan atau
pendekatan atau metode
metode teknis tertentu teknis tertentu
Kumpulan perangkat
Kumpulan perangkat
bantu atau kakas
bantu atau kakas
otomatis dan
otomatis dan
semi-otomatis
otomatis
Kode sumber
Kode sumber
executable
executable
programs
programs, model-, model-model, dan
Fase Proses
Perangkat Lunak
• Software engineering encompasses a
process, management techniques,
technical methods, and the use of tools.
– Defnition phase - focuses on
what
(information engineering, software project planning, requirements analysis).
– Development phase - focuses on
how
(software design, code generation, software testing).
– Support phase - focuses on
change
(corrective maintenance, adaptive maintenance, perfective maintenance, preventative
11/29/18 -ap- 17
Model Proses
Perangkat Lunak
• Linear Sequential Model (old fashioned but
reasonable approach when requirements are
well understood)
• Prototyping Model (good frst step when
customer has a legitimate need, but is clueless
about the details, developer needs to resist
pressure to extend a rough prototype into a
production product)
• Rapid Application and Development (RAD)
Model (makes heavy use of reusable software
components with an extremely short
Linear Sequential
design code test
project initiation
requirement gathering estimating scheduling tracking
11/29/18 -ap- 19
Iterative Models
Communication
Quick plan
Construction of
prototype
Modeling Quick design
Delivery & Feedback
Iterative Models
Communication
Planning
Modeling
business modeling data modeling process modeling
Construction
component reuse automatic code
business modeling data modeling process modeling
Construction
component reuse automat ic code generation testing Mo d e lin g
business modeling data modeling process modeling
Co n st ru ct io n
11/29/18 -ap- 21
The Incremental Model
C o m m u n i c a t i o n
increment # 1
increment # 2
delivery of 1st increment
delivery of 2nd increment
delivery of nth increment increment # n
project calendar time
Metode Pengembangan
Perangkat Lunak
• Metodologi adalah kesatuan metode-metode,
prosedur-prosedur, konsep-konsep pekerjaan,
aturan-aturan yang digunakan oleh suatu ilmu
pengetahuan, seni atau disiplin yang lainnya.
• Metode adalah suatu cara, teknik yang
sistematik untuk mengerjakan sesuatu.
• Metode pengembangan perangkat lunak disini
adalah pendekatan, sudut pandang, atau
kumpulan aturan yang harus diikuti untuk
menyelesaikan tahap-tahap pekerjaan saat
melaksanakan
pengembangan
perangkat
11/29/18 -ap- 23
Beberapa Metode
• Ada beberapa pendekatan atau
metode yang sudah dikenal:
– Konvensional,
– Berorientasi Aliran Data,
– Berorientasi Data dan
– Berorientasi Objek.
Paradigma
•
Cara pandang spesifk
dalam usaha pencarian solusi
• Menyangkut
Konseptualisasi
permasalah dan solusi
11/29/18 -ap- 25
Paradigma
Konvensional
• Dekomposisi berdasarkan
fungsi
• Contoh:
– Sistem Akademik
• Fungsi Pengajaran
– Sub Fungsi Perwalian
– Sub Fungsi Pembelajaran – Sub Fungsi Evaluasi
Paradigma
Konvensional
• Structured Analysist
• Modern Structured Analysist
• Algoritma + Data Struktur = Program
Tom DeMarco
11/29/18 -ap- 27
Paradigma
Berorientasi Objek
• Dekomposisi
berdasarkan
objek
• Objek =
things
• Contoh:
– Sistem Akademik
• Objek Dosen
• Objek Mahasiswa • Objek Jadwal
Berorientasi Objek ..
(1)
• Berbeda dengan pendekatan-pendekatan
sebelumnya, metode berorientasi objek
memandang perangkat lunak yang akan
dikembangkan sebagai
suatu kumpulan
objek
yang berkorespondensi dengan
objek-objek dunia nyata.
– Pada metode ini, informasi dan proses yang dipunyai oleh suatu objek “dienkapsulasi” (dibungkus) dalam satu kesatuan.
11/29/18 -ap- 29
dosen
materi kuliah mahasiswa
Berorientasi Objek ..
(2)
Contoh :
Pengembangan P/L untuk mengolah data perkuliahan pada suatu sisitem
Berorientasi Objek ..
(3)
Sistem Akademik
Sistem Akademik
Dekomposisi berdasarkan objek atau konsep Dekomposisi berdasarkan fungsi atau proses
Dosen Jadual Kuliah
Mahasiswa Kontrak
11/29/18 -ap- 31
Abstraksi dan Pemodelan :
Berorientasi Objek ..
(5)
• Beberapa teknik pengembangan perangkat
lunak
yang
berorientasi
objek
ini
diantaranya adalah:
– Object Oriented Analysis (OOA) dan Object Oriented Design (OOD) dari Peter Coad dan Edward Yourdon (1990).
– Object Modeling Technique (OMT) dari James Rumbaugh, Michael Blaha, William Premerlan, Frederick Eddy dan William Lorensen (1991).
– Object Oriented Software Engineering (OOSE) dari Ivar Jacobson (1992).
– Metode Booch dari Grady Booch (1994).
11/29/18 -ap- 33
Paradigma
Berorientasi Objek
• Coad-Yourdon, 1990-1991
• Rumbaugh: Object
Modelling Technique,
1991
• Jacobson: Object Oriented
Software Engineering,
1992
• Booch, 1991
• Beck-Cunningham, 1994
11/29/18 -ap- 35
Paradigma
Berorientasi Objek
• Gagasan Berorientasi Objek dimaksudkan untuk diterapkan di semua tahap
pengembangan perangkat lunak,
termasuk analisis,
perancangan, implementasi
dan pemeliharaan,
dan digunakanuntuk menurunkan kesenjangan antara langkah-langkah yang perlu dilalui dalam pengembangan perangkat lunak.