Essence and Accident - Inherent Difficulties - Essence - Accidents

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 19

Software Engineering Introduction and

Overview

Essence and Accident


Essence
difficulties inherent in
the nature of software

Accidents
difficulties encountered
but not inherent

RA402jcmt

Inherent
Difficulties

Complexity
Conformity
Changeability
Invisibility

CSE1320Intermediate

Software Engineering Introduction and


Overview

Software Engineering Processes


attempt to maximize QUALITY in the form of:
Reliability

Testability

Portability

Understandability

Efficiency

Modifiability

Human Engineering

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Software Engineering Processes


Why?
Issues concerning software quality
Relative costs of fixing faults
Price performance factors
Product size increase leads to larger teams

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

What are the phases in


the lifecycle of a software product?

Requirements
Specifications
Design
Implementation

RA402jcmt

Integration
Maintenance
Retirement

CSE1320Intermediate

Software Engineering Introduction and


Overview

Requirements Phase
What I need, not what I said I needed
What does the
problem require in
terms of the
solution?
Written document
Customer driven
RA402jcmt

Requirements
testing
Rapid prototype
Mock-up
Partial system

CSE1320Intermediate

Software Engineering Introduction and


Overview

Specifications Phase
What the developer wants to know:
What does the
product do?
What are the
constraints on the
product?
Acceptance criteria
RA402jcmt

Frequent problems with


a spec:
ambiguous
incomplete
contradictory

Specifications testing

SQA
reviews

CSE1320Intermediate

Software Engineering Introduction and


Overview

Design Phase

How does the product do what it is supposed to do?


Analysis of the problem
Structured analysis :
decomposing problem by
how data is manipulated
(acted upon)
Object-oriented analysis:
decomposing problem by
how data is represented

RA402jcmt

Developer must make


design decisions about:

algorithms
data representations
I/O interfaces
data flow
modules

traceability

Design testing

CSE1320Intermediate

Software Engineering Introduction and


Overview

Implementation Phase
Initial CS courses have to focus on this element first

Code
Documentation
Tests

RA402jcmt

Implementation
testing
desk checking
test cases
reviews

CSE1320Intermediate

Software Engineering Introduction and


Overview

Integration Phase
Putting it all together
Composition order
Integration testing
interfaces

RA402jcmt

Testing
does it meet the
specs?
product testing by
SQA
acceptance testing by
customer

CSE1320Intermediate

Software Engineering Introduction and


Overview

Maintenance Phase
In the users hands

Why?

operation
documentation
turnover

Kinds of maintenance

Corrective
Adaptive
Perfective
Preventive

RA402jcmt

Maintenance testing
changes
regression testing

Retirement
cost-effective?

CSE1320Intermediate

Software Engineering Introduction and


Overview

Specification principles

Separate functionality from implementation


A process-oriented systems spec language is required
A spec must encompass the system of which the SW is a
component
A spec must encompass the environment in which the
system operates
A system spec must be a cognitive model
A spec must be operational
The spec must be tolerant of incompleteness and
augmentable
A spec must be localized and loosely coupled

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Analysis principles and issues

What differentiates one analysis technique from


another?

hueristics and notions


point of view
notation
modeling approach

What things are common about analysis methods?

hierarchical representation
external and internal interfaces
design and implementation foundation
no focus on constraints or validation

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Analysis principles and issues

Analysis is information-driven

First provide a mechanism for representing info


then derive function and behavior
Common characteristics
1)
2)
3)
4)
5)
6)

mechanism for info domain analysis


approach for functional and/or behavior representation
definition of interfaces
mechanisms for problem partitioning
support of abstraction
representation of essential and implementation views

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Testing

Testing cannot show the absence of defects,


it can only show that software defects are present.
1. Testing is a process of executing a program with the
intent of finding an error.
2. A good test case is one that has a high probability of
finding an as yet undiscovered error.
3. A successful test is one that uncovers an as yet
undiscovered error.

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Testing Methods

Black-box testing

Knowing the specified function that a product has been


designed to perform, tests can be conducted that
demonstrate each function is fully operational.

White-box or glass-box testing

Knowing the internal workings of a product, tests can be


conducted to ensure that "all the gears mesh".
1.
2.
3.
4.

independent paths at least once


logical decisions both true and false
loops
internal data structures

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Development Testing
Debugging approaches

brute force
backtracking
cause elimination

Before you fix

1. Is the cause of this bug also reproduced


elsewhere?
2. What new bug might I be putting in?
3. What would have prevented this bug?

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Software Configuration Management


Change is inevitable
Activities of SCM
1. ID change
2. control change
3. ensure that change is
properly implemented
4. report change to others

SCM output
programs
documentation
data structures

SCM is not the same as maintenance


RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Systems Engineering Issues


Takes customer-defined goals and
constraints and derives a representation
of function, performance, interfaces,
design constraints and information
structure that can be allocated to each of
the generic system elements available.

RA402jcmt

CSE1320Intermediate

Software Engineering Introduction and


Overview

Software Engineering Notes for


CSE1320 Intermediate Programming

Sources

The Mythical Man-Month, Brooks, Frederick P.; Addison-Wesley


Publishing Company, (Reprint)1982
No Silver Bullet: Essence and Accidents of Software Engineering,,
Computer, Vol. 20, No. 4 (April 1987) pp. 10-19
Software Engineering,Schach, Stephen R.;Aksen Associates Incorporated
Publishers, 1990
Software Engineering, A Practitioners Approach,Pressman, Roger
S.;McGraw-Hill, Inc. 1992
Software Engineering, Design, Reliability,and Management,Shooman,
Martin L.;McGraw-Hill, Inc. 1983
Software Engineering Metrics and Models, Conte, S.D., H.E. Dunsmore,
V.Y. Shen;The Benjamin/Cummings Publishing Company, Inc., 1986

RA402jcmt

CSE1320Intermediate

You might also like