You are on page 1of 31

Introduction

Tim RPL
Program Studi Teknik Informatika

1/32

What is Software ?
Software adalah sekumpulan itemitem atau objek yang membentuk
konfigurasai yang melibatkan
program, dokumen, data dan lainlain.

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 )
3

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
4

What is Software ?
Software adalah dua hal, produk dan
kendaraan untuk menyampaikan
sebuah produk (informasi)

Software Evolution
Unified theory untuk evolusi software
(Lehman) :
The Law of Contuining Change (1974)
The Law of Increasing Complexity
( 1974)
The Law of Self-Regulation (1974)
The Law of Conservation of
Organizational Stability (1980)
The Law of Conservation of familiarity
( 1980)
6

Software Problems (1)


Software used, but
criticized or dropped
19%

Software used
after modification
3%

Software paid for but


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)

Software Problems (2)


Distribution of effort :
what is believed

testing

Distribution of effort :
what happens
specification
design
encoding

specification

testing

design
encoding
maintenance

The Cost of Change

Definition

development

After release

Kurva Kesalahan
Failure
rate

Failure curve
For hardware

time

Failure curve
For software

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

10

time

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

11

New Software Challenges


Ubiquitous computing ( ada dimana-mana)
Membuat software untuk semua jenis perangkat yang
memungkinkan berkomunikasi satu dengan yang lain
secara jaringan.

Netsourcing
Sederhana arsitekturnya dan aplikasinya canggih yang
diperuntukan pasar end user di dunia.

Open Source
Source code yang di distribusikan sebagai aplikasi
komputasi dan konsumen bisa melakukan modifikasi
secara mudah dan handal.

New economy
Pembangunan aplikasi yang memfasilitasi
pendistribusian komunikasi masa dan produk masa
dengan mengunakan konsep perubahan.
12

Legacy Software
Software harus bisa disesuaikan untuk
memenuhi kebutuhan lingkungan
komputasi atau teknologi baru.
Software harus harus ditingkatkan untuk
diterapkan dengan menyeseuaikan
kebutuhan bisnis baru.
Software harus bisa diperluas agar bisa di
masukkan ke dalam system atau database
yang lebih modern.
Software harus bisa di ulang arsitekturnya
untuk membuat variabel dalam lingkungan
jaringan.
13

14

The essence of Software


Engineering
Memahami masalah (komunikasi dan
analisis)
Merencanakan solusi (design modeling
n software)
Melaksanakan rencana (pembuatan
kode)
Memeriksa akurasi hasil (pengujian dan
jaminan kualitas)
15

1. Memahami Masalah
"Saya mengerti, mari kita bersama bisa
memecahkan hal ini

Sayangnya, pemahaman tidak selalu


mudah.
Siapa yang memiliki wewenang untuk
memecahkan masalah? (Siapakah
stakeholder ?)
Apa yang tidak diketahui? Apakah data,
fungsi, dan fitur yang diperlukan secara
benar untuk memecahkan masalah ?
Bisakah masalah terkotak?
16

2. Merencanakan sebuah
solusi
Pernahkah Anda melihat masalah yang
sama sebelumnya?
Apakah masalah yang sama bisa
dipecahkan?
Bisakah submasalah didefinisikan?
Bisakah anda dapat merepresentasi
sebuah solusi dengan suatu cara yang
bisa mengarahkan kepada pelaksanaan
yang efektif?
Bisakah desain model dibuat?
17

3. Melaksanakan Rencana
Apakah solusinya sesuai dengan
rencana? Apakah Source Code dapat
dilacak dari desain modenya?
Apakah setiap bagian komponen
merupakan kemungkinan dari solusi
yang benar?
Apakah desain dan kode sudah
diperiksa, atau lebih baik, dan telah
dikoreksi secara benar sesuai dengan
algoritma?
18

4. Memeriksa akurasi hasil


Apakah mungkin untuk menguji
setiap komponen?
Apakah solusi hasil sudah sesuai
dengan data, fungsi dan fitur yang
diperlukan diproduksi?

19

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

20

Software Myths:
Customer Myths
Myths :
Sebuah pernyataan
umum dari tujuan
cukup untuk
memulai menulis
program, mengisi
rincian nantinya.
Kebutuhan proyek
terus berubah, tetapi
perubahan dapat
dengan mudah
ditampung karena
software bersifat
fleksibel

Reality :
Miskin definisi di
awal adalah
penyebab utama dari
software yang
kurang baik.
Biaya perubahan
software untuk
memperbaiki
kesalahan meningkat
secara dramatis
pada tahap
selanjutnya dari
siklus perangkat
21

Software Myths :
Practitioners myths
Myths :
Setelah program
ditulis dan bekerja,
pekerjaan secara
praktek dianggap
selesai.
Tidak ada cara untuk
menilai kualitas
software sampai
sebuah program
dijalankan.

Reality :
60% -80% dari usaha
yang dikeluarkan
pada program terjadi
setelah disampaikan
kepada pelanggan.
Software adalah
review yang lebih
efektif dalam
menemukan
kesalahan dari
pengujian untuk
sebuah kesalahan
tertentu. 22

Software Mhyts
Management myhts
Myths :
Buku standar yang
ada di software
house akan bisa
untuk
mengembangkan
software secara
memuaskan.
Komputer dan
peralatan perangkat
lunak dirasa sudah
cukup.
Selalu bisa
menambahkan lebih
banyak programmer

Reality :
Buku mungkin ada,
tetapi mereka
biasanya tidak up to
date dan tidak
digunakan.
KASUS (**) alat-alat
yang diperlukan tapi
tidak biasanya
diperoleh atau
digunakan.
"Menambahkan
orang untuk sebuah
proyek software
23
membuatnya

You said I should spend more time with our children, so I


turned their faces into icons

24

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)

25

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

26

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)

27

Bagaimana seharusnya SE
dijalankan ?
2 hal yang harus dipertimbangkan dalam
SE:
Product = Software:
Programs
Documents
Data

Process of how the software is build:


Management process
Technical process

28

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.
29

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 ini 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

30

Important Questions of Software


Engineer
Mengapa begitu lama waktu untuk
mendapatkan software selesai?
Mengapa biaya pengembangan begitu
tinggi?
Mengapa kita tidak bisa menemukan semua
kesalahan sebelum kami memberikan
perangkat lunak untuk pelanggan kami?
Mengapa kita menghabiskan begitu banyak
waktu dan usaha mempertahankan program
yang ada?
Mengapa kita terus memiliki kesulitan dalam
mengukur kemajuan sebagai perangkat
31