GSC Associates Proprietary and Confidential UML and Human Performance Modeling GSC Associates 2727 Xanthia Court Denver, Colorado 80238-2611 +1-303-388-6355 Abstract The purpose of this white paper is to investigate the potential for interchanging information between ARL’s IMPRINT tool and UML 2.0. Because there appears to have been no application of UML to a similar human performance modeling task in the past, this paper first describes past research applying UML in two areas related to the one under consideration: performance modeling (of entities other than humans) and human action/interface specification. Next, short summaries of relevant aspects of UML and of IMPRINT are given. These relevant aspects are then used to form the basis for an approach to defining a UML 2.0 Profile for Human Performance Modeling. The major innovation proposed here is using UML to model functions performed by humans, not just functions performed by hardware and software. This approach may be expanded to be broader in scope than just defining a relationship between UML and IMPRINT. This is important because developing a more general profile for using UML in the field of Human Performance Modeling (if not all of Cognitive Engineering) will be necessary to gain wide enough acceptance to be supported by commercial UML products. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Table of Contents 1 Introduction ................................................................................................................. 3 2 Related research .......................................................................................................... 3 3 2.1 Introduction ......................................................................................................... 3 2.2 UML in performance modeling and related areas .............................................. 3 2.3 UML applied to human action and interface specification ................................. 9 2.3.1 Introduction to human cognitive engineering ............................................. 9 2.3.2 UML applied to human action and interface specification ....................... 10 Technical approach ................................................................................................... 12 3.1 Introduction ....................................................................................................... 12 3.2 Background information on IMPRINT ............................................................. 12 3.3 Background information on UML .................................................................... 13 3.3.1 References ..................................................Error! Bookmark not defined. 3.3.2 Quick summary of UML 2.0 ..................................................................... 14 3.3.3 Extending UML ........................................................................................ 16 3.4 4 Getting the approach accepted by the community .................................................... 20 4.1 Introduction ....................................................................................................... 20 4.2 The OMG process ............................................................................................. 20 4.2.1 Introduction ............................................................................................... 20 4.2.2 Precursor steps .......................................................................................... 21 4.2.3 Overview of the OMG process ................................................................. 21 4.3 5 UML and human performance modeling .......................................................... 17 Building support................................................................................................ 24 Next steps .................................................................................................................. 24 GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 1 Introduction This white paper investigates the potential for interchanging information between ARL’s IMPRINT tool and UML 2.0. It develops a set of concepts that can be used for this purpose and describes a potential UML 2.0 Profile for Human Performance Modeling (see 3.4). It summarizes the relevant past research that applied UML in two areas related to the one under consideration: 1. modeling (of entities other than humans) and 2. human action/interface specification (see 2.2 and 2.3). Next, sections 3.2 and 3.3 give short summaries of the relevant aspects of UML and of IMPRINT. These relevant aspects are then used to form the basis for the approach described in 3.4 to defining a UML 2.0 Profile for Human Performance Modeling. This approach may be expanded to be broader in scope than just defining a relationship between UML and IMPRINT. This is important because developing a more general profile for using UML in the field of Human Performance Modeling (if not all of Cognitive Engineering) will be necessary to gain wide enough acceptance to be supported by commercial UML products (see section 4). The major innovation proposed here is using UML to model functions performed by humans, not just functions performed by hardware and software. Traditional uses of UML consider human activity to be external to the system being described. 2 Related research 2.1 Introduction This section provides background data in two important areas. The first is the use of UML in general (i.e., not human-specific) performance modeling and closely related areas. The reason for exploring this area is that techniques used there (such as probability distribution parameter specification, time specification, and decision/branching logic) are expected to be portable to Human Performance Modeling. The second area addressed in this section is the use of UML in human activity and interface specification. This includes the use of UML models to describe the activities of humans as elements of an overall model. 2.2 UML in performance modeling and related areas Cortellessa, Singh, and Cukic [13] describe how non-functional requirements such as reliability can be specified as part of the UML modeling process. They accomplished this by associating reliability attributes with both component and connector elements (classes) of UML diagrams. They then used familiar Bayesian inference techniques to infer an overall reliability by composing the reliabilities of individual elements in a UML Sequence diagram. This suggests the possibility that composite human performance data might be captured and composite performance might be computed by similar techniques. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Fernandes, Machado, and Santos [14] show how UML can be used in industrial projects to model embedded control systems that were previously modeled by Petri Nets. They concluded that UML was an adequate unified representation language for industrial projects, since it was: intuitive for non-technical people, it covered the main views of a system, it was independent of the platform and it was a standard. This research suggests that aspects of human performance modeling traditionally addressed by Petri Net models might also be addressed by UML models. Alsaadi [16] describes how performance analysis may be based on information captured with UML diagrams. In their approach they used the Collaboration diagram, Use Case diagram, Deployment diagram, and the Sequence diagram facilities of earlier versions of UML. By considering object instances that might be either permanent or transient in nature as well as the multiplicity of relationships between object instances, they first transformed the basic UML diagrams into diagrams more consistent with standard queuing network (QN) analysis. They then related functional elements to the hardware and software elements defined in UML Deployment diagrams. Unfortunately, they never explicitly describe how the parameters of a QN are associated with their models using standard UML concepts. Hoeben [17] similarly addresses how UML models often lack some of the detail required for performance estimation and shows how such information can be added. Similar to Alsaadi [16] he uses several different UML diagram types to make performance estimates. Figure 1 from his paper, reproduced below as Figure 1 in this paper, shows the diagram types that he uses: Figure 1. UML diagram types used to produce performance estimates Hoeben is more specific than Alsaadi about how additional data needed for performance prediction is obtained. In particular, the number of instances of various objects in the deployment (such as communication links and servers) is explicitly collected and used. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Lindemann [18] proposes extensions to UML State diagrams and Activity diagrams to allow the association of events with exponentially distributed and deterministic delays. Rather than trying to understand and use UML extension mechanisms to capture this information, his approach exports UML State diagrams and Activity diagrams from a UML tool into text files. The information is then translated into a generalized stochastic Petri Net (GSPN) and the performance data is entered using a Petri Net modeling tool. Balsamo and Marzolla [20] use UML Use Case, Activity and Deployment diagrams together with the UML extension mechanisms of UML Version 1.5 to drive a processoriented simulation model of an UML software specification. The (now obsolete) tagged value extension mechanism is used to associate simulation parameters with UML diagrams. (In UML 2.0. meta-attributes would be used instead (see 3.3)). This is illustrated in their Figure 1, reproduced as Figure 2 below: Figure 2. Methodology for simulation modeling of software systems It is also useful to look at their Figure 3, reproduced as Figure 3 below, which uses the “comment style” (the yellow boxes in the figure) of showing the values of tagged values associated with activities within a UML Activity diagram. Compare this with Figure 9 that shows the approach proposed in the present paper. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Figure 3. Example web video simulation example Balsamo and Marzolla note that: “Use Case diagrams provide information about the workloads driving the system, Activity diagrams show the internal dynamics of the system, and Deployment diagrams show the mapping between software entities (processing steps) and hardware entities (processors on which the software executes).” What is striking both in their work and other typical uses of UML elsewhere is that “processing” is normally thought in UML of as something that software - not humans does and that only the most general notion of “workload” for the system (not the user!) is considered. Nothing limits the use of UML to such a narrow view. Wieringa [21] provides a reasonably complete survey of structured and object-oriented software specification methods and techniques, including UML 1.1. The paper is useful because it provides an abstract look at what is common among many different historical techniques. Bernardi, Donatelli, and Merseguer [22] use UML Sequence diagrams and State Machine diagrams for the validation and the performance evaluation of systems. Similarly to Lindemann [18], they use GSPNs and propose an automatic translation of State Machine diagrams and Sequence Diagrams into GSPNs. This work predates the development of UML 2.0, which is capable of being at least semi-formally specified by defining pre- and post-conditions and semantics using Object Constraint Language (OCL) [5], and so echoes the familiar refrain about UML versions 1.5 and earlier: “UML lacks a formal semantics and hence it is not possible to apply, directly, mathematical techniques on UML models for system validation.” This paper focus of formal semantics and is foundationally sound. It defines a wellspecified formal translation from UML State Machine diagrams to GSPNs. Unfortunately is focuses on only State Machine diagrams and does not address how any of the other 15 GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential diagram types on UML 2.0 might be formally translated, nor does it consider the use of UML extension mechanisms to capture any needed attributes. Gu and Petriu [24] develop XSLT transformations from UML models to LQN performance models. This paper extends a graph grammar-based transformation of a UML design model into a Layered Queueing Network (LQN) performance model previously proposed by the authors. This earlier transformation was implemented in two ways: first by using an existing graph-rewriting tool and secondly through an ad-hoc graph transformation implemented in Java. The new approach uses UML extension mechanisms as illustrated by Figure 6 from their paper, reproduced as Figure 4 below (which uses the UML comment mechanism to show the values of tagged values (now obsolete and replaced by meta-attributes in UML 2.0)) associated with activities: Figure 4. UML Activity diagram with performance annotations Martin, Lavagno, and Louis-Guerin [25] propose a UML profile called “Embedded UML”. It is based on the POLIS approach to hardware-software co-design [42]. This paper provides only a very high-level description with few details. What is interesting is that trades similar to those that are made in hardware-software co-design also apply in human-automated processing co-design, suggesting a general approach where the functionality could be described generically and then trade studies conducted to determine the best human, automated, or blended approach. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Finally, the UML Profile for Schedulability, Performance, and Time Specification, Version 1.1 [7] developed by the Object Management Group is very relevant to the present effort. Although as presently defined it uses UML 1.5, it is presently being redefined to align it with the concepts in UML 2.0 [8]. The purpose of this profile as stated in the document is: “In March of 1999, the Analysis and Design Platform Task Force of the OMG issued a request for proposal (RFP) asking for a UML profile for "schedulability, performance and time". The RFP called for "proposals for a UML profile that defines standard paradigms of use for modeling of time-, schedulability-, and performance-related aspects of real-time systems" that would: Enable the construction of models that could be used to make quantitative predictions regarding these characteristics. Facilitate communication of design intent between developers in a standard way. Enable inter operability between various analysis and design tools. This is just the first part of a larger initiative created by the Real-Time Analysis and Design Work Group to develop a comprehensive solution to the modeling of real-time systems. Subsequent parts are expected to deal with more general quality of service aspects (i.e., beyond time-related issues, including availability, reliability, etc.) and also with complex real-time systems.” Despite the commonly held belief that UML was not suitable for purposes such as performance modeling, the development of this profile demonstrated otherwise. The profile summarizes the situation this way:: “Since the adoption of the UML standard, it has been used in a large number of time-critical and resource-critical systems. (A significant number of these can be found in the various books, papers, and reports listed in the Bibliography at the end of this specification.) Based on this experience, a consensus has emerged that, while a useful tool, UML is lacking in some key areas that are of particular concern to real-time system designers and developers. In particular, it was noticed that the lack of a quantifiable notion of time and resources was an impediment to its broader use in the real-time and embedded domain. Fortunately, and contrary to an often expressed opinion, it was discovered that UML had all the requisite mechanisms for addressing these issues, in particular through its extensibility faculties. This made the job much easier, since it was unnecessary to add new fundamental modeling concepts to UML – so-called “heavyweight” extensions. Consequently, the job consisted of defining a standard way of using these capabilities to represent concepts and practices from the real-time domain.” One reference that describes such alleged shortcomings of UML is Martin [11]. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential The profile defines a general approach to modeling resources, time, schedulability, and performance. A key concept is that of Quality of Service (QoS) offered by resources and requested by services. The profile is based on UML 1.5 and uses its extension mechanisms: Stereotypes (of classes) and tagged values (associated with classes). Besides various representations for time-related objects, tagged values in the profile represent the parameters of various statistical distributions (normal, exponential, Bernoulli, uniform, binomial, etc.). The general approach applies not only to the models in IMPRINT, but to other models used in related areas of cognitive and behavioral engineering. 2.3 UML applied to human action and interface specification 2.3.1 Introduction to human cognitive engineering It is important to understand the nature of the IMPRINT tool and how it fits into the broader subject of cognitive engineering. As discussed later in this paper, getting an approach to data capture (that is, a profile of UML 2.0) accepted by a larger community than just users of one tool will be necessary before vendors will build support for such a profile into their products. This paper relies on the description of the field and the lists of tools developed by Mitre Corporation and documented in the paper “A Survey of Cognitive Engineering Methods and Uses” for this purpose [44]. As described in that reference: “Cognitive engineering is an interdisciplinary approach to the development of principles, methods, tools, and techniques to guide the design of computerized systems intended to support human performance. The basic unit of analysis in cognitive engineering is a cognitive system, composed of human and machine agents in a work domain that is delineated by roles, work and communication norms, artifacts, and procedures. Cognitive engineering draws on the disciplines of cognitive psychology, cognitive science, computer science, human-computer interaction, human factors, and related fields. The goal of cognitive engineering is to develop systems that are easy to learn, easy to use, and result in improved human-computer system performance.” The Mitre paper goes on to give a long list of tools, theories and methods in each of several categories: 1. Cognitive Task Analysis 2. Knowledge Elicitation 3. Computational Cognitive Modeling 4. Task Analysis 5. Computational Task Simulation 6. System Evaluation Methods 7. Theoretical Frameworks 8. Human Reliability Analysis 9. Cognitively-Oriented Methods GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 10. System-Oriented Methods IMPRINT is categorized in the Mitre taxonomy as a Computational Task Simulation tool along with the following additional tools: 1. CART (Combat Automation Requirements Testbed) 2. Micro Saint (System Analysis of Integrated Network of Tasks) 3. WinCrew 4. IPME (Integrated Performance Modeling Environment) The importance of developing a UML profile that can also address the data capture needs of these other products as well as products and technologies in other categories cannot be overemphasized. 2.3.2 UML applied to human action and interface specification Heumann [11] discusses how the Rational Unified Process (RUP) recognizes how Use Case diagrams describe the way a system will be used, but they don't specify the system user interface. RUP supplements Use Case diagrams with user experience (UX) storyboards, based on the use cases, that add the process and techniques necessary to design and build a user interface. While the approach is more oriented towards capturing the data needed to develop user interface screens, it does suggest that a similar approach might work with other information related to a user interface, such as human performance requirements. Agarwal and Sinha [12] describe the difficulties encountered by developers in defining the behavioral aspects of a system. This and similar research was applied in the development of UML 2.0 where two different sets of diagrams are provided - one set addressing system structure and another addressing system behavior [2]. Amyot and Mussbacher [15] as well as Billard [23] describe the concept of Use Case Maps (UCMs). UCMs are used as a visual notation for describing causal relationships between responsibilities of one or more Use Case diagrams. They show how UCMs bridge the gap between requirements and design by combining behavior and structure in one view and by flexibly allocating scenario responsibilities to architectural components. We determined that UML 2.0 provided an equivalent and standard way of interrelating different UML diagrams, making UCMs no longer needed as an additional concept. Biddle and Tempero [19] describe the concept of an Essential Use Case (diagram), which is basically a Use Case diagram that is free of design implications. The two examples from their paper shown as Figure 5 illustrate the difference between a use case with many implied design decisions and one that is design free. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Figure 5 Essential vs. design-biased use case examples One implication of the work of Biddle and Tempero is that design independent diagrams (not only Use Case but also Activity) could be defined first. These diagrams could then be refined in different ways to define specific design choices whose human performance could then be compared. Arnowitz, Fijma, and Verlinden [26] describe task layer maps used to communicate a task analysis. Based on our analysis, UML 2.0 can be used to provide similar design documentation. The authors do not consider this possibility. Paternò [27] considers a cognitive engineering technique, ConcurTaskTrees (CCT), and UML: how to relate them. While they recognize that “UML is the most successful modelbased approach to support software development” they incorrectly claim that “during the evolution of UML little attention has been paid to supporting the user interfaces design and development.” The paper also claims that “ConcurTaskTrees is one of the most widely used notations for task modelling” however the Mitre taxonomy [40] fails to mention this technique. While providing no details of how it might be accomplished, the paper does suggest that: “Representing elements and operators of a CTT model by an existing UML notation. For example, considering a CTT model as a forest of task trees, where CTT operands are nodes and operators are horizontal directed arcs between sibling nodes, it can be represented as UML Class Diagrams. Specific UML class and association stereotypes, tagged values and constraints can be defined to factor out and better represent properties and constraints of CTT elements.” Paris, Lu, and Vander Linden [28] provide a summary of task model editors and extraction tools. They state: “For example, UML is primarily a system modeling language, but it does include some task-oriented information, primarily in the use-case diagrams and potentially in the scenario diagrams and state diagrams. It also includes some domain knowledge in its class diagrams. It is thus possible to extract task modeling knowledge from these diagrams.” GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Their analysis completely neglects the fact that UML can easily be used to capture and describe task models using the techniques described in the present white paper (see 3.4). Instead, they focus only on trying to extract task model data from UML models developed for other purposes. 3 Technical approach 3.1 Introduction This section begins by briefly summarizing important, applicable characteristics and capabilities of both the IMPRINT modeling tool (see 3.2) and of UML 2.0 (see 3.3) . This information is then applied to define an approach to human performance modeling using UML (see 3.4). 3.2 Background information on IMPRINT The Improved Performance Research Integration Tool (IMPRINT) was developed for the Army Research Laboratory (ARL) Human Research and Engineering Directorate (HRED). IMPRINT is government-owned and consists of a set of automated aids to assist analysts in conducting human performance analyses. IMPRINT provides the means for estimating manpower, personnel, and training (MPT) requirements and constraints for new weapon systems very early in the acquisition process [34]. For purposes of this white paper, it is necessary to understand only a few of the features of IMPRINT. These may be summarized as follows: IMPRINT allows an analyst to evaluate a mission. Missions are described by hierarchical refinement: missions are first into a set of functions and then each function may be refined into a set of tasks. While a large amount of information may be specified for each task, the following items entered in the Task Information Time & Accuracy Tab in IMPRINT are the most essential: o Requirements Time Standard: This time standard is the maximum acceptable time by which the mission must be performed in order to be considered a success. Accuracy Standard Accuracy Measure: The selection of one accuracy measure (e.g. “Percent Steps Correct”) from a list of alternatives. Criterion: The percentage of the time that the task must meet the time and accuracy standards o Estimated performance Mean Time Time Standard Deviation GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Time Distribution: The selection of one distribution (e.g., Normal) from a list of distribution types. Mean Accuracy Accuracy Standard Deviation The flow of events functions is specified by defining sequential connectivity among tasks to form a network that may include branching logic. Branches may be one of several types including: parallel branches, probabilistic branches, and repeating branches. Within each function, the connectivity is similarly defined among the tasks that comprise the function. Based on the above list of concepts, if UML structural and/or behavioral modeling (see can capture the above information in one or more of its diagram types (see 3.3.2), then it should be possible to develop the mapping that this white paper is investigating. This mapping is addressed in detail in 3.4. 3.3 Background information on UML 3.3.1 The definition of UML UML 2.0 (the latest version) is formally defined by a set of specifications developed by the Object Management Group (OMG). These specifications are: 1. Unified Modeling Language: Superstructure, version 2.0 [2]: The UML 2.0: Superstructure defines the user level constructs required for UML 2.0. 2. Unified Modeling Language: Diagram Interchange, version 2.0 [3]: UML Diagram Interchange is an XML-based mechanism for describing XML models in a tool-independent manner. It replaces the previous XMI specification. 3. Unified Modeling Language (UML) Specification: Infrastructure, version 2.0 [4]: The UML 2.0: Infrastructure defines the foundational language constructs required for UML 2.0. 4. OCL 2.0 [5]: Object Constraint Language (OCL) is a formal language used to describe expressions on UML models. Proper use of OCL is key to enabling automatic translation of UML models into executable software The previous, now obsolete, version of UML is version 1.5 [1]. UML 1.5 still has a market presence as vendors and open-source projects update their code to UML 2.0. In addition, in section 2.2 we describe how the UML Profile for Schedulability, Performance, and Time Specification, Version 1.1 [7] applies UML to a problem space very similar to human performance modeling. Providing a complete description of UML 2.0 is beyond the scope of this white paper., Instead only a brief introduction is provided and the focus is shifted to look at the very few features of UML 2.0 that are required in the suggested approach to profile development. For further reading, there are two excellent tutorial style introductions to the features of UML 2.0: GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 1. A paper by Bran Selic titled Unified Modeling Language version 2.0 [37] provides a quick overview of UML 2.0 and especially how UML 2.0 differs from previous versions of UML. 2. Two tutorials authored by Sparx Systems, a UML Tool vendor, provide very readable introductions to UML 1.x [38] and UML 2.0 [39]. 3.3.2 Quick summary of UML 2.0 The UML specification [1] describes UML as follows: “The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components.” UML 2.0 models visually described using one or more of 13 basic diagram types [39]. These diagrams are divided into two general sets: Structural Modeling Diagrams and Behavioral Modeling Diagrams. Each of the diagram types is briefly described below: Structural Modeling Diagrams 1. Structure diagrams define the static architecture of a model. They are used to model the 'things' that make up a model - the classes, objects, interfaces and physical components. In addition they are used to model the relationships and dependencies between elements. 2. Package diagrams are used to divide the model into logical containers or 'packages' and describe the interactions between them at a high level 3. Class or Structural diagrams define the basic building blocks of a model: the types, classes and general materials that are used to construct a full model 4. Object diagrams show how instances of structural elements are related and used at run-time. 5. Composite Structure diagrams provide a means of layering an element's structure and focusing on inner detail, construction and relationships 6. Component diagrams are used to model higher level or more complex structures, usually built up from one or more classes, and providing a well defined interface 7. Deployment diagrams show the physical disposition of significant artifacts within a real-world setting. Behavioral Modeling Diagrams 8. Behavior diagrams capture the varieties of interaction and instantaneous state within a model as it 'executes' over time. 9. Use Case diagrams are used to model user/system interactions. They define behavior, requirements and constraints in the form of scripts or scenarios. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 10. Activity diagrams have a wide number of uses, from defining basic program flow, to capturing the decision points and actions within any generalized process. 11. State Machine diagrams are essential to understanding the instant to intant condition or "run state" of a model when it executes. 12. Communication diagrams show the network and sequence of messages or communications between objects at run-time during a collaboration instance. 13. Sequence diagrams are closely related to Communication diagrams and show the sequence of messages passed between objects using a vertical timeline. 14. Timing diagrams fuse Sequence and State diagrams to provide a view of an object's state over time and messages that modify that state. 15. Interaction Overview diagrams fuse Activity and Sequence diagrams to provide allow interaction fragments to be easily combined with decision points and flows. UML allows systems to be defined by successive refinement. Each entity in a diagram can be refined by another diagram of the same type or a different type. After considering how each of these diagram types might be used in human performance modeling, we decided that Activity diagrams were most suitable. In UML, an activity diagram is used to display the sequencing of a collection of activities. Activity diagrams show the flow from a starting point to a finishing point and also describe the branching logic that results in multiple possible paths in the progression of events contained in the activity. Activity Diagrams may be also be used to detail situations where multiple, parallel paths may occur in the execution of some activities. Activity Diagrams are often used in business modeling where they detail the processes involved in business activities. Figure 6 is an example of an Activity diagram showing branching logic as well as multiple, parallel paths [39]. Note that in traditional usage of UML, Activity diagrams are used to model software and hardware elements of a system, not the human elements. However there is nothing about UML Activity diagrams that restricts their usage to only the traditional purpose. Figure 6. Example Activity diagram GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential It is also useful to further describe why the Use Case diagram is not the UML modeling concept to use for human performance modeling. Use Case diagrams are a means for specifying required usages of a system [2]. The key concepts associated with Use Case diagrams are actors and the system under consideration (called the subject) to which the Use Case diagram applies. The users and any other systems that may interact with the subject are represented in Use Case diagrams as actors. The key observation is that actors always model entities that are outside the system. The required behavior of the subject is specified by one or more use cases, which are defined according to the needs of actors. The activity of the actors themselves is not modeled in a Use Case diagram, but it is precisely this activity that needs to be modeled in human performance modeling. 3.3.3 Extending UML The extension mechanism of UML has undergone substantial revision between version 1.5 and 2.0. The UML profile for schedulability, performance and time specification [7] that is described in 2.2 was finalized in 2002 and uses the mechanisms from UML 1.5. Note that a new UML Profile for Modeling and Analysis of Real-Time and Embedded systems (MARTE) [8] is currently under development with the OMG that will upgrade the UML profile for schedulability, performance and time specification to be compliant with UML 2.0, however the first draft of this work is not expected until November 2005 not in time for this white paper. Therefore we briefly describe both mechanisms here. The UML Profile mechanism was specifically defined for providing a lightweight extension mechanism to the UML standard. In UML 1.1, stereotypes and tagged values were used as string-based extensions that could be attached to UML model elements in a flexible way. In subsequent revisions of UML, including versions 1.4 and 1.5, the notion of a Profile was defined to provide more structure and precision to the definition of stereotypes and tagged values. Examples of stereotypes and tagged values used for performance modeling were described in 2.2. The UML 2.0 infrastructure and superstructure specifications have unified the profiling mechanism with the rest of UML by recasting it as a specific meta-modeling technique. Stereotypes have become specific meta-classes, tagged values have become standard meta-attributes, and profiles have become specific kinds of packages. As an example of extension in UML 2.0, consider Figure 456 from the UML 2.0 Superstructure specification [2]. Reproduced in Figure 7, it illustrates a simple stereotype Clock is defined to be applicable to instances of the (standard) meta-class Class. Figure 7. A stereotype This example also illustrates a specific meta-attribute “resolution” that is associated with each Clock. Note that a stereotype defines how an existing meta-class may be extended, and enables the use of platform or domain specific terminology or notation in place of or in addition to the ones used for the extended meta-class. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential It is also useful to consider the interchangeability of UML 2.0 models based on profiles. Section 18.1.2 of UML 2.0 Superstructure specification [2] states the requirements that drove the definition of the profile mechanism. Three of these are particularly applicable to the present problem: “2. It must be possible to interchange profiles between tools, together with models to which they have been applied, by using the UML XMI interchange mechanisms. A profile must therefore be defined as an interchangeable UML model. In addition to exchanging profiles together with models between tools, profile application should also be definable “by reference” (e.g. ““import by name”); that is, a profile does not need to be interchanged if it is already present in the importing tool. ... 9. The vast majority of UML case tools should be able to implement Profiles. The design of UML profiles should therefore not constraint these tools to have an internal implementation based on a meta-meta-model/meta-model architecture. ... 12. Models can be exchanged regardless of the profiles known by the destination target. The destination of the exchange of a model extended by a profile may not know the profile, and is not required to interpret a specific profile description. The destination environment interprets extensions only if it possesses the required profiles.” These three requirements taken together imply that a profile itself can be externalized as XML according to the rules of the UML 2.0 Diagram Interchange specification [3], however a “general” UML design tool that imports the data will not be able enforce the rules of the profile and interpret the intended semantics unless it implements (and therefore understands the semantics of) the profile. 3.4 UML and human performance modeling This section proposes a strategy for relating IMPRINT and UML based on the description of key concepts in IMPRINT in 3.2 and of UML 2.0 in 3.3. Because the purpose of this white paper was to investigate alternative approaches and determine a feasible approach without actually defining the full mapping, this white paper stops short of defining the full mapping. The key features of the proposed approach are: 1. To insure that human performance modeling is accomplished in a uniform manner suitable for use by a variety of cognitive engineering sub-disciplines and products, a UML 2.0 UML Profile for Human Performance Modeling is proposed. This profile will define a set of Stereotypes and associated meta-attributes to be used in defining human performance models 2. The approach proposed here can be extended to many other aspects of cognitive engineering, but this is beyond the scope of the present paper. In particular, the scope of such a profile might be broadened to create a wider support base and to adopt the common and well-understood technique of UML diagrams across more of the cognitive engineering discipline. In particular, the technique seems applicable to cognitive task analysis, computational cognitive modeling, and task GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential analysis in addition to computational task simulation programs such as IMPRINT [44]. 3. UML Activity diagrams are used to represent functions and the tasks that refine functions. These diagrams can be part of a larger system design that integrates the “functions” of the human with the “functions” of hardware and software elements of the system, but how this might be accomplished is beyond the scope of the present paper. 4. Meta-attributes (that is, attributes associated with Stereotype meta-classes) are used to define task Requirements (Time Standard, Accuracy Standard, Accuracy Measure, and Criterion) and task Estimated Performance (Mean Time, Time Standard Deviation, Time Distribution, Mean Accuracy, and Accuracy Standard Deviation). 5. The approach of using meta-attributes can be extended to other aspects of the operatorTask of IMPRINT. This is beyond the scope of this white paper. 6. While this paper focuses on the UML -> IMPRINT direction of the mapping, the inverse mapping is straightforward because XML diagram exchange can be both exported from, and imported to, UML tools. The approach is illustrated by using the example from Figures 3.21, 3.22 etc. in the IMPRINT user manual. This example illustrates a series of steps related to disassembly of a mechanical part. IMPRINT provides a Network Diagram that allows the relationships between functions and/or tasks to be described. One such diagram (Figure 3-21 from the user manual) is reproduced in Figure 8 below. Notice how similar such a diagram is to a UML Activity diagram. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Figure 8. An IMPRINT Network diagram Figure 9 gives an example based on one of the steps (2. Removal of lower air baffle) in Figure 8 above (and consistent with the data shown as “Function information) in Figure 3.22 of the IMPRINT User Manual). This figure shows an action (class) in a UML Activity diagram (subclassed from a presumed Stereotype “operatorTask” class) together with its attributes in typical UML diagram presentation style. (Details of attribute types and their representation are pseudo-coded in this example to simplify the presentation.) GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential <<operatorTask>> Removal of Lower Air Baffle timeStandard = (0:10:0) accuracyStandard = 10 accuracyMeasure = “Percent Steps Correct” criterion = 0.93 meanTime = (0:8:30) timeStandard Deviation = 1.0 timeDistribution = Normal meanAccuracy = 10 accuracyStandardDeviation = 1.0 Figure 9. Example action from a UML Activity diagram Finally, note that while it is straightforward to envision the development and application of this proposed UML 2.0 Profile for Human Performance Modeling, actually insuring that the profile is used in practice will require that program management mandate its use on each particular DoD program. 4 Getting the approach accepted by the community 4.1 Introduction Significant effort will be required to integrate the UML extensions in a UML 2.0 Profile for Human Performance Modeling into commercial UML products. To allow tool sets to be interoperable it is essential that any such Profile for Human Performance Modeling obtain the support of the UML community. UML was developed by the Object Management Group and is the OMG's most-used specification. This implies that any special profile of UML should be standardized within the OMG according to OMG processes. Following these processes insures that the necessary degree of support and consensus is obtained and that he profile will become a commercial success. 4.2 The OMG process 4.2.1 Introduction It is important to understand the magnitude of the task involved in getting a profile adopted by the OMG before undertaking such a task. It will require a multi-year commitment but it can result in a profile that is implemented in commercial UML products and accepted and used by a wide community of practice. This section describes the major steps in the OMG process to aid in understanding the magnitude of the needed GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential commitment. For further description of http://www.omg.org/gettingstarted/processintro.htm . 4.2.2 the OMG process, see Precursor steps Before undertaking work within the OMG to standardize a Profile for Human Performance Modeling, it will be important to develop and build the necessary consensus that a market of sufficient size exists to implement and use the profile. The OMG Hitchhiker's Guide [36] says it this way: “Before a RFP can be crafted, one more extremely important task must be accomplished: verifying that suppliers exist that are willing to respond to the RFP and to commit to building its implementation. This effort should not be interpreted as soliciting commitment but rather assessing interest within a particular supplier community. Its intent is to avoid the embarrassment of "sending out invitations and no one coming to the party". Identify the industry problem to be solved. Identify the high-level requirements associated with its solution. Canvas the supplier community to ensure there is interest in solving the problem.” Note that the OMG itself only develops specifications. It does not develop and distribute software. Implementers of products that conform to the UML 2.0 Specification would need to be convinced to add support for the Profile for Human Performance Modeling to their products. Building support is discussed further in 4.3. A second necessary precursor to bringing any technology into the OMG for adoption is that a complete “prototype” implementation is needed to demonstrate that the technology exists and can be implemented. The OMG resists performing research as part of its development process. The process is intended to document and develop consensus on one or more existing solutions that can be packaged as a single OMG specification. The last precursor step is that the government organization (or its contractor) would need to establish membership in the OMG. OMG Membership for Government organizations costs $12,000 per year. Government members can vote in all Task Forces and Special Interest Groups and can attend all meetings. If a commercial organization (such as MA&D) were to become an OMG member, membership at least at the Influencing Member level would be required. The annual fee for such a membership is based on a sliding scale based on the firm’s annual gross revenue. For example, firms with revenues of 10 million to 99 million dollars a year pay a $5,000 annual fee. 4.2.3 Overview of the OMG process The Object Management Group adopts specifications according to the process defined in OMG Policies and Procedures Manual [35]. A guide to the Policies and Procedures Manual is also available [36]. The first step to understanding the process is recognizing that consensus must be reached among the OMG membership. In the process of building this consensus, each member can contribute in two different roles: GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential submitters of the technology, and voters on the submission. A single OMG member can serve in both roles are different times in the process. Submitters write the specification that is submitted to the membership for approval through a series of votes by the membership of different “committees” within the OMG. Before describing the process it is necessary to understand the different committees that would apply to this effort. In order starting from the top, these are: 1. Board of Directors (BOD): This committee provides overall direction to, and final approval of, all work accomplished within the OMG. 2. Platform Technology Committee (TC): This committee is the umbrella committee under which a number of different Platform Task Forces operate. (There is a different TC for “Domain Technologies” that apply only to specific industries.) 3. Real-time, Embedded, and Specialized Systems Platform Task Force (TF): This committee is the specific task force into whose charter any Profile for Human Performance Modeling would likely fit. This TF is currently responsible for the UML Profile for Scheduling, Performance, and Time [7] and the recent RFP to undertake its revision [8]. A brief summary of the stages and steps within each stage in the OMG process that would likely be required to develop and standardize a Profile for Human Performance Modeling follow [35], [36]: 1. Request For Information (RFI) stage a. The TF writes the RFI and votes to recommend that the parent TC issue it. b. The TC votes to issue the RFI. c. The TF accepts, reads, and analyzes responses to the RFI. 2. Request for Proposal (RFP) stage a. Possibly using information received via the RFI, the TF writes and votes to recommend that the parent TC issue it. b. The OMG Architecture Board approves the RFP. c. The TF's parent TC votes to issue the RFP. An Initial Submission deadline is set at the time the RFP is issued. d. On or before the Letter of Intent (LOI) deadline, one or more OMG member companies submit LOIs. Note that by submitting an LOI the organization is making a commitment to be involved in the submission process. Also note that OMG membership is a requirement for submitting an LOI. e. On or before the Initial Submission deadline, which typically falls three weeks before an OMG technical meeting week, all or most of these companies will have submitted initial submissions. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential f. Interested OMG members read the submissions, and comment on them during the meeting. A deadline is set for the receipt of revised submissions. g. During the interim between this meeting and the revised submission deadline, interesting things may happen. h. The revised submission deadline may be extended. There may be multiple deadlines for revised submissions. i. On or before the revised submission deadline, one or more revised submissions may be submitted. j. OMG members read and evaluate the revised submission (most likely) or submissions (less likely). If most members consider the submission worthy, a series of votes begins. 3. Adoption stage a. If the votes are to begin at the meeting that immediately follows the revised submission deadline, a procedural hurdle known as the "vote to vote" is encountered. b. The TF votes to recommend adoption to its parent TC. c. The OMG Architecture Board votes on the submission. d. The parent TC votes to recommend to OMG's BOD. e. The BOD Business Subcommittee (BSC) reports to the BOD on Business Committee Questionnaire responses from the submitters. What the OMG is looking for in the responses is at least one submitter to agree to incorporate the submission into a commercial product. f. If at least one satisfactory response was received, the BOD votes to adopt the specification. At this point, the submission becomes an official OMG Adopted Specification, but does not receive a release number. 4. Finalization stage a. The TC charters a Finalization Task Force (FTF). b. The FTF performs the first maintenance revision on the specification, resolving issues submitted to OMG, while simultaneously producing implementations at their organizations. c. The FTF-revised version of the specification is adopted as official OMG technology, through the same series of votes as the original submission (TF, Architecture Board, TC, and BOD). This time it receives a release number, and is designated an available specification. d. The document is edited into a formal OMG specification. e. Typically, products reach the market around this time too. As can be seen from the above process summary, a significant multi-year commitment is necessary. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 4.3 Building support Obtaining the support of the UML developer community is essential to getting any Profile for Human Performance Modeling approved by the OMG. A list of commercially available tools that support the OMG 2.0 Specification is available on the OMG’s web site at http://www.uml.org/#Links-UML2Tools . At the time this white paper was written (March 2005) the following products were on this list: ARTiSAN's Real-time Studio Computas' Metis with UML 2.0 Template Embarcadero Describe I-Logix Rhapsody MetaMatrix MetaBase Modeler No Magic's MagicDraw UML Rational Software Architect and Modeler Sparx Systems Enterprise Architect Telelogic's TAU Developer and TAU Architect Together Designer Community Edition Note that the Rational Rose products of Rational Software (a subsidiary of IBM) are NOT compliant with the UML specification (see http://www306.ibm.com/software/rational/sw-atoz/indexR.html ). Rational Software Architect and Rational Software Modeler could be used instead (see http://www306.ibm.com/software/rational/sw-atoz/indexS.html ). The support of at least one of these developers must be sought prior to initiating the development of the profile. 5 Next steps The next steps to follow in developing a UML 2.0 Profile for Human Performance Modeling are: 1. Work out a detailed proof of concept example of a set of UML Activity diagrams that specify the functions, tasks, and input parameters for a non-trivial human performance model. The example should illustrate both refinement as well as significant branching logic. We believe that this can be accomplished without first defining a profile by using standard UML mechanisms of sub-classing and attribute definition. Any of several different commercial UML products could be used for this purpose. 2. Investigate how UML Activity diagrams of the sort defined here fit into the larger milieu of system specification and system architecture definition. This should be done by conducting a pilot project on a real system development (and may be combined with the proof of concept example listed in Step 1). Being able to show the value added by these more detailed and refined “human” Activity diagrams to the overall process of defining a system with both human and automated elements GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential should increase the likelihood that the technique is accepted for use in future developments. 3. Having the results of Steps 1 and 2 in hand, the first steps discussed in 4 (Getting the approach accepted by the community) should be undertaken. In particular the opportunity presented by such a profile should be discussed with UML tool vendors and a presentation should be made at an OMG meeting about the significance of the opportunity. 4. Once sufficient support is built, form a Task Force within the OMG to begin developing the profile following the OMG development process. 5. Extend IMPRINT to import and export UML 2.0 Diagram Interchange format XML. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Annotated bibliography 1. Object Management Group, OMG Unified Modeling Language Specification, Version 1.5, March 2003 The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components. The UML represents the culmination of best practices in practical object-oriented modeling. The UML is the product of several years of hard work, in which we focused on bringing about a unification of the methods most used around the world, the adoption of good ideas from many quarters of the industry, and, above all, a concentrated effort to make things simple. 2. Object Management Group, Unified Modeling Language: Superstructure, version 2.0, September 2003 This UML 2.0: Superstructure is the second of two complementary specifications that represent a major revision to the Object Management Group’s Unified Modeling Language (UML), for which the most current version is UML v1.4. The first specification, which serves as the architectural foundation for this specification, is the UML 2.0: Infrastructure. This UML 2.0: Superstructure defines the user level constructs required for UML 2.0. It is complemented by UML 2.0: Infrastructure which defines the foundational language constructs required for UML 2.0. The two complementary specifications constitute a complete specification for the UML 2.0 modeling language. 3. Object Management Group, Unified Modeling Language: Diagram Interchange, version 2.0, September 2003 The goal of this specification is to enable a smooth and seamless exchange of documents compliant to the UML standard (in the following referred to as UML models) between different software tools. While this certainly includes tools for developing UML models, it also includes tools such as whiteboard tools, code generators, word processing tools, and desktop publishing tools. Also, special attention is given to the Internet as a medium for exchanging and presenting UML models. Although a mechanism for exchanging UML models had been specified for UML 1.x using XMI, namely the XML Metadata Interchange, (in the following referred to as XMI[UML]), this mechanism did not fully fulfill the goal of a model interchange. Foremost, it did not include the exchange of diagram information. This mechanism was only capable of transporting information on what elements are contained in a UML model but not the information on how these elements are represented and laid out in diagrams. Thus, if a UML model is stored in one UML tool and then loaded in a different UML tool (or even the same tool) using XMI[UML], all diagram information is lost. This limitation is not due to XMI itself but instead to the fact that the UML metamodel does not define a standard way of representing diagram definitions. 4. Object Management Group, Unified Modeling Language (UML) Specification: Infrastructure, version 2.0 This UML 2.0: Infrastructure is the first of two complementary specifications that represent a major revision to the Object Management Group’s Unified Modeling Language (UML), for which the previous current version was UML v1.5. The second specification, which uses the architectural foundation provided by this specification, is the UML 2.0: Superstructure (ptc/03-08-02). GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential The UML 2.0: Infrastructure defines the foundational language constructs required for UML 2.0. It is complemented by UML 2.0: Superstructure, which defines the user level constructs required for UML 2.0. 5. Object Management Group, OCL 2.0, OMG Final Adopted Specification, October 2003 This specification contains defines the Object Constraint Language (OCL), version 2.0. OCL version 2.0 is the version of OCL that is aligned with UML 2.0 and MOF 2.0. The Object Constraint Language (OCL) is a formal language used to describe expressions on UML models. These expressions typically specify invariant conditions that must hold for the system being modeled or queries over objects described in a model. Note that when the OCL expressions are evaluated, they do not have side effects; i.e. their evaluation cannot alter the state of the corresponding executing system. OCL expressions can be used to specify operations / actions that, when executed, do alter the state of the system. UML modelers can use OCL to specify application-specific constraints in their models. UML modelers can also use OCL to specify queries on the UML model, which are completely programming language independent. 6. Object Management Group, OMG Unified Modeling Language Specification, Version 1.3, 2001 The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of the best engineering practices that have proven successful in the modeling of large and complex systems. 7. Object Management Group, UML Profile for Schedulability, Performance, and Time Specification, Version 1.1, January 2005 Since the adoption of the UML standard, it has been used in a large number of time-critical and resource-critical systems. (A significant number of these can be found in the various books, papers, and reports listed in the Bibliography at the end of this specification.) Based on this experience, a consensus has emerged that, while a useful tool, UML is lacking in some key areas that are of particular concern to real-time system designers and developers. In particular, it was noticed that the lack of a quantifiable notion of time and resources was an impediment to its broader use in the real-time and embedded domain. Fortunately, and contrary to an often expressed opinion, it was discovered that UML had all the requisite mechanisms for addressing these issues, in particular through its extensibility faculties. This made the job much easier, since it was unnecessary to add new fundamental modeling concepts to UML - so-called "heavyweight" extensions. Consequently, the job consisted of defining a standard way of using these capabilities to represent concepts and practices from the real-time domain. Over time, a number of different modeling techniques and concepts have emerged within the real-time software community. Each technique has fostered its own diverse set of terminology and notations. One of the intentions behind this specification is to provide a common framework within UML that fully encompasses this diversity but still leaves enough flexibility for different specializations. In particular, focus was placed on properties that are related to modeling of time and time-related aspects such as the key characteristics of timeliness, performance, and schedulability. 8. Object Management Group, UML Profile for Modeling and Analysis of Real-Time and Embedded systems (MARTE), Request For Proposals, February 2005 This Request for Proposals solicits submissions for a UML™ profile that adds capabilities for modeling Real Time and Embedded Systems (RTES), and for analyzing schedulability GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential and performance properties of UML specifications. The new profile is intended to replace the existing UML Profile for Schedulability, Performance and Time (formal/03-09-01). 9. ISO/IEC 10746:1998. Reference Model of Open Distributed Processing. Available from the world wide web: http://isotc.iso.ch/livelink/livelink/fetch/2000/2489/Ittf_Home/ITTF.htm The rapid growth of distributed processing has led to a need for a coordinating framework for the standardization of Open Distributed Processing (ODP). This Reference Model provides such a framework. It creates an architecture within which support of distribution, interworking and portability can be integrated. The Reference Model of Open Distributed Processing, ITU-T Rec. X.901 | ISO/IEC 10746-1 to ITU-T Rec. X.904 | ISO/IEC 10746-4, is based on precise concepts derived from current distributed processing developments and, as far as possible, on the use of formal description techniques for specification of the architecture. 10. Heumann, Jim. User experience storyboards: Building better UIs with RUP, UML, and use cases. November 2003. The Rational Edge. Available from the world wide web http://www106.ibm.com/developerworks/rational/library/content/RationalEdge/nov03/f_usability_jh .pdf Use cases describe the way a system will be used, but they don't specify the system user interface (UI). User experience storyboards, based on the use cases, add the process and techniques necessary to design and build a user interface that will meet requirements and allow users to exercise all the system behavior described in the use cases. These storyboards provide a firm foundation for the detailed UI design and also facilitate communication among development team members -- especially between the creative team that designs the UI and the architects and developers who design and implement the system. This paper provides a complete example including branching and conditional execution based on use actions. 11. Glinz, Martin. Problems and Deficiencies of UML as a Requirements Specification Language. Proceedings of the 10th International Workshop on Software Specification and Design. IEEE Computer Society. 2000. p 11. In recent years, UML has become a standard language for modeling software requirements and design. In this paper, we investigate the suitability of UML as a semiformal requirements specification language. Using the Teleservices and Remote Medical Care (TRMCS) case study as an example, we identify and demonstrate various problems and deficiencies of UML, particularly concerning use case models and system decomposition. We also investigate whether and how the deficiencies can be overcome and how potential alternatives could look. 12. Agarwal, Ritu and Atish P. Sinha. Object-oriented modeling with UML: a study of developers' perceptions. Communications of the ACM, Volume 46 , Issue 9 (September 2003). Pages: 248 - 256. Prior research exploring the effectiveness of the OO approach has found that developers experience problems in modeling the behavior-related aspects of an application. In UML, sequence (interaction) diagrams capture a system's behavioral aspects in terms of messages, sequencing of messages, and invocation of operations by messages. In turn, those diagrams can help tackle the difficult problem of allocating behavior among object classes in a UML class diagram. Given the interdependence of class and interaction diagrams in UML, it is critical that both researchers and practitioners address this issue and find ways to enhance the usability of those diagrams. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 13. Cortellessa, Vittorio, Harshinder Singh, and Bojan Cukic. Early reliability assessment of UML based software models. Proceedings of the third international workshop on Software and performance table of contents, Rome, Italy (2002). ACM Press. Pages: 302 - 309. The ability to validate software systems early in the development lifecycle is becoming crucial. While early validation of functional requirements is supported by well known approaches, the validation of non-functional requirements, such as reliability, is not. Early assessment of non-functional requirements can be facilitated by automated transformation of software models into (mathematical) notations suitable for validation. These type of validation approaches are usually as "transparent" to the developers as possible. Consequently, most software developers find them user friendly and easy to adopt.In this paper we introduce a methodology that starts with the analysis of the UML model of software architecture followed by the bayesian framework for reliability prediction. We utilize three different types of UML diagrams: Use Case, Sequence and Deployment diagrams. They are annotated with reliability related attributes. Unlike traditional reliability growth models, which are applicable late in the lifecycle, our approach bases system reliability prediction on component and connector failure rates. In mature development environments, these may be available as the result of reuse. Throughout the lifecycle, as the developers improve their understanding of failure rates and their operational usage, system reliability prediction becomes more precise. We demonstrate the approach through a case study based on a simple web-based transaction processing system. 14. Fernandes, João M., Ricardo J. Machado, and Henrique D. Santos. Modeling industrial embedded systems with UML. Proceedings of the eighth international workshop on Hardware/software codesign. ACM Press (2000) Pages: 18 - 22 . The main purpose of this paper is to present how the Unified Modeling Language (UML) can be used for modeling industrial embedded systems. By using a car radios production line as a running example, the paper demonstrates the modeling process that can be followed during the analysis phase of complex control applications. In order to guarantee the continuity mapping of the models, the authors propose some guidelines to transform the use case diagrams into a single object diagram, which is one of the main diagrams for the next development phases. 15. Amyot, Daniel and Gunter Mussbacher. Bridging the requirements/design gap in dynamic systems with use case maps (UCMs). Proceedings of the 23rd International Conference on Software Engineering.IEEE Computer Society (2001). Pages: 743 - 744 Two important aspects of future software engineering techniques will be the ability to seamlessly move from analysis models to design models and the ability to model dynamic systems where scenarios and structures may change at run-time. Use Case Maps (UCMs) are used as a visual notation for describing causal relationships between responsibilities of one or more use cases. UCMs are a scenario-based software engineering technique most useful at the early stages of software development. The notation is applicable to use case capturing and elicitation, use case validation, as well as high-level architectural design and test case generation. UCMs provide a behavioural framework for evaluating and making architectural decisions at a high level of design. Architectural decisions may be based on performance analysis of UCMs. UCMs bridge the gap between requirements and design by combining behaviour and structure in one view and by flexibly allocating scenario responsibilities to architectural components. They also provide dynamic (run-time) refinement capability for variations of scenarios and structure and they allow incremental development and integration of complex scenarios. Therefore, UCMs address the issues mentioned above. 16. Alsaadi, Ahmad. A performance analysis approach based on the UML class diagram. Proceedings of the fourth international workshop on Software and performance. ACM Press (2004). Pages: 254 - 260. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential A data model, or UML class diagram of a software system, is of central importance to the computing time and the disk usage a software system exhibits. It can be normalized or denormalized to better utilize the components of a computer system or to offer acceptable performance values.This paper describes an approach to software performance analysis that is based on the UML class diagram. It predicts the performance values for use cases operating on persistent data collections as well as whether and how much normalization or denormalization a UML class diagram may need, in order to ensure that these use cases meet their performance objectives. 17. Hoeben, Fried. Using UML models for performance calculation. Proceedings of the second international workshop on Software and performance. ACM Press (2000). Pages: 77 - 82. UML models will quite often lack some of the detail required for performance estimation. This paper explores some ideas to automatically remove layers of indirection and abstraction that hinder straightforward performance evaluation of UML models. Using UML makes the information accessible (since it is a widely know language) and reduces the extra effort (and overhead) needed for performance engineering. Much information normally present in UML models can be used for performance engineering, and adding extra information is relatively straightforward. Using these ideas in a CASE tool allows automatic performance calculations based on models at varying levels of detail. And by breaking-down performance requirements at each design refinement they become tangible and more meaningful during development and testing. 18. Lindemann, Christoph, et. al. Performance analysis of time-enhanced UML diagrams based on stochastic processes. Proceedings of the third international workshop on Software and performance. ACM Press (2002) Pages: 25 - 34. In this paper, we propose extensions to UML state diagrams and activity diagrams in order to allow the association of events with exponentially distributed and deterministic delays. We present an efficient algorithm for the state space generation out of these UML diagrams that allows a quantitative analysis by means of an underlying stochastic process. We identify a particular stochastic process, the generalized semi-Markov process (GSMP), as the appropriate vehicle on which quantitative analysis is performed. As innovative feature the algorithm removes vanishing states, i.e. states with no timed events active, and considers branching probabilities within activity diagrams. Furthermore, we introduce a performance evaluation framework that allows a system designer to predict performance measures at several steps in the design process. The applicability of our approach for practical performance and dependability projects is demonstrated by an UML specification of the General Packet Radio Service, a packet switched extension in GSM wireless networks. 19. Biddle, Robert, James Noble, and Ewan Tempero. Essential use cases and responsibility in object-oriented development. Proceedings of the twenty-fifth Australasian conference on Computer science - Volume 4. Australian Computer Society, Inc. (2002) Pages: 7 - 16. Essential use cases are abstract, lightweight, technology-free dialogues of user intention and system responsibility that effectively capture requirements for user interface design. We describe how essential use cases can also drive object-oriented development directly, without any intervening translation, and allowing user interface development and object-oriented development to proceed in parallel. Working with essential use cases yields some unexpected further benefits: the crucial common vocabulary of responsibilities lets designers trace directly from the essential use cases to the objects in their design. 20. Balsamo, Simonetta and Moreno Marzolla. A simulation-based approach to software performance modeling. Proceedings of the 9th European software engineering conference GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering. ACM Press (2003) Pages: 363 - 366. Software performance is the process of predicting and evaluating whether the software system satisfies performance goals defined by the user. Early identification of unsatisfactory performance of Software Architecture (SA) can greatly reduce the cost of design change. The reason is that correcting a design flaw is more expensive the later the change is applied during the software development process. The Software Performance Engineering methodology has been the first comprehensive approach to the integration of performance analysis into the software development process. Since then, various classes of performance models of software systems have been considered in the literature, including models based on simulation. In this paper we consider the derivation of a simulation model from a SAs pecification. The approach we describe can be easily extended to model complex architectural patterns involving, for example, simultaneous resource possession and arbitrary types of blocking behaviors. We develop an algorithm for translating annotated UML specifications of software systems into simulation models. We consider SA expressed in term of Unified Modeling Language (UML) Use Case, Activity and Deployment diagrams. The diagrams are annotated according to a subset of the UML Profile for Schedulability, Performance and Time Specification (referred as UML performance profile). Annotations provide parameters to the simulation model. 21. Wieringa, Roel. A survey of structured and object-oriented software specification methods and techniques. ACM Computing Surveys, Volume 30 , Issue 4 (December 1998) Pages: 459 - 527. This article surveys techniques used in structured and object-oriented software specification methods. The techniques are classified as techniques for the specification of external interaction and internal decomposition. The external specification techniques are further subdivided into techniques for the specification of functions, behavior, and communication. After surveying the techniques, we summarize the way they are used in structured and object-oriented methods and indicate ways in which they can be combined. This article ends with a plea for simplicity in diagram techniques and for the use of formal semantics to define these techniques. The appendices show how the reviewed techniques are used in 6 structured and 19 object-oriented specification methods. This article contains a comprehensive set of 128 references. 22. Bernardi, Simona, Susanna Donatelli , and José Merseguer. From UML sequence diagrams and statecharts to analysable petri net models. Proceedings of the third international workshop on Software and performance table of contents. ACM Press (2002). Pages: 35 - 45. In this paper we study the use of Sequence Diagrams and Statecharts of the Unified Modeling Language (UML) for the validation and the performance evaluation of systems. We assume that the system is specified as a set of Statecharts and that Sequence Diagrams are used to represent "executions of interest". UML lacks a formal semantics and hence it is not possible to apply, directly, mathematical techniques on UML models for system validation. To reach this goal we propose an automatic translation of Statecharts and Sequence Diagrams into Generalized Stochastic Petri Nets, and a composition of the resulting net models suitable for reaching a given analysis goal. The translation into Petri nets is based on the abstract syntax of the UML Collaborations and of the State Machines packages (from which Sequence Diagrams and Statecharts are derived) and the construction of the complete model heavily uses compositionality. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 23. Billard, Edward A. Operating system scenarios as Use Case Maps. Proceedings of the fourth international workshop on Software and performance. ACM Press (2004) Pages: 266 - 277. This paper summarizes the analysis, design, implementation, and performance analysis of an object-oriented operating system. The analysis applies Use Case Maps (UCMs) to provide a high-level abstraction of the behavior scenarios for state transition, character output, network access, and disk access. The UCM for state transitions is converted into a queueing network for simulation study of I/O-bound versus CPU-bound systems. An overview of the later stages emphasizes UML for architecture and detailed collaboration, as well as Java examples. The performance of the disk sub-system is analyzed by instrumenting the Java code, and the results show that design choices can affect the throughput. 24. Gu, Gordon P. and Dorina C. Petriu. XSLT transformation from UML models to LQN performance models. Proceedings of the third international workshop on Software and performance. ACM Press (2002) Pages: 227 - 234. A graph grammar-based transformation of a UML design model into a Layered Queueing Network (LQN) performance model was previously proposed by the authors of this paper. The actual transformation was implemented in two ways: first by using an existing graphrewriting tool, and secondly through an ad-hoc graph transformation implemented in Java. This paper extends the previous work of the authors by proposing a third approach to implement the UML to LQN transformation by using XSLT. Recommended by the World Wide Web Consortium (W3C) the Extensible Stylesheet Language for Transformations (XSLT) is a flexible language for transforming XML documents into various formats including HTML, XML, text, PDF, etc. The input to our XSLT transformation is an XML file that contains the UML model in XML format according to the standard XML Metadata Interchange (XMI). The output is the corresponding LQN model description file, which can be read directly by existing LQN solvers. The paper compares the relative advantages and disadvantages of the XSLT transformation with the previous approaches proposed by the authors, describes the principles of the XSLT transformation and applies it to a case study. This paper includes references to the body of research dedicated to transforming UML models into different kinds of performance models 25. Martin, Grant, Luciano Lavagno, and Jean Louis-Guerin. Embedded UML: a merger of real-time UML and co-design. Proceedings of the ninth international symposium on Hardware/software codesign. ACM Press (2001). Pages: 23 - 28. In this paper, we present a proposal for a UML profile called `Embedded UML'. Embedded UML represents a synthesis of various ideas in the real-time UML community, and concepts drawn from the Hardware-Software co-design field. Embedded UML first selects from among the competing real-time UML proposals, the set of ideas which best allow specification and analysis of mixed HW-SW systems. It then adds the necessary concept of underlying deployment architecture that UML currently lacks in complete form, using the notion of an embedded HW-SW `platform'. It supplements this with the concept of a `mapping', which is a platform-dependent refinement mechanism that allows efficient generation of an optimised implementation of the executable specification in both HW and SW. Finally, it provides an approach which supports the development of automated analysis, simulation, synthesis and code generation tool capabilities which can be provided for design usage even while the embedded UML standardisation process takes place. 26. Arnowitz, Jonathan, Duco Fijma, and Jouke Verlinden. Communicating a task analysis with task layer maps. Proceedings of the conference on Designing interactive systems: processes, practices, methods, and techniques. ACM Press (2000). Pages: 346 353. GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential Modern user interface design methods, regardless of their extremely diverse viewpoints, all seem to agree that a document outlining a task analysis is essential for good user interface design. However, most representations of task analysis are difficult to understand. This difficulty makes the transition to dialogue design difficult, especially for multidisciplinary design teams with few shared skills and terminology. Using techniques borrowed from the study of parallel processing, the authors have developed a technique of task analysis representation called Task Layer Maps. Task Layer Maps are both quick and easy to understand. This technique helps design teams to quickly come up with a dialogue design and also allows checking that design for conformance with the task analysis. 27. Paternò, Fabio. ConcurTaskTrees and UML: how to marry them? CNUCE-C.N.R., Via V.Alfieri 1, 56010 Ghezzano, Pisa, Italy. Undated, Available from the world wide web at: http://giove.cnuce.cnr.it/Guitare/Document/ConcurTaskTrees_and_UMLnew.htm Nowadays, UML is the most successful model-based approach to support software development. However, during the evolution of UML little attention has been paid to supporting the user interfaces design and development. In the meantime, the user interface has become a crucial part in most software projects, and the use of models to capture requirements and express solutions for its design a true necessity. Within the community of researchers investigating model-based approaches for interactive applications particular attention has been paid to task models. ConcurTaskTrees is one of the most widely used notations for task modelling. In this position paper there is a discussion of how the two approaches can be integrated and why this is a desirable goal. 28. Paris, Cécile, Shijian Lu, and Keith Vander Linden. Environments for the Construction and Use of Task Models. To appear in The Handbook of Task Analysis for Human-Computer Interaction. Edited by Prof. Dan Diaper & Prof. Neville Stanton. Lawrence Erlbaum Associates. (In press) Available from the world wide web: http://www.calvin.edu/~kvlinden/distributions/Paris-VL-Lu-HTA-2003.pdf Task models are useful because they support the design and evaluation of interactive systems from the point of view of the intended users. Unfortunately, they are also difficult to build. To help alleviate this problem, tools have been built that aid in the construction of task models in a variety of ways, in the hope that designers will be encouraged to build explicit task models and reap the benefits of their use and reuse. This chapter will review the range of tools that have been built, and, as an example, will discuss ISOLDE, an environment that integrates an heterogeneous set of such tools and supports the construction, use, and reuse of task models. 29. Roth, E. M., Patterson, E. S., & Mumaw, R. J. Cognitive Engineering: Issues in UserCentered System Design. In J.J. Marciniak, Ed. Encylopedia of Software Engineering (2nd Edition). NY: John Wiley and Sons. Cognitive engineering is an interdisciplinary approach to the development of principles, methods, tools, and techniques to guide the design of computerized systems intended to support human performance (Norman, 1981; Woods and Roth, 1988a; 1988b). The basic unit of analysis in cognitive engineering is a cognitive system, composed of human and machine agents in a work domain that is delineated by roles, work and communication norms, artifacts, and procedures. Cognitive engineering draws on the disciplines of cognitive psychology, cognitive science, computer science, human-computer interaction, human factors, and related fields. The goal of cognitive engineering is to develop systems that are easy to learn, easy to use, and result in improved human-computer system performance GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 30. Keller, John et. al. Cockpit System Situational Awareness Modeling Tool. Available from the world wide web: http://techreports.larc.nasa.gov/ltrs/PDF/2004/mtg/NASA2004-2chpsaat-kal.pdf This project explored the possibility of predicting pilot situational awareness (SA) using human performance modeling techniques for the purpose of evaluating developing cockpit systems. The Improved Performance Research Integration Tool (IMPRINT) was combined with the Adaptive Control of Thought-Rational (ACT-R) cognitive modeling architecture to produce a tool that can model both the discrete tasks of pilots and the cognitive processes associated with SA. The techniques for using this tool to predict SA were demonstrated using the newly developed Aviation Weather Information (AWIN) system. By providing an SA prediction tool to cockpit system designers, cockpit concepts can be assessed early in the design process while providing a cost-effective complement to the traditional pilot-in-theloop experiments and data collection techniques. 31. Campbell, Gwendolyn E. and Janis A. Cannon-Bowers. Human Performance Model Support for a Human-Centric Design Process, Naval Air Warfare Center Training Systems Division. Available from the world wide web: http://www.manningaffordability.com/s&tweb/PUBS/HPM-HumanCentricDesign/HPMHumanCentricDesign.pdf For years, systems designers following a traditional design process have made use of models of hardware and software. A human-centric design process imposes additional requirements and analyses on the designer, and we believe that additional types of models – models of human performance – are necessary to support this approach to design. Fortunately, there have been recent technological advances in our ability to model all aspects of human performance. This paper will describe three specific applications of human performance modeling that we are exp loring to support the design of human-centric systems, such as future Navy ships. Specifically, this technology can be used to generate team design concepts, to provide human-centric decision support for systems engineers, and to allow simulation-based evaluation of human performance. We believe that human performance modeling technology has matured to the point where it can play a significant role in the human-centric design process, reducing both cost and risk. 32. Martin, Edward A., Bryan E. Brett, and David G. Hoagland, Tools For Including Realistic Representations Of Operator Performance In DoD Constructive Simulations. Proceedings of the AIAA Modeling and Simulation Technologies 1999. Available from the world wide web: http://www.hec.afrl.af.mil/publications/CARTConstruct.pdf . Military weapon systems are normally built to satisfy a set of requirements levied by the war-fighter. All these weapon systems are manned in some sense, yet tools for quantifying the effectiveness with which a crew-station must support operator performance are lacking. Analysts and decision-makers need a means to readily model and understand the effects of human performance on total weapon system effectiveness when translating operational requirements into system requirements. This paper discusses the research and demonstration activities being conducted by the Combat Automation Requirements Testbed (CART) Program within the Air Force Research Laboratory / Human Effectiveness Directorate. CART will demonstrate how human-in-the-loop and constructive operator models and data can be integrated with Simulation-Based Acquisition activities for the purpose of defining crew-station requirements. Utilizing the Army's IMPRINT human-performance modeling environment, CART will provide High Level Architecture (HLA) interfaces that enable human performance models to interact with constructive models of systems. A second extension will incorporate the ability to represent the goal-oriented nature of human performance. Modelers and analysts will be able to define operator goal states and priorities that dynamically drive task network models based on changing states and events in simulated military environments GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential 33. Mitchell, Diane Kuhl Mental Workload and Workload Modeling Tools. Army Research Laboratory, Aberdeen Proving Ground, MD 21005-5425. ARL-TN-161 April 2000. Available from the world wide web: http://www.arl.army.mil/ARLDirectorates/HRED/imb/imprint/ARL-TN-161.pdf . The author of this report provides an overview of mental workload theory and mental workload measurement. She also describes the development, application, and validation of the mental workload modeling tools developed by the Human Research and Engineering Directorate of the U.S. Army Research Laboratory (ARL). These ARL tools, VACP (visual, auditory, cognitive, psychomotor) option in the improved performance research integration tool (IMPRINT) and WinCrew, can help the designers of military systems to assess the mental workload associated with different configurations of soldiers and equipment involved in the performance of a mission. System designers can conduct this assessment in the concept development phase of system design and reduce the need to build costly system mock-ups. 34. Improved Performance Research Integration Tool (IMPRINT), User’s Guide, Version 7. US Army Research Laboratory, Human Research and Engineering Directorate. October 2003. The Improved Performance Research Integration Tool (IMPRINT) was developed for the Army Research Laboratory (ARL) Human Research and Engineering Directorate (HRED). IMPRINT is government-owned and consists of a set of automated aids to assist analysts in conducting human performance analyses. IMPRINT provides the means for estimating manpower, personnel, and training (MPT) requirements and constraints for new weapon systems very early in the acquisition process. 35. Object Management Group. Policies and Procedures of the OMG Technical Process. Version 2.3. 1 May 2003Available from the world wide web: http://www.omg.org/docs/pp/04-05-01.doc This document outlines the policies and procedures used by the Architecture Board and Technology Committees (collectively the "Technical Plenaries") of the Object Management Group, Inc. These policies and procedures may change by vote of those groups as their needs and purposes change (see Section 6). 36. Object Management Group. The OMG Hitchhiker's Guide. A Handbook for the OMG Technology Adoption Process. Version 6.0. Available from the world wide web: http://www.omg.org/docs/omg/01-08-01.doc . This document is a handbook that serves as an aid to navigating through and complying with the OMG technology adoption process. While the guide was written with those responsible for shepherding the process in mind, it will serve as a useful interpretive tool for anyone wishing to understand the process better. 37. Selic, Bran. Unified Modeling Language version 2.0. Rational developerWorks. Available from the world wide web: http://www128.ibm.com/developerworks//rational/library/05/321_uml/ So-called "model-driven" development (MDD) methods, which are based on higher levels of abstraction and greater use of automation compared to traditional methods, have already demonstrated their potential for radical improvements in the quality of software and the productivity of development. Since the role of modeling languages is crucial to the success of MDD, a major revision of the industry-standard Unified Modeling Language (UML) was recently completed. While several important new modeling capabilities were added -- such as the ability to more accurately capture software architectures -- the dominant characteristic of this revision is the heightened precision of the language definition that enables greater GSC Associates Proprietary and Confidential GSC Associates Proprietary and Confidential levels of automation. This article explains how this was achieved and also describes other highlights of UML 2.0. 38. Sparx Systems. Creswick, Victoria, Australia. UML Tutorial - Part 1. Available from the world wide web: http://www.sparxsystems.com.au/UML_Tutorial.htm . The Unified Modeling Language has quickly become the de-facto standard for building Object-Oriented software. This short tutorial provides a very high level introduction to UML, and suggests some further reading. 39. Sparx Systems. Creswick, Victoria, Australia. UML 2.0 Tutorial. Available from the world wide web: http://sparxsystems.com.au/UML2_tutorial/UML2_Tutorial_Intro.htm. UML 2 semantics are explained in detail in this UML 2.0 tutorial which expands on the UML Tutorial - Part 1 which is based upon UML 1.x. It is recommended that newcomers to UML read UML Tutorial - Part 1 to familiarize themselves with the basic UML concepts and models before reading the UML 2.0 tutorial. The UML 2.0 tutorial details all 13 of the UML diagram types supported by the Enterprise Architect of Sparx Systems. 40. Mitre Corporation, A Survey of Cognitive Engineering Methods and Uses. Available from the world wide web: http://mentalmodels.mitre.org/cog_eng/index.htm 41. Balarin, F., Chiodo, M., P. Giusto, Hsieh, H., Jureeska, A., Lavagno, L., Passerone, C., Sangiovanni-Vincentelli, A., Sentovich, E., Suzuki, K., and Tabbara, B. HardwareSoftware Co-Design of Embedded Systems: The POLIS Approach, Kluwer, 1997. This book is the seminal one on hardware-software co-design approaches. Originating from a 1988 meeting at Magneti Marelli, a major European producer of automotive electronic subsystems, the POLIS project headed by Balarin (Cadence Berkeley Labs; Berkeley, CA), developed into a research methodology and supporting software for solving complex design challenges. Along with colleagues from Italy and Japan, the Berkeley scientists discuss the importance and design of embedded systems, models and representations, synthesis, interface synthesis and the real-time operating system, verification, interfacing to external hardware and software, design examples, the syntax of SHIFT, and future directions. A glossary is included. What POLES stands for remains a mystery. GSC Associates Proprietary and Confidential