Lecture 1 Summary
Lecture 1 Summary
@ IIT for
RGU BSc AI & DS
RGU MSc Big Data Analytics
Wesley College
Rotary Club – Colombo Mid Town
2
The Panel
Lecturers
Cassim Farook
Ovini Seneviratne – Visiting Lecturer
Tutors
1. Cassim Farook
2. Lakshan Costa
3. Ovini Seneviratne
4. Dilani Lunugalage
5. Suvetha Suvendran
6. Adshayan Balachandran – Visiting Lecturer
3
Module Schedule
Week 1 Introduction to the Module. Software Engineering Life Cycle. Introduction to Software
25th Sep Design and Software developmental methodologies;
This module would be useful during placement “in parts”, but you will
apply it fully if you “decide” to do the Final Year project (honours degree)
5
What is a Process … ?
6
Software Processes
7
The Software Process
8
Generic (Software) Process Models
9
1. Waterfall Model
Implementation
and unit testing
Operation and
maintenance
10
Classical Waterfall - restrictions
11
2. Evolutionary development
Exploratory development
-Objective is to work with Throw-away prototyping
Objective is to understand the system requirements.
customers and to evolve a We start with some rough idea of the requirements
final system from an initial -detailed requirements are not possible;
outline specification. Concurr ent -powerful development tools
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
12
Evolutionary development -restrictions
Problems
• Lack of process visibility
• Systems are often poorly structured
• Special skills (e.g. in languages for rapid prototyping)
may be required
Applicability
• For small or medium-size interactive systems
• For parts of large systems (e.g. the user interface)
• For short-lifetime systems
13
3. Formal systems development
Applicability
Critical systems especially those where a safety or security
case must be made before the system is put into operation
14
Formal transformations
Formal R1 Executable
R2 R3
specification program
P1 P2 P3 P4
proofs
Results/Revisions
15
Formal transformations
What do we prove:
• Program Terminates (if needed)
• No Deadlock
• Something Good will happen
• Something Bad will never happen
• Prove that the desired invariants of the program are
preserved
16
4. Reuse-oriented development
Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-
the-shelf) systems
Process stages
• Component analysis
• Requirements modification
• System design with reuse
• Development and integration
Development System
and integration validation
17
Iterative Process Models (aka Process Iteration)
1. Incremental development
2. Spiral development
18
Process Iteration - Incremental development
Start of
development - the requirements are frozen
Develop system Valida te Integrate Valida te
increment increment increment system
Final
system
System incomplete
Customer value
• can be delivered with each increment
• system functionality is available earlier
Early increments act as a prototype to help elicit requirements for later increments
20
Process is represented as a spiral.
Each loop in the spiral represents a phase
Process Iteration - Spiral development model No fixed phases - depending on what is required.
Risks are explicitly assessed and resolved
22
I. Software specification - The requirements engineering process
Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
23
II. Software Design and Implementation
Requirements
specification Design process
Design acti
vities
Architectur
al Interface Component Data Algorithm
Abstract
design design design structur
e design
specification
design
Software Data
System Interface Component Algorithm
specification structure
e
architectur specifica
tion specification specifica
tion
specification
Design pr
oducts
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
25
II. Software Design and Implementation - The Debugging Process
Translating a design into a program and removing errors from that program
26
III Software validation
27
III Software validation - The Testing process
Unit
testing
Module
testing
Sub-system
testing
System
testing
Acceptance
testing
28
III Software validation - Testing stages
Unit testing
• Individual components are tested
Module testing
• Related collections of dependent components are tested
Sub-system testing
• Modules are integrated into sub-systems and tested. The focus
here should be on interface testing
System testing
• Testing of the system as a whole. Testing of emergent properties
Acceptance testing
• Testing with customer data to check that it is acceptable
29
III Software validation - Testing phases
30
IV Software evolution
31
IV Software evolution System evolution
Existing New
systems system
32
Automated process support (CASE)
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
33
CASE tool Example: Rational Rose (Diagram to Code Generation)
34
CASE classification
Functional perspective
• Tools are classified according to their specific function
Process perspective
• Tools are classified according to process activities that are supported
Integration perspective
• Tools are classified according to their organisation into integrated units
35
CASE classification - Functional perspective
Reengineering tools
Testing tools
Debugging tools
Language-processing
tools
Prototyping tools
Configuration
management tools
Documentation tools
Editing tools
Planning tools
Tools - Support individual process tasks such as design consistency checking, text editing, etc.
Workbenches - Support a process phase such as specification or design, Normally include a number of integrated tools
Environments - Support all or a substantial part of an entire software process. Include several IDEs, Workbenches
CASE
technology
Analysis and
Programming Testing
design
38
Key points
39
Key points
40