Please enable JavaScript.
Coggle requires JavaScript to display documents.
Fundamentals of Software Engineering (Process Examples (Incremental…
Fundamentals of Software Engineering
Software Process
Research
Ethics
Use cases
Review board
Marketability
Need
Users
Training
Planning
Design
Problem definition
Process Improvement
Metrics
Schedule
Cost
Human Resources
Quality
Engineering
Standards
Manufacture
Maintainability
Quality Control
Metrics
Success
Good Quality
Commitment to Schedule
Within Cost & Profitable
Team Member Motivation
Knowledge Gained
Future Reusability
Customer Satisfaction
Obstacles
Poorly defined process
Process is not matured
Poorly defined
Incomplete
Ambiguity
No mechanism for review
Misses objective
Unknown risks
Conformance
Not practical
Model
Reasons
Who?
Why?
Verification
Suitability
What is it?
A generalization of a process
Implemented repeatedly with minor adjustments to meet the project environment and activities
Description of variations in activities and their sequence
Useful when
Definable Requirements
Experienced Analysts or Designers
Good resource allocation skills
Resource rotation plan
Management
People
Quality
Risk
Change
Disaster
Configuration
Process
Specific collection of activities
Sequence of activities is critical
Activities
Framework - applicable to all projects
Communication
Planning
Modeling
Construction
Deployment
A set of Actions defined by a grouping of tasks, work products, validations, and milestones.
Umbrella - applicable through out the process
Risk Management
Quality Assurance Reviews
Metrics Collection
Causal Analysis
Process Examples
Waterfall / Linear Sequential
Pitfalls
Not iterative
Customer may not state all requirements
Customer sees product very late
If major problems are found at the end it is dangerous, mitigate with risk management, reviews and process maturity
Resources need to be allocated in steps of else they would be waiting for each other
No feedback
Optimized Waterfall
Successfully used in industry
Provides for revisions / feedback
Most applications have well known requirements of domain info
Quality of reviews / requirement definition skills are good
Resource allocation must be optimized
If suitable, it is most cost effective
Combines the best of iterative and linear process
When utilized by experienced analyst / designers, the amount of feedback can be reduced
Experience of people leading the team is critical
Incremental
Initial requirement is clear
incremental requirements
Deployment constraints
planned phases of project
working product is required in each delivery
Rapid Application Development
Short cycles
Adaptive Waterfall
60 - 90 day delivery
Pitfalls
Modular is necessary
May not be good for high performance
Not matured
Lots of resources for large projects
not for high risk new tech projects
Evolutionary Model - Prototyping
Unknown application domain
Iterative, Customer wants to see product early
End user training
Market trial
Customer gives concept but not detailed requirements
Prototyping
Pitfalls
Expensive
Not good code, usually thrown away, not good for production
Requires more time from customer
Impossible deliver promises may be made
Rework
Evolutionary Model - Spiral
Prototyping and Waterfall
Increasingly more complete versions
More like a prototype to keep and build on
When requirements are not specified in advance
Spiral
Pitfalls
May spin out of control
Inherits problems from prototype
Customer frustration
Better risk management
Evolutionary Model - Concurrent
All activities bay exist concurrently
But in different states
Transitions and states may be revisited
Appears more flexible but could lead to lack of discipline
Concurrent
Pitfalls
Rework
Lack of order, confusion
Cost and schedule risks
Difficult to plan
Doesn't fit into standard paradigm
May give neither quality nor speed of development
Component based
Commercial off the shelf (COTS)
Avoids reinventing the wheel
Software reuse, very popular
Iterative
Reduced testing
Quick turn around time
Pitfalls
Not as easy as it sounds, risks
Quality of component is critical
Lack of access to source code
Version mismatch
Lack of updates from vendor
High initial cost
Difficult configuration management
Frustrating to development team
Undetected bugs
Complicated customer support
Quick loss of confidence
Requires detailed plan for integration
Agile
Extreme Programming - XP
Formal Methods
Mathematical, defect free
Predicate calculus
Set theory and logic notation
Proves correctness and completeness
Errors detected before manufacture
Automated program verification
Pitfalls
Time consuming
Lack of expertise
Difficult for the unsophisticated
Slow adoption in the industry