Some Software Engineering Principles by D. L. Parnas - PowerPoint PPT Presentation

About This Presentation
Title:

Some Software Engineering Principles by D. L. Parnas

Description:

Multi-Person construction of Multi-Version programs. Excludes 'solo programming' Some Problems ... How to divide the project into work assignments for programmers? ... – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 17
Provided by: rong53
Category:

less

Transcript and Presenter's Notes

Title: Some Software Engineering Principles by D. L. Parnas


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
  • Module has several definitions
  • A job assignment
  • A subroutine
  • A memory load
  • A functional component

CS575 - Software Design, Team 7
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
Decomposition (Continued)
Flowchart ? Information Flow Modularization ?
Information Locality/Hiding
CS575 - Software Design, Team 7
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
Principles discussed in this paper
  • Decomposing system
  • Specification
  • Error handling
  • Use hierarchy structure
  • Design abstract interface

These Principles are intended to be applied in
the early phases of software product design
CS575 - Software Design, Team 7
16
Some Software Engineering Principles
  • Finished At Last!!!
  • Any Questions???

CS575 - Software Design, Team 7
Write a Comment
User Comments (0)
About PowerShow.com