SE 325/425 Principles and Practices of Software Engineering Autumn 2006
description
Transcript of SE 325/425 Principles and Practices of Software Engineering Autumn 2006
![Page 1: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/1.jpg)
James Nowotarski
14 November 2006
SE 325/425Principles and
Practices of Software Engineering
Autumn 2006
![Page 2: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/2.jpg)
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
![Page 3: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/3.jpg)
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
![Page 4: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/4.jpg)
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
![Page 5: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/5.jpg)
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”
![Page 6: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/6.jpg)
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
![Page 7: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/7.jpg)
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
![Page 8: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/8.jpg)
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”)
![Page 9: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/9.jpg)
9
CMMI Structure
Maturity levels
Process areas
Contain
Specific practices
Contain
Specific goals
Achieve
Process area categories
Contain
![Page 10: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/10.jpg)
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
![Page 11: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/11.jpg)
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
![Page 12: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/12.jpg)
12
Appraisal process
CMMI Reference model
Standard CMMI Appraisal Method for Process Improvement (SCAMPI)
Appraisal process
used by
![Page 13: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/13.jpg)
13
CMMI Appraisal Method
TeamSelection
1
MaturityQuestionnaire
2
ResponseAnalysis
3
On-site visit
Interviews &documentreviews
4
Findingsbased on the CMMI
5
PAProfile
6
![Page 14: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/14.jpg)
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
![Page 15: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/15.jpg)
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
![Page 16: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/16.jpg)
16
Process Maturity Profile, April 2002-June 2006
![Page 17: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/17.jpg)
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)
![Page 18: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/18.jpg)
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
![Page 19: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/19.jpg)
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
![Page 20: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/20.jpg)
20
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Web 2.0
![Page 21: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/21.jpg)
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
![Page 22: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/22.jpg)
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
![Page 23: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/23.jpg)
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
![Page 24: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/24.jpg)
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
![Page 25: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/25.jpg)
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
![Page 26: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/26.jpg)
26
Typical division of labor
Communication project initiation requirements
Modeling analysis design
Construction code test
Deployment delivery support
Planning & Managing
PrimarilyOnshore
Both
PrimarilyOffshore
![Page 27: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/27.jpg)
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
![Page 28: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/28.jpg)
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)
![Page 29: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/29.jpg)
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
![Page 30: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/30.jpg)
30
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Web 2.0
![Page 31: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/31.jpg)
31
Gartner Hype Cycle
![Page 32: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/32.jpg)
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
![Page 33: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/33.jpg)
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
![Page 34: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/34.jpg)
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”
![Page 35: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/35.jpg)
35
AOSD Chronology
1997 – Seminal paper on the subject 2002 – U.S. Patent # 6,467,086
Xerox (Gregor Kiczales et al)
![Page 36: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/36.jpg)
36
Gregor Kiczales video
http://video.google.com/videoplay?docid=8566923311315412414&q=engEDU
![Page 37: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/37.jpg)
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
![Page 38: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/38.jpg)
38
AOSD Benefits
Improved modularityQuantifiable reduction in complexity
metrics Faster time to market Smaller code size More reliable software More maintainable software
![Page 39: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/39.jpg)
39
AOSD Challenges
Learning curve can be steepHinders adoption
Some say it makes program comprehension more difficult
![Page 40: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/40.jpg)
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
![Page 41: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/41.jpg)
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
![Page 42: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/42.jpg)
42
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Web 2.0
![Page 43: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/43.jpg)
43
Web 2.0
![Page 44: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/44.jpg)
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
![Page 45: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/45.jpg)
45
Class Activity
In groups of 2-3: Describe one of O’Reilly’s 7 principles Describe why a software engineer would care
![Page 46: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/46.jpg)
46
Service Oriented Architecture (SOA)
![Page 47: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/47.jpg)
47
SOA & Gartner Hype Cycle
![Page 48: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/48.jpg)
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
![Page 49: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/49.jpg)
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
![Page 50: SE 325/425 Principles and Practices of Software Engineering Autumn 2006](https://reader034.fdocuments.in/reader034/viewer/2022051401/568148ee550346895db60b43/html5/thumbnails/50.jpg)
50
THE END