Software Engineering: Analysis and Design - CSE3308

advertisement
CSE3308/DMS/2001/2
Software Engineering: Analysis and
Design - CSE3308
David Squire
David.Squire@csse.monash.edu.au
Room 5.23A B Block, Caulfield
G12, Building 63, Clayton
9903 1033
(thanks to Martin Dick for initial development of course resources)
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.1
Lecture Outline
 Course
Outline
 What is Software Engineering?
 Why Bother with Software Engineering?
 Product and Process
 The Software Development Lifecycle
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.2
Course outline
 Objectives
 Assessment
 Passing
the Subject
 Lectures, the lecturer and consultation
 Recommended reading
 Assignment Work
 Web Pages
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.3
Objectives
 An
understanding of analysis and design
 A knowledge of the difficulties of specifying
and producing large software products
 An awareness of the problems of managing
large software development projects
 A knowledge of the tools used to analyse and
design systems
 Some knowledge of modern commercial
software engineering practice
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.4
Assessment and Passing
 This
will consist of two components:
 An examination worth 40% of the marks
 Assignments worth 60% of the marks
There will be two practical assignments:
» A group project worth 45%
» An individual assignment worth 15%
 You
need to achieve 50% in both the exam
and the assignments and achieve an overall
mark of 50%, i.e.
 You must get at least 20 marks out of 40 for the exam
 You must get 30 marks out of 60 for the assignments
 You must get 50 marks out of 100 overall
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.5
Lectures
 Lectures
will be held in lecture room S6 at
2:00pm on Wednesdays and C1 at 2:00pm on
Thursdays
 Notes for each week will be made available on
the subject web page in PowerPoint and
Postscript formats
 At some lectures notes will be distributed, when student
work on the notes is necessary
 It is your responsibility to ensure that you have copies of
all notes, including the assignments
 All
lecture material and assignment work is
examinable
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.6
Lecturer and Consulation
 Lecturer:
David Squire
Room 5.23A
Building B - Caulfield campus
Email: David.Squire@csse.monash.edu.au
Phone: 9903 1033
 Consultation times at Clayton campus:
 Wednesday
 Thursday
3pm - 5pm, building 63, room G.12
3pm - 5pm, building 63, room G.12
(note: these times may change - check subject web site)
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.7
Recommended Reading
 There
is no prescribed text. The following
books cover the basic material in the course:
 Booch, G., Rumbaugh, J., and Jacobson, I. The Unified
Modeling Language User Guide (1998) Hargrave Library:
005.12 B724U
 Yourdon, E.: Modern Structured Analysis (1989) Hargrave
004.21 Y81M
 The
lecture notes are long and detailed - the
intent is to give you the material you will need
 A list of further useful books is provided in
your course outline
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.8
Assignment work
 All
work submitted by a group must be solely
the work of that group
 All work submitted by an individual must
solely be the work of that individual
 This is not to mean that you may not consult with others,
but:
If you receive any help, you must specifically
acknowledge that person in your submitted work
 If any student or group of students submits work which is
not their own, they will be disciplined according to the
University and Faculty policies - see the subject web site
 Penalties range from exclusion from University to zero
marks for the subject
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.9
Web pages
 The
subject web site can be found at:
http://www.csse.monash.edu.au/courseware/cse3308/
 From week 2, information will include:
 Lectures (in Powerpoint and Postscript formats)
 Assignment specifications (in Microsoft Word and
Postscript formats)
 Links relevant to the subject
 You
should check the subject web site each
week
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.10
What is Software Engineering?
Group Exercise
 Break
into groups of 4 or 5 (i.e. your
neighbours, don’t move around the theatre)
 Take 5 minutes to write down a definition of
software engineering - this can be in point
form
 After 5 minutes, we will collect definitions
from the class
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.11
What is Software Engineering?
 Many




Definitions
“… the establishment and use of sound engineering
principles in order to obtain economically software that is
reliable and works efficiently on real machines.” (Bauer
1969)
“The application of science and mathematics by which
the capabilities of computer equipment are made useful
to man via computer programs, procedures, and
associated documentation.” (Boehm 1981)
“The application of a systematic, disciplined,
quantifiable approach to the development, operation and
maintenance of software; that is the application of
engineering to software.” (IEEE 1993)
Designing, building and maintaining large software
systems in a cost-effective way.
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.12
Why bother with Software
Engineering?
 Many
very successful projects don’t use
software engineering


examples - early Microsoft, Doom, Hotdog
but they are often not repeatable
 Many
more projects fail because they don’t
use software engineering. Failures occur
because:






of the size of the project relative to previous efforts
key personnel have left
of failure to understand requirements
the project delivers, but lacks the required quality
of the introduction of new technology
of many, many other reasons
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.13
Some classic disasters
 CS90
- How Westpac wasted $250 million
 Therac 25 - Radiation death courtesy of the
computer
 McKinsey’s PeopleNet
 New Jersey Department of Motor Vehicles
 Microsoft’s first database - Omega
 Australian Customs Service - Intelligence
Gathering System
 Denver International Airport
 London Metropolitan Ambulance System
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.14
From E-Trade to E-Grave







3rd largest on-line
stockbroking service in
the world
60,000 trades a day
February 3rd - 75
minutes downtime after
slow access
February 4th - More
downtime
February 5th - 29
minutes of downtime
Two class action law
suits
Stock price dropped
from US$62 to US$48
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.15
Some statistics
 One
in four systems miscarry
 20% turnover in staff is not uncommon
 Major corporations have up to a 30 month
backlog
 Large systems take 3 to 5 years to develop
 Corporations are spending up to 20% of
revenue on Information Technology
 Year 2000 problem took up to 50% of
resources in at least one bank in Australia.
Many of the systems were built in the 1980s
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.16
Product and Process
 Both
are key aspects in software engineering
 We move from an emphasis on product to
process, and back and forth





Structured programming - Product
Structured analysis and design - Process
Data encapsulation (OO languages) - Product
Capability Maturity Model/ISO9000 - Process
Next step?
 We
need to be able to deliver quality software
products to our customers with a consistent,
well-managed and cost-effective process
 Product and process are not a dichotomy
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.17
The Software Product
 Is
not the same as a hardware product



A
Software is developed or engineered, it isn’t
manufactured like a personal computer
Software doesn’t wear out
Most software is custom-built, rather than being
assembled from existing components
software product should






perform the required function
be reliable
be maintainable
be efficient
have an appropriate user interface
have an appropriate lifetime
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.18
A good software product?
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.19
The Software Product
 Is



composed of
Programs
Data
Documentation
 Two


main types of product
Generic - eg. Windows, Macintosh application software
Bespoke - Systems created for specific application areas
 Most
software expenditure is generic
 Most software development effort is bespoke
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.20
The Software Process
 The
set of activities and associated results
which produce a software product
 The sequence of steps required to develop
and maintain software
 Sets out the technical and management
framework for applying methods, tools and
people to the software task
 Definition:

The Software Process is a description of the process
which guides software engineers as they work by
identifying their roles and tasks.
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.21
Characteristics of a good process
 Understandability
 Visibility
 Supportability
 Acceptability
 Reliability
 Robustness
 Maintainability
 Rapidity
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.22
Two questions
Is
there a right process for
software engineers to
adopt?
Will having a good process
guarantee a good product?
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.23
When do we need process?
 We
always have some process!
 The larger the project, the greater the need for
a formal process
 Complexity of building a system when related
to size is not linear.
Size
Gigatron
5,000
Gigatron 2 50,000
Deluxe
Effort
Required
1
20
CSE3308 - Software Engineering: Analysis and Design, 2001
Errors
after
release
25
375 (15
times
Lecture 1A.24
Determining Process
 Several
Schemes
 US Department of Defense use the Project
Formality Worksheet
 Projects rate between 12 (minimal formality)
to 60 (maximum formality)
 Most student projects are well under 20 and
require very minimal formal process to be
successful
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.25
Steps in a Generic Software
Process
 Project
Definition
 Requirements Analysis
 Design
 Program Implementation
 Component Testing
 Integration Testing
 System Testing
 System Delivery
 Maintenance
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.26
Process Activities (1)
 Project


Definition
States the purpose of the project
Makes initial decision on political and technical feasibility
of the project
 Requirements

Analysis
High level definition of the functionality of the system,
primarily from the point of view of the users
 Design


Looks at the software requirements of the system and the
architecture of the system
Lower level design activities - data structures, interface
representations, procedural (algorithmic) details
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.27
Process Activities (2)
 Program

Implementation
Writing or generating the code to build the system
 Component

Testing of the individual components while they are being
built and after they have been completed
 Integration

Testing
Testing of the way individual components fit together
 System

Testing
Testing
Testing of the whole system usually in concert with the
users (acceptance testing)
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.28
Process Activities (3)
 System

Delivery
Implementation of the system into the working
environment and replacement of the existing system
 Maintenance



Corrective
Adaptive
Perfective
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.29
Types of Software Processes
 Traditional/Waterfall
 Prototyping
 Rapid
Application Development (RAD)
 Evolutionary



Incremental
Spiral
Component Assembly
 Formal
Methods
 Fourth Generation Techniques
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.30
The Waterfall Model
Project
Definition
Requirements
Analysis
Design
Program
Implementation
Component
Testing
Integration
Testing
System
Testing
System
Delivery
Maintenance
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.31
Waterfall Model
 Most
widely used
 Each step results in documentation
 May be suitable for well-understood
developments using familiar technology
 Not suited to new, different systems because
of specification uncertainty
 Difficulty in accommodating change after the
process has started
 Can accommodate iteration but indirectly
 Working version not available till late in
process
 Often get blocking states
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.32
Prototyping
 Specifying
requirements is often very difficult
 Users don’t know exactly what they want until
they see it
 Prototyping involves building a mock-up of
the system and using to obtain for user
feedback
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.33
Prototyping
Listen to
Customer
Build/Revise
Mock-up
Customer
test-drives
mock-up
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.34
Prototyping
 Ideally
mock-up serves as mechanism for
identifying requirements
 Users like the method, get a feeling for the
actual system
 Less ideally may be the basis for completed
product



prototypes often ignore quality/performance/maintenance
issues
may create pressure from users on deliver earlier
may use a less-than-ideal platform to deliver e.g Visual
Basic - excellent for prototyping, may not be as effective
in actual operation
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.35
Rapid Application Development
 Similar
to waterfall but uses a very short
development cycle (60 to 90 days to
completion)
 Uses component-based construction and
emphasises reuse and code generation
 Use multiple teams on scaleable projects
 Requires heavy resources
 Requires developers and customers who are
heavily committed
 Performance can be a problem
 Difficult to use with new technology
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.36
Rapid Application Development
Team 1
Team 2
Team 3
Business
modelling
Business
Business
modelling
modelling
Data
modelling
Data
modelling
Data
modelling
Process
modelling
Process
modelling
Process
modelling
Application
generation
Applicatio
n
Application
Testing
and
turnover
generation
generation
Testing and
turnover
CSE3308 - Software Engineering: Analysis and Design, 2001
Testing
and
turnover
Lecture 1A.37
Incremental Development
 Applies
an iterative philosophy to the
waterfall model
 Divide functionality of system into increments
and use a linear sequence of development on
each increment
 First increment delivered is usually the core
product, i.e only basic functionality
 Reviews of each increment impact on design
of later increments
 Manages risk well
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.38
Incremental Development
1st Increment
analysis
design
coding
testing
delivery
2nd Increment
analysis
design
coding
Project
Definition
testing
delivery
3rd Increment
analysis
design
coding
testing
delivery
4th Increment
analysis
CSE3308 - Software Engineering: Analysis and Design, 2001
design
coding
testing
Lecture 1A.39
delivery
The Spiral Model
 Development
cycles through multiple (3-6
task regions (6 stage version)






customer communication
planning
risk analysis
engineering
construction and release
customer evaluation
 Incremental


releases
early releases may be paper or prototypes
later releases become more complicated
 Models
software until it is no longer used
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.40
Spiral Model
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.41
Spiral Model
 Not
a silver bullet, but considered to be one
of the best approaches
 Is a realistic approach to the problems of
large scale software development
 Can use prototyping during any phase in the
evolution of product
 Requires excellent management and risk
assessment skills
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.42
Component Assembly
 Incorporates
features of the spiral model
 Usually based on object technologies, but not
necessarily e.g Visual Basic
 Compose applications from pre-packaged
software components
 Can greatly boost productivity and reuse
 Relies heavily on quality and robustness of
the software components
 Fits into the Engineering/Construction task
region of the spiral model
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.43
Component Assembly
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.44
Formal Methods
 Use
of mathematical techniques to specify
the requirements of the system e.g Z, VDM,
Object-Z
 Mainly used in life or mission-critical
applications, e.g heart pacemakers, NASA
 Can get very high quality software
 Problems



Time-consuming and expensive
Few developers have necessary skills, so extensive
training required
Difficult to use as a tool to communicate with users
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.45
Fourth Generation Techniques
 The
use of CASE and 4GL tools which let you
specify the software at a high-level
 Example: Hamilton-1 uses a formal
specification language to generate complete
system from requirements analysis ($100,000
per license)
 Use of 4GT has grown considerably in the last
decade
 Some indications of productivity
improvements for small and intermediate
applications
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.46
Fourth Generation Techniques
 Large
projects require as much or more
analysis, design and testing to achieve the
time gains from the elimination of coding
 Often problems with efficiency of
automatically generated code
CSE3308 - Software Engineering: Analysis and Design, 2001
Lecture 1A.47
Download