Requirements for Image Postprocessing Components

graphics/requirements_icon.gif

The functionality to be implemented in this iteration is split between three requirement keys. In agreement with the customer, all the functionality described in this chapter will be provided as dynamically loadable components. This means that the application loads the components at run time if they are available.

As mentioned earlier, sometimes dynamically loadable components are also referred to as plugins. The name is drawn from the fact that the components are interchangeable as long as they conform to the defined interface specification. If a component complies with the definition, it can simply be plugged in and the application can use it. Providing dynamically loadable components enables the customer to exchange components without having to recompile the application. This in turn allows us to provide optimized or changed components by simply swapping assemblies. In addition, using plugins allows us to support new components very easily.

The first requirement key, image_contrast, deals with the functionality that enables the user to change the contrast of an image. In discussions with the customer, it turns out that we also need to support the capability to change the color distribution of the pixels in the image. The color and contrast requirements are merged into one requirement key. Therefore, the image_contrast requirement is renamed image_contrast_and_color. We merge the keys because from our experience, the implementation of the two functionalities is very similar and not very time-consuming.

The second requirement key that needs to be implemented is the functionality to change the brightness of an image. This requirement is specified in the image_brightness key.

The final requirement that is implemented in this iteration is a tool that enables the user to remove the "red eye" effect in a small, defined area of the loaded image. The requirement key used to describe this functionality is image_special_effects.

As mentioned earlier, all three requirements are implemented as dynamically loadable plugins. This means that the developed components are bound to the application, not at compile time but rather at run time. This run time binding, also referred to as late binding, enables us to change the behavior of the application by simply exchanging a component assembly. No recompilation of the application is needed at all. This technique makes the application more flexible by enabling the customer to provide optimized or enhanced plugins without having to change the application code.

Table 8.1 shows the refined requirements.

Table 8.1. Refined Requirements Descriptions for the Image Postprocessing Components

Requirement

Type

Summary

F:image_contrast_and_color

Functional

It shall be possible to change the contrast and the color of an image using track bar controls. The functionality shall be provided via plugins that are loaded at run time.

F:image_brightness

Functional

The brightness of the image can be changed by using a track bar control. The functionality shall be provided via plugins that are loaded at run time.

F:image_special_effects

Functional

It shall be possible for the user to remove red eyes in a square area within the image by selecting the tool. A red square will be shown on the screen to identify the areas where the red eye removal can be applied with a left mouse click. The functionality shall be provided via plugins that are loaded at run time.

The task for this iteration is to provide these requirements by following the process steps defined in the Unified Process. Therefore, the next step is to further analyze the requirements to get a clear picture of what the system is supposed to do.

Introducing .NET

Introducing Software Engineering

A .NET Prototype

Project Planning

The Photo Editor Application

GDI+ Graphics Extensions

Advanced GDI+ Operations

Dynamic Loading of Components

Accessing System Resources

Performance Optimization, Multithreading, and Profiling

Building the Web Application with ASP.NET

Security and Database Access

Product Release



. NET-A Complete Development Cycle
.NET-A Complete Development Cycle
ISBN: 0321168828
EAN: 2147483647
Year: 2005
Pages: 123

Flylib.com © 2008-2020.
If you may any questions please contact us: flylib@qtcs.net