[Tulisan ini dibuat untuk Calon Mahasiswa Informatika, para mahasiswa program studi informatika dan khalayak umum yang ingin mengetahui kompetensi dasar seorang software engineers; untuk tulisan saya sebelumnya yang terkait dengan bagian ini, dapat dilihat disini:
1) Problem Solving untuk Software Engineers disini: http://stanleykarouw.blogspot.com/2012/06/problem-solving-untuk-software.html
2) Matematika Dasar untuk Software Engineers disini: http://stanleykarouw.blogspot.com/2012/06/matematika-dasar-untuk-software.html
3) Dasar Komputasi untuk Software Engineers disini: http://stanleykarouw.blogspot.com/2012/06/dasar-komputasi-untuk-software.html
4) Software Construction untuk Software Engineers disini:
karena tulisan ini merupakan tulisan bersambung mengenai topik Kompetensi Yang Harus dimiliki seorang Software Engineers]
Seorang software engineers secara umum, harus memiliki keahlian dalam SOFTWARE DEVELOPMENT atau pengembangan perangkat lunak. Software Development dapat dibagi menjadi beberapa bagian utama, yakni:
- Software Construction (Konstruksi Software)
- Software Engineering Models and Methods (Pemodelan dan Metode Software)
- Software Maintenance (Perawatan Software)
- Software Configuration (Konfigurasi Software)
Pada bagian ini saya akan menulis tentang Software Engineering Models and Methods. Aspek ini terbagi pada dua bagian besar, yakni Pemodelan Perangkat Lunak dan Metode Pengembangan Perangkat Lunak. Selain, kontruksi perangkat lunak, maka pemodelan perangkat lunak merupakan kompetensi utama yang HARUS dimiliki oleh seorang software engineers.
(Gambar diatas diambil dari http://www.ibm.com/developerworks/websphere/techjournal/0707_fiammante/0707_fiammante.html )
Metode dan Pemodelan Perangkat Lunak merupakan struktur teknik informatika yang bertujuan untuk membuat konstruksi perangkat lunak berfokus pada aktivitas yang sistematis, repeatable dan success-oriented. Model perangkat lunak memberikan pendekatan baru dalam konstruksi perangkat lunak yang lebih "problem - solving", dengan menggunakan notasi dan prosedur yang menekankan proses analis dan perancangan perangkat lunak. Metode perangkat lunak menyediakan pemahaman kerangka kerja yang mengikuti "daur hidup", sehingga menuruti prinsip logis, berurutan dan berkesinambungan. Fokus kompetensi software engineers terkait bagian ini adalah pemahaman komprehensif tentang pengembangan perangkat lunak, mulai dari perencanaan, spesifikasi, perancangan, konstruksi, pengujian hingga implementasi.
Materi kurikulum terkait Software Engineering Models and Methods menurut Software Engineering Body of Knowledge IEEE adalah sebagai berikut:
1. Modelling
Modelling terbagi atas Modelling Principles, Properties and Expression; Syntax, Semantics dan Pragmatics; Pre-conditions, Post-conditions dan Invariants,
2. Types of Models
Tipe Model Perangkat Lunak terbagi atas: Information Modelling, Behavioral Modelling, Structure Modelling.
3. Analysis of Models
Analisis Model Perangkat Lunak terdiri atas: Analisis untuk Completeness, Analisis untuk Consistency, Analisis intik Correctness, Traceabiliy (keterlacakan/keterunutan) dan Analisis Interaksi.
4. Metode Perangkat Lunak
Bagian ini terdiri dari: Metode Heuristics, Metode Formal, Metode Prototyping dan Metode Agile.