Pengertian
UML
UML (Unified
Modelling Language) adalah sebuah “bahasa” yg telah menjadi standar dalam
industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti
lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.
Dengan
menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti
lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem
operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun.
Jenis-jenis UML
1.
Class diagram
yang diuraikan sebagai sekelompok dari
object yang mempunyai atribute, operasi, hubungan yang semantik. Sebuah kelas
mengimplementasikan 1 atau lebih interfaces. Sebuah kelas dapat digambarkan
sebagai sebuah persegi panjang, yang mempunyai sebuah nama, atribute, dan
metoda pengoperasiannya.
2.
Interface diagram
merupakan sebuah antarmuka yang menghubungkan
dan melayani antar kelas dan atau elemen. Interface/antarmuka mendefinisikan
sebuah set/kelompok dari spesifikasi pengoperasian, umumnya digambarkan dengan
sebuah lingkaran yang disertai dengan namanya. Sebuah antar-muka berdiri
sendiri dan umumnya merupakan pelengkap dari kelas atau komponen.
3.
Use case diagram
rangkaian/uraian sekelompok yang saling
terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh
sebuah aktor. Use case digunakan untuk membentuk tingkah-laku benda/things
dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya use
case digambarkan dengan sebuah elips dengan garis yang solid, biasanya
mengandung nama.
4.
Component diagram
untuk menggambarkan komponen run-time dan executable
yang dibuat untuk sistem. Komponen saling berelasi menggunakan depedecy
relation (Hubungan ketergantungan, yang ditandai dengan garis putus-putus).
Komponen run-time memperlihatkan pengelompokan kelas untuk run-time library
seperti Java Applet, Active-X Component dan Dynamic Libraries. Komponen
executable memperlihatkan interface dan memanggil dependencies beberapa
executable. Interface kelas diperlihatkan seperti lollypop.
5.
Deployment diagram
memperlihatkan konfigurasi pada jalannya proses run-time
elements dan proses software yang ada pada diagram. Run-time elements
menggambarkan node yang berkoneksi menandakan adanya komunikasi diantaranya.
Diagram ini membantu tim untuk mengerti sistem topology.
6.
State diagram
untuk menggambarkan behavior, yaitu perubahan state di
suatu class berdasarkan event dan message yang dikirimkan dan diterima oleh
class tersebut. Setiap state diagram hanya boleh memiliki satu start state
(initial state) dan boleh memiliki satu atau lebih dari satu stop states (final
state).
7.
Sequence diagram
suatu diagram yang memperlihatkan/menampilkan
interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah urutan
atau rangkaian waktu. Interaksi antar objek tersebut termasuk pengguna,
display, dan sebagainya berupa pesan/message. Sequence Diagram digunakan untuk
menggambarkan skrenario atau rangkaian langkah-langkah yang dilakukan sebagai
sebuah respon dari suatu kejadian/even untuk menghasilkan output tertentu.
Sequence Diagram diawali dari apa yang me-trigger aktivitas tersebut, proses
dan perubahan apa saja yang terjadi secara internal dan output apa yang
dihasilkan.
8.
Collaboration diagram
suatu diagram yang memperlihatkan/menampilkan
pengorganisasian interaksi yang terdapat disekitar objek (seperti halnya
sequence diagram) dan hubungannya terhadap yang lainnya. Collaboration Diagram
lebih menekankan kepada peran setiap objek dan bukan pada waktu penyampaian
pesan/message.
9.
Activity diagram
menggambarkan berbagai alir aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
10.
Object diagram
merupakan suatu diagram yang menggambarkan objeek-objek dalam satu system. bila pada kelas diagram terdapat banyak relasi antar kelas, namun pada diagram objek hanya terdapat satu relasi antar kelas, yaitu asosiasi. tidak hanya itu, pada diagram objek yang didefinisan hanya nama objek dalam satu kelas beserta atributnya saja, tanpa operasi yang dilakukan oleh objek tersebut.
11.
Concurrency diagram
Membagi sistem ke dalam proses dan prosesor. View ini digambarkan dalam diagram dinamis (state, sequence, collaboration, dan activity diagrams) dan diagram implementasi (component dan deployment diagrams) serta digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
Membagi sistem ke dalam proses dan prosesor. View ini digambarkan dalam diagram dinamis (state, sequence, collaboration, dan activity diagrams) dan diagram implementasi (component dan deployment diagrams) serta digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
12.
Logical diagram
Mendeskripsikan bagaimana fungsionalitas
dari sistem, struktur statis (class, object,dan relationship ) dan kolaborasi
dinamis yang terjadi ketika object mengirim pesan ke object lain dalam suatu
fungsi tertentu.
View ini digambarkan dalam class diagrams untuk struktur statis dan dalam state, sequence, collaboration, dan activity diagram untuk model dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang (developer).
View ini digambarkan dalam class diagrams untuk struktur statis dan dalam state, sequence, collaboration, dan activity diagram untuk model dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang (developer).
13.
Package diagram
memperlihatkan bagaimana elemen model diorganisasikan/dikelompokkan ke dalam packages. biasanya dipakai pada use case diagram atau class diagram. package digambarkan sebagai sebuah direktori (file folder) yang berisi model-model elemen. package dapat diterapkan pada sembarang diagram UML, walaupun package secara resmi bukanlah diagram UML namun kegunaannya cukup signifikan.
Water fall
Pengertian water
fall
salah satu model pengembangan software,
dimana kemajuan suatu proses dipandang sebagai terus mengalir ke bawah seperti
air terjun.
Metode ini
membutuhkan pendekatan sistematis dan sekuensial dalam pengembangan perangkat
lunak dan biasanya disebut juga dengan classic life cycle, dimulai dari tingkat
sistem dan kemajuan melalui analisis, desain, coding, testing dan pemeliharaan.
Rekayasa dan Pemodelan Sistem/Informasi (System/Information Engineering and Modeling) Karena perangkat lunak adalah bagian dari sistem yang lebih besar, pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan dari semua elemen sistem dan mengalokasikan suatu subset ke dalam pembentukan perangkat lunak. Hal ini penting, ketika perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data. Rekayasa dan pemodelan sistem menekankan pada pengumpulan kebutuhan pada level sistem dengan sedikit perancangan dan analisis.
Rekayasa dan Pemodelan Sistem/Informasi (System/Information Engineering and Modeling) Karena perangkat lunak adalah bagian dari sistem yang lebih besar, pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan dari semua elemen sistem dan mengalokasikan suatu subset ke dalam pembentukan perangkat lunak. Hal ini penting, ketika perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data. Rekayasa dan pemodelan sistem menekankan pada pengumpulan kebutuhan pada level sistem dengan sedikit perancangan dan analisis.
Berikut ini
adalah tahapan dalam model water fall :
1.
Requirement Analysis
Seluruh kebutuhan software harus bisa didapatkan dalam fase ini, termasuk didalamnya kegunaan software yang diharapkan pengguna dan batasan software. Informasi ini biasanya dapat diperoleh melalui wawancara, survey atau diskusi. Informasi tersebut dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap selanjutnya.
Seluruh kebutuhan software harus bisa didapatkan dalam fase ini, termasuk didalamnya kegunaan software yang diharapkan pengguna dan batasan software. Informasi ini biasanya dapat diperoleh melalui wawancara, survey atau diskusi. Informasi tersebut dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap selanjutnya.
2.
System Design
Tahap
ini dilakukan sebelum melakukan coding. Tahap ini bertujuan untuk memberikan
gambaran apa yang seharusnya dikerjakan dan bagaimana tampilannya. Tahap ini
membantu dalam menspesifikasikan kebutuhan hardware dan sistem serta
mendefinisikan arsitektur sistem secara keseluruhan.
3.
Implementation
Dalam
tahap ini dilakukan pemrograman. Pembuatan software dipecah menjadi modul-modul
kecil yang nantinya akan digabungkan dalam tahap berikutnya. Selain itu dalam
tahap ini juga dilakukan pemeriksaaan terhadap modul yang dibuat, apakah sudah
memenuhi fungsi yang diinginkan atau belum.
4.
Integration & Testing
Di tahap
ini dilakukan penggabungan modul-modul yang sudah dibuat dan dilakukan
pengujian ini dilakukan untuk mengetahui apakah software yang dibuat telah
sesuai dengan desainnya dan masih terdapat kesalahan atau tidak.
5.
Operation & Maintenance
Ini
merupakan tahap terakhir dalam model waterfall. Software yang sudah jadi
dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk dalam
memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan
implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.
Metodologi water
fall
Karakteristik
dari model waterfall ini meliputi beberapa bagian, yaitu :
- Aktivitas mengalir dari satu
fase ke fase lainnya secara berurutan.
- Setiap fase dikerjakan terlebih
dahulu sampai selesai, jika sudah selesai baru mulai menuju fase
berikutnya.
- System Engineering
Proses penilaian sistem lama yang sedang berjalan dan studi kelayakan
pengembangan sistem baru berdasarkan aspek teknologi, ekonomis dan sumber daya
manusia.
- Analisis
Perolehan kebutuhan pengguna sistem dari user serta pilihan solusi jenis sistem
informasi yang akan dikembangkan.
- Desain
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi
representasi ke dalam bentuk software. Desain harus dapat mengimplementasikan
kebutuhan yang telah disebutkan pada tahap sebelumnya maka proses ini juga
harus didokumentasikan sebagai konfigurasi dari software.
- Coding Dan Testing
Desain harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh
komputer, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini
merupakan implementasi dari tahap desain yang secara teknis akan dikerjakan
oleh programmer.
Proses Coding ini harus dilakukan Testing untuk menguji kesalahan-kesalahan program maupun fungsi dari sistem.
Proses Coding ini harus dilakukan Testing untuk menguji kesalahan-kesalahan program maupun fungsi dari sistem.
- Implementasi
- Setelah semua fungsi-fungsi software harus di ujicoba agar software bebas dari kesalahan, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Maka proses selanjutnya adalah bagaimana sistem baru akan diinstall dan dijalankan di perusahaan dengan pengoperasian yang dilakukan oleh user.
- Pemeliharaan
Pemeliharaan suatu software sangat diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu.
Ketika dijalankan mungkin saja masih ada kesalahan kecil yang tidak ditemukan
sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software
tersebut. Pengembangan diperlukan ketika adanya perubahan dari perusahaan
seperti ketika ada pergantian sistem operasi atau perangkat lainnya.
KELEMAHAN & KEUNTUNGAN :
KEUNTUNGAN :
·
Simple dan mudah diimplementasikan
mudah diatur
mudah diatur
·
Cocok untuk proyek kecil
KELEMAHAN :
·
Tidak mengakomodasi perubahan requirement
·
Resiko ketidakpastian tinggi
·
Model yang buruk untuk proyek yang berorientasi
obyek
·
Model yang buruk untuk proyek lama
Sumber :http://nikmahpoenya.blogspot.com/2010/05/waterfall.html