2.SE system emergent legacy

An Introduction to
Software Engineering

PRE TEST
• Apa yang anda
ketahui tentang
software ?
• Apa yang anda
ketahui tentang
software engineering
(rekayasa perangkat
lunak) ?

Software ??

UNIT MASUKAN (INPUT)

Mouse

Webcam


Joystick
Lightpen

OMR

Special-function keyboard

Trackpad
Trackball
Alphanumeric keyboard

Hand-held Scanner
Kamera Digital

OUTPUT UNIT

Printer

Plotter


speaker

LCD proyektor

LCD panel

ALAT PENYIMPANAN DAN PROSESOR

What is software?
• Computer programs and associated documentation
such as requirements, design models and user
manuals.
• Instruksi (program komputer) yang bila
dieksekusi dapat menjalankan fungsi tertentu;
• Struktur data yang dapat membuat program
memanipulasi informasi; dan
• Dokumen yang menjelaskan operasi dan
penggunaan program

What is software?

• Software products may be developed for a
particular customer or may be developed for
a general market.
• Software products may be
– Generic - developed to be sold to a range of
different customers e.g. PC software such as
Excel or Word.
– Bespoke (custom) - developed for a single
customer according to their specification.

• New software can be created by developing
new programs, configuring generic software
systems or reusing existing software.

What is software?
Office
Application

Simulation


Multimedia
Application

Operating
System

SOFT
WARE

Oh, I see...
personal
software

Programming
IDE

What is software
engineering?
• Software engineering is an
engineering discipline that is

concerned with all aspects of
software production.
• Proses membuat perangkat lunak
dengan menggunakan kaidah-kaidah
atau prinsip-prinsip rekayasa
sehingga dihasilkan perangkat lunak
yang berkualitas.

What is the difference between software
engineering and computer science?
• Computer science is concerned with
theory and fundamentals;
• software engineering is concerned
with the practicalities of
developing and delivering useful
software.

What is a software process?
• A set of activities whose goal is the
development or evolution of software.

• Generic activities in all software
processes are:
– Specification - what the system should
do and its development constraints
– Development - production of the software
system
– Validation - checking that the software
is what the customer wants
– Evolution - changing the software in
response to changing demands.

What is a software process
model?
• A simplified representation of a software
process, presented from a specific
perspective.
• Examples of process perspectives are
– Workflow perspective - sequence of activities;
– Data-flow perspective - information flow;
– Role/action perspective - who does what.


• Generic process models
– Waterfall;
– Iterative development;
– Component-based software engineering.

Problem Solving
COMPUTER
SCIENCE

Teori

CUSTOMER

Fungsi
Computer

SOFTWARE
ENGINEERING
Tools dan

Teknik utk
Menyelesaikan
Problem

Problem

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 bagi developer), dan andal (dapat
digunakan dalam jangka waktu yang lama).


KAPAN RPL ?
• Ukuran perangkat lunak besar:
– Cakupan atau ruang lingkup
persoalan luas dan dalam.
– Kompleksitas masalah dan tingkat
kekritisan tinggi.

• Melibatkan banyak personal
pelaksana.
• Waktu dan anggaran pengembangan
terbatas.

MANFAAT RPL








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

SOFTWARE ENGINEERING BODY OF
KNOWLEDGE
SWEBOK Knowledge Areas:



Software requirements



Software design



Software construction



Software testing



Software maintenance



Software configuration management



Software engineering management



Software engineering process



Software engineering tools and methods



Software quality

DOKUMEN PERANGKAT
LUNAK
• Software Project Management Plan (SPMP)
• Software Requirement Specification
(SRS)
• Software Design Description (SDD)
• Software Test Plan (STP)
• Software Test Description (STD)
• Software Test Result (STR)
• Software Version
• User Guide / User Manual

Rekayasa sistem berbasis
komputer
Rekayasa Perangkat Lunak

ian sommerville 2004 Software
engineering chapter 2

Tujuan
• Mengetahui mengapa perangkat lunak pada
suatu sistem dipengaruhi oleh isu rekayasa
sistem yang lebih luas
• Mengetahui konsep properti sistem baru
(emergent) seperti kehandalan, kinerja,
keselamatan dan keamanan.
• Memahami mengapa lingkungan sistem harus
dipertimbangkan selama proses perancangan
sistem
• Memahami rekayasa sistem dan proses
pengadaan sistem
ian sommerville 2004 Software
engineering chapter 2

Topics
• Properti sistem baru
• Rekayasa sistem
• Organizations, people and computer
systems
• Sistem legacy

ian sommerville 2004 Software
engineering chapter 2

What is a system?
• Koleksi dari beberapa komponen yang
saling berhubungan dan bekerja sama
untuk meraih tujuan yang sama
• Dapat berupa software, hardware,
electronic hardware yang dioperasikan
• Komponen sistem saling bergantung
dengan komponen sistem yang lain

ian sommerville 2004 Software
engineering chapter 2

Kategori sistem
• Technical computer-based systems
– Sistem yang termasuk didalamnya hardware
dan software tetapi operator dan proses
sistem tersebut tidak menjadi bagian dari
sistem.
• Socio-technical systems
– Technical sistem ditambah proses operasi
dan orang yang menggunakan dan
berinteraksi dengan sistem. Diatur dan
diawasi oleh peraturan organisasi.

ian sommerville 2004 Software
engineering chapter 2

Socio-technical system
characteristics
– Properti sistem keseluruhan yang bergantung
dengan hubungan komponen sistem
– Tidak menghasilkan output yang sama meski diberi
input yang sama karena periliaku sistem yang
hanya sebagian bergantung pada operator manusia
– Meningkatkan dukungan pada tujuan organisasi

ian sommerville 2004 Software
engineering chapter 2

Properti sistem baru
• Atribut sistem secara keseluruhan. Beberapa
sub sistem membentuk sistem yang lengkap
• Konsekuensi dari hubungan komponen sistem
• Dapat diukur setelah komponennya
diintegrasikan dan terintegrasi membentuk
sebuah sistem

ian sommerville 2004 Software
engineering chapter 2

Contoh properti sistem baru
Property

Description

Volume

The volume of a system (the total space occupied) varies depending on how the
component assemblies are arranged and connected.

Reliability

System reliability depends on component reliability but unexpected interactions can
cause new types of failure and therefore affect the reliability of the system.

Security

The security of the system (its ability to resist attack) is a complex property that
cannot be easily measured. Attacks may be devised that were not anticipated by the
system designers and so may defeat built­in safeguards.

Repairability

This property reflects how easy it is to fix a problem with the system once it has been
discovered. It depends on being able to diagnose the problem, access the components
that are faulty and modify or replace these components.

Usability

This property reflects how easy it is to use the system. It depends on the technical
system components, its operators and its operating environment.

ian sommerville 2004 Software
engineering chapter 2

Types of emergent property
• Functional properties
– Muncul ketika semua bagian sistem bekerja sama
untuk mencapai tujuan tertentu. Contoh : sepeda
memiliki
properti
fungsional
menjadi
alat
transportasi ketika telah dirakit dari beberapa
komponen

• Non-functional emergent properties
– Keandalan, kinerja, keselamatan dan keamanan.
Berhubungan
dengan
perilaku
sistem
dengan
lingkungan
operasionalnya.
Properti
tersebut
seringkali menjadi sangat penting untuk computer
based sistem karena kegagalan sedikit saja dapat
mengakibatkan sistem tidak dapat digunakan secara
keseluruhan.
ian sommerville 2004 Software
engineering chapter 2

Kompleksitas properti sistem
baru
• Karena saling bergantungnya komponen,
kesalahan dapat merambat keseluruh sistem
• Kegagalan sistem seringkali muncul secara
tak terduga pada hubungan internal komponen
• Mungkin tidak mungkin untuk mengantisipasi
semua hubungan antara komponen

ian sommerville 2004 Software
engineering chapter 2

Pengaruh kehandalan
• Hardware reliability
– Kemungkinan hardware komponen rusak dan berapa
lama komponen tersebut mampu diperbaiki

• Software reliability
– Sebagaimana
sering
software
komponen
menghasilkan
output
yang
salah.
Kesalahan
software berbeda dengan hardware karena software
tidak dapat habis

• Operator reliability
– Seringkah operator berbuat kesalahan ?

ian sommerville 2004 Software
engineering chapter 2

Hubungan kehandalan
• Kegagalan hardware dapat memberikan
signal palsu yang menurut software
input masih dianggap input yang normal
• Eror software dapat mengakibatkan alarm
menyala dan dapat memicu operator
stress dan membuat operator mudah
membuat kesalahan
• Lingkungan dimana sistem tersebut
dipasang dapat mempengaruhi kehandalan
sistem
ian sommerville 2004 Software
engineering chapter 2

Properti yang lain
• Performa dan kehandalan dapat
diukur
• Properti yang memiliki perilaku
tidak boleh muncul pada sistem.
– Sistem tidak boleh digunakan user
yang tidak memiliki ijin(security)
– Sistem tidak boleh berjalan dalam
kondisi yang tidak aman (safety)

ian sommerville 2004 Software
engineering chapter 2

Rekayasa sistem
• Menentukan, merancang,
melaksanakan, validasi,
mengimplementasikan, dan
memelihara sistem socio-technique

ian sommerville 2004 Software
engineering chapter 2

Proses rekayasa sistem
• Umumnya Menganut model ‘waterfall’ karena
kebutuhan pengembangan paralel pada setiap
sistem
– Software biasanya harus mengkompensasi masalah
hardware
– Melibatkan engineer dari berbagai disiplin ilmu
yang harus bekerja sama
– Banyak kesalah pahaman, karena berbeda disiplin
ilmu mengakibatkan ketidak samaan kosakata dan
banyak negoisasi yang dibutuhkan.

ian sommerville 2004 Software
engineering chapter 2

The systems engineering
process

ian sommerville 2004 Software
engineering chapter 2

Inter-disciplinary
involvement

ian sommerville 2004 Software
engineering chapter 2

definisi persyaratan sistem
• Aktifitas mendefinisikan persyaratan sistem
ditujukan untuk mencari persyaratan sistem
secara menyeluruh. Biasanya dipusatkan pada
:
– Fungsional abstrak :fungsi dasar pada
sistem didefinisikan pada tingkat
abstrak.
– Properti sistem : persyaratan non
fungsional untuk sistem secara umum
– Karakteristik yang tidak diinginkan

ian sommerville 2004 Software
engineering chapter 2

Tujuan sistem
• Harus merumuskan mengapa sistem tersebut
diadakan untuk lingkungannya.
• Tujuan fungsional ( contoh)
– Menyediakan sistem alarm api dan penyusup
untuk gedung yang menyediakan peringatan
internal dan external dari api/penyusupan
• Tujuan organisasi
– Untuk meyakinkan bahwa semua pekerjaan dalam
gedung tidak terganggu hal seperti adanya
api atau penyusupan

ian sommerville 2004 Software
engineering chapter 2

Masalah persyaratan sistem
• Sistem yang kompleks biasanya dibangun
untuk mengatasi masalah yang kompleks :D
– Masalah yang tidak dipahami secara detail
– Merubah sistem yang dalam taham spesifikasi

• Mengantisipasi pengembangan
hardware/komunikasi selama sistem berjalan
• Sulit untuk mendefinisikan non-fungsional
requirement tanpa harus tahu struktur
komponen dari sistem

ian sommerville 2004 Software
engineering chapter 2

Proses desain sistem








Kebutuhan partisi
– Mengelompokkan persyaratan pada group yang tepat
Identifikasi sub sistem
– Indetifikasi paket sub sistem yang secara
kolektif dapat memenuhi persyaratan sistem.
Menetapkan perysaratan pada sub sistem
– Dapat menyebabkan masalah ketika COTS (comm. Of
the shelf/produk yang sudah jadi) diterapkan,
Spesifikasi fungsional sub sistem
Mendefinisikan antarmuka sub sistem
– Pengembangan sub sistem secara parallel

ian sommerville 2004 Software
engineering chapter 2

The system design process

ian sommerville 2004 Software
engineering chapter 2

Masalah pada desain sistem
• Pembagian komponen hardware,software dan
manusia dapat melibatkan negoisasi yang
rumit.
• Masalah design yang rumit biasanya
diasumsikan ‘dapat’ diselesaikan dengan
software
• Platform hardware dapat tidak cocok dengan
requirement software. Jadi software harus
melakukan kompensasi terhadap hardware

ian sommerville 2004 Software
engineering chapter 2

Desain dan persyaratan
• Rekayasa persyaratan dan desain sistem
sangat terkait erat
• Kendala yang ditimbulkan oleh lingkungan
dan sistem yang lain membatasi desain,
sehingga menjadikan desain yang kita
rancang menjadi sebuah persyaratan
• Desain awal diperlukan untuk membuat
persyaratan terstruktur
• Desain membuat kita belajar lebih mengenai
persyaratan

ian sommerville 2004 Software
engineering chapter 2

Spiral model of
requirements/design

ian sommerville 2004 Software
engineering chapter 2

Pemodelan sistem
• Model yang digunakan untuk menampilkan
pandangan abstrak ketika sebuah sub
sistem membentuk sistem
• Termasuk informasi yang mengalir pada
tiap sub sistem
• Umumnya Ditampilkan dalam bentuk blok
diagram
• Dapat mengidentifikasi perbedaan tipe
komponen fungsional dalam model

ian sommerville 2004 Software
engineering chapter 2

Burglar alarm system model

ian sommerville 2004 Software
engineering chapter 2

Sub-system description
Sub-system

Description

Movement sensors

Detects movement in the rooms monitored by the system

Door sensors

Detects door opening in the external doors of the building

Alarm controller

Controls the operation of the system

Siren

Emits an audible warning when an intruder is suspected

Voice synthesizer

Synthesizes a voice message giving the location of the suspected intruder

Telephone caller

Makes external calls to notify security, the police, etc.

ian sommerville 2004 Software
engineering chapter 2

ATC system architecture

ian sommerville 2004 Software
engineering chapter 2

Pengembangan sub-sistem
• Biasanya project dikembangkan parallel
(hardware,software,communication)
• Melibatkan COTS ( produk jadi )
• Kurangnya komunikasi pada saat team
mealkukan implementasi
• Birokrasi dan mekanisme yang lamabat ketika
melakukan perubahan sistem dapat
mengakibatkan jadwal pengembangan
diperpanjang karena adanya pengerjaan ulang

ian sommerville 2004 Software
engineering chapter 2

Integrasi sistem
• Proses menempatkan hardware, software dan
people menjadi satu membuat sebuah sistem
• Harus di tangani secara bertahap sehingga
sub sistem dapat diintegrasikan satu
persatu
• Masalah antar muka antara subsistem sangat
umum terjadi di tingkat ini
• Pengiriman/penempatan komponen sistem yang
tidak dikoordinasikan dapat menimbulkan
masalah

ian sommerville 2004 Software
engineering chapter 2

Installasi sistem
• Setelah seleasi, sistem harus diinstall
pada lingkungan customer
– Asumsi lingkungan kemungkinan salah
– Adanya penolakan dari manusia ke sebuah
sistem yang baru
– Sistem mungkin harus berdampingan dengan
sistem yang ada untuk sementara waktu
– Permasalahan pada instalasi fisik
( cabling)
– Identifikasi pelatihan operator

ian sommerville 2004 Software
engineering chapter 2

Evolusi sistem
• Sistem yang besar memiliki umur yang panjang.
Sistem harus berevolusi untuk memenuhi
perubahan persyaratan
• Evolusi identik dengan mahal
– Perubahan harus dianalisis dari sudut
pandang teknis maupung bisnis
– Interaksi Sub sistem dapat menimbulkan
masalah yang tidak terduga
– Struktur sistem yang rusak ketika perubahan
dibuat

• Existing Sistem yang harus dipelihara
terkadang disebut dengan legacy systems.
ian sommerville 2004 Software
engineering chapter 2

System decommissioning
• Membuat sistem berhenti dari
layanan setelah penggunaan selama
software tersebut berjalan.
• Membutuhkan pembuangan material
(e.g dangerous chemicals) yang
dapat mengotori lingkungan
• Membutuhkan data di
restrukturisasi dan dikonversi
untuk digunakan sistem yang lain
ian sommerville 2004 Software
engineering chapter 2

Organisations/people/system
s
• Sistem socio teknik adalah sistem
organisasi yang bertujuan untuk
membantu tujuan organisasi/bisnis
• Jika kita tidak mengerti
lingkungan organisasi dimana
sistem diterapkan, sistem akan
kesulitan untuk memenuhi kebutuhan
yang sebenarnya dari organisasi
dan penggunaannya.
ian sommerville 2004 Software
engineering chapter 2

Faktor human dan organisasi
• Process changes
– Apakah sistem membutuhkan perubahan proses
kerja pada lingkungan?
• Job changes
– Apakah
sistem
membutuhkan
skill
user
tambahan pada lingkungan karena terdapat
perubahan cara kerja?
• Organisational changes
– Apakah sistem merubah kekuasaan
struktur dalam organisasi?

ian sommerville 2004 Software
engineering chapter 2

politis

/

Proses organisasi
• Proses dari rekaya sistem yang tumpang
tindih dan memberi pengaruh pada proses
pengadaan organisasi
• Proses operasi adalah proses yang
melibatkan penggunaan sistem untuk tujuan
tertentu.

ian sommerville 2004 Software
engineering chapter 2

Procurement/development
processes

ian sommerville 2004 Software
engineering chapter 2

System procurement
• Mengadakan sistem untuk organisasi agar
dapat memenuhi kebutuhan tertentu
• Beberapa spesifikasi sitem dan desain
arsitektur diperlukan sebelum pengadaan
– Membutuhkan spesifikasi untuk membuat kontrak
dari pengembangan sistem
– Spesifikasi memperbolehkan untuk membeli sebuah
COTS. Lebih murah daripada membuat sistem dari 0

• Sistem yang besar biasanya terdiri dari
campuran komponen yang dirancang secara
khusus.

ian sommerville 2004 Software
engineering chapter 2

The system procurement
process

ian sommerville 2004 Software
engineering chapter 2

Procurement issues
• Requirement mungkin harus di
modifkasi untuk mencocokkan
kemampuan komponen
• Spesifikasi requirement dapat
menjadi bagian dari kontrak untuk
pengembangan sistem
• Ada periode negoisasi kontrak
untuk menyetujui perubahan setelah
kontraktor pembuat sistem dipilih
ian sommerville 2004 Software
engineering chapter 2

Kontraktor dan sub
kontraktor
• Pengadaan dari hardware dan sistem
software yang sangat besat umumnya
berkisar antar kontraktor tertentu
• Sub kontrak yang dikeluarkan ke
suplier yang lain untuk memasok
beberapa bagian sistem
• Hubungan antara customer dengan
kontraktor tertentu tidak
berhubungan langsung dengan sub
kontraktor
ian sommerville 2004 Software
engineering chapter 2

Contractor/Sub-contractor
model

ian sommerville 2004 Software
engineering chapter 2

Legacy systems
• Sistem socio teknis yang dikembangkan
menggunakan teknologi lama atau usang
• Penting bagi operasi dan bisnis, karena
terlalu beresiko apabila diganti
– Bank customer accounting system;
– Aircraft maintenance system.

• Sistem legacy membatasi proses bisnis baru
dan memakan pembiayaan perusahaan yang
sangat besar

ian sommerville 2004 Software
engineering chapter 2

ian sommerville 2004 Software
engineering chapter 2

Legacy system components
• Hardware – mainframe hardware menggunakan
teknologi usang
• Support software – tergantung dengan
support software dari suppliers yang sudah
tidak lagi berada di bisnis
• Application software – ditulis pada bahasa
pemrograman lama
• Application data - often incomplete and
inconsistent.
• Bisnis proses –dihalangi struktur
fungsional software
ian sommerville 2004 Software
engineering chapter 2

ian sommerville 2004 Software
engineering chapter 2

Key points
• Socio-technical systems include computer
hardware, software and people and are
designed to meet some business goal.
• Emergent properties are properties that
are characteristic of the system as a
whole and not its component parts.
• The systems engineering process includes
specification, design, development,
integration and testing. System
integration is particularly critical.

ian sommerville 2004 Software
engineering chapter 2

Key points
• Human and organisational factors have a
significant effect on the operation of
socio-technical systems.
• There are complex interactions between the
processes of system procurement,
development and operation.
• A legacy system is an old system that
continues to provide essential services.
• Legacy systems include business processes,
application software, support software and
system hardware.
ian sommerville 2004 Software
engineering chapter 2