Design Creative Process of transferring the problem into a solution

Slides:



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

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Requirements and Design
Designing the system Conceptual design and technical design
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Application architectures
Establishing the overall structure of a software system
Team 1 Lisa Anthony Luiza da Silva Erik Hayes Diana Tetelman.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
© 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.
Course Instructor: Aisha Azeem
©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)
1 User Interface Design CIS 375 Bruce R. Maxim UM-Dearborn.
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.
©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.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
© 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.
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.
Chapter 12: User Interface Design
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.
John D. McGregor Class 4 – Initial decomposition
Chapter 7: Architectural Design Chapter 11 in textbook 1.
© 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?
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
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.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
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.
Software architecture
Chapter ? Quality Assessment
System Design and Modeling
Part 3 Design What does design mean in different fields?
John D. McGregor Quality attributes
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
An Introduction to Software Architecture
PPT and video are due no later than February 15, 2019
Chapter 6: Architectural Design
Presentation transcript:

Design Creative Process of transferring the problem into a solution the process is two way and iterative: Conceptual/System Design Technical Design

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

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

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

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

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

Pipes and Filters

Example of implicit invocation

Layering

Repository

Interpreters

Process Control

Client Server

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

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

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

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

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

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

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?

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