james nowotarski 13 november 2008 se 325/425 principles and practices of software engineering autumn...
TRANSCRIPT
![Page 1: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/1.jpg)
James Nowotarski
13 November 2008
SE 325/425Principles and
Practices of Software Engineering
Autumn 2008
![Page 2: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/2.jpg)
2
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
Today’s Agenda
![Page 3: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/3.jpg)
3
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
Today’s Agenda
![Page 4: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/4.jpg)
4
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 5: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/5.jpg)
5
Appraisal process
CMMI Reference model
Standard CMMI Appraisal Method for Process Improvement (SCAMPI)
Appraisal process
used by
![Page 6: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/6.jpg)
6
CMMI Appraisal Method
TeamSelection
1
MaturityQuestionnaire
2
ResponseAnalysis
3
On-site visit
Interviews &documentreviews
4
Findingsbased on the CMMI
5
PAProfile
6
![Page 7: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/7.jpg)
7
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 8: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/8.jpg)
8
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 9: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/9.jpg)
9
Measurement and Continuous Improvement
Continuous Improvement Measurement
![Page 10: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/10.jpg)
10
Metrics Program Change Plan
QUALITY MANAGEMENT
Enable
Change
Technology
Process
People
Metrics Awareness Education
Metrics Network
Vital Few Metrics Definitions Vital Few Metrics Implementation
Technology Strategy
KM Support for Measurement Community of Practice
Measurement Process Improvement
Large Project Network
Metrics Strategy Commitment / Ownership
Distributed Support Units
Metrics Repository and tools
Measurement Process Definition
Roles & Responsibilities
PROGRAM MANAGEMENT
Achieve-1
Change
Sustain
Change
Achieve-2
Change
Metrics Rollout Education/Training
Pilot Project Group
Ongoing Metrics Education / Training
System Building Improvement Goals
Metrics Definition & Implementation for Delivery Centers
Metrics Embedded in System Building Methods
Dashboard metrics Implementation
Pilot Selected Projectsand Selected Delivery Centers
Enable Large Projectsand Remaining Centers
![Page 11: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/11.jpg)
11
Measurement Program Mortality
Most programs fail, usually within 2 years
Number of companies
400
350
300
250
200
150
100
50
0
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991
Year
Cumulative startsCumulative successes
![Page 12: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/12.jpg)
12
Reasons 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
![Page 13: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/13.jpg)
13
Key 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
![Page 14: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/14.jpg)
14
Final Quote
“In God we trust – All others must bring data”
W. Edwards Deming
![Page 15: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/15.jpg)
15
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
Today’s Agenda
![Page 16: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/16.jpg)
16
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Service orientation
![Page 17: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/17.jpg)
17
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 18: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/18.jpg)
18
IT OffshoringIT organizations and solutions providers are increasing their offshore capabilities for both maintenance and development
• Bank of America
• Ford
• NY Stock Exchange
• Motorola
• Boeing
• HSBC
• Many unpublicized
IT function of org’s• 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 19: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/19.jpg)
19
Reduce cost 40-50% savings
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 “Send the requirements docs to India at the end of the
day, and you'll have a working prototype in the morning.”
Cost, quality, and speed are the main reasons for going offshore
![Page 20: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/20.jpg)
20
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
India is the leading location for offshore sourcing
Reasons
![Page 21: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/21.jpg)
21
India’s advantage is beginning to erode
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
Reasons
![Page 22: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/22.jpg)
22
Typical division of labor
Communication project initiation requirements
Modeling analysis design
Construction code test
Deployment delivery support
Planning & Managing
PrimarilyOnshore
Both
PrimarilyOffshore
![Page 23: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/23.jpg)
23
Sampling of issues cited by CDM students w/ experience
“…too many communication and quality issues…”
“…each location with a different process, e.g., SCM…no training for project managers [on how to make it work]”
“…lacks the incidental contacts and other informal communications that benefit a team…”
![Page 24: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/24.jpg)
24
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Service orientation
![Page 25: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/25.jpg)
25
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 26: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/26.jpg)
26
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 27: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/27.jpg)
27
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 28: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/28.jpg)
28
AOSD Chronology
1997 – Seminal paper on the subject 2002 – U.S. Patent # 6,467,086
Xerox (Gregor Kiczales et al)
![Page 29: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/29.jpg)
29
Gregor Kiczales video
http://video.google.com/videoplay?docid=8566923311315412414&q=engEDU
Aspect-Oriented ProgrammingRadical research in modularity
![Page 30: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/30.jpg)
30
Jon Whipple video
http://www.youtube.com/watch?v=tzjRr3usV6I
Aspect-Oriented ModelingWhat is it and what is it good for
![Page 31: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/31.jpg)
31
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 32: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/32.jpg)
32
AOSD Benefits
Improved modularityQuantifiable reduction in complexity
metrics Faster time to market Smaller code size More reliable software More maintainable software
![Page 33: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/33.jpg)
33
AOSD Challenges
Learning curve can be steepHinders adoption
Some say it makes program comprehension more difficult
![Page 34: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/34.jpg)
34
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 35: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/35.jpg)
35
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 36: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/36.jpg)
36
Industry trends
Distributed development teamsOffshoring
Aspect-oriented software development
Service orientation
![Page 37: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/37.jpg)
37
Net-centric models of IT service delivery (vs. in-house delivery)
Web services, e.g., FlickrGoogle Maps
Cloud computingRun in the cloudDevelop in the cloud______ as a Service (__aaS)
![Page 38: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/38.jpg)
Applications and Data
Middleware
Hardware/Network
System Software
______ as a Service
Public Infrastructure
Business processes
IT Infrastructure in the “Cloud”
• Amazon • EMC• Google• Microsoft
• WebEx• Netsuite• eCollege
Applications in the “Cloud”
![Page 39: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/39.jpg)
Applications and Data
Middleware
Hardware/Network
System Software
______ as a Service
Public Infrastructure
Business processes
Ecosystem in the “Cloud”
• Salesforce.com
![Page 40: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/40.jpg)
40
Service Oriented Architecture (SOA)
![Page 41: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/41.jpg)
SOA “Concept Map”
41
![Page 42: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/42.jpg)
42
SOA & Gartner Hype Cycle
![Page 43: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/43.jpg)
43
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
Today’s Agenda
![Page 44: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/44.jpg)
44
Need 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
![Page 45: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/45.jpg)
45
Need for Continuous Learning
IEEE Certified Software Development Professional (CSDP)Every 5 years you must demonstrate
that you’ve kept up to date• Classes• Reading books• Seminars/Conferences
![Page 46: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/46.jpg)
46
Technology
ProcessPeople
The software engineering discipline consists of people, process, and technology components
Remember . . .
![Page 47: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/47.jpg)
47
THE END
![Page 48: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/48.jpg)
Extra Slides
![Page 49: James Nowotarski 13 November 2008 SE 325/425 Principles and Practices of Software Engineering Autumn 2008](https://reader030.vdocuments.us/reader030/viewer/2022032605/56649e735503460f94b7364e/html5/thumbnails/49.jpg)
49
Agent-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.