Moonzoo Kim. KAIST CS350 Intro. to SE Spring

Vergelijkbare documenten
Introductie in flowcharts

Handleiding Installatie ADS

Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

General info on using shopping carts with Ingenico epayments

MyDHL+ Van Non-Corporate naar Corporate

Stephanie van Dijck De integrale aanpak maakt complexiteit hanteerbaar

Chapter 4 Understanding Families. In this chapter, you will learn

Opleiding PECB ISO 9001 Quality Manager.

Wat is Interaction Design?

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven

Interaction Design for the Semantic Web

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

CTI SUITE TSP DETAILS

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

Data Handling Ron van Lammeren - Wageningen UR

Enterprisearchitectuur

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Opleiding PECB IT Governance.

Enterprise Portfolio Management

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

Digital municipal services for entrepreneurs

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

Preschool Kindergarten

GS1 Data Source. Guide to the management of digital files for data suppliers and recipients

The Leading Open Source MDA Platform. openmdx 2 Overview. June

Graphic Design. Keuzevak GD1. Raul Martinez-Orozco / raul@thecombine.nl)

(Big) Data in het sociaal domein

BABOK meets BiSL. Marcel Schaar, IIBA Dutch Chapter Mark Smalley, ASL BiSL Foundation Jan de Vries, ASL BiSL Foundation. Kennissessie, 19 januari 2016

Requirements Traceability. Marcel de Baas, Jan Bank, Edwin Buisman, Frits Jacobs, Kitty Spaas, Erik Venema, Arno Zandman

Summary 124

UNECE/UNESCAP Workshop on. Electronic Trade Documents. Ulaanbaatar, Mongolia, October 2009

Interaction Design for the Semantic Web

Handleiding Zuludesk Parent

MyDHL+ Uw accountnummer(s) delen

Continuous testing in DevOps met Test Automation

liniled Cast Joint liniled Gietmof liniled Castjoint

2010 Integrated reporting

Integratie van Due Diligence in bestaande risicomanagementsystemen volgens NPR 9036

PRIVACYVERKLARING KLANT- EN LEVERANCIERSADMINISTRATIE

E-learning maturity model. Hilde Van Laer

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

Architecten-debat 21 juni 2006 PI GvIB Themamiddag. Renato Kuiper. Principal Consultant Information Security

Contents. Introduction Problem Definition The Application Co-operation operation and User friendliness Design Implementation

Capturing Agile Requirements by Examples (CARE)

0515 FOREIGN LANGUAGE DUTCH

DECLARATION FOR GAD approval

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

Ervaringen met begeleiding FTA cursus Deployment of Free Software Systems

Intercultural Mediation through the Internet Hans Verrept Intercultural mediation and policy support unit

UML VOOR GEO DATA. Welke Diagram(en) zijn geschikt voor Lineage. Anneke Kleppe, Capgemini Netherlands

Topic 10-5 Meeting Children s Intellectual Needs

MyDHL+ Tarief berekenen

Usability walkthrough for accessibility

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt.

Today s class. Digital Logic. Informationsteknologi. Friday, October 19, 2007 Computer Architecture I - Class 8 1

Heropnamen? Aan de slag!

Intermax backup exclusion files

Usability evaluation of a guideline implementation systym for cardiac rehabilitation: Think aloud study

ALGORITMIEK: answers exercise class 7

L.Net s88sd16-n aansluitingen en programmering.

Risico s van Technologisch Succes in digitale transformatie S T R A T E G I C A D V I S O R

Issues in PET Drug Manufacturing Steve Zigler PETNET Solutions April 14, 2010

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

PLM & CAD Consultancy

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report

Handleiding Digipass DP310

Building the next economy met Blockchain en real estate. Lelystad Airport, 2 november 2017 BT Event

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml

KPMG PROVADA University 5 juni 2018

OUTDOOR HD BULLET IP CAMERA PRODUCT MANUAL

Value based healthcare door een quality improvement bril

Gemeente Ridderkerk Controle jaarrekening Ridderkerk 4 juli 2019 Jesper van Koert Reinier Moet Rein-Aart van Vugt

GS1 Data Source. Guide to the Management of Digital Files for Suppliers

Teardrop readout gradient waveform design. Ting Ting Ren

Ontpopping. ORGACOM Thuis in het Museum

Innovatief monitoren van sportvelden. 31 mei 2018

SAP Exchange Infrastructure. SAP Partner Connectivity Kit Overview

HVA CMD 2012/13 Afstudeerproject Onderzoektechnieken deel 1/2"

MeTA Ghana Overview. MeTA Global Meeting 1-4 December, 2014 Chavannes de Bogis, Switzerland

MyDHL+ Global Mail zending aanmaken

BIM 4.2. (VLAIO) BIM e-commerce

It s CMMI Jim, but not as we know it! CMMI toegepast op een Compliance organisatie Door Jasper Doornbos Improvement Focus

Firewall van de Speedtouch 789wl volledig uitschakelen?

ETS 4.1 Beveiliging & ETS app concept

PicknPack. Gert Kootstra, Wageningen UR.

CMPT 275 Software Engineering

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain.

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition)

Developing an adaptive, diagnostic test of. English writing skills

GOVERNMENT NOTICE. STAATSKOERANT, 18 AUGUSTUS 2017 No NATIONAL TREASURY. National Treasury/ Nasionale Tesourie NO AUGUST

RAS and Five Nines. Your Logo. Terje Terje Iversen Iversen. 9/19/03 Twenty Four Seven LLC 1

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

L.Net s88sd16-n aansluitingen en programmering.

VALUE ENGINEERING: THE H E G A G ME! E

Transcriptie:

Chapter 9 Design Engineering Moonzoo Kim CS Division of EECS Dept. KAIST moonzoo@cs.kaist.ac.kr http://pswlab.kaist.ac.kr/courses/cs350-07 ac kr/courses/cs350 07 Spring 2008 1

Roadmap of SEPA covered in CS350 Ch 1 Ch 5 1. Intro to SE 2. A Generic View of Process 3. Process Models 4. An Agile View of Process 5. SE Practice 6. System Engineering Ch 7- Ch 9 7. Requirement Engineering SafeHome Project - Use-case diagram - Use-cases - Activity diagram Ch 10 Ch 14 Req. eng tasks Req. elicitation Developing use- cases Building the analysis model 8. Building the Analysis Model 9. Design Engineering 10. Creating an Architectural Design 11. Modeling Component-Level Design 12. Performing UI Design 13. Testing Strategies 14. Testing Tactics SafeHome Project - Class diagram - CRC cards - Sequence diagram - State diagram Spring 2008 2

Overview of Ch 9. Design Engineering 9.1 Design within the Context of SE 9.4 Design Model 9.2 Design Process and Design Data Design Elements Quality Architectural Design Elements 9.3 Design Concepts Interface Design Elements Abstraction Component-level Design Architecture Elements Patterns Deployment-level level Design Modularity Elements Information Hiding 9.5 Pattern-based SW Design Functional Independence Describing a Design Pattern Refinement Using Patterns in Design Refactoring Frameworks Design Classes Spring 2008 3

Analysis Model -> Design Model scenario-based elements flow-oriented elements Com pone nt - Level Design use-cases - text use-case diagrams activity diagrams swim lane diagrams Analysis Model data flow diagrams control-flow diagrams processing narratives Int erface Design class-based elements class diagrams analysis packages CRC models collaboration diagrams behavioral elements state diagrams dag a sequence diagrams Architectural Design Dat a/ Class Design Design Model Spring 2008 4

Design and Quality The design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. The design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. the design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective. p Spring 2008 5

Quality Guidelines 1. A design should exhibit an architecture which 1. has been created using recognizable architectural styles or patterns, 2. is composed of components that exhibit good design characteristics 3. can be implemented in an evolutionary fashion 2. A design should be modular 3. A design should contain distinct representations of data, architecture, interfaces, and components. 4. A design should lead to data structures that are 1. appropriate for the classes to be implemented 2. drawn from recognizable data patterns. 5. A design should lead to components that exhibit independent functional characteristics. 6. A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. 7. A design should be represented effectively for communicating its meaning. Spring 2008 6

Quality Attributes FURPS [GRA87] Functionality Assessed by evaluating feature set and capabilities of the program and generality of the functions that are delivered Usability Assessed by considering human factors, overall aesthetics Reliability Performance Supportability Maintainability Compatibility, ease of configuration, ease of installation, etc Spring 2008 7

Fundamental SW Design Concepts Abstraction data, procedure Patterns conveys the essence of a proven design solution Modularity compartmentalization of data and function Hiding controlled interfaces Functional independence single-minded function (cohesion) and low coupling Refinement elaboration of detail for all abstractions Refactoring a reorganization technique that simplifies the design Spring 2008 8

Data Abstraction door manufacturer model number type swing direction inserts lights type number weight opening mechanism implemented as a data structure Spring 2008 9

Procedural Abstraction open details of enter algorithm implemented with a "knowledge" of the object that is associated with enter Spring 2008 10

Design Patterns The best designers in any field have an ability to see patterns that characterize a problem patterns that can be combined to create a solution A design pattern may also consider a set of design forces. Design forces describe non-functional requirements (e.g., ease of maintainability, portability) associated the software for which the pattern is to be applied. The pattern characteristics ti (classes, responsibilities, and collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems. Levels of abstraction Architectural patterns Design patterns Idioms (coding patterns) Spring 2008 11

Design Patterns Template Pattern name describes the essence of the pattern in a short but expressive name Intent describes the pattern and what it does Motivation provides an example of the problem Applicability notes specific design situations in which the pattern is applicable Structure re 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 Related patterns cross-references references related design patterns Spring 2008 12

Modular Design easier to build, easier to change, easier to fix... Spring 2008 13

Modularity: Trade-offs What is the "right" number of modules for a specific software design? cost of software module development cost module integration cost optimal number of modules number of modules Spring 2008 14

Information Hiding clients module controlled interface "secret" algorithm data structure details of external interface resource allocation policy a specific design decision Spring 2008 15

Why Information Hiding? Reduces the likelihood of side effects limits the global impact of local design decisions Emphasizes communication through h controlled interfaces Discourages the use of global data Leads to encapsulation an an attribute of high quality design Results in higher quality software Spring 2008 16

open Stepwise Refinement walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat Spring 2008 17

Refactoring Fowler [FOW99] defines refactoring in the following manner: "Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure. When software is refactored, the existing design is examined for redundancy d unused design elements inefficient or unnecessary algorithms poorly constructed or inappropriate data structures or any other design failure that can be corrected to yield a better design. Spring 2008 18

Functional Independence COHESION - the degree to which a module performs one and only one function. COUPLING - the degree to which a module is "connected" to other modules in the system. Spring 2008 19

high analysis model The Design Model class diagrams analysis packages CRC models collaborat ion diagrams dat a f low diagrams cont rol-f low diagrams processing narrat ives use-cases - text use-case diagrams activity diagrams swim lane diagrams collaborat ion diagrams st at e diagrams sequence diagrams class diagrams analysis packages CRC models dat a f low diagrams cont rol-f low diagrams processing narrat ives st at e diagrams sequence diagrams Requirement s: const raint s int eroperabilit y collaborat ion diagrams t arget s and conf igurat ion design model low design class realizat ions subsystems collaborat ion diagrams ref inement s t o: design class realizat ions subsyst ems collaborat ion diagrams technical interface design Navigat ion design GUI design component diagrams design classes activity diagrams sequence diagrams ref inement s t o: component diagrams design classes activity diagrams sequence diagrams design class realizat ions subsyst ems collaborat ion diagrams component diagrams design classes activity diagrams sequence diagrams deployment diagrams archit ect ure element s int erface element s component -level element s deployment -level element s Spring 2008 20 process dimension

Design Model Elements Data elements a model of data and/or information that is represented at a high level of abstraction (the customer/user s view of data) Refined into more implementation-specific representations 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 Spring 2008 21

Interface Elements MobilePhone WirelessPDA Cont rolpanel LCDdisplay LEDindicat ors keypadcharact erist ics speaker wirelessinterface KeyPad readkeyst roke() decodekey () displaystatus() light LEDs() sendcont rolmsg() realization <<int erface>> Key Pad readkeyst roke() decodekey() Spring 2008 22

Component Elements - Local data structures - Procedural algorithms SensorManagement Sensor Spring 2008 23

Deployment Elements Cont rol Panel CPI serv e r Securit y homeowneraccess Personal computer externalaccess Securit y Surveillance homemanagement communication Spring 2008 24

Design Principles The design process should not suffer from tunnel vision. The design should be traceable to the analysis model. The design should exhibit uniformity and integration. The design should be structured to accommodate change. The design should be structured to degrade gently, even when aberrant data, events are encountered. Design is not coding, coding is not design. The design should be assessed for quality as it is being created, not after the fact. The design should be reviewed to minimize conceptual (semantic) errors. From Davis [DAV95] Spring 2008 25

OO Design Concepts Design classes Entity classes Boundary classes Controller classes Inheritance all all responsibilities of a superclass is immediately inherited by all subclasses Messages stimulate stimulate some behavior to occur in the receiving object Polymorphism a characteristic that greatly reduces the effort required to extend the design Spring 2008 26

Design options: Inheritance The class can be designed and built from scratch. That is, inheritance is not used. The class hierarchy can be searched to determine if a class higher in the hierarchy (a superclass)contains most of the required attributes and operations. The new class inherits from the superclass and additions may then be added, as required. The class hierarchy can be restructured so that the required attributes and operations can be inherited by the new class. Characteristics of an existing class can be overridden and different versions of attributes or operations are implemented for the new class. Spring 2008 27

Messages :SenderObject message (<parameters>) :ReceiverObject Spring 2008 28

Conventional approach Polymorphism case of graphtype: if graphtype = linegraph then DrawLineGraph (data); if graphtype = piechart then DrawPieChart (data); if graphtype = histogram then DrawHisto (data); if graphtype = kiviat then DrawKiviat (data); end case; All of the graphs become subclasses of a general class called graph. Using a concept called overloading [TAY90], each subclass defines an operation called draw.. An object can send a draw message to any one of the objects instantiated from any one of the subclasses. The object receiving the message will invoke its own draw operation to create the appropriate graph. graphtype draw Spring 2008 29

Design Classes Analysis classes are refined during design to become entity classes Boundary classes are developed d during design to create the interface (e.g., interactive screen or printed reports) that the user sees and interacts with as the software is used. Boundary classes are designed d with the responsibility of managing the way entity objects are represented to users. Controller classes are designed to manage the creation or update of entity objects; the instantiation of boundary objects as they obtain information from entity objects; complex communication between sets of objects; validation of data communicated between objects or between the user and the application. Spring 2008 30