SoftwareDevelopmentLifecycles (SDLCS)
SoftwareDevelopmentLifecycles (SDLCS)
Agenda
11 Session
Session Overview
Overview
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles (SDLCs)
(SDLCs)
33 Summary
Summary and
and Conclusion
Conclusion
2
What is the class about?
Textbooks:
» Software Engineering: A Practitioner’s Approach
Roger S. Pressman
McGraw-Hill Higher International
ISBN-10: 0-0712-6782-4, ISBN-13: 978-00711267823, 7th Edition (04/09)
» http://highered.mcgraw-hill.com/sites/0073375977/information_center_view0/
» http://highered.mcgraw-
hill.com/sites/0073375977/information_center_view0/table_of_contents.html
Agenda
4
Icons / Metaphors
Information
Common Realization
Knowledge/Competency Pattern
Governance
Alignment
Solution Approach
55
Agenda
11 Session
Session Overview
Overview
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles (SDLCs)
(SDLCs)
33 Summary
Summary and
and Conclusion
Conclusion
6
Agenda – Software Engineering Fundamentals
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles SDLCs
SDLCs
Process Models
Agile Development
What is a SDLC
8
Software Engineering (1/2)
Some realities
A concerted effort should be made to understand the
problem before a software solution is developed
Design becomes a pivotal activity
Software should exhibit high quality
Software should be maintainable
The seminal definition
Software engineering is the establishment and use of sound
engineering principles in order to obtain economically
software that is reliable and works efficiently on real
machines
10
A Layered Technology
tools
methods
process model
a “quality”
quality” focus
Software Engineering
11
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
12
Framework Activities
Communication
Planning
Modeling
Analysis of requirements
Design
Construction
Code generation
Testing
Deployment
13
Umbrella Activities
14
Adapting a Process Model
Polya* suggests:
1. Understand the problem (communication and analysis)
2. Plan a solution (modeling and software design)
3. Carry out the plan (code generation)
4. Examine the result for accuracy (testing and quality
assurance)
* http://www.stevemcconnell.com/rl-top10.htm
16
Understand the Problem
17
18
Carry Out the Plan
19
20
David Hooker’s General Principles*
* http://c2.com/cgi/wiki?SevenPrinciplesOfSoftwareDevelopment
21
Software Myths
22
How It all Starts
23
SDLC Characteristics
24
Business Solution Characteristics
25
Prototype
An initial software-driven solution usually done with a
rapid development tool
Usually has limited functionality
Users can see results very quickly
Planning
The process of gathering what is needed to solve a
business problem
Includes a feasibility study
Includes project steps
26
Some Definitions (2/3)
Analysis
The process of determining detail requirements in the
form of a model
Design
The process of drawing blueprints for a new system
at a high-level first then at a detailed level
Construction
The actual coding of the model into a software
package
Uses one or more programming languages
Java
C#
C++
etc.
27
Implementation
Doing whatever is necessary to startup a system
Includes:
Database
Networks
Hardware configuration
Maintenance
Doing whatever is necessary to keep a system
running
Includes:
Repairs to correct errors
Rnhancements to accommodate changes in requirements
28
Deliverables
29
Planning:
System Functions
A simple list of each requirement a system must do
For example:
record video rental
calculate fine
System Attributes
A simple property describing each requirement of a
system
For example:
record video rental under 15 seconds
calculate fine and return response in 5 seconds
30
Sample Deliverables – Planning (2/3)
Planning:
Environmental Diagram
Rent Video
Video Store
Information System Pay
Employees
Clerk
31
Planning:
Prototype
Recall it is a first system usually done with a rapid
development tool
Since users can see results very quickly they will
pay attention
Final product is seldom created in same tool as the
prototype
32
Sample Deliverables - Analysis
Analysis:
Use case
Shows the dynamics between the users (actors) of the
system and the system itself
This is a narrative representation
Conceptual Diagram
Shows the structure of the objects and their relationships
This is a graphical representation
System Sequence Diagram
Shows the dynamics between the users (actors) of the
system and the system itself
This is a graphical representation
Contracts
Shows the state of each object before each action
This is a narrative representation
33
e-Business Back-Office
Portal e-Business Services Systems
Users— Connectivity
Client
Web
Client
Administrator
Facilitator
Phone
Visitor
Support
PDA
User XML-Based Application Data Legacy
Data Databases
Facilitator
Administrator
Data Repositories
34
Sample High-Level Architecture Design Logical Blueprint
Business e-Business
Users Connectivity e-Business Services Legacy Systems
Functions Portal
PBX-Based Service
PBX-Based Services Call Forwarding,
Teleconferencing, etc.
Presentation Enabling: Router
Authoring Portal Mgmt.
Posting
NT &
Component Manager
Unix Front Office Apps
Interface XML/Web Enabling Facilities Back-Office Systems
Application Server
Q&A Enabling:
University Front Office Apps Client Request Handler
Authoring
Internet or Chat Platform University Systems
Posting Firewall
Intranet LANs Educational Applications Application Logic Firewall
Professor (Custom Java Applications)
Win Ft Off. & Web Apps Client Request Handler Chatroom Component
2000
(via VPN) Maintenance Apps Subnet (within DMZ) Client Administration
Data Mining ChatUser Component
Software / Global Content Login, Authentification,
Web Server
Non-Repudiation
Monitoring / Backup Client & System
Administration Component
Telephony Svcs Proxy Server Registration Systems
Presentation Enabling:
Authoring Faxback
Web-Enabled Entitlement & Security
IVR
Applications Servlet Engine JSP Engine
Component Accounting Systems
Q&A Enabling: NT & Facilitator Application,
Unix Front Office Apps
Integration Channel, and Client/ Sales/Marketing Systems
System Admin Interfaces
System Support: Servlets/JSPs:
Monitoring University Business Intelligence
(Customer Analysis, Course Planning)
session hdlr Support Services Client Support Systtems
System Admin. Interne or SMIL presentation hdlr (carreer management, alumni
Intranet LANs Customer Care Services Q&A hdlr XML Core Services relations, library support, etc.)
Help Desk
Teaching (Call Center Support: Educational & Systems) XML MOM/POP hdlr (Doc Hdlr, Version Manager)
Assistant Win
etc.
Collaborative Applications
2000 (2D Avatars, Classroom Navigation, Chat, Events)
Ft Off. & Web Apps Session/State Mgmt. Internal Administration
Client Interfaces Client Request Handler API DataWarehouse-Driven Human Resources Systems
Processing
Clients Telephony-Based Payroll Systtems
Services XML-based
Component presentation
Manager Connectors
oriented publishing Support Systtems
Customer Calls Handling
(ACD, Flex-Routing, Call Center Mgmt.)
Firewall
templates
Course Production Systems)
Telephony Svcs
CSR Assisted Services
(Product Support, Issue Resolution, Proactive
IVR
Integrated Data Architecture Layer
Account Mgmt.)
Presentation Enabling:
Querying Web-Enabled
Locating Win Applications Database Management Systems (DBMS)
Viewing 2000
Web Applications Client Interface
(Presentation querying, locating, and viewing -
Real Time Services In Memory Database Content-Mgmt Repository Global Application Data Replicas Legacy Operational Data
(Web Channels, Chat, TV Events, etc.)
35
Tape Silo
Veritas Network
Backup (shared service)
Component Manager Chat Platform
Connects to Firewall / IIOP Proxy Server Application Logic
WebLogic
Sun E420/Solaris 2.6
Intrusion
TomCat jsp engine
TomCat servlet engine
Apache HTTP sever
nCipher SSL accelerator
Sun E220/Solaris 2.6
Session/State/EOD Mgmt
Detection Load
Balancers Dynamic Content Mgmt
Alteon AC3
Web Server
Router Servlets & JSP Security &
University Intranet LAN (dual)
XLF Data
University Internet LAN (dual)
Operational Data
Firewall
Sybase 11.9.2
50GB Disk Array
Sun E4500/Solaris 2.6
36
Sample Deliverables - Design
Design:
Interaction Diagram
Shows the interaction between objects
This is a graphic representation
It is a dynamic blueprint
Class Diagram
Shows the structure between objects
Shows the structure inside objects
This is a graphic representation
It is a static blueprint
37
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles SDLCs
SDLCs
Process Models
Agile Development
38
A Generic Process Model
39
Process Flow
40
Identifying a Task Set
41
Process Patterns
A process pattern
describes a process-related problem that is
encountered during software engineering work,
identifies the environment in which the problem
has been encountered, and
suggests one or more proven solutions to the
problem
Stated in more general terms, a process pattern
provides you with a template [Amb98] - a
consistent method for describing problem
solutions within the context of the software
process
42
Process Pattern Types
43
Prescriptive Models
44
The Waterfall Model Revisited
Communicat ion
project init iat ion Planning
requirement gat hering estimating Modeling
scheduling
analysis Const ruct ion
tracking
design Deployment
code
t est delivery
support
f eedback
45
The V-Model
46
The Incremental Model
increment # n
Co m m u n i c a t i o n
Pla nni ng
M ode ling
analysis Co n s t ru c t i o n
design
c ode De p l o y m e n t
t est d e l i v e ry
fee dba c k
delivery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pl a nni ng
M ode ling
analy sis Co n s t ru c t i o n
design c ode De p l o y m e n t
t es t d e l i v e ry
fee dba ck
delivery of
increment # 1 2nd increment
Co m m u n i c a t i o n
Pla nning
M ode ling
analys is Co n s t r u c t i o n
des ign code
t est
De p l o y m e n t
de l i v e ry delivery of
fe edbac k
1st increment
47
Q u i cQuick
k p lan
plan
Co m m u n icat io n
communication
Mo Modeling
d e lin g
Quick
Q u i cdesign
k d e sig n
Deploym ent
Deployment
Ddelivery
e live r y& Construction
& feedback
Fe e d b ack Co n st r u ct io n
of prototype
Construction
o fof prototype
p r o t o t yp e
48
Evolutionary Models: The Spiral Model Revisited
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery code
feedback test
49
none
Await ing
changes
Under review
Under
revision
Baselined
Done
50
Still Other Process Models
51
Elaborat ion
elaboration
Incept ion
inception
product ion
52
UP Phases
UP Phases
Inception Elaboration Construction Transition Production
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
53
UP Work Products
Inception phase
Elaboration phase
Vision document
Init ial use-case model
Init ial project glossary Construction phase
Use-case model
Init ial business case Supplement ary requirement s
Init ial risk assessment . including non-funct ional Design model
Transition phase
Project plan, Analysis model Soft ware component s
phases and it erat ions. Soft ware archit ect ure Delivered soft ware increment
Int egrat ed soft ware
Business model, Descript ion. increment Bet a t est report s
if necessary. Execut able archit ect ural General user feedback
Test plan and procedure
One or more prot ot ypes prot ot ype.
I nc e pt i o Test cases
n Preliminary design model Support document at ion
Revised risk list user manuals
Project plan including inst allat ion manuals
it erat ion plan descript ion of current
adapt ed workflows increment
milest ones
t echnical work product s
Preliminary user manual
54
Personal Software Process (PSP)
Planning. This activity isolates requirements and develops both size and
resource estimates. In addition, a defect estimate (the number of defects
projected for the work) is made. All metrics are recorded on worksheets or
templates. Finally, development tasks are identified and a project schedule
is created.
High-level design. External specifications for each component to be
constructed are developed and a component design is created. Prototypes
are built when uncertainty exists. All issues are recorded and tracked.
High-level design review. Formal verification methods (Chapter 21) are
applied to uncover errors in the design. Metrics are maintained for all
important tasks and work results.
Development. The component level design is refined and reviewed. Code
is generated, reviewed, compiled, and tested. Metrics are maintained for all
important tasks and work results.
Postmortem. Using the measures and metrics collected (this is a
substantial amount of data that should be analyzed statistically), the
effectiveness of the process is determined. Measures and metrics should
provide guidance for modifying the process to improve its effectiveness.
55
56
CMM & PSP/TSP (http://www.sei.cmu.edu)
SEI’s IDEALModel
58
Team Exercise #1 – Groups will present in class
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles SDLCs
SDLCs
Process Models
Agile Development
60
The Manifesto for Agile Software Development
61
What is “Agility”?
62
Agility and the Cost of Change
63
An Agile Process
64
Agility Principles (1/2)
68
Extreme Programming (XP) (1/3)
69
XP Design
Follows the KIS principle
Encourage the use of CRC cards (see Chapter 8)
For difficult design problems, suggests the creation of
“spike solutions”—a design prototype
Encourages “refactoring”—an iterative refinement of
the internal program design
XP Coding
Recommends the construction of a unit test for a
store before coding commences
Encourages “pair programming”
XP Testing
All unit tests are executed daily
“Acceptance tests” are defined by the customer and
excuted to assess customer visible functionality
70
Extreme Programming (XP) (3/3)
refact oring
pair
programming
Release
software increment unit t est
project velocity computed cont inuous int egrat ion
XP Project Lifecycle
72
eXtreme Programming (XP) Map
73
XP Iteration Planning
74
XP Unit Testing
75
76
Adaptive Software Development (1/2)
77
Release
software increment
adjustments for subsequent cycles
component s implement ed/ t est ed
focus groups for feedback
formal t echnical reviews
post mort ems
78
Dynamic Systems Development Method (1/2)
79
82
Scrum Timeline Breakdown
83
Crystal
84
Feature Driven Development (1/2)
85
86
Agile Modeling
87
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles SDLCs
SDLCs
Process Models
Agile Development
88
Software Engineering Knowledge
89
90
Principles that Guide Process - II
91
93
Communication Principles
94
Communication Principles
95
Planning Principles
Principle #5. Consider risk as you define the plan. If you have
identified risks that have high impact and high probability,
contingency planning is necessary.
Principle #6. Be realistic. People don’t work 100 percent of
every day.
Principle #7. Adjust granularity as you define the plan.
Granularity refers to the level of detail that is introduced as a
project plan is developed.
Principle #8. Define how you intend to ensure quality. The
plan should identify how the software team intends to ensure
quality.
Principle #9. Describe how you intend to accommodate
change. Even the best planning can be obviated by uncontrolled
change.
Principle #10. Track the plan frequently and make
adjustments as required. Software projects fall behind schedule
one day at a time. 97
Modeling Principles
98
Requirements Modeling Principles
100
Agile Modeling Principles
Principle #1. The primary goal of the software team is to build software,
not create models.
Principle #2. Travel light—don’t create more models than you need.
Principle #3. Strive to produce the simplest model that will describe the
problem or the software.
Principle #4. Build models in a way that makes them amenable to
change.
Principle #5. Be able to state an explicit purpose for each model that is
created.
Principle #6. Adapt the models you develop to the system at hand.
Principle #7. Try to build useful models, but forget about building
perfect models.
Principle #8. Don’t become dogmatic about the syntax of the model. If it
communicates content successfully, representation is secondary.
Principle #9. If your instincts tell you a model isn’t right even though it
seems okay on paper, you probably have reason to be concerned.
Principle #10. Get feedback as soon as you can.
101
Construction Principles
102
Preparation Principles
103
Coding Principles
104
Validation Principles
105
Testing Principles
106
Deployment Principles
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles SDLCs
SDLCs
Process Models
Agile Development
108
Process Assessment and Improvement
109
Other Standards
ISO 12207
http://www.acm.org/tsc/lifecycle.html
http://www.12207.com/
IEEE Standards for Software Engineering Processes
and Specifications
http://standards.ieee.org/catalog/olis/se.html
http://members.aol.com/kaizensepg/standard.htm
110
Agenda
11 Session
Session Overview
Overview
22 Software
Software Engineering
Engineering LifeCycles
LifeCycles (SDLCs)
(SDLCs)
33 Summary
Summary and
and Conclusion
Conclusion
111
Course Assignments
Individual Assignments
Reports based on case studies / class presentations
Project-Related Assignments
All assignments (other than the individual assessments) will
correspond to milestones in the team project.
As the course progresses, students will be applying various
methodologies to a project of their choice. The project and related
software system should relate to a real-world scenario chosen by each
team. The project will consist of inter-related deliverables which are
due on a (bi-) weekly basis.
There will be only one submission per team per deliverable and all
teams must demonstrate their projects to the course instructor.
A sample project description and additional details will be available
under handouts on the course Web site
112
Team Project
Project Logistics
Teams will pick their own projects, within certain constraints: for instance,
all projects should involve multiple distributed subsystems (e.g., web-
based electronic services projects including client, application server, and
database tiers). Students will need to come up to speed on whatever
programming languages and/or software technologies they choose for their
projects - which will not necessarily be covered in class.
Students will be required to form themselves into "pairs" of exactly two (2)
members each; if there is an odd number of students in the class, then one
(1) team of three (3) members will be permitted. There may not be any
"pairs" of only one member! The instructor and TA(s) will then assist the
pairs in forming "teams", ideally each consisting of two (2) "pairs", possibly
three (3) pairs if necessary due to enrollment, but students are encouraged
to form their own 2-pair teams in advance. If some students drop the
course, any remaining pair or team members may be arbitrarily reassigned
to other pairs/teams at the discretion of the instructor (but are strongly
encouraged to reform pairs/teams on their own). Students will develop and
test their project code together with the other member of their programming
pair.
113
115
Readings
» Slides and Handouts posted on the course web site
» Textbook: Chapter 1 & Part One-Chapters 2-4
Team Project
» Team Project proposal (format TBD in class)
Team Exercise #1
» Presentation topic proposal (format TBD in class)
116
Next Session: Software Development Lifecycles (SDLCs)
117
Any Questions?
118
Next Session: Planning and Managing Requirements
119