Rekayasa Perangkat Lunak 1 Ari Sukmawibowo asukmaw@yahoo.com
References: Sommerville, Ian; Software Engineering (Rekayasa Perangkat Lunak), edisi 6. Pressman, Roger S., Software Engineering : A Practioneer Approach, 6th edition.
What we will learn: Rekayasa Sistem berbasis computer Proses-proses perangkat Lunak Manajemen proyek Persyaratan Perangkat Lunak Proses Rekayasa Persyaratan Model Sistem Protype Spesifikasi Formal Perancangan Arsitektural Arsitektur Sistem Terdistribusi Perancangan Berorientasi Object Real-time dan pemakaian ulang Perancangan User Interface
2 fungsi software: Software sebagai produk Produces, manages, acquires, modifies, displays, or transmits information (word processor, compiler, spreadsheet,dll…) Software sebagai sarana pendukung produk lainnya Supports a system functionality Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Helps build other software (e.g., software tools)
What is a software? Kumpulan objek yang membentuk sebuah konfigurasi yang didalamnya terdapat: • programs • documents • data ... Selain itu Software is engineered Software doesn’t wear out Software is complex
Ideal vs Actual curve for software
ERA software: Tahun Awal Era Kesatu Era Kedua Era Ketiga Berorientasi Batch Distribusi Terbatas Perangkat lunak bersifat customized Multiuser/online Realtime Database Perangkat lunak mulai dapat dijual sebagai product Distributed systems Embeded program Hardware yang berharga murah Desktop yang memiliki kemampuan besar OO Technology Artificial Inteligent Neural Network Komputasi Pararel Interkoneksi Jaringan 1950 1960 1970 1980 1990…………
Software Applications System software Application software Engineering/scientific software Embedded software Product-line software WebApps (Web applications) AI software
TRENDS: Ubiquitous computing —wireless networks Netsourcing —the Web as a computing engine Open source —”free” source code open to the computing Also … Data mining Grid computing Cognitive machines Software for nanotechnologies Mobile application
CHANGES…WHY? software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it viable within a network environment.