PPOOA CASE tool and Computerized Tutor

Commercial CASE tools already support UML notation and offer general functionality that is expected of visual languages. Visual elements can be created and deleted; manipulated; connected; copied and pasted; and saved and loaded.

Developers are already familiar with commercial CASE tools. Thus a particular software development method as PPOOA can be crafted on the top of the existing general functionality of a commercial visual CASE tool.


We illustrate the approach with the implementation of PPOOA on the top of Microsoft Visio, considering the extension mechanisms of the tool, and the PPOOA metamodel previously created as an extension of UML metamodel [publications]. The PPOOA profile is compatible with UML and improves its use in real-time architectures. The UML stereotypes are extended with the elements of the style (periodic and aperiodic processes, controller object, and coordination mechanisms). UML Activity diagrams are also adapted for PPOOA requirements, specifically modeling resources and considering scheduling points.


We decided to choose Microsoft Visio because it is highly customizable and offers a robust user interface to build upon . Furthermore, it has a large user base and is commonly found in industry. Visio can be easily customized for different domains as nicely illustrated by the applications that Visio already offers:UML and other software methods diagrams, network architectures diagrams, ER diagrams to model databases, electrical engineering diagrams, pipes and instruments diagrams for industrial processes etc.


A Visio customized application such as PPOOA, offers

  • customized stencils that contain the visual elements of PPOOA,
  • additional toolbars, accelerators and menus,
  • additional menu entries in a visual element’s context menu,
  • real-time properties for PPOOA visual elements,
  • windows that contain hierarchical views (“drawing explorer window”),
  • PPOOA specific error messages (violation of PPOOA building rules),
  • and PPOOA help features as an extension to the Visio help systems.


The Visio object model represents the objects, properties, methods and events that the Visio engine exposes through automation. Most objects in the model correspond to items, the user can see and select in the Visio user interface. Typical objects in the Visio model are:  application/global object, document object, page object, master object, selection object, shape object and window object. For example, a shape object can represent anything on a Visio drawing page that the user can select with a pointer or an object from another application that is linked, embedded, or imported into a Visio drawing.


PPOOA-Visio has the following capabilities :


·      PPOOA Navigator (Figure 1). This window contains the references to architecture diagrams and dynamic views (CFAs) of the developed system, and the instances of the PPOOA building elements used in this particular software architecture.

·      Handling Visio events. In Visio, events can result from user actions such as opening or closing documents, dropping or deleting shapes on the drawing page, editing the text of shapes and altering shape attributes.

·         Implementing PPOOA document structure. That is, pages representing architecture diagrams, and pages representing the dynamic view or responses model represented by the CFAs.































Figure 1. PPOOA Navigator





Figure 2. PPOOA-Visio Architectural Diagramm for a SCADA subsystem




An example of a PPOOA-Visio window is shown in the figure 2 below . It represents the architecture diagram for the” raw_data_processing” subsystem architected using PPOOA-UML building elements. For PPOOA we could  reuse several shapes (masters in Visio terminology) that were already part of Visio UML template. Other shapes as coordination mechanisms (semaphore, bounded buffer, transporter and rendezvous) are specific of PPOOA building elements. In the  subsystem architecture diagram, components and coordination mechanisms (buffers and transporters) are independently tagged, and their attributes defined and stored in the tool database.























The PPOOA dynamic view supports the "Causal Flow of Activities" representation.  A CFA represents a system internal view of the activities performed by one system response to an event. The building elements of a CFA are: Triggering event, activity(ies) and continuation elements. These elements are stored in the tool database and viewed in the PPOOA navigator.
An important feature of the PPOOA tool is the allocation of CFA activities to the components of the architecture making easy the architecting of the system.
For PPOOA dynamic view, we  use  the UML activity diagram notation extended to implement CFA building elements and PPOOA constraints. Figure 3  is an example describing the response that models the activities of the “processing of raw data” to convert it to engineering units and check its alarm condition. Different instances of the components represented in the architecture diagram can participate in the CFA. In a complex and large system we need several CFAs to model the complete system behavior.

























Figure 3. Causal Flow of Activities for modelling the Raw Data Processing Response


 Other important PPOOA Visio tool feature is the automatic generation of the  System Architecture documentation.  

  • Description of each building element (component and coordination mechanism)of the system architecture, its domain attributes, interface and real time  attributes   
  • Description of each system response (CFAs or dynamic view) containing the CFA´s triggering event and the CFA´s activities
  • The Documentation is generated in HTML format (easy to convert to Microsoft Word and Adobe Acrobat pdf)

PPOOA Computerized Tutor For Architecting Software (PPOOA_ATA)

Knowledge based systems and particularly intelligent agents provide the technology to implement user-oriented CASE tools where an intelligent agent implemented as a tool module, guides the software architect through the architecting process, suggesting him the actions to be performed and the methodology rules that apply to the current problem context.

The PPOOA_ATA agent presents a main screen, shown in the demo, which is part of the PPOOA _ATA computerized tutor and provides outputs relative to the architecting process, next goals, help issues and methodology guidelines to apply in a particular situation of the PPOOA architecting process. This main screen acts as a real-time library reference tuned to the exact step of the architecting process at which the software architect is working in his/her current software development project.

The main screen shown in the demo describes the current step, goals and substep of the architecting process for a particular situation in the project. In this situation the computerized tutor recommends the software architect to begin with a particular step of the PPOOA architecting process.  The buttons  give the software architect the opportunity to know the help issues and guidelines applicable to this situation

  • Demo in English (only video) showing the interoperability between PPOOA CASE tool and ATA (ppooa_ata_e.zip)
  • Demo in Spanish (only video) showing the interoperability between PPOOA CASE tool and ATA (ppooa_ata_es.zip)