A Functional Software Architecture (FSA) is an architectural model that identifies enterprise functions, interactions and corresponding IT needs, which can be used as reference by different ___domain experts to develop IT-systems as part of a co-operative information-driven enterprise. In this way both software engineers and enterprise engineers are able to create an information-driven, integrated organizational environment.
As the boundary of an enterprise is extended, it becomes increasingly important that a common “big picture” of needed business, people and IT system activities is developed and shared by all the parties involved [1]. A Functional Software Architecture does this by breaking down the organisation in business functions and corresponding IT needs. In this way the enterprise engineer provides a rich schematic reference that can be used by the software engineer in the development of these IT-systems.
Development of a FSA
The development of a Functional Software Architecture can be done by a number of (combined) methods and techniques. Figure 1 outlines the methods and techniques that will be discussed in this paper. Filling in the “gab” between the enterprise engineers and software engineers through the use of different combinations of methods and techniques will be the main objective of this paper. However, this objective can only be reached when combined methods result in clear and rich Functional Software Architectures that are developed and used by both parties.
Figure 1: Methods and techniques for the development of FSA
The different methodologies, methods and techniques discussed in this paper are presented as boxes. The boxes can be connected with each other by lines, which indicate a combination of methods. All boxes within the rectangle of Functional Software Architecture are connected with the Enterprise Engineering box, which outlines the fact that these methods/methodologies can be used in Enterprise Engineering. Only the UML and Petri Net boxes are directly connected with the box containing Software Engineering. That is, these two are commonly used by software engineers for the design and coding of a system. The red lines indicate for which methods/techniques examples are given and extensively discussed in this paper. However, for all methods/methodologies and techniques some background information is given
At the top-level it shows the Enterprise Engineering field. Optimizing the internal and external business processes through process reengineering is one of the main objectives an enterprise can have in times of high external pressure. A business process involves value creating activities with certain inputs and outputs, which are interconnected and thereby jointly contribute to the final outcome (product or service) of the process. Process reengineering covers a variety of perspectives of how to change the organization. It is concerned with the redesign of strategic, value adding processes, systems, policies and organizational structures to optimize the processes of an organization [2]. This paper considers process (re)engineering as part of the broader enterprise engineering field.
Modeling the business
Within the area of enterprise engineering formal methodologies, methods and techniques are designed, tested and extensively used in order to offer organizations reusable business process solutions:
- The Computer Integrated Manufacturing Open Systems Architecture (CIMOSA) methodology[3]
- The Integrated Definition (IDEF) methodology [4]
- Petri Nets [5]
- Unified Modeling Language (UML) or Unified Enterprise Modeling Language (UEML) [6,7]
- Enterprise Function Diagrams (EFD)
These methodologies/techniques and methods are all more or less suited in modeling the enterprise and its underlying processes. So, which of them are suited for the further development of Information Technology systems that are needed for effective and efficient (re)designed processes? More important, why using a time consuming enterprise methodology when information and software engineers can’t or won’t use the unclear results in the development of efficiency enabling IT systems? Before we can give the answers to these questions some short descriptions of the listed methods above are given.
Computer Integrated Manufacturing Open Systems Architecture
CIMOSA provides templates and interconnected modeling constructs to encode business, people and IT aspects of enterprise requirements. This is done from multiple perspectives. These constructs can further be used to structure and facilitate the design and implementation of detailed IT systems.
Integrated DEFinition
IDEF is a structured modeling technique, which was first developed for the modeling of manufacturing systems. It was already being used by the U.S. Airforce in 1981. Initially it had 4 different notations to model an enterprise from a certain viewpoint. These were IDEF0, IDEF1, IDEF2 and IDEF3 for functional, data, dynamic and process analysis respectively. In the past decades a number of tools and techniques for the integration of the notations are developed in an incremental way. However, recent interesting attempts by Kim et. al. (2002) show it can be done; skip the IDEF2 notation and use an extended version of the IDEF1 (IDEF1x) enables the creation of an integrated IDEF/UML framework for the development of IT systems within the organization. I will discuss their findings later on in this article.
Petri Nets
Petri Nets are known tools to model manufacturing systems [8]. They are highly expressive and provide good formalisms for the modelling of concurrent systems. The most advantageous properties are that of simple representation of states, concurrent system transitions and capabilities to model the duration of transitions. Petri Nets therefore can be used to model certain business processes with corresponding state and transitions or activities with in and outputs. Moreover, Petri Nets can be used to model different software systems and transitions between these systems. In this way programmers use it as a schematic coding reference. In recent years a number of attempts have shown that Petri Nets can contribute to the development of business process integration. One of these is the Model Blue methodology, which is developed by IBM Chinese Research Laboratory and outlines the importance of model driven business integration as an emerging approach for building integrated platforms [9]. A mapping between their Model Blue business view and an equivalent Petri Net is also shown, which indicates that their research closes the gab between business and IT. However, instead of Petri Nets they rather use their own Model Blue IT view, which can be derived from their business view trough a transformation engine. So, pros and cons in using Petri Nets as a modelling tool for the implementation of integrated IT systems are present. Maybe it should be combined with other methods and techniques to deliver positive results? For instance, various classes of Petri Nets can be used in combination with IDEF or CIMOSA and even UML [10]. Mostly to exercise alternative system design. However, a major drawback of Petri Nets, the inability to provide multiple views of entire enterprise systems, remains.
Unified Modeling Language
UML is a broadly accepted modeling language for the development of software systems and applications. The, so called, “object oriented community” also tries to use UML for enterprise modeling purposes. They emphasize the use of enterprise objects or business objects from which complex enterprise systems are made. A collection of these objects and corresponding interactions between them can represent a complex business system or process. Where Petri Nets focus on the interaction and states of objects, UML focuses more on the business objects themselves. Sometimes these are called the “enterprise building blocks”, which includes resources, processes, goals, rules and metamodels [11]. Despite the fact that UML in this way can be used to model an integrated software system it has been argued that the reality of business can be modeled with a software modeling language. In reaction the “object oriented community” makes business extensions for UML and adapts the language. UEML is derived from UML and is proposed as a business modeling language. The question remains if this business transformation is the right thing to do. It was earlier said that UML in combination with other “pure’ business methods can be a better alternative.
Enterprise Function Diagrams
EFD is a used modeling technique for the representation of enterprise functions and corresponding interactions. Different business processes can be modeled in these representations through the use of “function modules” and triggers. A starting business process delivers different inputs to different functions. A process flowing through all the functions and sub-functions creates multiple outputs. Enterprise Function Diagrams hereby give a very easy-to-use and detailed representation about a business process and corresponding functions, inputs, outputs and triggers. In this way EFD has many similarities with IDEF0 diagrams, which also represent in a hierarchical way business processes as a combination of functions and triggers. Difference is that an EFD places the business functions in an organization hierarchical perspective, which outlines the downstream of certain processes in the organization. On the contrary, IDEF0 diagrams show responsibilities of certain business functions trough the use of arrows. Also, IDEF0 has a clear representation of inputs and outputs of every (sub)function. Figure 2 shows an EFD of a publish company producing books and cd-roms for educational purposes. It gives a clear view of a publication process within an organization:
- Different modules represent the different business function on multiple organizational levels, which is highlighted by the different colors. On strategic level (yellow) a certain publication project with corresponding products is determined. This is based on certain triggers like sales forecasts, product information.
- Once the project is started several things happen on tactical level; publication needs to be planned, freelance authors need to assigned to certain tasks, everything needs to be monitored and sales needs to give some feedback to the customer. The need for certain Information technology that improves these activities becomes realistic.
- The actual production by authors and assembly by editors happens on operational level. The first two function modules are given in detail, which outlines the potential for certain IT implementations within business functions. These detailed schemes can be drawn and used by both enterprise engineers and software engineers for the development of integrated software implications. Lower level EFD could hereby be transformed in detailed UML schemes.
Figure 2: EFD of a publish company producing books and digital material
So, maybe EFD could be used as a business front-end to a software modeling language like UML. The major resemblance with IDEF as a modeling tool indicates that it can be done. However, more research is needed to improve the EFD technique in such a way that formal mappings to UML can be made (see dashed line figure 1). Work of Kim et. al. [1] about the complementary use of IDEF and UML has contributed to the acceptance of IDEF as business-front end. A similar study should be done with EFD and UML.
Conclusion
Bringing the best of both worlds together and incorporate it in a clear Functional Software Architecture; this is one of the first objectives an organization has to reach when business process efficiency has to be improved. This rich schematic reference must be constructed by the right combination of methods and techniques in order to set detailed software specifications into the wider enterprise context. Figure 1 shows the methods and techniques that can be used or combined. Further research must reveal which combination is best in filling in the gab between business and software.
References
[1] Kim & Weston & Hodgson & Lee (2002); The complementary use of IDEF and UML. Information system engineering, Deajon University South Korea, Computers & Industrial Engineering 50, 35 – 56
[2] Zakarian & Kusiak; Process analysis and reengineering: Departement of Industrial Engineering, University of Iowa, USA, Computers & Industrial Engineering 41, 135-150
[3] Beekman, (1989); European Committee for Standardization, ECN TC310 WG1, 1994
[4] U.S. Airforce (1981); ICAM architecture part 1, Ohio, Air Force Materials Laboratory, Wright-Patterson
[5] Peterson J.L. (1981); Petri net theory and the modelling of systems, Englewood Cliffs, N.J., Prentice Hall
[6] Marshall, C. (2000); Enterprise Modelling with UML, ISBN 0-201-43313-3, Addison-Wesley, MA
[7] Vernadat F.B.; A vision for future work of the task force (IFAC-IFIP)
[8] Silva, M. and Valette, R. (1989); Petri nets and Flexible manufacturing. Lecture Notes on Computer Science, 424, 374±417.
[9] Zhu et al. (2004); Model-driven business process integration and management: A case study with the Bank SinoPac regional service platform, IBM Corporation, Res. & Dev. Vol. 48 No. 5/6
[10] Aguiar, M. (1995); Executing Manufacturing Models of Open Systems, Ph.D. Thesis, Loughborough University
[11] Eriksson & Penker (1998); UML Toolkit, Wiley, New York