This document summarizes recent developments in software engineering for industrial automation systems. It discusses how software is becoming increasingly important and complex in industrial automation, representing 40% of system costs in some cases. The document reviews key areas of software engineering as they relate to industrial automation, including requirements, design, construction, testing, maintenance, and standards/norms. It provides an overview of typical automation system architectures and software functions.
An Algorithm Based Simulation Modeling For Control of Production SystemsIJMER
This document describes an algorithm-based simulation approach for modeling and controlling flexible production systems. The approach models both the physical production system and the control system to evaluate their integrated performance. Key features include:
1) The approach integrates control system design into the physical simulation to evaluate their combined impact.
2) The algorithm-based design is extensible and allows modeling of different control programs and production system designs.
3) Finite automata formalism provides a mathematical foundation for logical and quantitative analysis of the system.
4) The framework facilitates robust controller models that can resolve issues like deadlocks and accommodate failures.
5) Analysts can evaluate how different control programs and production system designs impact
The document discusses requirements engineering and summarizes key topics covered in Chapter 4, including:
- Functional and non-functional requirements and how they differ
- The structure and purpose of a software requirements specification document
- Methods for specifying requirements such as using natural language, structured specifications, and tables
- Challenges in writing requirements clearly and avoiding ambiguity or mixing of requirement types
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
The document provides an introduction to software engineering concepts. It discusses what software engineering is, the importance of ethics in software development, and introduces three case studies that will be used as examples throughout the book. Specifically:
[1] It defines software engineering as an engineering discipline concerned with all aspects of software production. Professional and ethical practices are important.
[2] It discusses software engineering ethics and introduces the ACM/IEEE code of ethics for software engineers.
[3] It provides an overview of three case studies that will be referenced in later chapters: an insulin pump system, a patient management system, and a weather station system.
A review of slicing techniques in software engineeringSalam Shah
This document summarizes various techniques for program slicing that have been developed since it was first introduced in 1979. It discusses static slicing, dynamic slicing, backward slicing, forward slicing, inter-procedural slicing, and model-based slicing. It also reviews related work on slicing algorithms and techniques that have been proposed to compute slices more efficiently and effectively for software engineering tasks like debugging, testing and maintenance.
Extending open up for autonomic computing english_finalversionupload 6vpssantos
This document proposes extending the OpenUP software process to better support the development of autonomous software systems with a focus on eliciting non-functional requirements (NFRs). It introduces two new artifacts: 1) an NFR Description to document identified NFRs and resolve any conflicts or ambiguities, and 2) Misuse Cases to help uncover additional hidden NFRs. A case study on a Brazilian Emergency System is presented to illustrate applying the extended OpenUP process with the new artifacts during requirements elicitation.
This document discusses computer system validation and provides guidance on categorizing different types of software. It outlines 5 categories of software from infrastructure software to custom applications. For each category, it describes the appropriate validation approach and documentation required. The goal is to ensure computer systems are validated and controlled to provide high quality, regulated products and data management while avoiding duplication and leveraging supplier activities.
This document summarizes key topics from a lecture on security engineering:
1. It discusses security engineering and management, risk assessment, and designing systems for security. Application security focuses on design while infrastructure security is a management problem.
2. It outlines guidelines for secure system design including basing decisions on security policies, avoiding single points of failure, balancing security and usability, validating all inputs, and designing for deployment and recoverability.
3. It also covers risk management, assessing threats, and designing architectures with layered protection and distributed assets to minimize the effects of attacks.
Static analysis, reliability testing, and security testing are techniques for validating critical systems. Additional validation processes are required for critical systems due to the high costs and consequences of failure. Validation costs for critical systems are significantly higher than for non-critical systems, typically taking up more than 50% of total development costs. The outcome of the validation process is evidence that demonstrates the system's level of dependability.
An Algorithm Based Simulation Modeling For Control of Production SystemsIJMER
This document describes an algorithm-based simulation approach for modeling and controlling flexible production systems. The approach models both the physical production system and the control system to evaluate their integrated performance. Key features include:
1) The approach integrates control system design into the physical simulation to evaluate their combined impact.
2) The algorithm-based design is extensible and allows modeling of different control programs and production system designs.
3) Finite automata formalism provides a mathematical foundation for logical and quantitative analysis of the system.
4) The framework facilitates robust controller models that can resolve issues like deadlocks and accommodate failures.
5) Analysts can evaluate how different control programs and production system designs impact
The document discusses requirements engineering and summarizes key topics covered in Chapter 4, including:
- Functional and non-functional requirements and how they differ
- The structure and purpose of a software requirements specification document
- Methods for specifying requirements such as using natural language, structured specifications, and tables
- Challenges in writing requirements clearly and avoiding ambiguity or mixing of requirement types
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
The document provides an introduction to software engineering concepts. It discusses what software engineering is, the importance of ethics in software development, and introduces three case studies that will be used as examples throughout the book. Specifically:
[1] It defines software engineering as an engineering discipline concerned with all aspects of software production. Professional and ethical practices are important.
[2] It discusses software engineering ethics and introduces the ACM/IEEE code of ethics for software engineers.
[3] It provides an overview of three case studies that will be referenced in later chapters: an insulin pump system, a patient management system, and a weather station system.
A review of slicing techniques in software engineeringSalam Shah
This document summarizes various techniques for program slicing that have been developed since it was first introduced in 1979. It discusses static slicing, dynamic slicing, backward slicing, forward slicing, inter-procedural slicing, and model-based slicing. It also reviews related work on slicing algorithms and techniques that have been proposed to compute slices more efficiently and effectively for software engineering tasks like debugging, testing and maintenance.
Extending open up for autonomic computing english_finalversionupload 6vpssantos
This document proposes extending the OpenUP software process to better support the development of autonomous software systems with a focus on eliciting non-functional requirements (NFRs). It introduces two new artifacts: 1) an NFR Description to document identified NFRs and resolve any conflicts or ambiguities, and 2) Misuse Cases to help uncover additional hidden NFRs. A case study on a Brazilian Emergency System is presented to illustrate applying the extended OpenUP process with the new artifacts during requirements elicitation.
This document discusses computer system validation and provides guidance on categorizing different types of software. It outlines 5 categories of software from infrastructure software to custom applications. For each category, it describes the appropriate validation approach and documentation required. The goal is to ensure computer systems are validated and controlled to provide high quality, regulated products and data management while avoiding duplication and leveraging supplier activities.
This document summarizes key topics from a lecture on security engineering:
1. It discusses security engineering and management, risk assessment, and designing systems for security. Application security focuses on design while infrastructure security is a management problem.
2. It outlines guidelines for secure system design including basing decisions on security policies, avoiding single points of failure, balancing security and usability, validating all inputs, and designing for deployment and recoverability.
3. It also covers risk management, assessing threats, and designing architectures with layered protection and distributed assets to minimize the effects of attacks.
Static analysis, reliability testing, and security testing are techniques for validating critical systems. Additional validation processes are required for critical systems due to the high costs and consequences of failure. Validation costs for critical systems are significantly higher than for non-critical systems, typically taking up more than 50% of total development costs. The outcome of the validation process is evidence that demonstrates the system's level of dependability.
This document summarizes key points from a lecture on aspect-oriented software development:
1. Aspect-oriented development supports separating concerns by representing cross-cutting concerns as aspects. This allows individual concerns to be understood, reused, and modified without changing other parts of the program.
2. Viewpoint-oriented requirements engineering focuses on stakeholder concerns and identifies cross-cutting concerns that affect all viewpoints.
3. Designing aspect-oriented systems involves identifying core functionality, aspects, and where aspects should be composed with the core. Testing aspect-oriented programs poses challenges around program inspection and deriving tests.
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
The document discusses requirements engineering and summarizes key topics covered in Chapter 4, including:
- The importance of specifying both functional and non-functional requirements. Non-functional requirements place constraints on system functions and development process.
- The software requirements specification document defines what the system must do and includes both user and system requirements. It should not describe how the system will be implemented.
- Requirements engineering involves eliciting, analyzing, validating and managing requirements throughout the development lifecycle. Precise, complete and consistent requirements are important for development.
Ian Sommerville, Software Engineering, 9th Edition Ch2Mohammed Romi
This document summarizes key aspects of software processes and models. It discusses the basic activities involved in software development like specification, design, implementation, validation and evolution. It describes process models like waterfall, incremental development and reuse-oriented processes. The waterfall model involves sequential phases while incremental development interleaves activities. Validation includes testing stages from unit to system level. The document also covers designing for change and evolution.
This document discusses configuration management (CM) and version control. It covers topics like version management, system building, change management, and release management. CM is important for software development as it allows tracking of changing software systems and components. Version control systems are key to CM, identifying and storing different versions. They support independent development through a shared repository and private workspaces. Developers check components in and out to make changes separately without interfering with each other.
This document provides an overview of software reuse techniques discussed in Chapter 16, including:
1) Application frameworks which provide reusable skeleton designs through abstract and concrete classes;
2) Software product lines which allow generic applications to be adapted through configuration, component selection, and specialization for different requirements;
3) COTS (commercial off-the-shelf) product reuse where pre-existing software systems can be customized through deployment configuration without changing source code.
The document discusses software re-engineering which involves reorganizing and modifying existing software systems to improve maintainability. It describes the re-engineering process which includes activities like source code translation, reverse engineering, improving program structure and modularity, and re-engineering data structures. The objectives of re-engineering are to explain why it is often more cost-effective than new development and to describe the various activities involved in the re-engineering process.
The document discusses techniques for achieving dependable software systems. It covers redundancy and diversity approaches including N-version programming where multiple versions of software are developed independently. Dependable system architectures like protection systems and self-monitoring architectures that use redundancy are described. The document emphasizes that a well-defined development process is important for minimizing faults and notes validation activities should include requirements reviews, testing, and change management.
LabVIEW - Teaching Aid for Process ControlIDES Editor
Process Instrumentation deals with measurement
and control process parameters to achieve the required quality.
While teaching process related subjects, it is observed that
students are not able to understand process equipment and
controls associated with it theoretically. So to make the subjects
understandable and interesting, simulation of processes are
carried out with displays as used with distributed control
system (DCS). Simulations are used across virtually in
engineering to improve the development process and design
quality, identify design errors earlier, cut down on physical
prototypes, and reduce time to market. Here dryer, boiler
control simulations are carried out to study dynamic behavior.
Application software LabVIEW is used with control design
and data logging with supervisory (DSC) module.
an analysis and new methodology for reverse engineering of uml behavioralINFOGAIN PUBLICATION
The emergence of Unified Modeling Language (UML) as a standard for modeling systems has encouraged the use of automated software tools that facilitate the development process from analysis through coding. Reverse Engineering has become a viable method to measure an existing system and reconstruct the necessary model from its original. The Reverse Engineering of behavioral models consists in extracting high-level models that help understand the behavior of existing software systems. In this paper we present an ongoing work on extracting UML diagrams from object-oriented programming languages. we propose an approach for the reverse engineering of UML behavior from the analysis of execution traces produced dynamically by an object-oriented application using formal and semi-formal techniques for modeling the dynamic behavior of a system. Our methods show that this approach can produce UML behavioral diagrams in reasonable time and suggest that these diagrams are helpful in understanding the behavior of the underlying application.
The document summarizes topics related to real-time software engineering including embedded system design, architectural patterns for real-time software, timing analysis, and real-time operating systems. It discusses key characteristics of embedded systems like responsiveness, the need to respond to stimuli within specified time constraints, and how real-time systems are often modeled as cooperating processes controlled by a real-time executive. The document also outlines common architectural patterns for real-time systems including observe and react, environmental control, and process pipeline.
This document discusses software processes and models. It covers the following key points:
1. Software processes involve activities like specification, design, implementation, validation and evolution to develop software systems. Common process models include waterfall, incremental development and reuse-oriented development.
2. Processes need to cope with inevitable changes. This can involve prototyping to avoid rework or using incremental development and delivery to more easily accommodate changes.
3. The Rational Unified Process is a modern process model with phases for inception, elaboration, construction and transition. It advocates iterative development and managing requirements and quality.
This document provides an overview of topics covered in Chapter 7 on software design and implementation, including object-oriented design using UML, design patterns, implementation issues, and open source development. It discusses the design and implementation process, build vs buy approaches, object-oriented design processes involving system models, and key activities like defining system context, identifying objects and interfaces. Specific examples are provided for designing a wilderness weather station system.
This document describes the modeling, testing, and verification of system models which are used by
the MILS Adaptation System. Several example models are provided in this document, with one of
them developed in a step-by-step manner. Video demonstrations which accompany this document
demonstrate the use of supporting tools.
This document discusses sociotechnical systems and systems engineering. It defines sociotechnical systems as systems that include both technical systems (e.g. hardware and software) as well as operational processes and people. Sociotechnical systems have emergent properties that depend on the interactions between system components. They are also non-deterministic since human behavior introduces unpredictability. Developing sociotechnical systems requires an interdisciplinary approach involving areas like software engineering, organizational design, and human factors.
System modeling involves creating abstract models of a system from different perspectives, such as context, interactions, structure, and behavior. These models help analysts understand system functionality and communicate with customers. Context models show a system's external environment and relationships. Interaction models, such as use case and sequence diagrams, depict how users and systems interact. Structural models, like class diagrams, represent a system's internal organization. Behavioral models, including activity and state diagrams, illustrate a system's dynamic response to events or data. Model-driven engineering aims to generate implementation from system models.
Architectural design involves identifying major system components and their communications. Architectural views provide different perspectives of the system, such as conceptual, logical, process, and development views. Common architectural patterns include model-view-controller, layered, client-server, and pipe-and-filter architectures. Application architectures define common structures for transaction processing, information, and language processing systems.
IRJET- Building Management System and its Network DesignIRJET Journal
This document discusses building management systems (BMS) and their network design. It provides an overview of what a BMS is and its main components, including hardware like control units, sensors and actuators. It describes the basic functions and working of a BMS, including monitoring various building systems from one central location. The document also provides examples of BMS implementations in areas like fire detection and alarms, security/CCTV surveillance, access control and elevator management. It concludes that a well-designed BMS can intelligently reduce costs, increase security and energy efficiency in commercial buildings.
The document discusses reliability engineering and fault tolerance. It covers topics like availability, reliability requirements, fault-tolerant architectures, and reliability measurement. It defines key terms like faults, errors, and failures. It also describes techniques for achieving reliability like fault avoidance, fault detection, and fault tolerance. Specific architectures discussed include redundant systems and protection systems that can take emergency action if failures occur.
The document discusses dependability in systems. It covers topics like dependability properties, sociotechnical systems, redundancy and diversity, and dependable processes. Dependability reflects how trustworthy a system is and includes attributes like reliability, availability, and security. Dependability is important because system failures can have widespread impacts. Both hardware and software failures and human errors can cause systems to fail. Techniques like redundancy, diversity, and formal methods can help improve dependability. Regulation is also discussed as many critical systems require approval from regulators.
This document provides an overview of communications monitoring within the CITADEL framework. It discusses various monitoring methods including signature-based monitoring, white-box anomaly detection, and association rules. Signature-based monitoring specifies known malicious situations as signatures to detect. White-box anomaly detection learns a model of normal communications and flags deviations as anomalous. The document also describes how monitoring interacts with the specification and other CITADEL planes.
Here is an paper published on software PLC Checker by Itris Automation Square, in the French journal "Mesures" : "La qualité des programmes vérifiée par leurs concepteurs".
Enjoy the reading!
Find us at http://www.itris-automation.com/
Contact us at commercial@itris-automation.com for more information.
Testing and verification of software model through formal semantics a systema...eSAT Publishing House
This document summarizes research on automated testing and verification of software models through formal semantics. It discusses various approaches for transforming UML diagrams into other representations to enable verification. The most widely used technique is model-based testing using use case, class, and state diagrams. Formalizing UML diagrams with other formal languages allows verification of properties. Automating test case generation from UML models can improve efficiency and effectiveness of software testing.
This document summarizes key points from a lecture on aspect-oriented software development:
1. Aspect-oriented development supports separating concerns by representing cross-cutting concerns as aspects. This allows individual concerns to be understood, reused, and modified without changing other parts of the program.
2. Viewpoint-oriented requirements engineering focuses on stakeholder concerns and identifies cross-cutting concerns that affect all viewpoints.
3. Designing aspect-oriented systems involves identifying core functionality, aspects, and where aspects should be composed with the core. Testing aspect-oriented programs poses challenges around program inspection and deriving tests.
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
The document discusses requirements engineering and summarizes key topics covered in Chapter 4, including:
- The importance of specifying both functional and non-functional requirements. Non-functional requirements place constraints on system functions and development process.
- The software requirements specification document defines what the system must do and includes both user and system requirements. It should not describe how the system will be implemented.
- Requirements engineering involves eliciting, analyzing, validating and managing requirements throughout the development lifecycle. Precise, complete and consistent requirements are important for development.
Ian Sommerville, Software Engineering, 9th Edition Ch2Mohammed Romi
This document summarizes key aspects of software processes and models. It discusses the basic activities involved in software development like specification, design, implementation, validation and evolution. It describes process models like waterfall, incremental development and reuse-oriented processes. The waterfall model involves sequential phases while incremental development interleaves activities. Validation includes testing stages from unit to system level. The document also covers designing for change and evolution.
This document discusses configuration management (CM) and version control. It covers topics like version management, system building, change management, and release management. CM is important for software development as it allows tracking of changing software systems and components. Version control systems are key to CM, identifying and storing different versions. They support independent development through a shared repository and private workspaces. Developers check components in and out to make changes separately without interfering with each other.
This document provides an overview of software reuse techniques discussed in Chapter 16, including:
1) Application frameworks which provide reusable skeleton designs through abstract and concrete classes;
2) Software product lines which allow generic applications to be adapted through configuration, component selection, and specialization for different requirements;
3) COTS (commercial off-the-shelf) product reuse where pre-existing software systems can be customized through deployment configuration without changing source code.
The document discusses software re-engineering which involves reorganizing and modifying existing software systems to improve maintainability. It describes the re-engineering process which includes activities like source code translation, reverse engineering, improving program structure and modularity, and re-engineering data structures. The objectives of re-engineering are to explain why it is often more cost-effective than new development and to describe the various activities involved in the re-engineering process.
The document discusses techniques for achieving dependable software systems. It covers redundancy and diversity approaches including N-version programming where multiple versions of software are developed independently. Dependable system architectures like protection systems and self-monitoring architectures that use redundancy are described. The document emphasizes that a well-defined development process is important for minimizing faults and notes validation activities should include requirements reviews, testing, and change management.
LabVIEW - Teaching Aid for Process ControlIDES Editor
Process Instrumentation deals with measurement
and control process parameters to achieve the required quality.
While teaching process related subjects, it is observed that
students are not able to understand process equipment and
controls associated with it theoretically. So to make the subjects
understandable and interesting, simulation of processes are
carried out with displays as used with distributed control
system (DCS). Simulations are used across virtually in
engineering to improve the development process and design
quality, identify design errors earlier, cut down on physical
prototypes, and reduce time to market. Here dryer, boiler
control simulations are carried out to study dynamic behavior.
Application software LabVIEW is used with control design
and data logging with supervisory (DSC) module.
an analysis and new methodology for reverse engineering of uml behavioralINFOGAIN PUBLICATION
The emergence of Unified Modeling Language (UML) as a standard for modeling systems has encouraged the use of automated software tools that facilitate the development process from analysis through coding. Reverse Engineering has become a viable method to measure an existing system and reconstruct the necessary model from its original. The Reverse Engineering of behavioral models consists in extracting high-level models that help understand the behavior of existing software systems. In this paper we present an ongoing work on extracting UML diagrams from object-oriented programming languages. we propose an approach for the reverse engineering of UML behavior from the analysis of execution traces produced dynamically by an object-oriented application using formal and semi-formal techniques for modeling the dynamic behavior of a system. Our methods show that this approach can produce UML behavioral diagrams in reasonable time and suggest that these diagrams are helpful in understanding the behavior of the underlying application.
The document summarizes topics related to real-time software engineering including embedded system design, architectural patterns for real-time software, timing analysis, and real-time operating systems. It discusses key characteristics of embedded systems like responsiveness, the need to respond to stimuli within specified time constraints, and how real-time systems are often modeled as cooperating processes controlled by a real-time executive. The document also outlines common architectural patterns for real-time systems including observe and react, environmental control, and process pipeline.
This document discusses software processes and models. It covers the following key points:
1. Software processes involve activities like specification, design, implementation, validation and evolution to develop software systems. Common process models include waterfall, incremental development and reuse-oriented development.
2. Processes need to cope with inevitable changes. This can involve prototyping to avoid rework or using incremental development and delivery to more easily accommodate changes.
3. The Rational Unified Process is a modern process model with phases for inception, elaboration, construction and transition. It advocates iterative development and managing requirements and quality.
This document provides an overview of topics covered in Chapter 7 on software design and implementation, including object-oriented design using UML, design patterns, implementation issues, and open source development. It discusses the design and implementation process, build vs buy approaches, object-oriented design processes involving system models, and key activities like defining system context, identifying objects and interfaces. Specific examples are provided for designing a wilderness weather station system.
This document describes the modeling, testing, and verification of system models which are used by
the MILS Adaptation System. Several example models are provided in this document, with one of
them developed in a step-by-step manner. Video demonstrations which accompany this document
demonstrate the use of supporting tools.
This document discusses sociotechnical systems and systems engineering. It defines sociotechnical systems as systems that include both technical systems (e.g. hardware and software) as well as operational processes and people. Sociotechnical systems have emergent properties that depend on the interactions between system components. They are also non-deterministic since human behavior introduces unpredictability. Developing sociotechnical systems requires an interdisciplinary approach involving areas like software engineering, organizational design, and human factors.
System modeling involves creating abstract models of a system from different perspectives, such as context, interactions, structure, and behavior. These models help analysts understand system functionality and communicate with customers. Context models show a system's external environment and relationships. Interaction models, such as use case and sequence diagrams, depict how users and systems interact. Structural models, like class diagrams, represent a system's internal organization. Behavioral models, including activity and state diagrams, illustrate a system's dynamic response to events or data. Model-driven engineering aims to generate implementation from system models.
Architectural design involves identifying major system components and their communications. Architectural views provide different perspectives of the system, such as conceptual, logical, process, and development views. Common architectural patterns include model-view-controller, layered, client-server, and pipe-and-filter architectures. Application architectures define common structures for transaction processing, information, and language processing systems.
IRJET- Building Management System and its Network DesignIRJET Journal
This document discusses building management systems (BMS) and their network design. It provides an overview of what a BMS is and its main components, including hardware like control units, sensors and actuators. It describes the basic functions and working of a BMS, including monitoring various building systems from one central location. The document also provides examples of BMS implementations in areas like fire detection and alarms, security/CCTV surveillance, access control and elevator management. It concludes that a well-designed BMS can intelligently reduce costs, increase security and energy efficiency in commercial buildings.
The document discusses reliability engineering and fault tolerance. It covers topics like availability, reliability requirements, fault-tolerant architectures, and reliability measurement. It defines key terms like faults, errors, and failures. It also describes techniques for achieving reliability like fault avoidance, fault detection, and fault tolerance. Specific architectures discussed include redundant systems and protection systems that can take emergency action if failures occur.
The document discusses dependability in systems. It covers topics like dependability properties, sociotechnical systems, redundancy and diversity, and dependable processes. Dependability reflects how trustworthy a system is and includes attributes like reliability, availability, and security. Dependability is important because system failures can have widespread impacts. Both hardware and software failures and human errors can cause systems to fail. Techniques like redundancy, diversity, and formal methods can help improve dependability. Regulation is also discussed as many critical systems require approval from regulators.
This document provides an overview of communications monitoring within the CITADEL framework. It discusses various monitoring methods including signature-based monitoring, white-box anomaly detection, and association rules. Signature-based monitoring specifies known malicious situations as signatures to detect. White-box anomaly detection learns a model of normal communications and flags deviations as anomalous. The document also describes how monitoring interacts with the specification and other CITADEL planes.
Here is an paper published on software PLC Checker by Itris Automation Square, in the French journal "Mesures" : "La qualité des programmes vérifiée par leurs concepteurs".
Enjoy the reading!
Find us at http://www.itris-automation.com/
Contact us at commercial@itris-automation.com for more information.
Testing and verification of software model through formal semantics a systema...eSAT Publishing House
This document summarizes research on automated testing and verification of software models through formal semantics. It discusses various approaches for transforming UML diagrams into other representations to enable verification. The most widely used technique is model-based testing using use case, class, and state diagrams. Formalizing UML diagrams with other formal languages allows verification of properties. Automating test case generation from UML models can improve efficiency and effectiveness of software testing.
Evaluation of interoperability between automation systems using multi-criteri...MaiconSaturno1
The diagnosis of automation systems in an existing production system through the analysis of the interoperability level between its components represents the first step in its evaluation for improving it towards alignment with Industry 4.0. The analysis of the level of interoperability finds in the multi-criteria decision making methods an auxiliary tool to evaluate and classify the solution. This work uses the AHP method for this evaluation, drawing criteria from the literature and expert experience. The application of the method is illustrated, showing that it can direct investment decisions.
Constructing a software requirements specification and design for electronic ...Ra'Fat Al-Msie'deen
Requirements engineering process intends to obtain software services and constraints. This process is essential to meet the customer's needs and expectations. This process includes three main activities in general. These are detecting requirements by interacting with software stakeholders, transferring these requirements into a standard document, and examining that the requirements really define the software that the client needs. Functional requirements are services that the software should deliver to the end-user. In addition, functional requirements describe how the software should respond to specific inputs, and how the software should behave in certain circumstances. This paper aims to develop a software requirements specification document of the electronic IT news magazine system. The electronic magazine provides users to post and view up-to-date IT news. Still, there is a lack in the literature of comprehensive studies about the construction of the electronic magazine software specification and design in conformance with the contemporary software development processes. Moreover, there is a need for a suitable research framework to support the requirements engineering process. The novelty of this paper is the construction of software specification and design of the electronic magazine by following the Al-Msie'deen research framework. All the documents of software requirements specification and design have been constructed to conform to the agile usage-centered design technique and the proposed research framework. A requirements specification and design are suggested and followed for the construction of the electronic magazine software. This study proved that involving users extensively in the process of software requirements specification and design will lead to the creation of dependable and acceptable software systems.
Integration of distributed enterprise applications a surveyTiago Oliveira
The document discusses the integration of distributed enterprise applications. It provides an overview of the historical development of distributed enterprise application architectures, from early centralized mainframes to modern multi-tier architectures. It also reviews major integration technologies and discusses recent research trends, challenges and opportunities in integrating distributed industrial applications across networks, systems, devices and organizations.
IRJET- A Design Approach for Basic Telecom OperationIRJET Journal
This document discusses using aspect-oriented programming to handle cross-cutting concerns in telecom operations. It proposes developing cross-cutting concerns like consistency checking as separate aspect modules. This allows cross-cutting concerns to be modularized without impacting the core functionality modules. The document presents class and sequence diagrams to model a basic telecom operation and discusses how aspect-oriented programming can be used to implement consistency checking as a cross-cutting concern in the telecom system.
TRAFFIC LIGHT CONTROL SYSTEMS: REQUIREMENTS ENGINEERINGIJNSA Journal
Requirements Engineering (RE) is the most important activity and pivot phase in the software development life cycle. It consists mainly of requirements analysis, design, and specification. The application of RE in a business domain aims to generalize its different specific approaches by meta-models under which each specific approach is an instance or specialization. RE is being applied more and more in different business domains, and its application benefits are found to be valuable. Despite these active RE applications and their added values in different domains, the Traffic Light Control (TLC) domain has not yet been approached, regardless of its everyday interest. The work presented in this paper is part of a TLC enhancement project that explores RE's potential contributions to leveraging TLC quality. Thus, in this work, different recent specific approaches to TLC are analyzed, and a large part of this business domain's functional/ non-functional requirements are elicited and specified. Moreover, the traffic context-aware traffic light control systems (CTLC) are also considered. They are deeply analyzed and compared to the typical TLC systems. As a primary result, the tangling of different concerns was stated, and a separate concerns paradigm was applied. This leads to requirements specification through separated agents. This should lead to TLC and CTLC systems development and maintenance cost reduction. An important agent dealing with security aspects and their evolving technologies is introduced. The impact evaluations of the RE on some TLC and CTLC current approaches are also presented.
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction.
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction.
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction.
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction.
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
This document discusses the design and development of custom change management workflow templates and handlers for vehicle design release using PLM software. It describes how change management workflows can be implemented to manage the complex assembly structures of vehicles, which contain thousands of parts. Customizations are made to the PLM software using integration toolkits to track part level properties like make/buy indicators and ensure they are updated correctly. The workflows aim to efficiently manage the design change process from need for change to final released designs, while minimizing errors and manual work.
This document provides an overview of modular programming concepts based on the ISA-88 standard for batch and discrete manufacturing. It describes key concepts such as the separation of procedural and equipment control, and the physical and procedural models. The physical model defines a hierarchy of equipment from the enterprise level down to equipment and control modules. The procedural model defines how the equipment is used to perform tasks based on the physical model. Modular programming using these standards provides benefits such as flexible production, improved performance, and reduced costs for both manufacturers and developers.
The document discusses different types of software and challenges in software engineering. It describes 7 categories of software: system software, application software, engineering/scientific software, embedded software, product-line software, web applications, and artificial intelligence software. It also outlines 4 challenges: ubiquitous computing, netsourcing, open source, and the new economy. Additionally, it presents software engineering as a layered technology with 4 layers: quality focus, process, methods, and tools. Finally, it proposes a generic process framework for software development with 5 activities: communication, planning, modeling, construction, and deployment.
Information security management guidance for discrete automationjohnnywess
This document summarizes guidance for establishing an information security management program for industrial automation departments. It finds that while standards and guidance are now readily available, implementing a comprehensive security program requires extensive cross-functional collaboration. None of the publications can be implemented alone by automation departments due to their complexity and need for interdepartmental expertise in areas like risk assessment and network segmentation. Effectively addressing vulnerabilities will require integrating security practices with existing organizational processes and acquiring new technical knowledge across roles.
Continuity in the development of seamless mobility: An approach for a system-...IRJET Journal
This document discusses approaches to enable continuity and traceability in interdisciplinary product development for systems-of-systems (SoS) environments. It addresses the challenges of developing complex, interconnected systems where independent teams use various tools and methods.
The document presents three approaches: 1) A classification of four dimensions of continuity in product engineering to address consistency across levels of detail, temporal changes, different projects, and partial models. 2) The KaRDF and Vitruvius methods for consistently modeling heterogeneous development artifacts using semantic technologies. 3) A methodology based on SPALTEN problem-solving processes to support management of changes in distributed development.
Integrating these approaches would support distributed development of seamless mobility systems with high consistency
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction.
DESIGN AND DEVELOPMENT OF CUSTOM CHANGE MANAGEMENT WORKFLOW TEMPLATES AND HAN...ijcax
A large no. of automobile companies finding a convinient way to manage design changes with the use of
various PLM techniques. Change in any product is something that should occur on timely basis to match
up with customer requirement and cost reduction. The change made in the vehicle designs directly affects
various concerned agencies. Automobile Vehicle structures contains thousands of parts and if there is any
change is occurring in child parts then it becomes important to track that impacted part, propose a solution
on that part and release a new assembly structure with feasible changes such that all efforts need to be
done for cost reduction.
SOFTWARE AND HARDWARE DESIGN CHALLENGES IN AUTOMOTIVE EMBEDDED SYSTEMVLSICS Design
Modern automotives integrate large amount of electronic devices to improve the driving safety and comfort. This growing number of Electronic Control Units (ECUs) with sophisticated software escalates the vehicle system design complexity. In this paper we explain the complexity of ECUs in terms of hardware and software and also we explore the possibility of Common Object Request Broker Architecture (CORBA) architecture for the integration of add-on software in ECUs. This reduces the complexity of the embedded system in vehicles and eases the ECU integration by reducing the total number of ECUs in the vehicles.
Similar to Software engineering in industrial automation state of-the-art review (20)
The document is a podcast transcript that discusses OPC UA and related topics. It includes interviews with experts about OPC UA security, commercial kitchen equipment, AutoID devices, and use cases. It also provides information on accessing OPC Foundation podcasts and videos that explain OPC UA concepts. The transcript promotes the benefits of OPC UA for enabling interoperability across industrial applications and domains.
Transformation of simulink models to iec 61499 function blocks for verificati...Tiago Oliveira
This document discusses a new approach to transform Simulink models into IEC 61499 Function Block models. This transformation allows Simulink models to be used for verification of distributed control systems specified using IEC 61499. The transformation is achieved by formally defining the syntax and semantics of both Simulink and IEC 61499 Function Blocks, and establishing a mapping between the two. This enables closed-loop simulation of plant and controller models to validate distributed control systems designs.
O documento discute a implementação de estratégias de controle multimalha utilizando ferramentas PIMS e a norma IEC 61131-3. Ele descreve como essas tecnologias permitem sintonizar controladores e implementar desacopladores de maneira mais eficiente, melhorando o desempenho dos sistemas de controle industrial.
Enterprise integration and interoperability in manufacturing systems trends ...Tiago Oliveira
This document discusses enterprise integration and interoperability in manufacturing systems. It addresses the need for integration across all levels of an enterprise, from management to the shop floor, to facilitate information sharing and decision making. The document outlines several challenges to achieving full enterprise and process model interoperability, including the need for common reference models, effective interoperability mechanisms, supporting infrastructures, and standardized technologies. Future research areas are identified in collaborative networks, enterprise modeling, validation of models, and reuse of models. Overall the document argues that enterprise integration and interoperability are crucial for manufacturing enterprises to adapt to new technologies and business environments.
Communication in industrial automation what is going onTiago Oliveira
1) Fieldbus systems have been successfully introduced for industrial automation, but Ethernet is now being used more for local real-time communication systems.
2) Future scenarios will require heterogeneous networks combining local, wide area, wired, and wireless networks operated by different authorities.
3) The paper addresses ongoing activities using heterogeneous networks for industrial automation, including defining real-time classes, using wireless communication, and implementing functional safety and security concepts.
Applications of agent based systems in intelligent manufacturing - reviewTiago Oliveira
Agent-based systems have been applied to intelligent manufacturing in various areas such as enterprise integration, collaboration, process planning and scheduling, and shop floor control. This paper provides an updated review of recent work in these areas. It discusses how agents can be used to encapsulate functionalities, represent physical resources, and facilitate negotiation and collaboration. The paper also identifies several key requirements for next-generation manufacturing systems and discusses how agent-based approaches help address requirements such as integration, open architecture, communication, and quick response to changes.
A review of soa modeling approaches for enterprise information systemsTiago Oliveira
This document reviews and compares several approaches to modeling services for service-oriented architecture (SOA) in enterprise information systems. It discusses SOA-RM, SOA-RFA, SOA Ontology, SOMF, PIM4SOA, SoaML, and SOMA modeling approaches. The findings indicate that while each approach has strengths and weaknesses, combining aspects of the SOMA methodology with the SoaML modeling language allows for more detailed and systematic modeling of services to enable flexible SOA solutions.
Centro universitário jorge amado curso de engenharia de petróleo e gás pdfTiago Oliveira
A empresa de tecnologia anunciou um novo smartphone com câmera aprimorada, maior tela e melhor desempenho. O dispositivo também possui recursos adicionais de inteligência artificial e segurança de dados aprimorados. O lançamento do novo smartphone está programado para o final deste ano.
Engenharia de reservatorios de petroleo 2006Tiago Oliveira
Este documento describe los pasos para configurar una nueva red inalámbrica. Explica que primero se debe instalar el hardware como el enrutador y las tarjetas de red inalámbricas. Luego se configura la seguridad de la red usando claves WEP o WPA. Finalmente, se conectan los dispositivos a la red y se comprueba que todo funcione correctamente.
Engenharia de perfuração_e_completação_em_poços_de_petróleoTiago Oliveira
O documento descreve os processos e equipamentos utilizados na engenharia de perfuração e completação de poços de petróleo, incluindo a história da perfuração, sistemas de sonda, fluidos de perfuração, técnicas de construção de poços e equipamentos de completação.
O documento apresenta símbolos utilizados em projetos de automação industrial de acordo com a norma ANSI/ISA-S5.1. Ele descreve tabelas com letras de identificação para variáveis e funções, símbolos para linhas de instrumentação, localização de instrumentos e atuadores.
EtherCAT é uma rede Ethernet de campo rápida, síncrona e flexível que permite a comunicação em tempo real no nível de entrada e saída. Ela elimina atrasos de gateways e subsistemas ao transmitir dados diretamente entre dispositivos de E/S sem interrupções. EtherCAT oferece tempos de atualização extremamente curtos, largura de banda máxima e mapeamento de dados flexível.
Este documento fornece instruções para a instalação e configuração de uma máquina de usinagem CNC chamada GL 240 fabricada pela Romi. Contém informações sobre medidas de segurança, requisitos de instalação elétrica e pneumática, layout recomendado e especificações técnicas.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELgerogepatton
As digital technology becomes more deeply embedded in power systems, protecting the communication
networks of Smart Grids (SG) has emerged as a critical concern. Distributed Network Protocol 3 (DNP3)
represents a multi-tiered application layer protocol extensively utilized in Supervisory Control and Data
Acquisition (SCADA)-based smart grids to facilitate real-time data gathering and control functionalities.
Robust Intrusion Detection Systems (IDS) are necessary for early threat detection and mitigation because
of the interconnection of these networks, which makes them vulnerable to a variety of cyberattacks. To
solve this issue, this paper develops a hybrid Deep Learning (DL) model specifically designed for intrusion
detection in smart grids. The proposed approach is a combination of the Convolutional Neural Network
(CNN) and the Long-Short-Term Memory algorithms (LSTM). We employed a recent intrusion detection
dataset (DNP3), which focuses on unauthorized commands and Denial of Service (DoS) cyberattacks, to
train and test our model. The results of our experiments show that our CNN-LSTM method is much better
at finding smart grid intrusions than other deep learning algorithms used for classification. In addition,
our proposed approach improves accuracy, precision, recall, and F1 score, achieving a high detection
accuracy rate of 99.50%.
Introduction- e - waste – definition - sources of e-waste– hazardous substances in e-waste - effects of e-waste on environment and human health- need for e-waste management– e-waste handling rules - waste minimization techniques for managing e-waste – recycling of e-waste - disposal treatment methods of e- waste – mechanism of extraction of precious metal from leaching solution-global Scenario of E-waste – E-waste in India- case studies.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTjpsjournal1
The rivalry between prominent international actors for dominance over Central Asia's hydrocarbon
reserves and the ancient silk trade route, along with China's diplomatic endeavours in the area, has been
referred to as the "New Great Game." This research centres on the power struggle, considering
geopolitical, geostrategic, and geoeconomic variables. Topics including trade, political hegemony, oil
politics, and conventional and nontraditional security are all explored and explained by the researcher.
Using Mackinder's Heartland, Spykman Rimland, and Hegemonic Stability theories, examines China's role
in Central Asia. This study adheres to the empirical epistemological method and has taken care of
objectivity. This study analyze primary and secondary research documents critically to elaborate role of
china’s geo economic outreach in central Asian countries and its future prospect. China is thriving in trade,
pipeline politics, and winning states, according to this study, thanks to important instruments like the
Shanghai Cooperation Organisation and the Belt and Road Economic Initiative. According to this study,
China is seeing significant success in commerce, pipeline politics, and gaining influence on other
governments. This success may be attributed to the effective utilisation of key tools such as the Shanghai
Cooperation Organisation and the Belt and Road Economic Initiative.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
International Conference on NLP, Artificial Intelligence, Machine Learning an...gerogepatton
International Conference on NLP, Artificial Intelligence, Machine Learning and Applications (NLAIM 2024) offers a premier global platform for exchanging insights and findings in the theory, methodology, and applications of NLP, Artificial Intelligence, Machine Learning, and their applications. The conference seeks substantial contributions across all key domains of NLP, Artificial Intelligence, Machine Learning, and their practical applications, aiming to foster both theoretical advancements and real-world implementations. With a focus on facilitating collaboration between researchers and practitioners from academia and industry, the conference serves as a nexus for sharing the latest developments in the field.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
2. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1235
Fig. 1. Relation of automation products to software categories.
Fig. 2. Typical hardware architecture of factory floor automation systems and
software allocations.
right-hand side of the figure. This review is focusing on the de-
velopments related to the factory floor systems and manufac-
turing execution systems. However, numeric control systems
(CNCs), which also belong to the factory floor level, are ex-
cluded from the survey due to their very specific nature. The
reader is referred to [5], [6] for more information on this subject.
One can get an idea of the factory floor automation software
typical functionalities from the traditional centralized automa-
tion system structure presented in Fig. 2. As one can see,
there are four types of data-processing devices communicating
via networks: engineering station with simulation, database
and programming software, HMI device (e.g., touchscreen
computer) with visualization and human interface software,
programmable logic controller (PLC) with control software,
and one or several motor drives controlling speed of various
moving parts.
The PLCs are often considered as the main workhorses of in-
dustrial automation systems. They are connected with the plant
peripherals, such as sensors and actuators, via direct electric
wiring to their input/output (I/O) ports, or via remote I/O mod-
ules which communicate with the PLC via field area networks
(fieldbuses).
Fig. 3. Automation application development life cycle according to [8].
III. AREAS OF SOFTWARE ENGINEERING
This survey is structured according to the key areas of soft-
ware engineering as suggested in the “Guide to the Software
Engineering Body of Knowledge” [7] as follows: requirements,
software design and construction, testing, maintenance, con-
figuration management, software engineering management,
software engineering process, tools and methods, and software
quality.
Another classification line can be conditionally drawn be-
tween the so-called traditional versus emergent software engi-
neering methodologies. Examples of the relatively traditional
ones include component-based design architectures, object-ori-
ented and aspect-oriented design methods, and agile develop-
ment. These methods aim at more efficient construction of soft-
ware. The emergent ones include the technologies aiming at au-
tomatic composition of software functionalities (online or of-
fline) achieved on account of multi-agent collaboration, the use
of web-services, or automatic reasoning. These technologies
provide for flexibility and plug-and-play composition of soft-
ware which is enabled by such mechanisms as multi-agent col-
laboration and service discoveries.
One of the few available surveys on the topic is done by
Dubey [8] and provides evaluation of software engineering
methods in the context of automation applications. This work
presents the phases of the automation application development
life cycle (AADLC) as shown in Fig. 3. The paper describes the
AADLC with four major phases: 1) requirements and design;
2) development; 3) testing; and 4) deployment and commis-
sioning. Fig. 3 shows phases, artifacts (involved or generated)
in each phase, and roles responsible to drive each phase. There
is also a long maintenance phase after the commissioning phase
(which is not shown in the figure).
Other focused sources of reference are the special sessions
on software engineering in automation that have been coorga-
nized by the author at international conferences INDIN 2010
and 2011 and INCOM 2009, as well as a variety of IEEE and
IFAC publications.
3. 1236 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
IV. ROLE OF STANDARDS AND NORMS
Standards and norms are very influential in the development
of industrial automation software. Here, we briefly review the
most relevant ones.
A. IEC 61131-3
The IEC 61131-3 standard [9] for PLC programming lan-
guages has been one of the most successful global standards
for industrial control software. The standard has captured the
most common ways of thinking of control engineers. The stan-
dard contributes to portability of automation software by sug-
gesting four programming languages and sequential function
charts (SFC). The standard helps to migrate software developed
for one PLC type to PLCs of other vendors.
The standard is constantly developing to reflect the latest
trends in the development practice. Its third edition includes ex-
tensions towards object-oriented programming, as preliminary
discussed by Werner in [10].
The critique of IEC 61131-3 mentions its semantic ambigu-
ities [11] and difficult integration into distributed, flexible au-
tomation systems [12]. The centralized programmable control
model of PLCs may cause unpredictable results and overheads
when two or more controllers communicate via network, and its
centralized, cyclically scanned program execution model limits
the reuse of the components in case of reconfiguration.
B. ISA 88/95
According to [13], the ISA-88 standard is intended to provide
solutions for application configuration and system integration
problems. It is designed to be used with batch process control
systems, but it can also be applied to discrete, continuous, hy-
brid, and storage process control. It is internationally standard-
ized as IEC 61512 [14].
The ISA-95 standard for enterprise-control system integra-
tion (standardized internationally as IEC 62264 [4]) defines the
interface between control functions and other enterprise func-
tions, effectively between the ERP and MES levels.
C. IEC 61499
The IEC 61499 reference architecture [15] has been con-
ceived to facilitate the development of distributed automation
systems with decentralized logic. The standard presents a ref-
erence architecture that exploits the familiarity among control
engineers accustomed to a block-diagram way of thinking.
The main design artefact, function block (FB), has been ex-
tended from the subroutine-like structure in IEC 61131-3, to
the process-like abstraction used in the theory of distributed
computing systems where it represents an independent com-
putational activity with its own set of variables (context) and
communication with other processes via messages. The event
interface of FB is well suited to modelling of inter-process
message-based communication. For a state-of-the art survey
on IEC 61499, the reader is referred to [16]. The standard
directly addresses the trend of the increasing importance of
software in automation systems design by improving porta-
bility, configurability, and interoperability of automation
systems. This standard is in early stages of its adoption, with
three commercial Integrated Development Environments (IDE)
released on the market. This standard has been criticized for
a number of weaknesses, such as semantic ambiguities, high
learning threshold, and insufficient harmonization with existing
PLC technologies. However, most of these issues have been
addressed in the second edition released in 2011.
D. IEC 61804
The IEC 61804 standard draft (technical report) [17] de-
scribes the specification and requirements of distributed process
control systems based on function blocks. As noted by Diedrich
et al. in [17], a part of the proposed standard is Electronic
Device Description Language (EDDL)—a language that de-
scribes the properties of automation system components, such
as vendor information, version of firmware/hardware, and data
format. Through this language, all of the information will be
carried between the devices (e.g., controllers, sensors, actua-
tors, and engineering stations) by a fieldbus. This language fills
in the gap between the FB specification and product implemen-
tation by allowing manufacturers to use the same description
method for devices of different technologies and platforms.
E. IEC 61850
The IEC 61850 standard—Communication Networks and
Systems in Substation [18]—addresses the interfacing is-
sues and standardizes communication to avoid the use of
vendor-specific protocols in power systems automation. Along
with communication, it suggests an object-oriented model
for this domain. According to [19], IEC 61850 decomposes
power substation, including functions for monitoring, control,
and protection and primary devices, down to objects, thus ob-
taining object-oriented representation of the power system. The
smallest object is a “data attribute” which is encapsulated into a
“common data” object. These are the data used by devices and
functions when they operate. The data and data attribute are the
information models for the automation functions and primary
devices, which are “wrapped” into a set and represented as a
logical node (LN). LNs can be described by the data that they
consume and produce. A logical device can be populated by
a number of LNs to perform a particular function. In turn, the
logical device can perform more than one function.
Higgins et al. in [20] pointed out a deficiency of this stan-
dard related to encapsulation of programmable logic into LNs
and suggested using FBs for this purpose. This approach has
been successfully applied by Strasser [21] towards closed-loop
simulation of power automation systems with distributed intelli-
gence. It was used by Zhabelova in [19] to propose a multi-agent
architecture for power distribution automation.
V. REQUIREMENTS ENGINEERING
The domain of software requirements includes the funda-
mentals such as product vs. process, functional vs. non-func-
tional, as well as emergent properties of the software. As such,
it addresses requirements process, elicitation, analysis, specifi-
cation, and validation. Proper requirements management is be-
coming also important as a part of dependability certification.
Functional requirements to automation software are often
extracted from product specifications or recipes. However,
4. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1237
nowadays non-functional requirements play increasingly im-
portant role. One of the major current trends in nonfunctional
requirements of automation systems concerns with their flex-
ibility which is needed to react on the ever-changing market
demands. According to [22], there are two major approaches
to achieve flexibility, known as reconfigurable manufacturing
systems (RMSs) and flexible manufacturing systems (FMSs).
In RMS machine components, machines, cells, or material han-
dling units can be added, removed, modified, or interchanged
as needed to respond quickly to changing requirements, while
FMS change its position or state to accommodate for changes
in manufacturing requirements. The key characteristics of
RMS are defined to be modularity, integrability, flexibility,
scalability, convertibility, and diagnosability. The goal of soft-
ware developers is to minimize the effort in redesigning RMS
software at every reconfiguration attempt.
An approach proposed by Ryssel et al. [23] targets automatic
reconfiguration of the existing software components from a
library to achieve an automation application that satisfies the
user’s requirements. The proposed technique takes into account
not only compatibility of components at the syntactical level
but also at the semantic level, e.g., to achieve interoperability
of the assembled application. The Semantic Web technologies
[24] were used to formally specify the requirements and allow
the generator to interpret their meanings.
One more very important nonfunctional requirement is time.
As pointed out in [25], specifically in distributed systems,
timing characteristics strongly depend on application relations
and chosen communication means. The authors describe a
method for supporting engineers in their choices to meet non-
functional requirements when designing distributed control
systems and report on the ongoing development work towards
the corresponding tool.
Ljungkrantz et al. [26] propose reusable automation compo-
nents containing not only the implementation details but also
a formal specification defining the correct usage and behavior
of the component. This intends to shorten modification times
as well as reduce number of programming errors. This formal
specification uses temporal logic to describe time-related prop-
erties and has a special structure developed to meet industrial
control needs.
Runde et al. [27] address the requirement engineering issues
in the domain of building automation systems (BASs) by
proposing a novel knowledge-based process also supported
by means of Semantic Web technologies. The paper states
that today’s approach to elicitation of requirements for BAS
depends on customers’ requests and on the planner knowledge.
The paper describes a novel “intelligent” software tool that
supports the planner at requirements elicitation.
Hirsch [28] addresses the problem of requirements en-
gineering in automation by employing the popular SysML
technology. The author presents an extended case study of a
modular automated manufacturing system design and shows
the pathway of refining the requirements into a fully working
automation code that is compliant with the IEC 61499 standard.
The work describes the entire process of specifying an automa-
tion system including textual descriptions of the requirements,
graphical descriptions of the structure and its behavior. A
subset of SysML design structures has been identified which
is sufficient for supporting the proposed design process. It is
outlined in the work that the use of SysML can substantially
ease some of automation problem solutions and help to embed
model-based design methodologies in a broader context of
embedded control systems.
VI. SOFTWARE DESIGN
The software design domain encompasses such areas as:
structure and architecture, design strategies and methods,
design quality analysis, along with evaluation and software
design notations.
The relevant publications in the industrial automation do-
main often deal with a combination of these areas, for example,
proposing a certain custom architecture, accompanied with the
corresponding design strategies or methods. Therefore, here,
several architectures will be discussed along with related quality
analysis and notations. Section VII will exemplify several de-
sign strategies and methods.
A. Model-Driven Engineering (MDE)
MDE is a software development methodology which exploits
domain models rather than pure computing or algorithmic con-
cepts. MDE has been promoted as a solution to handle the com-
plexity of software development by raising the abstraction level
and automating labor-intensive and error-prone tasks.
The Object Management Group (OMG) is an influential stan-
dardization organization in business information technology
that defined a number of standards for MDE, in particular
model-driven architecture (MDA), based on MetaObject Fa-
cility (MOF) and Unified Modelling Language (UML). UML
provides a number of diagram types for requirements capturing
and refinement to executable code. SysML is a UML deriva-
tive for engineering applications that is getting increasingly
popular. In particular, SysML supports such design phases as
requirements capturing and formalization of specifications.
Bonfé and Fantuzzi [29] have introduced the use of UML in
automation providing methodology of PLC code design by re-
fining UML specification. Thramboulidis proposed in [30] gen-
eration of IEC 61499 function blocks from UML diagrams. Du-
binin et al. described the UML-FB architecture with both ways
of generation of UML diagrams from function block designs
and vice versa in [31]. In [32] Thramboulidis proposed the IEC
61499-based concept of model-integrated mechatronic architec-
ture for automation systems design. The concept of intelligent
mechatronic components (IMCs) [33] stems from the ideas of
object-oriented automation systems design [12] further enriched
with embedded simulation and other functionalities. The IMC
further develops the concept of automation object (AO), fol-
lowing [34] and [35].
A UML automation profile [36] was introduced by Ritala
and Kuikka by extending UML v2 with various automation do-
main-specific concepts for modelling automation applications
in an efficient way. Another similar development by Katzke and
Vogel-Heuser [37] delivered the UML for Process Automation
(UML-PA) modelling language. It is claimed that UML-PA al-
lowed developers to identify plant relationships and apply these
to UML-PA elements much quicker compared to the traditional
5. 1238 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
UML. Further tests compare the application of UML and Id-
iomatic Control Language (IDL) which is another type of de-
scription language for modelling industrial systems.
However, as noted by Mohagheghi and Gehen [38], very few
efforts have been made at collecting evidence to evaluate MDE
benefits and limitations. From that perspective, such works in
the automation domain are especially valuable. Thus, a test re-
ported in [37] was done using some test subjects and showed
that subjects applying UML-PA recognized plant characteristics
and their application almost 50% faster than those attempting to
use traditional UML. Vogel-Heuser et al. [39] present an inter-
esting field experiment on teaching of 85 trainees to two dif-
ferent approaches to PLC programming, UML and the FB Dia-
grams of IEC 61131-3. This paper focuses on the educational
aspects of the training using both approaches, discussing the
correlations found between the modelling and/or programming
performance and cognitive abilities, interest, workload, exper-
tise, and school grades of the trainees. However, the paper does
not provide comprehensive analysis of the design efficiency for
these technologies.
Witsch et al. have proposed in [40] a tool-supported approach
for a bidirectional mapping of hybrid function blocks defined in
the object-oriented extension of IEC 61131-3 to UML class dia-
grams. While most of MDE applications are related to control at
the shop-floor level, Witsch and Vogel-Heuser [41] apply UML
to higher level of the automation pyramid: manufacturing exe-
cution system (MES) design, and report on the qualitative and
quantitative benefits observed. They state the MDE as an im-
portant formalization step, first introducing formal syntax and
then formal semantics of the MES to be designed.
Thramboulidis and Frey investigate MDE in the IEC 61131-3
context in [42] aiming at increase of productivity and reliability
of the development process of industrial automation systems.
Piping and instrumentation diagrams (P&ID) are considered a
source of requirements for process control engineering (PCE).
The paper proposes the corresponding SysML profile for PLC
programming to allow the developer to work in higher layers of
abstraction than the one supported by IEC 61131-3 and effec-
tively move from requirement specifications into the implemen-
tation model of the system. This work is remarkable for using a
domain-specific model of P&ID rather than models provided by
UML/SysML for representing requirements. In particular, the
authors refer to the IEC 62424 standard [43] that defines how
PCE requests should be represented in a P&ID to facilitate the
automatic transfer of data between P&ID and PCE tool and to
avoid misinterpretation of graphical P&ID symbols for PCE.
An important foundation for holistic system engineering and
automatic program generation is availability of unified data for-
mats for the artifacts used in the engineering process. Automa-
tionML [44] provides such a generic data exchange mecha-
nism to support the interoperability among various manufac-
turing engineering tools. The foundation of AutomationML is
the Computer-Aided Engineering eXchange (CAEX) file format
defined in the IEC 62424 standard. CAEX establishes a flex-
ible object-oriented meta-model for data storage, where static
object information can be structured and correlated. Automa-
tionML further specifies concrete usages of the CAEX con-
cepts for manufacturing plant engineering. The plant topology
is defined using basic CAEX constructs. The geometry, kine-
matics, and control logic of each plant object are stored in their
specific file formats. For example, in the current version of Au-
tomationML, control logic is specified in PLCopen XML [45].
These data are then integrated into AutomationML using the
linking mechanism provided by CAEX. As a result, all of the
required domain-specific views of the plant are unified in the
AutomationML model.
A MDA-based design approach aiming at automatic genera-
tion of automation programs [46] has been explored by Estevez
and Marcos who proposed an XML-based Industrial Control
System Description Language in [47] to consolidate the mod-
elling methodologies used to support the development phases.
In their approach, three domain-specific views have been iden-
tified to describe an industrial control system, including control
hardware, electric circuitry, and software. Software components
are described in a form that is suitable for generation of IEC
61131-3 PLC-based applications. Hardware components con-
sist of hardware from a variety of vendors. The mapping be-
tween software components is done using an XML style sheet
(XSL) which does the transformation between domains and can
help in portability of code between different PLC vendors.
The specific of industrial automation dictates special require-
ments to model driven development. UML and SysML models
would have limited applicability during systems commissioning
at the shop floor if round-trip engineering is not supported by
tools (i.e., once PLC code is generated from UML models, it
may undergo “manual” modifications, after which the models
cannot be reconstructed). This is why these ideas are still rarely
used in practice. 3S Software presented an attempt to address
this issue in Professional Developer Edition of CoDeSys. This
tool supports three types of UML diagrams, two of which, State
Charts and Activity Diagrams, were made fully executable up
to the level of PLC programming language.
However, design processes in different industry branches,
such as automotive, chemical or energy, differ substantially, and
the potential of MDE acceptance, in the author’s opinion, can
also be different in these sectors. Therefore, finding a proper set
of models which would represent equilibrium between UML
diagrams and PLC languages still remains an open problem.
B. Component-Based
Component-based software engineering (CBSE) in a broader
sense is a reuse-based approach to defining, implementing, and
composing loosely coupled independent components into sys-
tems. An individual software component is a software unit that
can be reused without any modifications in different software
systems similar to such hardware components as integrated
circuits.
Two major aspects of component-based development for au-
tomation are being discussed in the literature and are often con-
fused: implementation-level issues and application-level issues.
On the implementation side, the main goal is masking par-
ticular details of component’s location, which can be a remote
server, connected by a variety of networks and controlled by an
operating system different from that of the client. Middleware
is commonly used as an implementation mechanism supporting
this transparency, examples of which include CORBA [48] and
6. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1239
DCOM [49]—common component implementation models
used in the general ICT. There are other examples, such as
Object Management Facility (OMF) reported in [50], and
Data Distribution Service that provides time-related quality of
service (QoS), investigated in [51] in the IEC 61499 context.
There are examples of industrial development toward in-
tegration of PLCs into systems communicating via networks
by proposing integration component architectures, such as
Modbus-IDA [52] and PROFInet-CBA [53] based on the
DCOM architecture.
The main implementation challenge is achieving execution
properties such as determinism and real-time guarantees when
using middleware.
Another aspect of component-based design is related to mod-
ularity planning at the application level. Designing, developing,
and maintaining components for reuse is a very complex process
which places high requirements not only for the component
functionality and flexibility, but also for the development or-
ganization.
Maga et al. [54] attempted to define appropriate levels of
granularity for reusable models. Depending on modelled as-
pects and on the purpose of the model, a fine-, medium-, or
coarse-grained model can be more appropriate. The decision of
which granularity is appropriate for a reusable model depends
on both the considered domain and the intended reuse of the
concerned model. As a general recommendation, the authors
suggest to use well-documented, hierarchical, nested models,
which provide different levels of granularity depending on the
required functionality.
Szer-Ming et al. [55] describe the implementation of a
distributed network-based industrial control system for an
assembly automation system. The authors stress limitations
of the common component models, such as lack of real-time
guarantees and high complexity. They propose own component
model for distributed automation, where the component en-
capsulates a state machine. The control system is composed of
autonomous, intelligent components which have the capability
of participating in the automation control without the need for
a master controller. It is envisaged by the authors that assembly
automation system that adopt this control approach can have
greater agility, reusability and reduction in development cost.
The development of component-based automation architec-
ture of the IEC 61499 standard has stipulated the large number
of research works. For example, Strasser et al. [56] study the
use of graphical programming languages in the automation do-
main to handle increasingly complex applications with the goal
to reduce engineering costs for their establishment and main-
tenance. They use the concept of subapplications to provide a
cost-effective solution for component-based industrial automa-
tion applications. The paper introduces a simple but effective
engineering approach to structure large-scale distributed con-
trol programs based on a hierarchical plant structure model with
IEC 61499 subapplications. Proponents of the IEC 61499 ap-
proach see its model as a proper equilibrium balancing MDE
and component-based features with the legacy of PLC program-
ming. However, the critics point out the lack of implementation
support, similar to that of component-based middleware.
The evolution of requirements for products generates new re-
quirements for components, such as planning the component life
cycle where the component first reaches its stability and later
degenerates in an asset that is difficult to use, to adapt, and to
maintain.
Crnkovic and Larsson discuss in [50] both implementation
and application aspects of component-based design referring
to industrial experience. Different levels of component reuse
have been identified along with certain aspects of compo-
nent development in the context of industrial process control,
including questions related to use of standard and de facto
standard components. As an illustration of reuse issues, a
successful implementation of a component-based industrial
process control system is presented. The authors conclude
that the growing adoption of component architectures raises
new questions such as: component generality and efficiency,
compatibility problems, the demands on development environ-
ment, and maintenance. For example, as far as compatibility
concerns, the authors outline several levels, such as compat-
ibility between different versions of components, between
their implementations for different platforms, one aspect of
which is compatibility of graphical user interfaces. Despite
the existence of several popular component implementation
models, often they are not equally supported on all required
hardware–software platforms, which raises the problem of
components’ migration.
C. Design Based on Formal Models
Formal models of software systems create a firm foundation
of software engineering, and this is especially true for industrial
automation. The purpose of such design is to create dependable
software with properties that can be guaranteed by design. The
specifics of automation systems is that in most cases they are
control systems where the dynamics of the plant matters and
must be taken into account when control software is designed.
Moreover, it can be used as an advantage helping in automatic
software design.
In [57], Hanisch introduced a comprehensive framework for
applying formal methods in automation based on the closed-
loop plant—controller interaction. That work reviewed some
of the basic design patterns of control engineering and shows
the differences and similarities of the control engineering ap-
proach and methodologies taken from computer science and
technology. In that work, the author proclaimed the goal of syn-
thesizing formally controllers of industrial systems with subse-
quent code generation from the formal model.
The PLC code generation from a formal model is a relatively
easy part of this proposition as compared to the formal model
synthesis, and has been explored by many researchers. For ex-
ample, Cutts and Rattigan in [58] used Petri nets, Frey [59] used
signal-interpreted Petri nets, an example of PLC code genera-
tion from a modular Petri-net dialect has been demonstrated by
Thieme and Hanisch in [60].
The progress in formal synthesis of control algorithms based
on specifications and constraints has been reviewed in [61].
The general difficulty of formal synthesis is high computational
complexity of the process. Other hurdles include the need of
7. 1240 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
formal specifications and their possible conflicts. Winkler et
al. [62] present a new methodology to enhance the synthesis
process by application of new structural analysis methods. The
used formal modelling language is safe Net Condition/Event
Systems (sNCES). A new kind of model structure based on
graphical meta-description of the model behavior is introduced.
This graphical representation allows system behavior analysis
without exploring the whole state space that reduces perfor-
mance requirements and extends applicability of the method.
However, the practical use of formal models in industrial
practice is not yet common. Knowledge of formal methods is not
common among automation and control engineers, while their
application is associated with high computational complexity.
D. Multi-Agent Architecture
According to Woodbridge [63], multi-agent system (MAS)
approach constitutes a novel software-engineering paradigm
that offers a new alternative to design decision-making sys-
tems based on the decentralization of functions over a set of
distributed entities. Research on application of multi-agent
systems in industrial automation presents a rich body of re-
sults and has been subject of several surveys, e.g., [64]–[66].
As pointed out in [67], distributed agents are increasingly
adopted in automation control systems, where they are used
for monitoring, data collection, fault diagnosis, and control.
Distributed multi-agent systems are an appropriate concept to
meet the emerging requirements to software development: they
enable a modular, scalable, and flexible software design and
allow for distributed data collection and local preprocessing.
They also provide on-site reactivity and intelligence for remote
control scenarios, where the network channel is not capable of
transporting each and every control command. Finally, they
offer an abstraction level, when accessing proprietary devices
for monitoring and control.
However, Theiss et al. [67] stress that existing agent plat-
forms do not always fulfil the requirements of practical automa-
tion applications in respect of real-time properties and resource
usage, leading to significant overhead in respect of design effort
and runtime resources. To meet the specific requirements of the
automation domain, a resource-efficient agent platform AMES
was developed by the authors, which relies on established con-
cepts of agent platforms, but modifies and supplements them
accordingly. This platform is implemented in Java and in sev-
eral C++ variants.
Herrera et al. [68] present the integration of the intelligent
agent concept along with the service-oriented architecture
(SOA) concept for industrial control software. A particular
focus is on reconfigurable manufacturing systems and their
ability to add/remove components on the fly. It is said that
there is a strong synergy between MAS and SOA due to their
goal of providing a platform neutral software component im-
plementations. A standard protocol for MAS communication
is developed by the Foundation for Intelligent Physical Agents
(FIPA) and is said to be the current de facto standard. A lan-
guage provided by the FIPA group is the Agent Communication
Language (ACL) and is essentially a protocol that agent-based
solutions should implement if they want to advertise that they
are FIPA compliant. JADE was selected as a framework for
MAS development. OWL-S which is an upper ontology for
service descriptions is used in that work to provide semantic
description of services. It defines their inputs, outputs and pre-
conditions. Next, using ACL, it is described how some MAS
components and features can be mapped to their corresponding
abstractions in the SOA domain.
E. SOA
Semantic Web services are seen by many researchers as a
way to overcome challenge of rapid reconfigurability in order to
evolve and adapt manufacturing systems to mass customization.
This includes the use of ontologies that enables performing log-
ical reasoning to infer sufficient knowledge on the classification
of processes that machines offer and on how to execute and com-
pose those processes to carry out manufacturing orchestration
autonomously. Lastra and Delamer in [69] provide a series of
motivating utilization scenarios and present the corresponding
research roadmap.
According to Erl [70], the SOA establishes an architectural
model that aims at enhancement of the efficiency, agility, and
productivity of an enterprise by positioning services as the pri-
mary means through which solution logic is represented in sup-
port of the realization of strategic goals associated with service-
oriented computing. SOAs are getting increasingly important in
general purpose computing and influence the corresponding de-
velopments in the automation world.
Jammes and Smit [71] outline opportunities and challenges
in the development of next-generation embedded devices, ap-
plications, and services, resulting from their increasing intelli-
gence. The work plots future directions for intelligent device
networking based on service-oriented high-level protocols and
outlines the approach adopted by the SIRENA research project.
The work by Cannata et al. [72] presents results of the
follow-up SOCRADES project. Particularly the link between
manufacturing systems and their corresponding business man-
agement components is focused upon. The authors propose the
use of SOA at the device level to complement its capabilities
at the enterprise level. This proposal adds vertical integration
level required for device level all the way up to enterprise
systems. Some features of SOA outlined in this paper are as
follows:
• loose coupling, since software modules provide services
to other modules they are designed in a relatively generic
format; communication between components is asyn-
chronous and only done when required;
• modularization of software components: ontrol is not pro-
grammed for the entire system, rather only for individual
components resulting in natural control distribution;
• common communication protocol, which is particularly
important since service providers are abstracted from the
low level all the way to the high level, so that implemen-
tation makes no differentiation of hardware devices or en-
terprise systems.
Potential qualitative measurements for using SOA are
claimed as cost reduction, potential to hire less skilled labor,
interoperability (cross-platform and cross-company) and im-
plementation speed.
8. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1241
Candido et al. in [73] present a service-oriented infrastruc-
ture to support the deployment of evolvable production sys-
tems (EPS). This work exploits the association of EPS and SOA
paradigms in the pursuit of a common architectural solution to
support the different phases of the device lifecycle. The result is
a modular, adaptive, and open infrastructure forming a complete
SOA ecosystem that will make use of the embedded capabilities
supported by the proposed device model.
Mendes et al. [74] discuss another approach to SOA in au-
tomation in which components in the system (that are referred
to as “bots”) can be service requesters and providers, either
pure software or providing hardware functions such as sensors
and actuators. A particular requirement of this work was to
maintain compatibility with automation standards IEC 61131-3
and IEC 61499. The composition of a typical bot is defined to
have functionality encapsulated into a software module which
may be composed of multiple submodules. A framework called
the Continuum Bot Framework provides the class description
required to realise the abstraction of services into a module.
Petri-nets were used as the formal language to develop the bot
functionality.
F. Design Patterns and Generative Programming
A design pattern is a general reusable solution to a commonly
occurring problem within a given context in software design. A
design pattern is not a finished design that can be transformed
directly into code but rather a description or template for how
to solve a problem that can be used in many different situations.
Dibowski et al. [75] propose a novel automatic software de-
sign approach for large building automation systems (BAS).
The design of large BASs with thousands of devices is a labo-
rious task with a lot of recurrent works for identical automated
rooms. The usage of prefabricated off-the-shelf devices and de-
sign patterns can simplify this task but creates new interoper-
ability problems. The proposed method covers the device selec-
tion, interoperability evaluation, and composition of BASs. It
follows a continuous top-down design with different levels of
abstraction starting at requirement engineering and ending at a
fully developed and industry-spanning BAS design.
Faldella et al. [76] introduce a set of new components that ab-
stractly model the behavior of manifold field devices commonly
used within automated manufacturing systems, regardless of
their nature, intrinsic features, and specific functional purposes.
These components, called generalized devices, are basic logic
controllers/diagnosers, which play the role of keeping cleanly
distinct higher level control policies from low-level mecha-
nisms dealing with actuators and sensors. This development
intends to contribute to a reference framework comprising a
comprehensive set of highly reusable logic control components
that may help the designers in the process of modelling and
structuring their applications according to the specific needs.
Serna et al. [77] present a way to ease the development of
IEC 61499-based applications identifying and characterizing
“extended function blocks,” adding semantic artefacts to basic
function blocks. Specific design patterns are built from those
extended function blocks, which match elements of the problem
domain. Two specific design patterns are presented which allow
dealing with failure management, a common topic in control
applications.
The model-view-control (MVC) design pattern [78], was
adapted by Christensen in [79] to the domain of industrial
automation and integrated with the IEC 61499 standard archi-
tecture. According to [33], a software component composed
following the MVC pattern is organized from two core sub-
components connected in closed-loop:
• controller, implementing a set of operations, published as
services;
• model of the object’s behavior;
The combination of these two functions enables simulation
of the system in closed loop with the actual, ready-for-deploy-
ment control code. Moreover, the simulation model is obtained
with a high degree of components’ reuse. Additionally, the
View component supports interactive simulation by rendering
the system’s status based on the parameters provided by the
Model. Other functions, such as Diagnostics and Database
Logger, are also fed by the data from the Object or the Model,
and the Human–Machine Interface (HMI) component can be
connected in the closed loop with the controller.
The successes in development of component architectures,
agents and design patterns gave rise to the development of gen-
erative programming applications in automation where the au-
tomation software is automatically generated rather than manu-
ally written.
For example, Shutzt et al. [80] propose a pathway to semiau-
tomatic generation of PLC-based multi-agent control of a flex-
ible manufacturing system. The approach includes first extrac-
tion of the machine properties and generation of hierarchical
SysML model which is used to instantiate and connect agents
into a system. The approach is evaluated on a flexible fixture
device.
The earlier mentioned work [23] by Ryssel et al. also con-
tributes to the generative approach to automatically create the
controls of domain-specific automation systems based on a
generic knowledge base.
Dubinin et al. [81], address the problem of semantic incom-
patibilities between different implementations of programming
languages, on a particular example of IEC 61499 standard for
which several execution models exists. To achieve a degree of
execution model independence, design patterns are suggested
that make applications robust to changes of execution seman-
tics. A semantic-robust pattern is defined for a particular source
execution model. The patterns themselves are implemented by
means of the same function block language apparatus and there-
fore are universal. The patterns can be formally defined and im-
plemented using the function block transformations expressed
in terms of attributed graph grammars. An obvious downside of
this approach is performance overheads in the transformed ap-
plications.
G. Comparisons and Critical Remarks
The area of software design clearly stands out by the number
and variety of investigations conducted and results achieved.
The downside of this variety is the difficulty to extract clear sug-
gestions and recommendations to practitioners. Table I presents
9. 1242 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
TABLE I
COMPARISON OF SOFTWARE DESIGN APPROACHES BY THEIR TARGET CHARACTERISTICS
an attempt to collate target characteristics of different design ap-
proaches. Arguably, almost all of the characteristics chosen for
comparison are interdependent in some cases, nevertheless they
seem to represent a possible comparison basis.
When research and piloting of certain concepts reaches some
maturity, it is a good idea to proceed with standardization which
will add necessary unification and would help practitioners to
benefit from the research results. However, the process does not
always go in this direction. For example, there was an attempt
to standardize the Automation Object concept in IEC standard-
ization activity, but the process got stalled due to insufficient
critical mass of development.
VII. SOFTWARE DESIGN STRATEGIES, METHODS, AND
SOFTWARE CONSTRUCTION
Examples of software design strategies and methods
include function-oriented design, object-oriented design
(Section VII-A) and aspect-oriented design (Section VII-B).
The former one is quite traditional in PLC programming with
functions and function blocks being main reusable program
artefacts. However, the limitations of those structures raised
interest in more modern design methods discussed as follows.
The term software construction, according to [2], refers to
the detailed creation of working, meaningful software through
a combination of coding, verification, unit testing, integration
testing, and debugging. In particular, the related topics include
programming languages (Section VII-C) and the concept of
software product line (Section VII-D).
A. Object-Oriented Programming
Object-oriented programming (OOP) is a popular program-
ming paradigm using “objects” to design applications and com-
puter programs. An object stands for a data structure consisting
of data fields and data-processing methods. Distinct features
of OOP are data abstraction, encapsulation, messaging, mod-
ularity, polymorphism, and inheritance. The benefits of using
OOP are in a more efficient code reuse and increased safety and
stability of software.
Many general-purpose programming languages, such as Java,
C++, and Python, support some or all OOP features. As noted
above, the third edition of IEC 61131-3 also introduces OOP
features. For the time being, CoDeSys is the only known pro-
gramming environment to support these, therefore it is early to
judge whether this paradigm will find broad application in au-
tomation. In particular, the OOP concepts of polymorphism and
inheritance raise serious concerns in safety and dependability
of applications. On the other hand, IEC 61499 provides light-
weight OOP features in the new function block concept, which
strongly encapsulates data and where events can be regarded as
methods.
B. Aspect-Oriented Programming (AOP)
In computing, AOP is a programming paradigm which aims
to increase modularity by allowing the separation of cross-cut-
ting concerns. AOP forms a basis for aspect-oriented software
development.
Tangermann et al. [82] present an aspect-oriented approach
for weaving the communication related code into the distributed
control application code by means of AspectJ, an extension for
AOP with Java. The paper gives a comparison to other ap-
proaches.
Wehrmeister [83] applies concepts of the aspect-oriented par-
adigm in order to improve the treatment of nonfunctional re-
quirements in the design of distributed embedded real-time sys-
tems. A tool named GenERTiCA, which generates source code
from UML diagrams and weaves aspect adaptations, has been
developed to support such an approach. This paper presents re-
sults regarding the use of this tool to generate code and imple-
ment aspects (from a high-level framework of aspect) for dis-
tributed embedded real-time systems.
Binotto et al. [84] introduce the use of software aspect-ori-
ented paradigms to perform machines’ monitoring and a self-
rescheduling strategy of tasks to address nonfunctional timing
constraints. As a case study, tasks for a production line of alu-
minium ingots are designed.
C. Programming Languages
The usual set of programming languages for PLCs is stan-
dardized in IEC 61131-3 and includes two textual ones: struc-
tured text (ST) and instruction list (IL), and two diagrammatic
ones: function block diagrams (FBD), ladder logic diagrams
(LLD), and sequential function charts (SFC) for overall con-
figuration. In addition to these, tool vendors and OEMs provide
proprietary languages, such as flowcharts and continuous func-
tion charts.
10. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1243
The general-purpose programming languages are also used
in programming of automation and control applications. Some
programming environments, such as ISaGRAF, allow program-
ming in C along with the IEC 61131-3 languages. Lüder et
al. [85] state that OOP concepts and languages like Java be-
come more and more interesting for all levels of automation,
but mainly for nonreal-time applications. Java is a high-level
OOP language with a strong type system. Java enables platform-
independent application design. Java programs are executable
on every platform that can run Java Virtual Machine which
opens many possibilities for reusability of code and provides
a high stability of applications realized by extensive checks
during compile-, load-, and run time. To overcome real-time
limitations, there is Real Time Java Specification (RTSJ).
Thramboulidis and Doukas [86] describe an approach for the
transparent use of real-time Java in control and automation. The
proposed approach, which is in the context of the model inte-
grated mechatronics paradigm, exploits the function block con-
struct for the design model and the real-time Java specification
for the implementation model.
Development of many domain-specific languages (DSLs) tar-
geting particular sectors of automation is reported in literature.
A typical DSL example is Habitation language for home au-
tomation discussed in [87]. DSLs are envisaged in model-driven
engineering, aiming at more intuitive descriptions of the system
using graphic models, and, as such, facilitating software devel-
opment by domain specialists rather than software engineers.
However, practical impact of DSL in automation does not seem
to be significant.
D. Software Product Line (SPL)
The concept of SPLs relying on UML technology have been
a breakthrough in software reuse in the IT domain. In [88],
SPL is introduced in the industrial automation domain. The ob-
ject-oriented extensions of IEC 61131-3 are used in SPL archi-
tecture and product specifications are expressed as UML class
diagrams, which serve as straightforward specifications for con-
figuring PLC control application with OO extensions. A product
configurator tool has been developed to support the generation
of an executable PLC application according to chosen product
options. The approach is demonstrated using a mobile elevating
working platform as a case study.
An important challenge is cost-effective migration of legacy
systems towards product lines. Breivold and Larsson [89]
present a number of specific recommendations for the transi-
tion process covering four perspectives: business, organization,
product development processes and technology.
VIII. TESTING, MANAGEMENT, EVOLUTION AND QUALITY
A. Software Testing
Software testing is the process of revealing software defects
and evaluating software quality by executing the software.
Wang and Tan describe fundamentals of software testing
for safety critical automation systems in [90]. The software
testing comprises of both functional and performance testing.
The former includes conventional black-box and white-box
testing, while the latter is made up of testing for software
availability, reliability, survivability, flexibility, durability,
security, reusability, and maintainability. In [90], a case study
of automated testing of control rotating-turbine machinery is
presented.
As software components become more complex to construct
and test, test-driven development (TDD) of software systems
has been successfully used for agile development of business
software systems. Test cases guide the system implementation
and can be executed automatically after software changes (con-
tinuous integration and build strategy). Hametner et al. [91] in-
vestigate application of TDD processes in control automation
systems engineering. They introduce an adapted TDD process
identifying a set of UML models that enable the systematic
derivation of test cases and evaluate the adapted TDD process
in an industrial use case. Results of the study show that UML
models enabled effective test case derivation.
B. Software Maintenance and Evolution
Software engineering considers the entire life cycle of soft-
ware which includes its maintenance and evolution. Software
maintenance is defined by the IEEE 1219 standard [92] as “the
modification of a software product after delivery to correct
faults, to improve performance or other attributes, or to adapt
the product to a modified environment.”
Bennett and Rajlich [93] define the goal of software evolution
as to adapt the application to the ever changing user require-
ments and operating environment.
PLC software, for example, is commonly maintained by users
rather than its developers. This explains the use of such relict
programing languages as ladder logic diagrams in many au-
tomation projects: programs in this language can be maintained
by the factory floor electricians.
Software migration is the process of moving from the use of
one operating environment to another operating environment.
Migration is an important part of software maintenance. Stan-
dards facilitate migration between compliant platforms, but as
it is noted e.g., by Bauer [11], there are many compatibility is-
sues between different implementations of IEC 61131-3. Hus-
sain and Frey [94], Dai et al. [95], and Wenger et al. [96], [97]
study the problem of automatic migration from PLCs to IEC
61499.
Code refactoring [98] is a disciplined technique for restruc-
turing an existing body of code, altering its internal structure
without changing its external behavior. Refactoring is com-
monly used in software maintenance to improve usability
of the code. Advantages include improved code readability
and reduced complexity to improve the maintainability of the
source code, as well as a more expressive internal architecture
or object model to improve extensibility. Dubinin et al. [99]
propose extended refactoring of execution control charts in
basic function blocks of the IEC 61499 standard that also aims
at fixing semantic problems.
Froschauer et al. [100] address the life-cycle management of
large-scale, component-based automation systems. The paper
presents an approach based on the product line variability
models to manage the lifecycle of industrial automation sys-
tems and to automate the maintenance and reconfiguration
process. The paper suggests complementing the IEC 61499
11. 1244 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
Fig. 4. ISaGRAF workbench screenshot.
standard with a variability modelling approach to support both
initial deployment and runtime reconfiguration.
C. Software Configuration and Engineering Management
According to Pressman [101], software configuration man-
agement (SCM) is a set of activities designed to control change
by identifying the work products that are likely to change, es-
tablishing relationships among them, defining mechanisms for
managing different versions of these work products, controlling
the changes imposed, and auditing and reporting on the changes
made.
Driven by the manufacturing agility and reconfigurability
challenges [22], Suender et al. have developed an original
SCM approach called downtimeless evolution in [102]. These
works address the often need to change the automation software
during the operation of production facility without stopping the
automated production process (i.e., without downtime). Im-
plementation of this requirement asks for several fundamental
changes on the run-time level and on the tool side, including
the need to respect real-time properties of the devices during
this process.
Moser et al. in [103] present a novel idea of supporting
automation systems development with the help of Engineering
Cockpit, a social-network-style collaboration platform for
automation system engineering project managers and en-
gineers, which provides a role-specific single entry point
for project monitoring, collaboration, and management. A
prototype implementation of the Engineering Cockpit is pre-
sented and discussed. Major results are that the Engineering
Cockpit increases the team awareness of engineers and pro-
vides project-specific information across engineering discipline
boundaries.
D. Software Process and Tools
Design of automation software is supported by integrated de-
velopment environments (IDEs), provided by the vendors of
PLC hardware. Large vendors, such as SIEMENS, Rockwell
Automation, Schneider Electric, Omron, and others, develop
such tools in house. Many smaller original equipment manufac-
turers (OEM) license the tools from independent software tools
vendors, such as ISaGRAF, 3S Software or KW Software and
others, and provide to their customers with or without propri-
etary camouflage. Fig. 4 presents a snapshot of ISaGRAF IDE
v.6.0, where one can see a ladder logic program, data log in form
of waveforms, and network of connected devices. The tools of
independent vendors are compliant with international standards
IEC 61131-3 and IEC 61499. For the latter, ISaGRAF supports
both standards which implied some engineering tradeoffs and
limitations in IEC 61499 part, while NxtControl has developed
a tool NxtStudio that is purely IEC 61499-compliant.
Such standards as IEC 61499 have motivated and provided
the opportunity for many researchers and developers to come up
with own tools. For example, Thramboulidis and Tranoris [104]
presents an engineering tool compliant with the IEC 61499 stan-
dard based on a four-layer architecture that successfully uni-
fies the FB concept with UML. Another example is 4DIAC-
IDE, an IEC 61499 compliant open-source tool and run-time
environment.
E. Software Quality
Functional safety is an important quality characteristic, de-
fined in [105] as a part of the overall system safety relating to
the control system which depends on the correct functioning
of the programmable electronic safety-related systems, other
technology safety-related systems and external risk reduction
facilities.
Von Krosigk [106] presents several practices to address func-
tional safety of automation systems software, both proprietary
and based on international standards.
The generic standard IEC 61508 [105] and the automation in-
dustry-specific standard IEC 62061 “Safety of machinery” ad-
dress the vast variety of safety related processes, in particular,
related to the design pathway from hazard and risk analysis up
to the specification of safety requirements of the control system.
The IEC 61508 defines safety integrity levels (SIL) that are
specified by requirements for the probability of failures of the
safety related system. The probability of failure of a system can
be calculated with mathematical methods.
Another, even more rigorous quality assurance method
is called formal verification. An early survey by Frey [107]
overviews formal method use in PLC programming for their
verification and validation. Johnson provides [108] an inter-
esting overview of key milestones and prospects for the use
of formal verification methods in achieving enhanced depend-
ability of future manufacturing software. Hanisch et al. have
written a focused survey on formal verification of IEC 61499
[109]. Yoong et al. [110] propose implementation of IEC 61499
with the synchronous semantics similar to that of synchronous
programming languages such as Esterel. This method allows
for combination of benefits from IEC 61499 model-driven
design and dependable deterministic execution. However,
industrial adoption of such methods is hindered by their high
computational complexity, as well as lack of user-friendly tools
oriented on automation domain.
IX. DISCUSSION
A. Lessons Learned
The conducted study fully confirms the “hypothesis” on the
growing importance of software engineering in automation.
Research works in virtually every domain specified by the
SWEBOK reference document have been identified with clear
dominance of works related to design concepts.
12. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1245
Cost reduction remains the main driving force in automa-
tion. As one can conclude from Table I, the development of
software engineering areas in automation has been mostly con-
cerned with improvement of software lifecycle efficiency and
dependability rather than with performance issues. The same
applies to the downstream methods, languages, and processes:
very few of them were developed in response to insufficient per-
formance of automation systems. Moreover, as noted by some
researchers, many advanced software engineering methods can
bring substantial performance overhead.
On the other hand, the application of distributed computing
architectures is often driven by performance issues among other
motives. The same applies to such architectures, as the multi-
agent one, which often aim and achieve performance improve-
ment on account of local data processing.
An important research method in industrial automation is
to adopt developments from the general computing area. This
is the case for virtually any software-related technology, e.g.,
component-orientation, service-orientation or model-based
engineering, to mention a few. This allows the developers to
take advantage of the huge investments into such technologies
and rely on proven solutions rather than reinventing the wheel.
One of the latest examples of this sort is “reuse” of Semantic
Web technologies reported in many automation-related works.
These technologies are aiming at knowledge representation and
automatic manipulation and can be useful for enhancing the
performance of software development processes.
A potential downside of this research method is the slow
take-up, or low applicability, of the results in industrial prac-
tice. Often, researchers contributing to the progress of industrial
automation in this way may have little industrial experience.
Examples used in such projects are often from university lab-
oratories. Such research may be the enabler by which new and
innovative solutions can emerge, particularly in the long-term,
but it may also sometimes suffer from limited industrial appli-
cability and impact. The situation is similar to the gap at times
observed between academic computer science and software de-
velopment practice.
One of the reasons for using Semantic Web technologies in
automation was related to the development of SOAs that re-
quired mechanisms to declare, discover, and orchestrate ser-
vices. However, the potential of these technologies in software
engineering is much greater. As identified by Breslin et al. [24],
the value proposition of such technologies is multifold, related
to software development phase, infrastructure, information ex-
change and interoperability, and software behavior. As further
exemplified by Gašević et al. [111] and Happel et al. [112], the
mechanism of ontologies, widely used for semantic knowledge
representation and management, can be used for generation of
software similarly to model-based engineering approach. Ini-
tial application of semantics enhanced engineering and model
reasoning for control application development has been demon-
strated by Hästbacka and Kuikka in [113].
There are many promises in making software solutions more
intelligent and easier integrated into systems by using Semantic
Web technologies. For example, wider application of intelligent
agents with reasoning capabilities will raise the issue of proper
knowledge representation for reasoning and semantic interop-
erability in such multi-agent systems. These can be achieved by
using common domain ontologies. Semantic Web technologies
provide not only such mechanisms, but are going even further
by providing languages such as SWRL to describe reasoning
over the knowledge concepts.
B. Industrial Adoption of Advanced Software Concepts
Along with industrial practices, this review discussed sev-
eral advanced engineering concepts being investigated by re-
searchers. For many of them prospects of their wide industrial
adoption are still unclear. Many of such concepts represent dis-
ruptive design paradigm shifts therefore their adoption in the
industry is quite slow. Such technologies include distributed au-
tomation architectures, such as multi-agent, service-oriented, as
well as IEC 61499.
In the author’s opinion, one of the reasons slowing their
adoption is the lack of integral view on the matter leading to
confusion among practitioners. Often in the literature these ap-
proaches are unnecessarily separated and antagonized, although
they rather represent complementary features and their syner-
gies need to be explored. There are corresponding examples.
For instance, the function block architecture of IEC 61499 has
been used to implement multi-agent control concepts in works
by Black [114], Lepuschitz [115] and Hegny [116]. The added
value of such a combination is in system level representation
of the entire distributed system for verification and validation,
and in simplified maintenance and reconfiguration. Similar
arguments would apply in the context of service-oriented
architectures. This is especially true in view of the number of
engineering concepts and tools discussed in this paper as related
to maintenance and evolution. The presence of standardized
distributed software architecture would drastically simplify
industrial application of those advanced software concepts.
Another roadblock is higher complexity and education
threshold requiring training of engineers in new unfamiliar
software topics. The situation is changing but slowly: the new
generation of graduates are often aware of many emergent
software technologies and ready to apply them in practice.
C. Open Issues for Future Research
The list of open issues could be long, only the most com-
pelling ones will be discussed.
There are encouraging examples of model-driven software
engineering in automation which explore not only software
“mainstream” models of UML/SysML, but also “genuine” au-
tomation models, such as P&ID. These works surely need to be
continued and extended towards formalisation of such models
and their “morphing” into software models. Standardization
of such diagrammatic specifications on the semantic level is
becoming an urgent task.
Also, there are plenty unresolved challenges related to com-
bining legacy PLC programming (e.g., in ladder and function
block diagrams) with autonomous behavior of agents, synchro-
nization of distributed processes or knowledge-based reasoning
within one programming framework. The challenges con-
cern both expressive power of programming languages along
with performance, determinism, and guaranteed reactivity of
applications.
13. 1246 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
The increasing demands of dependability, stemming from
various safety requirements and certification procedures, will
increase the demand for formal methods application in automa-
tion software engineering. This will require a new generation
of software tools to make such methods more approachable by
control and software engineers.
In the testing domain, usual testing and code debugging tech-
niques need to be integrated with simulation and emulation en-
vironments, as well as with formal verification tools. Again,
defining common standardized models to bridge control and
simulation worlds would be very helpful for enabling such in-
tegrated solutions.
Convincing proof of benefits for many presented novel design
approaches can be done only in real industrial pilot projects and
in comparison with each other and existing technologies. Such
developments and comparisons are rarely done yet. It would be
the task of major research funding bodies to include the cor-
responding priorities of comparison and evaluation for several
research-mature technologies in the future calls in order to en-
able such comparative pilot studies, rather than funding devel-
opment of new fancy ideas. The candidate technologies can in-
clude multi-agent control, SOAs, and IEC 61499 to mention a
few. The industrial and economic impact of such studies can be
very substantial.
On the other hand, practices in many automation companies
include the most advanced software engineering methods, but
they are rarely reported in academic publications. This situation
is being overcome by new instruments such as “tools special
sessions” at major international conferences, but more can be
done.
X. CONCLUSION
Despite the colloquial opinion of software design in automa-
tion mainly consisting of PLC programming in ladder logic
done in front of the machine, the presented survey proves that
it is a large and growing area with a rich body of knowledge.
One should note that the paper only scratched the surface and
(due to size limitations) could not address and reflect all of the
related developments in the industrial automation software en-
gineering. Many interesting and important developments were
unfortunately left behind. These include, for example, agile de-
velopment and generative programming. The main purpose of
this work was to introduce a reference basis bridging the gap be-
tween automation and software engineering worlds. Hopefully,
it will be useful for more focused studies in the future.
Software engineering is an integral part of systems engi-
neering, and this is especially true in automation. Proposing
holistic system design processes in which software engineering
is tightly intertwined is a compelling challenge, but the progress
observed and reflected in this review provides convincing evi-
dences in the feasibility of this goal.
REFERENCES
[1] R. Stetter, “Software Im Maschinenbau -Lästiges Anhängsel Oder
Chance Zur Marktführerschaft? VDMA, ITQ,” 2011 [Online]. Avail-
able: http://www.software-kompetenz.de/servlet/is/21700/Stetter-
SW_im_Maschinenbau.pdf?command=downloadContent&file-
name=Stetter-SW_im_Maschinenbau.pdf
[2] IEEE Standard Glossary of Software Engineering Terminology. New
York, NY, USA: IEEE, 1990.
[3] “Automation expenditures for discrete industries,” ARC, 2012 [On-
line]. Available: http://www.arcweb.com/market-studies/pages/au-
tomation-systems-for-discrete-industries.aspx
[4] International Standard IEC 62264-1: Enterprise—Control System In-
tegration Part 1: Models and Terminology. Geneva, Switzerland: Int.
Electrotech. Commission, 2003.
[5] X. Xu et al., “STEP-compliant NC research: The search for intelligent
CAD/CAPP/CAM/CNC integration,” Int. J. Prod. Res., vol. 43, pp.
3703–3743, 2005.
[6] J. K. Chaar, D. Teichroew, and R. A. Volz, “Developing manufacturing
control software: A survey and critique,” Int. J. Flexible Manuf. Syst.,
vol. 5, pp. 53–88, 1993.
[7] , A. Abran, J. W. Moore, P. Bourque, R. Dupuis, and L. L. Tripp, Eds.,
SWEBOK: Guide to the Software Engineering Body of Knowledge.
Washington, DC, USA: IEEE Comput. Soc., 2004.
[8] A. Dubey, “Evaluating software engineering methods in the context of
automation applications,” in Proc. 9th Int. Conf. Ind. Inf., 2011, pp.
585–590.
[9] International Standard IEC 61131-3: Programmable Controller—Part
3: Programming Languages. Geneva, Switzerland: Int. Electrotech.
Commission, 1993, pp. 230–230.
[10] B. Werner, “Object-oriented extensions for IEC 61131-3,” IEEE Ind.
Electron. Mag., vol. 3, no. 4, pp. 36–39, Dec. 2009.
[11] N. Bauer, R. Huuck, B. Lukoschus, and S. Engell, A Unifying Seman-
tics for Sequential Function Charts Integration of Software Specifica-
tion Techniques for Applications in Engineering, H. Ehrig, W. Damm,
J. Desel, M. Große-Rhode, W. Reif, and E. Schnieder, Eds. et al.
Berlin, Germany: Springer, 2004, vol. 3147, pp. 400–418.
[12] V. Vyatkin, J. H. Christensen, and J. L. M. Lastra, “OOONEIDA: An
open, object-oriented knowledge economy for intelligent industrial
automation,” IEEE Trans. Ind. Inf., vol. 1, no. 1, pp. 4–17,
Feb. 2005.
[13] J. Virta, I. Seilonen, A. Tuomi, and K. Koskinen, “SOA-Based integra-
tion for batch process management with OPC UA and ISA-88/95,” in
Proc. IEEE Conf. Emerging Technol. Factory Autom., Bilbao, Spain,
2010, pp. 1–8.
[14] International Standard IEC 61512–1: Batch Control—Part 1: Models
and Terminology. Geneva, Switzerland: Int. Electrotech. Commis-
sion, 1997.
[15] International Standard IEC614999-1: Function Blocks—Part 1 Archi-
tecture, First ed. Geneva, Switzerland: Int. Electrotech. Commission,
2005.
[16] V. Vyatkin, “IEC 61499 as enabler of distributed and intelligent au-
tomation: State of the art review,” IEEE Trans. Ind. Inf., vol. 7, no. 4,
pp. 768–781, Nov. 2011.
[17] C. Diedrich, F. Russo, L. Winkel, and T. Blevins, “Function block ap-
plications in control systems based on IEC 61804,” ISA Trans., vol. 43,
pp. 123–131, 2004.
[18] International Standard IEC 61850: Communication Networks and Sys-
tems in Substations—Part 7, Basic Information and Communication
Structure. Geneva, Switzerland: Int. Electrotech. Commission, 2003.
[19] G. Zhabelova and V. Vyatkin, “Multi-agent smart grid automation ar-
chitecture based on IEC 61850/61499 intelligent logical nodes,” IEEE
Trans. Ind. Electron., vol. 59, no. 5, pp. 2351–2362, May 2011.
[20] N. Higgins, V. Vyatkin, N. K. C. Nair, and K. Schwarz, “Distributed
power system automation with IEC 61850, IEC 61499, and intelligent
control,” IEEE Trans. Syst., Man Cybern. C, Applic. Rev., vol. 41, no.
1, pp. 81–92, Jan. 2011.
[21] T. Strasser, M. Stifter, F. Andren, D. B. de Castro, and W. Hribernik,
“Applying open standards and open source software for smart grid ap-
plications: Simulation of distributed intelligent control of power sys-
tems,” in Proc. IEEE Power Energy Soc. General Meeting, 2011, pp.
1–8.
[22] H. ElMaraghy, “Flexible and reconfigurable manufacturing systems
paradigms,” Int. J. Flexible Manuf. Syst., vol. 17, pp. 261–276, 2005.
[23] U. Ryssel, H. Dibowski, and K. Kabitzsch, “Generation of function
block based designs using Semantic Web technologies,” in IEEE
Conference on Emerging Technologies and Factory Automation
(ETFA’09), 2009.
[24] J. G. Breslin, D. O’Sullivan, A. Passant, and L. Vasiliu, “Semantic Web
computing in industry,” Comput. Industry, vol. 61, pp. 729–741, 2010.
14. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1247
[25] T. Hadlich et al., “Time as non-functional requirement in distributed
control systems,” in Proc. IEEE Conf. Emerging Technol. Factory
Autom., 2012.
[26] O. Ljungkrantz, K. Åkesson, M. Fabian, and C. Yuan, “Formal speci-
fication and verification of industrial control logic components,” IEEE
Trans. Autom. Sci. Eng., vol. 7, no. 3, pp. 538–548, Jul. 2010.
[27] S. Runde, A. Fay, and W. O. Wutzke, “Knowledge-based Require-
ment-Engineering of building automation systems by means of
Semantic Web technologies,” in Proc. 7th IEEE Int. Conf. Ind. Inf.,
Cardiff, Wales, 2009, pp. 267–272.
[28] M. Hirsch, Systematic Design of Distributed Industrial Manufacturing
Control Systems. Berlin, Germany: Logos Verlag, 2010.
[29] C. Secchi, M. Bonfe, C. Fantuzzi, R. Borsari, and D. Borghi, “Ob-
ject-oriented modeling of complex mechatronic components for the
manufacturing industry,” IEEE/ASME Trans. Mechatron., vol. 12, no.
6, pp. 696–702, Dec. 2007.
[30] K. C. Thramboulidis, “Using UML in control and automation: A model
driven approach,” in Proc. 2nd IEEE Int. Conf. Ind. Inf., 2004, pp.
587–593.
[31] V. Dubinin, V. Vyatkin, and T. Pfeiffer, “Engineering of validatable au-
tomation systems based on an extension of UML combined with func-
tion blocks of IEC 61499,” in Proc. IEEE Int. Conf. Robot. Autom.,
2005, pp. 3996–4001.
[32] K. Thramboulidis, “Model-integrated mechatronics: Toward a new
paradigm in the development of manufacturing systems,” IEEE Trans.
Ind. Inf., vol. 1, no. 1, pp. 54–61, Feb. 2005.
[33] V. Vyatkin, H. Hanisch, C. Pang, and C. Yang, “Closed-loop modeling
in future automation system engineering and validation,” IEEE Trans.
Syst., Man Cybern. C, Applic. Rev., vol. 39, no. 1, pp. 17–28, 2009.
[34] IEC SB3/TC 65 Working Draft: Automation Objects for Industrial-
Process Measurement and Control Systems, , 2002.
[35] R. Brennan, L. Ferrarini, J. L. M. Lastra, and V. Vyatkin, “Automation
objects: Enabling embedded intelligence in real-time mechatronic sys-
tems,” Int. J. Manuf. Res., vol. 1, pp. 379–381, 2006.
[36] T. Ritala and S. Kuikka, “UML automation profile: Enhancing the ef-
ficiency of software development in the automation industry,” in Proc.
5th IEEE Int. Conf. Ind. Inf., 2007, pp. 885–890.
[37] U. Katzke and B. Vogel-Heuser, “Combining UML with IEC 61131-3
languages to preserve the usability of graphical notations in the soft-
ware development of complex automation systems,” Anal., Design,
Evaluation of Human-Mach. Syst., pp. 90–94, 2007.
[38] P. Mohagheghi and V. Dehlen, “Where is the proof?-A review of ex-
periences from applying MDE in industry,” Model Driven Architec-
ture-Foundations and Applications, pp. 432–443, 2008.
[39] B. Vogel-Heuser, M. Obermeier, S. Braun, K. Sommer, F. Jobst, and K.
Schweizer, “Evaluation of a UML-based versus an IEC 61131-3-Based
software engineering approach for teaching PLC programming,” IEEE
Trans. Education, vol. PP, no. 99, 2012.
[40] D. Witsch and B. Vogel-Heuser, “Close integration between UML and
IEC 61131-3: New possibilities through object-oriented extensions,” in
Proc. IEEE Conf. Emerging Technol. Factory Autom., 2009, pp. 1–6.
[41] M. Witsch and B. Vogel-Heuser, “Towards a formal specification
framework for manufacturing execution systems,” IEEE Trans. Ind.
Inf., vol. 8, no. 2, pp. 311–320, May 2012.
[42] K. Thramboulidis and G. Frey, “An MDD process for IEC 61131-based
industrial automation systems,” in Proc. IEEE 16th Conf. Emerging
Technol. Factory Autom., Toulouse, France, 2011, pp. 1–8.
[43] IEC International Standard IEC 62424: Representation of Process
Control Engineering—Requests in P&I Diagrams and Data Exchange
Between P&ID Tools and PCE-CAE Tools. Geneva, Switzerland:
Int. Electrotech. Commission, 2008.
[44] L. Hundt, R. Drath, A. Lüder, and J. Peschke, “Seamless automation
engineering with automationML,” in 14th International Conference
on Concurrent Enterprising (ICE 2008), Lisboa, Portugal, 2008, pp.
685–692.
[45] “XML Formats for IEC 61131-3,” PLCopen Technical Commitee
6, 2009 [Online]. Available: http://www.plcopen.org/pages/tc6_xml/
downloads/tc6_xml_v201_technical_doc.pdf
[46] E. Estévez, M. Marcos, and D. Orive, “Automatic generation of PLC
automation projects from component-based models,” Int. J. Adv.
Manuf. Technol., vol. 35, pp. 527–540, 2007.
[47] E. Estevez and M. Marcos, “Model based validation of industrial con-
trol systems,” IEEE Trans. Ind. Inf., vol. 8, no. 2, pp. 302–310, May
2011.
[48] S. Vinoski, “CORBA: Integrating diverse applications within dis-
tributed heterogeneous environments,” IEEE Commun. Mag., vol. 35,
pp. 46–55, 1997.
[49] R. Sessions, COM and DCOM: Microsoft’s Vision for Distributed Ob-
jects. New York, NY, USA: Wiley, 1997.
[50] I. Crnkovic and M. Larsson, “A case study: Demands on compo-
nent-based development,” in Proc. Int. Conf. Software Eng., 2000, pp.
23–31.
[51] I.Calvo,F.Perez,I.Etxeberria,andG.Moran,“Controlcommunications
with DDS using IEC61499 service interface function blocks,”
in Proc. IEEE Conf. Emerging Technol. Factory Autom., 2010,
pp. 1–4.
[52] J. Camerini, A. Chauvet, and M. Brill, “Interface for distributed au-
tomation: IDA,” in Proc. 8th IEEE Int. Conf. Emerging Technol. Fac-
tory Autom., 2001, vol. 2, pp. 515–518.
[53] K. Trkaj, “Users introduce component based automation solutions,”
Computing Control Eng. J., vol. 15, pp. 32–37, 2004.
[54] C. R. Maga, N. Jazdi, and P. Göhner, “Reusable models in industrial
automation: Experiences in defining appropriate levels of granularity,”
in Proc. 18th World Congress IFAC, 2011, pp. 9145–9150.
[55] L. Szer-Ming, R. Harrison, and A. A. West, “A component-based dis-
tributed control system for assembly automation,” in Proc. 2nd IEEE
Int. Conf. Ind. Inf., 2004, pp. 33–38.
[56] T. Strasser et al., “Structuring of large scale distributed control
programs with IEC 61499 subapplications and a hierarchical plant
structure model,” in Proc. IEEE Int. Conf. Emerging Technol. Factory
Autom., Sep. 15–18, 2008, pp. 934–941.
[57] H.-M. Hanisch, “Closed-loop modeling and related problems of em-
bedded control systems in engineering,” in Proc. ASM Abstract State
Machines: Advances in Theory and Practice, Lutherstadt Wittenberg,
2004, pp. 24–28.
[58] G. Cutts and S. Rattigan, “Using Petri Nets to develop programs for
PLC systems,” in Application and Theory of Petri Nets, K. Jensen,
Ed. Berlin, Germany: Springer, 1992, vol. 616, pp. 368–372.
[59] G. Frey, “Automatic implementation of Petri net based control algo-
rithms on PLC,” in Proc. Amer. Control Conf., Chicago, 2000, pp.
2819–2823.
[60] J. Thieme and H. M. Hanisch, “Model-based generation of modular
PLC code using IEC61131 function blocks,” in Proc. IEEE Int. Symp.
Ind. Electron., 2002, vol. 1, pp. 199–204.
[61] L. E. Pinzon, H. M. Hanisch, M. A. Jafari, and T. Boucher, “A compar-
ative study of synthesis methods for discrete event controllers,” Formal
Methods in System Design, vol. 15, pp. 123–167, 1999.
[62] T. Winkler, H. C. Lapp, and H. M. Hanisch, “A new model structure
based synthesis approach for distributed discrete process control,”
in Proc. 9th IEEE Int. Conf. Ind. Inf., Lisbon, Portugal, 2011, pp.
527–532.
[63] M. Wooldridge, An Introduction to Multi-Agent Systems. New York,
NY, USA: Wiley, 2002.
[64] P. Leitão, “Agent-based distributed manufacturing control: A state-of-
the-art survey,” Eng. Applic. Artif. Intell., vol. 22, pp. 979–991, 2009.
[65] M. Metzger and G. Polaków, “A survey on applications of agent tech-
nology in industrial process control,” IEEE Trans. Ind. Inf., vol. 7, no.
3, pp. 570–581, Aug. 2011.
[66] M. Pechoucek and V. Marík, “Industrial deployment of multi-agent
technologies: Review and selected case studies,” Autonomous Agents
and Multi-Agent Syst., vol. 17, pp. 397–431, 2008.
[67] S. Theiss, V. Vasyutynskyy, and K. Kabitzsch, “Software agents in in-
dustry: A customized framework in theory and praxis,” IEEE Trans.
Ind. Inf., vol. 5, no. 1, pp. 147–156, Feb. 2009.
[68] V. V. Herrera, A. Bepperling, A. Lobov, H. Smit, A. W. Colombo,
and J. Lastra, “Integration of multi-agent systems and service-oriented
architecture for industrial automation,” in Proc. 6th IEEE Int. Conf.
Ind. Inf., 2008, pp. 768–773.
[69] J. L. M. Lastra and M. Delamer, “Semantic web services in factory
automation: Fundamental insights and research roadmap,” IEEE Trans.
Ind. Inf., vol. 2, no. 1, pp. 1–11, Feb. 2006.
[70] T. Erl, Service-Oriented Architecture: Concepts, Technology, and De-
sign. Upper Saddle River, NJ, USA: Prentice-Hall PTR, 2005.
[71] F. Jammes and H. Smit, “Service-oriented paradigms in industrial au-
tomation,” IEEE Trans. Ind. Inf., vol. 1, no. 1, pp. 62–70, Feb. 2005.
[72] A. Cannata, M. Gerosa, and M. Taisch, “SOCRADES: A framework
for developing intelligent systems in manufacturing,” in Proc. IEEE
Int. Conf. Ind. Eng. Eng. Manag., 2008, pp. 1904–1908.
15. 1248 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 9, NO. 3, AUGUST 2013
[73] G. Candido, A. W. Colombo, J. Barata, and F. Jammes, “Service-Ori-
ented infrastructure to support the deployment of evolvable production
systems,” IEEE Trans. Ind. Inf., vol. 7, no. 4, pp. 759–767, Nov. 2011.
[74] J. M. Mendes, A. Bepperling, J. Pinto, P. Leitao, F. Restivo, and A.
W. Colombo, “Software methodologies for the engineering of service-
oriented industrial automation: The continuum project,” in Proc. 33rd
Annu. IEEE Int. Comput. Software Applic. Conf., 2009, pp. 452–459, .
[75] H. Dibowski, J. Ploennigs, and K. Kabitzsch, “Automated design of
building automation systems,” IEEE Trans. Ind. Electron., vol. 57, no.
11, pp. 3606–3613, Nov. 2010.
[76] E. Faldella, A. Paoli, A. Tilli, M. Sartini, and D. Guidi, “Architectural
design patterns for logic control of manufacturing systems: The gener-
alized device,” in Proc. XXII Int. Symp. Inf., Commun. Autom. Technol.,
2009, pp. 1–7.
[77] F. Serna, C. Catalan, A. Blesa, and J. M. Rams, “Design patterns for
failure management in IEC 61499 function blocks,” in Proc. IEEE
Conf. Emerging Technol. Factory Autom., 2010, pp. 1–7.
[78] T. M. H. Reenskaug, “Model-View-Controller design pattern,” Apr.
2013 [Online]. Available: http://heim.ifi.uio.no/~trygver/themes/mvc/
mvc-index.html
[79] J. H. Christensen, “Design patterns for systems engineering with IEC
61499,” in Proc. Verteilte Automatisierung—Modelle und Methoden
für Entwurf, Verifikation, Eng Instrum., Magdeburg, Germany, Mar.
22–23, 2000, pp. 63–71.
[80] D. Schutz, M. Schraufstetter, J. Folmer, B. Vogel-Heuser, T. Gmeiner,
and K. Shea, “Highly reconfigurable production systems controlled by
real-time agents,” in Proc. 16th IEEE Conf. Emerging Technol. Factory
Autom., 2011, pp. 1–8.
[81] V. Dubinin and V. Vyatkin, “Semantics-robust design patterns for IEC
61499,” IEEE Trans. Ind. Inf., vol. 8, no. 2, pp. 279–290, May 2012.
[82] M. Tangermann, C. Schwab, A. Kalogeras, K. Lorentz, and A. Prayati,
R. Meersman, Z. Tari, and ed, Eds., in Proc. OTM Workshops Aspect-
Orientation of Control Application Code for Distributed Automation
Systems: The TORERO Approach on the Move to Meaningful Internet
Syst., Berlin, Germany, 2003, vol. 2889, pp. 335–345, Springer.
[83] M. A. Wehrmeister, E. P. Freitas, C. E. Pereira, and F. Rammig, “Gen-
ERTiCA: A tool for code generation and aspects weaving,” in Proc.
11th IEEE Int. Symp. Object Oriented Real-Time Distrib., 2008, pp.
234–238.
[84] A. Binotto, E. P. Freitas, C. E. Pereira, and T. Larsson, “Towards dy-
namic task scheduling and reconfiguration using an aspect oriented ap-
proach applied on real-time concerns of industrial systems,” in Proc.
Inf. Control Problems Manuf., Moscow, Russia, 2009, pp. 1423–1428.
[85] A. Luder, J. Peschke, and M. Heinze, “Control programming using
Java,” IEEE Ind. Electron. Mag., vol. 2, pp. 19–27, 2008.
[86] K. Thramboulidis and A. Zoupas, “Real-time Java in control and
automation: A model driven development approach,” in Proc. 10th
IEEE Conf. Emerging Technol. Factory Autom., Catania, Italy, 2005,
pp. 8–46.
[87] M. Jimenez, F. Rosique, P. Sanchez, B. Alvarez, and A. Iborra, “Habi-
tation: A domain-specific language for home automation,” IEEE Soft-
ware, vol. 26, pp. 30–38, 2009.
[88] N. Papakonstantinou, S. Sierla, and K. Koskinen, “Object oriented ex-
tensions of IEC 61131-3 as an enabling technology of software product
lines,” in Proc. 16th IEEE Conf. Emerging Technol. Factory Autom.,
Toulouse, France, 2011, pp. 1–8.
[89] H. P. Breivold, S. Larsson, and R. Land, “Migrating industrial systems
towards software product lines: Experiences and observations through
case studies,” in Proc. 34th Euromicro Conf. Software Eng. Adv. Ap-
plic., 2008, pp. 232–239.
[90] L. F. Wang, K. C. Tan, X. D. Jiang, and Y. B. Chen, “A flexible auto-
matic test system for rotating-turbine machinery,” IEEE Trans. Autom.
Sci. Eng., vol. 2, no. 1, pp. 1–18, Jan. 2005.
[91] R. Hametner, D. Winkler, T. Ostreicher, S. Biffl, and A. Zoitl, “The
adaptation of test-driven software processes to industrial automation
engineering,” in Proc. 8th IEEE Int. Conf. Ind. Inf., 2010, pp. 921–927.
[92] IEEE Standard for Software Maintenance, IEEE Std 1219-1998, 1998,
.
[93] V. T. Rajlich and K. H. Bennett, “A staged model for the software life
cycle,” Computer, vol. 33, pp. 66–71, 2000.
[94] T. Hussain and G. Frey, “Migration of a PLC controller to an IEC
61499 compliant distributed control system: Hands-on experiences,”
in Proc. IEEE Int. Conf. Robot. Autom., 2005, pp. 3984–3989.
[95] W. Dai and V. Vyatkin, “Redesign distributed PLC control systems
using IEC 61499 function blocks,” IEEE Trans. Autom. Science Eng.,
vol. 9, no. 2, pp. 390–401, Apr. 2012.
[96] C. Suender, M. Wenger, C. Hanni, I. Gosetti, H. Steininger, and J.
Fritsche, “Transformation of existing IEC 61131-3 automation projects
into control logic according to IEC 61499,” in Proc. IEEE Int. Conf.
Emerging Technol. Factory Autom., 2008, pp. 369–376.
[97] M. Wenger, A. Zoitl, C. Sunder, and H. Steininger, “Transformation
of IEC 61131-3 to IEC 61499 based on a model driven development
approach,” in Proc. 7th IEEE Int. Conf. Ind. Inf., 2009, vol. 1,2, pp.
715–720.
[98] M. Fowler and K. Beck, Refactoring: Improving the Design of Existing
Code. Reading, MA, USA: Addison-Wesley, 1999.
[99] V. Vyatkin and V. Dubinin, “Refactoring of execution control charts
in basic function blocks of the IEC 61499 standard,” IEEE Trans, Ind.
Inf., vol. 6, no. 2, pp. 155–165, May 2010.
[100] R. Froschauer, D. Dhungana, and P. Grunbacher, “Managing the life-
cycle of industrial automation systems with product line variability
models,” in Proc. 34th Euromicro Conf. Software Eng. Adv. Applic.,
2008, pp. 35–42.
[101] R. S. Pressman, Software Engineering: A Practitioner’s Approach, 7th
ed. New York, NY, USA: McGraw-Hill, 2001.
[102] O. Hummer, C. Sunder, A. Zoitl, T. Strasser, M. N. Rooker, and G.
Ebenhofer, “Towards zero-downtime evolution of distributed control
applications via evolution control based on IEC 61499,” in Proc. IEEE
Conf. Emerging Technol. Factory Autom., 2006, pp. 1285–1292.
[103] T. Moser, R. Mordinyi, D. Winkler, and S. Biffl, “Engineering project
management using the engineering cockpit: A collaboration platform
for project managers and engineers,” in Proc. 9th IEEE Int. Conf Ind.
Inf., Lisbon, Portugal, 2011, pp. 579–584.
[104] K. C. Thramboulidis and C. S. Tranoris, “Developing a CASE tool for
distributed control applications,” Int. J. Adv. Manuf. Technol., vol. 24,
pp. 24–31, 2004.
[105] “International standard: IEC 61508 functional safety of electrical
electronic programmable electronic safety related systems,” in
Part1-Part7. Geneva, Switzerland: Int. Electrotech. Commission,
1999–2000.
[106] H. Von Krosigk, “Functional safety in the field of industrial automa-
tion. The influence of IEC 61508 on the improvement of safety-related
control systems,” Computing Control Eng. J., vol. 11, pp. 13–18, 2000.
[107] G. Frey and L. Litz, “Formal methods in PLC programming,” in Proc.
IEEE Int. Conf. Syst., Man, Cybern., 2000, vol. 4, pp. 2431–2436.
[108] T. L. Johnson, “Improving automation software dependability: A role
for formal methods?,” Control Eng. Practice, vol. 15, pp. 1403–1415,
2007.
[109] H. M. Hanisch, M. Hirsch, D. Missal, S. Preuße, and C. Gerber, “One
decade of IEC 61499 modeling and verification-results and open is-
sues,” in Proc. Inf. Control Problems Manuf. Conf., Moscow, Russia,
2009, pp. 211–216.
[110] L. H. Yoong, P. S. Roop, V. Vyatkin, and Z. Salcic, “A synchronous
approach for IEC 61499 function block implementation,” IEEE Trans.
Comput., vol. 58, no. 12, pp. 1599–1614, Dec. 2009.
[111] D. Gašević, N. Kaviani, and M. Milanović, Ontologies and Software
Engineering Handbook on Ontologies, S. Staab, D. R. Studer, and ed,
Eds. Berlin, Germany: Springer, 2009, pp. 593–615.
[112] H.-J. Happel and S. Seedorf, “Applications of ontologies in software
engineering,” in Proc. 2nd Int. Workshop Semantic Web Enabled Soft-
ware Eng/5th Int. Semantic Web Conf., Athens, GA, USA, 2006, pp.
5–9.
[113] D. Hästbacka and S. Kuikka, “Semantics enhanced engineering and
model reasoning for control application development,” Multimedia
Tools Applic., vol. 65, no. 1, pp. 47–62, Jul. 2013.
[114] G. Black and V. Vyatkin, “Intelligent component-based automation of
baggage handling systems with IEC 61499,” IEEE Trans. Autom. Sci.
Eng., vol. 7, no. 2, pp. 337–351, Apr. 2010.
[115] W. Lepuschitz, A. Zoitl, M. Valle, and M. Merdan, “Toward self-recon-
figuration of manufacturing systems using automation agents,” IEEE
Trans. Syst., Man, Cybern. C, Applic. Rev., vol. 41, no. 1, pp. 52–69,
Jan. 2011.
[116] I. Hegny, O. Hummer, A. Zoitl, G. Koppensteiner, and M. Merdan,
“Integrating software agents and IEC 61499 realtime control for re-
configurable distributed manufacturing systems,” in Proc. Int. Symp.
Ind. Embedded Syst., 2008, pp. 249–252.
16. VYATKIN: SOFTWARE ENGINEERING IN INDUSTRIAL AUTOMATION: STATE-OF-THE-ART REVIEW 1249
Valeriy Vyatkin (SM’04) received the Engineer de-
gree in applied mathematics, Ph.D., and Dr. Sci. de-
grees from Taganrog State University of Radio Engi-
neering, Taganrog, Russia, in 1988, 1992, and 1998,
respectively. and the Dr.Eng. degree from Nagoya In-
stitute of Technology, Nagoya, Japan, in 1999.
He is the Chaired Professor of Dependable
Computation and Communication Systems at Luleå
University of Technology, Luleå, Sweden, and
a Visiting Scholar with Cambridge University,
Cambridge, U.K., on leave from The University of
Auckland, Auckland, New Zealand, where he has been an Associate Professor
and Director of the InfoMechatronics and Industrial Automation lab (MITRA)
with the Department of Electrical and Computer Engineering. His previous
faculty positions were with Martin Luther University of Halle-Wittenberg in
Germany (Senior Researcher and Lecturer, 1999–2004), and with Taganrog
State University of Radio Engineering, Taganrog, Russia (Associate Professor
and Professor, 1991–2002). His research interests are in the area of depend-
able distributed automation and industrial informatics, including software
engineering for industrial automation systems, distributed architectures, and
multi-agent systems applied in various industry sectors: smart grid, material
handling, building management systems, and reconfigurable manufacturing. He
is also active in research on dependability provisions for industrial automation
systems, such as methods of formal verification and validation, and theoretical
algorithms for improving their performance.
Prof Vyatkin was the recipient of the Andrew P. Sage Award for Best IEEE
Transactions Paper in 2012.