Designing the system Conceptual design and technical design

Slides:



Advertisements
Similar presentations
Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Requirements and Design
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Managing Data Resources
Software Testing and Quality Assurance
Design Creative Process of transferring the problem into a solution
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Capturing the requirements
Introduction to Software Engineering Lecture 6 André van der Hoek.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Application architectures
Establishing the overall structure of a software system
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
CSC230 Software Design (Engineering)
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
CH05: Designing the System To design a system is to determine a set of components and inter-component interfaces that satisfy a specified set of requirements.
Chapter 6: Architectural Design
Application architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
An Introduction to Software Architecture
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Slide 1 Introduction to Software Architecture TV Prabhakar.
10 Software Architecture CSCU 411 Software Engineering.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
SE: CHAPTER 7 Writing The Program
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CMSC 345 Fall 2000 Design. What is Design? Verb: The creative process of transforming the problem into the solution Noun: The description of the solution.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
Lecture 18: Object-Oriented Design
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Conceptual design Tells the customer what the system will do Tells the customer what the system will do Answers: Answers: Where will the data come from?
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.
1 5/18/2007ã 2007, Spencer Rugaber Architectural Styles and Non- Functional Requirements Jan Bosch. Design and Use of Software Architectures. Addison-Wesley,
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
The Software Development Life Cycle: An Overview
Comparing Designs By Chris McCall. Comparing Designs A decision-making method for deciding between many designs for a single specification Provides a.
CS223: Software Engineering
1-1 © Prentice Hall, 2004 Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
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 2007/2008 Chapter 5 Designing the System.
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
Software Design.
Chapter ? Quality Assessment
System Design and Modeling
System Design.
Part 3 Design What does design mean in different fields?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
PPT and video are due no later than February 15, 2019
Chapter 6: Architectural Design
Presentation transcript:

Designing the system Conceptual design and technical design Design styles, techniques and tools Characteristics of good design Validating designs Documenting the design Chapter 5

Conceptual design Tells the customer what the system will do Answers: Where will the data come from? What will happen to the data in the system? What will the system look like to users? What choices will be offered to users? What is the timing of events? What will the reports and screens look like? Characteristics of good conceptual design in customer language with no technical jargon describes system functions independent of implementation linked to requirements Chapter 5

Technical design Tells the programmers what the system will do Includes: major hardware components and their function hierarchy and function of software components data structures data flow Chapter 5

Conceptual and technical designs Chapter 5

Difference in design documentation Chapter 5

Five ways to create designs Modular decomposition Data-oriented decomposition Event-oriented decomposition Outside-in design Object-oriented design Chapter 5

Levels of decomposition Chapter 5

“Toaster model” Chapter 5

Three design levels Architecture: associates system components with capabilities Code design: specifies algorithms and data structures for each component Executable design: lowest level of design, including memory allocation, data formats, bit patterns Chapter 5

Design styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories Interpreters Process control Client-server Chapter 5

Pipes and filters Chapter 5

Layered security architecture Chapter 5

Blackboard model Chapter 5

Interpreter example Chapter 5

Feedback and feed-forward systems Chapter 5

Ring and star topologies for distributed systems Chapter 5

Example of implicit invocation Chapter 5

Important design issues Modularity and levels of abstraction Collaborative design Designing the user interface metaphors, mental model, navigation rules, look and feel cultural issues user preferences Concurrency Design patterns and reuse Chapter 5

Example of abstraction Rearrange L in non-decreasing order DO WHILE I is between 1 and (length of L)-1: Set LOW to index of smallest value in L(I), ..., L(length of L) Interchange L(I) and L(LOW) END DO Chapter 5

Chapter 5

Typical design space Chapter 5

Characteristics of good design Component independence coupling cohesion Exception identification and handling Fault prevention and tolerance active passive Chapter 5

Component coupling Chapter 5

The range of coupling measures Chapter 5

Example of content coupling Chapter 5

Example of common coupling Chapter 5

Types of cohesion Chapter 5

Examples of cohesion Chapter 5

Scope of control Chapter 5

Techniques for improving design Reducing complexity Design by contract Prototyping design Fault-tree analysis Chapter 5

Portion of power plant control system Chapter 5

Cut-set tree generated from the fault tree Chapter 5

Fault rate vs. system design complexity Chapter 5

Design evaluation and validation Mathematical validation Measuring design quality Comparing designs one specification, many designs comparison table Design reviews Chapter 5

Shared data solution for KWIC Chapter 5

Abstract data type solution for KWIC Chapter 5

Implicit invocation solution for KWIC Chapter 5

Pipe-and-filter solution to KWIC Chapter 5

Chapter 5

Design reviews Preliminary design review Critical design review examines conceptual design with customer and users Critical design review presents technical design to developers Program design review programmers get feedback on their designs before implementation Chapter 5

Questions for any design review Is it a solution to the problem? Is it modular, well-structured, and easy to understand? Can we improve the structure and understandability? Is it portable to other platforms? Is it reusable? Is it easy to modify or expand? Does it support ease of testing? Does it maximize performance, where appropriate? Does it reuse components from other projects, where appropriate? Are the algorithms appropriate, or can they be improved? If this system is to have a phased development, are the phases interfaced sufficiently so that there is an easy transition from one phase to the next? Is it well-documented, including design choices and rationale? Does it cross-reference the components and data with the requirements? Does it use appropriate techniques for handling faults and preventing failures? Chapter 5

Documenting the design design rationale menus and other display-screen formats human interfaces: function keys, touch screen descriptions, keyboard layouts, use of a mouse or joystick report formats input: where data come from, how they are formatted, on what media they are stored output: where data are sent, how they are formatted, on what media they are stored general functional characteristics performance constraints archival procedures fault-handling approach Chapter 5