DOC PREVIEW
CU-Boulder CSCI 5828 - Software Design

This preview shows page 1-2-3-4-5-6-43-44-45-46-47-48-49-88-89-90-91-92-93 out of 93 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 93 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CSCI 5828: Foundations ofSoftware EngineeringLecture 20, 21, and : Software DesignSlides created by Pfleeger and Atlee for the SE textbookSome modifications to the original slides have been made by KenAnderson for clarity of presentation03/20/2008 — 04/01/2008 — 04/08/2008ISBN 0-13-146913-4Prentice-Hall, 2006Chapter 5Designingthe SystemCopyright 2006 Pearson/Prentice Hall. All rights reserved.Pfleeger and Atlee, Software Engineering: Theory and Practice Page 5.3© 2006 Pearson/Prentice HallContents5.1 What Is Design?5.2 Decomposition and Modularity5.3 Architectural Styles and Strategies5.4 Issues in Design Creation5.5 Characteristic of Good Design5.6Techniques for Improving Design5.7Design Evaluation and Validation5.8Documenting the Design5.9Information System Example5.10 Real Time Example5.11 What this Chapter Means for youPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.4© 2006 Pearson/Prentice HallChapter 5 Objectives• Conceptual design and technical design• Design styles, techniques, and tools• Characteristic of good design• Validating designs• Documenting the designPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.5© 2006 Pearson/Prentice Hall5.1 What Is Design?• Design is the creative process of transforming aproblem 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 tothat problemPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.6© 2006 Pearson/Prentice Hall5.1 What Is Design?• Design is a two-part interactive process– Conceptual design (system design)– Technical designPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.7© 2006 Pearson/Prentice Hall5.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 Page 5.8© 2006 Pearson/Prentice Hall5.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 requirementsPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.9© 2006 Pearson/Prentice Hall5.1 What Is Design?Conceptual Design (continued)• Graphical representation of the differences indesign documentationPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.10© 2006 Pearson/Prentice Hall5.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 flowPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.11© 2006 Pearson/Prentice Hall5.2 Decomposition and ModularityFive Ways to Create Designs• Modular decomposition• Data-oriented decomposition• Event-oriented decomposition• Outside-in design• Object-oriented designPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.12© 2006 Pearson/Prentice Hall5.2 Decomposition and ModularityLevels of Decomposition• System data description• High level functional descriptions• Creating a hierarchy of information with increasing detailsPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.13© 2006 Pearson/Prentice Hall5.2 Decomposition and ModularityModularity• Modules or components: composite parts ofdesign• A system is modular when– each activity of the system is performed by exactly onecomponent– 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 actionsPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.14© 2006 Pearson/Prentice Hall5.2 Decomposition and Modularity• Graphical representation of the NIST/ECMA model for environmentintegration– a software architect uses a high level design to explain generalcharacteristics without detailPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.15© 2006 Pearson/Prentice Hall5.3 Architectural Styles and StrategiesThree Design Levels• Architecture: associates system componentswith capabilities• Code design: specifies algorithms and datastructures for each component• Executable design: lowest level of design,including memory allocation, data formats, bitpatternsPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.16© 2006 Pearson/Prentice Hall5.3 Architectural Styles and StrategiesDesign Styles• Pipes and filters• Object-oriented design• Implicit invocation• Layering• Repositories• Interpreters• Process control• Client-serverPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.17© 2006 Pearson/Prentice Hall5.3 Architectural Styles and StrategiesPipes 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 Page 5.18© 2006 Pearson/Prentice Hall5.3 Architectural Styles and StrategiesPipes and Filters (continued)• Several important properties– The designer can understand the entire system's effecton 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’ functionsPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.19© 2006 Pearson/Prentice Hall5.3 Architectural Styles and StrategiesObject-Oriented Design• Must have two characteristics– the object must preserve the integrity of datarepresentation– the data representaion must be hidden from otherobjects• easy to change the implementation without perturbingthe rest of the system• One object must know the identity of other objectsin order to interactPfleeger and Atlee, Software Engineering: Theory and Practice Page 5.20© 2006 Pearson/Prentice Hall5.3 Architectural Styles 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
Download Software Design
Our administrator received your request to download this document. We will send you the file to your email shortly.
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 2 2 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?