505331353A1
Analisis dan Perancangan
Perangkat Lunak
Software Engineering &
Software Development
#1
SOFTWARE ENGINEERING
(REVIEW)
2
Apa yang Disebut Perangkat Lunak?
Roger S. Pressman
• 1) Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi
tertentu; 2) Struktur data yang dapat membuat program memanipulasi informasi;
dan 3) Dokumen yang menjelaskan operasi dan penggunaan program.
IEEE
• Program komputer, prosedur, aturan, dan dokumentasi yang berkaitan
dengannya, serta data yang berkaitan dengan operasi suatu sistem komputer.
3
Beberapa Jenis Perangkat Lunak
• Perangkat lunak bisnis/aplikasi (business/application
software)
• Perangkat lunak intelegensia buatan (artificial
inteligent software)
• Perangkat lunak sistem (system software)
• Perangkat lunak waktu nyata (real-time software)
• Embedded Software
• Perangkat lunak lainnya
4
Apa yang Disebut RPL?
Proses membuat perangkat lunak dengan
menggunakan kaidah-kaidah atau prinsip-
prinsip rekayasa sehingga dihasilkan perangkat
lunak yang berkualitas.
[Roger S. Pressman]
5
Kaidah-kaidah Rekayasa
• Kejelasan Masalah
• Melaksanakan Tahapan Proses
Tertentu
• Menggunakan Standar
• Menggunakan Model dan Alat Bantu
• Dokumentasi
6
Prinsip-prinsip Rekayasa
• Testability
• Maintainablity
• Integrity
• External integration is well
defined
• Ethics
• Management
7
Perangkat Lunak Berkualitas
• Memenuhi kebutuhan pemakai.
• Dapat berjalan (running) di lingkungan operasional
yang disiapkan.
• Dapat digunakan oleh pemakai (user) untuk
membantu menyelesaikan masalah atau proses
bisnis, sehingga ada nilai (value) yang diperoleh.
8
Definisi Lain (1)
Roger Pressman:
• Pembentukan dan penggunaan prinsip rekayasa (engineering)
untuk mendapatkan perangkat lunak secara ekonomis namun
andal dan dapat bekerja secara efisien pada komputer (dikutip
dari Fritz Bauer, 1968).
• Suatu disiplin, kaidah yang mengintegrasikan proses, metode,
dan alat bantu (tools) untuk pembangunan perangkat lunak
komputer.
9
Definisi Lain (2)
IEEE Computer Society:
1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance
of software; that is, the application of engineering to
software.
2) The study of approaches as in (1).
10
Mengapa RPL?
• Perangkat lunak dibuat supaya bisa digunakan (oleh pemakai)
untuk membantu menyelesaikan masalah / pekerjaan.
• Perangkat lunak digunakan oleh pemakai di lingkungan
operasional dengan teknologi tertentu sebagai bagian dari
sistem yang lebih besar.
• Perangkat lunak yang dibuat harus memenuhi apa yang
diinginkan oleh pemakai (bukan yang diinginkan developer),
ekonomis (memberikan keuntungan), dan andal (dapat
digunakan dalam jangka waktu yang lama).
11
Kapan RPL?
• Cakupan atau ruang lingkup persoalan luas dan/atau dalam
• Kompleksitas masalah dan tingkat kekritisan tinggi
• Ukuran perangkat lunak besar
• Melibatkan banyak personil pelaksana
• Waktu dan anggaran pengembangan terbatas
12
Manfaat RPL [1]
• Perangkat lunak yang dihasilkan sesuai dengan kebutuhan
yang diinginkan.
• Perangkat lunak dapat digunakan dan beroperasi dengan
benar di lingkungan sebenarnya.
• Perangkat lunak memberikan manfaat bagi pemakai yang
menggunakannya.
13
Manfaat RPL [2]
• Biaya yang dikeluarkan untuk membuatnya rendah (efisien),
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 verifikasi dan validasi).
14
Hakikat Penggunaan RPL
• Perangkat lunak dibuat supaya bisa digunakan oleh
pemakai untuk membantu menyelesaikan masalah/
pekerjaan.
• Oleh karena itu, hal pertama yang harus dilakukan saat
membuat perangkat lunak adalah memahami masalah/
pekerjaan yang akan dibantu penyelesaiannya.
The first step in solving any problem is to understand it. We often
propose solutions to problems that we do not understand and then
are surprised when the solutions fail to have the anticipated effect.
15
Hakikat Penggunaan RPL [Lanjutan]
• Perangkat lunak digunakan oleh pemakai di
lingkungan operasional dengan teknologi tertentu
sebagai bagian dari sistem yang lebih besar.
• Oleh karena itu, hal kedua yang harus dilakukan saat
membuat perangkat lunak adalah memahami lingkungan
operasional, teknologi dan sistem yang menjadi tempat
dimana perangkat lunak digunakan.
16
How an Software Engineer Solves a Problem?
• Understand the problem
• Plan a solution
• Carry out that plan
• Examine your results for accuracy
17
Knowledge Diperlukan Seorang SW Engineer
(SWEBOK Knowledge Areas Version 3, 2013)
Software Requirements Software Engineering Models and
Software Design Methods
Software Construction Software Quality
Software Testing Software Engineering Professional
Software Maintenance Practice
Software Configuration Software Engineering Economics
Management Computing Foundations
Software Engineering Mathematical Foundations
Management Engineering Foundations
Software Engineering Process
18
#2
SOFTWARE
DEVELOPMENT
19
Software Engineering Process [1]
• A set of inter-related activities that transform initial customer
inception to the release of the finished product, while
consuming resources to accommodate that transformation.
The technical and managerial activities within the software life cycle
that are performed during software acquisition, development,
maintenance and retirement.
The meta-level which is concerned with the definition,
implementation, assessment, measurement, management, change and
improvement of the software life cycle processes themselves.
20
Software Engineering Process [2]
• Seri aktivitas yang harus dilaksanakan selama siklus
hidup perangkat lunak:
Perencanaan
Pengembangan
Pengoperasian
Pemeliharaan
Evaluasi / Penghentian
21
ISO/IEC 12207:1995 Software Process
ACQUISITION MAINTENANCE
contract MANAGEMENT OPERATION
SUPPLY DEVELOPMENT
CM DOCUMENTATION PROB. RES. VERIFICATION
QA JOINT REVIEW AUDIT VALIDATION
SUPPORTING PROCESSES
INFRASTRUCTURE TRAINING IMPROVEMENT
ORGANIZATIONAL PROCESSES
22
Software Development
Proses dimana persoalan/kebutuhan pemakai diterjemahkan menjadi produk
perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai 1) model proses,
2) metode, dan 3) alat bantu yang digunakan.
Persoalan Bisnis Perangkat lunak:
Artificial Intelligent (AI) Data/database
Modul-modul program
Smart system Model proses pengembangan Dokumen teknis: SPMP, SRS,
Keamanan informasi Metode pengembangan SDD, STP, STD, STR, SW
Game / multimedia Alat bantu pengembangan version
Dll. SOP
User guide / manual
23
1) Model Proses Pengembangan
• Cara atau strategi bagaimana perangkat lunak dibuat
sedemikian rupa sehingga produk perangkat lunak tersebut
dapat diwujudkan.
• Beberapa model proses pengembangan PL:
Waterfall / Linear-Sequential Model
Prototyping Model
Spiral Model
Rational Unified Process (RUP)
Scrum
DevOps
24
Proses Pengembangan (Umum)
25
Pelaksanaan dan Artifak Pengembangan
Konstruksi
Analisis Perancangan Pengujian Deployment
(Coding)
Artifak: Artifak: Artifak: Artifak: Artifak:
Pemodelan proess Rancangan basis data Basis data (struktur dan Rencana pengujian Aplikasi dan basis data
bisnis Arsitektur PL isi / sql dump) (unit, integration, terpasang di production
Arsitektur sistem Rancangan UI Kode-kode program system) server
konseptual Spesifikasi modul-modul (source cose, API, web Deskripsi pengujian
Kebutuhan PL program service, dll.) Hasil pengujian Dokumen:
fungsional dan non- Rencana deployment
fungsional Dokumen: Dokumen: Dokumen: Panduan deployment
Software Design Software Version Software Test Plan Technical reference
Dokumen: Descripion (SDD) User Guide / Manual (STP) SOP penggunaan
Business Process Software Test aplikasi
Analysis Description (STD)
System Specification Software Test Result
Software Requirements (STR)
Specification (SRS) 26
Pelaksana Pengembangan
Tingkatan Aktivitas Pelaksana
Persoalan Analisis Persoalan Subject Matter Analyst,
Pemodelan Persoalan System Analyst
Sistem Analisis Sistem System Analyst, DBA,
Perancangan Sistem Network Engineer
Perangkat Lunak Analisis Kebutuhan System Analyst, Software
Perancangan Architect
Konstruksi (Coding) Programmer
Pengujian Software Tester
Deployment Deployment Team
27
2) Metode Pengembangan
• Pendekatan, sudut pandang, atau kumpulan aturan
yang harus diikuti untuk menyelesaikan tahap-tahap
aktivitas pengembangan perangkat lunak.
• Beberapa metode pengembangan PL:
Konvensional atau tradisional (1955)
Berorientasi Data (1975)
Berorientasi Aliran Data atau Proses (1976)
Berorientasi Objek (1980an s.d. sekarang)
28
Metode Konvensional
• Pembuatan/pengembangan PL dilakukan sektoral di masing-
masing unit organisasi dari transaksi yang dilaksanakan.
• Pendefinisian kebutuhan dilakukan berdasarkan proses
terhadap dokumen transaksi sesuai alurnya.
• Tidak menggunakan basis data.
29
Metode Berorientasi Proses
• Pembuatan/pengembangan PL dengan cara mendekomposisi
fungsi/fitur/kebutuhan dari sistem menjadi proses-proses
beserta data yang menjadi masukan/keluarannya
• Aliran data dan proses-proses tersebut selanjutnya
dideskripsikan dengan menggunakan Data Flow Diagrams
(DFD), Data Dictionary, Process Specifications/Structured
English, dan Structure Chart.
30
Metode Berorientasi Objek (MBO)
Pendekatan pembuatan/pengembangan perangkat lunak
dengan cara mendekomposisi masalah yang akan dibuat
perangkat lunaknya menjadi objek-objek atau konsep yang
berkorespondensi dengan objek-objek dunia nyata.
didekomposisi Dosen
berdasarkan objek
atau konsep Kelas
Perkuliahan Kuliah
Jadwal
masalah yang akan dibuat Mahasiswa
perangkat lunaknya
objek atau konsep dunia nyata
31
Tahap Pelaksanaan dan Artifak MBO
OOA OOD OOP OOT
Pemodelan Proses Bisnis /
Persoalan
Deskripsi Kebutuhan Fungsional
Sequence Diagram • Class Test
Kelas-kelas yang Ditulis dalam
• Use Case Diagram • Integration Test (Inter-class
Class Diagram Bahasa Pemrograman Objek
• Scenario / Flow of Event Test)
Tertentu (Java, PHP, dll.)
Class Specification • System Test
Paket-paket Kelas yang Akan
Package Diagram
disimpan di Folder Tertentu
File-file yang Mewakili Komponen
Component Diagram
Program
Alat atau Tempat dimana Program
Deployment Diagram
akan Diinstalasi
Rancangan UI / Wireframing Halaman-halaman Web / Form
Kebutuhan Informasi Rancangan Basis Data Tabel-tabel Basis Data
Dokumen SRS / SKPL Dokumen SDD / DPPL
32
3) Alat Bantu Pengembangan
• Perangkat bantu atau kakas otomatis dan semi-otomatis
yang akan digunakan untuk mendukung proses dan
metode.
• Bentuk-bentuk alat bantu pengembangan:
Diagram-diagram untuk memodelkan hasil setiap tahap
pengembangan.
Perangkat lunak untuk membantu pelaksanaan analisis,
perancangan, pembuatan program, atau pengelolaan proyek.
Bahasa pemrograman untuk penulisan program
33
Alat Bantu dan Metode Pengembangan
Tahap Pengembangan Alat Bantu
Konvensional
Analisis Flowmap
Perancangan System Flowchart, Program Flowchart
Konstruksi (Coding) Bahasa pemrograman konvensional
Tahap Pengembangan Alat Bantu
Analisis DFD, DD, p-spec, ERD
Fungsi
Perancangan Structure chart, pseudo-code
Konstruksi (Coding) Bahasa pemrograman prosedural
Tahap Pengembangan Alat Bantu
Objek
Analisis dan Perancangan UML
Konstruksi (Coding) Bahasa pemrograman objek
34
Dokumentasi Tahap Pengembangan
Tahap Pengembangan Dokumen
Analisis • Business Process Analysis
• System Spesification
• Software Requirement Specification (SRS)
Perancangan • Software Design Description (SDD)
• Database Design
Implementasi / Konstruksi • User Guide / Manual
• Software Version (Technical Reference)
Pengujian • Software Test Plan
• Software Test Description
• Software Test Result
35
Tugas #1
• Membentuk kelompok beranggotakan maks. 3 orang.
• Membuat deskripsi dari tugas RPL/Pemrograman Web dan
Basis Data yang pernah dibuat:
Deskripsi proses bisnis
Deskripsi perangkat lunak / program aplikasi web
• Kegunaan/manfaat
• User perangkat lunak / program aplikasi web
• Fungsi-fungsi (fitur) yang dibuat
Diagram E-R
Relasi antar tabel
36