Skip to main content
Hany Ammar
Professor Emeritus, Computer Science and Electrical Engineering

Abstracts

An Object-Oriented Framework for Feedback Control Applications

Sherif M. Yacoub, Hany H. Ammar
Department of Computer Science and Electrical Engineering
West Virginia University, Morgantown WV 26506

In this paper we propose a reusable framework for a known engineering problem: Feedback control systems. Feedback systems are commonly described in terms of block diagrams and have different implementations according to the software system designer. The proposed framework is constructed using software design patterns as its building blocks. The Unified Modeling Language (UML) notation is used for specifying the framework class and collaboration diagrams. The framework is represented in the design level to be reused as an initial step in designing feedback control applications. An instantiation of the framework in a sample application is illustrated to show the flexibility and simplicity of using the framework.

Keywords: Feedback control, Design Patterns, and Frameworks

Finite State Machine Patterns

Sherif M. Yacoub; Hany H. Ammar
Computer Science and Electrical Engineering Department
West Virginia University, Morgantown
West Virginia, WV26506

Finite state machines (FSM) are widely used in many reactive systems to describe the dynamic behavior of an object based on its state. The theoretical concepts of FSMs and an object's specifications, in terms of state transition diagrams, have long been used. Here, we show how to solve several recurring design problems in implementing a state machine. A basic design pattern for finite state machines is presented, its design evolves from the general understanding of state machines functionality. Then the basic pattern is extended to support solutions to several design problems that are commonly thought of by system designers. These design decisions include the state-transition mechanisms, the design structure, state-instantiation techniques, and the machine type. Since finite state machines are frequently applicable to areas of concurrent and real-time software, thus it is useful for the system designer to search a catalog of classified state machine patterns. The patterns cover the three-layer FSM pattern by Robert Martin 5 and extend the set of patterns described by Paul Dyson and Bruce Andreson 2.

A Pattern Language of Statecharts

Sherif M. Yacoub; Hany H. Ammar
Computer Science and Electrical Engineering Department
West Virginia University, Morgantown
West Virginia, WV26506

Finite state machines and their extension to statecharts are widely used in reactive systems. David Harel [Harel87] has introduced statecharts as an extension of finite state machines to describe the complex behavior of an entity. The formalized concepts of statecharts and their specifications have been used in many applications. Here, we show how to solve recurring design problems in implementing statechart specification of an entity in an object oriented application. The statecharts' patterns represent solutions to frequent design problems that are commonly thought of by system designers, which include how to deploy hierarchy, orthogonality, and broadcasting in a statechart's object oriented design. Since statecharts are frequently applicable to software applications, thus it is helpful for the system designer to directly exercise the statechart pattern language in his application design.

In the next section, a quick background of statechart is presented, then a pattern map summarizes the statechart patterns and their relation to finite state machine patterns. The rest of the sections describe the patterns themselves.

Towards Pattern-Oriented Frameworks

Sherif M. Yacoub, Hany H. Ammar
Department of Computer Science and Electrical Engineering
West Virginia University, Morgantown WV26506

A lot of effort has been conducted by experienced designers to document good quality practices in software designs in terms of design patterns. However, little emphasis has been placed on patterns usage, which is a basic benefit when claiming reusability of the documented design patterns catalogues. This paper presents a new approach for constructing object oriented design frameworks based only on design patterns as building blocks. The developed frameworks are named Pattern-Oriented Frameworks. The construction of pattern oriented frameworks is illustrated throughout the paper using an example for a common engineering application: Closed-Loop Control systems. These systems are commonly described in terms of block diagrams. The feedback framework is presented as a generic architecture based on design patterns. A pattern diagramis defined to express the framework's architecture in terms of subsystems, design patterns, and associations. A development processis proposed which expresses the framework in two design levels: a pattern diagram and a class diagram. Two approaches for the framework instantiation are illustrated and an instantiation of the framework in a practical application is pointed out to show the benefits of the pattern oriented frameworks approach.

Keywords: Design Patterns, Design Frameworks, and Closed-loop control.