1. Pengenalan Rekayasa Perangkat Lunak Teknik Informa-ka – Politeknik Negeri Malang
ì
Materi ì Penger-an So6ware/Perangkat Lunak ì Jenis Perangkat Lunak ì Penger-an Rekayasa Perangkat Lunak/So6ware ì ì ì ì ì ì ì
Engineering So6ware Engineering vs Computer Science So6ware Engineering vs System Engineering Proses Rekayasa Perangkat Lunak Biaya RPL Metode RPL Atribut Perangkat Lunak CASE
1.1 Pengertian Perangkat Lunak ì Perangkat lunak merupakan sekumpulan task dan
fungsi yang dienkapsulasi dalam bentuk yang dapat dieksekusi oleh komputer ì Sering juga disebut sebagai aplikasi program komputer
1.2 Jenis perangkat Lunak ì Berdasar Pemakai
Generik: dapat digunakan oleh umum (MS Office, Photoshop dsb) ì Spesifik: khusus utk client tertentu (so6ware rumah sakit, siakad dsb) ì
ì Berdasar Fungsi
ì Perangkat lunak sistem ì Sistem Operasi ì Bhs Pemrograman ì Program U-lity ì Perangkat lunak aplikasi ì Program pengolah kata,angka, presentasi ì Aplikasi grafis ì Aplikasi mul-media ì Sistem manajemen basis data ì Interfacing (menghubungkan perangkat elektronik dengan komputer, contoh kontrol sensor dsb)
1.3 Pengertian Rekayasa Perangkat Lunak ì Rekayasa: aplikasi keilmuan untuk penyelesaian
masalah prak-s
ì Rekayasa perangkat lunak: disiplin ilmu yang
membahas penyelesaian masalah produksi perangkat lunak, mulai dari tahap awal spesifikasi hingga pengujian dan pemeliharan sistem
ì Rekayasa perangkat lunak memakai pendekatan
yang sistema-s dan terorganisir untuk menghasilkan so6ware dengan kualitas -nggi
1.3 Pengertian Rekayasa Perangkat Lunak ì Beberapa definisi lain RPL: ì Aplikasi yang menggunakan pendekatan sistema-s, disiplin, terukur, untuk mengembangkan, mengoperasikan dan memelihara perangkat lunak (IEEE 1990) ì Pembangunan oleh banyak orang (mul--‐person) dari perangkat lunak mul--‐version (Parnas 1978) ì So6ware Engineering ≠ programming ì So6ware Engineering ≠ computer science ì So6ware engineering is about people working in teams
under constraints to create value for their customers
Berhubungan dengan Banyak Bidang ì
computer science (algorithms, data structures, languages, tools)
ì
business/management (project mgmt, scheduling)
ì
economics/marke2ng (selling, niche markets, monopolies)
ì
communica2on (managing rela-ons with stakeholders: customers, management, developers, testers, sales)
ì
law (patents, licenses, copyrights, reverse engineering)
ì
sociology (modern trends in socie-es, localiza-on, ethics)
ì
poli2cal science (nego-a-ons; topics at the intersec-on of law, economics, and global societal trends; public safety)
ì
psychology (personali-es, styles, usability, what is fun)
ì
art (GUI design, what is appealing to users)
Peran Orang dalam Software ì Client/Customer: wants so6ware built ì Manager: make plans, coordinate teams ì Developer: design and write code ì Analyst ì Programmer (DB, App programmer, GUI designer)
ì Tester: perform Quality Assurance (QA) ì User: use so6ware products
Software Project
1.4 Software Engineering v Computer Science ì Computer science (ilmu komputer) berhubungan
dengan teori dan metode dasar yang mendasari sistem komputer. RPL berhubungan dengan metode prak-s untuk menghasilkan so6ware yang berkualitas utk memenuhi kebutuhan
ì Contoh: ì CS: bagaimana algoritma untuk mengetahui/deteksi pola sidik jari ì RPL: bagaimana merancang, menyusun, menguji dan memelihara sostem so6ware yang bisa digunakan untuk deteksi sidik jari lengkap dg berbagai fiturnya
1.5 Software Engineering vs System Engineering ì System Engineering berhubungan dengan semua
aspek dari pengembangan sistem berbasis komputer mulai dari aspek hardware, so6ware dan proses. So6ware engineering merupakan salah satu bagian dari system engineering
1.6 Proses RPL ì Proses RPL merupakan serangkaian kegiatan yang
tujuannya mengembangkan atau evolusi perangkat lunak
ì Kegiatan tsb antara lain: ì Spesifikasi perangkat lunak ì Pengembangan perangkat lunak ì Validasi perangkat lunak ì Evolusi perangkat lunak
1.7 CASE ì CASE (Computer-‐Aided So6ware Engneering)
adalah berbagai macam program yang digunakan untuk mendukung semua kegiatan perangkat lunak seper- analisis persyaratan, pemodelan, debugging dan pengujian
ì Pembagian CASE tool: ì Upper CASE tool ì Lower CASE tool ì Integrated CASE tool
1.7.1 Upper CASE Tool ì So6ware yang digunakan dalam tahap analisis dan
desain sistem
ì Biasanya digunakan untuk membuat DFD, ERD,
UML
ì Contoh: ERwin, Visual UML
1.7.2 Lower CASE Tool ì So6ware yang bisa menghasilkan code atau
program secara otoma-s
ì Lower CASE Tool biasanya berkonsentrasi pada
ak-vitas tahap akhir pada so6ware life cycle (debugging,tes-ng, component integra-on, maintenance, reengineering, reverse engineering)
ì Contoh: Ecore Diagram Editor, dzine
1.7.3 Integrated CASE/I-‐CASE ì So6ware yang bisa digunakan mulai dari analisis
sistem, desain sistem hingga implementasi dan pengujian sistem
ì Contoh: Ra-onal Rose dari IBM, Argo UML,
Catalyze, in-‐Step, Juggler, PRINCE
Mengapa Menggunakan CASE Tool ì Untuk memudahkan, membantu atau sebagai tool
yang bisa mengop-malkan kinerja dari para so6ware engineer
1.8 Atribut Perangkat Lunak ì Memberikan fungsionalitas dan kinerja yang dibutuhkan
user
ì Dapat dipelihara: perangkat lunak dapat diubah sesuai
perubahan kebutuhan user
ì Dapat dihandalkan: perangkat lunak harus memiliki
kehandalan, keamanan dan keselamatan. Perangkat lunak yang baik -dak menyebabkan kerusakan fisik atau ekonomi bila terjadi kegagalan sistem
ì Dapat digunakan: so6ware harus memiliki user interface
yang baik dan dokuentasi yang mencukupi