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