Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. 2010 CRC PhD Student Conference Model Driven Architecture of Large Distributed Hard Real Time Systems Michael A Giddings Supervisors Dr Pat Allen Dr Adrian Jackson Dr Jan Jürjens, Dr Blaine Price Department/Institute Department of Computing Status Part-time Probation viva Before Starting date 1 October 2008 1. Background Distributed Real-time Process Control Systems are notoriously difficult to develop. The problems are compounded where there are multiple customers and the design responsibility is split up between different companies based in different countries. The customers are typically users rather than developers and the domain expertise resides within organisations whose domain experts have little software expertise. Two types of Distributed real-time Process Control Systems are open loop systems and closed loop systems (with and without feedback). Typical examples are used for the display of sensor data and control of actuators based on sensor data. Typically systems contain a mixture of periodic and event driven processing with states changing much more slowly than individual periodic processing steps. In addition to the functional requirements, non functional requirements are also needed to describe the desired operation of the software system. A number of these requirements may be grouped together as performance requirements. Performance requirements are varied and depend on the particular system to which they refer. In early systems performance was managed late in the development process on a ‘fix it later’ basis. (Smith 1990). As software systems became more sophisticated it became necessary to manage performance issues as early as possible to avoid the cost impact of late detected performance failures. 2. The Problem The need for modelling performance for the early detection of performance failures is well established. (Smith 1990). Recent surveys have shown that the adoption of the Unified Modelling Language (UML) in software systems development remains low at 16% with no expected upturn. The use of trial and error methods in embedded system development remains at 25%. (Sanchez and Acitores 2009). Page 26 of 125
  2. 2. 2010 CRC PhD Student Conference A number of summary papers exist that list the performance assessment methods and tools. (Smith 2007), (Balsamo, Di Marco et al. 2004), (Koziolek 2009) and (Woodside, Franks et al. 2007). These identify performance assessment methods suitable for event driven systems, client/server systems, layered queuing networks and systems with shared resources. Fifteen performance approaches identified to combat the ‘fix-it-later’ approach have been summarised. (Balsamo, Di Marco et al. 2004). These methods apply to a broad range of software systems and performance requirements. In particular they cover shared resources (Hermanns, Herzog et al. 2002), client/servers (Huhn, Markl et al. 2009) and event driven systems (Staines 2006) (Distefano, Scarpa et al. 2010) and mainly focus on business systems. Each of these performance methods can contribute to the performance analysis of Distributed Real-time Process Control Systems but rely on system architecture and software design being wholly or partly complete. 3. Proposed Solution In this paper I propose modelling individual system elements, sensors, actuators, displays and communication systems as periodic processes associated with a statistical description of the errors and delays. Existing performance methods based on MARTE (OMG 2009) using the techniques described above can be used for individual elements to calculate performance. The proposed methodology, however, enables models to be developed early for systems which comprise individual processing elements, sensors, actuators, displays and controls linked by a bus structure prior to the development of UML models. System architects establish the components and component communications early in the system lifecycle. Tools based on SysML 1.1 (OMG 2008) provide a method of specifying the system architecture. These design decisions frequently occur prior to any detailed performance assessment. Early performance predictions enable performance requirements to be established for individual system elements with a greater confidence than the previous ‘fix-it-later’ approach. (Eeles 2009). It has been claimed (Lu, Halang et al. 2005; Woodside, Franks et al. 2007) that Model Driven Architecture (MDA) (OMG 2003) is able to aid in assessing performance. A periodic processing architecture may enable early assessment of performance by permitting loosely coupled functional elements to be used as building blocks of a system. A high level of abstraction and automatic translation between models can be achieved using functional elements. Platform independent models for the individual components of the system mixed with scheduling information for each component may enable the impact of functional changes and real performance to be assessed early in the development process. Models for individual elements can be combined taking into account that the iteration schedules for each element are not synchronised with each other. These models can be animated or performance calculated with established mathematical methods (Sinha 1994). One way that MDA may be used to provide early performance assessment is to develop a functional model similar to CoRE (Mullery 1979) alongside the UML (OMG 2003) models in the MDA Platform Independent Model. The functional model Page 27 of 125
  3. 3. 2010 CRC PhD Student Conference can then be developed by domain experts without any knowledge of software techniques. For central system computers it can also be used to identify classes and methods in the MDA Platform Independent Model by a simple semi-automatic process similar to the traditional noun and verb annunciation methods. It can be used to identify simple functional elements which can be implemented as part of a periodic iteration architecture. Animation of these functional elements at the requirements stage may be undertaken in a way which will reflect the actual performance of the computer. Non periodic processing elements, bus systems, sensors, actuators, displays and controls can be represented by abstractions based on an iteration schedule. This model can be used to specify the requirements for individual elements Connections between the independent functional elements which represent the notional data flow across a periodic system can be used to establish functional chains which can identify all the functional elements that relate to each specific end event. Each functional chain can then be analysed into a collection of simple sub-chains. Not all of which will have the same performance requirements when combined to meet the overall performance requirement. When each of the sub-chains has been allocated its own performance criteria individual functional elements can be appropriately scheduled within a scheduling plan with each element only being scheduled to run sufficiently frequently to meet the highest requirement of each sub-chain. This leads to a more efficient use of processing capacity than conventional periodic systems. This provides three opportunities to animate the overall system which should produce similar results. The first opportunity is to schedule algorithms defined within the definition of each functional element in the functional model associated with the MDA Platform Independent Model. The second opportunity is to animate the object oriented equivalent of the functional chain in the UML models in the MDA Platform Independent Model (PIM) for the central processing elements. These would combine sequence diagrams which represent the functional model functional elements and objects and attributes of objects to represent the notional data flow. These would be combined with the functional chains for the remaining system elements. The third opportunity is to replace the functional chains generated from the Platform PIM with implemented functional elements from the MDA Platform Specific Models PSMs. Each animation would use standard iteration architectures to execute each functional element in the right order at the correct moment in accordance with regular predictable scheduling tables. The iteration parameters can be generated in a form which can be applied to each animation opportunity and final implementation without modification. Functional chains can be extracted from the functional model and animated independently enabling full end to end models to be animated using modest computing resources. Page 28 of 125
  4. 4. 2010 CRC PhD Student Conference 4. Conclusion The proposed methodology enables performance to be animated or calculated early in the design process generating models automatically focused on sections of the system which relate to individual performance end events prior to architectural and software structures being finalised. 5. References Balsamo, S., A. Di Marco, et al. (2004). "Model-based performance prediction in software development: a survey." Software Engineering, IEEE Transactions on 30(5): 295-310. Distefano, S., M. Scarpa, et al. (2010). "From UML to Petri Nets: the PCM-Based Methodology." Software Engineering, IEEE Transactions on PP(99): 1-1. Eeles, P. C., Peter (2009). The process of Software Architecting, Addison Wesley Professional. Hermanns, H., U. Herzog, et al. (2002). "Process algebra for performance evaluation." Theoretical Computer Science 274(1-2): 43-87. Huhn, O., C. Markl, et al. (2009). "On the predictive performance of queueing network models for large-scale distributed transaction processing systems." Information Technology & Management 10(2/3): 135-149. Koziolek, H. (2009). "Performance evaluation of component-based software systems: A survey." Performance Evaluation In Press, Corrected Proof. Lu, S., W. A. Halang, et al. (2005). A component-based UML profile to model embedded real-time systems designed by the MDA approach. Embedded and Real-Time Computing Systems and Applications, 2005. Proceedings. 11th IEEE International Conference on. Mullery, G. P. (1979). CORE - a method for controlled requirement specification. Proceedings of the 4th international conference on Software engineering. Munich, Germany, IEEE Press. OMG. (2003). "MDA Guide Version 1.0.1 OMG/2003-06-01." from <>. OMG. (2003). "UML 1.X and 2.x Object Management Group." from OMG (2008). OMG Systems Modelling Language (SysML) 1.1. OMG (2009). "OMG Profile ‘UML Profile for MARTE’ 1.0." Sanchez, J. L. F. and G. M. Acitores (2009). Modelling and evaluating real-time software architectures. Reliable Software Technologies - Ada-Europe 2009. 14th Ada-Europe International Conference on Reliable Software Technologies, Brest, France, Springer Verlag. Sinha, N. K., Ed. (1994). Control Systems, New Age International. Smith, C. (1990). Perfomance Engineering of software systems, Addison Wesley. Smith, C. (2007). Introduction to Software Performance Engineering: Origins and Outstanding Problems. Formal Methods for Performance Evaluation: 395-428. Staines, T. S. (2006). Using a timed Petri net (TPN) to model a bank ATM. Engineering of Computer Based Systems, 2006. ECBS 2006. 13th Annual IEEE International Symposium and Workshop on. Woodside, M., G. Franks, et al. (2007). The Future of Software Performance Engineering. Future of Software Engineering, 2007. FOSE '07, Minneapolis, MN Page 29 of 125