Professional Documents
Culture Documents
Loncurrent,
Development
Process Model
MIKIOAOYAMA,
Fujitsu
speczfication to system
test. It has been used
to develop a largescale communication
gstem.
opment forced us to add new processment cycle has become major goal h management techtuques and to reengisoftware development, yet few conven- neer conventional ones. We drew much
tional process models address this issue. of the model's underlying philosophy
In an effort to shorten the cycle, devel- from the principles of continuous proopers are looking at ways to alter the de- cess improvement found in Japanese
velopment process from sequential to production systems for hardware assems
continues, the bly.
concurrent. As t h ~ trend
need for a concurrent process model is
Shortening the development cycle
growing.
was an important goal of the project, beIn the mid 1980s,we at Fujitsu created a cause communication systems are rapidmodel that lets you develop multiple ly evolving to provide hundreds of new
functions concurrently over the entire features such as Integrated Services of
development process - from re uire- Digital Networks and computer-commens specification to system test. For munication-integrated services.
the last five years, we have applied the
However, our initial goal expanded
concurrent-development model to the to a reengineering of the entire developdevelopment of a large-scale communi- ment process. Part of the reason is that a
cation system and have produced more short development cycle makes the prothan one million h e s of source code. A ject riskier but helps expose potedal
s d a r system developed with a conven- problems in the development process ittional, sequential process model had a self.
development cycle of one year. Our deWe found, for example, that we were
velopment cycle was three months.
forced to manage the process more carefdThe complexity of concurrent devel- ly. To control the process, as well as the
46
07407459/93/07M)/w46/$0300 0 IEEE
~~
J U L Y 1993
EVOLUTIONARYCHANGE
Figure 1 shows the two-dimensional
nature of the changes in software development. Along one axis, the process is moving from sequential to concurrent; along
the other, &om centralized to distributed.
Within these axes are four types of process
model:
+ Centralized, sequential. This model
reflects the conventional development
process. Development teams are located
within a single organization or at a single
site, and development proceeds sequentially from requirements specification to
system test. This model can be widely applied to developing large-scale systems,
from business-data-processing to realtime, mission-critical systems. Its drawbacks are a long development cycle and
difficulty in allocating large numbers of
developers in a single site.
+ Centralized, concurrent. Deveiopment teams are still within the same organization or at the same site, but teams are
developing multiple features concurrently. While this model can shorten the
development cycle, it creates a new, complex problem: how to coordmate multiple
concurrent activities.
+ D&lmted, sequential. Development
is split among teams that are not located
within the same organization. Typically,
this occurs when some part of the process,
like coding, is conaacted to multiple software houses. Although process management is not as complex as that in concurrent development, resource distribution
causes many problems. It is costly to
IEEE SOFTWARE
WHAT
EVOLUTIONARY
PATH YOU
TAKE DEPENDS
LARGELY ON
WHERE YOU
ARE TO BEGIN
WITH.
47
CONCURRENT DEVELOPMENT
Figure 2 shows the concurrent development model, which differs from conventional process models in three wavy:
+ Concmwncy is in the entiir process.
Even conventional sequential process models
have some process entities that can be executed
concurrently. In o u r
model, however, the entire develo~mentDrocess
can be executed concurrently.
+ I t allows process in
the lurge. Various process
models - from the waterfall and spiral models
to the new pmdignls and
other varieties - have
been proposed. However, these traditional models focus on a single sequence of
software-development processes; concurrent development focuses on the concurrent execmion of multiple processes, just
as programming in the large focuses on
the execution of multiple programs.
IWE BORROWED
PHllOSOPHlES
48
ENT
CHALLENGES
The structure and dynamic behavior of
a concurrent development process are
JULY
1993
tered later during design and implementation. In higher level development processes, interactions are intangible and are
created as specifications are elaborated.
Furthermore, in integration and system
test, we must ensure that multiple releases
developed concurrently have not violated
the consistency of the entire system.
IMPLEMENTATION MANAGEMENT
To manage concurrent development,
we created the system shown in Figure 4,
which consists of five main elements, integrating a range of management techniques together with a support environment. Elements in this system are not new
in and of themselves, but their implementation is novel because we are a p p l p g
them to a concurrent-development
scheme. We had to invent new management techniques and reengineer old ones.
The focus of thls article is on process management, although I briefly present the
other four elements to give a picture of the
complexity we faced:
+ Procesr management. Process management deals with defining and instantiating development processes, assigning
development teams, and c o n t r o h g the
execution. The developer must visualize
the process and its interactions and decouple them, which means restructuring the
process model's underlying concurrentdevelopment process. To accommodate
dynamic behavior, process control must
reach every level of the process structure,
from entire project to release and enhancement as well as from team to indi-
Figure 3. Diagram of the interactions in the conczirrent-development process model, which shows the complexiq of interacting enhancements and releases. lntwactim
are either indirect 01' direct. Examples of indirect interaction are conjicting enhancement requirements and implementation consistency (upper centw). Direr,
interactions imliide the intwference of'individzralregnirements and implementation issues along the conrnrrent-developmentpath of enhancement 1 ... enhancement i
For example, a d e l q (delays are denoted mith thick, black arrows) in enhancement i's unit test (upper right corner) may delay the unit test of other enhancements in tht
same releuse. Thus, the integration test must be rescheduled, mhich, in nux, may affect the entire development schedule of rekase 2 and delay the start of developmenn,
on r-eka.c.e 3. ,2lor-eove7; ifan enhancement in a subsequent release issufficiently major, it m a y be nnder development conrnrrently with the p-reuious release. In thefigure
the dekqed unit test ofrelease 2 has delayed enhancementj in release 3. The main task in managing conczirrent development is to deconpk these interactions to avoid
coi?flictsrrnd inconsi.stencq. In the bottom third of thefigure, interactions have been szicces&lb decoupled, so intwference is at a minimnm.
IEEE SOFTWARE
49
Produci manaaement
___
....
.___. .. ...
vidual developer. For the large-scale conmunications project, therefore, we described the entire development process up
to the details ofthe individual developer's
task, and analyzed them. 14%then resmctured a conventional process model to
support concurrent development and developed a process-rnanagenieiit system. I
describe our work in more
detail in the next section.
+ Pqiea nm?uagement.
Project management
must efficiently assign and
control development resources to ensure productivity and qualiq over
multiple releases. From an
economical point of view,
the number of developers
1' involved in the projects
should be fixed because
rapidly changng debelop11 ers costs almost every aspect of development. To
cope with these problems, we developed a
cyclic process-enaction model that can iterativelyassign a fixed number ofdevelopers from one development process to another.
+ A-odurt managemelit. To manage
products along with concurrent development processes, the developer must con-
MOST MODELS
IGNORE HOW
TO DEAL WITH
PROCESS AND
PRODUCT
INTERACT1ON
~1
50
LEVELS.
AT
THE
1 1
c,
PROCESS MANAGEMENT
Concurrent-development processes
have two distinct process dynamics. First,
because you must manage the processes
along with the process definition, you
must be able to decouple the interaction in
the development activities of multiple
teams. Second, you must manage a variety
of events that happen arbitrarily and enable Inany
to share information
. .people
.
about these events.
Because none of the traditional process
models accommodate these dynamics, we
decided to adapt one to concurrent develop, ment We chose the waterfall model because, although it has been the subject of
much debate, it is s d widely used, and it
seemed a well-definedstartingpointforevolution to concurrent development We re, engineeredit to fit concurrent development
through the iteration ofthree processes:
1. Define the process.
2 . Redesign &e process structure.
"
3 . Rede5ign process enaction.
l
~~
JULY 1993
I
I'
Redesqnprocess structure. Our goal in redesigning the structure was to fit the process to concurrent execution as well as cut
redundancy. A key part of h s was to control the synchronization of concurrency,
especially in the middle of the cycle. To
satisfy our goal, we incorporated several
mechanisms:
+ P7acess-dependent management vim.
The software-integration process separates the entire development process into
two subprocess categories, upper and
lower. The upper subprocess category
covers requirements specification to preintegration test. The lower subprocesses
cover integration test to product delivery.
The two categories have different management requirements. The management
of upper subprocesses focuses on decoupling interactions among multiple teams;
the management of lower subprocessesfocuses on the quality assurance of the single
integrated system.
+ Decoupling of interactions.One of the
major drawbacks of the waterfall model
is that identifymg problems in requirements specifications is often postponed
until the very end of the development
process. In concurrent development,
this drawback is more serious because
the coupling of multiple functions or enhancements is more complex.
Futhermore, this coupling causes interference among development teams. To
avoid these problems, we have added a
series of reviews, wluch take place in the
f1
System-integration document form
Enhancement-history report
Module list
Inteoration/svstem-testolon
8
8,3
8.2 -
Integration/system-test plan
1
i
8.3
Conflictingmodule check
DN- System-integrotion32
review operation
manual
TOL- Conflict-check
54 operation manual
Participants: enhancement
8.6
Detailed Integration plan
Module type?
Figure 5. (A) Graphical notation of YPL, the language used to describe the entire development process.
Datelopers ran use YPL to define both the development process and objects in the communication system being
developed. (B) YPL description ofpart of a process. illustrating some of the YPL notations in (A). The lefipart
of the box defines the procedure, the center defines the dataflow (procedure inputs and outputs), and the right
side defines the firther reference to the procedure.
..
IEEE S O F T W A R E
51
'
..
- 1
~ ~ ~ ~ ~ ~ ~ ~ : e i n t etest
g r o System
t i o n integrotion Integrotion/syrtem tesQ
Figure 6. A model showing the cyclic enaction $'the concurrent-development pcess. Teams A, B, and C
(whose members are denoted ty a circle atop a triangle) are working on enhancements 1,2, and 3, respectively.
Whenpreintegratiun tests have been completed, these enhancementsare integrated into rekase nand passed to
the test team. The development teams move on to the development of the next release, which consists of
enhancementsk,j, andm. Becaweenhancement k isa major enhancement in the rekase ofa large-scale feature,
its h e h p m e n t period is hubk that of the m i n w enhancements (jand m). Therefwe, team D initiates the
development of enhancement k the same time thq, initiate release n. The number of developersis theoretically
unchanged over multiple releases,ji-om n through n+l, and so on,but in this case, Team D joins team A.
52
Number in sample
Standard deviation
EXPERIENCE
From applymg the model to a largescale communications system over the last
five years, we have learned much about
how to improve the development process.
What we have learned can be viewed in
many contexts.
IEEE SOFTWARE
53
OUR MODEL
COMPRISES
ALL THE
ELEMENTS
ESSENTIAL TO
A SOFTWARE
FACTORY.
tion,
In the development
and implementation of
the concurrent-development process, we found a
treasure of management
techniques in these principles. Although the techniques are slanted toward
hardware assembly,
which is rather different
from software development, we believe many ideas are directly
applicable because the focus is on continuComparison to the software factory. We beous process improvement T h g the same
h e concepts, we can identify much rele- lieve concurrent development is an advanced form of the software-factory apvance to concurrent development:
+ Smoothpodwtzon.This idea works as proach. For example, our model
a central principle of project management comprises all nine of the elements Michael
because a consistent development size is Cusumano identified in a software factory: which can categokey to cyclic process exerized in four groups: cution withm a fixed pe+ Work and skill
riod. Software developstandardization
ment has one major ad+ Continous process
vantage over hardware
improvement by comassembly: the control of
I
mitment to process improducts flow. In just-inprovement, a producttime hardware producprocess focus and
tion, managers must have
segmentation, processa way to eliminate invenquaky analysis and contory. In software developtrol, tailored and centralment, any products can be
ized process R&D,
transmitted though a
dynamic standardization,
system of management techniques for communication network
and incremental product
+ Standardization of
concurrent development shares some of
the concepts of the "lean" development work. This is a basic principle in producing improvement
+ Computer-aided tools and integrasystem developed and implemented bv any standardized product. The production system Drovides mechanisms not onlv tion
TA-ichi Ohno and colleagues ofTovota.';'
+ Systematic reusability
The lean production syscm -which gets to standard;= the work process but also io
The first three groups are common to
its name from continuous-improvement predict performance, which may be diffitechniques that eliminate redundancy (fat) cult in current development practices. Ad- lean production and concurrent developfrom the production process -integrates ditional study of development processes ment. Although not directly related, software reuse is also practiced in concurrent
a variety of production management tech- and menics will help this problem.
IT ALSO
SHARES
THE W S
GOAL OF
CONTINUOUS
PROCESS
IMPROVEMENT.
'
1
54
, JULY 1993
'~
refine the model and management techniques both theoretically and practically.
From a process-engineering point of view, we
should further study
modeling techniques for
concurrent development.
YPL can model the procedural view of the process and define the start
and end of concurrency,
but it is sdl weak in mod:ling multip,, views of processes -funcional, structural, and behavioral. We beieve object-oriented modeling is more
ippropriate for concurrent development
ind warrants more investigation.7
In practice, the model evolved to ac:ommodatedistributed concurrent devel)pment, in which multiple development
WE ENDED UP
ENGINEERING
AN ENTIRELY
NEW PROCESS.
&
lthough our initial goal in impleenting the concurrent-development model was to shorten the development cycle, we ended up reengineering
the entire development process. The
problems we identified open up a challenge to managing the flexible and economical development of large-scale software systems.
Several areas warrant future study to
IEEE SOFTWARE
REFERENCES
1. M. Aoyama, Concurrent Development of Software Systems:A New Development Paradigm,ACM
S0fN)re Eng. Notes,Juty 1987,pp. 20-24.
Mikio Aoyama is a supemsor at Fujitsu Ltd. His research mterests include real-nme hsmbuted software systems, software-development enmronments,and software-process
management
Aoyama received a BS and an MS m elecuomcs from Okayama University. He is L
member of the IEEE Computer Smety, ACM, Information Processmg Soaety ofJapan,
and h h t u t e of Elecuomcs, hformahon, and &mmulvcahon Engmeers,Japan
I
Address queshons about thls amcle to Aoyama at Fujitsu Ltd., Busmess Swtchmg
Software Div., 2-12-5 Shuno-odnaka,Nakahm-!a, Kawasah 2 11Japan, Internet
Iloo@mla.nakahara.fujimCO jp
55