Title: James Nowotarski
1SE 325/425Principles and Practices of Software
EngineeringAutumn 2008
- James Nowotarski
- 13 November 2008
2Todays Agenda
- Topic Duration
- Current event reports 20 minutes
- Recap CMMI and metrics 30 minutes
- Industry trends 30 minutes
- Break
- Industry trends 30 minutes
- Final review 60 minutes
3Todays Agenda
- Topic Duration
- Current event reports 20 minutes
- Recap CMMI and metrics 30 minutes
- Industry trends 30 minutes
- Break
- Industry trends 30 minutes
- Final review 60 minutes
4CMMI Maturity Levels
Process improvement (nirvana)
Process measured and controlled
Process characterized for the organization and is
proactive
Process characterized for projects and is often
reactive
Initial (1)
Process poorly controlled and unpredictable
5Appraisal process
6CMMI Appraisal Method
Team Selection
1
7Appraisal Process
- For internal purposes
- Performed in open, collaborative environment
- Focuses on improving the organizations software
process - For external credential
- Performed in a more audit-oriented environment
- Focuses on identifying risks associated with a
contractor - Teams recommendation will help select
contractors or set fees
8Time to Move Up
of months to move to next level
75
50
Largest observed value that is not an outlier
28
75th percentile
23
Recommended time between appraisals (18-30 mos)
22
25
17
Median (50th percentile)
25th percentile
Smallest observed value that is not an outlier
0
1 to 2
4 to 5
2 to 3
3 to 4
9Measurement and Continuous Improvement
Continuous Improvement
Measurement
10Metrics Program Change Plan
Enable Large Projects and Remaining Centers
Pilot Selected Projects and Selected Delivery
Centers
People
Process
Metrics Embedded in System Building Methods
Technology
QUALITY MANAGEMENT
PROGRAM MANAGEMENT
11Measurement Program Mortality
Most programs fail, usually within 2 years
Number of companies
400
Cumulative starts Cumulative successes
350
300
250
200
150
100
50
0
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
Year
12Reasons for Metric Program Failure
- Lack of visible executive sponsorship
- Lack of alignment with organizational goals
- Tendency to collect too much data
- Measures not calibrated, normalized, or validated
- Not comparing apples-to-apples
- Fear of individual evaluation
- Learning curve (e.g., function points)
- Cost overhead
13Key Success Factors
- Ensure that measurement is part of something
larger, typically performance improvement - Trojan Horse strategy
- Ensure alignment with organizational goals
- Start small, iterate
- Strongly recommend doing a pilot test
- Automate capture of metrics data
- Rigorously define a limited, balanced set of
metrics - Vital Few
- Portfolio approach
- Comparability
- Aggregate appropriately
- Focus should be on processes, not individuals
- Obtain visible executive sponsorship
- Understand and address the behavioral implications
14Final Quote
- In God we trust All others must bring data
15Todays Agenda
- Topic Duration
- Current event reports 20 minutes
- Recap CMMI and metrics 30 minutes
- Industry trends 30 minutes
- Break
- Industry trends 30 minutes
- Final review 60 minutes
16Industry trends
- Distributed development teams
- Offshoring
- Aspect-oriented software development
- Service orientation
17IT 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
18IT Offshoring
- IT organizations and solutions providers are
increasing their offshore capabilities for both
maintenance and development
19Cost, quality, and speed are the main reasons for
going offshore
- Reduce cost
- 40-50 savings
- Higher 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 - Send the requirements docs to India at the end
of the day, and you'll have a working prototype
in the morning.
20India is the leading location for offshore
sourcing
Reasons
- Highly capable workforce
- 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
21Indias advantage is beginning to erode
Reasons
- Competition for talent is driving salaries up by
as much as 30 per year - High turnover rates
- China, Russia, Malaysia, and Philippines are
training armies of programmers to compete with
India - 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
22Typical division of labor
Planning Managing
Communication project initiation requirements
Modeling analysis design
Construction code test
Deployment delivery support
23Sampling of issues cited by CDM students w/
experience
- too many communication and quality issues
- each location with a different process, e.g.,
SCMno training for project managers on how to
make it work - lacks the incidental contacts and other
informal communications that benefit a team
24Industry trends
- Distributed development teams
- Offshoring
- Aspect-oriented software development
- Service orientation
25Aspect-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
26Example Cross-cutting aspect
Typical implementation
Compo- nent 3
Compo- nent 2
Compo- nent 4
Compo- nent 1
- Examples
- Logging
- Security
- Error handling
- Tracing/Stepping
27Example Cross-cutting aspect
Aspect-oriented implementation
Compo- nent 3
Compo- nent 2
Compo- nent 4
Aspect
Compo- nent 1
Advice
28AOSD Chronology
- 1997 Seminal paper on the subject
- 2002 U.S. Patent 6,467,086
- Xerox (Gregor Kiczales et al)
29Gregor Kiczales video
Aspect-Oriented Programming Radical research in
modularity
- http//video.google.com/videoplay?docid8566923311
315412414qengEDU
30Jon Whipple video
Aspect-Oriented Modeling What is it and what is
it good for
- http//www.youtube.com/watch?vtzjRr3usV6I
31AOSD 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
32AOSD Benefits
- Improved modularity
- Quantifiable reduction in complexity metrics
- Faster time to market
- Smaller code size
- More reliable software
- More maintainable software
33AOSD Challenges
- Learning curve can be steep
- Hinders adoption
- Some say it makes program comprehension more
difficult
34AOSD 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
35AOSD 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
36Industry trends
- Distributed development teams
- Offshoring
- Aspect-oriented software development
- Service orientation
37Net-centric models of IT service delivery (vs.
in-house delivery)
- Web services, e.g.,
- Flickr
- Google Maps
- Cloud computing
- Run in the cloud
- Develop in the cloud
- ______ as a Service (__aaS)
38______ as a Service
Business processes
Applications and Data
Middleware
System Software
Hardware/Network
Public Infrastructure
39______ as a Service
Business processes
Applications and Data
Middleware
System Software
Hardware/Network
Public Infrastructure
40Service Oriented Architecture (SOA)
41SOA Concept Map
42SOA Gartner Hype Cycle
43Todays Agenda
- Topic Duration
- Current event reports 20 minutes
- Recap CMMI and metrics 30 minutes
- Industry trends 30 minutes
- Break
- Industry trends 30 minutes
- Final review 60 minutes
44Need for Continuous Learning
- Software engineers shall participate in lifelong
learning regarding the practice of their
profession. They shall continually endeavor to
further their knowledge of developments in the
analysis, specification, design, development,
maintenance and testing of software , together
with the management of the development process,
to improve their knowledge of relevant standards
and the law governing the software and related
documents. - - IEEE/ACM Software Engineering Code of Ethics
45Need for Continuous Learning
- IEEE Certified Software Development Professional
(CSDP) - Every 5 years you must demonstrate that youve
kept up to date - Classes
- Reading books
- Seminars/Conferences
46Remember . . .
The software engineering discipline consists of
people, process, and technology components
47THE END
48Extra Slides
49Agent-Oriented Software Engineering
Mubarak, H. (2008, September/October). Developing
flexible software using agent-oriented software
engineering. IEEE Software. Retrieved November 1,
2008, from IEEE Digital Library.