Software Eng. Mat - 4
Software Eng. Mat - 4
UNIT OBJECTIVE
• Understand the influences on a project
• Understand what a software process is
• Understand two common models
WHAT EACH PARTY CONTROLS
Every software project has three client The tech team has three controls
controls
Process
People Technology
Cost Time
Functionality
Software Engineering is about managing the client side and defining the tech side
while managing risk.
MOST EVERYTHING INVOLVES TEAMS
• Legacy
• Rarely is everything from scratch
• Being able to extend others’ work is essential
PROFESSIONALISM
Personal Ethics Effects
• Confidentiality • Developers and administrators may have access to
• Respecting confidences of employers or clients highly confidential information
regardless if there is a formal agreement
• Competence
• Accurately reflect what you can do and accept
• Systems that do not work can destroy a company
only work that is within your competence
• Intellectual Property • IPR violations can be result in fines or cease and
• Protecting the IP of employers and clients desist orders
• Misuse
• Do not use skills or resources inappropriately
• System abuse can paralyze a company
PROCESS
• noun pro·cess
a series of actions that produce
something or that lead to a particular result
http://www.merriam-webster.com/dictionary/process
• Key attributes
• Outcomes/results of processes are key deliverables or products
• Roles are clear
• Pre and post conditions are understood and held true
KEY ELEMENTS IN ANY SDLC
1. Feasibility
2. Specification
3. Architecture and Design
4. Development
5. Validation
6. Evolution/Maintenance
The devil is in the details of how the steps are organized and executed
PROCESS MODELS
WATERFALL MODEL (CIRCA 1968)
• Sequential process phases
• One step completes before next one starts Feasibility
Feasibility Analysis
• Rational process
• Enables careful planning
• This is how construction is done. Requirement
Specification
Documents
• Good for
• some piece of the system cannot be easily changed (e.g.
hardware)
• where explicit and exhaustive testing is required
before launch Architecture Design
& Design Documents
• Challenges
• Heavyweight process
• Meaning the process is followed systematically Development Code
and completely (slow)
• Specification is a negotiation process
• Specifications precede the system
Test plans
• World rarely is known upfront and even Validation
and results
more rarely stays fixed
• Hard to adapt to upstream changes once the
step completes
Evolution &
Updates
Maintenance
WATERFALL MODEL
• Real projects rarely follow a sequential flow
250
200
Cost
150
100
50
0
Requirements Design Code Unit Test System Test Field
Project Phase
ITERATIVE MODELS
• System is created by successive
versions.
• Go through each process step, then Feasibility
iterate • Feasibility
Analysis
• Similar to how you are taught to write a paper
• Includes feedback between steps
Specification
• Lowers the cost of implementing Evolution & • Requirem
requirement changes Maintenance ent
Document
• Allows some client/user feedback to be
considered
• Smaller sized steps means delivery of
something comes sooner
• Value is created earlier Validation Architecture
• It may not be clear where in the • Test plan & Design
and • Design
program the project is results Document
• Changes can lead to messy designs
and implementations Developmen
t
• Code
AGILE MANIFESTO
http://agilemanifesto.org/
AGILE IS A SET OF SDLC APPROACHES
Glossary:
• RUP – Rational Unified Process
• https://en.wikipedia.org/wiki/Rational_Unified_Pro
cess
• XP – Extreme Programming
• https://en.wikipedia.org/wiki/Extreme_programmin
g
• DSDM - Dynamic
systems development
method
• https://en.wikipedia.org/wiki/Dynamic_systems_dev
elopment_method
• FDD - Feature-driven development
• https://en.wikipedia.org/wiki/Feature-
driven_development
• Antithesis of Waterfall
• Plans develop incrementally and evolve
• Client collaboration versus client negotiation
• Specification follows from working system, not the reverse
• Immediate feedback from deployment
• Responding to change rather than following a plan
• Enhancements, new features, and bug fix are all prioritized as candidates for focus
during next sprint
• Emphasis on keeping scope small
• Although the impact of changes will grow over time
“[…] is like driving at night in the fog. You can only see as far as your headlights, but
you can make the whole trip that way.”
— E.L. Doctorow, Writers At Work: The Paris Review Interviews
SCRUM
1. Team
• Small, cross-functional, self-organizing units
2. Scope
• Small deliverable scope delivered in consensus priority order
• Priorities can be adjusted (typically at sprint start)
3. Timeline
• Small iterations (2-3 weeks is typical) emphasizing delivery at the end
HOW SCRUM TYPICALLY OPERATES
• You estimate how much work/time each User Story will take
• The client provides her view of the priorities in the backlog.
• The tech team reassesses priorities to allow for dependencies or difficulties
• The backlog is now a roadmap for the sprint or day within the sprint
In rugby, a scrum is the way you restart the game after a minor infraction.
TEST-FIRST DESIGN
System Development
Verified under test
• The act of defining tests requires one system
to understand how the solution
works Deployment
KEY CONCERNS DRIVING IN SELECTING A PROCESS
Lean
Iterative
Agile
Ad-Hoc
All projects
Traditional
0 23 45 68 90 113
0% 25% 50% 75% 100%
Successful Challenged Failed
Success Challenged Failed
Standish Group (UK), Chaos Study, 1995 Dr. Dobb’s Journal 2013 IT Project Success Survey posted
at www.ambysoft.com/surveys/
WALKING THE SDLC
STEPS
FEASIBILITY
• Two outcomes
1. Yea
2. Nay
WHAT GOES INTO A FEASIBILITY STUDY
1. Recommendation
2. Technology
3. Economic
4. Legal
5. Operational
6. Schedule
UNCERTAINTY MAKES THIS VERY HARD
Challenges Mitigations
• Clients are unsure what they need at a
useful level of detail • Experience can guide process
• But the most experienced people
• Benefits are hard to quantify may not be the most technically
current
• Impacts and recognizing unintended
consequences is even harder to quantify
• Solicit support and build interest for the
• Approach is often based on very rough
guesses project
• Beware of irrational enthusiasm
• Organizational structures may need change • Leads to unreasonable expectations
• Senior executives rarely forget your
• Assumptions may be faulty
promises
THE BOSS’ VIEW
(ADAPTED FROM BILL ARMS)