Introduction To Software Engineering
Introduction To Software Engineering
Engineering
Lecture 4
1
Lecture Objectives
Outline process models for
Requirements engineering.
Software development.
Testing and evolution.
Rational Unified Model
Computer Aided Software Engineering
(CASE)
2
Process Activities
Software specification
Software design and implementation
Software validation
Software evolution
3
Software Specification
The process of establishing what services are
required and the constraints on the system’s
operation and development.
Requirements engineering process
Feasibility study;
Requirements elicitation and analysis;
Requirements specification;
Requirements validation.
4
Requirements Engineering
Process
Feasibility Requir ements
stud y elicitation and
analysis
Requir ements
specification
System
models
User and system
requirements
Requir ements
document
5
Software Design and
Implementation
The process of converting the system
specification into an executable system.
Software design
Design a software structure that realises the
specification;
Implementation
Translate this structure into an executable
program;
The activities of design and implementation
are closely related and may be inter-leaved.
6
Software Design Process
Requirements
specification
Design activities
Data
Arc hitectural Abstract Interface Component Algorithm
structure
design specification design design design
design
Data
System Software Interface Component Algorithm
structure
architecture specification specification specification specification
specification
Design products
7
Design Process Activities
Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm design
8
Structured Methods
Systematic approaches to developing a
software design. For example, UML
The design is usually documented as a set of
graphical models.
Possible models
Object model;
Sequence model;
State transition model;
Structural model;
Data-flow model.
9
Programming & Debugging
Translating a design into a program and
removing errors from that program.
Programming is a personal activity - there is
no generic programming process.
Programmers carry out some program testing
to discover faults in the program and remove
these faults in the debugging process.
10
Debugging Process
11
Software Validation
Verification and validation (V & V) is intended
to show that a system conforms to its
specification and meets the requirements of
the system customer.
Involves checking and review processes and
system testing.
System testing involves
executing the system with test cases that are
derived from the specification of the real data to
be processed by the system.
12
Software Testing
13
Software Testing Stages
Component or unit testing
Individual components are tested independently;
Components may be functions or objects or
coherent groupings of these entities.
System testing
Testing of the system as a whole. Testing of
emergent properties is particularly important.
Acceptance testing
Testing with customer data to check that the
system meets the customer’s needs.
14
Testing Phases
15
Rational Unified Process
(RUP)
A modern process model derived from the
work on the UML and associated process.
Normally described from 3 perspectives
A dynamic perspective that shows phases over
time;
A static perspective that shows process activities;
A practive perspective that suggests good
practice.
16
RUP Phase Model
Phase iteration
17
RUP Phases
Inception
Establish the business case for the system.
Elaboration
Develop an understanding of the problem domain
and the system architecture.
Construction
System design, programming and testing.
Transition
Deploy the system in its operating environment.
18
Computer-aided Software
Engineering
Computer-aided software engineering (CASE) is
software to support software development and
evolution processes.
Activity automation
Graphical editors for system model development;
Data dictionary to manage design entities;
Graphical UI builder for user interface construction;
Debuggers to support program fault finding;
Automated translators to generate new versions of a
program.
19
Key Points
Requirements engineering is the process of
developing a software specification.
Design and implementation processes transform the
specification to an executable program.
Validation involves checking that the system meets to
its specification and user needs.
Evolution is concerned with modifying the system after
it is in use.
The Rational Unified Process is a generic process
model that separates activities from phases.
CASE technology supports software process activities.
20