17
Advanced development methodologies McGill ECSE 428 Software Engineering Practice Radu Negulescu Winter 2004

Software Engineering Practice - Advanced Development Methodologies

Embed Size (px)

Citation preview

Page 1: Software Engineering Practice - Advanced Development Methodologies

Advanced development methodologies

McGill ECSE 428Software Engineering Practice

Radu Negulescu

Winter 2004

Page 2: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

Page 3: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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”

Page 4: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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 keyA hierarchy of abstractionsCan be processed automatically

Page 5: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Advanced development methodologies—Slide 5

Software standards

ISO 9000 and related

CMM and related

IEEE standards

Page 6: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

• DocumentsISO 9001: 20 generic requirements, applicable to software engineeringISO 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 aboveDemonstrate that they are actually followed

Page 7: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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 SEIPaulk et al. document, linked from course site

• Extension: CMMI

Five levels

• Initial

• Repeatable

• Defined

• Managed

• Optimizing

Page 8: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

Page 9: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

Page 10: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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)

Page 11: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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)

Page 12: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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]

Page 13: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

Page 14: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

Page 15: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Advanced development methodologies—Slide 15

Class activity

Evaluate the maturity of an organization that follows XP

[after M.C. Paulk]

Satisfaction

PCM

TCM

DP

Level 5 KPAs

PR

ICSCM

SPESQA

ISMSSM

TPSPTO

SQMOPDSPP

QPMOPFRM

Satisfaction

Level 4 KPAs

Satisfaction

Level 3 KPAs

Satisfaction

Level 2 KPAs

Page 16: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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

Page 17: Software Engineering Practice - Advanced Development Methodologies

McGill University ECSE 428 © 2004 Radu NegulescuSoftware 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