OBJECT ORIENTED ANALYSIS DESIGN (OOAD) Metode yang digunakan adalah diacu dari: Information Modeling and Development. (Ken Lunn 2001) 1. Information Modeling and Development What is a model ? Model adalah beberapa diskripsi dari suatu system, yang dapat digambarkan, dideskripsikan, dan berbentuk prototype. Model tidak hanya berbentuk pendeskripsian sesuatu, tetapi merepresentasikan sesuatu. Why model ? Pertimbangan menggunkan model adalah karena mudah dan murah untuk membentuknya dibandingkan sesuatu yang riil. Model berguna untuk berkomunikasi dan perencanaan terhadap solusi permasalahan di dunia nyata. Sehingga model dapat membantu untuk memvisualisasi, merencanakan, berkomunikasi, dan mengestimasi yang paling baik dalam menyelesaikan permasalahan dibandingkan tanpa pemodelan. High Level Model in Information System Development Model dalam Information System Development (ISD) meliputi : Business case, Business requirements, System requirements, Logical design, Technical design, Implementation, dan Testing. Unified Modeling Language (UML) UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (ObjectOriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software (http://www.omg.org). Pendekatan analisa & rancangan dengan menggunakan model OO mulai diperkenalkan sekitar pertengahan 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai komplek. Jumlah yang menggunakaan metoda OO mulai diuji cobakandan diaplikasikan antara 1989 hingga 1994, seperti halnya oleh Grady Booch dari Rational Software Co., dikenal dengan OOSE (Object-Oriented Software Engineering), serta James Rumbaugh dari General Electric, dikenal dengan OMT (Object Modelling Technique). Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar penggunaan model yang berbasis OO, ketika mereka bertemu ditemani rekan lainnya Ivar Jacobson dari Objectory mulai mendiskusikan untuk mengadopsi masingmasing pendekatan metoda OO untuk membuat suatu model bahasa yang uniform / seragam yang disebut UML (Unified Modeling Language) dan dapat digunakan oleh seluruh dunia. Secara resmi bahasa UML dimulai pada bulan oktober 1994, ketika Rumbaugh bergabung Booch untuk membuat sebuah project pendekatan metoda yang uniform/seragam dari masing-masing metoda mereka. Saat itu baru dikembangkan draft G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 1 metoda UML version 0.8 dan diselesaikan serta di release pada bulan oktober 1995. Bersamaan dengan saat itu, Jacobson bergabung dan UML tersebut diperkaya ruang lingkupnya dengan metoda OOSE sehingga muncul release version 0.9 pada bulan Juni 1996. Hingga saat ini sejak Juni 1998 UML version 1.3 telah diperkaya dan direspons oleh OMG (Object Management Group), Anderson Consulting, Ericsson, Platinum Technology, ObjectTime Limited, dll serta di pelihara oleh OMG yang dipimpin oleh Cris Kobryn. UML adalah standar dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi object-oriented dan software component. Software Development Life Cycle (SDLC) Tahapan dalam SDLC meliputi : n Requirements Analysis n Systems Analysis n Design n Implementation n Testing n Deployment n Maintenance Waterfall Model Requirements Analysis Design Implementation Maintenance Gambar 1. Waterfall Model Spiral Model Requirements Requirements Implementation Implementation Analysis Analysis Design Design Gambar 2. Spiral Model OOAD Road Map Untuk pemodelan pengembangan perangkat lunak dengan mengabdopsi SDLC dan UML, maka road map untuk tahapan requirements analysis, system analysis, dan design adalah : G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 2 Requirements Analysis Business Process Map Business Process Scenarios Business Process Activity Diagram Systems Analysis Use Case Diagram Use Case Scenarios Interface Prototypes Design Sequence Diagrams Class Diagrams Database Schema Gambar 3. OOAD Road Map 2. Business Process Diagram UML yang digunakan pada Business Process adalah Activity Diagram. Activity Diagram adalah merepresentasikan aktivitas dan aliran aktivitas system. Print Invoice Send Invoice Wait for payment Process Payment Gambar 4. Activity Diagram untuk Payment Handling 3. System Analysis Diagram UML yang digunakan pada tahap System Analysis adalah Use Case Diagram. Use Case Diagram adalah merepresentasikan batasan fungsional system. Take Order Sales Operative Check Order Progress Gambar 5. Use Case Diagram 4. Object and Class Definition Object adalah suatu entitas yang dapat dibedakan antara satu dengan yang lainnya. Class adalah kumpulan dari object yang memiliki properties yang sama. G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 3 cat name breed favourite food name2 eat() miaiow() sleep() catchMouse() Gambar 6. Class Cat Inheritance adalah pengelompokan class yang memiliki kesamaan properties, sehingga setiap class anak/turunan dapat mewarisi semua properties class induk dan tidak berlaku sebaliknya. person name address lecturer modulesTaught roomNumber student course modulesTaken Gambar 7. Inheritance Class Person 2Dshape area position getArea() triangle angle1 angle2 angle3 square sideLength circle radius Gambar 8. Inheritance Class 2DShape 5. Design Diagram UML yang digunakan pada tahap Design adalah Sequence Diagram (berdasarkan waktu), Collaboration Diagram (berdasarkan object), dan Class Diagram. Sequence Diagram dan Collaboration Diagram merupakan aspek dinamik system, dan Class Diagram merupakan aspek statik system. G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 4 Order Entry Screen : Sales Operative Order Dispatch Enter Order Details Enter Delivery Details Gambar 9. Sequence Diagram Enter Order Details Enter Delivery Details Order Entry Screen : Sales Operative Order Dispatch Gambar 10. Collaboration Diagram Order OrderEntryScreen Customer ID Date OrderLine Quantity 0..n ProductID AddOrderLine() 0..n Customer Name Address Gambar 11. Class Diagram G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 5 6. Mapping ke Relational Table Setiap class yang bersifat persistent harus dilakukan mapping ke dalam relational table. customer name address telephone number We “remember” attributes by storing them on a computer’s hard disk order() pay for goods() The most common way to keep a record of the attributes is to use a database name address telephone number Gambar 12. Penyimpanan Object ke dalam Database Name Address Telephone number Peter 12 Ladbroke Street 01484 324345 Mary 14 Perry Avenue 01274 98209 Gambar 13. Hasil Mapping ke dalam Relational Table 7. Case Study Odd Shoe Company Odd Shoe Company adalah toko yang melayani penjualan Shoe secara online. Adapun proses bisnis yang terjadi adalah sebagai berikut : § Untuk melakukan order, customer harus terdaftar Odd shoe Company. Dalam melakukan registrasi dibutuhkan name and address, payment details (credit card, etc), shoe sizes, gender, and any special details. § Dalam melakukan order customer akan memilih shoe range. System akan memberitahu apakah stocknya ada atau dibutuhkan untuk memesan ke supplier. Jika stock ada maka dengan segera akan dilakukan pengiriman. § Customer dapat melakukan order secara online, dimana statusnya dapat menunggu delivery ke Odd shoe Company, menunggu pengiriman, menunggu pemeriksaan kredit atau pengiriman. Sebelum dikirimkan ke customer seharusnya ada pilihan untuk membatalkan order. § Odd Shoe Company setiap minggu ingin mengetahui laporan mengenai jumlah customer, statistic ukuran Shoe, order, stock, dan order-order yang dibatalkan. § Setiap bulan customer akan dikirim statmen melalui email, bersama-sama dengan list penawaran khusus. Penawaran yang disampaikan hanya untuk stock sepatu yang ada sesuai dengan ukuran customer. § Odd Shoe Company akan menyimpan gambar-gambar Shoe, harga, stock, dan ukuran semua shoe dalam database. Pada saat supplier mensuplai Shoe maka stock di-update, jika Shoe di order maka stock dikurangi, dan jika order dibatalkan maka stock juga di-update. G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 6 Business Process Hear about Odd Shoe Company Visit Web Site no more shoes wanted Identify shoe(s) that suit add to shopping basket view shopping basket decide to view more commit order supply credit card details credit card problems wait for delivery shoes delivered no delivery act on non-delivery shoes rejected shoes returned shoes accepted Gambar 14. Business Process Penjualan Ke Customer G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 7 Tahapan Analisis visit home page <<extend>> <<include>> customer add to basket browse catalogue <<extend>> view basket check stock level delete from basket <<extend>> stock control system <<include>> <<include>> amend quantity <<include>> order <<include>> reserve stock supply credit card details finance system Advise of credit card problem Gambar 15. Use Case Odd Shoe Company G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 8 Tabel 1. Performansi Use Case Home Page Use Case Number: 1 Use Case Name: Home Page Brief Description: Menampilkan home page Actors: Customer Pre-conditions : Web site operational Post-conditions : Home page ditampilkan Frequency of Execution: Diperkirakan setiap hari di akses100 dalam 3 bulan, dan terjadi peningkatan menjadi 1000 dalam setahun. Scalability: Diharapkan diatas 100 user mengakses secara concurrent Criticality: Sangat. Tanpa ada web site, perusahaan tidak melakukan penjualan. Primary Path: Customer memasukan alamat URL Use Cases Related to Primary Path: None Alternatives: None Use Cases Related to Alternatives: None Exceptions: None Use Cases Related to Exceptions: None Data Requirements: None, selain home page pada web site User Interfaces: Lihat Interface pada gamabar 16. Change Record: Created Aris Puji Widodo, 30 Juni 2004 G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 9 Tabel 2. Performansi Use Case Browse Catalog Use Case Number: 2 Use Case Name: Browse Catalogue Brief Description: Customer akan melakukan browse katalog shoes. Actors: Customer Pre-conditions : Web site tersedia Post-conditions : Item- item yang dipilih dimasukan dalam shopping basket Frequency of Execution: Diperkirakan setiap hari di akses100 dalam 3 bulan, dan terjadi peningkatan menjadi 1000 dalam setahun. Scalability: Diharapkan diatas 100 user mengakses secara concurrent Criticality: Sangat. Tanpa ada web site, perusahaan tidak melakukan penjualan. Primary Path: 1. Customer memilih katalog dari home page 2. Daftar Shoe styles ditampilkan dengan gambar-gambar secara thumbnail 3. Customer memilih shoe style 4. Daftar shoes and prices ditampilkan, dengan thumbnails shoes tersebut 5. Customer memilih shoe 6. Gambar shoe besar ditampilkan, dengan daftar prices, sizes, stock yang tersedia dan colour 7. Customer mengisi quantity, size, foot and colour 8. Customer melakukan clicks add to basket. Use Cases Related to Primary Path: None Alternatives: Pada setiap saat customer dapat melakukan backtrack ke home page sebelumnya. Pada setiap saat customer dapat melakukan pembatalan. Use Cases Related to Alternatives: Add to basket. Exceptions: None identified Use Cases Related to Exceptions: None Data Requirements: Daftar shoe styles dengan gambar-gambar secara thumbnail sebagai indikasi shoe style. Untuk setiap shoe, sizes tersedia, price, colour, a thumbnail picture and a full picture. User Interfaces: Lihat Interfaces pada gambar 18, 19, 20. Change Record: Created by Aris Puji Widodo, 30 Juni 2004 G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 10 Tahapan Design Gambar 16. Prototype Design Home Page : customer : web browser acceptURL( ) : internet servePage( ) : Odd Shoe Home Page open( ) displayPage( ) Gambar 17. Sequence Diagram Display Home Page Use Case G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 11 Gambar 18. Top Halaman untuk Catalogue Shoes Style Gambar 19. Second Halaman untuk Catalogue yang Menampilkan Summary Setiap Shoes Style G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 12 Gambar 20. Detil Halaman Shoe : customer : Odd Shoe Home Page openCatalogue( ) : Catalogue open( ) : shoe style : Shoe Style Page : shoe : Shoe Page : shopping basket detDetails( ) format( ) selectStyle( ) open( ) getSummary( ) format( ) selectShoe( ) open( ) getDetails( ) format( ) enterDetails( ) addToBasket( ) addItem( ) Gambar 21. Sequence Diagram untuk Use Case Browse Catalogue G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 13 Gambar 22. Prototype Halaman Shopping Basket : customer : Shoe Page : shopping basket : Shopping Basket Page : order addToBasket( ) open( ) getItems( ) format( ) buy( ) submitOrder( ) create( ) Gambar 23. Sequence Diagram untuk Use Case Add to Basket G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 14 Shopping Basket Page buy() Shoe Page web browser current Page addToBasket() enterDetails() acceptURL() requestPage() displayPage() internet generic page n URL servePage() Shoe Style Page selectShoe() open() format() Catalogue Odd Shoe Home Page selectStyle() openCatalogue() Gambar 24. Class Diagram User Interface shoe style thumbnail description detDetails() 0..n shoe thumbnail description price sizes 0..n picture shopping basket addItem() 0..n getItems() submitOrder() getDetails() getSummary() 1..n 0..1 order create() Gambar 25. Class Diagram Pengendali untuk Catalogue G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 15 8. Daftar Pustaka § § § § Bahrami, Object Oriented System Development, McGraw-Hill, 2000. G. Booch J. Rumbaugh, & Jacobson, The Unified Modeling Language, User Guide, Rational Software Corporation, Addison-Wesley, Massachus etts, USA, 1999. Ken Lunn , Information Modeling and Development, 2001 Roger S. Pressman, Software Engineering, A Practitioner’s Approach, Fourth Edition, The McGraw-Hill, Singapura, 1992 G:\bahanAjarKuliah\Modul\OOAD.doc Pelatihan Object Oriented Analysis and Design\ Aris Puji Widodo, MT - 30 Juni 2004 16