2010 CRC PhD Student Conference



                 Model Driven Architecture of Large
                 Distributed Hard Real Time Systems

                              Michael A Giddings
                             mag2@tutor.open.ac.uk

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
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
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
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
       <http://www.omg.org/docs/omg/03-06-01.pdf>.
OMG. (2003). "UML 1.X and 2.x Object Management Group." from www.uml.org.
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

More Related Content

PDF
Application Of UML In Real-Time Embedded Systems
PPT
PDF
Transformation of simulink models to iec 61499 function blocks for verificati...
PDF
SOFTWARE DESIGN ANALYSIS WITH DYNAMIC SYSTEM RUN-TIME ARCHITECTURE DECOMPOSITION
PPTX
Implementation issues software engineering
PPTX
Fundamental design concepts
PPT
System Models in Software Engineering SE7
PPTX
Ch5- Software Engineering 9
Application Of UML In Real-Time Embedded Systems
Transformation of simulink models to iec 61499 function blocks for verificati...
SOFTWARE DESIGN ANALYSIS WITH DYNAMIC SYSTEM RUN-TIME ARCHITECTURE DECOMPOSITION
Implementation issues software engineering
Fundamental design concepts
System Models in Software Engineering SE7
Ch5- Software Engineering 9

What's hot (20)

PDF
Advance Systems Engineering Topics
PPTX
System Modelling
PDF
Unit 5- Architectural Design in software engineering
PPT
PDF
Development of a Suitable Load Balancing Strategy In Case Of a Cloud Computi...
PDF
Architectural Design Report G4
PDF
Complex Measurement Systems in Medicine: from Synchronized Monotask Measuring...
PPT
PPT
PPT
Fundamentals of Software Engineering
PPTX
Architectural styles and patterns
PPTX
Ch10-Software Engineering 9
PPTX
Ch6-Software Engineering 9
PDF
114 425-433
PDF
Se lec5
PPTX
Design concept -Software Engineering
PDF
Object oriented analysis and design unit- v
PDF
PDF
SIMPLIFIED CBA CONCEPT AND EXPRESS CHOICE METHOD FOR INTEGRATED NETWORK MANAG...
PPT
SE - System Models
Advance Systems Engineering Topics
System Modelling
Unit 5- Architectural Design in software engineering
Development of a Suitable Load Balancing Strategy In Case Of a Cloud Computi...
Architectural Design Report G4
Complex Measurement Systems in Medicine: from Synchronized Monotask Measuring...
Fundamentals of Software Engineering
Architectural styles and patterns
Ch10-Software Engineering 9
Ch6-Software Engineering 9
114 425-433
Se lec5
Design concept -Software Engineering
Object oriented analysis and design unit- v
SIMPLIFIED CBA CONCEPT AND EXPRESS CHOICE METHOD FOR INTEGRATED NETWORK MANAG...
SE - System Models
Ad

Similar to Giddings (20)

PDF
Generation and Optimization of Test cases for Object-Oriented Software Using ...
PDF
Enterprise performance engineering solutions
PDF
General Methodology for developing UML models from UI
PDF
General Methodology for developing UML models from UI
PDF
General Methodology for developing UML models from UI
PDF
General Methodology for developing UML models from UI
PDF
General Methodology for developing UML models from UI
PPT
Chapter 7 Basic Building of SE Architecture.ppt
PPTX
PresentationTest
PPT
Simulation
DOC
Management Information system
PPTX
Oo methodology
PDF
M azhar
DOCX
PDF
Inversion of Control
PDF
Minimal Testcase Generation for Object-Oriented Software with State Charts
PPT
Discrete and other examples with great intrest
PDF
Handwritten Text Recognition Using Machine Learning
PDF
International Journal of Computer Science and Security Volume (1) Issue (1)
PDF
Availability Assessment of Software Systems Architecture Using Formal Models
Generation and Optimization of Test cases for Object-Oriented Software Using ...
Enterprise performance engineering solutions
General Methodology for developing UML models from UI
General Methodology for developing UML models from UI
General Methodology for developing UML models from UI
General Methodology for developing UML models from UI
General Methodology for developing UML models from UI
Chapter 7 Basic Building of SE Architecture.ppt
PresentationTest
Simulation
Management Information system
Oo methodology
M azhar
Inversion of Control
Minimal Testcase Generation for Object-Oriented Software with State Charts
Discrete and other examples with great intrest
Handwritten Text Recognition Using Machine Learning
International Journal of Computer Science and Security Volume (1) Issue (1)
Availability Assessment of Software Systems Architecture Using Formal Models
Ad

More from anesah (20)

PDF
Aizatulin slides-4-3
PDF
Aizatulin poster
DOC
Abraham
PDF
Mouawad
PDF
Pantidi
PDF
Wilkie
PDF
Van der merwe
PDF
Thomas
PDF
Taubenberger
PDF
Sach
PDF
Rae
PDF
Pantidi
PDF
Corneli
PDF
Collins
PDF
Xambo
PDF
Ullmann
PDF
Tran
PDF
Quinto
PDF
Pluss
PDF
Pawlik
Aizatulin slides-4-3
Aizatulin poster
Abraham
Mouawad
Pantidi
Wilkie
Van der merwe
Thomas
Taubenberger
Sach
Rae
Pantidi
Corneli
Collins
Xambo
Ullmann
Tran
Quinto
Pluss
Pawlik

Recently uploaded (20)

PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
August Patch Tuesday
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
CloudStack 4.21: First Look Webinar slides
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
DOCX
search engine optimization ppt fir known well about this
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Architecture types and enterprise applications.pdf
PPT
What is a Computer? Input Devices /output devices
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Getting started with AI Agents and Multi-Agent Systems
Enhancing emotion recognition model for a student engagement use case through...
August Patch Tuesday
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
A review of recent deep learning applications in wood surface defect identifi...
NewMind AI Weekly Chronicles – August ’25 Week III
A novel scalable deep ensemble learning framework for big data classification...
WOOl fibre morphology and structure.pdf for textiles
observCloud-Native Containerability and monitoring.pptx
CloudStack 4.21: First Look Webinar slides
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
search engine optimization ppt fir known well about this
Hindi spoken digit analysis for native and non-native speakers
O2C Customer Invoices to Receipt V15A.pptx
A comparative study of natural language inference in Swahili using monolingua...
Architecture types and enterprise applications.pdf
What is a Computer? Input Devices /output devices
Final SEM Unit 1 for mit wpu at pune .pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Developing a website for English-speaking practice to English as a foreign la...
Getting started with AI Agents and Multi-Agent Systems

Giddings

  • 1. 2010 CRC PhD Student Conference Model Driven Architecture of Large Distributed Hard Real Time Systems Michael A Giddings mag2@tutor.open.ac.uk 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. 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. 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. 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 <http://www.omg.org/docs/omg/03-06-01.pdf>. OMG. (2003). "UML 1.X and 2.x Object Management Group." from www.uml.org. 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