Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007.

Slides:



Advertisements
Similar presentations
Lecture 5: Requirements Engineering
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Requirements
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Introduction To System Analysis and Design
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Software Requirements
Requirements (recap)‏
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Overview of Software Requirements
March 22, 2004CS WPI1 CS 509 Design of Software Systems Lecture #9 Monday, March 22, 2004.
SE 555 – Software Requirements & Specifications Introduction
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Software Development Process
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Nature of Software Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Software System Engineering: A tutorial
Business Analysis and Essential Competencies
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Lecture 7: Requirements Engineering
An Introduction to Software Engineering. Communication Systems.
1 Introduction to Software Engineering Lecture 1.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Introduction Object oriented design is a method where developers think in terms of objects instead of procedures or functions. SA/SD approach is based.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Formal Methods.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Software Engineering Lecture 10: System Engineering.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
1 Software Requirements Descriptions and specifications of a system.
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
Chapter 5 – System Modeling
An Overview of Requirements Engineering Tools and Methodologies*
Chapter 4 – Requirements Engineering
Chapter 4 Requirements Engineering (1/3)
Chapter 5 – Requirements Engineering
Object-Oriented Analysis and Design
Unified Modeling Language
Software Requirements
System Modeling Chapter 4
UML: Unified modeling language
Software Requirements analysis & specifications
Informatics 121 Software Design I
Introduction to Requirements Management
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007

References “Software Design: An Introduction” by David Budgen, Software Engineering Volume 1: The Development Process [Thayer and Christensen], Pages /A&D/UML_tutorial/index.htm “Software Design: An Introduction” by David Budgen, Software Engineering Volume 1: The Development Process [Thayer and Christensen], Pages /A&D/UML_tutorial/index.htm

Overview Role of Software Design Describing Designs Software Design Practices and Design Methods Some Software Design Methods Role of Software Design Describing Designs Software Design Practices and Design Methods Some Software Design Methods

Role of Software Design Question… “What exactly is the purpose of Design? Answer… “To produce a workable (implementable) solution to a given problem.” Fitness for Purpose The Key Measure of the Appropriateness of Any Solution Question… “What exactly is the purpose of Design? Answer… “To produce a workable (implementable) solution to a given problem.” Fitness for Purpose The Key Measure of the Appropriateness of Any Solution

Design – Problem-solving Approach Is There Only One Solution to a Problem? Rarely…Almost Never Moving House Example Is There a Systematic Approach to Design? No, a Designer Must Create Each System Identify the Properties Required Stake Holders (Customer, Users, etc.) Devise a Structure That Possesses the Properties What Can a Designer Use in This Effort? Is There Only One Solution to a Problem? Rarely…Almost Never Moving House Example Is There a Systematic Approach to Design? No, a Designer Must Create Each System Identify the Properties Required Stake Holders (Customer, Users, etc.) Devise a Structure That Possesses the Properties What Can a Designer Use in This Effort?

Design – Main Characteristics Main Characteristics Found in Almost All Design Problems No Single “Right” Solution Many Factors and Constraints to be Balanced in Choosing a Solution No One Measure of “Quality” No Particular Process That Can Ensure That We Can Even Identify an Acceptable Solution Main Characteristics Found in Almost All Design Problems No Single “Right” Solution Many Factors and Constraints to be Balanced in Choosing a Solution No One Measure of “Quality” No Particular Process That Can Ensure That We Can Even Identify an Acceptable Solution

Software Design Process Designer Formulates and Develops an Abstract Design Model Representative of the Solution Why is This Process Not Understood as Well as Other Forms of Design? The Complexity of Software The Problem of Conformity The (Apparent) Ease of Changeability The Invisibility of Software Designer Formulates and Develops an Abstract Design Model Representative of the Solution Why is This Process Not Understood as Well as Other Forms of Design? The Complexity of Software The Problem of Conformity The (Apparent) Ease of Changeability The Invisibility of Software

Gaps in Domain Knowledge Software Design Method Used When a Designer Lacks Experience or is Unfamiliar With the Problem to be Solved Limited to Forms of Design Practice That Can be Prescribed in a Procedural Manner These Methods Provide… A Representation Part A Process Part A Set of Heuristics Software Design Method Used When a Designer Lacks Experience or is Unfamiliar With the Problem to be Solved Limited to Forms of Design Practice That Can be Prescribed in a Procedural Manner These Methods Provide… A Representation Part A Process Part A Set of Heuristics

Design Constraints Designing Software is Rarely an Unconstrained Process Examples of Constraints Programming Language to be Used Execution Environment or Operating System Performance Expectations User Interface Needs Designing Software is Rarely an Unconstrained Process Examples of Constraints Programming Language to be Used Execution Environment or Operating System Performance Expectations User Interface Needs

Design in the Software Development Cycle Constraints Affect the Design Process and the Form of the Product Set of User Needs to be Met Fitness of Purpose Requirements Elicitation and Analysis Leads to Identifying Inconsistencies Between the Requirements and the Solution Designer Must “Think Ahead” Short Term Use, Long Maintenance Effort, Stability of the Solution Space, etc. Constraints Affect the Design Process and the Form of the Product Set of User Needs to be Met Fitness of Purpose Requirements Elicitation and Analysis Leads to Identifying Inconsistencies Between the Requirements and the Solution Designer Must “Think Ahead” Short Term Use, Long Maintenance Effort, Stability of the Solution Space, etc.

Design Qualities Fitness of Purpose Doesn’t Provide an Absolute Measure of Quality Correct and Within Constraints May Not be Enough to Achieve Fitness of Purpose Quality Factor “ilities” Reliability Efficiency Maintainability Usability Fitness of Purpose Doesn’t Provide an Absolute Measure of Quality Correct and Within Constraints May Not be Enough to Achieve Fitness of Purpose Quality Factor “ilities” Reliability Efficiency Maintainability Usability

Assessing Design Quality A Systematic Form of Measurement is Difficult to Achieve Favorable Assessment Techniques Design Walk-through Meetings Reviews Refactoring (XP) How Often? A Systematic Form of Measurement is Difficult to Achieve Favorable Assessment Techniques Design Walk-through Meetings Reviews Refactoring (XP) How Often?

Describing Designs Recording the Design Model: Design Viewpoints Design Representation Forms Some Examples of Design Representations Recording the Design Model: Design Viewpoints Design Representation Forms Some Examples of Design Representations

Design Viewpoints Behavior Describing the Causal Links Between External Events and System Activities During Execution Functional Describing What the System Does Structural Describing the Interdependencies of the Constructional Components Data Modelling Describing the Relationships that Exist Between the Data Objects Used Behavior Describing the Causal Links Between External Events and System Activities During Execution Functional Describing What the System Does Structural Describing the Interdependencies of the Constructional Components Data Modelling Describing the Relationships that Exist Between the Data Objects Used

Design Representation Forms of Design Representation Textual Diagrammatical Mathematical Examples State Charts Data Flow Diagram (DFD) Entity Relationship Diagram (ERD) Forms of Design Representation Textual Diagrammatical Mathematical Examples State Charts Data Flow Diagram (DFD) Entity Relationship Diagram (ERD)

Current Design Representations UML Diagrams Class Use Case Collaboration Sequence Statechart Component Activity UML Diagrams Class Use Case Collaboration Sequence Statechart Component Activity *

Software Design Practices and Design Methods Major Problem with Teaching Software Design is Scale Roles for Software Design Methods Establishing Common Goals and Styles Generating “Consistent” Documentation Assist With Future Maintenance Recapture the Original Design Model Helping Make Some Features of a Problem More Explicit Constraints That Limit Their Usefulness The Process Part of a Method Provides Relatively Little Detailed Guidance as to How a Problem Should be Solved The Need to Use a Procedural Form Leads to Practices That Conflict with the Behavior Observed in Experienced Designers Major Problem with Teaching Software Design is Scale Roles for Software Design Methods Establishing Common Goals and Styles Generating “Consistent” Documentation Assist With Future Maintenance Recapture the Original Design Model Helping Make Some Features of a Problem More Explicit Constraints That Limit Their Usefulness The Process Part of a Method Provides Relatively Little Detailed Guidance as to How a Problem Should be Solved The Need to Use a Procedural Form Leads to Practices That Conflict with the Behavior Observed in Experienced Designers

Design Strategies Top-down Separate a Large Problem into Smaller Ones Compositional Identifies a Set of “Entities” That Can be Modeled and Then Assembled to Create a Model for the Complete Solution Organizational Use Where Development Organization and Management Structures Impose Constraints Upon the Design Process Template Used Where Some General Paradigm Describes a Reasonably Large Domain of Problems Top-down Separate a Large Problem into Smaller Ones Compositional Identifies a Set of “Entities” That Can be Modeled and Then Assembled to Create a Model for the Complete Solution Organizational Use Where Development Organization and Management Structures Impose Constraints Upon the Design Process Template Used Where Some General Paradigm Describes a Reasonably Large Domain of Problems

Software Design Methods Jackson Structured Programming (JSP) Structured Systems Analysis and Structured Design Jackson System Development (JSD) Object Oriented Design (OOD) Jackson Structured Programming (JSP) Structured Systems Analysis and Structured Design Jackson System Development (JSD) Object Oriented Design (OOD)

Final Thoughts The Paper was Stale Given the Progress That Software Design has Gone Through the Last 10 Years A More Recent Paper Linking the First Generation Design Methods with the Current Design Methods Fitness of Purpose is a Good Concept for Use in Guiding a Software Project The Paper was Stale Given the Progress That Software Design has Gone Through the Last 10 Years A More Recent Paper Linking the First Generation Design Methods with the Current Design Methods Fitness of Purpose is a Good Concept for Use in Guiding a Software Project

Questions?