Flylib.com

Books Software

 
 
 

Refining the Themes


Refining the Themes

Now that we have an initial set of themes, we can look at the theme-relationship view.

Figure 8-1 shows the relationship view with the new theme names . You can see that the requirements are attached to the themes, as specified in Table 8-2. In Figure 8-1, you can also see that we've clustered and named likely groups of themes (shown with dashed outlines). There are also three requirements that are shared between the various clusters: R1, R5, and R6. These are expanded in Figure 8-1. Next, we make the clusters into groups. For instance, menu-start and scroll are both grouped under the menu theme. We also make the choice to group ring with voice call and alert with sms .

Figure 8-1. Theme-relationship view (requirements expanded).


There are also four themes that didn't have an obvious group, and so weren't clustered in Figure 8-1: mute, audio-pause, audio-save , and audio-resume . These are all more or less related to the concept of preemption of audio activity when some other behavior occurs. After looking at R5 and R6 (which both discuss situations in which another activity is preempted based on a certain trigger), we decide to group the audio-pause theme with the other audio themes. Finally, as considered above, we introduce a new theme, preempt , which better captures the spirit of the audio requirements.

Looking at Figure 8-1, you'll notice that three of the clusters (Media Player, Game, and Menu) have only one main theme that relates to the other themes through shared requirements. The game theme, for instance, is the only theme in the Game cluster that is linked to any of the expanded requirements. The same holds true for the media player theme in the Media Player cluster, and the menu theme in the Menu cluster. However, in the SMS and Voice Call clusters, there are two themes that relate to the expanded requirements. In the SMS cluster, alert is externally linked; in the Voice Call cluster, ring is also externally linked. alert and ring represent the triggers of the audio preemption behavior. When we were deciding how to group the themes, we simply translated the clusters into groups directly. However, we could have chosen to group ring and alert with preempt instead of with voice call and sms , respectively. This decision does have an impact on the design. When we go over the preempt theme design, we discuss other options for this grouping.

In the end, we arrive at six major themes, as detailed in Table 8-3.

Table 8-3. Themes and Their Subthemes

Main Theme Name

Subthemes

game

game-play, game-pause, game-save

media player

radio, play audio, record audio, memo play, memo record

menu

scroll, select, start

sms

send, edit, signal sms, alert

voice call

signal call, ring

preempt (new theme)

mute, audio-resume, audio-pause, audio-save



Identifying Crosscutting Themes

There are three shared requirements in the set: R1, R5, and R6. They are expanded in Figure 8-2. We now look at each requirement, applying the heuristics for deciding whether they reveal aspect behavior.

Figure 8-2. Grouped themes, shared requirements expanded.


R1 reads, The menu consists of several options: make a voice call, write an SMS , use the media player, play a game . The first thing to consider is whether the requirement can be split. Since the requirement lists the components of a menu, there is no way to rewrite it to isolate the themes from one another. The second thing to determine is whether one theme dominates the requirement. In this case, the menu theme seems to be the dominant requirement, since the requirement lists a set of things that are contained in the menu. Next, we check to see whether the other themes (such as voice call ) trigger action in the dominant theme, menu . This check failsthere is no trigger relationship described in the requirement. Instead, the relationship between menu and the other themes is more of a "has-a" relationship. So, we postpone the requirement and likely design the dominant theme, menu , as a concept shared theme.

R5 reads, When alerts and rings occur, other audio (media player, voice call, game sounds) is momentarily muted, but not paused . Once again, this requirement cannot be split, but in this case, it's dominated by the behavior related to the preempt theme. This requirement also passes the trigger test: preempt (actually its subtheme mute ) is triggered by alerts and rings , and since this requirement describes more than one situation in which preemption is triggered (when both alerts and rings occur), we can conclude that preempt is an aspect.

R6 reads, When a voice call occurs, other activities (media player, games , SMS edit) are paused, and their state saved, to be resumed when the call ends . Once again, this requirement cannot be split and is dominated by preemption behavior, and also triggers preemption behavior. This requirement describes an additional situation in which preemption is triggered: when a voice call occurs. Once again, preempt is an aspect.

Figure 8-3 shows the crosscutting view of the system. You can see the five concept-sharing (or base) themes and the crosscutting theme preempt .

Figure 8-3. Crosscutting view.