Refining Requirements for 3D Text Display
First let's refine the 3D text display requirement from Chapter 4 to better describe what exactly will be implemented. The initial requirement key, F:image_3dtext, is very general and does not yet address possible constraints, assumptions, or dependencies. For example, the 3D text function would not be practical if the user could not customize the appearance of the text by changing things like color, position, or font style. We need to decide which attributes will be customizable and which will simply be set to default values. |
For the text, we plan to make the following attributes customizable by the user:
- A single line of text
- Position in the image where the text is placed
- Font color
- Font type (for example, Arial)
- Font style (for example, bold)
- Font size
In addition, the requirement that we need to fulfill says that users will be able to merge this text as a three-dimensional object into an existing image. Converting a two-dimensional line of text into a 3D object adds a variety of parameters:
- Depth of the 3D object: Standard text has only two dimensions: width and height. We need to select a depth, which adds the third dimension.
- Orientation or rotation of the 3D object: Looking straight at a 3D object does not show its depth and will not give a 3D impression. Only rotating the object will lead to nice effects.
- Lighting, material, and shading parameters: If those parameters are not set correctly, the entire surface of the rendered object (all its sides) might appear in the same color, thereby not allowing the user to recognize corners. It is necessary, for example, to set up a directional light to create shadows that enhance the shape of an object. Furthermore, material properties define an object's shininess or reflections that are visible on the object.
Our customer, the printing and embossing business, needs to be included in this refinement of requirement keys. There are a large number of options that we could implement but at the cost of impacting the schedule. Together with the customer, we create and agree on a new list of refined keys that does not require new planning and allocation of additional resources. Table 9.1 lists the refined requirement keys for implementing three-dimensional text.
Requirement |
Type |
Summary |
---|---|---|
F:image_3dtext |
Functional |
The photo editor shall allow the user to add three-dimensional text to an image. |
F:image_3dtext_color |
Functional |
The user shall be able to select a color for 3D text. |
F:image_3dtext_font |
Functional |
The user shall be able to select a font type (Arial, Helvetica, etc.) and style (bold, italic) for 3D text. |
F:image_3dtext_rotate |
Functional |
The user shall be able to rotate the 3D text along x, y, and z axes. |
C:image_3dtext_singleline |
Constraint |
3D text can be added only to a single line at a time. |