Download presentation
Presentation is loading. Please wait.
Published byBertha Walsh Modified over 9 years ago
1
Some Software Engineering Principles by D. L. Parnas Presented by Team 7: Amitkumar Dhameja Cincy Francis Rong Gu CS575 - Software Design, Team 7
2
Topics Covered Introduction to Software Engineering A Well-Structured Program? Modules & Modularization Program Structure Control Techniques Error Handling Hierarchical Structure & Subsetable Systems Designing Abstract Interfaces Summary CS575 - Software Design, Team 7
3
What is Software Engineering Multi-Person construction of Multi- Version programs Excludes “solo programming” Some Problems CS575 - Software Design, Team 7
4
Challenges due to Multi-Person Programming How to divide the project into work assignments for programmers? How to specify the behavior of each component? How to communicate to all people about the run time errors? CS575 - Software Design, Team 7
5
Challenges due to Multi-Version Programming How to write programs that are easy to modify? How to write program with useful subsets? How to write program that are easy to expand? CS575 - Software Design, Team 7
6
Well-Structured Software Structure – refers to the partial description of the system Describes a system as a set of parts and specifies some connections between the parts Systems in which connections between parts contain little information are termed as well- structured systems CS575 - Software Design, Team 7
7
About Module CS575 - Software Design, Team 7 Module has several definitions: A job assignment A subroutine A memory load A functional component
8
Decomposition Approaches: Old - Divide project according to flow chart Correct - Design each module to “hide” or contain an assumption that is likely to change CS575 - Software Design, Team 7
9
Flowchart Information Flow Modularization Information Locality/Hiding Decomposition (Continued)
10
Specification Shortcomings of Common Approaches Approach 1 - reveals a rough description of the internal structure of the module Approach 2 - reveals a description of a hypothetic implementation of the module CS575 - Software Design, Team 7
11
Specification (Continued) New approach proposed Precise specification of externally visible aspects without suggesting internal construction Relate externally visible value functions to each other rather than to a (real or imagined) lower level machine CS575 - Software Design, Team 7
12
Error handling Treatment of run-time errors becomes difficult due to information hiding approach – Error information likely to be in other modules Proper UE handling requires systematic approach in every part of software CS575 - Software Design, Team 7
13
Hierarchical Structure and Subsetable Systems It is easy to find useful subsets if the “uses” relation defines a hierarchy among programs “Uses” hierarchy should be designed before the coding begins Rule of thumb for designing “uses” hierarchy: lower level programs vs. upper level programs CS575 - Software Design, Team 7
14
Designing Abstract Interface Modules have abstract interfaces that are relatively unlikely to change than the designing assumptions they hide The development of a list of assumptions unlikely to change during the product life cycle The specification of a set of interface functions around these assumptions CS575 - Software Design, Team 7
15
Summary Decomposing system Specification Error handling “Use” hierarchy structure Design abstract interface CS575 - Software Design, Team 7 These Principles are intended to be applied in the early phases of software product design Principles discussed in this paper:
16
Some Software Engineering Principles Finished… At Last!!! Any Questions??? CS575 - Software Design, Team 7
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.