Selasa, 26 Juni 2012

Analisa dan perancangan berbasis objek, Perbedaan berbasis objek dengan terstruktur

Pre Test Analisis dan perancangan berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas. Pengertian “berorientasi objek” berarti bahwa kita mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya. Berorientasi Objek (Object Oriented) merupakan paradigma baru dalam rekayasa perangkat lunak yang memandang sistem sebagai sekumpulan objek-objek yang saling berinteraksi. Metoda Berorientasi-Objek memberikan sekumpulan teknik untuk menganalisis, mendekomposisi dan memodularisasi arsitektur sistem perangkat lunak. Sistem Berorientasi Objek, Sistem sendiri didefinisikan sebagai kumpulan dari beberapa elemen (modul) yang saling berhubungan (berinteraksi) untuk mencapai suatu tujuan/output (output disesuaikan dengan kebutuhan pengguna). Sedangkan sistem yang berorientasi objek diurai kedalam sejumlah/sekumpulan obyek(konsep, abstrak, benda) dalam dunia nyata yang saling berkomunikasi dan melaksanakan sejumlah pelayanan secara desentralisasi. Setiap obyek membungkus (encapsulate) sejumlah prosedur dan data yang berinteraksi dengan obyek lainnya melalui suatu pesan (message). Terdapat tujuh macam tujuan dan keuntungan dari Analisis Berorientasi Objek, yaitu : Menangani lebih banyak problem domain. Analisis Berorientasi Objek memberikan kemudahan untuk memahami inti permasalahan. Analisis Berorientasi Objek mengorganisasi analisis dan spesipikasi dengan metode yang digunakan cara berfikir manusia. Mengurangi jarak antara aktivitas analisis yang berbeda dengan membuat atribut dan metode menjadi satu kesatuan. Pewarisan dapat memberikan identifikasi sesuatu yang umum pada atribut dan metoda. Menjaga stabilitas atas perubahan kebutuhan pada sistem yang sama. Hasil analisis dapat digunakan kembali Penggambaran yang konsisten dari sistem, pada tahap analisis dan desain. Analisis Berorientasi Objek memiliki lima aktivitas utama dalam pendekatannya, yaitu: 1) Menentukan Kelas & Objek 2) Identifikasi Struktur 3) Identifikasi Subyek 4) Menentukan Atribut 5) Menentukan Metoda Post Test Perbedaan analisa berbasis objek dan yang terstruktur. Analisa berbasis objek / Dekomposisi obyek yaitu, memungkinkan seorang analis untuk memecah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah, memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek. Sedangkan pada analisa terstruktur yaitu, konsep mengarah pada sistem yang ideal, berorientasi ke masa dating, mengurangi ketergantungan pada disainer. Kekurangan pada analisa berbasis objek yaitu, menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD (object-oriented analysis and design). Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sulit untuk menerapkan konsep ini pada skala besar. Sedangkan kekurangan pada analisa terstruktur yaitu, berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional. Kesimpulan Tingkat efisiensi kedua analisa pemodelan tersebut sesuai dengan kasus yang dihadapi dan sudut pandangnya, ika kita ingin membuat program yang rumit dan komplek lebih efisien kita menggunakankan OOAD, jika hanya program sederhana lebih baik menggunakan analisa pemodelan terstruktur. Tetapi semua itu harus tetap disesuaikan dengan kebutuhan pemakai,anggaran,waktu dan sudut pandang yang lain.

Perbedaan analisa berbasis objek dan yang terstruktur

Pemrograman berorientasi objek Pemrograman berorientasi objek merupakan paradigma pemprograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemprograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Metode pengembangan perangkat lunak berorientasi objek yang sudah dikenal, dan diantaranya adalah : Object Oriented Analysis (OOA) dan Object Oriented Design (OOD) dari Peter Coad dan Edward Yourdon [1990]. Object Modeling Technique (OMT) dan James Rumbaugh, Michael Blaha, William Premerlan, Frederick Eddy dan William Lorensen [1991]. Object Oriented Software Engineering (OOSE) dan Ivar Jacobson [1992]. Booch Method dan Grady Booch [1994]. Sritrop dan Steve Cook dan John Daniels [1994]. UML (Unified Modeling Language) dari James Rumbaugh. Grady Booch dan Ivar Jacobson [1997]. Terdapat tujuh macam tujuan dan keuntungan dari Analisis Berorientasi Objek, yaitu : Menangani lebih banyak problem domain. Analisis Berorientasi Objek memberikan kemudahan untuk memahami inti permasalahan. Analisis Berorientasi Objek mengorganisasi analisis dan spesipikasi dengan metode yang digunakan cara berfikir manusia. Mengurangi jarak antara aktivitas analisis yang berbeda dengan membuat atribut dan metode menjadi satu kesatuan. Pewarisan dapat memberikan identifikasi sesuatu yang umum pada atribut dan metoda. Menjaga stabilitas atas perubahan kebutuhan pada sistem yang sama. Hasil analisis dapat digunakan kembali Penggambaran yang konsisten dari sistem, pada tahap analisis dan desain. Perancangan Terstruktur Metode ini diperkenalkan pada tahun 1970, yang merupakan hasil turunan dari pemrograman terstruktur. Metode pengembangan dengan metode terstruktur ini terus diperbaiki sampai akhirnya dapat digunakan dalam dunia nyata. Ada empat kegiatan perancangan yang harus dilakukan, yaitu: Perancangan arsitektural; kita merancang struktur modul P/L dengam mengacu pada model analisis yang sesuai (DFD). Langkahnya adalah: mengidentifikasi jenis aliran (transform flowatau transaction flow), menemukan batas-batas aliran (incoming flow dan outgoing flow), kemudian memetakannya menjadi striktur hirarki modul. Selanjutnya, kita alokasikan fungsi-fungsi yang harus ada pada modul-modul yang tepat. Perancangan data; kita merancang struktur data yang dibutuhkan, serta merancang skema basisdata dengan mengacu pada model analisis yang sesuai (ERD). Perancangan antarmuka; kita merancang antarmuka P/L dengan pengguna, antarmuka dengan sistem lain, dan antarmuka antar-modul. Perancangan prosedural; kita merancang detil dari setiap fungsi pada modul. Notasi yang digunakan bisa berupa flow chart, algoritma, dan lain-lain Berikut beberapa keuntungan dari perancangan terstruktur : SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional. Sedikit sekali manajemen langsung terkait dengan SSAD Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses. Interaksi antara analisis atau pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru). Slain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sulit bagi pengguna untuk melakukan evaluasi. Pada SAAD sulit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan mliai membuat sistem. SSAD tidak selalu memenuhi kebutuhan pengguna. SSAD tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek (Jadalowen, 2002). Dari penjelasan tentang analisa berbasis objek dan yang terstruktur dapat digunakan sesuai dengan kebutuhan user, apabila user ingin membuat program yang rumit dan komplek lebih efisien kita menggunakankan OOAD, jika user menggunakan program yang sederhana user bisa menggunakan yang terstruktur. User dapat menyesuaikan sesuai kebutuhannya agar dapat mendapat hasil yang maksimal.

Rabu, 06 Juni 2012

Perbedaan UML dengan DFD

Pengertian UML : Unified Modeling Language adalah bahasa spesifikasi yang telah menjadi standar untuk merancang, mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML adalah himpunan terstruktur dan teknik untuk pemodelan design program berorientasi objek (OOP) serta aplikasinya. UML tidak hanya merupakan bahasa visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemrograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah oject-oriented database. UML sendiri dikembagkan oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson dengan tujuan sebagai alat untuk analisis dan design berorientasi objek. Pengertian DFD : Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data sistem yang penggunaanya sangat membantu untuk memahami sistem secara logika, terstruktur dan jelas. DFD merupakan alat bantu yang digunakan untuk menggambarkan atau menjelaskan sistem yang sedang berjalan secara logis. Sumber : http://www.uml-diagrams.org/uml-22-diagrams.html http://id.wikipedia.org/wiki/Data_flow_diagram

Unified Modeling Language

1. Pendahuluan UML (Unified Modeling Language) adalah metode pemodelan secara visual sebagai sarana untuk merancang dan atau membuat software berorientasi objek. Karena UML ini merupakan bahasa visual untuk pemodelan bahasa berorientasi objek, maka semua elemen dan diagram berbasis pada paradigma object oriented. UML adalah salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented. UML adalah sebuah bahasa standar untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software. UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model, dan mempelajari 3 (tiga) elemen utama dari UML, seperti building block, aturan-aturan yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa mekanisme umum (common). Building blocks Tiga macam yang terdapat dalam building block adalah : Benda/Things Adalah abstraksi yang pertama dalam sebuah model Hubungan/Relationships Sebagai alat komunikasi dari benda-benda Bagan/Diagrams Sebagai kumpulan / group dari benda-benda/things BAGIAN-BAGIAN UML Bagian-bagian utama dari UML adalah view, diagram, model element, dan general mechanism. a. View View digunakan untuk melihat sistem yang dimodelkan dari beberapa aspek yang berbeda. View bukan melihat grafik, tapi merupakan suatu abstraksi yang berisi sejumlah diagram. Beberapa jenis view dalam UML antara lain: use case view, logical view, component view, concurrency view,dan deployment view. b. Use case view Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai yang diinginkan external actors. Actor yang berinteraksi dengan sistem dapat berupa user atau sistem lainnya. View ini digambarkan dalam use case diagramsdan kadang-kadang dengan activity diagrams. Viewini digunakan terutama untuk pelanggan, perancang (designer), pengembang (developer), dan penguji sistem (tester). c. Logical view Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis (class, object,danrelationship ) 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). d. Component view Mendeskripsikan implementasi dan ketergantungan modul. Komponen yang merupakan tipe lainnya dari code module diperlihatkan dengan struktur dan ketergantungannya juga alokasi sumber daya komponen dan informasi administrative lainnya. View ini digambarkan dalam component view dan digunakan untuk pengembang (developer). e. Concurrency view 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). f. Deployment view Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes) dan bagaimana hubungannya dengan lainnya. View ini digambarkan dalam deployment diagramsdan digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester). g. Diagram Diagram berbentuk grafik yang menunjukkan simbol elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya dialokasikan untuk view tertentu. Adapun jenis diagram antara lain : 1. Use Case Diagram Use case adalah abstraksi dari interaksi antara system dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah system dipakai. Use casemerupakan konstruksi untuk mendeskripsikan bagaimana system akan terlihat di mata user. Sedangkan use case diagram memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan client. 2. Class Diagram Class adalah dekripsi kelompok obyek-obyek dengan property, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin dari class- class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu system. 3. Component Diagram Component software merupakan bagian fisik dari sebuah system, karena menetap di komputer tidak berada di benak para analis. Komponent merupakan implementasi software dari sebuah atau lebih class. Komponent dapat berupa source code, komponent biner, atau executable component. Sebuah komponent berisi informasi tentang logic class atau class yang diimplementasikan sehingga membuat pemetaan dari logical view ke component view.Sehingga component diagram merepresentasikan dunia riil yaitu component software yang mengandung component, interface dan relationship. 4. Deployment Diagram Menggambarkan tata letak sebuah system secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes,executeable component dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen. 5. State Diagram Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian dapat berupa object lain yang mengirim pesan. State class tidak digambarkan untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik dan kondisi class berubah oleh stateyang berbeda. 6. Sequence Diagram Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antaraobject, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem. 7. Collaboration Diagram Menggambarkan kolaborasi dinamis sepertisequence diagrams. Dalam menunjukkan pertukaran pesan, collaboration diagrams menggambarkan objectdan hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan gunakansequencediagrams, tapi jika penekanannya pada konteks gunakan collaboration diagram. 8. Activity Diagram Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti use caseatau interaksi. Tujuan Penggunaan UML Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan. Memberikan model yang siap pakai, bahsa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bias diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering). Perangkat lunak yang mendukung pembuatan diagaram UML StarUML StarUML adalah sebuah proyek open source untuk mengembangkan cepat, fleksibel, extensible, featureful, dan bebas-tersedia UML / platform MDA berjalan pada platform Win32.Tujuan dari proyek StarUML adalah untuk membangun sebuah alat pemodelan perangkat lunak dan juga platform yang menarik adalah pengganti alat UML komersial seperti Rational Rose, Bersama dan sebagainya 2. Acceleo Acceleo adalah generator kode yang mengubah model menjadi kode. Acceleo mudah digunakan dan menyediakan “dari rak” generator (Jee,. Bersih, Php …) dan template editor untuk Eclipse. 3. ArgoUML ArgoUML adalah open source UML modeling tool terkemuka dan termasuk dukungan untuk semua diagram UML standar 1,4. Ini berjalan pada setiap platform Java dan tersedia dalam bahasa sepuluh. ArgoUML ditulis seluruhnya di Jawa dan menggunakan Java Kelas Foundation.Hal ini memungkinkan ArgoUML untuk berjalan di hampir semua platform Sumber : http://ariefikhwan.web.ugm.ac.id/?tag=pengertian-uml http://staruml.sourceforge.net/en/ http://www.acceleo.org/pages/home/en http://argouml.tigris.org/