AventaLogo07

Object Oriented
Development

imagestrip0302

Object-oriented Software Development

The problems inherent in capturing the requirements of a real world system and translating them into a fully representative design and implementation have long been a challenge to engineers of all disciplines. This has been a particular problem in the relatively immature field of computer software development where older engineering techniques such as prior example, prototype models and environmental simulation do not apply as readily.

A Civil Engineer when tasked to build a bridge might for example consider similar constructions and reuse the same engineering principles. Building a scale model and using wind tunnels or other testing facilities are also viable propositions. Modern techniques rely heavily on computer software to verify such designs, yet the principles of reuse, prototyping and simulation testing are still paramount.

In applying traditional engineering principles to computer software, many analysis, design and programming methodologies have been developed, including those based upon Object-oriented techniques.

The concept of Object-oriented Software Development has been around for almost as long as the more traditional software development methodologies; with the development of CASE tools and programming languages Object-oriented Development has become widely recognised and accepted.

There is no single “Object-oriented Methodology” but any number of alternate approaches to the 3 main development stages:

  1. Object-oriented Analysis (OOA), Shlaer-Mellor, Jacobson, Coad-Yourdon, Rumbaugh, etc.
  2. Object-oriented Design (OOD), frequently an adjunct to OOA but several permutations are widely used
  3. Object-oriented Programming (OOP). Common languages (OOPL) include Smalltalk and Java. There are many hybrid OOPL, based upon earlier functional languages - C++, Objective C, Object Pascal and Ada 95.

More recently some methods have attempted to reduce this into a rapid iteration around each of the above stages (Extreme Programming), with debatable success though the overall analysis, design and languages remain the same.

Object-oriented techniques result in considerable benefits (see Carnegie Mellon, Software Engineering Institute):

  • Less analysis effort – the functionality of each specified object is readily understood from its “real-world” equivalent.
  • Enhanced maintainability – changes to a system component are limited to changes in the corresponding object.
  • Simplified Design – each object and interaction is clearly expressible
  • User Verification – a user without detailed software knowledge can understand the specification and implementation in terms of the physical system
  • Reusability – since an object is entirely encompassed by its defined interface, the software object becomes as reusable as the system component it represents.

Greatest benefit is derived from a Software Development encompassing all three techniques, OOA through OOD and implementation with OOPL.

Until recently these benefits were completely unavailable in the Automation and Process Control fields. A wide variety of System Control and Data Acquisition (SCADA) systems have been developed though most relying on highly linear, functional programming languages.

Recent innovations in Automation Software (OAenterprise) have brought the full power and benefits of Object-oriented software development to SCADA systems.

This feature together with the discussions on OOA/OOD/OOP are available as an Acrobat pdf for download.

 


Copyright Aventa Automation 2005
If you have difficulty viewing this page with your browser please E-mail support@aventa.com.au