Senin, 23 Juli 2012

Model Sistem Perangkat Lunak



Pertanyaan pertama yang selalu muncul di benak pengembang perangkat lunak adalah "mengapa harus repot-repot membuat model sistem dari perangkat lunak yang akan dibangun?"

Memang, jika hanya melihat dari "satu sisi", maka langkah pemodelan sistem perangkat lunak, seperti membuang waktu. Namun demikian, pada kenyataannya, tidaklah demikian. Para pengembang perangkat lunak yang punya banyak "jam terbang" dan telah mengembangkan berbagai "model" akan menyetujui bahwa langkah pemodelan merupakan langkah yang penting dan strategis, dalam pengembangan perangkat lunak.

Sedikitnya ada beberapa alasan mengapa para pengembang "pemula" tidak memahami pentingnya langkah pemodelan perangkat lunak, diantaranya adalah:
1) terlalu banyak melibatkan pekerjaan "dokumentasi" perangkat lunak;
2) tidak menggambarkan persyaratan non - fungsional
3) tidak dapat menggambarkan keseluruhan aplikasi yang akan dikembangkan
4) jika modelnya terlalu "mendetail" maka justru akan membuat kebingungan.

Para pengembang "pemula" JUSTRU harus mengubah paradigma diatas, dengan meyakini bahwa model perangkat lunak, merupakan syarat penting untuk memulai kegiatan pengembangan perangkat lunak. Misalnya, dengan menggunakan model diagram, maka pengembang dapat "mengkomunikasikan" dengan pengguna, perihal perangkat lunak yang akan dikembangkan. Dari sisi pengembang, maka model perangkat lunak akan menjadi "panduan" pada langkah-langkah selanjutnya.

Banyak notasi yang dapat digunakan untuk memodelkan perangkat lunak, yang umum digunakan adalah:
Diagram Konteks,
Data Flow Diagram
Diagram Aktivitas
Diagram Use Case
Diagram Kelas
Diagram Sekuens
Diagram Navigasi

UML adalah salah notasi pemodelan yang umum digunakan dalam industri perangkat lunak. Untuk acuan RESMI dari notasi pemodelan UML, dapat mengklik tautan dibawah ini:
1. http://www.uml.org/
3. Document Associated with UML version 2.0:
4. UML version 2: In support on model driven development:


Sabtu, 21 Juli 2012

Catatan Seminar Sabtu, 21 Juli 2012

Hari ini, Sabtu 21 Juli 2012 kembali saya diminta untuk memberikan Seminar tentang Teknologi Informasi. Kali ini yang meminta saya adalah salah satu komunitas Kristen. Mereka meminta saya menerangkan tentang Pengaruh Teknologi Informasi, khususnya untuk generasi muda.

Berikut adalah LINK terkait materi saya tersebut:

1. Paradigma Kristen mengenai Teknologi Informasi; klik disini:
http://stanlysk.blogspot.com/2012/06/information-technology-christian.html

2. Tentang Perspektif Teknologi Informasi, klik disini:
http://stanlysk.blogspot.com/2012/04/perspektif-teknologi-informasi.html

3. Apa itu Web 2.0?, klik disini:
http://stanlysk.blogspot.com/2012/05/apa-itu-web-20.html
 
Demikian beberapa catatan saya terkait pelaksanaan Seminar kali ini. Semoga bermanfaat!

Jumat, 20 Juli 2012

Requirements Engineering

Apakah yang dimaksud dengan requiremens engineering tersebut?

Menurut pemahaman Ian Sommerville, software requirements adalah ...
Requirements engineering is the process of establishing: (1) the services that the customer requires from a system; (2) the constraints under which it operates and is developed
Jadi, pada dasarnya, requirements adalah proses dimana developer sistem/aplikasi mencoba untuk memahami secara jelas, apa yang diinginkan user (atau stakeholders) pada sistem/aplikasi yang ingin dikembangkan.
Perlu diperhatikan disini, bahwa proses requirements merupakan proses yang sangat krusial dalam pengembangan perangkat lunak. Apalagi jika kita berparadigma bahwa ukuran "kualitas" perangkat lunak yang akan dibangun itu adalah "sesuai dengan kebutuhan dan keinginan pengguna".
Yang menjadi tantangan disini adalah bagaiman pengembang dan pengguna dapat memiliki kesaman persepsi mengenai setiap services dan constraints dari perangkat lunak yang akan dikembangkan.

Software Requirements atau Persyaratan Perangkat Lunak daapt dibedakan menjadi:
1) User Requirements: 
statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers
2) System Requirements:
A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor
dan
3) Software Specification Requirements:
A detailed software description which can serve as a basis for a design or implementation. Written for developers

Dalam prakteknya, pendefinisian software requirements itu dilakukan dengan menggunakan berbagai model diagram, seperti misalnya UML Use Case Diagram, ataupuan Data Flow Diagram. Tujuan menggunakan notasi diagram adalah untuk "memudahkan" pemahaman antara user dan pengembang.


Proses pendefinisian perangkat lunak, bertujuan untuk "menyelesaikan" berbagai perbedaan antara pengembang dan pengguna seperti yang diilustrasikan pada gambar diatas.
Secara umum, software requirements sering dibedakan menjadi requirement fungsional, non-fungsional dan requirements domain.

Untuk penulisan dokumen Software Requirements Spesification (SRS) dapat mengacu pada standar IEEE, seperti yang ditulis selengkapnya disini:
http://asingh.com.np/blog/ieee-srs-recommendations/
atau bisa juga melihat tulisan blog disini:
http://techwhirl.com/skills/tech-docs/writing-software-requirements-specs/

Beberapa Contoh Template Dokumen SRS dapat diunduh disini:

Penjelasan Video Tutorial Pembuatan Software Requirements Specification, dapat dilihat disini:
http://www.youtube.com/watch?v=HcRQ8oLik18
dan, disini:
http://www.youtube.com/watch?gl=ID&v=_XTQjKhh6hQ

Semoga Bermanfaat ...

Rabu, 18 Juli 2012

Software Process

Apa yang dimaksud dengan Software Process?

Sejak tahun 1968, pengembangan perangkat lunak memasuki babakan baru dengan mengadopsi pendekatan system engineering. Pendekatan pengembangan perangkat lunak dengan system engineering bermakna bahwa perangkat lunak dikembangkan menurut kaidah keteknikan yang mengikuti urutan langkah-langkah logis tertentu. 

Dengan demikian, pengembangan perangkat lunak dapat dimodelkan menurut prinsip engineering tertentu. Model pengembangan perangkat lunak inilah yang disebut sebagai software process.
Sommerville mengartikan software process sebagai:
Software processes are the activities involved in producing and evolving a software system. They are represented in a software process model

Selanjutnya, Sommerville mengusulkan bahwa aktivitas umum dari Software Process tersebut adalah:
specification, design and implementation, validation and evolution.

Pressman, melihat software process dari sudut pandang praktis. Lihatlah sebuah Video tayangan berikut ini:


Pendekatan Pressman pada software process adalah communication, planning, modeling dan deployment.

Singkatnya, dalam memahami pengembangan perangkat lunak secara engineering, terdapat langkah-langkah logis yang berurutan tertentu (sebagai proses) yang akan menghasilkan perangkat lunak.

Menurut Sommerville,
terdapat beberapa software process yang berkembang sekarang ini, diantaranya adalah:
1) Model Waterfall
2) Model Perkembangan Evolutionary
3) Model Pengembangan Formal System
4) Model Pengembangan Guna-Ulang (reused-based)

Selanjutnya software process ini "diterjemahkan" menjadi langkah-langkah logis pada metodologi pengembangan perangkat lunak, seperti misalnya RAD, WebEng, RUP ataupun AUP.

Selasa, 17 Juli 2012

Pekerja TIK

ICT Worker atau Pekerja TIK adalah mereka yang menekuni bidang profesi dalam dunia Teknologi Informasi dan Komunikasi. PBB membedakan Pekerja TIK ini dalam dua kategori utama:
1) ICT Worker
2) ICT Enabled Worker


Perbedaan signifikan antara kedua jenis pekerja TIK ini adalah:
ICT Worker atau disebut juga ICT Professionals adalah individu yang memiliki kemampuan untuk menghasilkan karya cipta inovasi terkait bidang ICT. Yang termasuk kelompok ini misalnya para programmer atau system analyst yang dapat membuat produk software. 
ICT Enabled Workers atau disebut juga ICT Users adalah individu yang memiliki kemampuan untuk menggunakan/memakai produk-produk TIK. Misalnya adalah individu yang dapat menggunakan Aplikasi Microsoft Office Excel dalam membuat laporan keuangan.

Pendidikan Tinggi diharapkan dapat menghasilkan kedua jenis pekerja TIK ini untuk menjawab kebutuhan dunia-kerja yang ada. Kualitas sumber daya manusia dalam bidang TIK, dapat dibedakan dalam kedua bagian besar tersebut diatas.