Documente Academic
Documente Profesional
Documente Cultură
COURSE
GUIDE
CIT 831
SOFTWARE ENGINEERING METHODOLOGIES
ii
CIT 831 COURSE GUIDE
Abuja Office
No. 5 Dar es Salaam Street
Off Aminu Kano Crescent
Wuse II, Abuja
Nigeria
e-mail: centralinfo@nou.edu.ng
URL: www.nou.edu.ng
Published by
National Open University of Nigeria
Printed 2008
ISBN: 978-058-977-5
iii
CIT 831 COURSE GUIDE
CONTENTS PAGE
Introduction……………………………………………….… 1
What this You will Learn in this Course…………………… 1
Course Aims………………………………………………… 1
Course Objectives…………………………………………… 2
Working through this Course…………………………….… 2
Course Materials……………………………………….……. 2
Online Materials……………………………………………. 2
Equipment…………………………………………………… 2
Study Units …………………………………………………. 4
Assessment…………………………………………………. 5
Course Overview……………………………………………. 5
How to Get the Most from this Course……………………… 5
Facilitators/Tutors and Tutorials……………………….….. 6
Summary…………………………………………………… 7
iv
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Introduction
The overall aims of this course are to introduce you to various software
life-cycle models. Software design, testing, reuse and prototyping are
equally discussed.
There are six modules in this course, each module consists of 5 units of
topics that you are expected to complete in 3 hours. The six modules and
their units are listed below.
Course Aims
The overall aims and objectives of this course will help you to:
i
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Course Objectives
Course Materials
Online Materials
Feel free to refer to the web sites provided for all the online reference
materials required in this course.
Equipment
In order to get the most from this course, it is essential that you make
use of a computer system which has internet access.
iv
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Processor
Operating System
Monitor*
19-inch
1024 X 768 resolution
16-bit high color
*Non Standard resolutions (for example, some laptops) are not
supported.
Hardware
If your system does not meet the recommended specifications, you may
experience considerably slower processing when working in the
application.
Systems that exceed the recommended specifications will provide better
handling of database files and faster processing time, thereby
significantly increasing your
productivity.
iii
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Study Unit
iv
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
From the preceding, the content of the course can be divided into three
major blocks:
Assessment
The course, Software Engineering Methodologies entails attending a
three-hour final examination which contributes 50% to your final
grading. The final examination covers materials from all parts of the
course with a style similar to the Tutor-marked assignments.
The examination aims at testing your ability to apply the knowledge you
have learned throughout the course, rather than your ability to memorise
the materials. In preparing for the examination, it is essential that you
receive the activities and Tutor-marked assignments you have completed
in each unit. The other 50% will account for all the TMAs at the end of
each unit.
Course Overview
This section proposes the number of weeks that you are expected to
spend on the three modules comprising of 30 units and the assignments
that follow each of the units.
v
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Your tutor will mark and comment on your assignments, keep a close
watch on your progress and on any difficulties you might encounter and
provide assistance to you during the course. You must mail your TMAs
to your tutor well before the due date (at least two working days are
required). They will be marked by your tutor and returned to you as
soon as possible.
Do not hesitate to contact your tutor by phone, e-mail if you need help.
The following might be circumstances in which you would find help
necessary. You can also contact your tutor if:
i. you do not understand any part of the study units or the assigned
readings
ii. you have difficulty with the TMAs
iii. you have a question or problem with your tutor’s comments on
an assignment or with the grading of an assignment.
You should try your best to attend tutorials, since it is the only
opportunity to have an interaction with your tutor and to ask questions
which are answered instantly. You can raise any problem encountered in
the course of your study. To gain maximum benefit from the course
tutorials, you are advised to prepare a list of questions before attending
the tutorial. You will learn a lot from participating in discussions
actively.
vi
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Summary
We hope that you will find the course enlightening and that you will
find it both interesting and useful. In the longer term, we hope you will
get acquainted with the National Open University of Nigeria and we
wish you every success in your future.
vii
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
MAIN
COURSE
viii
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Abuja Office
No. 5 Dar es Salaam Street
Off Aminu Kano Crescent
Wuse II, Abuja
Nigeria
e-mail: centralinfo@nou.edu.ng
URL: www.nou.edu.ng
Published by
National Open University of Nigeria
Printed 2008
ISBN: 978-058-977-5
ix
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS PAGE
Module 1 ……………………………………………………… 1
Unit 1 Software Engineering Methodology
– Basic Notions.......................................................... 1
Unit 2 Software Process, Professional and Ethical Issues…. 6
Unit 3 Software Process – Model………………………….. 11
Unit 4 Evolutionary Incremental Development……………. 15
Unit 5 Spiral Development and Process Activities………… 19
Module 2 ……………………………………………………….. 24
Unit 1 Computer-Aided Software Engineering (CASE)…… 24
Unit 2 Software Requirements……………………………… 30
Unit 3 Functional and Non-Functional Requirements……… 35
Unit 4 Requirements………………………………………… 40
Unit 5 Domain Requirements………………………………. 45
Module 3 ………………………………………………………… 48
Unit 1 Concepts of Requirements Engineering…………….. 48
Unit 2 Viewpoints………………………………………….. 52
Unit 3 Interviewing………………………………………… 56
Unit 4 Requirements Validation…………………………… 60
Unit 5 System Modelling………………………………….. 64
Module 4 ………………………………………………………. 69
Unit 1 Formal Methods……………………………………. 69
Unit 2 Specification……………………………………….. 73
Unit 3 Introduction to Architectural Design………………. 75
Unit 4 Models……………………………………………… 81
Unit 5 Sub-Systems and Modules…………………………. 85
Module 5 ………………………………………………………. 88
Unit 1 Software Life-Cycle Models………………………. 88
Unit 2 Requirements Engineering………………………… 97
Unit 3 Formal Specification………………………………. 101
Unit 4 System Models…………………………………….. 105
Unit 5 Software Design…………………………………… 109
x
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
xi
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Engineering Methodology
3.2 Software Costs
3.3 Software
3.4 Software Engineering
2.0 OBJECTIVES
1
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
3.3 Software
2
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
5.0 SUMMARY
3
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil,F., Pomberger,G.,
Pree,W., Stal,M. and Szyperski, C., (1998). “What Characterizes
a (Software) component?” Software – Concepts & Tools, vol. 19,
pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad,P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff,S., Dollin, C., Gilchrist, H., Hayes,F.,
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs, NJ.
4
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
5
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Process
3.2 What is a Software Process Model?
3.3 Software Engineering Methods
3.4 Professional and Ethical Responsibility
3.5 Issues of Professional Responsibility
3.6 What are CASE Tools
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
In this unit, you will learn about software process and software process
model. You will also learn about the professional and ethical
responsibilities as well as CASE tools.
2.0 OBJECTIVES
6
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Waterfall
Evolutionary development
Formal transformation
Integration from reusable components
7
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about the software process and software
process model. You have also been able to understand the concept of
software engineering methods. Finally, you have become aware of the
professional and ethical responsibilities of a Software Engineer.
5.0 SUMMARY
What you have learned in this unit is focused on process and process
models as well as professional and ethical responsibilities of a software
engineer.
8
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil,F., Pomberger,G.,
Pree, W., Stal,M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts &
Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad,P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff,S., Dollin, C., Gilchrist, H., Hayes,F.,
and Jeremaes, P., (1994). Oriented Development: The Fusion
Method, Prentice-Hall: Inc.
9
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
10
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Process vs. Software Process Model
3.2 The Waterfall
3.3 The Waterfall Model Phases
3.4 The Waterfall Model Problems
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
What you will learn in this unit borders on software process model,
basically the waterfall model.
2.0 OBJECTIVES
Specification
Design
Validation
Evolution.
11
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Implementation
Operation and
12
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about waterfall model. You have also been
able to identify the phases and problems of a waterfall model.
5.0 SUMMARY
What you have learned in this unit concerns the waterfall models, their
phases and drawbacks. In the next unit you shall learn about another
software process model.
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil,F., Pomberger,G.,
Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
13
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
14
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Objective of Evolutionary Development
3.2 Problems of Evolutionary Development
3.3 Applicability of Evolutionary Development
3.4 Incremental Development
3.5 Advantages of Incremental Development
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
15
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Concurrent
activities
Intermediate
version
Validation
16
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
5.0 SUMMARY
17
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil,F., Pomberger,G.,
Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad,P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
18
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Spiral Development
3.2 Process Activities
3.3 Software Specification
3.4 Requirement Engineering Process
3.5 Software Design and Implementation
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
In this unit the student you will gain knowledge of spiral development as
well as process activities. You will also consider software specification,
design and implementation.
2.0 OBJECTIVES
19
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Determined objectives,
alternatives and Evaluate alternatives,
constraints identify, resolve risks
Risk
analysis
Risk
analysis
Risk Operational
analysis
Prototype 3
Risk Prototype 2
REVIEW analysis Proto-
type 1
a. Software specification
b. Software design and implementation
c. Software validation
d. Software evolution.
This is the process of establishing what services are required and the
constraints on the system’s operation and development.
i. Feasibility study
ii. Requirements elicitation and analysis
iii. Requirements specification
iv. Requirements validation.
20
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
R e q u ir e m e n ts
Fe a sib ility
e lic ita tio n a n d a
stu d y
n a ly sis
R e q u ir e m e n ts
sp e c ific a tio n
Fe a sib ility R e q u ir e m e n ts
re p o r t v a lid a tio n
S y ste m
m o d e ls
U se r a n d sy ste m
re q u ire m e n ts
R e q u ir e m e n ts
docum ent
4.0 CONCLUSION
In this unit you have learned about the spiral development. Process
activities were equally considered. You should also have learned about
software specification, design and implementation.
5.0 SUMMARY
What you have learned in this unit concerns spiral development and
process activities. The units that follow shall build upon issues discussed
in this unit.
21
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil,F., Pomberger,G.,
Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad,P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
22
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
23
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Computer-Aided Software Engineering
3.2 CASE Technology
3.3 CASE Classification
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
24
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
5.0 SUMMARY
25
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil,F., Pomberger, G.,
Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
26
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
27
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Requirements Engineering
3.2 What is a Requirement?
3.3 Requirements Imprecision
3.4 Requirements Completeness and Consistency
3.5 Types of Requirements
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
28
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
29
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1. User Requirements
2. System Requirements
3. Functional Requirements
4. Non-Functional Requirements
5. Domain Requirements
4.0 CONCLUSION
In this unit you have learned about requirements engineering. You have
also learned about requirements imprecision. Finally, you have been
able to learn about types of requirements.
5.0 SUMMARY
30
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
31
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754
32
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Functional Requirements
3.2 Examples of Functional Requirements
3.3 Non-Functional Requirements
3.4 Non-Functional Classifications
3.5 Non-Functional Requirement Types
3.6 Requirements Interaction
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
33
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1. The user shall be able to search either all of the initial set of
databases or select a subset from it.
2. The system shall provide appropriate viewers for the user to read
documents in the document store.
3. Every order shall be allocated a unique identifier (ORDER_ID)
which the user shall be able to copy to the account’s permanent
storage area.
1. Product Requirements
2. Organisational Requirements
3. External Requirements
34
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
N o n -fu n ctio n al
req u ir em en ts
P ro d u ct O rg an isatio n al E x tern al
req u ir em en ts req u ir em en ts req u ir em en ts
Spacecraft System
However, using low power chips may mean that more chips have to be
used. Which is the most critical requirement?
4.0 CONCLUSION
In this unit you have learned about functional requirements. You have
also learned about non-functional requirements. Finally, you have been
able to learn about non-functional requirement types.
35
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
5.0 SUMMARY
What you have learned in this unit is focused on functional and non-
functional requirements. Functional requirements set out services the
system should provide.
Non-functional requirements constrain the system being developed or
the development process.
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
36
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
37
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
UNIT 4 REQUIREMENTS
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Guidelines for Writing Requirements
3.2 System Requirements
3.3 Requirements and Design
3.4 The Requirements Document
3.5 Users of a Requirements Document
3.6 User Requirements
3.7 IEEE Requirements Standards
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
This unit describes requirements. It states the guidelines for writing
requirements. You will learn about requirements document and the
IEEE requirements standards.
2.0 OBJECTIVES
By the end of this unit, you should be able to:
list guidelines for writing requirements
explain system requirements
describe the requirement document
list user requirements
note the IEEE requirement standard.
38
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
39
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
S p e c ify th e re q u ire m e n ts a n d
S y ste m c u re a d th e m to c h e c k th a t th e y
sto m e rs m e e t th e ir n e e d s. T h e y
sp e c ify c h a n g e s to th e
re q u ire m e n ts
U se th e re q u ire m e n ts d
o c u m e n t to p la n a b id fo r
M a n a g e rs
th e sy ste m a n d to p la n th e
sy ste m d e v e lo p m e n t p ro c e ss
U se th e re q u ire m e n ts to u n d
S y ste m e n
e rsta n d w h a t sy ste m is to b e d
g in e e rs
e v e lo p e d
S y ste m te st U se th e re q u ire m e n ts to d e v
e n g in e e rs e lo p v a lid a tio n te sts fo r th e
sy ste m
S y ste m U se th e re q u ire m e n ts to h e lp
m a in te n a n c e u n d e rsta n d th e sy ste m a n d th
e n g in e e rs e re la tio n sh ip s b e tw e e n its
p a r ts
Introduction. General
description Specific
requirements
Appendices
Index.
4.0 CONCLUSION
40
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Requirements set out what the system should do and define constraints
on its operation and implementation. User requirements are high-level
statements of what the system should do. User requirements should be
written using natural language, tables and diagrams. System
requirements are intended to communicate the functions that the system
should provide.
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
41
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
42
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Domain Requirements
3.2 Library System Domain Requirements
3.3 Domain Requirements Problems
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
This unit describes domain requirements. Problems of domain
requirements are equally considered.
2.0 OBJECTIVES
i. Understandability
ii. Implicitness
Domain specialists understand the area so well that they do not think of
making the domain requirements explicit.
4.0 CONCLUSION
In this unit you have learned domain requirements. You have also been
able to learn about domain requirement problems.
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
44
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
45
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
MODULE 3 REQUIREMENTS ENGINEERING
PROCESSES
Unit 1 Concepts of Requirements Engineering
Unit 2 Viewpoints
Unit 3 Interviewing
Unit 4 Requirements Validation
Unit 5 System Modelling
46
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Requirements Engineering Processes
3.2 Feasibility Studies
3.3 Feasibility Study Implementation
3.4 Elicitation and Analysis
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
By the end of this unit, you should be able to:
describe requirements engineering processes
explain feasibility studies and its implementation
explain elicitation and analysis.
A. Requirements elicitation
47
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
B. Requirements analysis
C. Requirements validation
D. Requirements management
R e q u ir e m e n ts
F e a sib ility
e lic ita tio n a n d
stu d y
a n a ly sis
R e q u ir e m e n ts
sp e c ific a tio n
Fe a sib ility R e q u ir e m e n ts
re p o r t v a lid a tio n
S y ste m
m o d e ls
U se r a n d sy ste m
re q u ire m e n ts
R e q u ir e m e n ts
docum ent
Define a class.
48
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
What is an inheritance?
4.0 CONCLUSION
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
49
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
50
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
UNIT 2 VIEWPOINTS
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Viewpoints
3.2 Types of Viewpoints
3.3 Viewpoint Identification
3.4 LIBSYS Viewpoint Hierarchy
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
In this unit, you will learn about viewpoints, their identification and
types.
2.0 OBJECTIVES
3.1 Viewpoints
i. Interactor Viewpoints
51
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
All VPs
52
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
In this unit you have learned about viewpoints, types of viewpoints and
its identification.
5.0 SUMMARY
What you have learned in this unit is based on viewpoints and types of
viewpoints.
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
53
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
54
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
UNIT 3 INTERVIEWING
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Interviewing
3.2 Types of Interview
3.3 Interviews in Practice
3.4 Effective Interviewers
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
What you will learn in this unit concerns interviewing. The types of
interview and attributes of an effective interviewer will equally be
discussed.
2.0 OBJECTIVES
3.1 Interviewing
In formal or informal interviewing, the requirements engineering team
puts questions to stakeholders about the system that they use and the
system to be developed.
55
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
List the types of interviews.
56
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about interviewing. You have also been
able to identify the types of interview and the attributes of an effective
interviewer.
5.0 SUMMARY
What you have learned in this unit concerns interviewing and the
common types of interviews.
57
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
58
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
59
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Requirements Validation
3.2 Requirements Checking
3.3 Requirements Validation Techniques
3.4 Requirements Reviews
3.5 Requirements Management
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
Now that you understand what requirements are, it's time to learn about
requirements validation. You will equally learn about requirements
validation techniques and requirements management.
2.0 OBJECTIVES
Fixing a requirements error after delivery may cost up to 100 times the
cost of fixing an implementation error.
60
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
61
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about the requirements validation. You
have also been able to identify the requirements validation techniques.
You should also have learned about requirements reviews and
management.
5.0 SUMMARY
What you have learned in this unit concerns validation. In the next unit
you shall learn about system models.
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
62
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
63
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
UNIT 5 SYSTEM MODELLING
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Relevance of System Modelling
3.2 Model Types
3.3 Context Models
3.4 Process Models
3.5 Behavioural Models
3.6 Data Processing Models
3.7 Application of Data Flow Diagrams
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
In this unit the student will gain knowledge of the relevance of system
modelling. The unit describes the context, process, behavioural and data
processing models.
2.0 OBJECTIVES
By the end of this unit, you should be able to:
i. Process models show the overall process and the processes that
are supported by the system.
ii. Data flow models may be used to show the processes and the
flow of information from one process to another.
Data flow diagrams (DFDs) may be used to model the system’s data
processing. These show the processing steps as data flows through a
system. Data flow diagrams are an intrinsic part of many analysis
methods. DFDs have simple and intuitive notation that customers can
understand. They show end-to-end processing of data.
65
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
C hecked and
C o m p le te d S ig n e d S ig n e d
S e n d to sig n e d o r d e r
o rd e r fo r m o rd e r fo r m o rd e r fo rm su p p lie r + order
O rd e r
n o tific a tio n
d e ta ils + C o m p le te Va lid a te R e c o rd
b la n k o r d e r fo rm o rd e r order
o r d e r fo rm A d ju st
O rd e r a va ila b le
S ig n e d
d e ta ils budget
o rd e r fo rm
O rd e r
am ount
+ account
d e ta ils
O rd e rs B udget
file file
4.0 CONCLUSION
5.0 SUMMARY
66
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
67
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
68
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1.0 INTRODUCTION
In this unit, you will find information about formal methods. This unit
also covers acceptance and use of formal methods.
2.0 OBJECTIVES
By the end of this unit, you should be able to:
69
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about formal methods and their use.
5.0 SUMMARY
What you have learned borders on formal methods and their use.
70
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
71
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
UNIT 2 SPECIFICATION
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
72
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1.0 INTRODUCTION
This unit covers creating and using objects. You will learn how to
instantiate an object, and, once instantiated, how to use the dot operator
to access the object's instance variables and methods.
2.0 OBJECTIVES
S y ste m A rc h ite c tu ra l
m o d e lllin g d e sig n
73
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Specification structuring
Specification naming
Operation selection
Informal operation specification
Syntax definition
Axiom definition.
3.5 Specification Operations
74
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Calvert, K. L. andDonahoo, M. J., (2002). TCP/IP Sockets in Java:
Practical Guide for Programmers, Morgan Kaufmann
Publishers, San Francisco: CA.
75
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
76
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
77
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Architectural Design
3.2 Software Architecture
1.0 INTRODUCTION
This unit describes the notion of architectural design. You will learn
about software architecture and the common architectural models. This
unit also covers architectural design decisions.
2.0 OBJECTIVES
78
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
The software architecture is the fundamental framework for structuring
the system. It is the output of the architectural design process
79
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about architectural design. You have also
learned about architectural models and design decisions.
5.0 SUMMARY
80
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
81
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
82
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
UNIT 4 MODELS
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Domain - Specific Models
3.2 Repository Models
3.3 Advantages of Repository Models
3.4 Disadvantages of Repository Models
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
This unit begins with a discussion of domain – specific models and
types. It also presents the repository models, stating the advantages and
disadvantages.
2.0 OBJECTIVES
By the end of this unit, you should be able to:
83
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Mention two types of domain-specific models
84
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about domain – specific models as well as
repository models.
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
85
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
86
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
87
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 What is a Sub-System?
3.2 What is a Module?
3.3 Modular Decomposition
3.4 Modular Decomposition Models
4.0 Conclusion
5.0 Summary
1.0 INTRODUCTION
This unit will focus primarily on sub-systems and modules. You will
also learn about modular decomposition.
2.0 OBJECTIVES
By the end of this unit, you should be able to describe:
a sub-system
a module
modular decomposition
modular decomposition models.
88
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
There are two modular decomposition models covered in this unit:
4.0 CONCLUSION
Specifically, you learned about sub – systems and modules. You also
learned about modular decomposition.
5.0 SUMMARY
What you have learned in this unit concerns sub-systems and modules.
What is a module?
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
90
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
91
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
92
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1.0 INTRODUCTION
This unit considers software life-cycle models. You will consider the
most commonly used models, their benefits and drawbacks.
2.0 OBJECTIVES
By the end of this unit, you should be able to:
The best life-cycle model for a given product may be different. The
factors which determine the appropriate model include the size of the
project, the complexity, the required development time, the degree of
risk, the degree of certainty as to what the customer wants, and the
degree to which the customer requirements may change.
The two most widely used life-cycle models are the waterfall model and
the prototyping model. In addition, the spiral model is now receiving
93
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
The following activities occur during the waterfall life cycle paradigm:
94
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
95
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
96
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
key personnel may resign before the product has been adequately
documented,
the manufacturer of hardware on which the product is critically
dependent may go bankrupt,
too little (or too much) time may be invested in testing,
technological breakthroughs may render the product obsolete,
a lower-priced, functionally equivalent product may come to market.
The idea of minimising risks via the use of prototypes and other means
is the underlying concept of the spiral model [8]. A simplistic way of
looking at the spiral model is as a series of waterfall models, each
preceded by a risk analysis. Before commencing each phase, an attempt
97
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
The spiral model is shown in the figure below. The radial dimension
represents cumulative cost to date, the angular dimension represents
progress through the spiral. Each cycle of the spiral corresponds to a
development phase.
The primary advantage is that the spiral model has a wide range of
options to accommodate the good features of other life-cycle models. It
becomes equivalent to another lifecycle model in appropriate situations.
Also the risk-avoidance approach keeps from having additional
difficulties.
98
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
The spiral model focuses its early attention on the option of reusing
existing software.
It prepares for life-cycle evolution, growth, and changes of the software
product. Major sources of this change are included in the product
objectives.
It incorporates software quality objectives into software product
development. Emphasis is placed on identifying all objectives and
constraints during each round.
The risk analysis and validation steps eliminate errors early on.
Maintenance is included as another cycle of the spiral; there is
essentially no distinction between maintenance and development. This
helps to avoid underestimation of resources needed for maintenance.
The process steps need to be further elaborated to make sure that the
software developers are consistent in their production. It is still fairly
new compared to other models, so it has not been used significantly and
therefore the problems associated with it haven't been widely tested and
solved.
4.0 CONCLUSION
In this unit you have learned about the software life-cycle models. You
have also been able to understand the factors that determine the
appropriate life-cycle model. You would have learned of the waterfall,
prototyping and spiral models
5.0 SUMMARY
99
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
100
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Requirements Engineering
3.2 The Requirements Documents
3.3 Requirements Document Structure
3.4 Writing Requirements
3.5 User Requirements
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
101
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
2.0 OBJECTIVES
Describe need for the system and how it fits with business objectives.
102
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
v. Glossary
vi. Index
4.0 CONCLUSON
In this unit you have learned about requirements engineering. You have
also learned about requirements documents and requirements documents
structure as well as user requirements.
5.0 SUMMARY
103
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Calvert, K. L. andDonahoo, M. J., (2002). TCP/IP Sockets in Java:
Practical Guide for Programmers, Morgan Kaufmann
Publishers, San Francisco: CA.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
104
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Formal Specification
3.2 Advantages of Formal Specification
3.3 Specification Development
3.4 Formal Specification Approaches
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
What you will learn in this unit borders on formal specification. The
advantages of formal specification as well as formal specification
approaches will equally be discussed.
105
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
2.0 OBJECTIVES
106
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
i. Algebraic Approach
4.0 CONCLUSION
In this unit you have learned about formal specification. You have also
been able to identify the advantages of formal specification as well as
the steps to be adopted in developing a specification.
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
107
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
108
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 What are System Models?
3.2 System Modelling
3.3 Structured Methods
3.4 The Unified Modelling Language
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
109
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
110
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Notation
Object classes are rectangles with the name at the top, attributes in the
middle section and operations in the bottom section
Relationships between object classes (known as associations) are
shown as lines linking objects
Inheritance is referred to as generalisation and is shown ‘upwards’
rather than ‘downwards’ in a hierarchy.
4.0 CONCLUSION
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
111
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
112
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Design
3.2 Stages of Design
3.3 Design Phases
3.4 Top-Down Design Technique
3.5 Design Strategies
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
This unit introduces you to software design. It explains the design stages
and phases and describes the top-down design technique.
2.0 OBJECTIVES
113
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
114
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about software design. You have also
gained insight of design phases as well as top-down design technique.
5.0 SUMMARY
What you have learned in this unit concerns software design and design
strategies.
115
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
116
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Verification and Validation
3.2 Verification and Validation Process
3.3 Software Inspection
3.4 Testing and Debugging
3.5 Testing Stages
4.0 Conclusion
5.0 Summary
117
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
1.0 INTRODUCTION
2.0 OBJECTIVES
Validation checks that the product design satisfies or fits the intended
usage (high-level checking) – i.e., you built the right product. This is
done through dynamic testing and other forms of review.
118
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
i. Unit testing
v. Acceptance testing
119
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
Verification and validation were considered in this unit. You have also
learned about testing and debugging.
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
120
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
121
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Inspections
3.2 Inspections and Testing
3.3 Inspection Pre-conditions
3.4 Inspection Checklists
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
122
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
123
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
In this unit you have learned about software inspection. You have also
been able to identify inspection pre-conditions and checklists.
5.0 SUMMARY
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
124
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
125
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Dependability
3.2 Fault Minimisation
3.3 Fault-Free Software Development
3.4 Reliable Software Process
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
2.0 OBJECTIVES
126
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
127
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about software dependability. You have
also learned about fault minimisation and fault-free software
development.
5.0 SUMMARY
What you have learned in this unit borders on software reliability and
fault-free software development.
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
128
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
129
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Re-use
3.2 Benefits of Re-use
3.3 Requirements for Re-use
3.4 Software Development with Re-use
3.5 Software Development for Re-use
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
This unit considers the concept of software re-use. You will equally
learn about the benefits and the requirements for re-use.
2.0 OBJECTIVES
130
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
i. Increased reliability
v. Accelerated development
131
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
In this unit you have learned about software re-use. You have also
learned about the benefits of re-use and the requirements for re-use.
5.0 SUMMARY
What you have learned in this unit borders on software re-use, its
benefits and requirements for re-use.
132
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
133
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
CONTENTS
1.0 Introduction
2.0 Objectives
3.0 Main Content
3.1 Software Prototyping
3.2 Prototyping Steps
3.3 Types of Prototyping
3.3.1 Throwaway Prototyping
3.3.2 Evolutionary Prototyping
3.4 Advantages of Prototyping
3.5 Disadvantages of Prototyping
4.0 Conclusion
5.0 Summary
6.0 Tutor-Marked Assignment
7.0 References/Further Readings
1.0 INTRODUCTION
134
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
2.0 OBJECTIVES
3. Review
Using the feedback both the specifications and the prototype can be
improved. Negotiation about what is within the scope of the
contract/product may be necessary.
135
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Software prototyping has many variants. However, all the methods are
in some way based on two major types of prototyping: Throwaway
Prototyping and Evolutionary Prototyping.
The most obvious reason for using Throwaway Prototyping is that it can
be done quickly. If the users can get quick feedback on their
requirements, they may be able to refine them early in the development
of the software. Another strength of Throwaway Prototyping is its
ability to construct interfaces that the users can test. The user interface is
what the user sees as the system, and by seeing it in front of them, it is
much easier to grasp how the system will work.
136
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
137
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
4.0 CONCLUSION
5.0 SUMMARY
138
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
Broy, M., Deimel, A., Henn, J., Koskimies, K., Plášil, F., Pomberger,
G., Pree, W., Stal, M. and Szyperski, C., (1998). “What
Characterizes a (Software) Component?” Software – Concepts
& Tools, vol. 19, pp. 49-56.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M.,
(1996). Pattern-Oriented Software Architecture: A System of
Patterns, John Wiley & Sons, Inc.: New York.
Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F.
and Jeremaes, P., (1994). Object-Oriented Development: The
Fusion Method, Prentice-Hall, Inc., Englewood Cliffs: NJ.
Online Resources
http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
http://mail.svce.ac.in/~uvarajan/cn.html
139
CIT 831 SOFTWARE ENGINEERING METHODOLOGIES
http://www.freetechbooks.com/software-engineering-methodology-the-
watersluice-t573.html#754.
140