Rabu, 07 November 2012

Architectural Design


Pertanyaan besar seorang software engineer saat hendak membangun perangkat lunak adalah apa yang dimaksud dengan arsitektur desain perangkat lunak.

Pressman summary menuliskan bahwa ...
Architectural design represents the structure of the data and program components required to build a computer-based system. A number of architectural "styles" exist. Architectural design begins with data design and proceeds to the derivation of one or more representations of the architectural structure of the system. The resulting architectural model encompasses both the data architecture and the program structure. Alternative architectural patterns are analyzed to determine the structure that is best suited to the customer’s requirements. The architectural model is subjected to software quality review like all other design work products.

Mari kita lihat pengertian yang dikemukan oleh Software Engineering Institute (SEI Carnegie  Mellon) yang saya kutip disini (http://blog.sei.cmu.edu/post.cfm/reflection-on-20-years-of-software-architecture-a-presentation-by-linda-northrop) ...
The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural. This work constituted the beginning of a cohesive body of SEI research and transition efforts focused on software architecture. 

Dari pengertian diatas, maka kita dapat menyimpulkan bahwa arsitektur sistem aplikasi itu adalah terkait dengan "struktur" (atau bagian dalam, bisa disebut sebagai unsur pembangun/pembentuk) dari sistem perangkat lunak yang akan dikembangkan. Pengertian yang lebih praktis dari arsitektur desain perangkat lunak dapat dipahami dengan menganalogikan perangkat lunak dengan bangunan rumah atau gedung bertingkat. Seperti biasanya seorang insinyur, sebelum membangun rumah atau gedung bertingkat, maka insinyur akan membangun rumah atau bangunan tersebut diatas kertas, lengkap dengan semua perhitungan yang terkait proses penyelesaian rumah atau bangunan tersebut. Inilah yang dimaksud dengan arsitektur desain perangkat lunak.

Dibawah ini, saya berikan sebuah gambar arsitektur SOA (service oriented architecture)


Melakukan architectural design bermanfaat dalam berkomunikasi dengan stakeholder terkait hal-hal teknis yang terkait aplikasi yang akan dikembangkan. Selain itu, architectural design akan memandu tim pengembang untuk mulai membangun aplikasi.

Dokumentasi kegiatan Architectural Design biasanya disebut SAD (atau Software Architecture Document). Template dokumen SAD biasanya mengikuti standar format dokumentasi yang dikeluarkan IEEE.

Selasa, 06 November 2012

Tutorial Rational Rose: Membuat Package


Package digunakan untuk membuat grup dari class-class yang memiliki beberapa kesamaan. Ada beberapa pendeketan berdasarkan kesamaan untuk membuat paket class. Salah satu pendekatan yang digunakan adalah berdasarkan stererotype. Dengan pendekatan ini, satu paket dapat berisi Entity Class, Boundary class, Control class, dan sebagainya. Pendekatan yang lain yaitu berdasarkan fungsi. Sebagai contoh sebuah paket bernama sekuriti, yang digrupkan dengan paket lain misal Employee Maintenance, Reporting, atau Error Handling. Keuntungan dengan pendekatan ini yakni dapat  digunakan secara berulang.

Menambah paket
Paket (package) dibuat dalam Logocal View dari browser. Untuk menambahkan sebuah paket yang sudah ada untuk Class diagram, pindahkan dengan men-drag  paket dari browser ke dalam Class Diagram.

Menambahkan paket yang baru  ke Class diagram:
  1. Pilih icon Package  dalam toolbar 
  2. Click dimana saja dalam  Class diagram untuk menempatkan paket.
  3. Ketik nama Paket (package).
Menambahkan Paket ke Browser:
  1. Click kanan Logical View dalam browser NewPackageketik nama paket

Gambar 1. Membuat Paket baru

Untuk menambahan paket dalam sebuah paket maka Click kanan pada paket yang sudah ada dan ikuti langkah seperti diatas.

Menghapus Paket
Menghapus paket dari Class diagram:
  1. Pilih paket pada Class diagram.
  2. Tekan tombol Delete
Catatan: 
Menghapus paket dari sebuah Class diagram, tidak otomatis menghapus paket pada browser dan dalam class diagram yang lain.

Menghapus paket dari model:
  1. Click kanan pada paket di browser Delete

Gambar 2. Menghapus Paket

Atau
  1. Pilih paket pada Class diagram.
  2. Pilih Edit Delete from Model, atau tekan Ctrl+D.


Gambar 3. Menghapus Paket dari Model


Membuat paket yang memiliki ketergantungan (Package Dependencies)

Sifat dependency merupakan tipe relasi yang hanya terjadi dalam menggambarkan antar paket. Sebuah package dependency, seperti sebuah class dependency yang digambarkan dengan panah bergari putus-putus. Sebuah package dependency dari paket A ke paket B memberikan gambaran bahwa beberapa class dalmapaket A memiliki unidirectional relationship ke beberapaclass dalam paket B.
Dengan kata lain, beberapa class dalam A ingin mengetahui beberapa class dalam B.
Membuat  package dependency pada Class diagram:
  1. Pilih icon  Dependency  dari toolbar.
  2. Drag garis dependency dari paket yang terikat (dependent package)  ke paket yang lain. 
Atau 
  1. Pilih Tools Create Dependency.
  2. Drag garis dependency line dari dependent package ke yang lain.

Gambar 4. Membuat garis dependency


Menghapus Package Dependencies
  1. Pilih package dependency yang ingin dihapus
  2. Tekan tombol Delete.
Atau
  1. Pilih package dependency yang ingin dihapus
  2. Pilih Edit Delete

Tutorial Rational Rose: Membuat Diagram Kelas


Class diagram memperlihatkan keberadaan dari class-class dan hubungannya dari sistem dalam logical view. Class diperoleh dengan melakukan  pengetesan pada sequence dan collaboratin diagram.

Membuat  Main Class Diagram
Klick kanan Logical view new class diagram memberi nama(misal: Utama)  
dobel klick

Membuat Class 
  1. Klick kanan Logical view new class memberi nama
  2. Buatlah class tersebut dalam Class Diagram: Drag class ke dalam class diagram yang terbuka.
atau
  1. Memunculkan Class dari toolbar: pilih icon Class   pada toolbar click sekali pada Class diagram yang terbuka.
  2. Memberi nama: Click dobel pada class tersebut  pilih General tab dalam window specification tuliskan nama yang diinginkan dalam kolom name.

 Membuat Stereotype untuk Class (jika diperlukan)
  1. Click kanan pada Class dalam browser Specification General pilih nama Stereotype atau diketik tekan OK.
Dokumentasi Class
  1. Menentukan Class yang akan diberi dokumentasi: Lihat daftar Class dalam browser Click pada Class yang dipilih.
  2. Menuliskan dokumentasi: Pindahkan kursor pada documentation window tuliskan keterangan secukupnya. (misal: Seseorang yang terdaftar dalam semester ini.)
atau
  1. Lihat daftar Class dalam browser atau pada windows Cass Diagram.
  2. Click Dobel pada Class yang dipilih pilih General tab dalam window Class specification tuliskan dokumentasi..
Membuat Relasi Association 
  1. Click icon Association  pada toolbar.
  2. Click pada salah satu Class yang akan diasosiasikan dalam Class Diagram
  3. Drag garis Association ke Class yang diasosiasikan lainnya.

Membuat Relasi Aggregation
  1. Pilih icon Aggregation  dari toolbar
  2. Click pada class yang memainkan peran secara keseluruhan dalam Class Diagram dan drag garis aggregation ke Class yang memainkan peranan sebagian.

Membuat Relasi Composition Aggregation
  1. Pilih icon Aggregation dari toolbar
  2. Click pada Class yang memerankan keseluruhan dalam Class Diagram dan Drag  garis aggregation ke Class yang memerankan secara sebagian.
  3. Click kanan pada garis aggregation containment  of pilih Value
Memberi nama Relasi
  1. Click garis relasi pada Class Diagram
  2. Tuliskan nama relasi yang diinginkan
Membuat nama Peran
  1. Menampilkan shortcut yang akan dimodifikasi: Click kanan pada garis relasi dekat Class yang akan dimodifikasi.
  2. Pilih Menu Role Name
  3. Tuliskan nama peran yang inginkan
Membuat multiplicity
  1. Click dobel pada garis relasi untuk memunculkan Specification
  2. Pilih Menu Detail pada peran yang akan dimodifikasi (Detail Role A atau Role B)
  3. Tentukan multiplicity yang diinginkan
Membuat Relasi  Unary 
  1. Pilih icon Association (atau Aggregation) dari toolbar
  2. Click pada Class dan drag garis Association (atau Aggregation) bagian luar dari Class.
  3. Click sekali Arahkan mouse ke Class asal click sekali
  4. Tuliskan nama peran dan multiplicity untuk setiap akhir dari unary association

Membuat Association Class
Association class merupakan Class di sambungkan ke sebuah Association dengan loop.
  1. Click icon Class dari toolbar
  2. Click pada diagram untuk menempatkan Class tuliskan namanya
  3. Tambahkan attribut Class: Click kanan pada Classnew attributketik nama attribut
  4. Menambahkan operasi Class: Click kanan pada Classnew operationketik nama operasi
  5. Click icon Link Attribut dari toolbar 
  6. Click pada association Class dan drag garis Link Attribut ke association yang akan disambungkan.


Gambar 1.  Membuat association Class


Membuat Relasi Generalisation
  1. Click icon Generalisation 
  2. Click pada satu subclass dan drag garis Generalisation ke superclass

Gambar 2. Membuat Relasi Generalisation
  1. Untuk setiap subclass yang merupakan bagian dari Generalisation: pilih icon Generalisation dari toolbar click pada subclass dan drag garis Generalisation ke ujung generali yang sudah terbentuk.



Gambar 3. Relasi beberapa cubclass 


Menambahkan  attribute ke suatu Class
  1. Memilih Class pada Browser: Click sekali pada tanda plus (+) pada Logical View  agar terurai isinya. (jika Logical View sedang bertanda +, atau tidak terurai).
  2. Pilih Class yang akan ditambahi attribute.
  3. Membuka menu attribute: Click kanan dari class yang telah dipilih
  4. Pilih New Attribute, dan Ketikkan attribute yang diinginkan.
  5. Memberi tipe attribute: Click pada attribute yang baru saja ditambahkan.
  6. Click kanan dan pilih menu open Specification.
  7. Arahkan kursor ke tipe. Pilih tipe attribute yang diinginkan dengan membuka menu option.

Menambahkan  Operasi ke sebuah Class
  1. Click kanan untuk memilih Class dalam Browser.
  2. Pilih New Operation ketikkan operasi yang diinginkan.




Gambar 4. Membuat Attribut dari class



Gambar 5.  Memberi tipe pada attribut