Software Engineering

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

RA402 jcmt CSE1320 Intermediate Programming


Essence and Accident
Inherent
Difficulties
Complexity
Conformity
Changeability
Invisibility
Essence
difficulties inherent in
the nature of
software
Accidents
difficulties
encountered but not
inherent
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Software Engineering Processes
attempt to maximize QUALITY in the form of:
Reliability
Portability
Efficiency
Human Engineering


Testability
Understandability
Modifiability

Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Software Engineering Processes
Why?
Issues concerning software quality
Relative costs of fixing faults
Price performance factors
Product size increase leads to larger teams
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
What are the phases in
the lifecycle of a software product?
Requirements
Specifications
Design
Implementation


Integration
Maintenance
Retirement
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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
Requirements
testing
Rapid prototype
Mock-up
Partial system
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Specifications Phase
What the developer wants to know:
What does the
product do?
What are the
constraints on the
product?
Acceptance criteria

Frequent problems with
a spec:
ambiguous
incomplete
contradictory
Specifications testing
SQA
reviews

Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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

Developer must make
design decisions about:
algorithms
data representations
I/O interfaces
data flow
modules
Design testing
traceability

Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Implementation Phase
Initial CS courses have to focus on this element first
Code
Documentation
Tests
Implementation
testing
desk checking
test cases
reviews
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Integration Phase
Putting it all together
Composition order

Integration testing
interfaces
Testing
does it meet the
specs?
product testing by
SQA
acceptance testing
by customer
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Maintenance Phase
In the users hands

Maintenance testing
changes
regression testing

Retirement
cost-effective?
Why?
operation
documentation
turnover
Kinds of maintenance
Corrective
Adaptive
Perfective
Preventive
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
Analysis principles and issues
Analysis is information-driven
First provide a mechanism for representing info
then derive function and behavior
Common characteristics
1) mechanism for info domain analysis
2) approach for functional and/or behavior representation
3) definition of interfaces
4) mechanisms for problem partitioning
5) support of abstraction
6) representation of essential and implementation views
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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.

Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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. independent paths at least once
2. logical decisions both true and false
3. loops
4. internal data structures

Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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?
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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.
Software Engineering Introduction and Overview
RA402 jcmt CSE1320 Intermediate Programming
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

You might also like