KEMBAR78
Chapter 1 - Introduction | PDF | First Order Logic | Formal Methods
0% found this document useful (0 votes)
33 views39 pages

Chapter 1 - Introduction

Uploaded by

dianamilimo52
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views39 pages

Chapter 1 - Introduction

Uploaded by

dianamilimo52
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 39

Project Management

Lecture 1
Introduction to Project
Management
Overview
 Software engineering
 Software project management
 Formal methods
Software Crisis
 Faulty software
 Delay in completion time
 Over budgeted
 Difficult to maintain software
Some important facts
 Relative cost of the software in a
system is growing
 Increase in demand for software
 Increase in size and complexity of
software
 Increase in performance of hardware
Software Engineering
 No standard definitions
Software Engineering
 Aimed at large software
 Systematic and well-defined techniques,
methodologies and tools
 To design, code, test and maintain
quality software
 Within a resource constrained
environment
Large Software
 Developed by more than one person
 Effective communications are important
– standards, documentation, etc
 Management issues
 Techniques and methodologies are
useful only if automated systems can be
built upon them
Phases of Software
Development
 Requirements analysis and
specifications
 Design
 Coding
 Testing
 Operation
 Maintenance
Some important observations
 Maintenance is the most expensive
phase and coding is the least expensive
phase
 The earlier the detection of faults, the
less expensive the correction of faults
Characteristics of software
 Simple and elegant mathematical
representation
 Logic intensive
 Cannot have partial completion
 Design costs are more expensive
What is a project?
 Key characteristics of a project:
 A planned activity
 Specific objectives or products
 Work to be carried out in several phases
 Limited resources
 Deadline
 Large and complex
Major differences between software
products and hardware products
 Progress of software development is not
obviously visible
 Modifications of software products are
more easy and flexible
 Software products are usually more
complex than the hardware products in
terms of development or construction
cost
Major processes in developing a
software system
 Feasibility study
 Project planning
 Project execution
Feasibility Study
 Analyze the general requirements, costs
and the functionalities and services
provided by the system to be developed
 Aimed to determine whether a system
should be developed or not
 Can be viewed as a project itself
Important factors in planning
a software project
 To know the nature of the system to be
developed
 A management information system or a
control system
 To know clearly the objectives and
products of the project
 How to evaluate the objectives and
products after the completion of the
project
What is management?
 Management involves the following
activities:
 Planning
 Staffing
 Innovating
 Directing
 Monitoring
 Liaising
 …?
What is software project
management?
 Understand the characteristics of
software products
 Understand what is meant by a project
 Understand what is meant by
management
Common problems with
software projects
 Lack of quality standards and measures
 Lack of measurable milestones
 Difficult to make the progress visible
 Poor communications
 Poor documentation
 Frequent changes of requirements
 Over budget and late delivery of software
Major issues of software project
management to be covered
 Software development models
 Software size and cost estimation
 Software project planning
 Software risk management
 Resource allocation
 ISO 9000
 Performance tracking and reporting
Major issues of software project
management to be covered (cont’d)
 Software project configuration
management
 Software project team management
Main problems encountered with
requirements and specifications
 Ambiguous
 Incomplete
 Inconsistent
Main problems encountered with
requirements and specifications (cont’d)
 To overcome these problems via
 Formality – achieving precision
 Abstraction – concentrating on essential
parts
Formal Methods
 Mathematically based techniques
 Providing a universal and concise language
 Supporting formality
 Supporting abstraction
 Supporting logical reasoning
 May support automation
Why formal methods?
 Unambiguous
 Concise
 May support automatic verification
 May support automatic processing
Why not formal methods?
 Lack of knowledge
 Lack of experienced staff
 Lack of supporting tools
 Cost-effectiveness
Formal Methods
 Most commonly used mathematical
techniques:
 Set theory
 Logic
Formal Methods (continued)
 Two important aspects:
 Expressiveness
 Solvable properties – automation
Logic
Expressiveness

 Propositional calculus

Solvability
 First-order predicate calculus
 Second-order predicate calculus
Example (Expressiveness):
Consider the following:
Every citizen has an ID number.
Since John is a citizen, John has an ID
number.
This kind of information cannot be
described using the propositional
calculus; first-order predicate calculus is
required.
Solvable Properties
 A problem is solvable if there is an
algorithm which can determine “yes” or
“no” as the solution to the problem
 A problem is unsolvable if it is not
solvable.
 A problem is partially solvable if there is
an algorithm which can determine “yes”
as the solution to the problem
Solvable Properties
(continued)
 The validity problem of the
propositional calculus is solvable
 The validity problem of the first-order
predicate calculus is unsolvable, but
partially solvable.
 The validity problem of the second-
order predicate calculus is not partially
solvable.
A Dilemma
 More expressive
 Solvable in preference to partially
solvable
 Partially solvable in preference to
unsolvable
Z
 Developed at Oxford University (UK) in
the late 1970s and early 1980s
 Uses set theory and first-order logic to
model the requirements
 Can check inconsistency among
requirements
Z
 A specification language is not a
programming language
 A what-to not a how-to
 Specify pre-conditions and post-
conditions
 Based on state-based models
Essentials of State-Based
Model
Besides variables and their types, we
have:
 State

 Invariant

 Input and output

 Operation
An Example: Container and
Indicator
Container Indicator
light : { on, off }
contents : 
currLevel : 
capacity :  lowLevel : 

contents  capacity light = on  currLevel  lowLevel

Schema Name StorageTank


Container
Schema Signature Indicator

currLevel = contents
Schema Predicate capacity = 1500
lowLevel = 50
An Example: A Storage Tank
StorageTank
contents : 
capacity : 
light : { on, off }
currLevel : 
lowLevel : 

contents  capacity
light = on  currLevel  lowLevel
currLevel = contents
capacity = 1500
lowLevel = 50
An Example: Filling the Tank
Message ::= okMsg | overfillMsg
FillTank Overfill
 StorageTank  StorageTank
fillAmount? :  fillAmount? : 
msg! : Message msg! : Message

currLevel + fillAmount?  capacity currLevel + fillAmount? >


currLevel’ = currLevel + fillAmount? capacity
msg! = okMsg msg! = overfillMsg

DoFillTank  FillTank  Overfill


References
 Hughes, B., and Cotterell, M. (1999)
Software Project Management, 2nd ed.,
McGraw Hill
 Dean, C.N., and Hinchey, M.G. (1996)
Teaching and Learning Formal Methods,
Academic Press
 Sommerville, I. (2001) Software
Engineering, 6th ed., Pearson Education.

You might also like