© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.

Slides:



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

9.5 Software Architecture
Object-Oriented Analysis and Design
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
© Copyright 2011 John Wiley & Sons, Inc.
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design Copyright 2000 © John Wiley & Sons, Inc. All rights reserved. Slide 1 Key.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Announcement No CHC visit tomorrow Team progress / issues survey
Ims5024 Week 71 IMS 5024 Object orientation (2). Ims5024 Week 72 Content Group assignment Use-cases State transition diagrams Place in ISD Evaluation.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
The Design Discipline.
Software Engineering Modern Approaches
Software Engineering Modern Approaches
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
Lecture # 06 Design Principles II
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.
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
9.4 Software Architecture
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Testing Workflow In the Unified Process and Agile/Scrum processes.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
SE: CHAPTER 7 Writing The Program
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Cohesion and Coupling CS 4311
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Design CIS 4800 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College Copyright © 2009 John Wiley & Sons, Inc. Copyright © 2008 Course.
Introduction to Software Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
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 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
CSE784 – Software Studio Jim Fawcett Fall 2002.
CSC 480 Software Engineering
Software Engineering Modern Approaches
V-Shaped SDLC Model Lecture-6.
COMP2110 Software Design in 2004 lecture 09 High level design
CSE784 – Software Studio Jim Fawcett Fall 2006.
مقدمه اي بر مهندسي نيازمنديها
CSE 303 – Software Design and Architecture
Chapter 2. Problem Solving and Software Engineering
Presentation transcript:

© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1

© 2010 John Wiley & Sons Ltd. Principles of Software Design 2

© 2010 John Wiley & Sons Ltd. Learning Goals of This Chapter What are the goals of software design? How do you use various design models for a single application? What are the use case model, the class models, the data flow models, and the state models? How are frameworks used in design? What are the IEEE standards for expressing designs? How does a team prepare for design in practice? Requirements analysis Design Implementation Testing Maintenance Planning The Software Development Lifecycle Phase most relevant to this chapter is shown in bold 3

© 2010 John Wiley & Sons Ltd. Goals of Software Design o Sufficiency: handles the requirements o Understandability: can be understood by intended audience o Modularity: divided into well-defined parts o Cohesion : organized so like-minded elements are grouped together o Coupling : organized to minimize dependence between elements 4

© 2010 John Wiley & Sons Ltd. Goals of Software Design o Robustness: can deal with wide variety of input o Flexibility: can be readily modified to handle changes in requirements o Reusability: can use parts of the design and implementation in other applications 5

© 2010 John Wiley & Sons Ltd. Goals of Software Design o Information hiding : module internals are hidden from others o Efficiency: executes within acceptable time and space limits o Reliability: executes with acceptable failure rate 6

© 2010 John Wiley & Sons Ltd. Cohesion and Coupling: Bridge Example High cohesion (parts belong together) Low coupling (little contact) component  7

© 2010 John Wiley & Sons Ltd. Questionable Architecture: High Coupling in Truss High coupling component  8

© 2010 John Wiley & Sons Ltd. Aspects of Flexibility  Obtaining more or less of what’s already present Example: handle more kinds of accounts without needing to change the existing design or code  Adding new kinds of functionality Example: add withdraw to existing deposit function  Changing functionality Example: allow withdrawals to create an overdraft 9

© 2010 John Wiley & Sons Ltd. Types of Reuse We can reuse …. o Object code (or equivalent) Example: sharing dll’s between word processor and spreadsheet o Classes – in source code form Example: Customer class used by several applications Thus, we write generic code whenever possible o Assemblies of Related Classes Example: the java.awt package o Patterns of Class Assemblies 10

© 2010 John Wiley & Sons Ltd. Types of Reuse We can reuse …. o Object code (or equivalent) o Classes – in source code form o Assemblies of Related Classes o Patterns of Class Assemblies 11

© 2010 John Wiley & Sons Ltd. Target Application Class model “ State model Use-case model Data Flow model To express requirements, architecture & detailed design Models 12

© 2010 John Wiley & Sons Ltd. Target Application Class model “with objects of these classes...” e.g., with Engagement … classes State model “reacting to these events...” e.g., when foreign character enters Use-case model “Do this...” e.g.*, engage foreign character Data Flow model “in this way...” e.g., character scores flow from … to … Models * Video game example 13

© 2010 John Wiley & Sons Ltd. Target Application Class model State model Use-case model: Data flow model Use case Scenarios Business use case elaborated by... Sequence diagram Role of Use Case Models 14

© 2010 John Wiley & Sons Ltd. Target Application Class model State model Use-case model Data flow model class methods package Consists of... Jacobson et al Role of Class Models 15

© 2010 John Wiley & Sons Ltd. Role of Component Model Target Application Class model State model Use-case model Data Flow model Processing element Sub-processing element Data type organized by... Jacobson et al 1 Data store 16

© 2010 John Wiley & Sons Ltd. Role of State Models Target Application Class model State model: “reacting to these events” Use-case model Component model States Transitions Substates decompose into... Jacobson et al 17

© 2010 John Wiley & Sons Ltd. Rental Framework Rentals RentalCustomers RentalItems 18

© 2010 John Wiley & Sons Ltd. Domain classes Design classes Class Model vs. Architecture and Detailed Design Framework classes The detailed design The architecture The Class Model DVD RentalItem 19

© 2010 John Wiley & Sons Ltd. Design Comparison Example Candidates Al Pruitt’s Parallel Communicating Processes Event Systems Layered Qualities Sufficiency: handles the requirements 1122 Understandability: can be understood by intended audience 0212 Modularity: divided into well-defined parts 0012 Cohesion : organized so like-minded elements are grouped together

© 2010 John Wiley & Sons Ltd. Design Comparison Example ctd. Coupling : organized to minimize dependence between elements 0101 Robustness: can deal with wide variety of input 1021 Flexibility: can be readily modified to handle changes in requirements 1011 Reusability: can use parts of the design and implementation in other applications

© 2010 John Wiley & Sons Ltd. Design Comparison Example, concluded Information hiding : module internals are hidden from others 1122 Efficiency: executes within acceptable time and space limits 1201 Reliability: 0112 TOTALS