SE 425

SE 325/425
Principles and
Practices of Software
Engineering
Autumn 2006
James Nowotarski
14 November 2006
Today’s Agenda
Topic
Duration

Current event reports
20 minutes

Recap CMMI
20 minutes

Industry trends
30 minutes
*** Break

Industry trends
30 minutes

Final review
60 minutes
2
Today’s Agenda
Topic
Duration

Current event reports
20 minutes

Recap CMMI
20 minutes

Industry trends
30 minutes
*** Break

Industry trends
30 minutes

Final review
60 minutes
3
Software process assessment
and improvement
Software Process
is examined by
identifies
modifications to
identifies capabilities
and risk of
Software Process
Assessment
Software Process
Improvement
leads to
leads to
Capability
Determination
motivates
4
Sources of improvement
ideas






Post-mortems
Metrics
Benchmarking with other organizations
Published best practices
Standards
Process frameworks

also known as “meta-models” or “software
process improvement models”
5
What is CMMI




CMMI = Capability Maturity Model
Integration
Developed in1991 by Software Engineering
Institute (SEI) to assess the software
engineering capability of government
contractors
A framework for software process
improvement (SPI) that has gained wide
acceptance in the industry
A roadmap of effective practices that build
on one another in a logical progression


coherent
ordered set of incremental improvements
6
Why CMMI?
Benefits
Practical
 Structured
 Proven reputation
 Quantitative benefits (median):

cost
 productivity:
 time to market:
 post-release defects:
 customer satisfaction:
 return on investment:

34%
61%
50%
48%
14%
4:1
7
CMMI Maturity Levels
Optimized
(5)
Process improvement
(“nirvana”)
Quantitatively Process measured and
Managed
controlled
(4)
Defined
(3)
Managed
(2)
Initial
(1)
Process characterized for the
organization and is proactive
Process characterized for projects and is
often reactive
Process poorly controlled and unpredictable
8
CMMI Structure
Process area
categories
Maturity levels
Contain
Contain
Process areas
Achieve
Specific goals
Contain
Specific practices
9
CMMI Structure: Example
Process area category
Maturity level
Project
management
Level 2 - Managed
Process area
Project planning
Specific goal
Establish estimates
Specific practice
Determine estimates of effort and cost
10
CMMI Process Areas
Process Areas
Level 5
Optimized
Level 4
Quantitatively
Managed
Level 3
Defined
Level 2
Managed
Causal Analysis & Resolution
Organizational Innovation & Deployment
Organizational Process Performance
Quantitative Project Management
Requirements Development
Technical Solution
Product Integration
Verification
Validation
Organization Process Focus
Organization Process Definition
Organizational Training
Integrated Project Management
Risk Management
Decision Analysis & Resolution
Requirements Management
Project Planning
Project Monitoring & Control
Supplier Agreement Management
Measurement & Analysis
Product & Process Quality Assurance
Configuration Management
11
Appraisal process
CMMI
Reference model
used by
Standard
CMMI
Appraisal
Method for
Process
Improvement
(SCAMPI)
Appraisal process
12
CMMI Appraisal Method
Team
Selection
Maturity
Questionnaire
Response
Analysis
3
2
1
PA
Profile
On-site visit
Interviews &
document
reviews
4
Findings
based on the
CMMI
5
6
13
Appraisal Process

For internal purposes:



Performed in open, collaborative
environment
Focuses on improving the organization’s
software process
For external credential:



Performed in a more audit-oriented
environment
Focuses on identifying risks associated with
a contractor
Team’s recommendation will help select
contractors or set fees
14
CMMI Issues in the Real-World
“Level envy”
 Areas not addressed:

Business strategy and linkage to IT
 Operations, help desk, support
 Management of the IT human
resource
 Application portfolio
 Tools


Many question whether it is worth the
effort to pursue levels 4 and 5
15
Process Maturity Profile,
April 2002-June 2006
16
Time to Move Up
# of months
to move to
next level
75
50
Largest observed value that
is not an outlier
28
Recommended time
between appraisals
(18-30 mos)
23
25
75th percentile
22
17
Median (50th percentile)
25th percentile
Smallest observed value that
is not an outlier
0
1 to 2
2 to 3
3 to 4
4 to 5
17
CMMI-based Software Process
Improvement (SPI)

Time and cost often exceed expectations





18-24 months to advance 1 level
Can cost $2K per software engineer per year
1-2% full-time resources (e.g., 5-10 in a 500-person
organization)
2-4% of rest of organization’s time
Key success factors





Senior management is engaged
Participation and buy-in at all levels, including middle
management and technical staff
Clearly stated, well understood SPI goals
Clear assignment of responsibility
SEPG staffed by highly respected people
18
Today’s Agenda
Topic
Duration

Current event reports
20 minutes

Recap CMMI
20 minutes

Industry trends
30 minutes
*** Break

Industry trends
30 minutes

Final review
60 minutes
19
Industry trends

Distributed development teams

Offshoring
Aspect-oriented software
development
 Web 2.0

20
IT Offshoring
IT Offshoring
Offshore - A location/development
center in a country remote from the
country in which the service or process
is consumed or touches the end user or
customer
Source: Gartner Group
21
IT organizations and solutions
providers are increasing
their
IT Offshoring
offshore capabilities for both
maintenance and development
IT organizations
• Merrill Lynch
• Lehman Brothers
• Ford
• NY Stock Exchange
• Motorola
• Boeing
• HSBC
• Google
• Many unpublicized
Solutions providers
• Accenture
• EDS
• HP
• IBM
• Perot
• SAP
• Offshore firms,
typically with local
presence, e.g.,
Wipro, Tata,
Infosys
Types of projects
• Legacy
maintenance
• New development
• Projects requiring
specialized
expertise, e.g.,
– Embedded
software
– ERP
22
Cost, quality, and speed are
the main reasons for going
offshore
 Reduce

40-50% savings, according to Merrill Lynch CTO
 Higher

cost
quality/capability
A disproportionately high percentage of CMMI Level 5
systems development organizations are in India
 Speed

A “follow the sun” approach allows for 24x7 work on a
project
23
India is the leading location
for offshore sourcing
Reasons
 Highly
capable workforce
 2-3M college graduates per year (will double by 2010)
 #2 in world in computer science grads (china #1, U.S.
#3)
 Focus on process and product quality
 “Quality has become an obsession with the software
developers in India” – Casimir Welch, American
Society for Quality Fellows
 Low labor and infrastructure costs
 Government commitment and support
 English (and other) language skills
24
India’s advantage is
beginning to erode
Reasons



Competition for talent is driving salaries up by as
much as 30% per year
China, Russia, Vietnam, and Philippines are
training armies of programmers to compete with
India
 BearingPoint chose Shanghai for its new
software development center . . . pays
$500/month for engineers in Shanghai, $700 in
India, $4000 in U.S.
Increasing competition closer to the customer,
e.g.,


“Near shore”, e.g., Mexico and Canada for U.S.
customers
“On shore”, e.g., Rural Arkansas
25
Typical division of labor
Planning & Managing
Communication
project initiation
requirements
Primarily
Onshore
Modeling
analysis
design
Construction
code
test
Deployment
delivery
support
Both
Primarily
Offshore
26
Need to manage risks of
offshore outsourcing
Communication/Coordination difficulties
 Lack of technical or industry-specific
knowledge
 Management overhead eats into cost
savings
 Clumsy roll-out causes morale problems
for onshore employees

27
Sampling of issues cited by
DL students
“…too many communication and
quality issues…” (Lindstrom)
 “…each location with a different
process, e.g., SCM…no training for
project managers [on how to make it
work]” (Brisard)
 “…lacks the incidental contacts and
other informal communications that
benefit a team…” (Castro)

28
US high technology companies are
raising their stakes in India to take
advantage of R&D capabilities
 Microsoft



Already employs 4,000 employees
Will invest $1.7B
“The growth in employment for Microsoft will be more in
India than in the United States” – Bill Gates
 Intel

Will invest $1.05B
 Cisco


Will invest $1.1B
Plans to triple India workforce from 1,400 to 4,000 in 3
years
29
Industry trends

Distributed development teams

Offshoring
Aspect-oriented software
development
 Web 2.0

30
Gartner Hype Cycle
31
Aspect-oriented software
development (AOSD)

Separation of concerns


Structured and object-oriented development
support separation of concerns to an extent



Modularity
Encapsulation
Cross-cutting concerns (aka “aspects”)



Divide a system into parts that overlap as little as
possible
Cut across many modules/classes
Result in duplication of code in structured and objectoriented approaches
Q. How best to handle cross-cutting aspects?

A. Aspect-oriented software development
32
Example: Cross-cutting
aspect
Typical implementation
Component 2
Component 3
Component 4
SW
(Architectural
Model)
Component 1
Examples:
• Logging
• Security
• Error handling
• Tracing/Stepping
33
Example: Cross-cutting
aspect
Aspect-oriented implementation
Component 2
SW
(Architectural
Model)
Component 3
Component 4
Aspect
Component 1
“Advice”
“Join point”
34
AOSD Chronology
1997 – Seminal paper on the subject
 2002 – U.S. Patent # 6,467,086


Xerox (Gregor Kiczales et al)
35
Gregor Kiczales video
http://video.google.com/videoplay?docid
=8566923311315412414&q=engEDU
36
AOSD Summary


Aspect - A concern that cross-cuts the
primary modularization of a software system
Aspect-oriented programming (AOP)
language



Extends traditional programming languages
with constructs for programming aspects
Distilled to its essence, AOP provides the
ability to say, “When X happens, do Y”
Aspect-oriented software development

Approaches, tools, methods to support the
use of aspect-oriented concepts
37
AOSD Benefits

Improved modularity

Quantifiable reduction in complexity
metrics
Faster time to market
 Smaller code size
 More reliable software
 More maintainable software

38
AOSD Challenges

Learning curve can be steep


Hinders adoption
Some say it makes program
comprehension more difficult
39
AOSD Players/Products

AspectJ (Eclipse Foundation)





JBoss AOP (Red Hat)


de facto standard AOP language
Extension to Java
Open source
http://eclipse.org/aspectj
http://labs.jboss.com/portal/jbossaop
Spring framework


The AOP-based transaction and security
libraries
http://www.springframework.org
40
AOSD Market Prospects
Industry awareness has been growing
rapidly over the past couple years,
 Many if not most published
applications are Web applications
 Yet to see a major grassroots
movement of “regular” developers

41
Industry trends

Distributed development teams

Offshoring
Aspect-oriented software
development
 Web 2.0

42
Web 2.0
43
Web 2.0 Principles
1.
2.
3.
4.
5.
6.
7.
The Web as Platform
Harnessing Collective Intelligence
Data is the Next Intel Inside
End of the Software Release Cycle
Lightweight Programming Models
Software Above the Level of a Single
Device
Rich User Experiences
44
Class Activity

In groups of 2-3:


Describe one of O’Reilly’s 7 principles
Describe why a software engineer would care
45
Service Oriented
Architecture (SOA)
46
SOA & Gartner Hype Cycle
47
Today’s Agenda
Topic
Duration

Current event reports
20 minutes

Recap CMMI
20 minutes

Industry trends
30 minutes
*** Break

Industry trends
30 minutes

Final review
60 minutes
48
Core Concepts
The focus of SE 425 is
the process component
of software engineering
Process
Technology
People
… for the delivery of
technology-enabled
business solutions
Process
People
Technology
49
THE END
50