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