Tampilkan postingan dengan label Catatan Kuliah. Tampilkan semua postingan
Tampilkan postingan dengan label Catatan Kuliah. Tampilkan semua postingan

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


Pengantar e-Commerce


Beberapa mahasiswa membuat tugas project terkait aplikasi e-Commerce. Hampir semua dokumentasi yang masuk, menunjukkan bahwa tim pengembang mahasiswa tersebut, tidak memahami sepenuhnya tentang proses bisnis dari e-commerce itu sendiri. Tulisan ini merupakan catatan kuliah yang berupaya untuk memberikan pengertian awal mengenai konsep e-Commerce tersebut.

Definisi dari e-Commerce sendiri sangat beragam, tergantung dari perspektif atau kacamata yang memanfaatkannya. Association for Electronic Commerce secara sederhana mendifinisikan e-Commerce sebagai mekanisme bisnis secara elektronis. CommerceNet, sebuah konsorsium industri, memberikan definisi yang lebih lengkap, yaitu penggunaan jejaring komputer (komputer yang saling terhubung) sebagai sarana penciptaan relasi bisnis. Tidak puas dengan definisi tersebut, CommerceNet menambahkan bahwa di dalam e-Commerce terjadi proses pembelian dan penjualan jasa atau produk antara dua belah pihak melalui internet atau pertukaran dan distribusi informasi antar dua pihak di dalam satu perusahaan dengan menggunakan intranet.

Chaffey membedakan pengertian e-business dan e-commerce. E-business diartikan sebagai he transformation of key business process through the use of internet technologiese-business cencerung kepada pemanfaatan teknologi internet dalam melakukan proses bisnis. E-commerce disebut sebagai  all electronically mediated information exchanges between an organizations and its external stakeholderse-commerce hanya sekedar pada tindakan menjual dan membeli dengan menggunakan internet. Pengguna internet yang semakin banyak dan jangkauan interkoneksi yang semakin meluas memungkinkan terjadinya e-business.

2. Proses Bisnis 
Pada prinsipnya, terdapat perbedaan mendasar pada proses bisnis perdagangan secara manual dan yang menggunakan e-commerce. Perbedaan proses bisnis tersebut dapat dilihat pada Gambar 1 dan Gambar 2 berikut


Gambar 1. Proses Bisnis Manual



Gambar 2. Proses Bisnis e-Commerce

Dari Gambar 1 dan Gambar 2 diatas, jelas terlihat perbedaan mendasar antara proses manual dan dengan e-commerce, dimana pada proses dengan e-commerce terjadi efisiensi pada penggunaan fax, pencetakan dokumen, entry ulang dokumen/jasa. Efisiensi tersebut menunjukkan penghematan biaya dan mempercepat waktu proses. Kualitas transfer data pun lebih baik, karena tidak dilakukan entry ulang yang memungkinkan terjadinya human error.

Secara ringkas e-commerce mampu menangani masalah berikut:
a. Otomatisasi, proses otomatisasi yang menggantikan proses manual (disebut “enerprise resource planning” concept).
b. Integrasi, proses yang terintegrasi yang akan meningkatkan efisiensi dan efektivitas proses (disebut “just in time” concept).
c. Publikasi, memberikan jasa promosi dan komunikasi atas produk dan jasa yang dipasarkan (disebut “electronic cataloging” concept).
d. Interaksi, pertukaran data atau informasi antar berbagai pihak yang akan meminimalkan “human error” (diagram “electronic data interchange/EDI” concept).
e. Transaksi, kesepakatan antara 2 pihak untuk melakukan transaksi yang melibatkan institusi lainnya sebagai pihak yang menangani pembayaran (disebut “electronic payment” concept).

3. Mekanisme e-Commerce
Konsumen yang hendak memilih produk layanan akan dibeli bisa menggunakan ‘shopping cart’ untuk menyimpan data tentang barang-barang yang telah dipilih dan akan dibayar. Konsep ‘shopping cart’ ini meniru kereta belanja yang biasanya digunakan orang untuk berbelanja di pasar swalayan. ‘Shopping cart’ biasanya berupa formulir dalam web, dan dibuat dengan kombinasi CGI, database, dan HTML. Barang-barang yang sudah dimasukkan ke shopping cart masih bisa di-cancel, jika pembeli berniat untuk membatalkan membeli barang tersebut.
Jika pembeli ingin membayar untuk barang yang telah dipilih, maka harus mengisi form transaksi. Biasanya form ini menanyakan identitas pembeli serta nomor kartu kredit. Karena informasi ini bisa disalahgunakan jika jatuh ke tangan yang salah, maka pihak penyedia jasa e-commerce telah mengusahakan agar pengiriman data-data tersebut berjalan secara aman, dengan menggunakan standar security tertentu.
Setelah pembeli mengadakan transaksi, akan mengirimkan barang yang dipesan melalui jasa pos langsung ke rumah pembeli. Beberapa cybershop menyediakan fasilitas bagi pembeli untuk mengecek status barang yang telah dikirim melalui internet.

Untuk keterangan yang lebih lengkap terkait e-Commerce dapat mengunduh pada link dibawah ini:


Minggu, 28 Oktober 2012

Tutorial Rational Rose: Deployment Diagram


Komponen deployment diagram:
Processor
Device
Connection


Deployment diagram menampilkan processors, devices, and connections. Setiap model berisi deployment diagram tunggal yang menunjukkan hubungan antara processor and device dan penempatan dari processe to processor.

Processor merupakan komponen perangkat keras yang mampu mengeksekusi program.

Device merupakan perangkat keras yang tidak memiliki kemampuan untuk memproses. Setiap device memiliki nama yang dapat bersifat umum seperti: modem, terminal, dll.

Sebuah connection menunjukkan sebuah bagian komunikasi antara  dua prosesor, dua device, atau sebuah prosesor dan sebauh device. Sebuah connection biasanya menyatakan penggandengan hardware secara langsung, seperti kabel RS232, dan dapat juga menyatakan penggandengan yang tidak langsung.

Membuat deployment diagram :
1. Membuat deployment diagram: click dobel pada deployment view dalam browser model.
2. Untuk membuat node: Click icon processor    pada toolbar Click di deployment diagram untuk menempatkan node beri nama pada node yang baru dibuat.
3. Untuk membuat koneksi : Click icon connection    pada toolbarClick Node  yang merupakan ‘client’ drag (connectin line) ke node yang merupakan ‘supplier’Click dobeltuliskan nama koneksitekan OK.


Mengatur sifat dan hubungan dari prosesor dalam model:
1. Pilih icon processor pada deployment diagram atau pada browser Click dobel
Dengan langkah seperti diatas dapat dibuat 5 buah node yaitu : Registration, Database, Main Building, Dorm, Library.
Kelima node ini terkoneksi sebagai berikut :
Node Connected to Node
Registration Database
Registration Main Building
Registration Dorm
Registration Library

Hasilnya seperti pada gambar berikut :





Minggu, 14 Oktober 2012

Menggambar UML Class Diagram


UML Class Diagram

Class Diagram memiliki tiga area pokok :
1. Nama (dan stereotype)
2. Atribut
3. Operasi/metode
Gambar Class Diagram



Apabila atribut dan operasi digabungkan maka ini disebut function. Atribut dan operasi dapat memiliki salah satu sifat berikut :
Private, tidak dapat dipanggil dari luar class yang bersangkutan. Notasi: “-“
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. Notasi: “#”
Public, dapat dipanggil oleh siapa saja. Notasi: “+”

Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time.

Gambar berikut ini merupakan contoh class diagram dari sebuah interface “Person”

Gambar <<Interface>> Class Diagram


   

Class dapat dikelompokkan menjadi package seperti gambar di bawah ini:


Gambar Package Class Diagram

Hubungan Antar Class
1. Asosiasi, yaitu hubungan statis antar class. Sebuah association adalah hubungan antar benda struktural yang terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya
2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. Sebuah generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk.
4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.

Cara menggambarkan class diagram
1. Gunakan use case table yang sudah dibuat sebelumnya dengan memberikan highlight semua kata benda yang dapat menjadi potensial obyek.
2. Bedakan tipe-tipe obyek tersebut karena mereka dapat berupa interface, package, dan lainnya. Apabila obyek tersebut berupa nama atribut dari sebuah class, maka obyek ini harus ditolak.
3. Setelah mendapatkan daftar class, maka gambarkan high level class diagram beserta dengan kardinalitas serta deskripsi relasinya.
4. Kemudian gambarkan detailed class diagram di mana hubungan antar class sudah ditambahkan. Jangan lupa untuk menuliskan semua atribut dan operasi beserta dengan sifat mereka. Pada umumnya sifat atribut pada sebuah tabel adalah private (tidak dapat dipanggil dari luar class yang bersangkutan). Sedangkan sifat dari operasi yaitu public (dapat dipanggil oleh siapa saja).
5. Jangan lupa untuk melakukan normalisasi terhadap class jika belum dibuat sebelumnya.

Berikut ini ditunjukkan notasi dari Kelas Diagram


Gambar Notasi Class Diagram


Berikut ini contoh class diagram beserta dengan hubungan antar kelas.


Gambar Contoh Hubungan Antar Kelas

Berikut ini adalah contoh menggambar Diagram Kelas melalui Video Youtube:
http://www.youtube.com/watch?v=w2m-7YcHVck

Video Pengantar ini juga dapat dilihat sebagai awal untuk memahami UML Class Diagram:
http://www.youtube.com/watch?v=5d2blHVH3h8



























Model Sistem Aplikasi Web-based Dormitory Management (II)

Tulisan ini adalah lanjutan dari bagian pertama disini:
http://stanlysk.blogspot.com/2012/10/analisa-perancangan-aplikasi-web-based.html
kemudian dilanjutkan dengan bagian kedua disini:
http://stanlysk.blogspot.com/2012/10/model-sistem-aplikasi-web-based.html

Pada bagian kedua, sistem aplikasi dimodelkan menurut model scenario-based, sedangkan pada bagian ketiga ini, sistem aplikasi akan dimodelkan menurut model kelas dan model perilaku. Berikut adalah gambar model sistem aplikasi.

3. Model Kelas
Menggambar model kelas, mengikuti teknik CRC Card dan UML Class Diagram, sebagai berikut:






4. Model Perilaku (atau behaviour model)
Untuk model perilaku dari sistem aplikasi, akan menggunakan UML Sequence Diagram dan UML State Diagram. Pada penulisan ini, dicontohkan diagram sequence untuk Use Case Room Booking, dan Occupant.




Sedangkan UML State Diagram yang ditampilkan adalah State Booking Management dan Asset Management. Berikut adalah tampilannya ...






Model Sistem Aplikasi Web-based Dormitory Management

Tulisan ini merupakan lanjutan dari tulisan saya sebelumnya, yang bisa dibaca selengkapnya pada URL dibawah ini:
http://stanlysk.blogspot.com/2012/10/analisa-perancangan-aplikasi-web-based.html

Setelah melakukan proses pendefinisian kebutuhan secara lengkap, maka Tim Pengembang selanjutnya dapat melakukan analisis model sistem perangkat lunak yang akan dikembangkan. Berikut ini adalah contoh tahapan dari langkah tersebut:


2. FUNCTIONAL MODELING
2.1 Activity Diagram
Kegiatan-kegiatan yang terjadi baik dalam proses As-is System maupun To-Be Sytem untuk Sistem Pengelolaan Rumah Kos Berbasis Web ini dapat diberikan dalam beberapa Activity Diagram dibawah ini:

As-Is System (Viewing + Booking + Payment)


Gambar As-Is System (Viewing + Booking + Payment)

As-Is System (Report)
Laporan pembayaran uang sewa kamar oleh Penghuni Rumah Kos




Laporan pemeliharaan aset rumah kos oleh Manager Rumah Kos


 Gambar As-Is System (Report)

To Be System (Viewing + Booking + Payment)


Gambar To Be System (Viewing + Booking + Payment)

To Be System (Report)

Gambar To Be System (Report)

Setelah dipaparkan mengenai To Be System, maka langkah selanjutnya adalah menggambar model fungsional sistem aplikasi yang akan dibangun. Untuk keperluan ini, digunakan UML Use Case Diagram.

Use Case Diagram
Use Case Diagram yang pertama,a dalah Use Case Diagram Room Booking


Use Case Diagram yang kedua adalah Use Case DOrmitory Management.



Kemudian diikuti dengan Use Case Description dari salah satu use case yang ada diatas ...























Demikianlah Model Fungsional sistem aplikasi yang akan dikembangkan. Model gambar diatas mengikuti teori model scenario-based, dengan menggunakan Diagram Aktivitas dan Diagram Use Case untuk memodelkan sistem aplikasi perangkat lunak.