Vous êtes sur la page 1sur 14

Winston W.

Royce,
Managing the development of large software systems
Proc. IEEE WESCON, Aug 1970

Winston W. Royce (1929–1995)


• American leader computer scientist & Engineer of software
development in the second half of the 20th century.
•B . S c . i n p h y s i c s , M . S c & P h . D . i n a e r o n a u t i c a l e n g i n e e r i n g ,
all from California Institute of Technology (Caltech).
•W o r k e d i n t h e f i e l d o f s o f t w a r e s y s t e m s e n g i n e e r i n g s i n c e
1961.
•S i n c e t h e 1 9 7 0 s – T h e d i r e c t o r o f L o c k h e e d s o f t w a r e
technology center in Austin, Texas.
•T h e f i r s t t o d e s c r i b e “ t h e W a t e r f a l l m o d e l ” .
•R e c e i v e d t h e A I A A i n f o r m a t i o n s y s t e m s a w a r d i n 1 9 7 5 .
Basic Program Development Process

•There are two essential steps in all computer program developments:


•Analysis – the phase of studying the problem & figuring a way to solve it by
program.
•Coding – the process of writing the program code.
•These steps are essential, creative, immediate, Costumers are happy to pay for
them & developers just love to work on them.
•For small programs for internal use – these 2 steps are working just fine.
•But – this is NOT a good program Engineering for program projects that involve
large scale of code, many developers or external costumer.
• In Royce experience, any attempt to complete such program projects using only
these 2 steps is doomed to failure in terms of cost, development
•duration & reliability.
The Waterfall Model

Notice the Error directions ~!~!~!


Royce’s Worst Nightmare
Step 1 : Preliminary Design

 Add phase of preliminary program design between


the “Software requirements” & analysis stages.
 In this step – try to draw “from scratch”, with the aid
of some experience program designer a general
sketch of your system (its size, resources usage, main
ingredients, methods of work etc).
 Even at the risk of being wrong, such a sketch helps
the analysts & the designers to define a general
frame for their offered solution & assure that you
can afford allocation of the resources needed for the
solution.
Step 1 : Preliminary Design

 Such a sketch can also help you to recognize, in a


vary early stage ,logical problems in the original
requirements or a severe lack of resources (memory,
process ability, time, personal , money, etc.) at your
disposal with regard to the project demands.
Step 2: A lot of Documentation

 “The first rule of managing software development is


ruthless enforcement of documentation
requirements.”
 Real requirements specification & design are written
accurately & in a very detailed manner. If you don’t
have such documents – you don’t really understand
well the requirements or the design.
 Some advantages of good documentation:
 Objective & unequivocal understanding & knowledge of the
current progress during encoding – enables management
decisions.
Step 2: A lot of Documentation

 Some more advantages of good documentation:


 Mutual understanding between designers, thsters, managers &
even costumers.
 Ability to divert personal when required.

 Allows performing of testing & operations by experts to these


field & free the developers & programmers to do their work.
 Enables updates & upgrades (instead of system replacement).

 Better ability to locate & treat errors & malfunctions in the


code & distinguish between them & malfunctions in other
parts of the system.
 As a result, in Royce opinion, there are 6 documents that
should be written during the development process:
Step 2: A lot of Documentation
Step 3: Prototype

 If the product is original & being developed for the


first time, Royce recommends to devote up to 33% of
the development time for building a prototype of the
product, testing & using it.
 The prototype project should be managed as the real
one (in the full stages, documentation, etc.) but focus
the effort on the trouble spots of the project & not in
the straightforward, gray parts of it.
 The rate of time, effort & precision invested in such a
prototype is changed as function of the complexity &
innovation of the project.
Step 3: Prototype – development scheme
Step 4: Good Testing

 Testing phase should be the biggest phase of the project


development from the aspects of manpower, time &
resources.
 Royce recommendations for good testing:
 Plan the tests, before product coding, in the design phase.
 Use autonomous & detached test group of testing specialists &
not program developers to test your product (good
documentation should enable this!).
 Check every bit of code by second eye. Usually it will descover
most of the bugs even before execution.
 Test every logic path in your product at least once.
 Test not only the product functionality but also the usage,
maintence & costumer instructions aspects.
Step 5 : Involve the costumer

 In order to prevent misunderstandings &


misinterpretations regarding the abilities, costs,
development duration & activation of the system, Royce
recommends to involve the costumer in formal way as an
active reviewer in the phases of defining the system
requirements, preliminary design, design & after the
testing, before the operation,
 Such involvement will prevent disconnection between the
developers concepts of the product and the costumer needs
& will insure his awareness to the alternatives &
compromises done during the development.
Summary

 41 years ago, Winston Royce introduced to the world


a profound, complex & safe model for software
project engineering.
 Since, this model, in some smell changes &
adaptations, became one of the most popular models
for software development and it is still popular &
relevant today.
 Consequentially, it must be a very good & usful
model.

Vous aimerez peut-être aussi