2.SE-system-emergent

advertisement
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
Hand-held Scanner
Alphanumeric keyboard
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 prinsipprinsip 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
Prope rty
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 safegua rds.
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 t he 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/systems
• 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 politis / struktur dalam
organisasi?
ian sommerville 2004 Software engineering
chapter 2
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
Download