Your SlideShare is downloading. ×
0
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Software Engineering Practice - Advanced Development Methodologies

307

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
307
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Advanced development methodologies McGill ECSE 428 Software Engineering Practice Radu Negulescu Winter 2004
  • 2. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 2 About this module Here we discuss some of the current trends in software engineering and what to expect of them Outline • Tool adoption: “No silver bullets” • Software standards • Agile vs. plan-driven methods
  • 3. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 3 No silver bullets Frederick P. Brooks, Jr.: • Turing award 1999 “For landmark contributions to computer architecture, operating systems, and software engineering”
  • 4. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 4 No silver bullets Prediction: no single technology or tool can yield 10x productivity improvements over 10 years (1986-1996) • This works down to 25% per year [McConnell] • Brooks was right... • High-level languages, structured methods had already been invented! • Combined effect still possible Is there anything that really makes a difference? • Make it easier to formulate concepts! A computer program: “a set of interlocking concepts” Precise, rich with detail • Specifications are the key A hierarchy of abstractions Can be processed automatically
  • 5. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 5 Software standards ISO 9000 and related CMM and related IEEE standards
  • 6. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 6 ISO 9000 and related Problem: you need a quality system to ensure quality of final product, accountability for failures • Required by many government and industry customers • Network of interrelated processes: meet requirements, be documented and practiced • Organizational structure, procedures, resources • Quality planning, control, assurance, improvement • Documents ISO 9001: 20 generic requirements, applicable to software engineering ISO 9000-3: guidelines to interpret the standard in the context of software • ISO 9001 topics: management responsibility, quality system, contract review, design control, document and data control, product identification and traceability, process control, inspection and testing, corrective and preventive action, control of quality records, internal quality audits, training, servicing, statistical techniques. Establish local policies and procedures for the above Demonstrate that they are actually followed
  • 7. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 7 SW-CMM Capability Maturity Model • Framework for evaluating the maturity of a software-production organization • Sets priorities for process improvement • Origin: CMU SEI Paulk et al. document, linked from course site • Extension: CMMI Five levels • Initial • Repeatable • Defined • Managed • Optimizing
  • 8. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 8 SW-CMM Level 2: Repeatable • Requirements management • Project planning • Project tracking and oversight • Subcontract management • Quality assurance • Configuration management
  • 9. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 9 SW-CMM Level 3: Defined • Organization process focus (process team) • Organization process definition (standard model + tailoring guidelines) • Training program • Integrated software management • Software product engineering • Intergroup coordination • Peer reviews
  • 10. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 10 SW-CMM Level 4: Managed • Quantitative process management (defined metrics, project database) • Quality management (quality goals and monitoring)
  • 11. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 11 SW-CMM Level 5: Optimized • Defect prevention (use past metrics info) • Technology change management (investigate and propagate) • Process change management (constant refinement)
  • 12. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 12 Agile vs. plan-driven methods Agile principles • Early and frequent delivery; measure progress by working software • Accommodate and harness change • Frequent interaction of business and development • Motivated individuals, face-to-face conversation, sustainable development • Simplicity, technical excellence, good design • Continual improvement of team behavior Agile – plan-driven spectrum [Barry Boehm]
  • 13. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 13 Extreme programming A new and somewhat controversial process model • Lightweight, but highly disciplined! • Assumption: high cost of change can be flattened • Take commonsense practices to “extreme” levels Basic activities • Coding • Testing • Listening • Designing Values • Communication • Simplicity • Feedback • Courage
  • 14. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 14 Extreme programming 12 main practices • Planning game • Small releases • Metaphor • Simple design • Testing • Refactoring • Pair programming • Collective ownership • Continuous integration • 40-hour week • On-site customer • Coding standards
  • 15. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 15 Class activity Evaluate the maturity of an organization that follows XP [after M.C. Paulk] Satisfac tion PCM TCM DP Level 5 KPAs PR ICSCM SPESQA ISMSSM TPSPTO SQMOPDSPP QPMOPFRM Satisfac tion Level 4 KPAs Satisfac tion Level 3 KPAs Satisfac tion Level 2 KPAs
  • 16. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 16 Rational Unified Process Four phases, orthogonal to the development cycle: • Inception: concept exploration • Elaboration: project planning, resource allocation • Construction: several iterations • Transition: installation and post-development
  • 17. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Advanced development methodologies—Slide 17 References CMM and related • Jalote 1.2 • CMM documents collection http://www.sei.cmu.edu/cmm/obtain.cmm.html • CMMI http://www.sei.cmu.edu/cmmi/ ISO 9000, 9001, 9000-3 • R. S. Pressmann: “Software Engineering, A Practitioner’s Approach”, 5th ed., 2001 – section 8.10 • IEEE Xplore on-line library No Silver Bullets • F. Brooks: “No Silver Bullets - Essence and Accidents of Software Engineering”, Computer, 1986. • F. Brooks: “The Mythical Man-Month” (1975, 1995) Software processes • P. Kruchten, “The Rational Unified Process - An Introduction”, Addison-Wesley, 1998 • K. Beck, “Extreme Programming Explained – Embrace Change” Addison- Wesley, 2000

×