Requirements for the GDI+ Extensions


To draw simple shapes and text, we have already defined two requirements: image_graphics_annotations and image_text_annotations. In this chapter these two keys are refined, analyzed, designed, and implemented.

When we refine requirements, good domain knowledge is essential. Ideally the system is described in terms of a requirement that does not leave any room for interpretation. However, for complex solutions such as an image-processing application that would be very difficult. For this reason, we try to describe the requirements in a way that leaves little room for interpretation by covering the most obvious ambiguities; but we are aware that there might be changes to the requirements during development. Because the software developers are very familiar with the domain and because the customer is encouraged to provide feedback after each of the short iterations, this approach seems to be sufficient. However, we recommend that when you develop requirements descriptions for projects such as database systems or interfaces (especially interfaces between systems developed by different teams in parallel), ambiguity is to be avoided at all costs.

The refined requirements shown in Table 6.1 provide more detailed information on the functionality that needs to be implemented.

An alternative to having only two requirement keys would be to split the keys into multiple subkeys. For example, we could introduce a key for each graphical primitive type. There are reasons to split a key, and reasons not to split it. It basically depends on the granularity we need for planning, reporting, and tracking. In this project, all the graphical-overlay-related keys are implemented by the same developer, who is familiar with GDI+ and image processing. Therefore, the task is small enough to keep them in only two keys. If the developer were not familiar with GDI+ or if the requirements were implemented by different developers in parallel, it would make sense to split them up.

Nothing else has to be done in this iteration regarding the requirements workflow. Therefore, the next step is to proceed to the analysis workflow to analyze the requirements.

Table 6.1. Refined Requirements Descriptions for GDI+ Extensions






The photo editor shall provide the possibility to attach customized graphical objects to the image. The graphics primitives types provided are lines, circles, and rectangles. The primitives are drawn at a user-defined position within the image by selecting a shape type, which can then be drawn interactively using the mouse. The graphic is stored in a list and can be removed by selecting the area of the start or endpoint with a mouse click. To permanently add the graphics to the image, it is possible to burn the graphics onto the bitmap by selecting the Apply button. It shall also be possible to reset the image shown to the original image by selecting the Reset button.



The photo editor shall provide a tool that allows adding text in different fonts and colors to an image. After selecting the graphics, overlay-type text can be written at a user-selected position within the image. Different fonts are not supported in this iteration. The text otherwise shall behave like a graphic.

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 © 2008-2020.
If you may any questions please contact us: