Академический Документы
Профессиональный Документы
Культура Документы
2004 by SEC
2
2004 by SEC
3
2004 by SEC
Prerequisites
Programming Skills
4
2004 by SEC
Contents
Chapter 1. An Overview of Software Engineering
Chapter 2. Software Processes
Chapter 3. Requirements Engineering
Chapter 4. Software Design
Chapter 5. Object-Oriented Software Development
Chapter 6. Software Testing
Chapter 7. Software Project Management and Planning
Chapter 8. Software Quality Assurance
Chapter 9. Software Maintenance
Chapter 10. Formal Methods and Software Engineering
Chapter 11. Advanced Topics in Software Engineering
5
2004 by SEC
References
6
2004 by SEC
References (contd)
[Beizer 1990] B. Beizer, Software Testing Techniques, 2nd Edition, Van NostrandReinhold, 1990.
[Gao 2003] Jerry Gao, Jacob Tsao, and Ye Wu, Testing and Quality Assurance for
Component-Based Software, Artech House, 2003.
7
2004 by SEC
Chapter 1
An Overview of Software Engineering
2004 by SEC
Chapter 1
An Overview of Software Engineering
1.1 Software Crisis
1.2 Software Myths
1.3 Software Engineering Paradigm
1.4 The Evolution of Software Engineering
1.5 Software Engineering in Taiwan
9
2004 by SEC
Key issues:
Software firms are always pressured to perform under unrealistic
deadlines.
The clients ask for new features, just before the end of the project, and
unclear requirements.
Software itself is awfully complex.
Uncertainties throughout the development project.
10
2004 by SEC
Real Cases
Other cases:
Explosion of Ariane 5 prototype in 1996
Explosion of Boeings Delta III rocket.
11
2004 by SEC
Problems of Software
General issues
HW vs. SW
Productivity: build new programs from scratch
Maintenance: maintain existing programs
12
2004 by SEC
F. Brooks Essence
13
2004 by SEC
F. Brooks Accidents
14
2004 by SEC
Characteristics of Software
Software
logical system element
developed/engineered
Not ware out but deteriorate
- no spare parts
Usually custom-built
Hardware
physical system element
manufactured
ware out
-yes, with spare parts
assembled from existing
component
15
2004 by SEC
Management Myths
We already have a book thats full of standards and procedures for
building software. Wont that provide my people with everything they
need to know?
My people do have state-of-the-art software development tools; after
all, we buy them the newest computers
If we get behind schedule, we can add more programmers and catch up
16
2004 by SEC
Customer Myths
A general statement of objectives is sufficient to begin writing
programs we can fill in the details later
Project requirements continually change, but change can be easily
accommodated because software is flexible
17
2004 by SEC
Practitioners Myths
Once we write the program and get it to work, our job is done
Until I get the program running I really have no way of assessing its
quality
The only deliverable for a successful project is the working program
18
2004 by SEC
Software Engineering
Real World
Software World
19
2004 by SEC
20
2004 by SEC
Software Process
Prototyping
Spiral model
Object-oriented model
4 GL model
21
2004 by SEC
Function
Data Flow
Diagram
Data
Entity-Relation
Diagram
Behavior
State Transition
Diagram
22
2004 by SEC
Object
Class
Diagram
Function
Data Flow
Diagram
Behavior
State Chart
23
2004 by SEC
Software Industry
Software Product
Enterprise Solution
24
2004 by SEC
25
2004 by SEC
1964 Martin Goetz developed Flowchart Software -Autoflow for RCA, but rejected.
26
2004 by SEC
Dietmar Hopp.
IBM Germany
27
2004 by SEC
28
2004 by SEC
29
2004 by SEC
IT Market
Hardware
products
Hardware
Software Products Processing Services
maintenance & Services
and Internet Services
Embedded
Software
Professional
Service
Enterprise
Solution
Software
Products
Packaged
Mass-Market
Software
30
2004 by SEC
Packaged Mars-Market
Software
IBM
Microsoft
Oracle
IBM
Computer Associates Computer Associates
SAP
Adobe
HP
Novell
Fujitsu
Symantec
Hitachi
Intuit
Parametric TechnologyAutodesk
People Soft
Apple
Siemens
The Learning Company
31
2004 by SEC
Exercises
32
2004 by SEC
Chapter 2
Software Process Model
2004 by SEC
Chapter 2
Software Process Model
2.1 Introduction to Software Process
2.2 Software Life Cycle
2.2.1 Waterfall Model
2.2.2 Prototyping
2.2.3 Incremental Model
2.2.4 Spiral Model
2.2.5 Fourth-Generation Techniques
2.2.6 Unify Process Model
2.2.7 Automatic Software Synthesis
34
2004 by SEC
Chapter 2
Software Process Model (contd)
2.3 Generic View of Software Engineering
2.4 Comparison of Software Development Processes
2.5 Advanced Topics
2.5.1 CMM/CMMI
2.5.2 Model Driven Development
2.5.3 Extreme Programming
2.5.4 Agile Method
Exercises
35
2004 by SEC
Requirement analysis
Requirement specification
System analysis
System design
36
2004 by SEC
Detail design
Coding
Testing
Maintenance
37
2004 by SEC
Requirement Analysis
38
2004 by SEC
Requirement specification.
capturing: functionality, behavior, and structure
39
2004 by SEC
Design
Define architecture
40
2004 by SEC
Implementatio
n
The goals
the development of a well-documented
The reliable, easy to read, flexible, correct program
Integration of modules
41
2004 by SEC
Testing
42
2004 by SEC
Maintenance
43
2004 by SEC
Maintenance (contd)
Preventive
1.5-6x
1x
Definition
Development
After release
44
2004 by SEC
Waterfall model
Prototyping
Incremental model
Spiral model
Fourth-generation techniques
45
2004 by SEC
Waterfall Model
46
2004 by SEC
ANALYSIS
WHAT
User Requirements
Specification
Software Requirements
Specification
DESIGN
HOW
System/Board Design
Logical Design
Program/Detailed Design
Physical Design
implementation/Coding
Program Testing : Units
BUILD
Program Testing:
system
Program Use
software Maintenance
47
2004 by SEC
Prototyping Model
48
2004 by SEC
49
2004 by SEC
Determine
Requirements
Requirements
Requirements
Adjustments
Construct
Prototype
Prototype
Demonstrate
Prototype
OK
System
Implementation
50
2004 by SEC
Spiral Model
Spiral model
Risk driven
Throwaway prototyping
51
2004 by SEC
Cumulative
cost
Progress
through
steps
Risk
analysis
Commitment
partition
Review
Risk
analysis
Evaluate alternatives
identify, resolve risks
Risk
analysis
Risk
Prototype Operational
analyPrototype Prototype
1
2
3 Prototype
-sis
Simulations, models, benchmarks
Requirements plan
life-cycle plan
Software
Detailed
requirement Software
design
Development Requirement
product
plan
validation
design
Code
Integration
Design validation
Unit
and test plan
and verification
test
Integration
Acceptance and test
Implementest
tation
Develop, verify
next-level product
52
2004 by SEC
Specification
Acquisition
high-level
specification
(prototyping)
Specification
Validation
Interactive
Translation
low-level
specification
Automatic
Compilation
source
program
Tuning
Maintenance
53
2004 by SEC
Fourth-generation Techniques
Requirements
gathering
Design
strategy
implementation
using 4GL
Testing
54
2004 by SEC
Object-Oriented Approach
55
2004 by SEC
Boat
age
OOA
OOD
OOP
Develop model
of requirements
Develop code
Users Perspective
Developers Perspective
56
2004 by SEC
Further
Development
Program
Use
System
Testing
Unit
Testing
Coding
Program
Design
bottom-up: develop an
individual class
top-down analysis
System
Design
Software
Requirements
Specification
User
Requirements
Specification
Requirements
Analysis
57
2004 by SEC
Definition: What
Development: How
Maintenance: Change
58
2004 by SEC
communication
59
2004 by SEC
improve communication
60
2004 by SEC
61
2004 by SEC
prototyping
lang.
specification
language
Design
language
no
programming efficient
language
Language
62
2004 by SEC
Functionality
inappropriateness
shortfall
B
lateness
D
C slop : adaptability
original reqt.
t0
waterfall
model
A
t1
longevity
t2
t3
t4
t5
Time
63
2004 by SEC
Functionality
t0
t1
t2
t4
Time
64
2004 by SEC
Evolutionary Prototyping
Functionality
t0
t1
t2
t4
Time
65
2004 by SEC
Functionality
t0
t1
t2
t4
t3
Time
66
2004 by SEC
user
t0
t1
t2
t4
Time
67
2004 by SEC
Exercise
68
2004 by SEC
Exercise (contd)
69
2004 by SEC
Chapter 3
Requirements Engineering
2004 by SEC
Chapter 3
Requirements Engineering
3.1 Requirements engineering
3.1.1 Software requirements
3.1.2 Characteristics of requirements
3.1.3 Requirements engineering
3.1.4 Requirements elicitation
71
2004 by SEC
Chapter 3
Requirements Engineering (contd)
3.3 Object-oriented (OO) software engineering
3.3.1 Steps of analysis: an example using OO approach
3.3.2 Concepts and phenomena
3.3.3 Class and class identification
3.3.4 Pieces of an object model
72
2004 by SEC
73
2004 by SEC
Software Requirements
Requirement
Functional requirement describes system services or functions
Non-functional requirement is a constraint or a goal on the system or on
the development process
Requirements specification
A structured document for detail description of the system services.
Written as a contract between client and developer
74
2004 by SEC
Characteristics of Requirements
Incomplete Requirements
Most software systems are complex, that developer can never fully
captured during the system development, therefore, requirements are
always incomplete.
Inconsistent Requirement
Different users have different requirements and priorities. There is a
constantly shifting compromise in the requirements.
Prototyping is often required to clarify requirements.
75
2004 by SEC
Requirements Engineering
Requirements elicitation
Determine what the customer requires
Requirements analysis
Understand the relationships among various customer requirements
Requirements negotiation
Shape the relationships among various customer requirements to
achieve a successful result
Research on requirements trade-off analysis (formulating as goals)
Requirements specification
Build a form of requirements
76
2004 by SEC
Software modeling
Build a representation of requirements that can be assessed for
correctness, completeness and consistency.
Requirements validation
Review the model
Requirements management
Identify, control and track requirements and the changes.
77
2004 by SEC
Requirements Elicitation
Asking
Ask users what they expect from the system
Interview, brainstorm and questionnaire
Task analysis
High-level tasks can be decomposed into sub-tasks
Scenario-based analysis
Study instances of tasks
A scenario can be real or artificial
78
2004 by SEC
Form analysis
A lot of information about the domain can be found in various forms
(examples in ERD slides)
Forms provide us with information about the data objects of the domain,
their properties, and their interrelations
Prototyping
79
2004 by SEC
80
2004 by SEC
Requirement Analysis
Interfaces definition
function/process interface
81
2004 by SEC
Software Modeling
Purpose
focus on those qualities of an entity that are relevant to the solution
of an application problem
abstract away those that are irrelevant
82
2004 by SEC
83
2004 by SEC
requirements
the problem elicitation
develop
Specification
Review
create
analysis
models
84
2004 by SEC
Function
Data Flow
Diagram
Data
Entity-Relation
Diagram
Behavior
State Transition
Diagram
85
2004 by SEC
Database
Tables
Screen
&
Report
DFD
Structured
chart
Structured
English
86
2004 by SEC
Entity-Relationship Diagram
Entity
Primary things an organization collects and records information
about. (noun) (
)
Relationship
Linkage between entities. (verb) (
Cardinality
Identify how many instances of one entity are related to how many
instances of another entity.
87
2004 by SEC
Jobs
Tasks
M:N Persons
serve
Customers
Direction
Examples
Persons
Perform
Jobs
Serve
Consist-of
Customers
Tasks
88
2004 by SEC
Students
Take
Assist
Advice
Courses
Faculty
Teach
89
2004 by SEC
Entity type
Key attribute
Attribute
actual data
Students
Student_id
Entity
occurrence
50416938
71426006
name
Doakes,, Jane
Blough, JO
phone
242-7147
426-4141
90
2004 by SEC
Advanced Features
Entities
Courses
Sections
Meetings
Keys
Course_id
Attributes
name
credits
Course_id
Section_id
Faculty
Course_id
Section_id
Meeting_id
Meeting_day
Meeting_time
Room
91
2004 by SEC
92
2004 by SEC
e.g.
Is_Parent_of
Is_Married_To
Person
Is_Child_of
for retrieving all family relationships
93
2004 by SEC
e.g.
An example
Faculty
Teach
Occupy
Rooms
Courses
Take
Students
Contain
Sections
Have
Meetings
94
2004 by SEC
Scholarships
Receive
Apply for
Students
request
Referees
95
2004 by SEC
96
2004 by SEC
97
2004 by SEC
Rooms
Meetings
Accounts
Referees
fee-payment
applied-for
Scholarships
Students
receive
Sections
Courses
course-program
Faculty
Departments
Programs
98
2004 by SEC
Testing ERD
N-ary relationship
99
2004 by SEC
100
2004 by SEC
Define
Attributes
single value: an attribute cannot have more than one value for any
single entity occurrence.
If there is more than one value for the same entity occurrence, a
new characteristic entity must be created to contain the multiple
values.
101
2004 by SEC
unique
unchanging
dataless keys are not subject to change in the way that keys
made up of data items often do.
102
2004 by SEC
foreign key can have a null value if the relationship that they
map is optional.
103
2004 by SEC
Entity STUDENTS
ATTRIBUTE
ID
SURNAME
CHAR
20
FIRSTNAME
CHAR
20
ID
STUDENT_ID
PROGRAM_ID
104
2004 by SEC
Relationships
Extension to allow for
105
2004 by SEC
Optionality:
Mandatory: If the relationship between entities A and B is
mandatory, then each instance of A must correspond to an instance
of B
Optional: If it is optional at the end of A, then some instance of A
can be recorded that has no relationship to any instance of B
e.g.
(OPTIONAL)
(MANDATORY)
STUDENTS
STUDENTS
COURSE
REFEREES
106
2004 by SEC
Existence Dependency
to describe the relationship between characteristic entities and
kernel entities
Courses
COURSE
Courses
SECTIONS
optionally have
HAVE
must have
HAVE
107
2004 by SEC
Abstractions
the more specific entities inherit the properties of the more abstract
entities
IS-PART-OF (
e.g.
optional
ATHLETES
MUSICIANS
STUDENTS
108
2004 by SEC
STUDENT
UNDER
GRADUATES
existence dependency
109
2004 by SEC
e.g.
STUDENTS
ENROLL_IN
SECTIONS
110
2004 by SEC
111
2004 by SEC
ENROLLMENT
SECTIONS
John
Mary
Tania
John ACC-1
John FIN-1
John STA-1
Mary ACC-1
Tania FIN-2
ACC-1
STA-1
FIN-1
FIN-2
STUDENTS
SECTIONS
ENROLLMENT
112
2004 by SEC
STUDENTS
REGISTRATIONS
association
entities
PROGRAMS
OFFERINGS
COURSES
SECTIONS
FACULTY
characteristi
entities
MEETINGS
113
2004 by SEC
Tasks
Position
Staf
Management
Benefits
Employees
Skills
Stock_Options
Pensions
114
2004 by SEC
115
2004 by SEC
116
2004 by SEC
117
2004 by SEC
118
2004 by SEC
119
2004 by SEC
120
2004 by SEC
121
2004 by SEC
SA
CFD
control
process
PSPEC
processing narrative
external entity
PDL
data item
E-R diagram(data
data store
Data Dictionary (content)
quasicontinuous data flow
control process
control item
control store
multiple instances of the same process
control item
(CSPEC bar) a reference to CSPEC
122
CSPEC
STD
2004 by SEC
PAT
Structured Analysis:
Modeling Technique
control-oriented applications
data-intensive applications
deficiency
123
2004 by SEC
Basic Notation
DFD:
: data item
124
2004 by SEC
125
2004 by SEC
126
2004 by SEC
Output
Design constraints
127
2004 by SEC
Extensions
Data-intensive application:
Data modeling to describe the relationship between complex
collections of data. (E-R diagram)
Control-oriented application:
To describe/represent control flow and control processing as well as
data flow and processing.
128
2004 by SEC
Extensions (contd)
(1)Ward & Mellor extensions: extend SA notation.
: control process
: control item
: control store
129
2004 by SEC
Extensions (contd)
(2)Hatley and Pirbhai Extensions: extend on representation of the control-oriented
aspects. (control/event)
Notation:
130
2004 by SEC
Extensions (contd)
Data input
Process
model
DFDs
PSPECs
Process
activators
Control
model
CFDs
Control
output
CSPEC
s
Data output
data conditions:
occurs when data
input a
process results in a
control ** data conditions:
above pressure
output
** refer to CSPEC:
Control invoke reduce tank
pressure
input
131
2004 by SEC
Extensions (contd)
132
2004 by SEC
Data Dictionary
=
/ + / [ | ] / { }n / ( )
and selection repetition option comments
composed of
133
2004 by SEC
Fundamental Issue
data
data
control
Conventional
I: data/control
O: data/control
in DFD
control
Ward-Mellor
I/O data & control
I/O control in DFD
Hatley-Pirbhai
I/O data in DFD
I/O control in DFD
134
2004 by SEC
Summary:
(1)Conventional:
process
Ward-Mellor:
control
process
process
data item
Hatley-Pirbhai:
process
CSPEC bar
135
2004 by SEC
(2) functionality
(3) behavior
136
2004 by SEC
137
2004 by SEC
requirements
the problem elicitation
develop
Specification
Review
create
analysis
models
138
2004 by SEC
139
2004 by SEC
Object
Class
Diagram
Function
Data Flow
Diagram
Behavior
State Chart
140
2004 by SEC
141
2004 by SEC
Application Domain
Solution Domain
System Model
TrafficControl
Aircraft
UML Package
TrafficController
FlightPlan
Airport
SummaryDisplay
MapDisplay
FlightPlanDatabase
TrafficControl
142
2004 by SEC
A concept is a 3-tuple:
Its Name distinguishes it from other concepts.
Its Purpose are the properties that determine if a phenomenon is a member
of a concept.
Its Members are the phenomena which are part of the concept.
143
2004 by SEC
Clock
Purpose
Members
A device that
measures time.
144
2004 by SEC
Class
Class:
An abstraction in the context
encapsulates both state (variables) and behavior (methods)
Can be defined in terms of other classes using inheritance
145
2004 by SEC
Class Identification
146
2004 by SEC
Example
Proper noun
Model
component
object
Improper noun
class
Toy, doll
Doing verb
method
Buy, recommend
being verb
inheritance
is-a (kind-of)
having verb
aggregation
has an
modal verb
constraint
must be
adjective
attribute
3 years old
transitive verb
method
enter
intransitive verb
method (event)
depends
on
Jim Smith
147
2004 by SEC
Classes
Associations (Relations)
Part of- Hierarchy (Aggregation)
Kind of-Hierarchy (Generalization)
Attributes
Application specific
Attributes in one subsystem can be classes in another subsystem, turning
attributes to classes
Service
Domain Methods: Dynamic model, Functional model
Operation: A function or transformation applied to objects in a class. All objects
in a class share the same operations (Analysis Phase)
Signature: Number & types of arguments, type of result value. All methods of a
class have the same signature (Object Design Phase)
Method: Implementation of an operation for a class (Implementation Phase),
Polymorphic operation: The same operation applies to many different classes.
148
2004 by SEC
Object Types
Boundary Objects: represent the interaction between the user and the
system
<<entity>>
Year
<<entity>>
Month
<<control>>
ChangeDateControl
<<boundary>>
ButtonBoundary
<<boundary>>
LCDDisplayBoundary
<<entity>>
Day
149
2004 by SEC
Model Behavior
150
2004 by SEC
151
2004 by SEC
Naming
Account
Dada
Foo
Balance
Balance
Balance
CustomerId
CustomerId
CustomerId
Deposit()
Withdraw()
GetBalance()
Deposit()
Withdraw()
GetBalance()
Deposit()
Withdraw()
GetBalance()
152
2004 by SEC
Account
Balance
AccountId
Customer
Name
CustomerId
Deposit()
Withdraw()
GetBalance()
IterateonNames,AttributesandMethods
153
2004 by SEC
Balance
AccountId
Deposit()
Withdraw()
GetBalance()
*
Has
Customer
Name
CustomerId
154
2004 by SEC
Categorize
Bank
Name
Account
Balance
AccountId
Deposit()
Withdraw()
GetBalance()
*
Has
Customer
Name
CustomerId
Mortgage
Account
Checking
Account
Saving
Account
Withdraw()
Withdraw()
Withdraw()
Dont put too many classes into the same package: 7+-2 (or even 5+-2)
155
2004 by SEC
requirements
the problem elicitation
develop
Specification
Review
create
analysis
models
156
2004 by SEC
157
2004 by SEC
Data Modeling
data-intensive applications
attributes
relationship
aggregation
E-R Diagram
Semantic Data
Modeling
OOA
OOPL
Service
Message between objects
classification & inheritance
158
2004 by SEC
Differences
data modeling does not concern how these relationships are
achieved
without concern for the processing that must be applied to
transform the data
159
2004 by SEC
Normalization rules
(1) only one value for each attribute
(2) attributes should contain no internal structure
160
2004 by SEC
Software Artifacts
Problem statements:
to describe the problem to be solved and providing a conceptual overview of
the proposed system
Analysis:
to understand and model the application and the domain (usually called a
modeling activity)
the output is a model capturing: functionality, behavior, and structure
Design:
Data Design:data abstraction;data structure;data modeling
Procedural Design: iteration , conditional, sequence
Architectural Design: program structure ( control hierarchy ); system
organization ( software architecture )
Implementation:
Executable code
161
2004 by SEC
Why Objects?
Problem
domain
Object necessary
for describing a
solution - problem
space
Solution
domain
Object required
for implementation
a solution - solution
space
software realization
of the real-world
problem
162
2004 by SEC
Object Orientation
Identity:
each object is a discrete and distinguishable entity.
each real-world object is unique due to its existence.
each object has its own inherent identity, therefore, two objects are
distinct even if all their attribute values are identical.
Classification:
objects with the same attributes and operations are grouped into a
class
Attributes:
each object is said to be an instance of its
frame size
class
wheel size
Operations:
e.g. Bicycle object -------> Bicycle class
shift
move
1993 - 2003, Jonathan Lee, All Right Reserved.
163
2004 by SEC
Polymorphism:
the same operation may behave differently on different classes
an operation is an action or transformation that an object performs or is
subject to
method: a specific implementation of an operation
Inheritance:
the sharing of attributes and operations among classes based on a
hierarchical relationship
each subclass inherits all of the properties of its superclass and adds its
own unique properties (called extension)
reusability
164
2004 by SEC
Static polymorphism
Overloading: an invocation can be operated on arguments
of more than one type.
Class TimeOfDay {
public void setTime(char[8] time) {};
public void setTme(int h, int m, int s) {};
}
TimeOfDay aClock= new TimeOfDay( );
aClock.setTime(17,1,0);
aClock.setTime(11:55:00);
165
2004 by SEC
Polymorphism
166
2004 by SEC
Polymorphism: Example
class Student extends Person {
void getName() { System.out.println(Student); }
class Employee extends Person {
void getName() { System.out.println(Employee); }
}
public static void main(String [ ] args) {
Person p;
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
int num=Integer.parseInt(in.readLine());
if (num= =1) p = new Employee( );
else p = new Student( );
p.getName( );
}
167
2004 by SEC
Object-Oriented Development
Life-cycle
development:analysis,design,and implementation
testing:
maintenance:
reduce cost.
168
2004 by SEC
OMT Methodology
Stages:
problem
statements
Analysis:
Analysis
-abstraction
Analysis
model
of what the
desired system must do.
-application-domain concepts System Design
NOT implementation concepts
-organize the target system into
Design:
subsystems
System design
-decide performance characteri
Decision making
stage
object design
object design
depends on
the
-data structural & algorithm
performanc
169
to implement each class.
measure
2004 by SEC
Three models:
object model: the static structures of objects &
their relationships
change over
time
170
2004 by SEC
Basic Concepts
171
2004 by SEC
Identify
The unique identification of every object is through the use of an
object identifier.
Encapsulation
The selection of properties to be encapsulated.
172
2004 by SEC
173
2004 by SEC
Exercises
174
2004 by SEC
Chapter 4
Software Design
2004 by SEC
Chapter 4
Software Design
4.1 Design Fundamentals
4.2 Design Method
4.3 Architecture Design
4.3.1 Architecture Patterns
4.4 Data Design
4.5 Interface Design
4.6 Procedural Design
176
2004 by SEC
Design Fundamentals
functional
requirement
{
{
nonfunctional
requirement
informal model
functional model
behavioral model
design constrain
performance
cost
data design
architecture
design
procedure
design
data structure
relationship between structure
depict structure component
ie. a procedural description
of software
177
2004 by SEC
Common Characteristics
A mechanism for the translation of information domain representation
into design representation
A notation for representing functional components and their interfaces
Heuristics for refinement and partitioning
178
2004 by SEC
Fundamental Concepts
Abstraction
Level of abstraction
Highest level
.
Low level
.
Lowest level
Language used
Program-oriented terminology
.
Procedural-oriented terminology
.
Implementation-oriented terminology
procedural abstraction
a named sequence of instruction that has a specific function
data abstraction
a named collection of data
that describes a data object
can refer all the data by stating the name of the data abstraction
original abstraction data type is used as a template or generic
data structure from which the data structure can be instructed.
179
2004 by SEC
Fundamental Concepts
Refinement
A process elaboration
Statement of function (description of information) without the internal
working of the function (internal structure of the information)
Providing more and more details as each successible refinement occurs
180
2004 by SEC
Software architecture
Structure of data
181
2004 by SEC
M1
M2
M3
M4
182
2004 by SEC
Information hiding
183
2004 by SEC
monolithic
program
module
program
object-oriented
program
code-and-fix
Classification (based on temporal aspect)
sequential
/ incremental
/ parallel
subroutines
/ coroutines
/ conroutines
184
2004 by SEC
high
sequential
functional
185
2004 by SEC
low
middle
high
186
2004 by SEC
Data Design
Define data abstractions
data abstraction
data modeling
187
2004 by SEC
Architectural Design
(1) program
structure
(2) domain-specific
Software
architecture
188
2004 by SEC
Layered systems:
System organized hierarchically with each layer providing
service to the layer about it
System
Basic
Core
Knowledge Base
Rule-based system
Input
Output
Working
Memory
Rule
interpreter
RB
Fact
189
2004 by SEC
Procedural Design
Structure programming
logical constructs: sequence, conditional, iteration
to limit the procedural design to a small number of predictable
operations
reduce program complexity
lead to more readable, testable code
Flow charts
Graphical representation for procedural design
Limitation
190
2004 by SEC
191
2004 by SEC
PDL
Data structure
TYPE <var-name> IS
<q-1> <q-2>
192
2004 by SEC
PDL (contd)
Conditional
-IF <
-CASE OF <
>
WHEN <
> SELECT <
.
.
DEFAULT: <
>
ENDCASE
>
THEN <
>
ELSE <
>
ENDIF
Iteration
-REPEAT UNTIL <
<
>
>
>
ENDREP
-DO WHILE <
<
>
>
ENDDO
-DO FOR <
<
>
>
ENDFOR
193
2004 by SEC
Chapter 5
Object-Oriented Software
Development
2004 by SEC
Chapter 5
Object-Oriented Software Development
5.1 Object Orientation
5.1.1 Object and Class
5.1.2 Encapsulation and information hiding
5.1.3 Inheritance
5.1.4 Polymorphism
195
2004 by SEC
Chapter 6
Software Testing
2004 by SEC
Chapter 6
Software Testing
6.1 Software Testing Fundamentals
6.1.1 What is Software Testing
6.1.2 Verification and Validation
6.1.3 The V Model
197
2004 by SEC
Chapter 6
Software Testing (contd)
6.4 Software Testing Strategies
6.4.1 Unit Testing
6.4.2 Integration Testing
6.4.3 System Testing
198
2004 by SEC
199
2004 by SEC
Why do we test?
200
2004 by SEC
Driven by delivery
Test engineers
Driven by quality
Define test cases, write test specifications, run tests, analyze results
Customers
Driven by requirements
201
2004 by SEC
202
2004 by SEC
203
2004 by SEC
204
2004 by SEC
The V model
The V model
Emerged in reaction to some waterfall models that showed testing as a
single phase following the traditional development phases of
requirements analysis, high-level design, detailed design and coding.
The V model portrays several distinct testing levels and illustrates how
each level addresses a different stage of the software lifecycle.
The V shows the typical sequence of development activities on the lefthand (downhill) side and the corresponding sequence of test execution
activities on the right-hand (uphill) side.
205
2004 by SEC
Acceptance
Testing
Architecture
Design
System
Testing
Detailed
Design
Code
Integration
Testing
Unit Testing
206
2004 by SEC
207
2004 by SEC
208
2004 by SEC
Testing Principles
Testing should begin in the small and progress toward testing in the
large.
209
2004 by SEC
210
2004 by SEC
211
2004 by SEC
Exhaustive Testing
212
2004 by SEC
Team consensus
213
2004 by SEC
Testing Methods
Design tests to exercise each function of the software and check its
errors.
214
2004 by SEC
White-Box Testing
White-box testing
Also known as glass-box testing or structural testing
Has the knowledge of the programs structures
A test case design method that uses the control structure of the
procedural design to derive test cases
Focus on the control structures, logical paths, logical conditions, data
flows, internal data structures, and loops.
W. Hetzel describes white-box testing as testing in the small
215
2004 by SEC
216
2004 by SEC
217
2004 by SEC
Sequence
While
If Else
..
.
Until
Case
218
2004 by SEC
219
2004 by SEC
predicate nodes
c1
c2
F
220
2004 by SEC
binarySearch() Example
10
}
return locationOfsearchValue;
221
2004 by SEC
6
8
7
9
10
222
2004 by SEC
Cyclomatic Complexity
223
2004 by SEC
Independent path
An independent path is any path of the program that introduce at least
one new set of procedural statements or a new condition
In a flow graph, an independent path must move along at least one edge
that has not been traversed before the path is defined
224
2004 by SEC
225
2004 by SEC
predicate nodes
2
3
4
R3
R2
R4 7
R1
regions
R5
9
10
226
2004 by SEC
2.
V(G) = 5 regions
227
2004 by SEC
4.
Path 1: 1-2-10
Path 2: 1-2-3-10
Path 3: 1-2-3-4-5-9-2-
Path 4: 1-2-3-4-6-7-9-2-
Path 5: 1-2-3-4-6-8-9-2-
Prepare test cases that force the execution of each path in the basis set
228
2004 by SEC
229
2004 by SEC
Once all test cases have been exercised, we can be sure that all
statements are executed at least once
230
2004 by SEC
Graph Matrices
A graph matrix
A tabular representation of a flow graph
A square matrix with a size equal to the number of nodes on the flow
graph
Matrix entries correspond to the edges between nodes
Adding link weight to each edge to represent
231
2004 by SEC
A connection matrix
A graph matrix with the link weight is 1 (representing a connection
exists) or 0 (representing a connection does not exist)
Each row of the matrix with two or more entries represents a predicate
node
Provide another method for computing the cyclomatic complexity of a
flow graph
232
2004 by SEC
Connected to node
1
1
3
c
2
b
f
e
g
1
1
4
5
Flow Graph
Graph Matrix
Connection Matrix
Connections
1-1=0
2-1=1
2-1=1
Cyclomatic
complexity
2-1=1
----------3+1=4
233
2004 by SEC
Condition Testing
Condition Testing
Test case design method that exercise the logical conditions in a
program module
Logical conditions
Simple condition:
Example: a b; NOT(a b)
234
2004 by SEC
Relational expression:
Example: ((a*b+c)>(a+b+c))
Boolean expression
235
2004 by SEC
236
2004 by SEC
Branch testing
The simplest condition testing strategy
For a compound condition C, test (1) true and false branches of C and
(2) every simple condition of C at least once
Example: for C = (a>b) AND (c<d) we test for
a>b
c<d
237
2004 by SEC
Domain testing
For a relational expression, require 3 or 4 tests to be derived
For an expression E1 rel-op E2, test for E1 greater than, equal to, or less
than E2
Guarantees detection of rel-op error if E1 and E2 are correct
To detect errors in E1 and E2, the difference between E1 and E2 for the
tests E1 greater or less than E2 should be as small as possible
For an expression with n variables, 2n tests are required
238
2004 by SEC
BRO Testing
239
2004 by SEC
240
2004 by SEC
241
2004 by SEC
242
2004 by SEC
243
2004 by SEC
p-use(counter, (5,11))
c-use (largest, 11)
11
exit
2004 by SEC
DU testing strategy
A strategy for selecting the derived DU chains as test cases
245
2004 by SEC
246
2004 by SEC
Loop Testing
247
2004 by SEC
Nested Loops
conduct simple loop tests for the innermost
loop while holding the outer loops at their
minimum iteration
work outward, conducting tests for the next
innermost loop
continue until all the loops have been tested
tests grow geometrically as the level of nesting
increases
248
2004 by SEC
Concatenated Loops
independent loops using simple loop
testing
dependent loops using nested loop testing
249
2004 by SEC
Unstructured Loops
Whenever possible, redesign the code to
reflect the use of structured programming
constructs.
Then apply the appropriate loop testing
strategy.
250
2004 by SEC
251
2004 by SEC
Black-Box Testing
Black-box testing
Also known as functional testing, behavioral testing, or specificationbased testing
Does not have the knowledge of the programs structures
Discover program errors based on program requirements and product
specifications
Derive sets of inputs to fully exercise all functional requirements for a
program
Complementary to white-box testing
252
2004 by SEC
Interface errors
Performance errors
253
2004 by SEC
Random Testing
254
2004 by SEC
Partition Testing
Partition testing
The input domain of the program is partitioned into different disjointed
subdomains
Ideally, the partition divides the domain into subdomains with property
that within each subdomain, either the program produces the correct
answer or the program produce an incorrect answer for every element
Only an element randomly selected from each subdomain is needed for
testing the program in order to determine program faults
255
2004 by SEC
Equivalence Partitioning
Equivalence partitioning
The input domain of a program is partitioned into a finite number of
equivalence classes from which test cases are derived
An equivalence class consists of a set of data that is treated the same
by the program or that should generate the same result
Test case design is based on an evaluation of equivalence classes for an
input condition
Can reduce the total number of test cases to be developed
256
2004 by SEC
257
2004 by SEC
258
2004 by SEC
Grade
90~100
80~89
70~79
60~69
0~59
259
2004 by SEC
Using the equivalence partitioning testing, we can reduce the test cases
from 100 (assume 0 <= score <= 100) to 7
260
2004 by SEC
user
mouse output promptsFK
queries picks formats
input
input domain
Note: Redraw from [Pressman 2004]
data
output domain
261
2004 by SEC
262
2004 by SEC
2.
Example: Integer D with input condition [-3, 5], BVA test values
are -3, -2, 5, 6, 0
263
2004 by SEC
4.
264
2004 by SEC
265
2004 by SEC
266
2004 by SEC
C3
A1
C1
C2
A2
A3
X
X
C: denotes a condition
A: denotes an action
T: denotes true
F: denotes false
X: denotes action to be taken.
267
2004 by SEC
268
2004 by SEC
Error Guessing
269
2004 by SEC
270
2004 by SEC
Unit Testing
Unit testing
Is normally considered as an adjunct to the coding step
Focuses verification effort on the smallest unit of software design the
software component or module
Using the component-level design description as a guide
Provide a release criterion for a programming task
Encourage early defect discovery
Discourage big-bang integration with its late defect discovery
Find "side effect" defects, especially in highly coupling designs.
Is white-box oriented and the step can be conducted in parallel for
multiple components
271
2004 by SEC
Module
interface
local data structures
boundary conditions
independent paths
error-handling paths
Test
Cases
272
2004 by SEC
Interface
Ensures that information properly flows in and out of the component
Boundary conditions
Ensures that the component operates properly at boundaries established
to limit or restrict processing
Error-handling paths
Ensures that errors are correctly handled
273
2004 by SEC
274
2004 by SEC
275
2004 by SEC
Boundary testing
An important task of the unit test step
Test cases that exercise data structure, control flow, and data values just
below, at, and just above maxima and minima are vary likely to uncover
errors
276
2004 by SEC
277
2004 by SEC
Driver
Module
to be
tested
Stub
interface
local data structures
boundary conditions
independent paths
error-handling paths
Stub
results
Test
Cases
278
2004 by SEC
JUnit
JUnit
An Open source Unit Test Framework for Java (http://www.junit.org)
279
2004 by SEC
JUnit (contd)
280
2004 by SEC
281
2004 by SEC
282
2004 by SEC
Integration Testing
283
2004 by SEC
Incremental integration
The program is constructed and tested in small increments, where
errors are easier to isolate and correct
Interfaces are more likely to be tested completely
A systematic test approach may be applied
Top-down integration
Bottom-up integration
284
2004 by SEC
285
2004 by SEC
286
2004 by SEC
M2
M2
M5
M5
M3
M3
M6
M6
M8
M8
M7
M7
top module is
tested with stubs
M4
M4
stubs are replaced
one at a time
2004 by SEC
Advantages
Is better at discovering errors in the system architecture (verifies major
control or decision points early)
Can demonstrate a complete function of the system early (if depth-first
integration is selected)
Disadvantages
Logistical problems can raise
Need to write and test stubs (costly)
288
2004 by SEC
Bottom Up Integration
289
2004 by SEC
M
Mb b
D2
D2
D3
D3
Cluster 3
Cluster 1
Cluster 2
290
2004 by SEC
Advantages
Easier test case design and no need for stubs
Can starts at an early stage in the development process (not require to
wait until the architectural design of the system to be completed)
Potentially reusable modules are adequately tested
Disadvantages
User interface components are tested last
The program as an entity does not exist until the last module is added
Major design faults show up late
291
2004 by SEC
292
2004 by SEC
Regression Testing
293
2004 by SEC
294
2004 by SEC
295
2004 by SEC
System Testing
System testing
The system software is tested as a whole. It verifies all elements mesh
properly to make sure that all system functions and performance are
achieved in the target environment.
296
2004 by SEC
Recovery tests
Verify that the system can recover when forced to fail in various ways
database recovery is particularly important
Example: measure time to recover (MTTR)
Stress tests
Verify that the system can continue functioning when confronted with
many simultaneous requests (abnormal situations)
Execute the system by demanding resource in abnormal quantity,
frequency, or volume (subject to extreme data & event traffic )
Excessive interrupt, high input data rate, maximum memory,
How high can we go? Do we fail-soft or collapse?
Sensitivity testing (a variation of stress testing)
Attempts to uncover data combinations within valid input classes that
may cause instability or improper processing (performance
degradation)
297
2004 by SEC
Security tests
Verify that access protection mechanisms work make penetration cost
more than value of entry
Subject to compromise attempts
E.G., Measure average time to break in
Performance
Is designed to test the run-time performance of software (real-time and
embedded systems) within the context of an integrated system
Measure speed, resource utilization under various circumstances.
Is often coupled with stress testing and usually requires both hardware
and software instrumentation
Occurs throughout all steps in the testing process
298
2004 by SEC
Alpha Tests
299
2004 by SEC
Beta Tests
300
2004 by SEC
Acceptance Testing
301
2004 by SEC
302
2004 by SEC
Object-Oriented Testing
303
2004 by SEC
Unlike conventional unit testing which focuses on the inputprocess-output view of software, algorithm detail of a module,
and the data that flow across the module interface, class testing
focuses on designing sequences of methods to exercise the states
of a class
But white-box methods can still be applied
304
2004 by SEC
305
2004 by SEC
306
2004 by SEC
307
2004 by SEC
308
2004 by SEC
Fault-based testing
The tester looks for plausible faults (i.e., aspects of the implementation
of the system that may result in defects). To determine whether these
faults exist, test cases are designed to exercise the design or code.
309
2004 by SEC
Random testing
Identify operations applicable to a class
Define constraints on their use
Identify a minimum test sequence
310
2004 by SEC
Partition testing
Reduces the number of test cases required to test a class in much the same
way as equivalence partitioning for conventional software
State-based partitioning
Categorize and test operations based on their ability to change the
state of a class
Attribute-based partitioning
Categorize and test operations based on the attributes that they use
Category-based partitioning
Categorize and test operations based on the generic function each
performs
311
2004 by SEC
Inter-class testing
For each client class, use the list of class operators to generate a series
of random test sequences. The operators will send messages to other
server classes.
For each message that is generated, determine the collaborator class
and the corresponding operator in the server object.
For each operator in the server object (that has been invoked by
messages sent from the client object), determine the messages that it
transmits.
For each of the messages, determine the next level of operators that are
invoked and incorporate these into the test sequence
312
2004 by SEC
State-based testing
Basic idea is to derive tests from the object-behavioral analysis model
to check the state behaviors of a system.
A state machine (state transition diagram or statechart) is used to define
test cases and test criteria to uncover the incorrect state behavior of a
program.
Coverage criteria:
State node coverage
Transition path coverage
Applications:
Very useful to check protocol-based program communications.
Good to check problems in state-driven or event-driven application
programs.
Can be used at both specification and code levels
313
2004 by SEC
OOT Strategy
314
2004 by SEC
Exercises
315
2004 by SEC
Reference
[Beizer 1990] B. Beizer, Software Testing Techniques, 2nd Edition, Van Nostrand-Reinhold,
1990.
[Boehm 1981] B. Boehm, Software Engineering Economics, Prentice-Hall, 1981.
[Davis 1995] A. Davis, 201 Principles of Software Development, McGraw-Hill, 1995.
[Gao 2003] Jerry Gao, Jacob Tsao, and Ye Wu, Testing and Quality Assurance for
Component-Based Software, Artech House, 2003.
[Kaner 1993] C. Kaner, J. Falk, and H. Q. Nguyen, Testing Computer Software, 2nd Edition,
Van Nostrand-Reinhold, 1993.
[Myers 1979] G. Myers, The Art of Software Testing, Wiley, 1979.
[Pressman 2004] Roger S. Pressman, Software Engineering A practitioners Approach, 6th
Edition, McGraw Hill, 2004.
[Sommerville 2004] Ian Sommerville, Software Engineering, 7th Edition, Addison Wesley,
2004.
316
2004 by SEC
Reference (contd)
[Hetzel 1984] W. Hetzel, The Complete Guide to Software Testing, QED Information
Sciences, 1984.
[Tai 1989] K. C. Tai, What to Do Beyond Branch Testing, ACM Software Engineering
Notes, vol. 14, no. 2, April 1989, pp. 58-61.
[Whittaker 2000] James A. Whittaker, What Is Software Testing? And Why Is It So Hard,
IEEE Software, 2000.
[Weyuker 1991] E. Weyuker and B. Jeng, Analyzing Partition Testing Strategies, IEEE
Transaction on Software Engineering, Vol. 17, No. 7, 1991, pp. 703-711.
317
2004 by SEC
Chapter 7
Software Project Management and
Planning
2004 by SEC
Chapter 7
Software Project Management and
Planning
7.1 Project Management Concepts
7.2 People Management
7.2.1 Team Building
7.2.2 Other Team types
7.2.3 Team Management
7.3 Process Management
7.3.1 Process Attributes
7.3.2 Process Modeling and Analysis
7.3.3 Process Measurement
319
2004 by SEC
Chapter 7
Software Project Management and
Planning (contd)
7.4 Product Management
7.4.1 Project Planning
7.4.2 Work Breakdown Structure
7.4.3 Software Cost Estimation
7.5 Risk Analysis and Management
7.5.1 Risk Management Concepts
7.5.2 Risk Identification
7.5.3 Risk Analysis
7.5.4 Risk Planning
7.5.5 Risk Monitoring
320
2004 by SEC
Chapter 7
Software Project Management and
Planning (contd)
7.6 Software Configuration Management
7.6.1 Configuration Management Concepts
7.6.2 Software Configuration
7.6.3 Change Control
7.6.4 Version Control
Exercise
321
2004 by SEC
2004 by SEC
Goals
323
2004 by SEC
Activities
Project planning
Project scheduling
Project costing
Project monitoring
324
2004 by SEC
Software characteristics
The product is intangible and only visible late in project
The product is flexible and prone to changes
The development process is not standardized
325
2004 by SEC
2004 by SEC
Staffing
Selecting people
Working environment
327
2004 by SEC
Staffing
328
2004 by SEC
Staffing (contd)
Development center
A pool of programmer and testers are available to all projects in the
organization
Programmers can be assigned to different project on demand basis
Can be outsourced
329
2004 by SEC
Selection of People
Criterion
Domain knowledge and experiences
Education background
Personality, attitude, and willingness to work in a team
Enrichment and diversity of the team
Appointment decision
Information provided by the candidate (e.g., CV)
Information gathered at interview
Recommendation from other people
330
2004 by SEC
Working Environment
331
2004 by SEC
Pair programming
332
2004 by SEC
Consists of
Chief programmer: responsible for design, programming, testing and
installation
Back-up programmer: supports the chief programmer and does software
validation
Librarian: maintains the project production library and documentation
Programmer (usually less than 5): coding
333
2004 by SEC
334
2004 by SEC
Pair programming
335
2004 by SEC
336
2004 by SEC
Team Cohesiveness
337
2004 by SEC
Team Communication
Factors
Team size
Organizational structure: are members need to communicate through
mediators or the management?
Team composition
Physical working environment and working space layout
338
2004 by SEC
Retention of People
Factors
Organizational commitment: an individuals identification with the
organization
Organizational citizenship behaviors: employees willingness to do
more work then assigned
Human resource management practices: empowering, perceived
justice, training, work family conflict resolution, information sharing
Compensation: salary, bonus, and other benefits
339
2004 by SEC
Motivating People
340
2004 by SEC
341
2004 by SEC
2004 by SEC
Process Management
Goal
To improve product quality by improving process
343
2004 by SEC
Process Attributes
Understandability
Is it easy to understand the defined process
Visibility
Are the activities, their progress and results visible by external
observers
Supportability
Can the process activities be supported by automated tools
Acceptability
Are the process activities acceptable to engineers
344
2004 by SEC
Reliability
Can the defined process avoid product error
Robustness
Can the process tolerate exceptional conditions
Maintainability
Can the process evolve as organization and environment change
Rapidity
How fast the process can deliver a system
345
2004 by SEC
346
2004 by SEC
Modeling elements
347
2004 by SEC
Modeling Elements
Activity
An activity is an action that has a clearly defined goal, an entry
condition and an exit condition
Process
A set of activities that must be done as a whole
Deliverable
A tangible output
Condition
Either a pre-condition or a post-condition
348
2004 by SEC
Role
A person with responsibilities for accomplishing some activities
Exception
Some unexpected events
Communications
Interchange of information between roles, activities, and processed
349
2004 by SEC
State machines
Petri net
350
2004 by SEC
Ethnographic analysis
By observation of people in working
351
2004 by SEC
Data collected
Time: calendar time or efforts
Resources: human resources or other physical resources
Events: number of defects discovered
Goal-question-metric paradigms
Goal: what needed to be achieved
Question: specific areas related to goals
Metric: measurement
352
2004 by SEC
2004 by SEC
354
2004 by SEC
355
2004 by SEC
Project scheduling
356
2004 by SEC
357
2004 by SEC
Estimated
358
2004 by SEC
359
2004 by SEC
360
2004 by SEC
Estimation objectives
Budget and pricing for a software project
Project scheduling and monitoring
Cost database
Estimation accuracy
Planning phase: 50% ~ 100%
Requirement and definition phase: 25% ~ 50%
Design phase: 10% ~ 25%
361
2004 by SEC
Efforts
Engineer salaries, benefits, and overhead
Insurances
362
2004 by SEC
Estimation Techniques
363
2004 by SEC
364
2004 by SEC
Compute the function points of all logical files and add them
to produce unadjusted function points
365
2004 by SEC
366
2004 by SEC
367
2004 by SEC
Count
Scale
Weight
Sum
Average
10
30
Average
External inputs
Average
External output
Average
10
External inquiries
Average
20
Count total
68
Complexity
0.77
Functional point
52
368
2004 by SEC
369
2004 by SEC
370
2004 by SEC
Object Point
371
2004 by SEC
372
2004 by SEC
COCOMO/COCOMO 2
Constructive Cost Model
History
COCOMO 81 (original COCOMO model)
COCOMO 2
More complicated
373
2004 by SEC
Organic mode:
Small teams, in familiar environment, well-understood applications, no
difficult non-functional requirements
Examples: most simple data processing
Semi-detached mode
Project team may have experience mixture, system may have more
significant non-functional constraints, organization may have less
familiarity with application
Examples: transaction processing, distributed data collection and
monitoring
374
2004 by SEC
Embedded
Hardware/software systems, tight constraints, highly distributed and
networking requirements
Examples: real-time systems, embedded software
375
2004 by SEC
COCOMO 81 Stages
Basic
Gives a 'ball-park' estimate based on product
attributes
Intermediate
Modifies basic estimate using project and process attributes
Advanced
Estimates project phases and parts separately
376
2004 by SEC
COCOMO 81 Estimates
Primary parameter
Lines of code
KDSI (thousands of delivered source instructions)
Estimates
Project efforts: in terms of man-month
Project duration
Staffing requirements
377
2004 by SEC
Organic mode
Man-month (PM) = 2.4 (KDSI) 1.05
Semi-detached mode
Man-month (PM) = 3 (KDSI) 1.12
Embedded mode
Man-month (PM) = 3.6 (KDSI) 1.2
378
2004 by SEC
Organic
Calendar time (TDEV) = 2.5 (PM) 0.38
Semi-detached
Calendar time (TDEV) = 2.5 (PM) 0.35
Embedded mode
Calendar time (TDEV) = 2.5 (PM) 0.32
379
2004 by SEC
Examples
380
2004 by SEC
Examples
381
2004 by SEC
COCOMO 2
Post-architecture model
382
2004 by SEC
Formula
PM = ( NOP (1 - % of reuse/100 ) ) / PROD
383
2004 by SEC
Size in KLOC
384
2004 by SEC
Multipliers
385
2004 by SEC
Multipliers (contd)
386
2004 by SEC
387
2004 by SEC
388
2004 by SEC
PM = A SizeB M + PMm
389
2004 by SEC
Gantt chart
390
2004 by SEC
391
2004 by SEC
Duration
Precedence
T2: Requirement A
15
T1
T3: Requirement B
10
T1
T4: Requirement C
10
T1
T5: Requirement
verification
T2, T3, T4
25
T5
15
T5
20
T5
392
2004 by SEC
15
T6, T7, T8
T9
393
2004 by SEC
Activity Network
394
2004 by SEC
395
2004 by SEC
Gantt Chart
4/7
11/7
18/7
25/7
1/8
8/8
15/8
22/8
29/8
5/9
12/9
19/9
Start
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish
396
2004 by SEC
Staff/Resource Allocation
4/7
Fred
11/7
18/7
25/
1/8
8/8
15/8 22/8
29/8
5/9
12/9
19/9
T4
T8
T11
T12
Jane
T1
T3
T9
Anne T2
T6
Jim
Mary
T10
T7
T5
397
2004 by SEC
2004 by SEC
399
2004 by SEC
Risk Management
400
2004 by SEC
Risk identification
Identify project, product, and business risks
Risk item checklist
Risk analysis
Assess the likelihood and impacts of risks
Risk table
Risk planning
How to avoid risks or reduce the impacts of risks
Risk monitoring
401
2004 by SEC
Risk categories
402
2004 by SEC
Risk Identification
Risk categories
Product size
Business risk
Customer characteristics
Process definition
Physical development environment
Technologies and tools used
Staff size and experiences
403
2004 by SEC
Business Risk
Strategic risk
To develop a product that does not fit in organizational overall business
strategy
Management risk
Lack support from top management
Budget risk
Losing budget commitment or out run budget allocated
404
2004 by SEC
Misunderstanding of requirements
Inappropriate staffing
405
2004 by SEC
Impact
406
2004 by SEC
Risk Table
Risk
Probability
Impact
Users not
communicating
high
serious
very high
serious
Customer
organization
restructured
very low
catastrophic
407
2004 by SEC
Risk database
408
2004 by SEC
Risk
Users not
communicating
Programmers leave
Strategy
1.
2.
Prototyping
Backup programmers
409
2004 by SEC
Risk Plan
Risk
Users not
communicating
Action
1.
2.
Programmers
leave
Weekly
meeting with
users
Prototyping
Backup
programmer
Who
1.
2.
System
analyst
Project
team
Cost
1.
2.
50000
250000, 3
month
Junior prog
410
2004 by SEC
Indicators or conditions
Risk
Users not
communicating
Programmers leave
Indicators
1.
1.
2.
3.
411
2004 by SEC
2004 by SEC
Change control
There is always changes during the software development cycle
Software systems may be evolving
Version control
Software systems are developed for different platforms and different
OS
May become more important for component-based software
development
413
2004 by SEC
414
2004 by SEC
Baseline
415
2004 by SEC
416
2004 by SEC
Baseline
Types of baselines
Functional baseline: requirement document, project planning document
Allocated baseline: SW/HW decomposition
Design baseline: S/W design
417
2004 by SEC
SCI Identification
418
2004 by SEC
CM Database
Change control
What parts will be affected by a change to component X (ripple effect)
Version control
Who owns a particular system version?
What platform is required for a particular version
419
2004 by SEC
SCI Tree
420
2004 by SEC
421
2004 by SEC
Perform change
422
2004 by SEC
Change Identification
423
2004 by SEC
Perform Change
424
2004 by SEC
425
2004 by SEC
426
2004 by SEC
Version Control
427
2004 by SEC
Version
An instance of a system which is functionally distinct in some way
from other system instances
Release
An instance of a system which is distributed to users outside of the
development team
428
2004 by SEC
Version identification
Version numbering
Derivation structure, such as V1, V1.1, V1.2, V2.1, V2.2
Attribute-based identification
Attributes associated with a version to identify that
version
Date, Creator, Programming Language, Customer, Status
Change-oriented identification
Integrates versions and the changes made to create these versions
429
2004 by SEC
Version Tree
430
2004 by SEC
431
2004 by SEC
CVS
Starting a project
cvs import proj_dir yoyo start
432
2004 by SEC
CVS
Check in a file
cvs commit prog.c
Create a branch
cvs tag b branch_name (e.g., rel-1-1-patches)
433
2004 by SEC
SCCS
Starting a project
Make an sccs sub-directory under project directory
%W: filename + version number
%G: date checked-in
434
2004 by SEC
SCCS (contd)
Check in a file
sccs delta prog.c
435
2004 by SEC
RCS
Starting a project
Create an rcs sub-directory to hold project files
/* $Id$ */
436
2004 by SEC
RCS (contd)
Check in a file
ci prog.c
co r1.3 prog.c
ci r1.3.1 prog.c
437
2004 by SEC
Exercises
1)
2)
Take a nontrivial program that you have written before, such as a term
project in another class, then compute the function point of your program
and estimate the effort of your program. Compare the estimated work
effort and your actual effort and try to discuss the discrepancy.
Using COCOMO-81 to estimate the efforts and duration of your
program in previous exercise, and compare it with the estimate of
function point.
438
2004 by SEC
Chapter 8
Software Quality Assurance
2004 by SEC
Chapter 8
Software Quality Assurance
8.1 Quality Concepts
8.2 Software Reviews
8.3 Formal Technical Reviews
8.4 Software Measurement and Quality Metrics
8.5 SQA Plan
8.6 Software Quality Standards
Exercise
440
2004 by SEC
Chapter 9
Software Maintenance
2004 by SEC
Chapter 9
Software Maintenance
9.1 Software Evolution
9.2 Types of Software Maintenance
9.3 Maintenance Techniques
9.4 The Management of Maintenance
9.5 Qualities in Maintenance
9.6 Reengineering, Reverse Engineering and Forward
Engineering
Exercise
442
2004 by SEC
443
2004 by SEC
Software Evolution
444
2004 by SEC
Law
Description
Continuing change
Increasing complexity
445
2004 by SEC
Description
Organizational stability
Conservation of familiarity
446
2004 by SEC
Software maintenance
Changes to the software are made in response to changed requirements
but the fundamental structure of the software remains stable. This is
most common approach used to system change.
447
2004 by SEC
Architectural transformation
This is a more radical approach to software change then maintenance
as it involves making significant change to the architecture of the
system.
Software re-engineering
This is different from other strategies in that no new functionality is
added to the system.
System re-engineering may involve some structural modifications but
dose not usually involves major architectural change.
448
2004 by SEC
449
2004 by SEC
Software Maintenance
450
2004 by SEC
Maintenance Characteristics
451
2004 by SEC
Types of Maintenance
452
2004 by SEC
453
2004 by SEC
freedom
constrained by existing
system
defects have no
immediate effect
methods available
standards may be
enforced
454
2004 by SEC
Maintenance Examples
Y2K
many, many systems had to be updated
language analyzers (find where changes need to be made)
Anti-Virus Software
don't usually have to update software, but must send virus definitions
455
2004 by SEC
456
2004 by SEC
Change
requests
Impact
analysis
Release
planning
Fault
repair
Flat form
adaptation
Change
implementation
System
release
System
enhancement
457
2004 by SEC
Change Requests
Fault repair
458
2004 by SEC
Change Implementation
Proposed
changes
Requirements
analysis
Requirements
updating
Software
development
459
2004 by SEC
Emergency Repair
Change
requests
Analyze
sourcecode
Modify
sourcecode
Delivermodified
system
460
2004 by SEC
461
2004 by SEC
462
2004 by SEC
463
2004 by SEC
Architectural Evolution
Change drivers
464
2004 by SEC
Systemage
Systemstructure
Hardware
procurement
policies
Description
Returnsontheinvestmentofdistributingalegacysystem
dependonitsimportancetothebusinessandhowlongit
willremainimportant.Ifdistributionprovidesmoreefficient
supportforstablebusinessprocessesthenitismorelikelyto
beacosteffectiveevolutionstrategy.
Theolderthesystemthemoredifficultitwillbetomodify
itsarchitecturebecausepreviouschangeswillhavedegraded
thestructureofthesystem.
Themoremodularthesystem,theeasieritwillbetochange
thearchitecture.Iftheapplicationlogic,thedata
managementandtheuserinterfaceofthesystemareclosely
intertwined,itwillbedifficulttoseparatefunctionsfor
migration.
Applicationdistributionmaybenecessaryifthereis
companypolicytoreplaceexpensivemainframecomputers
withcheaperservers..
465
2004 by SEC
466
2004 by SEC
Services
Database
Idealmodelfordistribution
Userinterface
Services
Database
Reallegacysystems
467
2004 by SEC
468
2004 by SEC
Middlewarelayer(wrapper)
Userinterface
Legacysystem
Characterterminals
469
2004 by SEC
Distribution Options
The more that is distributed from the server to the client, the
higher the costs of architectural evolution
470
2004 by SEC
Server: Services
Database
Server:Database
Client:Presentation
Client:Presentation
Interactioncontrol
Datavalidation
Client:Presentation
Interactioncontrol
Datavalidation
Services
Increasingcost
andeffort
471
2004 by SEC
472
2004 by SEC
DesktopPCclientswith
GUIinterface
Legacysystem
Application
services
Database
Screenmanagement
middleware
Userinterface
473
2004 by SEC
474
2004 by SEC
475
2004 by SEC
476
2004 by SEC
477
2004 by SEC
Application age
(software rust?) older programs were probably worse written and have
probably been patched more
Size
measured in KLOC, number of input/output files
Programming language
4gls are supposed to produce more maintainable code than 3gls
478
2004 by SEC
Processing environment
files harder to maintain than databases, real-time harder than batch
Structured programming
there is conflicting evidence whether this really helps
479
2004 by SEC
Modularization
(central thesis of all the oo techniques) small reasonably self contained
pieces of code should be easier to maintain
Documentation generation
maintenance of documentation is as expensive as maintenance of code
End-user involvement
some researchers believe when end users are more involved
maintenance decreases
480
2004 by SEC
Maintenance management
scheduling and the attitudes of management to affects productivity
481
2004 by SEC
Changing priorities
chaotic nature of maintenance requests, the length of maintenance
tasks causing new requests to come along before an ongoing task is
done.
482
2004 by SEC
483
2004 by SEC
Maintenance Prediction
484
2004 by SEC
485
2004 by SEC
Complexity depends on
486
2004 by SEC
487
2004 by SEC
Maintenance Costs
488
2004 by SEC
Time and money (software that costs 10 a line to develop costs 400 a
line to maintain)
489
2004 by SEC
System1
System2
0
50
100 150
Developmentcosts
200 250
300
500
Maintenancecosts
490
2004 by SEC
Team stability
Contractual responsibility
Staff skills
Maintenance costs are reduced if the same staff are involved with them for
some time
491
2004 by SEC
Change Management
492
2004 by SEC
493
2004 by SEC
494
2004 by SEC
Date: 1/9/98
Requested change: when a component is selected from the structure, display the name of the file
where it is stored.
Change analyzer: G.Dean
analysis Date:10/9/98
Change implementor:
Date of change:
QA decision:
495
2004 by SEC
496
2004 by SEC
497
2004 by SEC
498
2004 by SEC
499
2004 by SEC
500
2004 by SEC
501
2004 by SEC
502
2004 by SEC
Software Rejuvenation
Re-documentation
Creation or revision of alternative representations of software
Generates:
Restructuring
transformation of the systems code without changing its behavior
503
2004 by SEC
Reverse Engineering
Analyzing a system to extract information about the behavior and/or
structure
also Design Recovery - recreation of design abstractions from
code, documentation, and domain knowledge
Generates:
structure charts, entity relationship diagrams, DFDs, requirements
models
Re-engineering
Examination and alteration of a system to reconstitute it in another
form
Also known as renovation, reclamation
504
2004 by SEC
System Re-engineering
505
2004 by SEC
When to Re-engineer
506
2004 by SEC
Re-engineering Advantages
Reduced risk
Reduced cost
507
2004 by SEC
System
specification
Designand
implementation
Ne w
system
Understandingand
transformation
Reengineered
system
Forwardengineering
Existing
softwaresystem
Softwarereengineering
508
2004 by SEC
Original
program
Modularised
program
Originaldata
Reverse
engineering
Program
modularisation
Sourcecode
translation
Data
reengineering
Program
structure
improvement
Structured
program
Reengineered
data
509
2004 by SEC
510
2004 by SEC
Automatedprogr am
restructuring
Automatedsource
codeconversion
Programanddata
restructuring
Automatedr estructuring
withmanualchanges
Restructuringplus
architecturalchanges
Increasedcost
511
2004 by SEC
512
2004 by SEC
Systemtobe
reengineered
Identifysource
codedifferences
Designtranslator
instructions
Systemtobe
reengineered
Reengineered
system
Automatically
transla tecode
Manually
transla tecode
513
2004 by SEC
514
2004 by SEC
515
2004 by SEC
516
2004 by SEC
Condition Simplification
Complexcondition
ifnot(A>Band(C<Dornot(E>F)))...
Simplifiedcondition
if(A<=Band(C>=DorE>F)...
517
2004 by SEC
Programtobe
restructured
Restructur ed
program
Analyserand
graphbuilder
Program
generator
Graph
repr esentation
518
2004 by SEC
Restructuring Problems
Loss of comments
Loss of documentation
519
2004 by SEC
Module types
Data abstractions
Hardware modules
Functional modules
520
2004 by SEC
Use a browser to find all data references and replace with reference
to the data abstraction
521
2004 by SEC
522
2004 by SEC
Data Re-engineering
523
2004 by SEC
524
2004 by SEC
Data Problems
525
2004 by SEC
Hard-coded literals
No data dictionary
526
2004 by SEC
Data Conversion
527
2004 by SEC
Programtobereengineered
Data
analysis
Entityname
modification
Literal
replacement
Datadefinition
reordering
Stage1
Data
reformatting
Defaultvalue
conversion
Validationrule
modification
Stage2
Changesummarytables
Data
conversion
Stage3
Modified
data
528
2004 by SEC
Reverse Engineering
529
2004 by SEC
Programstucture
diagrams
Automated
analysis
Systemtobe
reengineered
Manual
annotation
System
information
store
Document
generation
Datastucture
diagrams
Traceability
matrices
530
2004 by SEC
References
531
2004 by SEC
Chapter 10
Formal Methods and Software
Engineering
2004 by SEC
Chapter 10
Formal Methods and Software
Engineering
10.1 Formal Method Concepts
10.2 Software Engineering Mathematics
10.3 Algebra-Based Specification
10.4 Model-Based Specification
10.5 A Formal Specification in Z
Exercise
533
2004 by SEC
2004 by SEC
Formal Method
535
2004 by SEC
Formal specification
Transformational development
Program verification
536
2004 by SEC
Market changes
537
2004 by SEC
538
2004 by SEC
539
2004 by SEC
User requirements
System requirements
540
2004 by SEC
System
System
requirements
requirements
definition
definition
Architectural
Architectural
design
design
Formal
Formal
specification
specification
High-level
High-level
design
design
Specification
Design
Specification and design [SOM2004]
541
2004 by SEC
Formal
Formal
specification
specification
User
User
requirements
requirements
definition
definition
High-level
High-level
design
design
System
System
modeling
modeling
Architectural
Architectural
design
design
542
2004 by SEC
Cost Profile
There are greater up front costs as more time and effort are spent
developing the specification;
543
2004 by SEC
Validation
cost
Design and
implementation
Validation
Design and
implementation
Specification
Specification
544
2004 by SEC
Specification Techniques
Algebraic approach
Model-based approach
545
2004 by SEC
Model-based
Concurrent
Lotos (Bolognesi and
Brinksma, 1987)
Z (Spivey, 1992)
B (Wordsworth, 1996)
546
2004 by SEC
547
2004 by SEC
Formal Language
Its syntax which specifies how these symbols may be put together
548
2004 by SEC
Semantics
549
2004 by SEC
Formal System
Inference rules
550
2004 by SEC
551
2004 by SEC
552
2004 by SEC
553
2004 by SEC
Predicate calculus
Formal language: predicate logic
554
2004 by SEC
Set Theory
555
2004 by SEC
Equality between sets: two sets S and T are equal if they both
have the same members
( S = T ) ( x x S x T )
556
2004 by SEC
prime number {x : N | y ( y N y x ) ( y 1 y x )}
Cartesian products: the set of all ordered pairs (x, y), where
xS yT is called the cartesian product of sets S and T
557
2004 by SEC
Relation
Relation
x
Binary relation: R: S T
E.g.: x y R
558
2004 by SEC
Relation (contd)
559
2004 by SEC
Relation (contd)
Composition of relations:
If R and Q are two relations declared as follows:
R: X Y and Q: YZ
then their composition is
R ; Q {x : X ; z : Z | (y : Y ( x R y y Q x )) x z}
560
2004 by SEC
Title
Author
wrote
Author
Publisher
issued_by
Publisher
wrote ; issued_by
561
2004 by SEC
Relation (contd)
Domain restriction
For drawing attention to those pairs in a relation whose first members
are members of some other set of interest
E.g.
Female wrote
Domain subtraction
For drawing attention to those pairs in a relation whose first members
are NOT members of some other set of interest
E.g.
Female wrote
562
2004 by SEC
Relation (contd)
Range restriction
For drawing attention to those pairs in a relation whose second members
are members of some other set of interest
E.g.
wrote novel
Domain subtraction
For drawing attention to those pairs in a relation whose second members
are NOT members of some other set of interest
E.g.
wrote novel
563
2004 by SEC
Author
title
female
title
novel
564
2004 by SEC
Functions
Injection
A function in which the second members of the pairs are unique is
called injection
Injections are functions whose inverses are also functions
one-to-one
565
2004 by SEC
Functions (contd)
Surjection
A surjection function from S to T is one where the range is the whole
of T
onto
566
2004 by SEC
Functions (contd)
Function
Injection
f:S
f:ST
total
1
2
3
4
a
b
partial
1
2
3
4
a
b
1
2
3
4
f:S
a
b
c
d
e
1
2
3
4
f:S
f:ST
Surjection
1
2
3
4
T
a
f:S
a
b
c
1
2
3
4
T
a
b
c
567
2004 by SEC
Functions (contd)
Bijection
The set of all partial bijections from S to T to be those partial functions
that are both injections and surjections
The set of all total bijections fro S to T to be those partial bijections
that are total
Functional overriding
f g = (dom g f ) g
f g : a function identical to f except on the
domain of g it agrees with g
568
2004 by SEC
569
2004 by SEC
Interface Specification
Large systems are decomposed into subsystems with welldefined interfaces between these subsystems
570
2004 by SEC
Sub-system
A
Sub-system
B
571
2004 by SEC
Specification Components
Introduction
Description
Signature
Defines the sort (the type name) and declares other specifications
that are used
Axioms
572
2004 by SEC
sort <name>
imports <LIST OFSPECIFICATION NAMES>
Informal description of the sort and its operations
Operation signatures setting out the names and the types
of the parameters of the operations defined over the sort
Axioms defining the operations over the sort
573
2004 by SEC
Specification structuring.
Specification naming.
Operation selection.
Syntax definition
Axiom definition
574
2004 by SEC
Specification Operations
Constructor operations
Inspection operations
575
2004 by SEC
Example:
Interface Specification in Critical
Systems [SOM2004]
576
2004 by SEC
A Sector Object
577
2004 by SEC
Primitive Operations
578
2004 by SEC
Sector
specification
[SOM2004]
SECTOR
sort Sector
imports INTEGER, BOOLEAN
Enter - adds an aircraft to the sector if safety conditions are satisfed
Leave - removes an aircraft from the sector
Mo ve - moves an aircraft from one height to another if safe to do so
Lookup - Finds the height of an aircraft in the sector
Cre ate - creates an empty sector
Put - adds an aircraft to a sector with no constraint checks
In-space - checks if an aircraft is already in a sector
Occupied - checks if a specified height is available
Enter (Sector, Call-sign, Height) Sector
Leave (Sector, Call-sign) Sector
Mo ve (Sector, Call-sign, Height) Sector
Lookup (Sector, Call-sign) Height
Cre ate Sector
Put (Sector, Call-sign, Height) Sector
In-space (Sector, Call-sign) Boolean
Occupied (Sector, Height) Boolean
Enter (S, CS, H) =
if
In-space (S, CS ) the n S exception (A ircraft already in sector)
elsif Occupied (S, H) the n S exception (Height conflict)
else Put (S, CS, H)
Leave (Create, CS) = Create exception (A ircraft not in sector)
Leave (Put (S, CS1, H1), CS) =
if CS = CS1 the n S else Put (Leave (S, CS), CS1, H1)
Mo ve (S, CS, H) =
if
S = Create the n Create exception (No aircraft in sector)
elsif not In-space (S, CS) the n S exception (A ircraft not in sector)
elsif Occupied (S, H) the n S exception (Height conflict)
else Put (Leave (S, CS), CS, H)
-- NO-HEIGHT is a co nstant indicating that a valid height cannot be returned
Lookup (Create, CS) = NO-HEIGHT exception (A ircraft not in sector)
Lookup (Put (S, CS1, H1), CS) =
if CS = CS1 the n H1 else Lookup (S, CS)
Occupied (Create, H) = false
Occupied (Put (S, CS1, H1), H) =
if
(H1 > H and H1 - H 300) or (H > H1 and H - H1 300) the n true
else Occupied (S, H)
In-space (Create, CS) = false
In-space (Put (S, CS1, H1), CS ) =
if CS = CS1 the n true else In-space (S, CS)
579
2004 by SEC
Specification Commentary
Define Occupied and In-space using Create and Put and use
them to make checks in other operation definitions
580
2004 by SEC
581
2004 by SEC
Model-Based Specification
582
2004 by SEC
Behavioural Specification
583
2004 by SEC
584
2004 by SEC
Z as a Specification Language
585
2004 by SEC
Definegiven
setsandtypes
Writeinformal
specification
Decompose
system
Specifysystem
components
Compose
component
specifications
Definestate
variables
Defineinitial
state
Define
correct
operations
Define
exceptional
operations
Combine
operation
schemas
586
2004 by SEC
Schemas
Z schemas
A schema includes
A predicate part
587
2004 by SEC
Schemas (contd)
e.g. [DIL94]
Schema name
PhoneDB
members: P Person
telephones: Person phone
Declaration part
Predicate part
588
2004 by SEC
Schemas (contd)
589
2004 by SEC
Example:
Internal Telephone Directory
Requirements[DIL94]
A university wants to computerize its internal telephone directory. The
database must keep a record of all the people who are currently
members of the university (as only they can have telephone
extensions). The database must cope with the possibility that one
person may be reached at several extensions and also with the
possibility that several people might have to share an extension.
590
2004 by SEC
Example:
Internal Telephone Directory (contd)
Six operations are to be provided, namely
That of removing a person from the database along with all those
entries in which he or she figures
591
2004 by SEC
Type Definition
Type definition
592
2004 by SEC
593
2004 by SEC
State Space
Relation
PhoneDB
members: P Person
telephones: Person Phone
dom telephones members
594
2004 by SEC
PhoneDB
members: P Person
telephones: Person phone
dom telephones members
595
2004 by SEC
596
2004 by SEC
InitPhoneDB
PhoneDB
members =
telephones =
597
2004 by SEC
Schema Operations
Beta
Alpha
x: Z
U, V: P Z
x, y: Z
U: P Z
xV
U V
xy
x+yU
Gamma
Gamma
Alpha Beta
x, y: Z
U, V: P Z
(x V U V ) (x y x + y U)
598
2004 by SEC
Schema inclusion
Alpha
x, y: Z
U: P Z
x<y
Beta
Alpha
V: P Z
xU
Beta
Expanding Beta as:
x, y: Z
U, V: P Z
x<y
xU
599
2004 by SEC
PhoneDB
PhoneDB
PhoneDB
600
2004 by SEC
PhoneDB
PhoneDB
members = members
telephones = telephones
601
2004 by SEC
Operation Specification
602
2004 by SEC
603
2004 by SEC
NotMember
PhoneDB
name?: Person
rep!: Report
name? members
rep! = Not a member
604
2004 by SEC
NotMember
EntryAlreadyExists
605
2004 by SEC
UnknownName
PhoneDB
name?: Person
rep!: Report
name? dom telephones
rep! = Unknown name
606
2004 by SEC
Relational image
y F ( U ) ( x: X xU x y F )
UnknownName
607
2004 by SEC
Basic types
Global constants
User-defined sets
The operations
The user-interface
608
2004 by SEC
References
609
2004 by SEC
Chapter 11
Advanced Topics in Software
Engineering
2004 by SEC
Chapter 11
Advanced Topics in Software
Engineering
11.1 Rapid Software Development
11.2 Component-Based Software Engineering
11.3 Web Engineering
11.4 Agent-Based Software Engineering
11.5 Software Engineering with Computational Intelligence
11.5.1 Knowledge-Based Software Engineering
11.5.2 Trade-off Analysis
11.5.3 Fuzzy Object Oriented Modeling
11.5.4 Goal-Driven Software Engineering
11.6 Real Time Software Design
Exercise
611
2004 by SEC