Running Head: Lab 2 – ICAT Prototype Product Specification Lab 2 – ICAT Prototype Product Specification Team Red Chris Dashiell CS 411 W Professors J. Brunelle and G. H. Price April 14, 2014 Version 2 1 Lab 2 – ICAT Prototype Product Specification 2 Table of Contents 1. INTRODUCTION .................................................................................................................................. 3 1.1 Purpose ......................................................................................................................................... 4 1.2 Scope ............................................................................................................................................. 5 1.3 Definitions, Acronyms, And Abbreviations ................................................................................. 5 1.4 References .................................................................................................................................... 6 1.5 Overview ....................................................................................................................................... 7 2. GENERAL DESCRIPTION .................................................................................................................. 8 2.1 Prototype Architecture Description .................................................................................................. 8 2.2 Prototype Functional Description .................................................................................................... 10 2.3 External Interfaces ........................................................................................................................... 10 List of Figures Figure 1: Major Functional Component Diagram (MFCD) For ICAT ......................................................... 8 Lab 2 – ICAT Prototype Product Specification 3 1. INTRODUCTION Every organization has successes and failures to the problems it tries to solve. Often, a solution is provided but it turns out that the organization solved the wrong problem because it is more complex than originally thought. This is considered to be a Type III error. While originally defined in the field of statistics, by Mitroff and Featheringham, as “the error ... of having solved the wrong problem ... when one should have solved the right problem,” it has since been applied in other applications. Committing a Type III error can cause a significant amount of damage, because the true problem has not been solved and a significant amount of time and/or resources might have been wasted. Type III errors have been a contributor to more than 80% of project failures within organizations. Albert Einstein once said, “If I were given one hour to save the planet, I would spend fifty-nine minutes defining the problem and one minute resolving it.” It is common for organizations to do the exact opposite, spending the majority of the time working on a solution to a problem and little time on defining the problem. Systems engineering is a field that focuses on analyzing large projects in order to ensure they will be successful. Problem domain analysis is one of the tools used within systems engineering and can help organizations prevent Type III error. One reason problem domain analysis is only done on very large projects is that it can be a complex and time consuming process. This process can be shortened and simplified with the right software tools. Interactive Context Analysis Tool (ICAT) is a software tool intended to be used by systems engineers for problem domain analysis. With ICAT, a system engineer can create a visual model of a problem domain. The engineer can then use algorithms provided by ICAT for analysis to gain a greater understanding of the problem’s characteristics. It is possible to change Lab 2 – ICAT Prototype Product Specification 4 aspects of the model in order to see how the problem domain is affected. This visual tool can quicken the process and help eliminate some of the complexities of problem domain analysis which will reduce the risk of type III error. 1.1 Purpose Using ICAT, an engineer can create a visual model by using a set of diagramming tools that can be used to create entities. These entities are then assigned a type which is represented on visual model as different shapes. The user can then connect those entities together with forces which are represented by directional lines connecting the two entities together. The result is a directed graph with a viewport that can be zoomed in and out and panned to focus on certain sections of the model. After a model has been created, ICAT can be used to run a set of analytical algorithms to provide a better understanding of the problem domain. Examples of two algorithms that are provided are influence and prominence. Influence, also known as out-degree centrality, is a measure of the effect one entity has on all others in system. Prominence, also known as in-degree centrality, is a measure of effect that other entities have on one specific entity. Using these analytics, systems engineers can explore the impact of changing relationships. They do this by adding, deleting, or modifying both entities and forces to figure how the analytics will be changed. The goal of ICAT is to reduce the risk of type III errors by reducing the complexity and the amount of time spent on problem domain analysis. It is possible to use already existing, but general purpose, diagramming applications to create a visual model but they do not provide the analytical algorithms that ICAT provides. Also, because ICAT is a domain specific program created for problem domain analysis, the interface is more powerful and simpler. Lab 2 – ICAT Prototype Product Specification 1.2 Scope The ICAT prototype will primarily focus on providing a graphical interface that allows a systems engineer to accurately model a problem domain. This is the most important feature for the prototype because the analysis algorithms cannot be used without creating a model first. Although the analysis functionality of ICAT will not be the primary focus, two important algorithms, influence and prominence, will be implemented that can be used to evaluate the model of the problem domain. This capability of a key feature is what differentiates ICAT from other diagram software. The analysis engine will be implemented in a library that makes it easy to add more algorithms after the prototype is completed. It will also be possible to save and load models to the file system. However, convenience features such as tools for easier collaboration between multiple people on the same project and multiple export formats will not be implemented in the prototype. Overall, the ICAT prototype will be a close approximation of the final product and will demonstrate the viability of ICAT as a useful tool in problem domain analysis. 1.3 Definitions, Acronyms, And Abbreviations Attribute: an entity that represents some quality that exhibits an effect on other entities Entity: objects within the data model; types include: problem, stakeholder, objective, attribute resource Force: constraining or enabling forces that show influence between entities Influence: A measure of the effect that one entity has on others in the system; also known as out-centrality Metadata: Data associated with entities or forces Objective: An entity that represents a goal or target of the real world project 5 Lab 2 – ICAT Prototype Product Specification 6 Problem: An entity that represents the issue or conflict that the solution is designed to address Project: the collection of metadata and associated diagram created by the user Prominence: A measure of the effect that other entities in a system have on a specific entity; also known as in-centrality Resource: An entity that represents a required good or service Stakeholder: An individual or group affected in some way by the undertaking (Stevens Institute of Technology, 2008) Systems Approach: The application of a systematic disciplined engineering approach that considers the system as a whole, its impact on its environment and continues throughout the lifecycle of a project (Stevens Institute of Technology, 2008) Systems Engineering: The orderly process of bringing a system into being using a systems approach (Stevens Institute of Technology, 2008) Type III Error: The type of error described as “giving the right answer to the wrong problem” (Kimball, 1957) Workspace: The area within ICAT in which the user edits or views the project 1.4 References Kimball, A. (1957). Errors of the third kind in statistical consulting. Journal of the American Statistical Association, 52(278), 133–142. Robert Bea, Ian Mitroff, Daniel Farber, Howard Foster, Karlene Roberts. "A new approach to risk: The implications of E3." Risk Management 11.1 (2009): 30-43. http://ccrm.berkeley.edu/resin/pdfs_and_other_docs/bea_etal_RiskManagementArticlefin al.pdf. Lab 2 – ICAT Prototype Product Specification Stevens Institute of Technology. (2008). Core Concepts of Systems Engineering: Glossary. Retrieved from The Center for Innovation in Engineering and Science Education: http://www.ciese.org/curriculum/seproject/glossary.html Yadav, S. B., & Korukonda, A. (1985). Management of Type III Error in Problem Identification. Interfaces, 15(4), 55-61 1.5 Overview This product specification provides the hardware and software configuration, external interfaces, capabilities and features of the ICAT prototype. The information provided in the remaining sections of this document includes a detailed description of the hardware, software, and external interface architecture of the ICAT prototype; the key features of the prototype; the parameters that will be used to control, manage, or establish that feature; and the performance characteristics of that feature in terms of outputs, displays, and user interaction. (This space left intentionally blank.) 7 Lab 2 – ICAT Prototype Product Specification 8 2. GENERAL DESCRIPTION The ICAT prototype architecture and features will be focused on providing graphical interface that can be used to create a usable model of the problem domain. This includes creating a suitable data structure for both the visual view of the model as a diagram but also one that analysis algorithms are able to operate on. Only after sufficient capability to create a model can the analysis algorithms start to be implemented. Saving and loading files will also be a requirement for the prototype. 2.1 Prototype Architecture Description The ICAT prototype is a Java desktop application which can be run on Windows, Linux, and the Mac operating systems and requires no connection to the internet. The prototype can be broken into five major software components as shown inside the blue box of Figure 1. The testing dashboard is a component that has been added to the prototype to ensure the implementation of ICAT is correct. Figure 1: Major Functional Component Diagram (MFCD) For ICAT Lab 2 – ICAT Prototype Product Specification 9 The data model defines how all data for an ICAT project is stored both in memory and on disk. The underlying structure of an ICAT model of the problem domain can be represented as a weighted, directed graph structure with a set of vertices and a set of edges. Each vertex represents an entity and each edge represents a force. A project can be saved to the disk as a single file, using a defined XML format that contains all the entities, forces, and metadata about the model such as the name and rationale. The graphical interface handles all of the interaction with the user. The graphical interface displays the model to the user. It also provides a set of tools for modifying the model such as adding, editing, and deleting both entities and forces. The model will be updated in real time as the user makes changes to it. The user can zoom in or out on the graph and also pan the view. The graphical interface provides a method of generating analysis reports and displaying them to the user. Finally, it also provides the user with the ability to save and load projects. The controller handles the modification of information in the data model. When a user adds a new entity using the GUI, it is the controller that provides this service for the user and then updates the GUI with the new values to be displayed to the user. The controller also interfaces with the analysis engine and feeds the GUI data from it when a report is requested. The final major component of the ICAT prototype is the analytics engine. It consists of the implementation of the algorithms that the user can use for analysis on the model. For the prototype, these are only the influence and prominence algorithms. When more analysis algorithms are implemented, they will be included as a part of this component. (This space left intentionally blank.) Lab 2 – ICAT Prototype Product Specification 10 2.2 Prototype Functional Description When ICAT is first started, the user will be presented with the dashboard window. From the dashboard, the user can view a list of recent projects that have been saved along with an accompanying thumbnail of what the model of the project looks like. It is also possible to search by name for a specific project and start a new project from this screen. Once a project is loaded, or a new project is created, the workspace window is presented to the user. The workspace window contains a diagram with an interactive display of the problem domain. The user can then add new entities and forces to the canvas. By selecting an entity or force that already exists on the diagram, it is possible to modify the data associated with them. It is possible to give each entity a name that is both displayed on the diagram and also can be used in a search box. Because a problem domain can have a large number of entities and forces, it is possible to zoom in or out of the diagram as well as pan the viewport. After the model of the problem domain is complete, a user can use the analytics to generate a report. From the workspace, it is possible to save the project as a XML file and export it as a CSV file. The user can also print the diagram and save it as a PDF file. 2.3 External Interfaces The ICAT prototype is a desktop application that can be used with common PC hardware and is run on Windows, Linux, and the Mac operating systems. Because ICAT is a Java application, a Java virtual machine is required to be installed. The following sections list the hardware, software, user, and communication interfaces of the ICAT prototype. (This space left intentionally blank.) Lab 2 – ICAT Prototype Product Specification 11 2.3.1 Hardware Interfaces ICAT does not interface with any special hardware. It is designed for the use of a keyboard and mouse for input and a screen for visual output. It is also possible to print out images of the diagram. 2.3.2 Software Interfaces ICAT will not interface with other applications such as a database but will use many free and open source libraries in the implementation of its features. It uses libraries for converting the diagram from an image to the PDF file format, for saving and loading the project to an XML file format, and for the creation of the GUI. It is also likely that the prototype use a low level graphics framework or a more specialized charting layout and rendering library for the display of the diagram. 2.3.3 User Interfaces The user interface of ICAT is provided as a graphical desktop application. It is intended to be used with a normal computer monitor, a mouse, and a keyboard. It might be possible to use a touch screen but is not supported. 2.3.4 Communications Protocols and Interfaces ICAT does not use any communications protocols or interfaces.