Software Design CS 123/CS 231. What is Design? zDesign is the activity of specifying a solution to a problem zContrast this against other software engineering.

Slides:



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

Use Cases and Object Interaction CS 123/CS 231. Depicting System Behavior zFirst, identify the use cases ÕUse case: typical interaction between a user.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Software Design Deriving a solution which satisfies software requirements.
Introduction To System Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 CS 426 Senior Projects Chapter 19: Interfaces and Components [Arlow & Neustadt 2005] February 28, 2008.
CS 425/625 Software Engineering System Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
7M822 UML Introduction 7 September 2010.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Structured Vs. Object Oriented Analysis and Design SAD Vs. OOAD
Unified Modeling Language
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
CMPT 275 Software Engineering
Introduction To System Analysis and design
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Lecture 3: Visual Modeling & UML 1. 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling.
Introduction To System Analysis and Design
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Other UML Diagramming Techniques CS 124. UML Diagramming Techniques Class Diagrams Use Case Diagrams Interaction Diagrams Sequence diagrams Collaboration.
Chapter 9 Moving to Design
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Chapter 7 System models.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Object-Oriented Design Notation CS 123/CS 231. References zMain Reference: UML Distilled, by Martin Fowler ÕChapters 3, 4, 6, and 8 zSupplementary References:
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
Final Notes on the UML CS 123/231. UML Diagramming Techniques zClass Diagrams zUse Case Diagrams zInteraction Diagrams Õ Sequence diagrams ÕCollaboration.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
Part VII: Design Continuous
Software Design CS 123/CS 231. What is Design? zDesign is the activity of specifying a solution to a problem zContrast this against other software engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
OOP Review CS 124.
Class Diagrams Software Design and Development. Classes in a Class Diagram zClass name onlyExample zWith DetailsExample Class Name attributes methods.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
Basic Characteristics of Object-Oriented Systems
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Software Design.
Software Design AITI GP John Paul Vergara.
SNSCT_CSE_PROGRAMMING PARADIGM_CS206
Chapter 19: Interfaces and Components
Chapter 19: Interfaces and Components
Chapter 19: Interfaces and Components
Interfaces and Components
Chapter 19: Interfaces and Components
Presentation transcript:

Software Design CS 123/CS 231

What is Design? zDesign is the activity of specifying a solution to a problem zContrast this against other software engineering phases ÕAnalysis: understanding and specifying the problem (requirements) ÕImplementation: system construction

Stages in SW Design zArchitectural Design zAbstract Specification zInterface Design zComponent Design zDetailed Design *Reference: Sommerville, Chapter 12

Architectural Design zIdentify Subsystems and Modules zExample: Program Submission System ÕServer ÕTeacher Interface ÕStudent Interface

Architectural Design, continued zDesign information provided is minimal ÕSystem is simply decomposed into interacting subsystems or modules zDepicted using a block diagram Õsubsystems: rectangles Õarrows: represent interaction / flow of data and control / dependency between the subsystems

Abstract Specification zIdentify services and constraints per subsystem zExample: Server Õset up a class Õset up a project Õsubmit a program zNote: descriptions of services are informal

Interface Design zPer subsystem, specify its interface Õcollection of available functions/methods for use by other subsystems zConsistent with Encapsulation zExample: Server Õfunction: set_up_class Õparameters: catnum, section, list of students (id#’s and names)

Interface Specification zServices per subsystem are formally specified zGoal: provide unambiguous information regarding extent of external interaction Õ parameters/inputs, return values/outputs zDesign and implementation details of the subsystem are still hidden

Component Design zWithin a subsystem Õdetermine components Õper component, identify services/interfaces zUnderstand interaction between components at the level of the subsystem zOO Design: components are classes zDesign models (using the UML, for example) are most useful at this level

Detailed Design zSpecify data structures and algorithms (for methods) of the individual components (classes) zGenerally still implementation- independent ÕAlthough though in practice, specific language features are used ÕTechniques: Pseudocode, flowcharts, others

Design Quality zCohesion zCoupling zUnderstandability zAdaptability *Reference: Section 12.3 of Sommerville

Cohesion zExtent of relationship between parts of a component zHigh cohesion is desirable zSingle logical t (or “theme”) Õall parts should contribute to the function zLevels of cohesion (p. 218) Õcoincidental cohesion (weakest) Õfunctional cohesion (strongest)

Coupling zDependence between units of a subsystems or components zHigh coupling generally undesirable Õunits fully depend on each other Õsensitive to change Õconvenient/necessary only for small components

Understandability zCohesion and Coupling Õunderstanding a component independently zNaming Õreflects real-world intuition zDocumentation zComplexity Õalgorithms

Adaptability zSensitivity to change Õare changes in design easy? zLoosely coupled components zSelf-contained components

Object-Oriented Design Notation CS 123/CS 231

References zMain Reference: UML Distilled, by Martin Fowler ÕChapters 3, 4, 6, and 8 zSupplementary References: ÕChapter 14 of Sommerville ÕChapter 22 of Pressman

Component Design and Detailed Design zComponent Design ÕFor each subsystem determine components, and services/interface per component ÕOO Design: components are classes zDetailed Design ÕDetermine attributes of classes and relationships between the classes ÕDetermine functionality of each class and interactions between classes

Object-Oriented Modeling zUML: Unified Modeling Language Õ“Emerging” OO Modeling Standard ÕBooch, Jacobson, Rumbaugh zWhat is depicted? ÕClass details and static relationships ÕSystem functionality ÕObject interaction ÕState transition within an object

Some UML Modeling Techniques zClass Diagrams zUse Cases/Use Case Diagrams zInteraction Diagrams zState Diagrams

Example: Class Diagram PriceChecker getPrice() FastFood Restaurant pc counters5 FFCounter totalcash totalorders

Example: Use Case Diagram Facilitate Checkout Facilitate Return Search for Book LIBRARY SYSTEM Borrower Librarian

Example: Interaction Diagram Checkout Screen :Borrower :Book 1: checkIfDelinquent() 3: borrowBook() 2: checkIfAvailable() 4: setBorrower()

Example: State Diagram (Book) New Available Reserved Borrowed start Librarian activates book as available Borrower returns book

Object-Oriented Design Models zStatic Model ÕClass Diagrams zDynamic Model ÕUse Cases, Interaction Diagrams, State Diagrams, others

OO Static Model zClasses and Class Diagrams zRelationships ÕAssociation ÕAggregation/Composition ÕInheritance zDependencies zAttribute and Method names

OO Dynamic Model zGoal: Represent ÕObject behavior ÕObject interaction zTraditional/Procedural Dynamic Modeling ÕData Flow Diagrams (DFDs) ÕProblem: Processes separate from data ÕNeed modeling notation that highlight tight relationship between data & processes

DFD Example (Inventory Management) Accept and Post Delivery Item Master Transaction Delivery info

OO Counterpart: Object Interaction Encoder :Item Master :Transaction new (delivery info) post (item count)

Building an OO Dynamic Model zIdentify use cases zDescribe each use case through an interaction diagram zFor more complex objects, provide a state diagram per class zDerive implied methods (and attributes)

What’s Next? zNeed to understand the notation zMake sure it helps the software development process zWhen to use the UML techniques ÕPrimarily when specifying OO design ÕFormal means of communication across the different software development stages