06 Desain Dan Arsitektur

Embed Size (px)

Citation preview

Rekayasa Perangkat Lunak (Software Engineering)

Andi Sunyoto, M.KomEmail: [email protected] [email protected] Web: andi.amikom.ac.id

Konsep Desain

Konsep DesainWhat ?Creative process of transforming the problem into a solution Description of the solution

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

3

Pihak yang terlibat :Customer harus memahami apa yang dilakukan sistem Pengembang harus mengetahui bagaimana sistem bekerja

Proses Desain :desain konseptual apa desain teknis bagaimana proses iteratif

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

4

DesainDesain Konseptualditulis dalam bahasa yg dipahami customer tidak menggunakan istilah-istilah teknis menjelaskan fungsi sistem tidak tergantung pada implementasi sistem dihubungkan dengan dokumen requirement

Desain Teknismenjelaskan konfigurasi perangkat keras, kebutuhan perangkat lunak, communication interface, I/O, jaringan, dsb. hirarki dan fungsi dari komponen-komponen perangkat lunak struktur data alir data

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

5

Mengapa tidak langsung dibuat implementasinya? Kita harus mempertimbangkan dampak dari requirements nonfungsional Sistem harus disesuaikan dengan lingkungan implementasi Pemodelan analisis tidak cukup formal, sehingga diperlukan:peyempurnaan analisis class menentukan determine operations menentukan bagaimana class saling berkomunikasi

Hasil analisis harus divalidasiSeberapa baik pemodelan kebutuhan dan analisis menjelaskan sistem? Hal apa yang masih belum jelas?Andi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 6

Desain

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

7

Workers & Artifacts

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

8

Workersarchitect - responsible for the integrity and the architecture of the design and deployment models use-case engineer - responsible for one or more usecase realizationsdesign makes all textual descriptions and diagrams describing the usecase realization readable and suited for their purpose component engineer - defines and maintains the operations,methods, attributes, relationships and implementation of one or more design classes. May also maintain the integrity of one or more subsystems

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

9

Artifactdesign model - describes the physical realization of a use case; focuses on how functional and nonfunctional requirements,together with implementation environment constraints, impact the system deployment model - describes the physical distribution of the system in terms of how functionality is distributed among computational nodes architecture description - contains the architecturally significant artifacts of the design model and all of the deployment modeltwo views of architecture - design model view and deployment model view

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

10

Artifactuse-case realizationdesign - describes how a specific use case is realized and performed in terms of design classes and their objects design class - an abstraction of a class or similar construct in the systems implementationuse programming language to specify a design class

design subsystem - organizes artifacts of the design model into more manageable pieces interface - specifies the operations provided by design classes and subsystemsseparates operations from their implementation

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

11

Desain - Proses

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

12

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

13

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

14

Desain ModelComponent-level design menghasilkan deskripsi prosedur software. Interface design menjelaskan bagaimana software berkomunikasi dalam dirinya, dengan sistem yang bertukar informasi dengannya,dan dengan manusia yang menggunakannya. DFD diperlukan untuk desain ini. Architectural design mendefinisikan relasi antara elemenelemen struktural utama, pola desain yang digunakan untuk mencapai kebutuhan yang ditentukan untuk sistem dan batasanbatasan yang mempengaruhi bagaimana desain arsitektural ini diterapkan. Desain ini berdasarkan spesifikasi sistem, model analisis (bagian DFD) dan interaksi antara subsistem. Data design mengubah informasi menjadi struktur data untuk mengimplementasikan software. Data design dibuat berdasarkan data dictionary dan ERD.

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

15

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

16

Design Issuesdata management Bagaimana penanganan data?files? relational DBMS? object-oriented DBMS?

access control Bagaimana penentuan akses?global access table? access control list? capability?

control flow Bagaimana proses dimulai dan diatur?procedure-driven? event-driven? threaded?

boundary conditionssystem start-up, system shutdown exceptions

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

17

Design IssuesSistem dijalankan pada Perangkat Lunak/Perangkat Keras apa?hardware System software distribution

Bahasa pemrograman apa yang dipakai?OO, non-OO memory management

Bagaimana sistem yang sudah ada?DBMS UIMS Network facilities legacy systems

Bagaimana organisasi / orang yang terlibat?Lokasi yg terdistribusi Kompetensi timAndi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 18

Desain ArsitekturPIPES AND FILTERS MODELSistem merupakan serangkaian komputasi independen (filter) yang secara bertahap merubah (transform) masukan.

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

19

Desain ArsitekturPIPES AND FILTERS MODEL KeuntunganFilter dapat digunakan kembali sistem dapat diextends concurrency

Kerugianbatch processing bagaimana menangani aplikasi yg interaktif? filter dapat menduplikasi fungsionalitas bagaimana menangani error?Andi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 20

Desain ArsitekturREPOSITORY MODELPada model ini data disimpan secara terpusat untuk semua sub-sistem.

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

21

Desain ArsitekturREPOSITORY MODEL KeuntunganEfisien untuk share jumlah data yang besar Sub-system tidak perlu repot dengan bagaimana data dibuat dan manajemen terpusat contoh: backup, keamanan, re-index.

KerugianSub-system harus mengikuti model yang sudah ditetapkan. Evolusi data sulit dan mahal Sulit untuk distribusi layanan secara efisien, karena yang melayani hanya satu.Andi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 22

Desain ArsitekturCLIENT-SERVER MODELModel ini terdiri dari sekumpulan server yang berdiri sendiri dan masing-masing menyediakan layanan untuk sub-sistem. Ada clientclient (sub-system) yang menggunakan layanan server dan tersedia network yang mengijinkan client untuk akses layanan dari server.

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

23

Desain ArsitekturCLIENT-SERVER MODEL KeuntunganDistribution data secara langsung Penggunaan sistem jaringan secara efektif hardware jadi murah Mudah untuk tambahkan server baru atau updgrade server yang sudah ada

KerugianTidak ada data model, jadi organisasi data macam-macam, sehingga integrasi data sulit Redundant management Tidak ada pusat register nama dan service, sehingga kalau tidak tahu nama server dan service-nya sulit ditemukanAndi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 24

Desain ArsitekturLAYERING MODELModel ini membangun sistem dengan lapisan-lapisan hirarkis dan protokol-protokol interaksi.-Lapisan dalam, menyediakan servis untuk lapisan luar -Lapisan luar, berlaku sebagai klien dari lapisan dalam

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

25

Desain ArsitekturLAYERING MODEL

Andi Sunyoto, M.Kom

Sommerville, Ian, 2004, Software Engineering (7th edition)

26

Desain ArsitekturLAYERING MODEL KeuntunganAbstraksi hirarkis Relatif mudah untuk menambah lapisan Lapisan dapat digunakan kembali

KerugianSulit untuk membuat struktur sistem pada lapisan Abstraksi hirarkis tidak selalu tampak dari requirement performanceAndi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 27

Prinsip DesainDesain yang baik, secara umum jika dapat meningkatkan keuntungan dengan mengurangi biaya dan meningkatkan pendapatan. Beberapa prinsip desain yang baik diantaranya:Usability Efficiency Reliability Maintainability ReusabilityAndi Sunyoto, M.Kom Sommerville, Ian, 2004, Software Engineering (7th edition) 28