IDEF4
IDEF4, or Integrated DEFinition for Object-Oriented Design, is an object-oriented design modeling language for the design of component-based client/server systems. It has been designed to support smooth transition from the application domain and requirements analysis models to the design and to actual source code generation. It specifies design objects with sufficient detail to enable source code generation.
This method is part of the IDEF family of modeling languages in the field of systems and software engineering.
Overview
IDEF4 method is a graphically oriented methodology for the design of object-oriented software systems. The object-oriented programming paradigm provides the developer with an abstract view of his program as composed of a set of state maintaining objects which define the behavior of the program by the protocol of their interactions. An object consists of a set of local state defining attributes and a set of methods that define the behavior of that particular object and its relationship to the other objects that make up the system.The IDEF4 method multi-dimensional approach to object-oriented software system design consists of the following items:
- Design layers,
- Artifact design status,
- Design models and the design rationale component, and
- Design features ranging from general to specific enabling deferred decision making.
History
IDEF4 was developed as a design tool for software designers who use object-oriented languages such as the Common Lisp Object System, Flavors, Smalltalk, Objective-C, C++ and others. Since effective usage of the object-oriented paradigm requires a different thought process than used with conventional procedural or database languages, standard methodologies such as structure charts, data flow diagrams, and traditional data design models are not sufficient. IDEF4 seeks to provide the necessary facilities to support the object-oriented design decision making process.
IDEF4 concepts
Dimensions of IDEF4 Design Objects
IDEF4 uses an object-oriented design method or procedure that is very similar to Rumbaugh’s Object Method Technique and Schlaer/Mellor’s Object-Oriented Analysis and Design technique. However, there are some crucial differences:- IDEF4 is specifically designed to be compatible with other IDEF methods,
- IDEF4 allows one to track the status of design artifacts from domain object through transition to design specification, and
- IDEF4 includes a design rationale component.
from start to finish elaborating each of these dimensions.
IDEF4 Design Activities
In IDEF4, a design starts with the analysis of requirements and takes as input the domain objects. These domain objects are encoded in their equivalent IDEF4 form and marked as domain objects. As computational objects are developed for these objects, they are marked as “transitional” and finally as “completed.” The level of completion of an IDEF4 design is determined by setting measures based on the status, level, and model dimensions of individual artifacts in the design.The system-level design starts once the “raw material” objects have been collected. This develops the design context, ensures connectivity to legacy systems, and identifies the applications that must be built to satisfy the requirements. Static, dynamic, behavioral, and rationale models are built for the objects at the system level. These specifications become the requirements on the application level – the next level of design. The application level design identifies and specifies all of the software components needed in the design. Static models, dynamic models, behavioral models, and the rationale component are built for the objects at the application level. These specifications become the requirements on the next level of design – the low-level design. Static Models, Dynamic Models, Behavioral Models, and the design rationale component are built for the low-level design objects. Sub-layers may be built within each layer to reduce complexity.
IDEF4 is an iterative procedure involving partitioning, classification/specification, assembly, simulation, and re-partitioning activities, see figure. First the design is partitioned into objects, each of which is either classified against existing objects or for which an external specification is developed. The external specification enables the internal specification of the object to be delegated and performed concurrently. After classification/specification, the interfaces between the objects are specified in the assembly activity. While the models are developed, it is important to simulate use scenarios or cases between objects to uncover design flaws. Based on these flaws the designer can then rearrange the existing models and simulate them until the designer is satisfied.
IDEF4 Object-oriented Concepts
IDEF4’s defines a set of object oriented concepts:- Domains : IDEF4 projects are implemented in a domain. A domain can be seen as the scope of the system being developed. During system design, the software is transitioned between three domains: the application domain, the design domain, and the implementation domain.
- Features, Artifacts, and Objects
- Object Instance : Objects can be object instances, object classes, and object partitions. Object instances are the individual things encountered in the application domain.
- Classes : Classes are generalizations about objects and are used to manage complexity by taking advantage of similarities in object instances and grouping them under a class or category.
- Subclass/Superclass : The term subclass captures the concept of grouping particular instances of a class into an even more specialized class.
- Partitions : A partition object contains objects and relations.
- Attributes : Attributes are an implementation choice on how to represent an object’s state.
- Object States : Object states represent situations or conditions of an object instance that are meaningful in the design.
- Method : A method is an implementation of behavior.
- Message and Polymorphism : Objects communicate by sending messages to each other.
- Event : An event is a signal generated by a method in an object indicating some condition in the object.
- Object Life cycles : In any system, objects exhibit patterns of behavior as they cycle through different states.
- Client/Server : An object plays the role of a client relative to a message if it is the sender of that message.
- Relationships and Roles : Objects connected together with arcs. These arcs are called relationships and they show associations between objects.
- Inheritance : A specific type of relationship used in object-oriented technology is inheritance.
- Encapsulation and Information Hiding : Encapsulation and information hiding are two object-oriented concepts that are most easily understood when discussed in terms of interactions between objects.
Object Class Identification
- Physical Objects
- Role Objects : The role may be related to other activities that the person engages in.
- Event Objects : Events or incidents may also be considered objects. The identification of events as objects is highly subjective, and will depend on the domain in which the software is to be used.
- Interaction Objects : Interaction objects are the result of interactions or transactions between two or more objects.
- Specification and Procedure Objects : Specification objects describe the acceptable characteristics of objects instances. Procedure objects refer to the way other object instances may interact.
IDEF4 Building blocks
IDEF4 Layers
IDEF4 users design in three distinct layers:- system design,
- application design, and
- low-level design.
IDEF4 Artifact Status
IDEF4 distinguishes between IDEF4 artifacts newly created from the application domain, artifacts in transition to design specification, and artifacts that have been specified that can be applied to create the design specification. Any design artifact in IDEF4 can be marked as domain, transition, or complete. This allows practitioners and reviewers to track the progress of the design toward completion.IDEF4 Design Models
IDEF4 uses three design models and a design rationale component:- The Static Model defines time-invariant relations between objects.
- The Dynamic Model specifies the communication between objects and the state transitions of objects.
- The Behavior Model defines the relations between the respective behaviors of objects.
Each model represents a different cross section of the design. The three design models capture all the information represented in a design project, and the design rationale documents the reasoning behind the design. Each model is supported by a graphical syntax that highlights the design decisions that must be made and their impact on other perspectives of the design. To facilitate use, the graphical syntax is identical among the three models.