500 likes | 630 Views
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 CMMI 20 minutes Industry trends 30 minutes *** Break Industry trends 30 minutes
E N D
SE 325/425Principles and Practices of Software EngineeringAutumn 2006 James Nowotarski 14 November 2006
Today’s Agenda 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 Topic Duration • Current event reports 20 minutes • Recap CMMI 20 minutes • Industry trends 30 minutes *** Break • Industry trends 30 minutes • Final review 60 minutes
Software process assessment and improvement Software Process is examined by identifies identifies capabilities modifications to and risk of Software Process Assessment Capability leads to leads to Software Process Determination Improvement motivates
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”
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
Why CMMI? Benefits • 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
Optimized (5) Quantitatively Managed (4) Defined (3) Managed (2) CMMI 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
Process area categories Contain Contain Process areas Achieve Specific goals Contain Specific practices CMMI Structure Maturity levels
CMMI Structure: Example Process area category Maturity level Level 2 - Managed Project management Process area Project planning Specific goal Establish estimates Specific practice Determine estimates of effort and cost
Causal Analysis & Resolution Organizational Innovation & Deployment Level 5 Optimized Level 4 Quantitatively Managed Organizational Process Performance Quantitative Project Management Requirements Development Technical Solution Product Integration Verification Validation Organization Process Focus Organization Process Definition Organizational Training Integrated Project Management Risk Management Decision Analysis & Resolution Level 3 Defined Requirements Management Project Planning Project Monitoring & Control Supplier Agreement Management Measurement & Analysis Product & Process Quality Assurance Configuration Management Level 2 Managed CMMI Process Areas Process Areas
CMMI Reference model used by Standard CMMI Appraisal Method for Process Improvement (SCAMPI) Appraisal process Appraisal process
Maturity Questionnaire Response Analysis 3 2 PA Profile Findings based on the CMMI On-site visit Interviews & document reviews 5 4 6 CMMI Appraisal Method Team Selection 1
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
CMMI Issues in the Real-World • “Level envy” • Areas not addressed: • Business strategy and linkage to IT • Operations, help desk, support • Management of the IT human resource • Application portfolio • Tools • Many question whether it is worth the effort to pursue levels 4 and 5
Time to Move Up # of months to move to next level 75 50 Largest observed value that is not an outlier 28 75th percentile Recommended time between appraisals (18-30 mos) 23 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
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
Today’s Agenda Topic Duration • Current event reports 20 minutes • Recap CMMI 20 minutes • Industry trends 30 minutes *** Break • Industry trends 30 minutes • Final review 60 minutes
Industry trends • Distributed development teams • Offshoring • Aspect-oriented software development • Web 2.0
IT 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
IT organizations Solutions providers Types of projects • Merrill Lynch • Lehman Brothers • Ford • NY Stock Exchange • Motorola • Boeing • HSBC • Google • Many unpublicized • Accenture • EDS • HP • IBM • Perot • SAP • Offshore firms, typically with local presence, e.g., Wipro, Tata, Infosys • Legacy maintenance • New development • Projects requiring specialized expertise, e.g., • Embedded software • ERP IT Offshoring IT organizations and solutions providers are increasing their offshore capabilities for both maintenance and development
Cost, quality, and speed are the main reasons for going offshore • 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 India • Speed • A “follow the sun” approach allows for 24x7 work on a project
India is the leading location for offshore sourcing Reasons • 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 Fellows • Low labor and infrastructure costs • Government commitment and support • English (and other) language skills
India’s advantage is beginning to erode Reasons • 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
Both Primarily Onshore Primarily Offshore Typical division of labor Planning & Managing Communication project initiation requirements Modeling analysis design Construction code test Deployment delivery support
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
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)
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
Industry trends • Distributed development teams • Offshoring • Aspect-oriented software development • Web 2.0
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
SW (Architectural Model) Example: Cross-cutting aspect Typical implementation Compo- nent 3 Compo- nent 2 Compo- nent 4 Compo- nent 1 Examples: • Logging • Security • Error handling • Tracing/Stepping
SW (Architectural Model) “Join point” Example: Cross-cutting aspect Aspect-oriented implementation Compo- nent 3 Compo- nent 2 Compo- nent 4 Aspect Compo- nent 1 “Advice”
AOSD Chronology • 1997 – Seminal paper on the subject • 2002 – U.S. Patent # 6,467,086 • Xerox (Gregor Kiczales et al)
Gregor Kiczales video http://video.google.com/videoplay?docid=8566923311315412414&q=engEDU
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
AOSD Benefits • Improved modularity • Quantifiable reduction in complexity metrics • Faster time to market • Smaller code size • More reliable software • More maintainable software
AOSD Challenges • Learning curve can be steep • Hinders adoption • Some say it makes program comprehension more difficult
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
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
Industry trends • Distributed development teams • Offshoring • Aspect-oriented software development • Web 2.0
Web 2.0 Principles • The Web as Platform • Harnessing Collective Intelligence • Data is the Next Intel Inside • End of the Software Release Cycle • Lightweight Programming Models • Software Above the Level of a Single Device • Rich User Experiences
Class Activity • In groups of 2-3: • Describe one of O’Reilly’s 7 principles • Describe why a software engineer would care
Today’s Agenda Topic Duration • Current event reports 20 minutes • Recap CMMI 20 minutes • Industry trends 30 minutes *** Break • Industry trends 30 minutes • Final review 60 minutes
… for the delivery of technology-enabled business solutions People Process Technology Core Concepts The focus of SE 425 is the process component of software engineering People Process Technology