COMP3211 Software Engineering Course Guide
COMP3211 Software Engineering Course Guide
Introduction
Welcome to this class!
Phone: 27667266
Email: csqwang@[Link]
Need your student ID and full name, subject title:
comp3211
Logistics
Learn@PolyU “Discussions” -> “COMP3211
2019/20 Semester II Forum”
Logistics
Course lecture notes and other materials: Learn@PolyU
Evaluation
Continuous Assessment
"The major cause of the software crisis is that the machines have
become several orders of magnitude more powerful! To put it
quite bluntly: as long as there were no machines, programming
was no problem at all; when we had a few weak computers,
programming became a mild problem, and now we have gigantic
computers, programming has become an equally gigantic
problem." – Edsger W. Dijkstra, 1972 ACM Turing Award Lecture.
Software Process: key to organize various aspects of
the software engineering discipline.
Software Process: a set of organized activities that leads to a
software product.
Fundamental activities common to all software processes:
The three models are NOT mutually exclusive, but are often
used together for large system development
System and
software design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.1.1 Waterfall Specification
Activity
Requirement
definition Design & Impl. Activity
VV &
& VV acitivity
Activity
System and
software design
Implementation
and unit testing Evolution
Activity
Integration and
system testing
Operation and
maintenance
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.1.1 Waterfall model stages
Requirements analysis and definition: establish goals, services,
and constraints.
Drawbacks
1.1.1 Waterfall: advantages/drawbacks
Advantages
Drawbacks
Initial version
Initial
Specification
Specifica tion version
Outline
Outline Intermedia te
Intermediate
description Development
Development versions
description versions
Final Final
version
Valida tion
Validation version
Initial version
Initial
Specification
Specifica tion v0
version
Outline
Outline Intermedia te
Intermediate
description Development
Development versions
description versions
Final Final
version
Valida tion
Validation version
Initial version
Initial
Specification
Specifica tion v1
version
Outline
Outline Intermedia te
Intermediate
Development
Development v0
versions
description
description versions
Final Final
version
Valida tion
Validation version
Initial version
Initial
Specification
Specifica tion v2
version
Outline
Outline Intermedia te
Intermediate
description Development
Development v1
versions
description versions
Final Final
version
Valida tion
Validation v0version
Initial version
Initial
Specification
Specifica tion v3
version
Outline
Outline Intermedia te
Intermediate
description Development
Development v2
versions
description versions
Final Final
version
Valida tion
Validation v1version
Initial version
Initial
Specification
Specifica tion v4
version
Outline
Outline Intermedia te
Intermediate
description Development
Development v3
versions
description versions
Final Final
version
Valida tion
Validation v2version
Initial version
Initial
Specification
Specifica tion v5
version
Outline
Outline Intermedia te
Intermediate
description Development
Development v4
versions
description versions
Final Final
version
Valida tion
Validation v3version
Initial version
Initial
Specification
Specifica tion version
Outline
Outline Intermedia te
Intermediate
description Development
Development v5
versions
description versions
Final Final
version
Valida tion
Validation v4version
Initial version
Initial
Specification
Specifica tion version
Outline
Outline Intermedia te
Intermediate
description Development
Development versions
description versions
Final Final
version
Valida tion
Validation v5version
Throw-away prototyping
Objective: to better understand the customer’s requirements.
Start with poorly understood requirements to clarify what is
really needed.
1.1.2 Evolutionary development: merits
1.1.2 Evolutionary development: merits
More effective than waterfall in meeting the immediate needs
of customers.
Development System
& integration validation
Intermediate stages in a
reuse-oriented process
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.1.3 CBSE: advantages and disadvantages
1.1.3 CBSE: advantages and disadvantages
Advantages
Disadvantages
May lead to a system that does not meet the real needs of
users.
Some system evolution control is lost if the new version of
reusable components are not under control.
Software Process: key to organize various aspects of
the software engineering discipline.
How these activities are carried out depends on the software type,
people, and organization structures.
Waterfall model: sequential organization
Evolutionary: interleaved
1.2.1 Activity 1: Software specification/requirement
engineering
Establishing what services are required; identifying constraints on
the system’s operation and development.
Requirements
Feasibility
elicitation and
stud y
analysis
Requirements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirement
document
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.2.1 Four stages of requirement engineering
Da ta
Architectur al Abstract Interface Component Algorithm
structur e
design specifica tion design design design
design
Da ta
System Software Interface Component Algorithm
structur e
architectur e specifica tion specifica tion specifica tion specifica tion
specifica tion
Design pr oducts
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.2.2 Another design & implementation method:
structured methods
What is programming?
Translating a design into a program.
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.2.3 Activity 3: Software validation and verification
How to V & V:
Checking and review processes
Testing, mathmatical/mechanical proving
Testing: execute the system with test cases that are derived from
the specification.
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.2.3 Testing stages
Acceptance testing
Testing with customer data to check that the system meets
the customers’ needs.
1.2.3 Testing phases in software process
Existing New
systems system
Change is inevitable
Change is inevitable
Business changes lead to new and changed system requirements
New technologies open up new possibilities for improving
implementations
Changing platforms require application changes
Change tolerance
Process designs to accommodate changes at low cost
Normally involves some form of incremental
development/delivery. Proposed changes may be implemented
in increments that have not yet been developed. If this is
impossible, then only a single increment (a small part of the
system) may have to be altered to incorportate the change.
1.3.1 More about prototyping
A prototype is an initial version of a system used to demonstrate
concepts and try out design options.
Improved maintainability
Diagrams quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.3.1 More about prototyping: Development
Diagram quoted from Ian Sommerville, Software Engineering (9th Ed.), Pearson, 2011.
1.4 Integration based classification of CASE tools
Tools: Support individual process tasks such as design
consistency checking, text editing, etc.