PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES
The Decision Model Activity is an activity of the Domain Specification Activity for producing a Decision Model. A Decision Model defines the set of requirements and engineering decisions that an application engineer must resolve to describe and construct a deliverable application engineering work product. A Decision Model is an elaboration of a domain's variability assumptions and is the abstract form (i.e., concepts and structures) of an Application Modeling Notation for a product family. These decisions, and the logical relationships among them, determine the variety of products in the domain. To construct a product, these decisions must be sufficient to distinguish the product from all other members of the family. The decisions establish how work products of application engineering, including software and documentation, can vary in form and content.
The Decision Model Activity defines a set of decisions that are adequate to distinguish among the members of an application engineering product family and to guide adaptation of application engineering work products.
The Decision Model Activity requires the Domain Definition.
The Decision Model Activity requires domain and software knowledge and experience in:
To interpret fully the effects of decisions (i.e., to understand all properties of the family member identified by a set of decisions) requires both a Decision Model and a Product Requirements. The Decision Model specifies only the variations among members of a family. It does not specify their common properties. Product Requirements state the common properties, plus the effects of the decisions in a Decision Model.
In the question-list format, each decision is phrased as a question and a non-empty set of valid answers. The question identifies the decision that an application engineer must make. The set states all permissible answers to that question.
In the tabular format, each horizontal row in the table expresses a decision specification. The horizontal row is divided into columns. A column identifies either the decision that an application engineer must make, the permissible answers for that decision, or a brief description of the decision.
Each decision and each decision group must have a unique identifier. Domain engineers use this identifier when they define adaptable work products. Each decision group has one list or table that is labeled with a mnemonic appropriate to the group. The group is a set of related decisions. Each entry is an independent decision that has its own distinct mnemonic label, a specification of allowed values that can resolve the decision, and a short explanation of the meaning of the decision.
If a set of related decisions is always resolved as a unit, you can define the set to be a composite decision. Composite decisions are shown in tabular form using a combination of the composite of indicator and indentation. If the application engineer can choose to resolve one (and only one) decision from a set of alternatives, you can define the set to be an alternative decision. Alternative decisions are shown in tabular form using a combination of the alternative of indicator and indentation.
You can also use a tabular format to specify constraints on decision making. Decision constraints may be either structural or dependency. In both cases, a decision group (the Decision Group column) is specified as the focus of the decision constraint. A structural constraint is a decision constraint that limits the number of instances of a decision group in an Application Model. Valid entries include exactly-one, one-or-more, zero-or-one, zero-or-more, and one-for-each X, where X corresponds to other identified decision groups. A dependency constraint is a decision constraint that specifies how decisions made by an application engineer affect subsequent decisions.
Example DE.2.2.1-1 Fragment of TLC Decision Model illustrates a fragment of a Decision Model for the TLC domain. The figure portrays decision groups (e.g., Street, Lane_Group) and their corresponding decisions, along with appropriate constraints.
Traffic_Light_Controller: composed of Schedule: one of (Fixed_Schedule, Programmable) {designates the type of traffic light sequence scheduling the TLC system must accommodate} Geometry: one of {intersection geometry} X: list length 4 of Street {street characteristics for an X intersection} T: list length 3 of Street {street characteristics for a T intersection} Fixed_Schedule: composed of Start_Time: (0:00 .. 23:59) {start time for this traffic light sequence schedule} Stop_Time: (0:00 .. 23:59) {stop time for this traffic light sequence schedule} .... Street: composed of Name: identifier {street name} Right_Turn_Lanes: Lane_Group {characteristics for the right-hand turn lanes} Left_Turn_Lanes: Lane_Group {characteristics for the left-hand turn lanes} Through_Lanes: Lane_Group {characteristics for the through lanes} Pedestrian_Crosswalk: one of (Xwalk, NO_Xwalk) {designates the presence of a pedestrian crosswalk for this street} Crosswalk_Button: one of (CB, NO_CB) {designates the presence of a pedestrian crosswalk pushbutton for this street} .... Lane_Group: composed of Number_of_Lanes: numeric(1..2) {number of traffic lanes in this Lane_Group} Sensor: one of (Sensor, NO_Sensor) {indicates whether there is a traffic monitoring device for each lane in this Lane_Group} .... Project_Information: composed of Name: identifier {name for the TLC system} Mnemonic: identifier {TLC system mnemonic} .... ______________________________________________________________________________________________________________ Constraints - The number of through lanes for Street(1) must be the same as for Street(3). - There can be at most 4 different schedules in the Fixed_Schedule. - A Through_Lanes group must be specified for each Street. - ....
Example DE.2.2.1-1. Fragment of TLC Decision Model
The Decision Model Activity consists of three steps shown in Figure DE.2.2.1-1 Decision Model Process
Follow these steps for Decision Model Activity.
Step: Identify Decisions
Step: Structure Decisions
Step: Identify Decision Constraints