0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan36 halaman

Dasar-Dasar Rekayasa Perangkat Lunak

Dokumen ini membahas tentang rekayasa perangkat lunak dan proses pengembangan perangkat lunak. Dokumen ini menjelaskan definisi, prinsip, manfaat, dan proses rekayasa perangkat lunak serta model dan aktivitas pengembangan perangkat lunak.

Diunggah oleh

Arinaa 16
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan36 halaman

Dasar-Dasar Rekayasa Perangkat Lunak

Dokumen ini membahas tentang rekayasa perangkat lunak dan proses pengembangan perangkat lunak. Dokumen ini menjelaskan definisi, prinsip, manfaat, dan proses rekayasa perangkat lunak serta model dan aktivitas pengembangan perangkat lunak.

Diunggah oleh

Arinaa 16
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

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

Anda mungkin juga menyukai