Refinement in the Function-Behaviour-Structure Framework
RRefinement in the Function-Behaviour-Structure Framework(version 2)
Bob Diertens section Theory of Computer Science, Faculty of Science, University of Amsterdam
ABSTRACT
We introduce refinement in the function-behaviour-structure framework for design, asdescribed by John Gero, in order to deal with complexity. We do this by connecting theframeworks for the design of two models, one the refinement of the other. The result is aframework for the design of an object that supports levels of abstraction in the design.This framework can easily be extended for the design of an object on more than twolevels of abstraction.
Ke ywords: design model, refinement, abstraction, software design
1. Introduction
In software engineering, dealing with complexity is a major issue and it is the ground for many softwaredevelopment methodologies. Most of these methodologies however do not take into account the nature andprocess of design. Each methodology has its success stories, but one can seldom relate it to a more abstractframework for design. A well-known method for dealing with complexity in other engineering disciplinesis modelling. By making a model one can leave out some detail and concentrate on the bigger picture.Even a model can be too complicated, in which case one can make a model for the model. This results in adesign consisting of several levels, each higher level abstracting from details on the lower levels.This is picked up in software engineering as well and resulted in model based software development andsimilar approaches. Despite this, the problem with software engineering remains that the design is largelyfocused on a too low lev el of abstraction. This is caused by the fact that software is build cheaply, and canbe done over and over again. This makes it possible to test on the lowest level and often results in a race tothe lowest level to start testing early in the design process. A step up to a higher level of abstraction torepair design flaws is easily replaced by fixing the design on the lowest level. In that process, the higherlevel design is discarded and complexity is taken into the lower levels instead of dealing with it on thehigher levels of design.In our view it is better to incorporate methodologies that follow the nature and process of design on severallevels of abstraction. An important factor in this is the knowledge of what design really is. John Gero hasdescribed a general framework for design [1] that is based on function, behaviour, and structure of theobject to be designed. This framework, however, omits levels of abstraction. Although one can argue thatthrough the reformulation processes of this framework it is possible to have lev els of abstraction in thedesign, the levels of abstraction then are only implicit in the design process. For a thorough understandingand execution of the design process it would be better to make the levels of abstraction explicit in thedesign process.In section 2 we give an overview of the function-behaviour-structure framework for design. We introducerefinement in this framework in section 3 in order to support levels of abstraction in the design processexplicitly.
2. The Function-Behaviour-Structure Framework
In [1] Gero describes a framework for design that has sufficient power to capture the nature of the conceptsthat support design processes. This framework, that involves the relation between function, behaviour, andstructure of a design, can be applied to any engineering discipline. Together with Kannengiesser, Gero 2 -describes the framework in [2] in relation with the environment in which designing takes place, accountingfor the dynamic character of the context. We giv e an overview of the elements and processes that form thefunction-behaviour-structure (FBS) framework.The FBS framework elements has the following elements.function ( F ) The set of functions expressing the requirements and objectives that mustbe realized by the object.structure ( S ) Describes the components of the object and their relationships.expected behaviour ( B e ) The set of expected behaviours to fulfill the function F .structure behaviour ( B s ) The set of behaviours the structure S exhibits.description ( D ) The description of the design, giving all the information to build the object,and what more there is to know about the design.These elements are connected in the framework by processes (Figure 1). F B e B s S Dreformulation
Figure 1.
The FBS frameworkAn outline of the process of the FBS framework is given below.formulation ( F → B e ) Transforming the function F into behaviour that is expected from theobject.synthesis ( B e → S ) Transforming the expected behaviour into a solution intended to exhibitthis behaviour.analysis ( S → B s ) Deriving of the actual behaviour from the synthesized structure.evaluation ( B e ↔ B s ) Comparing the behaviour derived from the structure with the expectedbehaviour.documentation ( S → D ) Producing the design description for the constructing or manufacturing ofthe object.In addition the framework contains reformulation processes that are carried out, based on the outcome ofthe evaluation of behaviours.structure reformulation ( S → S )Changing of the structure in order to obtain a behaviour that is more in linewith the expected behaviour.behaviour reformulation ( S → B e )Adjusting of the expected behaviour that fits the required function and ismore in line with the behaviour of the structure.function reformulation ( S → F )Changing of the function due to a better insight in the problem. 3 -
3. Refinement of the FBS framework
To capture refinement in design we combine FBS frameworks into a framework ( R − FBS ) that showsdifferent levels of abstraction. We consider the design of two models, M and M ′ , for a particular system.The model M ′ is supposed to be a faithful implementation of the model M . This has as a consequence thatthe two models both represent the system but on different levels of abstraction. Both models have theirown design process, FBS and
FB S ′ , each of which can be described by the function-behaviour-structureframework for design.Because the model M ′ on the lower level of abstraction is an implementation of the model M on the higherlevel of abstraction, the description D for model M contains information for the design of model M ′ .Because the model M ′ is a refinement of the model M , the structure S ′ in the design process FB S ′ is arefinement of the structure S in the design process FBS . The relations described above between theelements in the design processes
FBS and
FB S ′ for the two models is shown in Figure 2. F B e B s S DF ′ B e ′ B s ′ S ′ D ′ r e fin i ng Figure 2.
Design framework for two modelsWe like to integrate the two design processes, so that the processes that play a role in the refinement,evalution of the refinement, and reformulation of the refinement become clear. In the following sections wedescribe how these design processes can be interconnected and what the consequences are for the overalldesign process.
Each element of
FB S ′ can be considered a refinement of the associated element of FBS . In the followingwe describe how the refinement processes between the two frameworks take place.Functionality refinement ({ D , F } → F ′ )As the structure S consists of the components and their interaction for model M , the description D describes the functionality of these components and the interactions. It is this functionalitytogether with functionality F that makes up the functionality F ′ for model M ′ . This refinementof functionality is indicated by 1 in Figure 3.Expected behaviour refinement ({ B e , F ′ } → B e ′ )The expected behaviour B e ′ can be obtained by refining the expected behaviour B e withrefinements extracted from F ′ . This is indicated by 2 in Figure 3.Structure refinement ({ S , B e ′ } → S ′ )In a FBS framework the structure is synthesized from the expected behaviour of the model. Wecannot obtain the structure S ′ from B e ′ in this way, since S ′ must be a refinement of S . We hav e 4 -to synthesize S ′ from S and use refinements that are based on B e ′ . This is indicated by 3 inFigure 3.Documentation refinement ({ D , S ′ } → D ′ )The description D ′ is the addition of the description D and the description of the refinementprocesses. This is indicated by 4 in Figure 3. F B e B s S DF ′ B e ′ B s ′ S ′ D ′ Figure 3.
Refinement processes in the design framework
Besides the behaviour evalution on both levels, we have to check if M ′ is a true implementation of M . Wecan do this by comparing a refined B s with B s ′ . But that leaves us with the problem how to refine B s . Wecan however do the reverse. Instead of refining B s we can abstract B s ′ and compare it with Bs (Figure 4). Ifthe behaviours do not match, the refinement process is wrong and has to be adjusted. The adjustment canbe done through reformulation processes described in the next section. F B e B s S DF ′ B e ′ B s ′ S ′ D ′ Figure 4.
Refinement evaluation process in the design framework 5 -
The design frameworks for the models M and M ′ contain reformulation processes. For the model M theseare the standard processes described earlier, but for the model M ′ the reformulations have to be such thatthe elements stay within the refinements of their corresponding abstract elements.The situation can occur that a reformulation of one of the elements for model M ′ is necessary and thatbecause of this reformulation it no longer conforms with the corresponding abstract element for model M .In that case, the current design must be rejected and a reformulation of the corresponding element formodel M have to take place. All the reformulation processes are shown in Figure 5. F B e B s S DF ′ B e ′ B s ′ S ′ D ′ reformulation Figure 5.
Reformulation processes in the design framework
4. Conclusions
We introduced refinement in the FBS framework by connecting frameworks for the design of two models,one model the refinement of the other. The resulting framework ( R − FBS ) can be used for the design of anobject on two lev els of abstraction. In a similar way, R − FBS can easily be further extended to a frameworkfor the design of an object on more than two lev els of abstraction. We can turn R − FBS into the originalframework by considering the refinement processes as reformulations and abstract from the details of therefinement processes. In R − FBS the levels of abstraction in the design are made explicit. This R − FBS canbe used to develop several models that are related to each other through refinement and abstraction.
Acknowledgements
Many thanks to Alban ponse for his proofreading and feedback.
References [1] J.S. Gero, ‘‘Design Prototypes: A Knowledge Representation Scheme for Design,’’
AI Magazine , vol.11, no. 4, pp. 26-36, 1990.[2] J.S. Gero and N. Kannengiesser, ‘‘The Situated Function-Behavior-Structure Framework,’’