You are on page 1of 19

Software Engineering Introduction and Overview

Essence and Accident

• Essence • Inherent
– difficulties inherent in Difficulties
the nature of – Complexity
software
– Conformity
• Accidents – Changeability
– difficulties – Invisibility
encountered but not
inherent

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

Software Engineering Processes


attempt to maximize QUALITY in the form of:

• Reliability • Testability

• Portability • Understandability

• Efficiency • Modifiability

• Human Engineering

RA402 jcmt CSE1320 Intermediate Programming


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

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

What are the phases in


the lifecycle of a software product?

• Requirements • Integration
• Specifications • Maintenance
• Design • Retirement
• Implementation

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

Requirements Phase
“What I need, not what I said I needed”

• What does the • Requirements


problem require in testing
terms of the – Rapid prototype
solution? – Mock-up
• Written document – Partial system
• Customer driven

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

Specifications Phase
What the developer wants to know:
• What does the • Frequent problems with
product do? a spec:
– ambiguous
• What are the
– incomplete
constraints on the – contradictory
product? • Specifications testing
• Acceptance criteria – SQA
– reviews

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

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

• Analysis of the problem • Developer must make


– Structured analysis : design decisions about:
decomposing problem by – algorithms
how data is manipulated – data representations
(acted upon) – I/O interfaces
– Object-oriented analysis: – data flow
decomposing problem by – modules
how data is represented • Design testing
– traceability

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

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

• Code • Implementation
• Documentation testing
• Tests – desk checking
– test cases
– reviews

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

Integration Phase
Putting it all together

• Composition order • Testing


– does it meet the
specs?
• Integration testing
– product testing by
– interfaces SQA
– acceptance testing
by customer

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

Maintenance Phase
In the user’s hands
• Why?
– operation
• Maintenance testing
– documentation
– changes
– turnover
– regression testing
• Kinds of maintenance
– Corrective
• Retirement
– Adaptive
– cost-effective?
– Perfective
– Preventive

RA402 jcmt CSE1320 Intermediate Programming


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

RA402 jcmt CSE1320 Intermediate Programming


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

RA402 jcmt CSE1320 Intermediate Programming


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) 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

RA402 jcmt CSE1320 Intermediate Programming


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.

RA402 jcmt CSE1320 Intermediate Programming


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. independent paths at least once
2. logical decisions both true and false
3. loops
4. internal data structures

RA402 jcmt CSE1320 Intermediate Programming


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?

RA402 jcmt CSE1320 Intermediate Programming


Software Engineering Introduction and Overview

Software Configuration Management


Change is inevitable
• Activities of SCM • SCM output
1. ID change – programs
2. control change – documentation
3. ensure that change is – data structures
properly implemented
4. report change to others

SCM is not the same as maintenance


RA402 jcmt CSE1320 Intermediate Programming
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.

RA402 jcmt CSE1320 Intermediate Programming


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 Practitioner’s 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

RA402 jcmt CSE1320 Intermediate Programming

You might also like