Lecture slides - DePaul University

advertisement
IS 553
Advanced Systems
Development Practices
James Nowotarski
30 March 2004
Today’s Objectives




Understand what the course is about (i.e., course
objectives)
Understand how the course will achieve its objectives
Get acquainted
Level set:




What is a software development methodology/process
Why use a methodology/process
Who are the key players and products in the
marketplace
What are the key vocabulary terms to understand
2
Today’s Agenda
Topic
Duration

Questionnaire & Intros
20 minutes

Core Concepts
45 minutes
*** Break
10 minutes

Core Concepts (cont.)
30 minutes

Course Overview
30 minutes

SD Process: Why or why not?
30 minutes

Marketplace Snapshot
30 minutes
3
Today’s Agenda
Topic
Duration

Questionnaire & Intros
20 minutes

Core Concepts
45 minutes
*** Break
10 minutes

Core Concepts (cont.)
30 minutes

Course Overview
30 minutes

SD Process: Why or why not?
30 minutes

Marketplace Snapshot
30 minutes
4
Core Concepts
Software Engineering
• The establishment and use of sound
engineering principles in order to economically
obtain software that is reliable and works
efficiently on real machines (Fritz Bauer, 1969)
• Computer science discipline that covers not
only the technical aspects of building software
systems, but also management issues, such as
directing programming teams, scheduling, and
budgeting (webopedia.com)
5
Core Concepts
The software engineering discipline consists
of people, process, and technology
components
Process
People
Technology
6
Core Concepts
The focus of IS 553 is the process
component of software engineering
IS 553
Process
People
Technology
7
Core Concepts
Process
• Sequence of steps performed for a given
purpose
• “A specific ordering of work activities across
time and place with a beginning, an end, and
clearly identified inputs and outputs” -- Tom
Davenport
• An overloaded term, can apply at multiple
levels (macro, micro)
8
Core Concepts
method
• Within the context of software engineering, a
formalized approach or series of steps for
performing some significant portion of
software development
Methodology
• A collection of methods based on a common
philosophy that fit together in a framework
called the systems development life cycle
-- Ken Orr
9
Core Concepts
In IS 553, we will use the terms method and
Methodology interchangeably
method/Methodology
•
A systematic way of doing something
•
Typically consists of these key content
pieces:
1.
2.
3.
4.
5.
Processes (what)
Deliverables (what)
Techniques (how)
Roles (who)
Estimating guidelines (how long)
10
Example: Analysis phase
Key Question:
What does the system need to do?
Steps
1. Gather requirements
2. Create data model
3. Create process model
Deliverables
Functional requirements
Quality requirements
Data model
Process model
Techniques
Interviewing
Observation
Entity-relationship modeling
Normalization
Data flow modeling
11
Example: Implementation
Key Question:
Does the system work?
Steps
1. Build the programs
2. Build the databases
3. Test the system
4. Develop and conduct training
5. Convert the data
6. Migrate to production status
Deliverables
Programs
Databases
Converted data
End user training
Operations processes
Techniques
Code walkthroughs
White box testing
Stress testing
Parallel testing
12
Core Concepts
Broad categories of methods
•
•
•
•
Structured methods
Information engineering
Object-oriented methods
Lightweight/Agile methods
13
Core Concepts
Methods engineering
• Developing and/or selecting and/or tailoring
methodology for a particular business situation
• “Configuring one-of-a-kind methodology from
common building blocks” -- Gezinus Hidding,
Loyola University
14
Core Concepts
Systems development life cycle (SDLC)
 A description of the phases of an
information system
Example
Planning
Analysis
Design
Implementation
15
Core Concepts
Life cycle model
• The iteration and control strategy adopted by a
systems development organization
• Examples
- Waterfall
- Iterative/Evolutionary/Spiral
- Incremental
16
Core Concepts
The waterfall model is the granddaddy of life
cycle models
17
Core Concepts
Iterative/Evolutionary/Spiral life cycle models
advocate multiple “threads” through the SDLC
phases
Version 1
A
D
I
Version 2
A
D
I
Version 3
A
D
I
18
Core Concepts
Incremental life cycle models advocate
delivering the end product piecemeal
Version 1
A
D
I
Version 2
A
D
I
Version 3
A
D
I
19
Core Concepts
Routes
• A “route” is a preconfigured specialization of a
methodology, depending on a variety of factors:
- custom vs. packaged solution
- degree of project team distribution
- project team size
- technology platform
- application type
• Examples
- Custom Client/Server: Large Project
- Custom Client/Server: Small Project
- Rapid Application Development (RAD)
- Packaged Systems Development
- Data Warehouse
- SAP implementation
20
Core Concepts
Rapid Application Development (RAD)
• A shortened route with the following characteristics:
- high degree of development tool usage and code
generation
- Joint Application Development (JAD) workshops
instead of interviewing
- assumes reuse of existing technical architecture and
standards
- time-boxing (90-day implementation schedule)
- highly iterative
21
Core Concepts
RAD vs. Traditional
Traditional
Req’ts
Analysis
User
Design
Tech
Design
Construct
RAD
Req’ts
User
Design
Construct
22
Core Concepts
Techniques
• Provide detailed how-to guidelines
• Fall into 2 main categories:
- Process techniques
- Modeling/Diagramming techniques
23
Core Concepts
Process for Building Data Models
1.
2.
3.
4.
5.
6.
7.
8.
9.
Review existing data models
Define entities
a. Independent
b. Dependent, including Intersection entities
Define attributes and keys (primary, foreign)
Define relationships
Finalize ERD
Diagramming technique available
Process technique available
Normalize
Integrate data models as required
Verify completeness of the data model
Validate the data model
a. With users
b. With the enterprise’s data administrator
24
Core Concepts
Modeling/Diagramming
Technique
25
Core Concepts
Normalization (Process Technique)
1NF = No repeating groups
2NF = 1NF + no partial dependencies (non-key
attribute dependent on portion of primary key)
3NF = 2NF + no transitive dependencies (nonkey attribute dependent on another non-key
attribute)
26
Core Concepts
Draw a high-level data model to show how
these components of a methodology relate to
one another:
1.
2.
3.
4.
5.
Processes (what)
Deliverables (what)
Techniques (how)
Roles (who)
Estimating guidelines (how long)
27
Core Concepts
Capability Maturity Model (CMM)


A framework for:
 Judging the maturity of an organization’s software processes
 Identifying key practices required to increase the maturity of these
practices
Levels of maturity
Optimizing
Level
Managed
Level
Defined Level
Repeatable Level
Initial Level
28
Core Concepts
CMM applies to all aspects of software
engineering, not just process
Process
People
Technology
29
Today’s Agenda
Topic
Duration

Questionnaire & Intros
20 minutes

Core Concepts
45 minutes
*** Break
10 minutes

Core Concepts (cont.)
30 minutes

Course Overview
30 minutes

SD Process: Why or why not?
30 minutes

Marketplace Snapshot
30 minutes
30
Course Objectives
IS 553 will enable you to develop, use, and improve
systems development practices
Specific Objectives
1.
4.
5.
Define the components of a software development process (content, tools,
roles, meta-processes).
Analyze key players, products, and philosophies in the software development
process "space" (past, present, and future). The course will analyze two
current processes -- the Rational Unified Process (RUP), and Agile Methods
(exemplified by Extreme Programming (XP)) -- in depth.
Identify key success factors to optimize continuous improvement of a
software development process. The course will examine the use of software
metrics and the Capability Maturity Model (CMM) in this context.
Examine two key systems development “enablers”: tools and training
Explore implications of distributed systems development teams
6.
Explore implications of other IT trends
2.
3.
31
Your grade
Homework Assignments
25%
Quizzes
25%
Term Paper
25%
Class Participation
25%
-------100%
32
Course Map
Week
1
2
3
4
5
6
7
8
9
10
11
Underpinnings
. Introduction
. Essentials
Content
. Rational Unified Process
. Agile
Implementation
. Metrics
. CMM
. Distributed development
. Tools & training
Briefings (Term Papers)
Assignments
Quizzes
33
(RUP)
(Agile) (CMM) (Distr. Dev.)
Course Assignments
•
Assignment 1 – Critique of article on the spiral approach to systems development
•
Assignment 2 - Deliverable view of RUP
•
Assignment 3 – Proposal and rough outline for term paper
•
Assignment 4 – Risk mitigation plan for offshore development
•
Assignment 5 - Summary of marketplace development
34
My role

Facilitate learning

Plan, prepare, and conduct lectures and learning
activities

Assess student progress and provide feedback

Relate concepts to real-world problems

Provide classroom environment conducive to learning

Clearly state expectations

Gather and implement suggestions for improving the
class
Keep it fun

35
My coordinates
email: jnowotarski@cti.depaul.edu
 phone: 312-261-3838
 office hours: Tuesdays, 4:00-5:30,
CTI room 703

36
Your role

Be proactive

Share your experience

Come to class prepared

Collaborate with other students as appropriate

Ask if you don’t understand or if I’m not clear

Provide constructive feedback (“This class would be
better if . . .”)
37
Class Participation
Subjective evaluation of participation:
A Consistently asks good questions, makes valuable
observations, and answers questions effectively
B Frequent participant, but not all questions,
answers, and observations are effective, or not
consistently active
C Participates infrequently, or questions/answers do
not reflect adequate preparation, or late to class
D Very rare participation, or questions/answers reflect
little or no preparation, or very late to class
F Displays no sign of life, or absent for entire class 38
Today’s Agenda
Topic
Today’s agenda
Duration

Questionnaire & Intros
20 minutes

Core Concepts
45 minutes
*** Break
10 minutes

Core Concepts (cont.)
30 minutes

Course Overview
30 minutes

SD Process: Why or why not?
30 minutes

Marketplace Snapshot
30 minutes
39
Justifying a Methodology
• Vendors and consultants have not done much to
substantiate quantitatively the value of their
methodologies
• What would you say if asked to provide
justification?
40
Common Drivers Behind
Methodology Adoption
• Project failure leads to realization that “we need a more formal
process”
• Codify best practices, so as to increase predictability and
reliability of software development process
• especially as IT organization grows
• Continued pressure on time to market and quality (web
services)
• Certification (e.g., Capability Maturity Model)
• Desire to stay current and/or sustain/develop competitive edge
• Need to support distributed development teams (multi-site
and/or multi-organization)
41
Methodology - Who needs it?
“Any first attempt at converting folklore into knowledge, and a
guessing game into a discipline, is liable to be misread as a
downgrading of individual ability and its replacement by a rule book.
Any such attempt would be nonsense, of course. No book will ever
make a wise man out of a donkey or a genius out of an incompetent.
The foundation in a discipline, however, gives to today’s competent
physician a capacity to perform well beyond that of the ablest doctor
of a century ago, and enables the outstanding physician of today to
do what the medical genius of yesterday could hardly have dreamt
of. No discipline can lengthen a man’s arm. But it can lengthen his
reach by hoisting him on the shoulders of his predecessors.
Knowledge organized in a discipline does a good deal for the merely
competent; it endows him with some effectiveness. It does infinitely
more for the truly able; it endows him with excellence.”
From Managing for Results, by Peter F. Drucker
42
Today’s Agenda
Topic
Today’s agenda
Duration

Questionnaire & Intros
20 minutes

Core Concepts
45 minutes
*** Break
10 minutes

Core Concepts (cont.)
30 minutes

Course Overview
30 minutes

SD Process: Why or why not?
30 minutes

Marketplace Snapshot
30 minutes
43
What does a methodology product
consist of?

Content





Delivery vehicle (e.g., browser)
Tools for authoring and publishing content
Tools for applying the methodology to a specific project






processes, deliverables, etc.
pre-defined routes
project planning and estimating tools
process management tools
project management tools
Deliverable templates tightly coupled with a development
and/or execution platform
Training and support
Maintenance
44
Methodology Marketplace
No single vendor dominates this market


IBM’s Rational Software is collecting a fair amount of
mindshare
3 key categories to consider:




methodologies developed and delivered by consultants
methodologies from software tool vendors
methodologies from industry consortia or other groups
Tremendous variability among the products



Content
Delivery vehicles
Integration with development tools
45
Methodologies Developed and
Delivered by Consultants
Consulting firms methodologies have greatest depth and breadth of
content, but not all sell their methodology as a standalone product
Consultant
Methodology
Sold as
Standalone
Product?
IBM Consulting (formerly PWC)
Summit Ascendant
Yes
Headstrong
gantthead.com
Yes
Fujitsu
Macroscope
Yes
Accenture
Accenture Delivery Methods
No
AMS
No
EDS
No
Keane
No
46
Methodologies from Software
Development Tool Vendors
Customers are increasingly demanding (and receiving)
process guidance from their tool vendors
Vendor
Methodology
Notes
Rational Software
Rational Unified Process
(RUP)
 Many
Computer Associates
CA ProcessContinuum
 Focus
Allen Systems Group (ASG)
Visual Process
Client/Server Connection
CS 10,000
 Easy
Aonix
Select ProcessDirector
 Strong
vendor and
consulting partners
on large
accounts
to use
coverage of
Component-Based
47
Development (CBD)
Methodologies from Industry
Consortia or Gurus
There is a growing interest among large corporate
shops in so-called “agile” methods from industry gurus
Guru/Consortium
Methodology
Notes
Kent Beck
Martin Fowler
Extreme Programming (XP)
 Many
Alistair Cockburn
Crystal
 Focus
Jim Highsmith
Adaptive software
development
Peter Coad
Feature driven development
Dynamic Systems
Development Method (DSDM)
Consortium
DSDM
vendor and
consulting partners
on large
accounts
 More
RAD than agile
 Used in Europe more
48
than U.S.
Key Trends: Content
•
•
•
•
•
•
Component-based development (CBD)
Software reuse
Agile processes
Development of mobile applications
Development with/for web services
Distributed development teams, especially
offshore
• Attention to security
49
How Does a Methodology Stay
Fresh?
• Experience
• New technologies that cause changes in
development processes
• Consortia/Gurus
• Academics
“ . . . those looking for true best practices and leading edge
methodologies should turn to the consulting industry rather than tool
or software vendors” -- Giga Information Group
50
Mapping Computing Eras to
Technology Maturity Curve
• Mainframe
• Decentralized
High
• Distributed
Degree of
Take-up
• Internet
• ???
• Mobile
Incubation Adaptation Take Up
Life Cycle Stage
Key SD
Process
Change
???
Maturity
Time
Content Dev GUI Design
Components Bus Process Redesign
Iterative Dev
51
For April 6


Read Royce article
Assignment 1- Critique the Royce article
52
Download