In addition to offering a simple yet powerful method for decomposing a syst
em, function-class decomposition (FCD) produces an architecture that is mor
e supportive than traditional object-oriented decomposition for several sof
tware engineering tasks. A hybrid method that integrates structured analysi
s with an OO approach, FCD identifies classes in parallel with decomposing
the system into a hierarchy of functional modules.
Recently, developers extended FCD to integrate UML concepts. Useful for par
titioning a system for distribution, the FCD hierarchy provides a framework
for controlling development in a distributed software engineering environm
ent. It also helps identify and integrate components in component-based dev
elopment and supports the system life-cycle maintenance phase. Further, FCD
addresses many of the initial analysis and design problems inherent in lar
ge and complex OO systems.
The authors' experience with testing FCD on several applications validates
its compatibility with OO methodologies and modeling techniques. In additio
n to supporting the decomposition process itself, the resulting FCD archite
cture and related artifacts support maintenance of the system in the face o
f changing requirements.