se 325/425 principles and practices of software engineering autumn 2006

50
James Nowotarski 14 November 2006 SE 325/425 Principles and Practices of Software Engineering Autumn 2006

Upload: elita

Post on 14-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

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 CMMI20 minutes Industry trends30 minutes *** Break Industry trends 30 minutes - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SE 325/425 Principles and Practices of Software Engineering Autumn 2006

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16

Process Maturity Profile, April 2002-June 2006

Page 17: SE 325/425 Principles and Practices of Software Engineering Autumn 2006

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

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

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

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

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

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

• Google

• 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

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

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

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

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

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

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

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

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

31

Gartner Hype Cycle

Page 32: SE 325/425 Principles and Practices of Software Engineering Autumn 2006

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

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

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

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

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

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

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

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

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

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

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

43

Web 2.0

Page 44: SE 325/425 Principles and Practices of Software Engineering Autumn 2006

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

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

46

Service Oriented Architecture (SOA)

Page 47: SE 325/425 Principles and Practices of Software Engineering Autumn 2006

47

SOA & Gartner Hype Cycle

Page 48: SE 325/425 Principles and Practices of Software Engineering Autumn 2006

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

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

50

THE END