PRE TEST
•
Apa yang anda
ketahui tentang
software ?
•
Apa yang anda
ketahui tentang
software engineering
(rekayasa perangkat
lunak) ?
UNIT MASUKAN (INPUT)
UNIT MASUKAN (INPUT)
Mouse Joystick
Trackball Trackpad
Lightpen
Alphanumeric keyboard
Special-function keyboard
OMR
Hand-held Scanner Webcam
OUTPUT UNIT
OUTPUT UNIT
Printer Plotter
LCD panel LCD proyektor
ALAT PENYIMPANAN DAN
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
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
What is software?
Oh, I see...
Office Application
Operating System
Programming IDE
Multimedia Application
Simulation personal software
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
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
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
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;
Problem Solving
COMPUTER
SCIENCE CUSTOMER
SOFTWARE ENGINEERING
Teori Fungsi
Computer Problem
Tools dan Teknik utk Menyelesaikan
• 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
• 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).
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
•
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 Perangkat Lunak
Rekayasa sistem berbasis
komputer
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
Topics
•
Properti sistem baru
•
Rekayasa sistem
•
Organizations, people and computer
systems
•
Sistem legacy
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
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.
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
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
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 builtin 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.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.
• 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
Kompleksitas properti sistem
baru
• 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 ?
Pengaruh kehandalan
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
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)
Rekayasa sistem
•
Menentukan, merancang,
melaksanakan, validasi,
mengimplementasikan, dan
memelihara sistem socio-technique
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.
The systems engineering
process
Inter-disciplinary
involvement
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
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
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
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
The system design process
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
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
Spiral model of
requirements/design
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
Burglar alarm system model
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.
ATC system architecture
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
• 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
Integrasi 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
Installasi sistem
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.
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
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.
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 politis / struktur dalam organisasi?
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.
Procurement/development
processes
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.
The system procurement
process
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
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
Contractor/Sub-contractor
model
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
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
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.
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.