0% found this document useful (0 votes)
79 views22 pages

Software Engineering - I

This document discusses software engineering processes. It introduces the waterfall model and iterative refinement approaches. The waterfall model involves sequential phases of requirements, design, implementation, testing, and maintenance. Iterative refinement uses prototyping and successive iterations to refine requirements and design. A case study describes using iterative refinement within phases of a waterfall process to develop graphics capabilities for a BASIC language compiler. Initial prototypes clarified design issues, and phases reused work from prior iterations, finding few bugs overall.

Uploaded by

Kubo Pitonak
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views22 pages

Software Engineering - I

This document discusses software engineering processes. It introduces the waterfall model and iterative refinement approaches. The waterfall model involves sequential phases of requirements, design, implementation, testing, and maintenance. Iterative refinement uses prototyping and successive iterations to refine requirements and design. A case study describes using iterative refinement within phases of a waterfall process to develop graphics capabilities for a BASIC language compiler. Initial prototypes clarified design issues, and phases reused work from prior iterations, finding few bugs overall.

Uploaded by

Kubo Pitonak
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Software Engineering

-I-

Lecture 1
Software Process Engineering

EU University of Applied Sciences,


By; Dr. Mohammed Nazeh Alimam
Email: [email protected]
Mobile: +491634990118
Software Engineering is about;

- Understand business needs and requirements


- Define, Analyze and Design requirements
- Plan development phases
- Select implementation tools and management
strategies for each phase
- Software Process Design
- Programming and Testing

2 - Verification and Validation


Software Process

Fundamental Assumption:

Good processes lead to good software!!


Good processes reduce risk!!

3
Risk Management

What can go wrong in a software project?


How can the risk be reduced?
Development Lifecycle

4
The Software Process (Simplified)

Feasibility and
Planning Requirements

Design

Operation and
Implementation Maintenance
5
The Waterfall Model

Requirements
Definition

System and
Software design
Programming
and Unit Testing

Integration and
System Testing
Operation and
6
Maintenance
Requirements Analysis and Definition

The system's services, constraints and goals are established by


consultation with system users. They are then defined in a
manner that is understandable by both users and development
staff.
This phase can be divided into:
v Feasibility study (often carried out separately)
v Requirements analysis
v Requirements definition
v Requirements specification
7
System and Software Design

System design: Partition the requirements to hardware or


software systems. Establishes an overall system
architecture. Nonfunctional
Software design: Represent the software system functions
in a form that can be transformed into one or more
executable programs. Functional
v Unified Modeling Language (UML). Compatibility

8
Programming and Unit Testing

The software design is realized as a set of programs or


program units. (Written specifically, acquired from
elsewhere, or modified.)
Individual components are tested against
specifications.

9
Integration and System Testing

The individual program units are:


v integrated and tested as a complete system
v tested against the requirements as specified
v delivered to the client

10
Operation and Maintenance

v Operation: The system is put into practical use.


v Maintenance: Errors and problems are identified and
fixed.
v Evolution: The system evolves over time as
requirements change, to add new functions or adapt the
technical environment.
v Phase out: The system is withdrawn from service.

11
Discussion of the Waterfall Model

Advantages:
v Process visibility
v Dependence on individuals
v Quality control
v Cost control
Disadvantages:
Each stage in the process reveals new
understanding of the previous stages, that
requires the earlier stages to be revised.
12
Feedback in the Waterfall Model

Requirements
Definition

System and
Software design
Programming
and Unit Testing

Integration and
System Testing
Operation and
13
Maintenance
Iterative Refinement
(Evolutionary Development)

Concept: Initial implementation for user comment, followed


by refinement until system is complete. (Performance Metrics)
v User interface mock-up, Prototype
v Throw-away software components, clarify the design
v Dummy modules, observe the behavior
v Rapid prototyping, refined versions
v Successive refinement

14
Iterative Refinement

Evaluation Requirements

Implementation Design
15
(Prototype on Spiral Model)
Iterative Refinement

Concurrent
Activities
Initial
Requirements Version

Outline Intermediate
Design
Description Versions

Implementation Final
16 Version
Iterative Refinement & Software
Process

Concurrent
Activities

Outline
Description Requirements

Design

Implementation Final
17 Version
Iterative Refinement

When is iterative refinement appropriate?

18
Iterative Refinement + Waterfall Model:
Graphics for Basic

Outline Description: Create process with documentation.


Phase 1: Extend current language with a preprocessor and
run-time support package.
Phase 2: Write new compiler and run-time system
incorporating graphics elements.

19
Iterative Refinement + Waterfall Model:
Graphics for Basic

Design Issues:
v Pictorial subprograms: coordinate systems, window/viewport
v User specification of perspective
Design Strategy: (Iterative Refinement)
v Write a series of prototypes with various proposed semantics
v Evaluate with a set of programming tasks

20
Iterative Refinement + Waterfall Model:
Graphics for Basic

Phase 1: Implementation (Waterfall)


v When the final specification was agreed, the entire
preprocessor and run-time support were recoded.
v The system was almost entirely bug-free.
Phase 2: New compiler (Waterfall)
Phase 1 was used as the requirements definition for the
final version.

21
Observations about Software Processes

Completed projects should look like the Waterfall Model


but ... the development process is always partly evolutionary.
Risk is lowered by:
v Prototyping key components
v Dividing into phases
v Following a visible software process
v Making use of reusable components
22

You might also like