Monday, June 23, 2008

Designing A System (OOAD UML)


SDLC adalah Software Development Life Cycle. Di dalamnya ditentukan fase-fase pembangunan suatu software, mulai dari Initiation, Software Concept, Planning, Requirements Analysis, Design, Development (Coding), Testing, Implementation, Operation and Maintenance, dan Disposition (jika perlu). Singkatnya, SDLC adalah sebuah metodologi.


OOAD adalah Object Oriented Analysis and Design. OOAD juga sebuah metodologi dan merupakan subset dari SDLC. Di dalam OOAD ditentukan metoda-metoda yang harus dilakukan pada tahap Software Concept, Requirements Analysis, dan Design.


Sedangkan UML (Unified Modeling Language) adalah sebuah alat yang digunakan dalam menjalankan tahap-tahap yang terdapat di dalam metodologi (SDLC, OOAD). UML digunakan untuk melakukan pemodelan software pada tahap Software Concept (scope, business process, boundary), Requirements Analysis, Design, dan Implementation.


Aq sendiri masih belum menemukan cara penggunaan UML yang tepat sesuai dengan metodologi yang digunakan, khususnya OOAD. Sangat sedikit sekali informasi yang menyediakan free tutorial penggunaan UML di dalam tahap-tahap OOAD ataupun SDLC di Internet. Sebagian besar disediakan dalam bentuk training.. Bahkan OMG sendiri yang membuat spesifikasi UML, tidak memberikan informasi tsb.


So you get the idea that in OO, yg actually susah adalah modeling the Domain. Creating the Domain Model. Entity apa aja yg mesti ada, suatu Entity punya data dan behavior apa saja, lalu hubungan antar Entity, apakah perlu ada generalisasi, dsb. This is the real OO challenge. OOAD-nya, bukan diprogramming atau coding-nya. Kalau bikin2 class doang, nambahain methods & properties sih piece of cake. Tapi apakah Domain Model-nya sudah benar?


Nah, Domain Modeling ini adalah PURE MENTAL ACTIVITY. Spt halnya Matematika atau Main Catur. Orang banyak mengalami kesulitan karena memang berpikir abstrak (mental) itu tidak mudah. Tidak semua org "gifted" dgn talent tsb, atau tidak semua orang cukup punya tenacity (kegigihan) utk melatih-nya.


Kalau masalah programming-nya sih, as I always say, VERY EASY. Apalagi nanti dgn adanya ADO.NET Entity Framework. Classes & tables can be generated from our models. Lalu utk CRUD tinggal panggil metod "SubmitChanges()", utk UI tinggal databind, dsb. Programming part-nya is become easier and easier sejalan dgn advancement di language, library, tools dan software engineering.


Nah, meski dgn hal canggih macam ADO.NET Entity Framework, kita tetap harus melakukan MENTAL ACTIVITY yaitu membuat DOMAIN MODEL. Tools spt VSTS, ADO.NET Entity Framework, Rational, etc are just tools. Sama kayak catur,mau dari kayu, dari besi, dari plastik, dari kertas yg ditulisin "raja", "pion", maen lawan komputer, etc hingga benar2 pure mental bisa kita lakukan, tp intinya, catur itu IS A MENTAL GAME.


Doing Domain Modeling juga gitu, mau pakai CRC Cards, UML pakai spidol di whiteboard, pakai pulpen di kertas, pakai Rational Tools, VSTS, atau mau PURE MENTAL dari kepala langsung ketik code, dsb semuanya mungkin. Tp intinya, tetap ada MENTAL ACTIVITY utk creating the domain model. To create a mental picture of the model.


Nah, OO itu bagi sebagian orang mjd "sulit" atau "merepotkan" karena sebagian orang memang tidak bissa/tidak comfort work mentally, atau work in abstract. Kalau dari sisi tools, sdh banyak tools canggih sehingga kita tidak repot menggambar/"membuat" model-nya. Bahkan tools2 Code Gen malah bisa generate codes and tables. So, dari sisi berpikir abstrak-nya lah yg banyak org merasa "sulit" atau "merepotkan". Atau lebih parah, org2 yg think OO is all about nulis code!.



3 comments:

Anonymous said...

wuih isinya blognya berat2 ..tapi bagus juga buat share ilmu...
cuman sayangnya kalimat yang dipakai jg berbobott jadi susah masuk di otaknya palagi kalo yg baca lemot kyk aku..
tapi sejauh ini cukup bagis, tingkatkan terus mas..

dessy
http://deatta.wordpress.com

Anonymous said...

ijin nge-link ya..

tx.
dessy

Rochmad Sigit said...

Dessy niy bisa aja, yang namanya ilmu itu dibagi-bagi. karena kita cuma bisa menemukan dan menyebarkan-nya.
Monggo di-share sapa aja boleh kok.