Top Banner
SWE 621: Software Modeling and Architectural Design Lecture Notes on Software Design Lecture 1 - Introduction to Software Design Hassan Gomaa Dept of Computer Science George Mason University 1 Copyright © 2011 Hassan Gomaa Fairfax, VA Copyright © 2011 Hassan Gomaa All rights reserved. No part of this document may be reproduced in any form or by any means, without the prior written permission of the author. This electronic course material may not be distributed by e-mail or posted on any other World Wide Web site without the prior written permission of the author. Introduction to Software Design 1. Section I Hassan Gomaa References: H. Gomaa, “Chapters 1,2-5 - Designing Concurrent, Distributed, and Real-Time Applications with UML”, Addison Wesley Object Technology Series, 2000. 2 Copyright © 2011 Hassan Gomaa H. Gomaa, “Chapters 1-5 - H. Gomaa, “Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures”, Cambridge University Press, February 2011 Copyright © 2011 Hassan Gomaa All rights reserved. No part of this document may be reproduced in any form or by any means, without the prior written permission of the author.
30

SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

SWE 621: Software Modeling and Architectural Design

Lecture Notes on Software DesignLecture 1 - Introduction to Software Design

Hassan Gomaa

Dept of Computer ScienceGeorge Mason University

1Copyright © 2011 Hassan Gomaa

Fairfax, VA

Copyright © 2011 Hassan Gomaa

All rights reserved. No part of this document may be reproduced in any form or by any means, without the prior written permission of the author.

This electronic course material may not be distributed by e-mail or posted on any other World Wide Web site without the prior written permission of the author.

Introduction to Software Design

1. Section I

Hassan Gomaa

References: H. Gomaa, “Chapters 1,2-5 - Designing Concurrent, Distributed, and Real-Time Applications with UML”, Addison

Wesley Object Technology Series, 2000.

2Copyright © 2011 Hassan Gomaa

y j gy ,H. Gomaa, “Chapters 1-5 - H. Gomaa, “Software Modeling and

Design: UML, Use Cases, Patterns, and Software Architectures”, Cambridge University Press, February 2011

Copyright © 2011 Hassan GomaaAll rights reserved. No part of this document may be reproduced in any form or by any means,

without the prior written permission of the author.

Page 2: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Overview

• Follows general guidelines of Software Engineering Body of Knowledge (SWEBOK) – Chapter 3 Software Design

• Published by IEEE – 2004 Versiony– Fundamentals of Software Design– Software Design Process– Software Design Concepts– Software Design Notations and Methods

3Copyright © 2011 Hassan Gomaa

Software Design

What is design?t l l li i k t h tlinoun: mental plan, preliminary sketch or outline

verb: to conceive in the mind; to inventWhat is software design?

As a productOutput of design process

As a process

4Copyright © 2011 Hassan Gomaa

Approach to doing design

Page 3: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Nature of Design

• DesignDesign

– Form of problem solving

• Design as “wicked problem”

– Unlike an algorithm

• There is no one “correct” solution

• Tradeoffs in design

5Copyright © 2011 Hassan Gomaa

g

– E.g., Structure vs. performance

– Centralized vs. distributed

– Sequential vs. concurrent

Software Design Activities

• Architectural DesignArchitectural Design

– Structure system into components– Define the interfaces between components

• Detailed Design

– Define internal logic– Define internal data structures

6Copyright © 2011 Hassan Gomaa

Page 4: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Context of Software Design

Software Requirements SpecificationEnvironmental ConstraintsDesign Constraints

Architectural DesignDetailed DesignDesign DecisionsTraces to Requirements

SoftwareDesignProcess

7Copyright © 2011 Hassan Gomaa

Software requirements specification

Inputs To Software Design

Describes WHAT system shall do not HOWExternal view of system to be developed

Environmental constraintsHardware, language, system usage

Design constraintsDesign method

8Copyright © 2011 Hassan Gomaa

gDesign notation

Page 5: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Outputs From Software Design

Architectural DesignOverall description of software structureOverall description of software structure

Textual and GraphicalSpecification of software components and their interfaces

Modules, classes

Detailed Design of each componentInternal logicI l d

9Copyright © 2011 Hassan Gomaa

Internal data structuresDesign decisions made

Design rationaleTraces to requirements

Software Design Process

Software life cycle (a.k.a. software process)So twa e e cyc e (a. .a. so twa e p ocess)

Phased approach to software development

Software life cycle (a.k.a. process) models

Waterfall – limitations of Waterfall Model

Incremental - evolutionary prototyping

Exploratory - throwaway prototyping

10Copyright © 2011 Hassan Gomaa

Exploratory - throwaway prototyping

Spiral model – risk driven process model

Page 6: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Software Life Cycle

Waterfall Model

RequirementsAnalysis &Specification

ArchitecturalDesign

DetailedDesign

Coding

U it

11Copyright © 2011 Hassan Gomaa

UnitTesting

IntegrationTesting

System & Acceptance

Testing

Software Life Cycle ModelSoftware Definition

Requirements Analysis and Specification

Analysis of user's problem

Specification of "what" system shall provide user

Architectural Design

Specification of "how" system shall be structured into components

12Copyright © 2011 Hassan Gomaa

components

Specification of interfaces between components

Page 7: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Software Life Cycle ModelSoftware Construction

Detailed Design

Internal design of individual components

Design of logic and data structures

Coding

Map component design to code

13Copyright © 2011 Hassan Gomaa

Unit Testing

Test individual components

Software Life Cycle Model

Software Integration and Test

Integration Testing

Gradually combine components and test combinations

System Testing

Test of entire system against software requirements

Acceptance Test

14Copyright © 2011 Hassan Gomaa

Acceptance Test

Test of entire system by user prior to acceptance

Page 8: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Software Life Cycle Model

Software Maintenance

Modification of software system after installationand acceptance

Fix software errors

Improve performance

Address changes in user requirements

15Copyright © 2011 Hassan Gomaa

g q

Often implies significant software redesign

Limitations of Waterfall Model

Does not show iteration in software life cycleDoes not show iteration in software life cycle

Does not show overlap between phases

Software requirements are tested late in life cycle

Operational system available late in life cycle

16Copyright © 2011 Hassan Gomaa

Page 9: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Prototyping During Requirements Phase

Problem

Software requirements are tested late in life cycle

Solution

Use throw-away prototyping

Help ensure requirements are understood

Also first attempt at designing system

17Copyright © 2011 Hassan Gomaa

Design of key file and data structures

Design of user interface

Early design tradeoffs

Impact of Throwaway Prototyping on Software Life Cycle

RequirementsAnalysis &Specification

ArchitecturalDesign

DetailedDesign

Coding

U it

ThrowawayPrototype

18Copyright © 2011 Hassan Gomaa

UnitTesting

IntegrationTesting

SystemTesting

Page 10: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Throw-away Prototyping in Design

Objectives

T d i lTest design early

Experiment with alternative design decisions

Examples of prototyping in design

Algorithm design

Experiment with - speed, accuracy

19Copyright © 2011 Hassan Gomaa

Early performance analysis

Measure timing parameters

User interface

Impact of Throwaway Prototyping on Architectural Design Phase

RequirementsAnalysis &Specification

ArchitecturalDesign

DetailedDesign

Coding

U it

20Copyright © 2011 Hassan Gomaa

UnitTesting

IntegrationTesting

SystemTesting

ThrowawayPrototype

Page 11: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Incremental Development

Problem

O ti l t il bl l t i lif lOperational system available late in life cycle

Solution

Use incremental development

Also known as evolutionary prototyping

Objective

21Copyright © 2011 Hassan Gomaa

Subset of system working early

Gradually build on

Prototype evolves into production system

Incremental Development Software Life Cycle

RequirementsAnalysis &Specificationp

ArchitecturalDesign

IncrementalComponentConstruction

IncrementalSystem

22Copyright © 2011 Hassan Gomaa

yIntegration

EvolutionaryPrototype

System & Acceptance

Testing

Page 12: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Should Prototype Evolve intoProduction System?

Tradeoff

Rapid development

Quality of product

Throw-away prototype

Speed, not quality is goal

Must not evolve into production system

23Copyright © 2011 Hassan Gomaa

Evolutionary prototype

Must emphasize quality

Maintainability is key issue

Combined Throwaway Prototyping / Incremental DevelopmentSoftware Life Cycle Model

RequirementsAnalysis &Specificationp

ArchitecturalDesign

IncrementalComponentConstruction

IncrementalSystem

ThrowawayPrototype

24Copyright © 2011 Hassan Gomaa

yIntegration

EvolutionaryPrototype

System & Acceptance

Testing

Page 13: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Spiral Process Model (SPM)

• SPM consists of four main activities that are repeated forSPM consists of four main activities that are repeated for each cycle (Fig. 5.6):

– Defining objectives, alternatives and constraints

– Analyzing risks

– Developing and verifying product

– Spiral planning

25Copyright © 2011 Hassan Gomaa

• Number of cycles is project specific

• Risk driven process

– Analyze risks in second quadrant

Figure 5.6 The spiral process model

1. Define objectives,1. Define objectives, alternatives, and constraints 2. Analyze risks

26Copyright © 2011 Hassan Gomaa

3. Develop product 4. Plan next cycle

NB: This diagram does not use the UML notation

Page 14: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Unified Software Development Process

• Risk driven iterative process– Also known as Rational Unified Process

• Workflow – Sequence of activities that produces a result of observable value

• Workflows in Unified Process– Requirements

• Product: Use case model.– Analysis

• Product: Analysis model.– Design

• Products: design model and deployment model

27Copyright © 2011 Hassan Gomaa

• Products: design model and deployment model.– Implementation

• Product: software implementation– Test.

• Products: Test cases and test results

Unified Software Development Process

• Phase

– Time between two major milestones

• Phases in Unified Process

– Inception

• Seed idea is developed

– Elaboration.

• Software architecture is defined

28Copyright © 2011 Hassan Gomaa

– Construction.

• Software is built to the point at which it is ready for release

– Transition.

• Software is turned over to the user community.

Page 15: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Figure 3.5: Unified Software Development Process

Requirements

Core Workflows

Phases

Inception Elaboration Construction Transition

Requirements

Analysis

Design

Implementation

29Copyright © 2011 Hassan Gomaa

Test

iteration#1

iteration#2

iteration#n-1

iteration#n

--- --- --- --- ---

Iterations

Software Design Concepts

• Objects and ClassesObjects and Classes

• Information Hiding

• Inheritance

• Concurrency

• Finite State Machines

30Copyright © 2011 Hassan Gomaa

Page 16: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Objects and Classes

• Objects represent “things” in real world

– Provide understanding of real worldg

– Form basis for a computer solution

• An Object (object instance) is a single “thing”

– E.g., John’s car

– Mary’s account

• A Class (object class) is a collection of objects with the same characteristics

31Copyright © 2011 Hassan Gomaa

– E.g., account, employee, car, customer

• Figure 2.2 UML notation for objects & classes

• Figure 3.1 Example of classes and objects

Figure 2.2 UML notation for objects & classes

Class

Class

attributes

Class

attributes

operations

Class Class with attributes Class with attributes and operations

anObjectanotherObject

:Class:Class

32Copyright © 2011 Hassan Gomaa

Objects

Page 17: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Customer

Class

Figure 3.1 Example of classes and objects

AccountCustomer

aCustomer:CustomeranotherCustomer

:Customer

Objects

Account

33Copyright © 2011 Hassan Gomaa

anAccount :Account

Attributes

• Attribute

Data value held by object in class– Data value held by object in class

• Example of Attributes

– E.g., account number, balance

• Each object instance has specific value of attribute

– John’s account number is 1234

– Mary’s account number is 5678

34Copyright © 2011 Hassan Gomaa

a y s accou t u be s 5678

• Attribute name is unique within class

• Figure 3.2 Example of class with attributes

Page 18: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Figure 3.2 Example of class with attributes

Class with attributes

Account

accountNumber : Integerbalance : Real

Objects with values

35Copyright © 2011 Hassan Gomaa

accountNumber = 5678balance = 1,897.44

anotherAccount:Account

anAccount:Account

accountNumber = 1234balance = 525.36

Classes and Operations

• Operation– Is function or procedure that may be applied to objects in a class– All objects in class have same operations

• Class has one or more operationsClass has one or more operations– Operations manipulate values of attributes maintained by object

• Operations may have – Input parameters– Output parameters– Return value

• Signature of operationOperation’s name

36Copyright © 2011 Hassan Gomaa

– Operation s name– Operation’s parameters– Operation’s return value

• Interface of class– Set of operations provided by class

• Figure 3.3 Class with attributes and operations

Page 19: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Figure 3.3 Class with attributes and operations

readBalance () : Realcredit (amount : Real)debit (amount : Real)open (accountNumber : Integer)close ()

accountNumber : Integerbalance : Real

Account

37Copyright © 2011 Hassan Gomaa

()

Information Hiding

Each object hides design decision

E.g., data structureg ,

interface to I/O device

Information hiding object

Hides (encapsulates) information

Accessed by operations

Basis for Object-Oriented Design

38Copyright © 2011 Hassan Gomaa

j g

Advantage

Objects are more self-contained

Results in more modifiable -> maintainable system

Page 20: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Example of Information Hiding

• Example of Stack

• Conventional approach• Conventional approach

– Stack data structure is global

– Stack accessed by modules

– Module corresponds to procedure / function / subroutine

– Problem

– Change to stack data structure has global impact

39Copyright © 2011 Hassan Gomaa

C a ge to stac data st uctu e as g oba pact

• Consider

– Array implementation (Fig. 3.4) changed to

– Linked list implementation (Fig. 3.6)

• Every module is impacted by change

Figure 3.4 Example of Global Access to Data

Stack ImplementedAs ArrayAs ArrayModule

AModule

BPUSH POP

MAX SIZE = N

INDEX

N

X

40Copyright © 2011 Hassan Gomaa

Stack Array

1

Page 21: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Figure 3.6 Example of Global Access to Data

Stack ImplementedAs Linked List

ModuleA

ModuleB

Top

PopPushX

41Copyright © 2011 Hassan Gomaa

Bottom

Example of Information Hiding

• Example of StackExample of Stack

• Information hiding solution

– Hide stack data structure and internal linkage

– Specify operations on stack data structure

– Access to stack only via operations

• Consider

42Copyright © 2011 Hassan Gomaa

– Array implementation (Fig. 3.5) changed to

– Linked list implementation (Fig. 3.7)

• Change to stack only impacts Stack object

Page 22: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Figure 3.5 Example of Information Hiding

Pop (X)Push (X) FullEmpty

MAX SIZE

INDEXStack Information

HidingObject

X

43Copyright © 2011 Hassan Gomaa

Stack Array

Object

Figure 3.7 Example of Information Hiding

Pop (X)Push (X) FullEmpty

Stack Information

HidingObject

Top# Entries

X

44Copyright © 2011 Hassan Gomaa

Bottom

Stack Linked List

Max Size

Page 23: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Inheritance in Design

• Subclass inherits generalized properties from superclass • Inheritance

– Allows sharing of properties between classes• Property is Attribute or Operation

– Allows adaptation of parent class (superclass) to form child class (subclass)

• Subclass inherits attributes & operations from superclass– May add attributes

45Copyright © 2011 Hassan Gomaa

y dd bu es– May add operations– May redefine operations

Generalization / specialization hierarchy

«entity»Account

accountNumber: Integerbalance: Real

46Copyright © 2011 Hassan Gomaa

«entity»CheckingAccount

lastDepositAmount: Real

«entity»SavingsAccount

interest: Real

Page 24: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Sequential & Concurrent Problems

Sequential problems

Activities happen in strict sequenceActivities happen in strict sequence

E.g., compiler, payroll

Sequential solution = program

Concurrent problems

Many activities happen in parallel

E g multi user interactive system air traffic

47Copyright © 2011 Hassan Gomaa

E.g., multi-user interactive system, air traffic control system

Sequential solution to concurrent problem increases design complexity

Concurrent and Real-Time Systems

• Concurrent SystemConcurrent System

– Consists of many activities (tasks) that execute in parallel

• Real-Time system

– Concurrent system with timing deadlines

• Distributed application

48Copyright © 2011 Hassan Gomaa

– Concurrent system executing on geographically distributed nodes

Page 25: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Concurrency

• Characteristics of concurrent task C c e s cs o co cu e s– A.k.a. (lightweight) process, thread

• Active object, concurrent object– One sequential thread of execution– Represents execution of

• Sequential program• Sequential part of concurrent program

49Copyright © 2011 Hassan Gomaa

• Sequential part of concurrent program– Concurrent system

• Many tasks execute in parallel• Tasks need to interact with each other

Consumer Task

Wait for MessageMessage Queue

Producer Task

Send Message

50Copyright © 2011 Hassan Gomaa

Asynchronous Message Communication between Concurrent Tasks

Page 26: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Finite State Machines• Many information and real-time systems are state

dependent– Action depends not only on input event– Also depends on state of system

• Finite State Machine– Finite number of states– Only in one state at a time

• State – A recognizable situation

51Copyright © 2011 Hassan Gomaa

g– Exists over an interval of time

• Event– A discrete signal that happens at a point in time– Causes change of state

Initial Braking Initial Not Braking

Brake Pressed

Brake Released

Figure 10.4 Partial statechart

Brake Released

Accelerating

Accel

52Copyright © 2011 Hassan Gomaa

Page 27: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Software Design Terminology

Design concept or principleFundamental idea that can be applied to designing a

system, e.g., information hidingy g gDesign notation or representation

A means of describing a software designTextual and Graphical, e.g., UML

Design strategyOverall plan and direction for performing design

Design structuring criteria

53Copyright © 2011 Hassan Gomaa

Design structuring criteriaGuidelines for decomposing a system into its parts

Software Design Method

Systematic approach for creating a designDesign decisions to be madeDesign decisions to be madeOrder in which to make them

Describes sequence of steps for producing a designBased on set of design conceptsEmploys design strategy(ies)Provides design structuring criteria

54Copyright © 2011 Hassan Gomaa

Documents resulting design using design notation(s)

Page 28: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Example of Software Design MethodStructured Design

Design conceptFunctional module

D i i i iDesign structuring criteriaModule Cohesion criteria

Unity within moduleModule Coupling criteria

Connectivity between modulesDesign strategy

55Copyright © 2011 Hassan Gomaa

g gyTransaction Analysis and Transform Analysis

Design notationStructure chartsProgram Design Language (PDL)

Design Strategies Transform Analysis

Physical PhysicalLogical Logical

• Structured Analysis- Data flow diagram

PhysicalInputData

PhysicalOutputData

LogicalInputData

LogicalOutputData

Read WriteProcess

SupervisorModule

• Structured Design- Structure Chart

56Copyright © 2011 Hassan Gomaa

CentralTransform

OutputModule

InputModule

Logical InputData Logical

OutputData

LogicalInputData

LogicalOutputData

Page 29: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Example of Software Design MethodCOMET

Design conceptsFinite state machine, concurrent task, information hiding

Design structuring criteriaObject, subsystem and task structuring criteria

Design strategyDevelop analysis model, then map to design model

Design notation

57Copyright © 2011 Hassan Gomaa

gUML (Unified Modeling Language)

ViewWorkstation

Status

ClassWhole

Example of Software Design MethodCOMET

«user interface»:OperatorInterface

V1: OperatorRequest

V1.3: Displayed Info

Factory OperatorClassPart2ClassPart1

58Copyright © 2011 Hassan Gomaa

«entity»:Workstation

StatusServer

V1.1: Workstation Status

Request

V1.2: Workstation

Data

Displayed Info:FactoryOperator

Page 30: SWE 621: Software Modeling and Architectural …mason.gmu.edu/.../SWE621-1-IntroSoftwareDesign.pdfSoftware Design Process SoSo twa e e cyc e (a. .a. so twa e p ocess)ftware life cycle

Review

• Follows general guidelines of Software Engineering Body of Knowledge (SWEBOK) – Chapter 3 Software Design

• Published by IEEE – 2004 Versiony– Fundamentals of Software Design– Software Design Process– Software Design Concepts– Software Design Notations and Methods

59Copyright © 2011 Hassan Gomaa