Anda di halaman 1dari 41

Introduction to Software

Engineering

Tim RPL
Program Studi Teknik Informatika

1/32
Software Engineering
(Rekayasa Perangkat Lunak)
• Segala Aspek kehidupan dikendalikan oleh perangkat
lunak.
– Mengubah gaya hidup: belanja online, bersosialisasi, rapat,
komunikasi, dll
– Pengambilan keputusan: Decision Support System, Expert
System, dll
– Pusat Data & Informasi: Database, Sistem Informasi
• Biaya hardware jatuh dan biaya perangkat lunak naik cepat
• Banyak pengusaha dunia sukses di bidang Software
• Usia Bidang kajian Software Engineering masih muda &
terus berkembang
2
What is Software ?

• Software adalah dua hal, produk dan


kendaraan untuk menyampaikan sebuah
produk (informasi)

3
What is Software ?
• Software adalah sekumpulan item-item
atau objek yang membentuk konfigurasi
yang melibatkan program, dokumen, data
dan lain-lain.

4
What is Software ?
• Definisi Software menurut IEEE :
Computer programs, procedures, and
possibly associated, documentation and
data partaining to the operation of a
computer system ( IEEE Standard
Glossary of Software Engineering
Therminology, 1990 )

5
What is Software ?
• Software dirancang dan dibangun oleh software
engineer
• Software digunakan oleh siapapun dalam
masyarakat
• Software engineer mempunyai kewajiban moral
untuk membangun software yang dapat
diandalkan yang tidak merugikan orang lain.
• Pengguna perangkat lunak hanya fokus pada
produk software apa yang mereka butuhkan dan
membuat tugas mereka lengkap

6
Perangkat Lunak - Definisi

• Perangkat Lunak adalah program


komputer, prosedur, dokumentasi terkait
dan data yang berkaitan dengan
pengoperasian sistem komputer
(IEEE definition)
• Perangkat Lunak komputer merupakan
produk yang dibuat oleh para profesional
perangkat lunak dalam jangka waktu
panjang
Perangkat Lunak - Definisi

• Definisi software dari IEEE hampir identik


dengan definisi ISO.
• Sesuatu dapat dikatakan software, jika
memiliki 4 komponen seperti:
– Computer Program (the “code”)
– Procedures
– Documentation
– Data necessary for operating system
computer
(ISO, 1997, Sec. 3.11 an ISO/IEC 9000-3 Sec. 3.14)
Perangkat Lunak - Definisi

• Perangkat Lunak adalah (1) Instruksi-instruksi


(program komputer) yang ketika dijalankan
menyediakan fitur-fitur, fungsi-fungsi, dan
kinerja-kinerja yang dikehendaki, (2) struktur
data yang memungkinkan program-program
memanipulasi informasi, dan (3) informasi
deskriptif pada salinan tercetak dan bentuk-
bentuk maya yang menggambarkan
pengoperasian dan penggunaan program-
program (Roger S.Pressman, 2010)
Rekayasa Perangkat Lunak -
Definisi
Disiplin ilmu yang
membahas semua aspek
produksi perangkat lunak,
mulai dari tahap awal
spesifikasi, desain,
konstruksi, testing sampai
pemeliharaan setelah
digunakan
Rekayasa Perangkat Lunak -
Definisi
• Rekayasa Perangkat Lunak meliputi di
dalamnya suatu proses, kumpulan
metode-metode dan sederetan perkakas
(tools) yang memungkinkan para
profesional mengembangkan perangkat
lunak berkualitas tinggi
Rekayasa Perangkat Lunak -
Definisi
• IEEE [IEE93a] menyatakan: Rekayasa
Perangkat Lunak pada dasarnya
merupakan: (1) aplikasi dari suatu
pendekatan yang sistematik, disiplin dan
dapat diukur pada pengembangan,
operasi, dan perawatan perangkat lunak:
yaitu penerapan rekayasa pada perangkat
lunak. (2) Studi pendekatan-pendekatan
seperti pada (1).
Rekayasa Perangkat Lunak -
Lapisan
• Rekayasa Perangkat Lunak yang
sesungguhnya merupakan teknologi yang
berlapis

Gambar Lapisan-lapisan (layers)


Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak -
Lapisan
Perkakas menyajikan dukungan-
dukungan bagi proses dan metode

Metode menyajikan prosedur-


prosedur teknis untuk
mengembangkan/ membangun
perangkat lunak.
Mencakup di dalamnya analisis
kebutuhan, pemodelan, rancangan,
pembuatan program, pengujian &
dukungan terhadap pengguna
Proses mendifinisikan
Segala pendekatan rekayasa framework (kerangka kerja)
(termasuk rekayasa perangkat lunak) yang harus dibangun &
harus bersandar pada komitmen membentuk dasar bagi
organisasi pada peningkatan kualitas kendali menegement
proyek perangkat lunak
PERKEMBANGAN ILMU
REKAYASA PERANGKAT
LUNAK
15
Perjalanan Disiplin Ilmu Software Engineering

1. Peter J Dennings yang memimpin task force disiplin


ilmu computing memasukkan software engineering
sebagai satu disiplin ilmu (Dennings, 1999)
2. IEEE Computer Society membentuk tim khusus
untuk menyusun pohon ilmu Software Engineering
(Software Engineering Body of Knowledge,
SWEBOK) http://swebok.org
3. Software Engineering termasuk nama jurusan atau
fakultas yang diakui menurut IEEE Computing
Curricula 2005
Matriks Dennings 1999
1. Algoritma dan Struktur Data
2. Bahasa Pemrograman
3. Arsitektur Komputer
4. Sistem Operasi dan Jaringan
5. Software Engineering
6. Database dan Sistim Retrieval Informasi
7. Artificial Intelligence dan Robotik
8. Grafik
9. Human Computer Interaction
10.Ilmu Komputasi
11.Organizational Informatics
12.BioInformatik ( Peter J. Dennings, 1999 )
SWEBOK 2004
Software Requirement Software Design Software Construction

Software Requirements Fundamentals Software Design Fundamentals Software Construction Fundamentals


Requirement Process Key Issues in Software Design Managing Construction
Requirements Elicitation Software Structure and Architecture Practical Considerations
Requirements Analysis Software Design Quality Analysis and Evaluation
Requirements Validation Software Design Noations
Practical Considerations Software Design Strategies and Methods

Software Testing Software Maintenance Software Configuration Management


Software Testing Fundamentals Software Maintenance Fundamentals Management of the SCM Process
Test Levels Key Issues in Software Maintenance Software Configuration Identification
Test Techniques Maintenance Process Software Configuration Control
Test Related Measures Techniques for Maintenance Software Configuration Status Accounting
Test Process Software Configuration Auditing
Software Release Management and Delivery

Software Engineering Management Software Engineering Process Software Quality


Initiation and Scope Definition Process Implementation and Change Software Quality Management
Software Project Planning Process Definition Software Quality Management Process
Software Project Enactment Process Assesment Practical Considerations
Review and Evaluation Process and Product Measurement
Closure
Software Engineering Measurement

Software Engineering Tools and Methods Knowledge Areas of the Related Disciplines

Software Tools: Computer Engineering


Software Requirements Tools Computer Science
Software Design Tools Management
Software Construction Tools Mathematics
Software Testing Tools Project Management
Software Maintenance Tools Quality Management
Software Configuration Management Tools Software Ergonomic
Software Engineering Management Tools Systems Engineering
Software Engineering Process Tools
Software Quality Tools
Miscellaneous Tool Issues
Software Engineering Methods:
Heuristic Methods
Formal Methods
04/21/2021 Prototyping Methods 18
IEEE Computing Curricula
2005
1. Computer Engineering (CE, Teknik Komputer)
2. Computer Science (CS, Ilmu Komputer)
3. Information Systems (IS, Sistem Informasi)
4. Information Technology (IT, Teknologi
Informasi)
5. Software Engineering (SE, Rekayasa Perangkat
Lunak)

04/21/2021 19
IEEE Computing Curricula
Computer 2005
Engineering (CE) Information Computer
pengembangan sistem System (IS) Science (CS)
terintegrasi(software dan analisa kebutuhan dankonsep computing da
hardware) proses bisnis pengembangan softwa
serta desain sistem
Computer Engineer Computer Scientist
System Analyst
Information Software
Technology (IT) Engineering (SE)
pengembangan pengembangan software
dan maintenance dan pengelolaan tahapan
infrastruktur IT SDLC

04/21/2021 Network Engineer Software Engineer 20


Target Profesi IEEE CC 2005

Software Engineering (SE)


1. Indonesia: Tidak ada (masuk ke Jurusan Teknik
Informatika)
2. Lulusan mampu mengelola aktifitas pengembangan
software berskala besar dalam tiap tahapannya
(software development life cycle)

04/21/2021 21
04/21/2021 22
Software Problems (1)
Software used
after modification
Software used, but 3%
criticized or dropped Software paid for but
19% never delivered
29.7%

Software
delivered and
used as it is
2%

Software delivered but


never used
47%

1982: Nine DOD contracts amounting to $6.8 million


(source: GAO, quoted in CMU/SEI-93-EM-8)

23
Software Problems (2)

Distribution of effort : Distribution of effort :


what is believed what happens

specification
design
testing specification
encoding

testing
design

encoding
maintenance

24
The Cost of Change

Definition development After release

25
Kurva Kesalahan
Failure
rate

time time
Failure curve Failure curve
For hardware For software

*Software Engineering. Module 3. Richard Conn. University of Cincinnati, May 1993

26
Software Application Type
• System Software
• Application Software
• Embedded Software
• Engineering/ Scientific Software
• Product Software
• Web Application Software
• Artificial Intelligence Software

*SEPA 6th ed.Roger S.Pressman


27
Legacy Software
• Perangkat lunak harus diadaptasi untuk
memenuhi kebutuhan lingkungan komputasi
baru atau teknologi baru
• Perangkat lunak harus ditingkatkan untuk
impelementasi kebutuhan bisnis baru
• Perangkat lunak harus dapat diperluas agar
dapat dioperasikan dengan database atau
sistem yang lebih modern
• Perangkat lunak harus dapat memenuhi re-
architectures dalam lingkungan jaringan yang
bervariasi
*SEPA 8th ed.Roger S.Pressman
28
29
Software Myths
• Masih dipercaya oleh banyak manager dan
praktisi
• Berbahaya karena mereka dipercaya.
• Setiap praktisi dan manajer seharusnya
memahami realitas dari bisnis proses

*SEPA 6th ed.Roger S.Pressman

30
Software Myths:
Customer Myths
Myths : Reality :
• Sebuah pernyataan umum • Miskin definisi di awal
dari tujuan cukup untuk persyaratan adalah
memulai menulis penyebab utama dari
program, mengisi rincian perangkat lunak yang
nanti buruk dan terlambat.

• Persyaratan proyek terus • Biaya perubahan untuk


berubah, tetapi memperbaiki kesalahan
perubahan dapat dengan software meningkat
mudah ditampung karena secara dramatis pada
software bersifat fleksibel tahap selanjutnya dari
kehidupan perangkat
lunak
31
Software Myths :
Practitioner’s myths
Myths : Reality :
• Sekali program ditulis dan • 60% -80% dari usaha yang
bekerja, pekerjaan praktisi dikeluarkan pada program
dilakukan terjadi setelah
disampaikan kepada
pelanggan.
• Sampai sebuah program • Software merupakan
sedang berjalan, tidak ada ulasan dapat lebih efektif
cara untuk menilai dalam menemukan
kualitas kesalahan dari pengujian
untuk kelas-kelas tertentu

32
Software Mhyts
Management myhts
Myths : Reality :
• Memiliki buku standar • Buku mungkin ada, tetapi
menjadikan software akan mereka biasanya tidak up
dikembangkan dengan to date dan tidak
memuaskan digunakan

• Komputer dan perangkat • Case Tools diperlukan


lunak yang tersedia di tetapi tidak biasanya
rumah cukup. diperoleh atau digunakan

• Kita dapat selalu • “Menambahkan orang


menambahkan untuk suatu project yang
programmer belakangan terlambat membuat lebih
terlambat" -- Brooks

33
Apakah Software Engineering ?
• Software Engineering adalah teknologi yang
harus digunakan oleh setiap orang yang
akan membangun software, dengan melalui
serangkaian proses, menggunakan
sekumpulan metode dan alat bantu (tools)
(Pressman, 1997)

34
WHY
SOFTWARE
ENGINEERING???

35
Why Software Engineering ?
• Untuk mendapatkan software yang benar dan
untuk membuat software menjadi benar
• Software adalah sesuatu yang kompleks dalam
hal:
– Domain problem: Business Rule
– Data size: Digital and Non Digital
– Solution: Algorithm
– Place or Sites

36
Why Software Engineering ?
• Software harus benar (correct):
– Berdasarkan business rule
– Sejalan dengan segala sesuatu dan semua pihak
yang terkait
• Pembangunan software harus dikelola dengan
baik untuk memelihara kebenarannya
(correctness)

37
Bagaimana seharusnya SE
dijalankan ?
• There are 2 things to be considered in SE:
– Product = Software:
• Programs
• Documents
• Data
– Process of how the software is build:
• Management process
• Technical process

38
Perbedaan Software Engineering dan
Computer Science
• Computer science fokus pada teori dan
dasar-dasar; software engineering fokus
pada praktek dan pembangunan dan
pengiriman penggunaan software.
• Teori Computer science masih belum
cukup untuk menetapkan sebagai sebuah
tiang fondasi untuk software engineering.

* Software Engineering 7th ed, Ian Sommerville

39
Perbedaan Software Engineering dan
System Engineering
• System engineering fokus pada semua aspek
pembangunan sistem dasar komputer meliputi
hardware, software and process
engineering.
• Software engineering adalah bagian dari proses
yang berfokus pada pembangunan prasarana
perangkat lunak, kontrol, aplikasi dan database
pada sistem.
• System engineers terlibat dalam spesifikasi
sistem, perancangan arsitektur, integrasi dan
penyebaran.
• * Software Engineering 7th ed, Ian Sommerville
40
TERIMA KASIH
MATUR NUWUN

41

Anda mungkin juga menyukai