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 Final review 60 minutes 2 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 3 Software process assessment and improvement Software Process is examined by identifies modifications to identifies capabilities and risk of Software Process Assessment Software Process Improvement leads to leads to Capability Determination motivates 4 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” 5 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 6 Why CMMI? Benefits Practical Structured Proven reputation Quantitative benefits (median): cost productivity: time to market: post-release defects: customer satisfaction: return on investment: 34% 61% 50% 48% 14% 4:1 7 CMMI Maturity Levels Optimized (5) Process improvement (“nirvana”) Quantitatively Process measured and Managed controlled (4) Defined (3) Managed (2) Initial (1) Process characterized for the organization and is proactive Process characterized for projects and is often reactive Process poorly controlled and unpredictable 8 CMMI Structure Process area categories Maturity levels Contain Contain Process areas Achieve Specific goals Contain Specific practices 9 CMMI Structure: Example Process area category Maturity level Project management Level 2 - Managed Process area Project planning Specific goal Establish estimates Specific practice Determine estimates of effort and cost 10 CMMI Process Areas Process Areas Level 5 Optimized Level 4 Quantitatively Managed Level 3 Defined Level 2 Managed Causal Analysis & Resolution Organizational Innovation & Deployment 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 Requirements Management Project Planning Project Monitoring & Control Supplier Agreement Management Measurement & Analysis Product & Process Quality Assurance Configuration Management 11 Appraisal process CMMI Reference model used by Standard CMMI Appraisal Method for Process Improvement (SCAMPI) Appraisal process 12 CMMI Appraisal Method Team Selection Maturity Questionnaire Response Analysis 3 2 1 PA Profile On-site visit Interviews & document reviews 4 Findings based on the CMMI 5 6 13 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 14 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 15 Process Maturity Profile, April 2002-June 2006 16 Time to Move Up # of months to move to next level 75 50 Largest observed value that is not an outlier 28 Recommended time between appraisals (18-30 mos) 23 25 75th percentile 22 17 Median (50th percentile) 25th percentile Smallest observed value that is not an outlier 0 1 to 2 2 to 3 3 to 4 4 to 5 17 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 18 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 19 Industry trends Distributed development teams Offshoring Aspect-oriented software development Web 2.0 20 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 21 IT organizations and solutions providers are increasing their IT Offshoring offshore capabilities for both maintenance and development IT organizations • Merrill Lynch • Lehman Brothers • Ford • NY Stock Exchange • Motorola • Boeing • HSBC • Google • Many unpublicized Solutions providers • Accenture • EDS • HP • IBM • Perot • SAP • Offshore firms, typically with local presence, e.g., Wipro, Tata, Infosys Types of projects • Legacy maintenance • New development • Projects requiring specialized expertise, e.g., – Embedded software – ERP 22 Cost, quality, and speed are the main reasons for going offshore Reduce 40-50% savings, according to Merrill Lynch CTO Higher cost 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 23 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 24 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 25 Typical division of labor Planning & Managing Communication project initiation requirements Primarily Onshore Modeling analysis design Construction code test Deployment delivery support Both Primarily Offshore 26 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 27 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) 28 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 29 Industry trends Distributed development teams Offshoring Aspect-oriented software development Web 2.0 30 Gartner Hype Cycle 31 Aspect-oriented software development (AOSD) Separation of concerns Structured and object-oriented development support separation of concerns to an extent Modularity Encapsulation Cross-cutting concerns (aka “aspects”) Divide a system into parts that overlap as little as possible Cut across many modules/classes Result in duplication of code in structured and objectoriented approaches Q. How best to handle cross-cutting aspects? A. Aspect-oriented software development 32 Example: Cross-cutting aspect Typical implementation Component 2 Component 3 Component 4 SW (Architectural Model) Component 1 Examples: • Logging • Security • Error handling • Tracing/Stepping 33 Example: Cross-cutting aspect Aspect-oriented implementation Component 2 SW (Architectural Model) Component 3 Component 4 Aspect Component 1 “Advice” “Join point” 34 AOSD Chronology 1997 – Seminal paper on the subject 2002 – U.S. Patent # 6,467,086 Xerox (Gregor Kiczales et al) 35 Gregor Kiczales video http://video.google.com/videoplay?docid =8566923311315412414&q=engEDU 36 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 37 AOSD Benefits Improved modularity Quantifiable reduction in complexity metrics Faster time to market Smaller code size More reliable software More maintainable software 38 AOSD Challenges Learning curve can be steep Hinders adoption Some say it makes program comprehension more difficult 39 AOSD Players/Products AspectJ (Eclipse Foundation) JBoss AOP (Red Hat) de facto standard AOP language Extension to Java Open source http://eclipse.org/aspectj http://labs.jboss.com/portal/jbossaop Spring framework The AOP-based transaction and security libraries http://www.springframework.org 40 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 41 Industry trends Distributed development teams Offshoring Aspect-oriented software development Web 2.0 42 Web 2.0 43 Web 2.0 Principles 1. 2. 3. 4. 5. 6. 7. 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 44 Class Activity In groups of 2-3: Describe one of O’Reilly’s 7 principles Describe why a software engineer would care 45 Service Oriented Architecture (SOA) 46 SOA & Gartner Hype Cycle 47 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 48 Core Concepts The focus of SE 425 is the process component of software engineering Process Technology People … for the delivery of technology-enabled business solutions Process People Technology 49 THE END 50
© Copyright 2026 Paperzz