CIS 4800
Kannan Mohan
Department of CIS
Zicklin School of Business, Baruch College
Copyright © 2009 John Wiley & Sons, Inc.
Copyright © 2009 Kannan Mohan
•
Explain the importance of analysis and design
•
Explain the phases in the systems development life cycle
•
Explain the role of Unified Modeling
Language and Unified Process in systems development
•
1983: F16 autopilot flipped plane upside down whenever it crossed the equator
•
1985: Arthritis-therapy microwave set patient’s heart pacemaker to 214, resulting in fatal coronary
•
1987: NORAD defense radar system mistook the Moon for a hostile incoming missile
•
1988: Bank of America
–
Spent $ 23 Million on MasterNet
–
A computerized accounting and reporting system
–
Spent another $ 60 million to make it work and finally gave up
–
Lost billions of dollars of customer accounts
•
1990: Vancouver Stock exchange index rose 50% when 2 years of round-off errors in the program were corrected
• 1992: “Compatible” teller machines of 2 British banks handled leap years differently, withholding cash and confiscating cards during New Year
Holiday
Recent Significant IT Failures
Company
Hudson Bay (Canada)
UK Inland Revenue
Avis Europe PLC (UK)
Ford Motor Co.
Hewlett-Packard Co.
AT&T Wireless
Year Outcome
2005 Inventory system problems lead to $33.3 million loss.
2004/
5
$3.45 billion tax-credit overpayment caused by software errors.
2004 Enterprise resource planning (ERP) system cancelled after $54.5 million spent.
2004 Purchasing system abandoned after deployment costing approximately $400
M
2004 ERP system problems contribute to $160 million loss.
2004 Customer relations management system upgrade problems lead to $100M loss
Why Should We Care?
Would you buy a car that only had a 28% chance of driving off the lot with no problems?
Software Project Success Rate
(Emam et al, 2008)
Reasons for Project Cancellation
•
Senior management not sufficiently involved
•
Too many requirements and scope changes
•
Lack of necessary management skills
•
Over budget
•
Lack of necessary technical skills
(Emam et al, 2008)
Reasons for Project Cancellation
(Contd.)
•
No more need for the system to be developed
•
Over schedule
• Technology too new; didn’t work as expected
•
Insufficient staff
•
Critical quality problems with software
•
End users not sufficiently involved
(Emam et al, 2008)
Systems Development Life Cycle
Planning
Implementation Analysis
Design
SDLC: Planning
1. Project Initiation
–
Develop a system request
–
Conduct a feasibility analysis
2. Project Management
–
Develop work plan
–
Staff the project
–
Control and direct the project
Why should we build this system?
SDLC: Analysis
1. Develop analysis strategy
2. Gather requirements
3. Develop a system proposal
What should the system do for us?
Where and when will it be used?
SDLC: Design
1. Develop a design strategy
2. Design architecture and interfaces
3. Develop databases and file specifications
4. Develop the program design
How will we build the system?
SDLC: Implementation
1. Construct system
2. Install system
–
Implement a training plan for the users
3. Establish a support plan
Build the system!
Putting the SDLC Together
•
Each phase consists of steps that lead to specific deliverables
•
The system evolves through gradual refinement
•
Once the system is implemented, it may go back into a planning phase for its next revision, a follow-on system, or maintenance releases
Processes and Deliverables
Process
Planning
Analysis
Design
Implementation
Product
Project Plan
System Proposal
System
Specification
New System and
Maintenance Plan
Systems Development Methodologies
•
A methodology is a formalized approach to implementing the SDLC
•
Well-known methodologies include:
–
Waterfall development
–
Prototyping
–
Agile development
Waterfall Development
Prototyping
Agile Development
Extreme
Programming
(Beck, 1999)
Requirements
Design
Implementation
Maintenance
500
400
300
200
100
900
800
700
600
0
Requirements Design Code Development
Test
Acceptance
Test
Operation
60
50
40
% of all faults 30
20
10
0
Requirements Design Construction Operation
Errors Introduced
Errors Observed
Selecting the Right Methodology
Waterfall Usefulness for Prototyping Throwaway
Prototyping
Excellent
Extreme
Programming
Excellent Unclear user requirements
Poor
Unfamiliar technology
Poor
Complex systems Good
Reliable systems Good
Short time schedule
Poor
Schedule visibility Poor
Excellent
Poor
Poor
Poor
Excellent
Excellent
Excellent
Excellent
Excellent
Good
Good
Poor
Poor
Good
Excellent
Good
Process
•
What, when, who, and how?
•
From requirements to software
New or changed requirements
Software Engineering
Process
New or changed system
•
Unified Modeling Language - A visual language
•
Unified Process - A process
The Unified Process
(IBM RUP)
The Unified Process
•
A two-dimensional process framework consisting of phases and flows
–
Phases describe how the system evolves over time
–
Workflows are collections of tasks that occur throughout the lifecycle, but vary in intensity
What is UML?
•
Unified Modeling Language
•
General purpose visual modeling language
•
Not a methodology or a process
•
Industry standard
•
Approved by Object Management Group
(OMG)
Unified Modeling Language
•
Provides a common vocabulary of objectoriented terms and diagramming techniques rich enough to model any systems development project from analysis through implementation
•
Version 2.0 has 14 diagrams in 2 major groups:
–
Structure diagrams
–
Behavior diagrams
History of UML
•
Unifying past approaches
–
Booch method
–
Object Management Technique (OMT) by
Rumbaugh
•
Evolving
–
Changes in profile
–
Latest is UML specification 2.0
Nature of Specification
•
How formal?
–
UML as a –
•
Sketch
•
Blueprint
•
Executable
•
Model Driven Architecture (MDA)
–
Enough details are added into models so code can be generated
UML Structure Diagrams
•
Represent the data and static relationships in an information system
–
Class
–
Object
–
Package
–
Deployment
–
Component
–
Composite structure
UML Behavior Diagrams
•
Depict the dynamic relationships among the instances or objects that represent the business information system
– Activity
– Sequence
– Communication
– Interaction overview
– Timing
– Behavior state machine
– Protocol state machine,
– Use-case diagrams
Architecture
•
Structure
•
Decomposed into parts
•
Interactions of parts
•
4+1 view
Logical view
Diagrams:
Class
Object
Package
State
Process view
Diagrams:
Class
Object
Use case View
Diagrams:
Use case
Interaction
Implementation view
Diagrams:
Component
Deployment view
Diagrams:
Deployment
Summary
•
What is SDLC? Explain the various phases.
•
What are various development methodologies commonly used to develop information systems?
•
What is the difference between UML and UP?
•
What are various skills that are important for those involved in software development?