Post on 22-Dec-2015
James Nowotarski
14 November 2006
SE 325/425Principles and
Practices of Software Engineering
Autumn 2006
2
Topic Duration
Current event reports 20 minutes
Recap CMMI 20 minutes
Industry trends 30 minutes
*** Break
Industry trends 30 minutes
Final review 60 minutes
Today’s Agenda
3
Topic Duration
Current event reports 20 minutes
Recap CMMI 20 minutes
Industry trends 30 minutes
*** Break
Industry trends 30 minutes
Final review 60 minutes
Today’s Agenda
4
Software process assessment and improvement
Software Process
Software Process Assessment
is examined by identifies capabilitiesand risk of
identifiesmodifications to
Software Process Improvement
Capability Determination
leads to leads to
motivates
5
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”
6
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
7
Why CMMI?
Practical Structured Proven reputation Quantitative benefits (median):
cost 34%productivity: 61%time to market: 50%post-release defects: 48%customer satisfaction: 14%return on investment: 4:1
Benefits
8
CMMI Maturity Levels
Managed(2)
Managed(2)
Defined(3)
Defined(3)
QuantitativelyManaged
(4)
QuantitativelyManaged
(4)
Optimized(5)
Optimized(5)
Initial(1)
Initial(1) Process poorly controlled and unpredictable
Process characterized for projects and is often reactive
Process characterized for the organization and is proactive
Process measured and controlled
Process improvement (“nirvana”)
9
CMMI Structure
Maturity levels
Process areas
Contain
Specific practices
Contain
Specific goals
Achieve
Process area categories
Contain
10
CMMI Structure: Example
Level 2 - Managed
Project planning
Process area
Determine estimates of effort and cost
Specific practice
Establish estimates
Specific goal
Maturity level
Project management
Process area category
11
CMMI Process Areas
Level 3Defined
Requirements DevelopmentTechnical SolutionProduct IntegrationVerification ValidationOrganization Process Focus
Organization Process Definition Organizational Training Integrated Project Management
Risk Management Decision Analysis & Resolution
Level 2Managed
Requirements Management Project Planning Project Monitoring & Control Supplier Agreement Management
Measurement & Analysis Product & Process Quality Assurance Configuration Management
Level 5Optimized
Causal Analysis & Resolution Organizational Innovation & Deployment
Level 4Quantitatively
Managed
Organizational Process Performance Quantitative Project Management
Process Areas
12
Appraisal process
CMMI Reference model
Standard CMMI Appraisal Method for Process Improvement (SCAMPI)
Appraisal process
used by
13
CMMI Appraisal Method
TeamSelection
1
MaturityQuestionnaire
2
ResponseAnalysis
3
On-site visit
Interviews &documentreviews
4
Findingsbased on the CMMI
5
PAProfile
6
14
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
15
CMMI Issues in the Real-World
“Level envy” Areas not addressed:
Business strategy and linkage to ITOperations, help desk, supportManagement of the IT human resourceApplication portfolioTools
Many question whether it is worth the effort to pursue levels 4 and 5
17
Time to Move Up
# of monthsto move tonext level
0
75
50
25
1 to 2
23 22
2 to 3
28
3 to 4
17
4 to 5
Largest observed value thatis not an outlier
75th percentile
Median (50th percentile)25th percentileSmallest observed value thatis not an outlier
Recommended time between appraisals (18-30 mos)
18
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
19
Topic Duration
Current event reports 20 minutes
Recap CMMI 20 minutes
Industry trends 30 minutes
*** Break
Industry trends 30 minutes
Final review 60 minutes
Today’s Agenda
20
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Web 2.0
21
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
IT Offshoring
22
IT OffshoringIT organizations and solutions providers are increasing their offshore capabilities for both maintenance and development
• Merrill Lynch
• Lehman Brothers
• Ford
• NY Stock Exchange
• Motorola
• Boeing
• HSBC
• Many unpublicized
IT organizations• Accenture
• EDS
• HP
• IBM
• Perot
• SAP
• Offshore firms, typically with local presence, e.g., Wipro, Tata, Infosys
Solutions providers• Legacy
maintenance
• New development
• Projects requiring specialized expertise, e.g.,
– Embedded software
– ERP
Types of projects
23
Reduce cost 40-50% savings, according to Merrill Lynch CTO
Higher quality/capability A disproportionately high percentage of CMMI Level 5
systems development organizations are in IndiaSpeed
A “follow the sun” approach allows for 24x7 work on a project
Cost, quality, and speed are the main reasons for going offshore
24
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 FellowsLow labor and infrastructure costsGovernment commitment and supportEnglish (and other) language skills
India is the leading location for offshore sourcing
Reasons
25
India’s advantage is beginning to erode
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
Reasons
26
Typical division of labor
Communication project initiation requirements
Modeling analysis design
Construction code test
Deployment delivery support
Planning & Managing
PrimarilyOnshore
Both
PrimarilyOffshore
27
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
28
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)
29
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
30
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Web 2.0
32
Aspect-oriented software development (AOSD) Separation of concerns
Divide a system into parts that overlap as little as possible
Structured and object-oriented development support separation of concerns to an extent Modularity Encapsulation
Cross-cutting concerns (aka “aspects”) Cut across many modules/classes Result in duplication of code in structured and object-
oriented approaches Q. How best to handle cross-cutting aspects?
A. Aspect-oriented software development
33
Example: Cross-cutting aspect
Compo-nent 2
Compo-nent 3 Compo-
nent 4
Compo-nent 1
SW(Architectural
Model)
Typical implementation
Examples: • Logging• Security• Error handling• Tracing/Stepping
34
Example: Cross-cutting aspect
Compo-nent 2
Compo-nent 3 Compo-
nent 4
Compo-nent 1
SW(Architectural
Model)
Aspect-oriented implementation
Aspect
“Advice”“Join point”
35
AOSD Chronology
1997 – Seminal paper on the subject 2002 – U.S. Patent # 6,467,086
Xerox (Gregor Kiczales et al)
37
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
38
AOSD Benefits
Improved modularityQuantifiable reduction in complexity
metrics Faster time to market Smaller code size More reliable software More maintainable software
39
AOSD Challenges
Learning curve can be steepHinders adoption
Some say it makes program comprehension more difficult
40
AOSD Players/Products
AspectJ (Eclipse Foundation) de facto standard AOP language Extension to Java Open source http://eclipse.org/aspectj
JBoss AOP (Red Hat) http://labs.jboss.com/portal/jbossaop
Spring framework The AOP-based transaction and security
libraries http://www.springframework.org
41
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
42
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Web 2.0
44
Web 2.0 Principles
1. The Web as Platform2. Harnessing Collective Intelligence3. Data is the Next Intel Inside4. End of the Software Release Cycle5. Lightweight Programming Models6. Software Above the Level of a Single
Device7. Rich User Experiences
45
Class Activity
In groups of 2-3: Describe one of O’Reilly’s 7 principles Describe why a software engineer would care
48
Topic Duration
Current event reports 20 minutes
Recap CMMI 20 minutes
Industry trends 30 minutes
*** Break
Industry trends 30 minutes
Final review 60 minutes
Today’s Agenda
49
Technology
ProcessPeople
The focus of SE 425 is the process component of software engineering
Core Concepts
Technology
ProcessPeople
… for the delivery of technology-enabled business solutions