SYSTEMS ANALYSIS project
1
ISMM1-UC 752: SYSTEMS ANALYSIS
Fall 2019 Instructor: Dr. Antonios Saravanos
Assigned Reading: The Mythical Man Month
2
2
The Book (1)
1. The Tar Pit 2. The Mythical Man-Month 3. The Surgical Team 4. Aristocracy, Democracy, and System Design 5. The Second-System Effect 6. Passing the Word 7. Why Did the Tower of Babel Fail? 8. Calling the Shot 9. Ten Pounds in a Five-Pound Sack 10. The Documentary Hypothesis 11. Plan to Throw One Away 12. Sharp Tools
The Book (2)
13. The Whole and the Parts 14. Hatching a Catastrophe 15. The Other Face 16. No Silver Bullet – Essence and Accident in
Software Engineering 17. “No Silver Bullet” Refired 18. Propositions of The Mythical Man-Month: True or
False? 19. The Mythical Man-Month after 20 years 20. Fifty Years of Wonder, Excitement and Joy
(Epilogue)
3
The Tar Pit (1)
• Large-system programming is a tar pit in the last decade.
• The programming systems product:
A Program
A Programming
Product
A Programming
System
A Programming
System Product
The Tar Pit (2)
A Program
A Programming Product: •can be run, tested, repaired and extended by anybody •general enough •well documented
A Programming System:
•collection of interacting programs •precisely defined interfaces between individual programs •comply with resource limitations •all combinations tested
A Programming System Product:
both Programming System and Programming Product
x3
x3
4
The Tar Pit (3)
• The joys of the craft: – Making things – Making things that are useful to others – The fascination of fashioning complex puzzle-like
objects – Always learning – Such a tractable medium
• The woes of the craft: – Adjusting to the requirement of perfection – Other people tell you what to do – Worse: must use others’ programs!
The Tar Pit (4)
• The woes of the craft (cont.): – Bugs!!! – Bugs get harder as testing progresses – The product gets obsolete upon or even before
completion
5
The Mythical Man-Month (1)
• Most software projects are late. Why? – Assumption that all will go well led the schedule plan – Confuse effort with progress: men and months are NOT
interchangeable! – Software managers tend to please their managers and
because of uncertainty of programmers’ time estimates, plan the schedule poorly [as a discipline we lack estimating data].
– Poor monitoring of project progress – Natural response to schedule slippage is adding
manpower, which makes matters worse.
The Mythical Man-Month (2)
• Optimism: – All programmers are optimists, believing in happy
endings and fairy god-mothers. – Because programming tasks are usually chained end-to-
end, the probability that each will go well is very small. • Man-month:
– Cost vary as a product: men · months. – Progress does not: communication overhead! – Overhead: intercommunication and training.
6
Different projects types:
Men
M on th
s Perfectly partitionable task
Men
M on th
s
Unpartitionable task
Men
M on th
s
Partitionable task requiring communicationTask with complex interrelationships
Men
M on th
s
The Mythical Man-Month (4)
• Proposes a successful rule of thumb: – 1/3 planning – 1/6 coding – 1/4 component test and early system test – 1/4 system test, all components in hand
• Gutless estimating, or: an omelette example • Regenerative schedule disaster:
– An example – Brook’s Law: Adding manpower to a late software
project makes it later.
7
Review
13
Waterfall Model
14
8
Waterfall Model
15
What year did Royce publish his paper on the Waterfall model?
16
9
What year did Royce publish his paper on the Waterfall model?
1970
17
How many steps are there in the Waterfall model?
18
10
How many steps are there in the Waterfall model?
7
19
How many times should one go through the Waterfall process according to Royce?
20
11
How many times should one go through the Waterfall process according to Royce?
2
21
How many times should one go through the Waterfall process according to Royce?
2
Why 2?
22
12
• So what are some other perspectives of Royce’s the waterfall model?
According to Systems Analysis and Design with UML v2.0
13
Planning Phase • The planning phase is the fundamental process
of understanding why an information system should be built and determining how the project team will go about building it.
Analysis • The analysis phase answers who will use the
system, what the system will do, and where and when it will be used. During this phase, the project team investigates any current system(s), identifies opportunities for improvement, and develops a concept for the new system. The phase has three steps: 1) analysis strategy; 2) requirements gathering; the development of the system proposal.
14
Design • The design phase decides how the system will
operate, in terms of the hardware, software and network infrastructure; the user interface, forms and reports; and the specific programs, databases, and files that will be needed.
Implementation • The final phase of the SDLC is the
implementation phase, during which the system is actually built (or purchased, in the case of a packaged software design). This phase usually gets the most attention as it is usually the longest and most expensive phase of the development process. It is usually comprised of the following steps: 1) systems construction; 2) installation; 3) establishment of a support plan.
15
Waterfall Model According to the BCS
• Also known as the once-through approach
• Best for projects where requirements are known up front
Source: Project Management for IT-Related Projects (p. 16)
29
Is Waterfall a Realistic Approach? • Alistair Cockburn: In waterfall
development, you do “requirements” only once; then you do “design” only once; then you do “programming” only once (ha! ha! fooled you – of course you do the programming over and over and over, but don’t tell your PM that!); you “test” only once (ha! ha! of course not! – but that’s the theory); you “integrate” only once; you “deliver” only once (that part may be true).
16
Problems with Waterfall Approach • Feedback ignored, milestones lock in design
specs even when conditions change • Limited user involvement (only in requirements
phase) • Too much focus on milestone deadlines of
SDLC phases to the detriment of sound development practices
Are there other approaches? What is Frederick Brook’s approach???
17
Frederick Brook’s approach • Planning • Coding • Component Test and Early System Test • System Test, All Components in Hand
Frederick Brook’s approach • Planning • Coding • Component Test and Early System Test • System Test, All Components in Hand
Do we know how much time we should invest on each of these elements?
18
Frederick Brook’s approach • 1/3 Planning • 1/6 Coding • 1/4 Component Test and Early System Test • 1/4 System Test, All Components in Hand
Are there other approaches? Well according to our textbook there are three broad categories… • Structured
– Waterfall – Parallel
• RAD – Phased – Prototyping – Throwaway Prototyping
• Agile – Extreme
19
Parallel Development Methodology
What does Brook’s Think of Parallel?
20
What does Brook’s Think of Parallel?
What does Brook’s Think of Parallel?
Source: http://home.ubalt.edu/abento/737/projmgt.html
21
Why?
Why? Communication
E = n(n – I) / 2
22
Are there other approaches? Well according to our textbook there are three broad categories… • Structured
– Waterfall – Parallel
• RAD – Phased – Prototyping – Throwaway Prototyping
• Agile – Extreme
Rapid Application Development (RAD)
• Decreases design and implementation time
• Involves: extensive user involvement, prototyping, integrated CASE tools, code generators
• More focus on user interface and system function, less on detailed business analysis and system performance
23
Rapid Application Development (RAD) Lifecycle
Phased Development Methodology
24
Prototyping
47
Throwaway Prototyping
48
25
Boehm Spiral Model
Extreme Programming
26
Comparing Methodologies
Quick Exercise
27
Incremental Model
• Development and delivery of functionality occurs in increments
• Works well when requirements are known beforehand
• Projects are broken down into sub- projects
Source: Project Management for IT-Related Projects (p. 18)
53
Incremental Cycle
28
Incremental Model
Iterative Model
• Ideal for situations where not all requirements are known up front
• Need for development to begin as soon as possible
Source: Project Management for IT-Related Projects (p. 19) 56
29
Iterative Cycle
Iterative Model
30
Incremental vs. Iterative
• Incremental fundamentally means add onto. Incremental development helps you improve your process.
• Iterative fundamentally means re- do. Iterative development helps you improve your product.
• Is iterative and incremental the same thing?
31
Incremental vs. Iterative
Source: http://www.applitude.se/images/inc_vs_ite.png
61
Iterative and Incremental Combined
32
Alistair Cockburn • What’s Alistair’s take on Iterative vs. Incremental?
Incremental vs. Iterative • in incremental development, you do each of those
activities multiple times … that is, you go around the requirements – design – programming – testing – integration – delivery cycle multiple times. You “iterate” through that cycle multiple times. (“iterate” – get it? sigh…)
• in iterative development, you also do each of those activities multiple times … you go around the requirements – design – programming – testing – integration – delivery cycle multiple times. You “iterate” through that cycle multiple times. By Gummy! Both of those are “iterative” development! WOW!
33
Incremental vs. Iterative (cont’d)
• Of course, the $200,000 question is, do you repeat the cycle
• “on the same part of the system you just got done with” or
• “on a new part of the system”??? How you answer that question yields very different results on what happens next on your project.
Quick Exercise
34
Specialization
Computer-aided software engineering (CASE) tools
• CASE tools are productivity tools for systems analysts that have been created explicitly to improve their routine work through the use of automated support
35
Reasons for Using Case Tools
• Reasons for using CASE tools – Increasing analyst productivity – Improving analyst-user communication – Integrating life cycle activities
Case Tools
• Classic CASE tools - established software development support tools (e.g. interactive debuggers, compilers, etc.)
• Real CASE tools - can be separated into three different categories, depending on where in the development process they are most involved in: – Upper - support analysis and design phases – Lower - support coding phase – Integrated - also known as I-CASE support analysis, design and
coding phases
36
Case Tool Classifications
• Upper CASE tools perform analysis and design.
• Lower CASE tools generate programs from CASE design.
Upper CASE Tools
• Create and modify the system design. • Help in modeling organizational
requirements and defining system boundaries.
37
Lower CASE Tools
• Lower CASE tools generate computer source code from the CASE design.
• Source code is usually generated in several languages.
• Decreases maintenance time • Generates error-free code
Computer-Aided Software Engineering (CASE) Tools
• Diagramming tools enable graphical representation.
• Computer displays and report generators help prototype how systems “look and feel”.
• IBM’s Rational products are the best known CASE tools.
38
Computer-Aided Software Engineering (CASE) Tools
• Analysis tools automatically check for consistency in diagrams, forms, and reports.
• A central repository provides integrated storage of diagrams, reports, and project management specifications.
Computer-Aided Software Engineering (CASE) Tools (Cont.)
• Documentation generators standardize technical and user documentation.
• Code generators enable automatic generation of programs and database code directly from design documents, diagrams, forms, and reports.
39
CASE Tools
FIGURE 1-11 Screen shot of ArgoUML, an open source CASE tool
(Source: http://argouml.tigris.org/)
CASE Tools