Anda di halaman 1dari 35

Pengembangan Perangakat Lunak

Berbasis Objek (PPLBO)


Introduction
Team Teaching PPLBO
Outline
Kontrak Kuliah
Definisi Software
• Kategori
• Biaya
• Fitur
Definisi Software Engineering
Generic Process Model
KONTRAK KULIAH
Detail PPLBO

2 SKS

4 Jam/Minggu

Menguasai konsep pengantar RPL, SDLC,


Pemodelan Sistem, Pengantar PBO, Desain
Antarmuka, Dasar Pengujian, Pemeliharaan
Perangkat Lunak
Silabus
• Introduction ◦ Physical Data Model
• SDLC Waterfall, Prototype ◦ Prototipe User Interface
• Software Requirement ◦ Pengujian
• Pengantar Berorientasi ◦ Kuis 2
Object (Kodular) ◦ Pemeliharaan Perangkat
• Kuis 1 Lunak (git)
• UML : Activity, Use Case ◦ Proyek Software
• UML : Class Diagram requirements
specification
• UML : Sequence Diagram
◦ Proyek SRS
• UTS ◦ UAS
Assesment

2X Kuis: 30%
Tugas: 30%
UTS: 20%
UAS: 20%
DEFINISI SOFTWARE
Referensi dan Software
Refenrensi
1. Roger S. Pressman, Software Engineering A
Practioner's Apporach, 2014
2. John Hunt, 2000, The Unified Process for Practioners:
Object-Oriented Design, UML and Java, Second
Edition, Springer Science & Business Media
Software
1. Star UML
2. Rational Rose
Apakah Software (Perangkat
lunak) itu?
Produk yang dibuat oleh software developer dan
dikelola dalam waktu tertentu

Software terdiri dari:


• Instruksi
• Data Struktur
• Dokumentasi
Kategori Software sebagai Produk
Generik Produk
• Sistem yang dipasarkan dan dijual untuk komputer secara
umum
• Contoh : Microsoft Office, Photoshop
Custom Produk
• Sistem yang dibuat berdasarkan kebutuhan pengguna
• Contoh : Sistem Pelaporan, Sistem IOT penyiram tanaman
Kenapa Software Penting?
Perkembangan ekonomi negara maju tidak dapat
dipisahkan dari software
Banyak sistem yang dikelola dengan menggunakan
software (transportasi, medis, militer dan hiburan)
Software engineer membuat inovasi (teori, metode
dan alat) yang dapat digunakan profesional
developer
Biaya pada Sotfware
Biaya software selalu mendominasi biaya komputer
secara keseluruhan.
• Biaya software lebih dari biaya hardware
Biaya lebih banyak digunakan untuk mengelola
software dari pada untuk membuatnya.
Software engineering berkaitan dengan
pengembangan software yang hemat biaya.
Fitur pada Software
Hal ini merupakan karakteristik yang membedakan
software yang satu dengan yang lain.
• Software dikembangkan tidak diproduksi seperti di pabrik
sehingga kualitasnya berbeda-beda
• Software tidak “aus” akan tetapi dapat memburuk
(performa turun) karena ada perubahan yang dilakukan.
• Banyak software dikembangkan secara custom, pada era
modern telah menggunakan reuseable components.
Penggunaan VS Performa
Contoh Software ?
1. Sistem software
2. Software teknik/biomedis
3. Software embedded
4. Aplikasi web
5. Kecerdasan Buatan
SOFTWARE ENGINEERING
Software Engineering ?
Definisi IEEE
• Software engineering adalah cara yang sistematis, disiplin,
terukur untuk mengembangkan, mengoperasikan dan
memelihara software
Pentingnya Software Engineering
Semakin banyak, individu dan masyarakat
bergantung pada software yang canggih.
• Developer harus mampu menghasilkan sistem yang andal
dan dapat dipercaya secara ekonomis dan cepat.
Untuk jangka panjang, biasanya lebih murah untuk
menggunakan metode dan teknik software
engineering daripada hanya menulis program seolah-
olah adalah proyek pemrograman pribadi.
• Sebagian besar biaya adalah biaya untuk mengubah
perangkat lunak setelah digunakan.
FAQ Software Engineering
Pertanyaan Jawaban
Apakah Software? Softawre terdiri dari program komputer, struktur data, dan dokumentasi.
Produk perangkat lunak (Software) dapat dikembangkan untuk pelanggan
tertentu atau dapat dikembangkan untuk pasar umum.
Apakah kriteria Software yang Perangkat lunak (software) yang baik harus memberikan fungsionalitas
bagus/bermutu? dan kinerja yang diperlukan kepada pengguna dan harus dapat
dipertahankan, dapat diandalkan, dan dapat digunakan.
Apakah definisi software Rekayasa perangkat lunak (Software engineering) adalah teknik yang
engineering? berkaitan dengan semua aspek produksi perangkat lunak.
Apakah perbedaan antara Ilmu komputer berfokus pada teori dan fundamental; rekayasa perangkat
software engineering dan ilmu lunak berkaitan dengan praktik pengembangan dan menghasilkan
komputer? perangkat lunak yang bermanfaat.
Apakah perbedaan software Rekayasa sistem berkaitan dengan semua aspek pengembangan sistem
engineering dan rekayasa sistem berbasis komputer termasuk perangkat keras, perangkat lunak, dan
(system engineering)? rekayasa proses. Rekayasa perangkat lunak adalah bagian dari proses
yang lebih umum.
Kriteria Software yang Bagus
Karakteristik Produk Deskripsi
Maintainability Perangkat lunak harus dicoding sedemikian rupa sehingga dapat
berkembang untuk memenuhi perubahan kebutuhan pelanggan. Ini adalah
atribut penting karena perubahan perangkat lunak merupakan persyaratan
yang tak terhindarkan dari lingkungan bisnis yang berubah.
Dependability and security Ketergantungan perangkat lunak mencakup serangkaian karakteristik
termasuk keandalan, keamanan, dan keselamatan. Perangkat lunak yang
dapat diandalkan tidak boleh menyebabkan kerusakan fisik atau ekonomi
jika terjadi kegagalan sistem. Pengguna yang tidak diharapkan (malicious)
seharusnya tidak dapat mengakses atau merusak sistem.
Efficiency Perangkat lunak tidak boleh menggunakan sumber daya sistem secara boros
seperti siklus memori dan prosesor. Karenanya efisiensi mencakup responsif,
waktu pemrosesan, pemanfaatan memori, dll.
Acceptability Perangkat lunak harus dapat diterima oleh tipe pengguna yang ditarget. Ini
berarti bahwa harus dapat dimengerti, dapat digunakan dan kompatibel
dengan sistem lain yang mereka gunakan.
Layer Software Engineering
tools
methods
process model
a “quality” focus

Setiap pendekatan teknik harus bertumpu pada komitmen organisasi terhadap


kualitas (quality) yang mendorong budaya peningkatan proses yang berkelanjutan
Proses (process) layer sebagai dasar mendefinisikan kerangka kerja dengan
kegiatan untuk menghasilkan software secara efektif. Tetapkan konteks di mana
produk diproduksi, milestones dicapai, kualitas dipastikan baik dan perubahan
dikelola.
Metode (method) menyediakan cara teknis untuk membangun perangkat lunak.
Ini mencakup banyak tugas termasuk komunikasi, analisis kebutuhan, pemodelan
desain, pembangunan program, pengujian dan bantuan (support)
Tools menyediakan suport otomatis dan semi-otomatis untuk proses dan metode
GENERIC PROCESS MODEL
Generic Process Model

kumpulan kegiatan, tindakan,


dan tugas yang dilakukan
ketika produk akan dibuat.

Komunikasi, Perencanaan, Pemodelan,


Kontruksi, Implementasi

Umbrella Activities membantu tim perangkat


lunak mengelola dan mengendalikan
kemajuan/progress, kualitas, perubahan, dan
risiko.
Proses dalam Pengembangan
Software
Proses adalah kumpulan kegiatan, tindakan, dan
tugas yang dilakukan ketika produk akan dibuat.
• Tidak kaku
• Untuk memilih tidakan dan tugas kerja yang sesuai

Tujuan proses
• memberikan perangkat lunak secara tepat waktu dan
dengan kualitas yang memadai untuk memuaskan
customer yang telah memberikan dana dan yang akan
menggunakannya.
5 Aktivias Generic Process Framework
1. Komunikasi: berkomunikasi dengan pelanggan untuk
memahami tujuan dan memenuhi persyaratan
2. Perencanaan: membuat ”map" mendefinisikan pekerjaan
dengan menggambarkan tugas, risiko dan sumber daya,
produk kerja dan jadwal kerja.
3. Pemodelan: Buat "sketsa", seperti apa arsitekturnya,
bagaimana bagian-bagian penyusunnya bersatu dan
karakteristik lainnya.
4. Konstruksi: pembuatan kode dan pengujian.
5. Implementasi: Dikirim ke pelanggan yang mengevaluasi
produk dan memberikan umpan balik berdasarkan
evaluasi.
Adaptasi Proses (Process Model)
Prosesnya harus gesit (agile) dan mudah beradaptasi (adaptable)
terhadap masalah. Proses yang diadopsi untuk satu proyek
mungkin jauh berbeda dari proses yang diadopsi dari proyek lain.
Di antara perbedaannya adalah:

•Keseluruhan alur (overall flow) aktivitas, tindakan, dan tugas


•Sejauh mana tindakan dan tugas didefinisikan dalam setiap
kegiatan
•Sejauh mana produk kerja diidentifikasi dan diperlukan
•Cara kegiatan penjaminan kualitas diterapkan
•Cara dimana pelacakan proyek dan kontrol kegiatan diterapkan
•Tingkat kedetailan dan ketelitian suatu proses dijabarkan
•Sejauh mana pelanggan dan stakeholder terlibat dalam proyek
•Tingkat otonomi yang diberikan kepada tim software
•Sejauh mana organisasi dan peran tim ditentukan
Penerapan Software Engineering
Bagaimana penerapan software engineering sesuai
dengan proses komunikasi, perencanaan, pemodelan,
konstruksi dan implementasi ?
George Polya menguraikan inti dari pemecahan
masalah tersebut, yaitu:
1. Understand the problem (komunikasi dan analisis).
2. Plan a solution (pemodelan dan software design).
3. Carry out the plan (pembuatan kode).
4. Examine the result for accuracy (pengujian dan quality assurance).
Prinsip David Hooker untuk
Implementasi Software Engineering
1: The Reason It All Exists: provide values to users
2: KISS (Keep It Simple, Stupid! As simple as possible)
3: Maintain the Vision (otherwise, incompatible design)
4: What You Produce, Others Will Consume (code with
concern for those that must maintain and extend the
system)
5: Be Open to the Future (never design yourself into a
corner as specification and hardware changes)
6: Plan Ahead for Reuse
7: Think! Place clear complete thought before action
produces better results.
Mitos dalam Pengembangan Software
Myth 1: Setelah mengcoding program dan berfungsi,
pekerjaan sudah selesai.
Reality: Semakin cepat Anda mencoding, semakin lama akan
selesai. 60% hingga 80% dari semua upaya dihabiskan setelah
perangkat lunak dikirim ke customer untuk pertama kalinya.
Myth 2: Sampai saya menjalankan program, saya tidak dapat
menilai kualitasnya.
Reality: technical review adalah filter kualitas yang dapat
digunakan untuk menemukan cacat dari software sejak awal
proyek.
Myth 3: software engineering akan membuat kita membuat
dokumentasi yang banyak dan tidak perlu dan akan selalu
memperlambat kita.
Reality: ini bukan tentang membuat dokumen. Ini tentang
menciptakan produk yang berkualitas. Kualitas yang lebih baik
mengurangi pekerjaan yang berulang. Pekerjaan yang
berkurang menghasilkan waktu pengiriman yang lebih cepat.
Studi Kasus
Pompa insulin personal
• Sistem tertanam pada pompa insulin yang digunakan oleh
penderita diabetes untuk mengontrol glukosa darah.
Sistem Kontrol Pompa Insulin
Mengumpulkan data dari sensor gula darah dan
menghitung jumlah insulin diperlukan untuk disuntik
Perhitungan didasarkan pada tingkat perubahan kadar
gula darah.
Mengirim sinyal ke pompa mikro untuk memberikan
dosis insulin yang benar.
Sistem keselamatan pada kondisi kritis (Safety-critical
system) karena gula darah rendah dapat menyebabkan
kerusakan otak, koma, dan kematian; kadar gula darah
tinggi memiliki konsekuensi jangka panjang seperti
kerusakan mata dan ginjal.
Arsitektur Hardware Pompa Insulin
Activity model dari pompa Insulin
Kesimpulan
Softawre terdiri dari program komputer, struktur
data, dan dokumentasi.
Produk perangkat lunak (Software) dapat
dikembangkan untuk pelanggan tertentu atau dapat
dikembangkan untuk pasar umum.
Software engineering adalah teknik yang berkaitan
dengan semua aspek produksi perangkat lunak.
Terdapat 5 layer pada software engineering
Generic process model terdiri dari 3 bagian utama
To do list
• Install Star UML
• Mempelajari SDLC

Anda mungkin juga menyukai