1 / 50

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

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

elita
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SE 325/425Principles and Practices of Software EngineeringAutumn 2006 James Nowotarski 14 November 2006

  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. 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

  4. 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

  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”

  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

  7. 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

  8. 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

  9. Process area categories Contain Contain Process areas Achieve Specific goals Contain Specific practices CMMI Structure Maturity levels

  10. 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

  11. 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

  12. CMMI Reference model used by Standard CMMI Appraisal Method for Process Improvement (SCAMPI) Appraisal process Appraisal process

  13. 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

  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

  15. 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

  16. Process Maturity Profile, April 2002-June 2006

  17. 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

  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

  19. 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

  20. Industry trends • Distributed development teams • Offshoring • Aspect-oriented software development • Web 2.0

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. Both Primarily Onshore Primarily Offshore Typical division of labor Planning & Managing Communication project initiation requirements Modeling analysis design Construction code test Deployment delivery support

  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

  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)

  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

  30. Industry trends • Distributed development teams • Offshoring • Aspect-oriented software development • Web 2.0

  31. Gartner Hype Cycle

  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

  33. 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

  34. 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”

  35. AOSD Chronology • 1997 – Seminal paper on the subject • 2002 – U.S. Patent # 6,467,086 • Xerox (Gregor Kiczales et al)

  36. Gregor Kiczales video http://video.google.com/videoplay?docid=8566923311315412414&q=engEDU

  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

  38. AOSD Benefits • Improved modularity • Quantifiable reduction in complexity metrics • Faster time to market • Smaller code size • More reliable software • More maintainable software

  39. AOSD Challenges • Learning curve can be steep • Hinders adoption • Some say it makes program comprehension more difficult

  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

  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

  42. Industry trends • Distributed development teams • Offshoring • Aspect-oriented software development • Web 2.0

  43. Web 2.0

  44. 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

  45. Class Activity • In groups of 2-3: • Describe one of O’Reilly’s 7 principles • Describe why a software engineer would care

  46. Service Oriented Architecture (SOA)

  47. SOA & Gartner Hype Cycle

  48. 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

  49. … 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

  50. THE END

More Related