Concepts and Techniques for Object-Oriented Software Development
Illustrated by an Application Framework for Process Automation

Rainer Weinreich


Table of Contents

1    Introduction

1.1    Motivation
1.2    Overview


2    Basic Terminology and Concepts of Object-Oriented Programming

2.1    Fundamentals

2.1.1    Object-Oriented Programming
2.1.2    Object-Oriented Programming Languages

2.2    Classic Object-Oriented Language Mechanisms and Terminology

2.2.1    The Class/Inheritance Approach
2.2.2    Variations and Extensions of the Class/Inheritance Approach

2.3    Alternative Object-Oriented Language Concepts

2.3.1    The Prototype/Delegation Approach
2.3.2    Type Conformance

2.4    Classification of Object-Oriented Programming Languages


3     Object-Oriented Programming and Structuring Techniques

3.1    Techniques for Programming in the Small

3.1.1    Narrow Inheritance Interface
3.1.2    Pure Message Interface
3.1.3    Method and Instance-Variable Attributes
3.1.4    Task Splitting
3.1.5    Procedure Classes

3.2    Techniques for Programming in the Middle

3.2.1    Techniques for Object Creation
3.2.2    Techniques for Behavior Modification
3.2.3    Techniques for Weak Coupling

3.3    Techniques for Programming in the Large

3.3.1    Teams
3.3.2    Subsystems
3.3.3    Frameworks (Abstract Teams)
3.3.4    Class Libraries
3.3.5    Application Frameworks


4    Concurrent and Distributed Object-Oriented Programming

4.1    Basic Terminology and Concepts

4.1.1    Process Models
4.1.2    Process Interaction
4.1.3    Processes and Objects

4.2    The Proxy/Dispatcher/Collocutor Technique

4.2.1    Concept
4.2.2    Implementation Issues
4.2.3    Summarizing Remarks

4.3    Related Work


5    ProcessTalk: An Application Framework for Process-Automation Software

5.1    Problem Domain

5.2    Framework Architecture

5.2.1    ET++
5.2.2    ProcessTalk

5.3    Components of the Framework

5.3.1    Communication
5.3.2    Active-Object Management
5.3.3    Data Management
5.3.4    Process Control

5.4    Application Example Ladle Furnace


6    Conclusion

6.1    Summary
6.2    Consequences
6.3    Final Remark

Bibliography

Figures

Index