Software Engineering IT Telkom Design Engineering Software Engineering IT Telkom
Rekayasa Disain Meliputi sekumpulan prinsip, konsep, dan praktek yang mengarah pada pengembangan sistem atau produk yang berkualitas Bertujuan menghasilkan model atau representasi yang menunjukkan firmness, commodity, & delight
Istilah dalam disain PL Firmness : Fungsionalitas PL seharusnya tidak ada bug Commodity : PL seharusnya sesuai dengan maksud yang diinginkan Delight : Pengalaman menggunakan PL seharusnya menyenangkan
Disain PL Berada pada kernel teknis dan diaplikasikan tidak tergantung pada model proses Setiap elemen model analisis dibutuhkan untuk mengembangkan 4 model disain
Translasi model analysis ke model disain
Design Model Data / class design Architectural design Interface design COMPONENT design
Guidelines Quality Design Disain menghasilkan arsitektur yang dibuat berdasarkan pola yang dikenal. Sebaiknya terdiri atas komponen, shg dapat diimplementasikan secara bertahap Disain seharusnya modular Disain seharusnya berisi representasi data, arsitektur, interface dan komponen yang jelas
Guidelines Quality Design Disain mengacu pada struktur data yang sesuai untuk implementasi kelas Disain mengarah ke komponen yang memiliki karakteristik independent functional Disain mengarah pada antarmuka yang mereduksi kompleksitas
Guidelines Quality Design Disain dapat seharusnya diturunkan dengan menggunakan teknik interatif berdasarkan informasi dari Analysis Disain dapat direpresentasikan menggunakan notasi yang efektif dikomunikasikan
Quality Attribute Functionality Usability Reliability Performance Supportability
Assesment Quality Attribute Functionality evaluasi fitur-fitur & kemampuan yang dimiliki PL Usability evaluasi pertimbangan human factor yi : estetika, konsistensi & dokumentasi Reliability evaluasi dengan mengukur frekuensi kegagalan, akurasi output, kemampuan recovery dari failure
Assesment Quality Attribute Performance diukur dari kecepatan pemrosesan, response time, resource consumption, throughput, efficiency Supportability kombinasi maintability (extensibility, adaptability, serviceability) dengan kemampuan mengorganisasikan dan mengendalikan elemen PL
Design Concept Abstraction Architecture Pattern Modularity Information Hiding Functional Independence Refinement Refactoring* Class Design*
Data Abstraction door manufacturer model number type swing direction inserts lights type number weight opening mechanism implemented as a data structure
Architecture “The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” [SHA95a] Structural properties Extra-functional properties Families of related systems
Pattern Design Pattern Template Pattern name—describes the essence of the pattern in a short but expressive name Intent—describes the pattern and what it does Also-known-as—lists any synonyms for the pattern Motivation—provides an example of the problem Applicability—notes specific design situations in which the pattern is applicable Structure—describes the classes that are required to implement the pattern Participants—describes the responsibilities of the classes that are required to implement the pattern Collaborations—describes how the participants collaborate to carry out their responsibilities Consequences—describes the “design forces” that affect the pattern and the potential trade-offs that must be considered when the pattern is implemented Related patterns—cross-references related design patterns
Modularity
Information Hiding module clients • algorithm controlled interface • data structure • details of external interface • resource allocation policy clients "secret" a specific design decision
Functional Independence
Refinement open walk to door; reach for knob; open door; repeat until door opens turn knob clockwise; walk through; if knob doesn't turn, then close door. take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
Design Model Ditinjau dari 2 dimensi Dimensi Process merepresentasikan evolusi model disain sebagai bagian dari proses PL Dimensi Abstraction merepresentasikan tingkat detil translasi model analisis ke model disain
Design Model Elements Data elements Architectural elements Data model --> data structures Data model --> database architecture Architectural elements Application domain Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Patterns and “styles” (Chapter 10) Interface elements the user interface (UI) external interfaces to other systems, devices, networks or other producers or consumers of information internal interfaces between various design components. Component elements Deployment elements
Data Element Create a model data and/or information that is represented at a high level of abstraction (the user’s view of data) At architectural level focus on file or databases; At component level focus on data structure
Architecture Element SW architecture must model the structure of a system and the manner in which data and procedural component collaborate with one another
Architectural Style Data centered architecture Data flow architecture Call & Return architecture Object Oriented architecture Layered architecture
Architectural Design Pendekatan yang digunakan pemetaan architectural (call & return architecture) yaitu pemetaan DFD menjadi arsitektur PL Teknik yang biasa digunakan adalah Structured Design
Data Centered Architecture
Data Flow Architecture
Call & Return architecture
Layered architecture
Component Element Meliputi sederetan task yang mereduksi level abstraksi model SW Ada 2 view : a. Object oriented view b. Conventional View
3 type Component in Conventional View Control Module coordinate the invocation of all other problem domain component Problem Domain Module implement a complete or partial function that is required by user Infrastructure Module responsible for function that support the processing required in the problem domain
Conventional Component design Requires the represention of : Data structure Interfaces Algorithm for program module To generation of source code of SW
Component Design Component Level Design Element : Pendefinisian modul atau komponen yang membentuk arsitektur PL Deployment Level Design Element : pengalokasian arsitektur, komponen & interface ke konfigurasi fisik PL
Interface Element Design of interfaces between SW Component Design of interfaces between SW and other external entities Design of interfaces between human & computer (HCI)
Golden Rules for Basis UI design Place the User in control Reduce the User memory load Make the interfaces consistent
Interfaces Design Steps Define interface object & actions (using information developed during interfaces Analysis) Define User Action that will cause the state UI to change Depict each interface state actually look to user Indicate how user interpret system from information provided through the interface
Design Issue Response Time Help Facilities Error Handling Menu & Command Labeling Application Accessibility Internationalization
Design Evaluation