HNDIT1212 Lecture 3 Components of System Development
HNDIT1212 Lecture 3 Components of System Development
com
IT2005
System Analysis
& Design
Week 5 & 6 -Major Components of Systems Development
1
www.hndit.com
1. Methodology
2. Modeling Methods or Techniques
3. Tools
2
www.hndit.com
Methodology
• A very formal and accurate system
development process that defines a set of
– Activities
Methodology
– Methods
– Best practices
– Deliverables Methods Tools
Or Techniques
– Automated tools
3
www.hndit.com
Methodology..
Provides the framework
1. Has a predefined set of steps
2. Ensures that systems are built in the most effective
way
Eg:
SSADM (structured methodologies)
STRADIS (Structured Analysis, Design and
Implementation of Information Systems)
YSM (Yourdon Systems Method)
4
www.hndit.com
Methodology
5
www.hndit.com
Modeling method
• A set of techniques used to implement a Methodology.
• Data Flow Diagrams
– A process model
– Depict the flow of data through a system and the work performed
by the system
• Entity Relationship Diagrams
– A data model
– Depict data in terms of entities and relationships described by the
data
– Consists of several notations
• Structure Charts etc.
6
www.hndit.com
Tools
Tools are Software systems and they assist analysts
and designers to build information systems.
General Aim :
– Decrease the human effort required to develop
the software
– Increase the quality of software
– Tools will support methodologies but will not
replace system analysts.
e.g. Easy Case, Rational Rose
7
www.hndit.com
Underlying Principles for System
Development methodology
P1: Get the system users involved
P2: Use a problem-solving approach
P3: Establish phases and activities.
P4 : Document through out Development
P5: Establish standards
P6 :Manage the process and Projects
P7:Justify systems as Capital Investments.
P8:Don’t be afraid to cancel or revise scope.
P9:Divide and conquer
P10: Design systems for growth and change.
8
www.hndit.com
9
www.hndit.com
•
The Waterfall model
Separate and distinct phases of specification
and development
• A linear sequential model
requirements
analysis & spec
software
design
coding
testing
Maintenance
11
www.hndit.com
Software Life Cycle Models
• Waterfall lifecycle
12
www.hndit.com
Waterfall Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff,
track)
Works well when quality is more important
than cost or schedule
13
www.hndit.com
Problems with Waterfall Development
Approach
14
www.hndit.com
Problems with Waterfall Development
Approach……
There are several problems with this approach.
1. It has a rigid design
2. Inflexible
3. It has a top-down procedure
4. One phase must be completed before the next phase
starts
5. No phase can be repeated
6. Time consuming
There are several criticisms of the Waterfall
development approach
15
www.hndit.com
Outline
Requirements
Evolutionary
prototyping Delivered system
Throw-away Prototyping
www.hndit.com
Delivered
design and validate software
implement system
system system
www.hndit.com
Throw-away Prototyping
NO
YES
Deliver System
system Adequate?
www.hndit.com
Structured Evolutionary Prototyping
Strengths
1. Customers can “see” the system requirements as they are
being gathered
2. Developers learn from customers
3. A more accurate end product
4. Unexpected requirements accommodated
5. Allows for flexible design and development
6. Interaction with the prototype stimulates awareness of
additional needed functionality
24
www.hndit.com
Prototyping Weaknesses
• Prototyping can lead to false expectations.
• Prototyping can lead to poorly designed systems.
• Overall maintainability may be overlooked
• The customer may want the prototype delivered.
• Process may continue forever (scope creep)
• Continual change tends to corrupt the structure of
the prototype system. Maintenance is therefore
likely to be difficult and costly.
25
Evolutionary Prototyping (continued) www.hndit.com
Disadvantages
* Prototype usually evolve so quickly that it is not cost- effective to
produce greater deal of documentation
* Continual change tends to corrupt the structure of the prototype
system. Maintenance is therefore likely to be difficult and costly.
* It is not clear how the range of skills which is normal in software
engineering teams can be used effectively for this mode of
development.
* Languages which are good for prototyping not always best for final
product.
The RAD Model www.hndit.com
Team 3
Team 2
Business
Team 1 Business modeling
Business modeling
Data
modeling
Data modeling
modeling
Data Process
modeling modeling
Process
modeling generation
Application
Application generation Testing &
generation turnover
Testing &
turnover
60 –90 days
www.hndit.com
Processes in the RAD model
Cutomer
Prototype
Feedback Review
Deployment
29
www.hndit.com
conception
architecture
deliver 1st
structure Increment
analysis design code test
deliver 2nd
feedback
Increment
analysis design code test
Incremental Development
• The Incremental development model involves
developing the system in an incremental fashion.
• The most important part of the system is fist delivered
and the other parts of the system are then delivered
according to their importance.
• Incremental development is more manageable than
evolutionary prototyping as the normal software process
standards are followed.
• Plans and documentation must be produced
www.hndit.com
34
www.hndit.com
•
Spiral model
The spiral model (Boehm, 1988) aims at risk reduction by any
means in any phase.
• quadrant 1
– determine objectives of that phase
– alternatives and constraints.
• quadrant 2
– analyzed form the viewpoint of risk
– solutions to minimize these risks are investigated, often using
prototyping.
• quadrant 3
– where the traditional waterfall model phases are put into practice.
• Quadrant4
– the results of the risk-reduction strategies
36
Spiral model www.hndit.com
37
www.hndit.com
Spiral Quadrant
Determine objectives, alternatives and constraints
40
www.hndit.com
Spiral Quadrant
Plan next phase
• Typical activities
– Develop project plan
– Develop configuration management plan
– Develop a test plan
– Develop an installation plan
41
www.hndit.com
Spiral Model Strengths
• Provides early indication of insurmountable
risks, without much cost
• Users see the system early because of rapid
prototyping tools
• Critical high-risk functions are developed first
• The design does not have to be perfect
• Users can be closely tied to all lifecycle steps
• Early and frequent feedback from users
42
www.hndit.com
Spiral Model Weaknesses
• Time spent for evaluating risks too large for
small or low-risk projects
• The model is complex
• Risk assessment expertise is required
• May be hard to define objective, verifiable
milestones that indicate readiness to proceed
through the next iteration
43
www.hndit.com
46
www.hndit.com
V-Shaped Strengths
• Emphasize planning for verification and
validation of the product in early stages of
product development
• Each deliverable must be testable
• Project management can track progress by
milestones
• Easy to use
47
www.hndit.com
V-Shaped Weaknesses
• Does not easily handle concurrent events
• Does not handle iterations or phases
• Does not easily handle dynamic changes in
requirements
• Does not contain risk analysis activities
48
www.hndit.com
Waterfall vs Agile
Timeboxing
49
www.hndit.com
RAD: Definition?
• Many Definitions : same philosophy
• Definition 1:
– A software development process that allows
usable systems to be built within a short period
(as little as 2-3 months), often with compromises.
– It is a generic term with the meaning “speedy
development” or “Shorter schedule”
50
www.hndit.com
RAD
• Rapid Application Development (RAD) refers
to a type of software development which uses
“optimal” planning in favor of rapid
prototyping.
• The "planning" of software developed using
RAD is interleaved with writing the software
itself.
• The lack of extensive pre-planning generally
allows software to be written much faster, and
makes it easier to change requirements.
51
www.hndit.com
RAD lifecycle
• RAD compresses the step-by-step
development process into an iterative process.
– User requirements are refined.
– A system is designed.
– A prototype is developed.
– The prototype is reviewed by end-user.
– User provide feedback.
– The process is repeated.
52
www.hndit.com
Review Questions
1. The following are initial requirements specified by some customers. Identify the
most suitable process models for these software projects.
(a) “ I need to develop a simple library system for my school. I know the
requirements very well”
(b) “I need to develop a management information system for my organization,. I may
use it for all the branches in several location in Sri Lanka. I might use it on the
Internet”.
(c ) “ I need to develop a software system to control a space shuttle”