Rabu, 06 Juni 2012

Software Construction untuk Software Engineers

[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
karena tulisan ini merupakan tulisan bersambung mengenai topik Kompetensi Yang Harus dimiliki seorang Software Engineers]

Setelah menulis tentang ketiga topik diatas yang merupakan kompetensi dasar utama dari seorang software engineers, maka pada bagian ini, saya akan menulis tentang kompetensi keahlian 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)

(gambar diatas diambil dari http://cs.anu.edu.au/student/comp2100/ )

Pada bagian ini, saya akan membahas tentang Software Construction/Konstruksi Perangkat Lunak. Secara umum, yang dimaksud dengan Konstruksi Perangkat Lunak adalah keseluruhan aktivitas menciptakan perangkat lunak yang berfungsi dan bermanfaat melalui berbagai proses kodifikasi, verifikasi, pengujian dan pemeriksaan-ulang. Konstruksi Perangkat Lunak adalah kompetensi yang terkait dengan disain perangkat lunak dan pengujian perangkat lunak.
Dari sudut pandang akademisi dan praktisi maka konstruksi perangkat lunak merupakan "bagian" proses pengembangan perangkat lunak yang memiliki "highest volume of configuration items" (atau aktivitas-aktivitas konfigurasi yang diutamakan). Konstruksi perangkat lunak berhubungan dengan penulisan kode, pengujian kode dan pemeriksaan-ulang kode sehingga tentu saja berkaitan dengan kualitas perangkat lunak itu sendiri. Secara mendasar, maka kualitas perangkat lunak itu ditentukan oleh kualitas penulisan, pengujuan dan pemeriksaan-ulang kode.
Disamping itu, konstruksi perangkat lunak juga sangat berkaitan dengan "kemampuan komputasi" (terutama pengetahuan algoritma), karena penulisan kode, pengujian kode dan pemeriksaan-kode sangat membutuhkan pemahaman komputasi dasar secara komprehensif dan mendalam.

Berikut adalah beberapa topik bahasan dalam kurikulum Teknik Informatika yang dikeluarkan oleh IEEE Software Engineering Body of Knowlede (SWEBOK IEEE):

1. Dasar-dasar Konstruksi Perangkat Lunak
Dasar-dasar konstruksi perangkat lunak ini termasuk: penyederhanaan kompleksitas; antisipasi perubahan persyaratan perangkat lunak;  konstruksi untuk verifikasi perangkat lunak; guna-ulang (atau disebut "reuse") dan standarisasi konstruksi perangkat lunak.

2. Pengelolaan Konstruksi Perangkat Lunak
Topik bahasan yang termasuk pada bagian ini adalah: 
Model Daur Hidup konstruksi perangkat lunak; Perencanaan Perangkat Lunak dan Pengukuran Konstruksi Perangkat Lunak.

3. Aspek-aspek Praktis Konstruksi Perangkat Lunak
Meliputi pembahasan tentang: Disain konstruksi perangkat lunak, bahasa pemrograman, kodifikasi, pengujian perangkat lunak, konstruksi untuk guna-ulang (dan konstruksi dengan guna-ulang), jaminan kualitas perangkat lunak dan integrasi perangkat lunak.

4. Aspek-aspek Teknis Konstruksi Perangkat Lunak
Topik bahasan bagian ini meliputi: 
Disain API dan Penggunaannya; Object-oriented Run-time; Generalisasi dan Parameterisasi; Assertion, Design by Contract, Defensive Programming; Pengendalian Error, Pengendalian Exception, dan Fault Tolerance; Executable Models; State-based dan Teknik Konstruksi Table Driven; Run-time Configuration dan Internationalization; Grammer-based Input Processing; Concurrency Primitives; Middleware; Metode Konstruksi untuk Distributed Software; Kontruksi Heterogeneous Systems; Analisis Performance dan Tuning; Platform Standards; Test-first programming.

5. Tools Konstruksi Perangkat Lunak
Terkait dengan materi ini adalah: Development Environments; GUI Builders; Unit Testing Tools; Profiling, Performance Analysis dan Slicing Tools.


Tidak ada komentar:

Posting Komentar