Unformatted text preview:

CSCI 5828 Foundations of Software Engineering Lecture 20 21 and Software Design Slides created by Pfleeger and Atlee for the SE textbook Some modifications to the original slides have been made by Ken Anderson for clarity of presentation 03 20 2008 04 01 2008 04 08 2008 Chapter 5 Designing the System ISBN 0 13 146913 4 Prentice Hall 2006 Copyright 2006 Pearson Prentice Hall All rights reserved Contents 5 1 What Is Design 5 2 Decomposition and Modularity 5 3 Architectural Styles and Strategies 5 4 Issues in Design Creation 5 5 Characteristic of Good Design 5 6Techniques for Improving Design 5 7Design Evaluation and Validation 5 8Documenting the Design 5 9Information System Example 5 10 Real Time Example 5 11 What this Chapter Means for you Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 3 Chapter 5 Objectives Conceptual design and technical design Design styles techniques and tools Characteristic of good design Validating designs Documenting the design Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 4 5 1 What Is Design Design is the creative process of transforming a problem into a solution The description of a solution is also known as the design The requirements specification defines a problem The design document specifies a particular solution to that problem Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 5 5 1 What Is Design Design is a two part interactive process Conceptual design system design Technical design Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 6 5 1 What Is Design Conceptual Design Tells the customer what the system will do 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 Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 7 5 1 What Is Design Conceptual Design continued Characteristics of good conceptual design in customer s language no technical jargon describes system functions independent of implementation linked to requirements Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 8 5 1 What Is Design Conceptual Design continued Graphical representation of the differences in design documentation Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 9 5 1 What Is Design Technical Design Tells the programmers what the system will do major hardware components and their function hierarchy and functions of software components data structures data flow Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 10 5 2 Decomposition and Modularity Five Ways to Create Designs Modular decomposition Data oriented decomposition Event oriented decomposition Outside in design Object oriented design Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 11 5 2 Decomposition and Modularity Levels of Decomposition System data description High level functional descriptions Creating a hierarchy of information with increasing details Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 12 5 2 Decomposition and Modularity Modularity Modules or components composite parts of design A system is modular when each activity of the system is performed by exactly one component inputs and outputs of each component are well defined all inputs to it are essential to its function all outputs are produced by one of its actions Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 13 5 2 Decomposition and Modularity Graphical representation of the NIST ECMA model for environment integration a software architect uses a high level design to explain general characteristics without detail Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 14 5 3 Architectural Styles and Strategies 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 Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 15 5 3 Architectural Styles and Strategies Design Styles Pipes and filters Object oriented design Implicit invocation Layering Repositories Interpreters Process control Client server Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 16 5 3 Architectural Styles and Strategies Pipes and Filters The system has Streams of data pipe for input and output Transformation of the data filter Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 17 5 3 Architectural Styles and Strategies Pipes and Filters continued Several important properties The designer can understand the entire system s effect on input and output as the composition of the filters The filters can be reused easily on other systems System evolution is simple Allow concurrent execution of filters Drawbacks Encourages batch processing Not good for handling interactive application Duplication in filters functions Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 18 5 3 Architectural Styles and Strategies Object Oriented Design Must have two characteristics the object must preserve the integrity of data representation the data representaion must be hidden from other objects easy to change the implementation without perturbing the rest of the system One object must know the identity of other objects in order to interact Pfleeger and Atlee Software Engineering Theory and Practice 2006 Pearson Prentice Hall Page 5 19 5 3 Architectural Styles and Strategies Implicit Invocation Event driven based on notation of broadcasting Data exchange is through shared data in a repository Applications packet switch networks databases to ensure consistency user interfaces Useful for reusing design components from other system Disadvantage lack of assurance that a component will respond to an event Pfleeger and Atlee Software Engineering Theory and


View Full Document

CU-Boulder CSCI 5828 - Software Design

Documents in this Course
Drupal

Drupal

31 pages

Deadlock

Deadlock

23 pages

Deadlock

Deadlock

23 pages

Deadlock

Deadlock

22 pages

Load more
Loading Unlocking...
Login

Join to view Software Design and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Design and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?