The benefits of an object-oriented approach and pattern based design for complex software systems are well known. But most software engineers believe that these techniques have a run time performance cost that is too high for real-time imaging applications. Unfortunately, no usable data to support or disprove this contention exists. In this work we describe a set of experiments that challenge the conventional wisdom. We report on our results and we further introduce a strategy to thoroughly investigate the issues of run-time performance in any real-time imaging system.
Real-time imaging applications are concerned with efficient and deterministic processing of digital images. These applications are predominantly written using structured programming rather than object-oriented programming with the belief that the former approach has better performance characteristics. Current research shows that this may not be the case and an object-oriented approach may not only result in efficient code but one that is more maintainable and understandable. We look at current techniques for visualizing the code for software applications to determine if they can help predict its qualities such as maintainability, understandability and performance, and suggest ways in which these techniques can be enhanced to meet the specific needs of real-time imaging applications.
Imaging systems are traditionally developed using structured analysis and design techniques at best. Such approaches tend to be rigid with respect to changing needs, technologies, devices and algorithms-for
example, when additional compression algorithms are needed or attached devices are changed large parts of software applications employing those techniques and interfacing with those devices must be modified to accommodate the change. In a larger perspective, these systems are difficult or impossible to reuse; each new problem requires a new solution. This is generally undesirable and often not necessary, but only if best practices in software engineering are
employed. These best practices have been explored and documented in detail with regard to object-oriented systems, which suggests that it is an appropriate paradigm to employ in the development of future imaging systems. This work examines these best practices, in the form of patterns and design principles, with reference to imaging systems.
In this paper we derive the object-oriented requirements and a design for a class of Kalman filters suitable for real-time image processing. First, we describe the Kalman filter and we provide motivation for using it as a mechanism for fault-tolerant computing and sensor fusion. Next, the details of using Kalman filters in imaging applications are discussed. Then, the advantages of using object-oriented specification, design and languages for the implementation of Kalman filters are studied. Finally, we present a specification and design for a class of Kalman filters, which is suitable for coding.
Real-time imaging systems are expected to perform at a rate set by the operating environment. This places additional temporal constraints on the implementation, and has led to advance in parallel processing and optimization. The constraints are also applied, however, to the analysis and design models of the system, an aspect that has received far less consideration, particularly outside of academia. It is well understood that the earlier a bug is discovered the cheaper the fix and this is taken to the extent that, if an error can be found during design or even analysis, the repair can be several orders of magnitude cheaper. It is therefore an economic imperative that the analysis and design models are sufficiently expressive such that the flaws in the models can be discovered before they are implemented, and this applies equally to real-time constraints. To achieve this a change in the modeling languages used is needed. An approach that offers potential in this respect is proposed here. The Unified Modeling Language is used as the basis for a transformation of the design model into a formal description of the system which is amenable to simulation and rigorous proving.
Although it would seem obvious that object-oriented specification lends itself well to image processing systems, there is almost no research to substantiate this position. In this paper the use of object-oriented techniques in the specification of imaging systems is investigated and compared to a widely used alternative - Structured Analysis and Design - by way of a simple case study. The paper concludes with some recommendations for best practices and future research.
In this paper we study software requirements specification of real-time imaging applications. First, we briefly review the unique challenges faced when specifying real-time imaging systems. Then we present arguments as to why specification of real-time imaging systems should be studied as a special case. Next, we survey a subset of techniques that have been used to specify practical real-time imaging systems. Finally, we make recommendations for best practices in specifying real-time imaging systems requirements.