COMP2110 Software Design in 2004 lecture 09 High level design

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Software Architecture Design Instructor: Dr. Jerry Gao.
Patterns Design 13 February.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Data and Process Modeling
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Chapter 9: Moving to Design
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
5. DESIGN I: SOFTWARE ARCHITECTURE. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering.
Chapter 9 Elements of Systems Design
The Design Discipline.
Chapter 2: Approaches to System Development
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Lecture 9 Architectures and Frameworks
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Systems Analysis and Design in a Changing World, 3rd Edition
9 Systems Analysis and Design in a Changing World, Fourth Edition.
ANU comp2110 Software Design lecture 5 COMP2110 Software Design in 2003 lecture 5 Requirements Specifications lecture 3 of 3 The Encounter game case study.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Part VII: Design Continuous
1 CMPT 275 High Level Design Phase Modularization.
Software Engineering Lecture 8 Object-Oriented Analysis.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Lecture VIII: Software Architecture
9 Systems Analysis and Design in a Changing World, Fifth Edition.
5. DESIGN I: SOFTWARE ARCHITECTURE. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering.
CSC 480 Software Engineering
Professorial kvetches
Software Engineering Modern Approaches
CompSci 280 S Introduction to Software Development
Cmpe 589 Spring 2006.
Business System Development
Software Engineering Lecture 4 System Modeling The Analysis Stage.
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
Software Quality Engineering
Business System Development
#01 Client/Server Computing
The Object Oriented Approach to Design
CSE 303 – Software Design and Architecture
Component-Level Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Introduction to Design Patterns Part 1
CS 425/625 Software Engineering Architectural Design
University of Houston-Clear Lake
Chapter 13 Requirements and Domain Classes
Software Architecture
More Model Elements.
Starting Design: Logical Architecture and UML Package Diagrams
4 REQUIREMENTS ANALYSIS CASE STUDY
An Introduction to Software Architecture
RPG Video Game Architecture Packages -- showing domain classes only
Classes for Encounter Video Game
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Software Development Process Using UML Recap
#01 Client/Server Computing
Presentation transcript:

COMP2110 Software Design in 2004 lecture 09 High level design about assignment 2 high level design example: Encounter

About assignment 2 deliverables quality presentation week 7 working in small teams Details will be published later today.

Software Engineering Roadmap Develop Architecture/ High level design Identify corporate practices Develop Detailed Design Plan project Analyze requirements Maintain Integrate & test system Design Implement Test units Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Begin Selecting a Basic Architecture One way to ... 1. Develop a mental model of the application at a high level – creative invention as if it were a small application e.g., personal finance application ... … “works by receiving money or paying out money, in any order, controlled through a user interface”. 2. Decompose into the required components look for high cohesion & low coupling … decomposes into Assets, Suppliers, & Interface. 3. Repeat this process for the components Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Cohesion and coupling a principle of quality design how to divide systems into modules modules should have strong cohesion: “hang together” logically, have a common theme, have more interaction (associations, uses relationships) between things within the same module than with things outside and there should be weak coupling between modules small interfaces thin interfaces few dependencies – easy to separate, reuse, replace

Cohesion and Coupling   Bridge High cohesion Low coupling component 1 2 3 4 component Bridge 5 6 High cohesion Low coupling   Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

High level design: module example BusCatcher route and service manager message stream handler user interface manager buttons display system clock alarm control audible alarm wireless interface

High level design: module example (2) askRoute askService askDelay route and service manager ETAlist ? promptSelect message stream handler * busETA userSetting user interface manager routeNo estTime getTimeOfDay setAlarmDelay clearAlarm display buttons wireless interface alarm control audible alarm system clock

UML Notation … and … Typical Implementation package MyPackage; abstract class AbstractClass . . . . class DerivedClass extends AbstractClass { int att; . . . . . void myFunction( ReferencedClass r ) { . .. } } package of classes MyPackage abstract class AbstractClass inheritance DerivedClass att: int myFunction() attribute operation Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Modules, packages & high level design what Parnas refers to as “abstract modules” and design standards call “modules” may be seen in OO languages as “packages” - Java “clusters” – Eiffel packages – UML or they may be groupings in the design document and in the file system, with no language structure route and service manager This package contains 3 classes named busETA ETAlist userStates routeNo setTime busETA ETAlist userSetting

Architecture and Modularization of Encounter Role-playing Game EncounterGame EncounterGame EncounterCharacters EncounterCast EncounterEnvironment EncounterEnvironment Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Framework and architecture The designers of the Encounter game program saw an opportunity for a creative abstract framework: a layer of general role-playing game packages supporting a layer of specific Encounter packages They decided to use 3 modules, each of 2 layers cast (characters) game (events and rules of engagements) environment (areas and connections)

RPG Video Game Layering Characters Framework layer «framework package» «uses» EncounterCharacters «application package» EncounterCharacter Application layer PlayerCharacter ForeignCharacter PlayerQualityWindow Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Role-Playing Game, and Encounter Packages -- showing domain classes Framework layer GameEnvironment This is a messy diagram «framework package» Characters RolePlayingGame «framework package» «framework package» «uses» Application layer EncounterGame EncounterCharacters «application package» «application package» EncounterGame Engagement EncounterCharacter EngagementDisplay EncounterEnvironment PlayerCharacter «application package» ForeignCharacter Area EncounterAreaConnection PlayerQualityWindow ConnectionHyperlink Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

One Way to Obtain The Class Model 2. Create and/or use framework classes -- for architecture More general 3. Create design classes -- specific to this application -- to complete the class model 1. Create domain classes -- from requirements analysis Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

1. Decompose into self-contained modules. 2. Compare with a standard architecture (e.g. Garlan and Shaw’s classification – previous lectures). Improve decomposition. Data flowing in batches between processing stations? batch sequential dataflow Processing stations waiting for data, then executing? pipe-and-filter dataflow A process supplying the needs of user processes? client-server A process only reacting to events occurring upon it? event systems An application centered on a data store? repository Arranged in layers? layered Try to develop at least two alternative architectures. One way to ... Select an Architecture 1 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Select an Architecture 2 One way to ... Select an Architecture 2 2. Select among the alternatives identified. 3. Add utility classes to those from requirements analysis, to accommodate the architecture selected e.g., data flow: … to control flow among the elements e.g., event systems: … to control transitions among states 4. Apply an existing framework and/or design pattern. if a helpful one can be identified 5. Partition the collection of classes into packages ideally, 4-8 (nest packages for larger applications) each package should make sense in the language of the application (e.g., “videos” OK; “bigClasses” not OK) 6. Verify high cohesion within parts; low coupling among parts -- otherwise, adjust choice of modular splits. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

A Typical Repository Architecture GUI Analysis process 1 Analysis process n Control …... …... DBMS Database Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.