ENHANCEMENT OF RAPID OBJECT PROCESS FOR EMBEDDED SYSTEM

advertisement
ENHANCEMENT OF RAPID OBJECT PROCESS FOR EMBEDDED SYSTEM
(ROPES) TO SUPPORT PATTERN ORIENTED DEVELOPMENT
MOHD ADHAM BIN ISA
A project report submitted in partial fulfilment of the
requirements for the award of the degree of
Master of Science (Computer Science)
Faculty of Computer Science and Information Systems
University of Technology Malaysia
OCTOBER 2009
ACKNOWLEDGEMENT
In preparing this project report, I wish to express my sincere appreciation to my
supervisor Dr. Dayang Norhayati Binti Abang Jawawi for the guidance, advice and
encouragement during my studying. The support and suggestion that Dr. Dayang gives
inspired me to going through in this project.
I would like to thanks to Software Engineering Lab members in Universiti
Teknologi Malaysia for their helps and supports.
Finally my special thanks to my parent for their love and care especially my
beloved wife Mastura Md. Hassan and my beautiful daughter Elya Darwisyah for their
support and cheering me up at those difficult time.
ABSTRACT
The complexity of Embedded Real Time (ERT) software development represents
a challenging of analysing, designing and building ERT software. From this standpoint,
the complexity of ERT software development means a challenging to adapt all ERT
software requirements such as timing and resource constraints into its software lifecycle.
Against these claims, a wide range of software development methodologies have been
devised such as patterns. Patterns codify an effective solution for recurring problems that
allows software engineers to reuse. By applying patterns into ERT software
development, the complexity of ERT software development can be decreased and at the
same time promote high degree of reuse through software patterns. In this project, the
integrated Rapid Object Process for Embedded System (ROPES) and Pattern-oriented
Analysis and Design (POAD) methodology has been developed to represent a promising
way to build ERT software with software patterns reuse. To make the integrated
methodology more compelling and confirm the rules of patterns oriented modelling, the
integrated ROPES and POAD metamodel has been developed. The aim of the integrated
metamodel is to conform the correctness of the integrated methodology modelling rules
in term of pattern uses. In addition, the integrated ROPES and POAD software process
also has been built as the continuity to describe concrete integrated software
development process. To verify the correctness of the integrated metamodel, the
mapping process of Meta-Object Facility (MOF) using graph theory has been conducted.
The results of implementing the integrated metamodel and software process for
Feedback Control System (FCS) shows that the complexity of ERT software
development has been decreased besides promote software patterns reuse.
ABSTRAK
Pembangunan perisian Sistem Masa Nyata Terbenam (ERT) yang kompleks
menunjukkan keunikan menganalisa, merekabentuk dan membina perisian ERT.
Daripada ciri-ciri ini, pembangunan perisian ERT yang kompleks bermakna cabaran
untuk merealisasikan semua keperluan perisian ERT seperti masa and kekekangan
sumber keatas proses kitaran pembangunan perisiannya. Berpandukan kenyataan
tersebut, pelbagai metodologi pembangunan perisian telah diubah atau dinaiktaraf
sebagai contoh adalah corak. Corak memberikan penyelesaian yang efektif bagi
penyelesain masalah yang berulang serta membolehkan jurutera perisian menggunakan
semula kaedah ini bagi menyelesaikan masalah lain. Dengan mengaplikasikan
penggunaan corak keatas pembangunan perisian ERT, kerumitan prosesnya dapat
dikurangkan selain menggalakkan penggunaan semula corak. Di dalam projek ini,
gabungan Rapid Object Process for Embedded System (ROPES) dan Pattern-oriented
Analysis and Design (POAD) metodologi telah dibangunkan. Untuk menjadikan
gabungan kedua-dua metodologi ini lebih kukuh dan mengikut peraturan pembangunan
perisian berasaskan corak, gabungan metamodel telah dihasilkan. Matlamat utamanya
adalah untuk memastikan rekabentuk perisian ERT mengikut corak. Selain itu,
pembangunan proses perisian juga telah dibangunkan. Untuk memastikan gabungan
metamodel tepat, proses teori graf bersama Meta-Object Facility (MOF) telah dilakukan.
Hasil keputusan keatas pelaksanaan gabungan metamodel dan proses pembangunan
perisian menunjukan kerumitan pembangunan perisian ERT telah dikurangkan dan
penggunaan semula corak keatas rekabentuk perisian telah ditingkatkan.
TABLE OF CONTENTS
CHAPTER
TITLE
PAGE
DECLARATION OF THESIS STATUS
SUPERVISOR DECLARATION
1
TITLE PAGE
i
STUDENT DECLARATION
ii
ACKNOWLEDGEMENT
iii
ABSTRACT
iv
TABLE OF CONTENT
vi
LIST OF TABLE
xi
LIST OF FIGURE
xii
LIST OF ABBREVATION
xv
LIST OF APPENDIX
xvi
PROJECT OVERVIEW
1.1
Introduction
1
1.2
Problem Background
4
1.3
Problem Statement
6
1.4
Project Aim
7
1.5
Objectives
7
1.6
Scopes
8
1.7
Significance of the project
8
1.8
2
Thesis Outline
9
LITERATURE REVIEW
2.1
Introduction
10
2.2
Component Based Software Engineering (CBSE)
11
2.2.1 Software Component Model
11
2.3
Component Oriented Development
13
2.4
Pattern Oriented Development
16
2.4.1 Software Pattern
17
2.4.1.1
Analysis Pattern
18
2.4.1.2
Design Pattern
19
2.4.1.3
Programming Pattern
19
2.4.2 Pattern Oriented Methodology
2.4.2.1
Pattern Oriented Analysis and
20
21
Design (POAD)
2.4.2.2
Pattern Driven Modelling and
25
Analysis (PDMA)
2.5
2.6
2.4.2.3
Metamodel POAD+PECOS
26
2.4.2.4
Design Pattern + CBSD
28
2.4.2.5
Comparative Evaluation
29
Embedded Real Time (ERT) System
30
2.5.1 ERT System Methodology
31
2.5.1.1
ROPES
32
2.5.1.2
OCTOPUS/UML
34
2.5.1.3
COMET
36
2.5.1.4
MARMOT
38
2.5.1.5
DESS
40
2.5.1.6
Comparative Evaluation
43
Discussion
45
3
4
RESEARCH METHODOLOGY
3.1
Introduction
47
3.2
The Software Engineering Research
48
3.3
Research Framework and Process
49
3.3.1 Problem Formulation
51
3.3.2 Literature Review
51
3.3.3 Integrated Metamodel POAD and ROPES
52
3.3.4 Define and Design Software Process
53
3.4
Feedback Control System (FCS)
54
3.5
Summary
56
INTEGRATED ROPES AND POAD METAMODEL
4.1
Introduction
57
4.2
Metamodel
58
4.2.1 UML Specification
59
4.3
POAD Metamodel
60
4.4
ROPES Metamodel
63
4.5
Integrated POAD and ROPES Metamodel
66
4.5.1 Mapping POAD to ROPES
66
4.5.1.1
Mapping POAD Metamodel to
67
ROPES Metamodel
4.5.1.2
Validation of the Integrated
72
ROPES and POAD Metamodel
4.5.1.3
Mapping ROPES Process to
77
POAD Process
4.5.1.4
Initial Result of POAD + ROPES
79
Development Process
4.5.2 Summary
5
THE INTEGRATED ROPES AND POAD
SOFTWARE PROCESS
82
5.1
Introduction
84
5.2
Software Process Engineering Process (SPEM)
85
5.3
The Process Model
86
5.3.1 Method Content
88
5.3.1.1
Role Definition
89
5.3.1.2
Work Product Definition
91
5.3.1.3
Task Definition
93
5.3.2 Process Content
94
5.3.2.1
Analysis Process
97
5.3.2.2
Design Process
102
5.4
Discussion On The Proposed Software Process
107
5.5
Comparative Evaluation on Pattern Oriented
108
Development
6
ANALYSIS AND DESIGN OF FEEDBACK
CONTROL SYSTEM
6.1
Introduction
111
6.2
Analysis Phase
111
6.2.1 Requirement Analysis
112
6.3
6.2.1.1
Main Use Case
113
6.2.1.2
Use Case Behaviour
114
6.2.1.3
Use Case Text
114
6.2.1.4
Sequence Diagram
117
6.2.1.5
Statechart
118
6.2.1.6
Pattern Selection
120
6.2.2 System Analysis
122
6.2.3 Object Analysis
123
6.2.3.1
Object Structural
124
6.2.3.2
Object Behaviour
126
6.2.4 Analysis Result Summary
128
Design Phase
129
6.3.1 Architectural Design
129
6.3.1.1
Component View
130
6.3.1.2
Deployment View
131
6.3.1.3
Pattern Level Diagram
132
6.3.1.4
Pattern Level with Interface
134
Diagram
6.3.2 Mechanistic Design
6.4
7
6.3.2.1
Design Pattern Internal Class
135
6.3.2.2
Refined Class Diagram
138
6.3.2.3
Sequence Diagram
141
6.3.2.4
Statechart Diagram
142
6.3.3 Detailed Design
145
6.3.4 Design Result Summary
146
Summary and Discussion
147
DISCUSSION AND FUTURE WORK
7.1
Introduction
149
7.2
Summary
150
7.3
Project Contribution
151
7.4
Future Work
152
REFERENCES
Appendix A
135
154
158-176
LIST OF TABLES
TABLE NO.
TITLE
PAGE
2.1
Comparative of Pattern-Oriented Methodology
29
2.2
Comparative Evaluation of ERT System
44
Development Methodology
3.1
Summary of research process
54
4.1
Metamodelling four-layer architecture
59
4.2
POAD Artefacts produced vs UML Meta model
61
4.3
Artefacts produced in ROPES Methodology
64
4.4
Mapping POAD to ROPES Metamodel
68
4.5
ROPES and POAD Development Phase Mapping
78
5.1
Comparative Evaluation on Pattern Oriented
109
Development Methodology
6.1
Pattern Selection Analysis
121
6.2
Subsystem Tasks
123
6.3
FCS Transaction Objects
124
6.4
Subsystem Objects
125
6.5
Patterns Package
132
6.6
Pattern Internal Classes
136
6.7
Refined FCS Class Diagrams Summary
139
6.8
Statechart Diagram
143
LIST OF FIGURES
FIGURE NO.
TITLE
PAGE
2.1
The CBSD Process (Sommerville, 2004)
14
2.2
V development process (Crnkovic, 2003)
15
2.3
Y development process (Fernando, 2005)
16
2.4
POAD Development Phase (Yacoub and Ammar,
22
2004)
2.5
Process in Analysis Phase (Yacoub and Ammar,
22
2004)
2.6
Process in Design Phase (Yacoub and Ammar, 2004)
23
2.7
Process in Design Refinement Phase (Yacoub and
24
Ammar, 2004)
2.8
Software Process for Integrated POAD and PECOS
27
(Jawawi, 2005)
2.9
CBSD Process Using Design Pattern (Yau and Dong,
28
2000)
2.10
ROPES Development Phases (Douglass, 1999)
33
2.11
Octopus/UML System Development Pattern
35
2.12
COMET System Development (Gomaa, 2001)
37
2.13
MARMOT Development Process and Component
39
Meta model (Christian et. all., 2007)
2.14
DESS Workflow Vs (Stefan et. all., 2001)
41
2.15
Realization Workflow (Stefan et. al., 2001)
42
2.16
Validation and Verification Workflow (Stefan et. al.,
42
2001)
2.17
Requirement Management Workflow (Stefan et. al.,
43
2001)
3.1
Research Framework
50
3.2
Block diagram for feedback control system
55
4.1
POAD Meta model
62
4.2
Enhancement of POAD Meta model (Jawawi, 2006)
63
4.3
ROPES Meta model
65
4.4
ROPES + POAD Metamodel
71
4.5
MOF Graph
73
4.6
Graph for The integrated ROPES and POAD
74
metamodel
4.7
Equation (3) and (4) Mapping
77
4.8
ROPES + POAD Development Process
80
5.1
Process Model Framework
86
5.2
Details of Process Content and Method Content
88
Elements
5.3
Roles Definition for ROPES+POAD Process Model
90
5.4
Analysis Work Product Definition for
91
ROPES+POAD Process Model
5.5
Design Work Product Definition for ROPES+POAD
92
Process Model
5.6
Task Definition for ROPES+POAD Process Model
93
5.7
Process of Flow of the Integrated ROPES and POAD
96
Software Process
5.8
Analysis Process for ROPES+POAD Process Model
97
5.9
Requirement Analysis Task Use Step
98
5.10
Pattern Selection: Pattern Selection Process Step
99
5.11
System Analysis Task Use Step
100
5.12
Object Analysis Task Use Step
101
5.13
Design Process for ROPES+POAD Process Model
102
5.14
Architectural Design Task Use Step
103
5.15
Design Pattern Modification Process Flow
104
5.16
Mechanistic Design Task Use Step Process
105
5.17
Design Pattern Internal Class Process Flow
105
5.18
Detailed Design Task Use Step Process
106
6.1
FCS Use Case
113
6.2
UC-00
115
6.3
Configure Use Case Sequence Diagram
117
6.4
Error Calculation Statechart
119
6.5
Collect Data Statechart
120
6.6
FCS Subsystem Composition
122
6.7
Subsystem Diagram
126
6.8
FFStrategy Object Statechart
127
6.9
Component View in FCS
130
6.10
Deployment View of FCS
131
6.11
Pattern Level Diagram in ErrorCalculation
133
Subsystem
6.12
Pattern Level Diagram with Interface for
134
ErrorCalculation Subsystem
6.13
FCS Class Diagram with Patterns
137
6.14
FCS Refined Class Diagram
141
6.15
Error Calculation Sequence Diagram
142
6.16
Plant Class Statechart
144
6.17
Plant Statechart Simulation Result
145
LIST OF ABBREVIATIONS
CBSE
Component Based Software Engineering
CBSD
Component Based Software Development
COMET
Concurrent Object Modelling and Architectural Design Method
DESS
Software Development Process for Real Time Embedded Software
System
EJB
Enterprise Java Bean
ERT
Embedded Real Time
FCS
Feedback Control System
MARMOT
Method for Component-based Real Time Object Oriented
Development and Testing
MOF
Meta Object Facility
OOA
Object Oriented Analysis
OOD
Object Oriented Design
OCL
Object Constraint Language
OMG
Object Management Group
PDMA
Pattern Driven Modelling and Analysis
PECOS
Pervasive Component System
POAD
Pattern Oriented Analysis and Design
POSA
Pattern Oriented Software Architecture
ROPES
Rapid Object Process for Embedded System
SOF
Special Octopus Feature
SPEM
Software Process Engineering Modelling
UML
Unified Modelling Language
LIST OF APPENDIX
APPENDIX
A
TITLE
Analysis and Design of FCS
PAGE
158
CHAPTER 1
PROJECT OVERVIEW
1.1
Introduction
The necessity of the complex systems was felt with the demand from the large
scale company or requirement. For the last fifty years, software systems have become
more complex and larger. Following the traditional approaches which is developed a
system from scratch eventually resulted the problems like failure to meet customer
requirements, budget constraint and extend deadline. Then, in order to overcome those
problems, it was realized that the software reusability is the essential factors that
contributing of minimizing the existing problems. Software reusability allows parts of
software component to be renewed or replaced by existing components. Thus, software
reusability helps software developers to concentrate on adding more complex system
functionalities rather than focusing on developing basic components. Here the concept
of software reusability was constructed which eventually creating the software
development methodology called Component Based Software Engineering (CBSE).
Component Based Software Engineering (CBSE) is the methodology that
ensuring the improvement of the software quality, increasing software productivity,
effective management for complex software and wider range of usability (Crnkovic,
2003). CBSE main principles are building the systems from the existing and selecting
components within the suitable software architecture. The software components are
composed together with the specific glue code and composition technique. Szyperski
(2002) defines a component is a unit of composition with specified interfaces and
explicit context dependencies only. A software component can be deployed
independently and is subjected to compose by a third party. Thus, a component must
have interface and hiding information that enable to be composed each other. JavaBeans,
EJB, COM, Koala, PECOS (Nierstransz et al., 2002) and ADLs (Clements, 1996) are the
examples of component technologies. In addition, a component is designed to solve
particular problems and resembles like a pattern that forces the developers to use
predefined process or design to be used in software development process.
A pattern was introduced into the software development process as a means of
manipulating hard-earned experience from the previous problems (Kotonya Hutchinson,
2005). Yacoub and Ammar (2004) defines a pattern as problems that frequently occurs
in software development and then defines the explicit solution that it can be reused while
Fernandez and Yuan (2000) defines a pattern is a recurring combination of meaningful
units that occur in some context. Then, a pattern is enabling software engineer to capture
the software requirements from early phases. Patterns can be divided into analysis
pattern, design pattern and programming pattern. Analysis pattern occurs at the early
phases and known as a group of concepts that representing a common construction in
business modelling (Fowler, 1997).
Design pattern is more matured than analysis
pattern (Sesera, 2000). Design pattern is a design solution to a frequently recurring
design problem in a given application domain (Yacoub et al., 2000).
There are many software development methodology based on patterns were
introduced such as POAD, PDMA, and Design pattern + CBSD. These methodologies
use software patterns as its core specification. POAD is one of the methodologies that
develop a system from the analysis phases until design phases by using software
patterns. Thus, POAD is a structural approach of software development rather than
behaviour approach (Yacoub and Ammar, 2004). In addition, POAD methodology leads
into the bridging the gaps between software abstraction into software designs by
combining software patterns artefacts into pattern-oriented software development. By
the existing of various software patterns, there is a growing demand of searching a new
and cost effective of software development paradigm. Then, one of the most promising
solutions today is the pattern-oriented development.
A pattern-oriented development is an approach to deal with the complexity of
software development. The complexity of the software development usually comes from
the extra requirements such as timing and resource constraints. By applying patternoriented development in the software development process, the skeleton of the software
can be perceived up-front by using knowledge of previously patterns. Moreover, it will
give the traceability of software artefacts from the analysis to design. Moreover, there
are a few advantages of using pattern in software development. The advantages are 1)
the reuse experienced, 2)the development of standards types of solution, and 3)a
normalized mechanism for abstracting form multiple example and method for
categorizing problems (Kotonya and Hutchinson, 2005). The effectiveness of
minimizing the complexity of software development can be realized by composing
software patterns into the software development process.
The complexity of software development process is known as the most critical
stage in the process of building software. Indeed, this is due to the complexity of the
embedded real-time software requirements as a solution for ever more demanding
applications required. ERT software requirements such as timing and resource
constraints represent a promising point of the complexity of ERT software product. Most
of the embedded systems are characterized as real time systems, which consist of real
time properties such as response time and worse case execution time (Crnkovic, 2005).
Consequently, the complexity of the demanding ERT requirements will be likely is
resulted the complexity of ERT software development.
The motivation of using software patterns in ERT software developments is
twofold. Firstly, despite ERT software are being touted as a complex software due to its
requirements, the most compelling form of ERT software would be to show how
adopting software patterns can decrease the complexity of ERT software development to
some standard of software process. This is clearly the major issue which this project
seeks to address. Secondly, because of the implementation of software patterns can
decrease the complexity of ERT software development to some degree that will have the
major impact of the degree reuse of software patterns. To some extent, the high degree
reuse of software patterns will decrease the complexity of the ERT software
development. Moreover, this is envisioned that CBSE will be the suitable solution to
inspire software reuse into ERT system with consideration of reusable, interoperable, up
gradable and reliable features. Thus, patterns are promoting the precise planning and
systematic software development process by using software pattern into ERT system
development
1.2
Problem Background
Nowadays, the use of software in the different domains is highly demanded such
as web application, windows environment as well as embedded real time system (ERT).
ERT system is a system that combines both hardware and software. The hardware
component of the system tries to persuade the timing constraints while software reduces
the overall cost and design flexibility (Jawawi, 2003). The interoperating of those
elements affects the complexity of the software development. ERT software
developments are crucial since the combination both hardware and software can lead
into the complexity of the process. All of this events must have a systematic process in
order to reduce the time and cost of development.
The design pattern is the defined solution of the hard-earned experience from the
previous software development (Kotonya and Hutchinson, 2005). Thus, the component
based is mechanism of software development which are the component is composed
together in order to build the real time system (Zhang and Yunsheng, 2007). The uses of
pattern and component together could reduce the complexity of the software process.
This is because of the use of pattern for the whole process glued together with the
component could reduce the time and cost of software development.
There a several methodologies that have been introduced focusing on component
based and pattern in the software developments. Pattern oriented analysis and design
(POAD) is a methodology that constraint on the uses of components and patterns from
the analysis stages until the design (Yacoub and Ammar, 2004). However, this
methodology only addresses to the general domain and does not specific for the ERT
system. Rapid object-oriented process for embedded system (ROPES) focusing on the
ERT software developments and capturing both system structural and behavioural
elements (Douglass, 1999). However, ROPES does not address the use of patterns
systematically in software development process. The patterns are occurs only at the
design stages as well as does not have the systematic approaches in term of selecting and
adopting the patterns. By considering the advantages and disadvantages of both
methodologies, the combination of POAD and ROPES that focuses on ERT software
development could reduce the complexity of ERT software development and at the same
time, can ensure the high degree reuse of software patterns.
1.3
Problem Statement
POAD methodology defined the process of analysis and design by using the
selected pattern and consistently defined the pattern for the whole process. ROPES
methodology defined the complex step of software development for ERT but there are
no systematic approaches of using the pattern for each process. To promote the
relevance of pattern-oriented for analysis and design level for the ERT domain, the
consideration falls into ROPES and POAD methodologies. Instead of developing the
new methodologies from the scratch, the hybrid methodologies for ROPES and POAD
can ensure the use of pattern subject to the ERT domain. Therefore, this project will
define the Metamodel and software process for the integrated ROPES and POAD. An
integrated Metamodel for both methodologies represents the abstractions and semantics
in system modelling in order to apply the use of patterns in ERT software development
process and then constructed it in software process in order to get well-defined software
development process. However, there are some problems need to be considered before
the integrated POAD and ROPES metamodel can be realized. The problem arises are
mapping process between both models, defining new development process for integrated
metamodel and selecting a tool for supporting the integrated metamodel. All of this
problems need to be solved in order to get suitable integrated metamodel and software
process.
Therefore, this study proposes the integrated ROPES and POAD methodology to
enable pattern oriented development for ERT domain. Hence, it may decrease the
complexity of ERT software development and promote high degree of reuse in software
patterns.
1.4
Project Aim
The aim of the project is to integrate POAD and ROPES methodologies. The
motivation is to propose the use of patterns by using POAD methodology into the ERT
software development in order to discover the weaknesses of the ROPES methodology.
Indeed, ROPES weaknesses compromise non-systematic use of patterns in its software
development lifecycle. Therefore, the integrated ROPES and POAD metamodel is
proposed and consequently defines the software process for the integrated metamodel.
To show the applicability of the proposed integrated methodology, the implementation
of analysis and design into selected case study of small scale ERT system will be
implemented by using selected modelling tool.
1.5
Objectives
The objectives of the study are:
i.
To study and propose the metamodel for integrated POAD and
ROPES methodologies.
ii. To define the software process for integrated POAD and ROPES
Metamodel using Software Process Engineering Metamodel
(SPEM).
iii. To demonstrate the applicability of the proposed process by using the
I-Logix Rhapsody tool into selected case study.
1.6
Scopes
The scopes of the study are:
i. The analysis and design of Pattern oriented analysis and design
(POAD) methodology.
ii. The analysis and design of Rapid Oriented Process for Embedded
System (ROPES) methodology will only consider to demonstrates the
pattern level analysis and modelling into the case study.
iii. The implementation only for small scale of embedded real time
(ERT) system.
iv. The I-Logix Rhapsody tool is selected to support the integrated
POAD and ROPES metamodel realization because I-Logix Rhapsody
tool support UML 2.0. Focusing on application engineering and assume
the components are already exists.
1.7
Significance of the project
The significance of this project is to promote the software pattern reuse in ERT
software development. The study concentrates on a deep understanding of POAD and
ROPES methodologies. Based on that knowledge, the integrated Metamodel will be
introduced that supports the use of pattern on ROPES methodology. By providing the
proposed Metamodel, the software process can be defined. The advantages that can be
derived from this study are to motivate the use of pattern besides to enhance the ERT
software development process in order to maximize the quality and minimize the cost of
development.
1.8
Thesis Outline
Chapter 2 discusses the pattern-oriented development methodologies and ERT
software development methodologies. The relationship between those methodologies
with the uses of pattern and component in software development are reviewed.
In Chapter 3, the research methodology is conducted in achieving the project
objectives and scopes. One case study is used that involving small scale ERT system.
Chapter 4 defines the construction of the integated ROPES and POAD
metamodel and validation process of the proposed metamodel by using Meta-Object
Facility (MOF) and graph theory.
Chapter 5 describes the definition of the integrated ROPES and POAD software
process into the formal form to enrich the systematic way of system development
process.
Chapter 6 purposes are to prove the applicability of the integrated ROPES and
POAD metamodel and software process. The proven process of proposed software
process heavily relied on case study. The Feedback Control System was selected to be
used for the proven process.
CHAPTER 2
LITERATURE REVIEW
2.1
Introduction
This chapter describes the profound understanding of component-oriented
development, pattern-oriented development, pattern based methodology and ERT
system development. Thus, a previous related works on those issues need to be covered
to discover the advantages and disadvantages of using component-oriented pattern
approach. Then this chapter shows the implicit idea on how the current issues are
critically analysed.
2.2
Component Based Software Engineering (CBSE)
Component Based Software Engineering (CBSE) is a part of software
engineering and computer science field. The motivation of CBSE originate from various
computer discipline such as object-oriented programming, software reuse, software
architecture, modelling languages and formal specification (Crnkovic et al., 2002). The
main goals of CBSE are the development of softwares from the components and the
development of components as reusable artefacts, and maintenance and upgrading of
software by replacing their components (Heinenam and Councill, 2001).
Basically, CBSE can be grouped into two major categories: component
engineering and application engineering. Components engineering is the process of
creating the components for general purposes but for specific domain such as for real
time system domain. The created components can be used to deploy a number of real
time systems by assembling the components together. Application engineering is the
process of software development by reusing existing components by gluing together
with specific techniques. CBSE offers much more than structuring a comprehensive
reuse program and it’s provide both methodology and process for developing
components (Heinenam & Councill, 2001).
2.2.1
Software Component Model
Component based software development (CBSD) is an emerging issue in
software engineering area. CBSD is also known as application engineering and aims to
build a system from the pre-built unit system or components. This approach can ensure
the reusability of components hence the reduction of the cost and time of software
development. However, in order to maximize the components reusability, the
components itself must have a good reuse ability and composition techniques and it must
well defined at the early stage of software development.
The heart of the CBSD lies at the software components model (Wang and Lau,
2005; 2007). Software components model defines what components are, how they can
be constructed, why we use components and where to put the components in the system.
This entire question is essential since it must well define and aims to have clear view
about the use of components. JavaBeans, EJB, COM, Koala, PECOS (Nierstransz et al.,
2002) and ADLs (Clements, 1996) are the examples of software components model.
Although there are a numerous number of software components model today, but
generally it can be grouped into the two main categories (Garlan and Shaw, 1996) which
are 1) object as object oriented programming and 2) architecture units. Components
model in group (1) is directly executable in their respective programming languages
such as JavaBeans and EJB (DeMicheil et al., 2001) and components model in group (2)
is architecture specification and usually needs to be implemented with the suitable
programming language such as ADLs (Clements, 1996).
Software components model have their own architecture that give the details
description on what the components are. Lau and Wang (2005) defines software
component model should define 1) the syntax of the component which is description on
how they can be constructed and represented, 2) the semantics of components which is
what component are meant to be such as their name, interface code and relationship and
3) composition which is description on how they are composed in order to built s
system. All of this properties is essential before the components are implemented and
their properties must well define into the systematic documentation hence in can be
derived from the component catalogue.
2.3
Component-Oriented Development
Over the few decades, software systems are becoming more complex and larger
and were used for the industries practitioners. Therefore, besides building the system
from the scratch, there are exist attractive idea that rapidly assembling the pre define set
of components to build the system. However, this idea must endure the rigorous
discipline of software development as well as strict design documentation and design
rules. Thus, the essential acquisitions for this method is the used of software
components. A component is a software element that can be used by others software
elements, posses an official usage description and not tied with specific set of clients
(Meyer, 2003).
Component based software development (CBSD) is the process of defining,
implementing and integrating a set of components into systems (Sommerville, 2004).
CBSD can ensure the improvement of the quality, productivity and manageable for the
wider use of usability (Brown, 2000). Based on Sommerville (2004), CBSD have
essential properties which are 1) Independency of components 2) Standardization of
component 3) Use of middleware and 4) a process of development.
Components need to be absolutely independent so that any changes on the
systems like replacing or modifying the components does not affect the whole system.
Then, components need the standard architecture likes interface and port. This is
important in order components can successful integrating one another if there exists
different language on different components. On top of that, we need the middleware to
support the integration of the components. Finally, the proper and systematic process of
development is must so that it can support the definition of CBSD.
In general, we must define the CBSD life cycles and try to accumulate the
existing of CBSD life cycles that have been introduced by several authors. This is
essential since the component oriented development definition is closely related to the
CBSD life cycles. There are a few researchers strictly focusing on CBSD life cycles
such as (Sommerville, 2004), (Crnkovic et al., 2005), (Crnkovic, 2003), (Fernando,
2005).
Traditional life cycles provided sequential approaches and generally have six
main steps (Sommerville, 2004). Figure 2.1 show the CBSD process.
Outline System
Requirements
Compose
Components to
Create System
Identify Candidate
Components
Identify Candidate
Components
Modify Requirements
According to Discovered
Components
Architectural
Design
Figure 2.1: The CBSD Process (Sommerville, 2004)
Figure 2.1 show the CBSD process. It consists of six main steps from the
analysis states until the implementation states. Sommerville (2004) approaches give less
emphasis to the component development lifecycle. This approach negotiates the
requirements in the two lifecycle which are after outline the initial requirements and
before architectural design.
The other CBSD lifecycle was introduced by Crnkovic (2003). The V
development process is the sequential approaches. Figure 2.2 show the V-development
process.
Requirements
System Test
Operation and
Maintenance
System Development
System
Design
System Integration
Unit Design
Unit Test
Unit Implementation
Select
Test
Adapt
Find
Evaluate
Component Development
Figure 2.2: V development process (Crnkovic, 2003)
Figure 2.2 shows the V development process. It consist a several steps
and provides the details information at the design phases. The main different compare to
the Sommerville (2004) is V-Development more emphasis for the component
development lifecycle. Component development lifecycle was considered as different
process. The selection phase gets input from the separate system that usually finds and
evaluates the suitable components to be composed into the system.
Finally, Fernando (2005) has introduced the enhancement of the previous
CBSD process by providing the importance of reusability during component based
production. However, in order to invoke the reusability with the proper form, Fernando
(2005) has introduced a new phases which are domain engineering, frame working,
archiving and assembly. Domain engineering emphasis the initial step to identify
essential properties before the selection of components comes out. Frame working treat
as initial skeleton for application from the selection components. Archiving is mainly for
storing the components and assembly is the selection proper components from the
developers. Figure 2.3 show the Y-development.
System Analysis
Maintenance
Design
Deployment
Implementation
Testing
Assembly
Archiving
Select
Adaptation
Frame working
Catalog
Storage
Domain
Engineering
Figure 2.3: Y development process (Fernando, 2005)
2.4
Pattern-oriented development
A pattern-oriented is an approach to deal with the complexity of software
development. By using pattern-oriented in the software development, the skeleton of the
software can be perceived up-front by using knowledge of previously patterns (Rajasree
et al., 2003). Moreover, it will give the traceability of software artefacts from the
requirements to design. There are a few advantages of using pattern in software
development. The advantages are 1) the reuse experienced 2) the development of
standards types of solution 3) a normalized mechanism for abstracting forms multiple
example and method for categorizing problems (Kotonya and Hutchinson, 2005).
Creating an exhaustive set of patterns is the essential step for the software
development and it consists of proven development phases such as analysis, design,
testing and implementation. In addition, requirements engineering deals with the early
phases of software development namely requirements elicitation, modelling,
specification and validation (Finklestein, 2000). All of these properties give a systematic
derivation to the analysis phases. Then, the use of Pattern Oriented Software
Architecture (POSA) approaches can give an accurate solution at the design level
(Buschman et al., 1996).
2.4.1
Software Pattern
Software pattern is a method that documenting the proven solution from the
various problems at each development phases by the expert. The recurring problems
then are documented into the formal form called pattern and it was used by the
developer for the next software development. Software pattern like analysis and design
patterns is becoming widely used among the developer and researcher. Software pattern
is established realm of software engineering field and are considered as identical as
design pattern (Gamma et al., 1995). Although most of the common use of pattern at the
design phases (Gamma et al., 1995; Coad et al., 1997; Nicola et al., 2001), many
researchers claims and believes that the use of pattern at analysis phases could
emphasizing the higher degree of reusability and software quality (Fernandez and Yuan,
2000).
2.4.1.1 Analysis Pattern
Object oriented analysis (OOA) is an approaches that representing the conceptual
or business model of the system. Conceptual models are related to the requirements
engineering since it concerned with the relationship of system behaviour and their
evolution. By observing the importance of conceptual models, then the use of pattern at
the analysis phases is must. Analysis pattern is believed can improve conceptual
modelling quality because they are proven solution and have been used by many
developers (Felix and Narashima, 2003).
Analysis pattern is a young concept and originally derived from the design
pattern. In principle, the analysis is focusing on what the system do rather than how the
system was going to be implemented. By recognizing the functionality of the system, it
can be incorporated into conceptual models. This pattern of analysis usually comes
across into the developers mind. Analysis result can be reused again by documenting the
pattern into the proper ways.
There are some benefits regarding of analysis pattern. Firstly, by using the
analysis pattern, usually system analysts will reuse the existing solution design and so
that they can minimize their effort to solve the solution and reduce the cost. Secondly,
analysis pattern could provide the common base vocabulary and viewpoint of the
problems. Finally, analysis pattern will give some indication to the system analysts to
identify the missing classes or architecture of the analysis pattern from the preliminary
study. Thus, it can improve analysis patterns from time to time (Felix and Narashima,
2003).
2.4.1.2 Design Pattern
Object oriented design (OOD) is an approach to representing the system design.
Design an object oriented is hard and design the reusable object oriented is even harder.
Design reusable object oriented can be derived as design pattern. Design pattern
(Gamma et al., 1995; Coad et al., 1997; Nicola et al., 2001) is an approaches the
documenting the previous design model by expert. Design pattern is a pioneer in the
field of software pattern before the existence of other software pattern.
There is some beneficial regarding the use of design pattern. Developers can
shorten development time by composing the design pattern into system model. Thus,
design pattern provides the common vocabulary and viewpoint of the problems.
2.4.1.3 Programming Pattern
In constructing the software, the application domain and the software design
model will be combined together. This result in a software implementation could bring
the design model more understandable. Implementations are technical artefacts which
run as a formalism on a computer and can be utilized as an application supporting its
users. Programming languages provide the notation for this model. On this level, a
programming pattern is a pattern whose form is described by means of programming
language constructs (Riehle and Zullighoven, 1996). These patterns were used to
implement a software design and programming pattern is based on programming
experience by programmers. An example of an implementation pattern is the wellknown C style:
loop
for (i=1; i<max; i++) {...}
It is important to realize that even on this rather low technical level there is something
like programming cultures and styles. Programming styles same as recurring coding in
programming that does can be categorized as programming patterns.
2.4.2
Pattern-Oriented Methodology
Pattern was introduced into the software development process as a means of
manipulating hard-earned experience from the previous problems (Kotonya and
Hutchinson, 2005). Moreover, software pattern could bring some advantages to the
developer such as reducing time and cost. Pattern oriented methodology is a method that
producing a system by using a special process, schema and notation. Thus, it can
encapsulate various software patterns such as analysis, architecture and design into the
specific form. It also includes the rules and guidelines for organizing the relationship
between these patterns. In this section, we will discuss about five pattern oriented
methodology. Those patterns methodology are Pattern Oriented Analysis and Design
(POAD) (Yacoub and Ammar, 2004; Jerry, 2007), Pattern Driven Modelling and
Analysis (PDMA) (Konrad, 2005), Pattern Oriented Software Architecture (POSA),
Meta model POAD + PECOS (Jawawi, 2005) and Design Pattern + CBSD (Yau and
Dong, 2000).
2.4.2.1 POAD
Pattern oriented analysis and design (POAD) is a methodology that concern in
developing a system using a set of patterns. A set of patterns includes analysis and
design patterns and there are some rules and guidelines to relate the relationship of those
phases. POAD is structural based development and the main aims is to promote the use
of patterns at the analysis and design phases systematically which is each result of each
phases are conveyed into the next phases. This process facilitates and encourages the use
of pattern of each development phases.
The POAD methodology is composed a set of design pattern at each phases.
Thus, design patterns is documented and describe a details about its structure, usage,
behaviour of participants, forces and consequences and rules and guidelines for
implementation (Yacoub and Ammar, 2004). Moreover, POAD strictly define a design
patterns as building blocks.
Generally, POAD methodology has three development phases which are
analysis phase, design phase and design refinement phase (Yacoub and Ammar, 2004).
Then, each phase has a special process that describes the selection and retrieval of
design patterns. Figure 2.4 show the POAD development phases.
Analysis
Design
Design Refinement
Figure 2.4: POAD Development Phase (Yacoub and Ammar, 2004)
Figure 2.4 illustrates POAD development phases. In general, POAD consists of
three phases and each phase has a specific process. Analysis phase aims is to identify the
system requirements and finding a suitable patterns from the patterns catalogue. Design
phases aims are to develop a system by using selected pattern in the Analysis phase.
Design refinement phase is a step to elaborate the software pattern level-design into the
profound class diagram. Figure 2.5 show the process involved in Analysis phase.
Application requirement
Requirement analysis
Acquitance
Pattern Library
Requirement conceptual component
Retrieval
Selection
Candidate
Pattern
Selected Pattern
Figure 2.5: Process in Analysis Phase (Yacoub and Ammar, 2004)
Figure 2.5 show the specific process in Analysis phase. There are several steps
within analysis phase which are acquaintance and retrieval. The purpose of acquaintance
is to identify conceptual components by mapping the system requirements into the
domain-specific library of components. After the conceptual components are identified,
the selections of potential components are made from the retrieval of candidate
components from domain-specific library of pattern. The final product is the selected
components and its will be used into the Design phase. Generally, Analysis phase needs
system requirements as an input and selected pattern as an output.
The next phase is Design phase. Figure 2.6 illustrates the process in Design phase.
Selected Patterns
Constructing Pattern Level
Model
Create Pattern Instances
Define Pattern
Relationship
Pattern Level
Diagram
Constructing model for pattern
Level with Interfaces
Pattern Level with Interfaces diagram
Construct Pattern Level
Diagram
Declare Pattern
Interfaces
Constructing model for Detailed
Pattern Level
Identify relationship
between pattern
interfaces
Detail Pattern Level Diagram
Figure 2.6: Process in Design Phase (Yacoub and Ammar, 2004)
The Design phase aim is to implement software design by composing the
selected pattern that have been identify in the Analysis phase. Software design consists
of three levels of products which are Pattern-level diagrams, Pattern-level with interface
diagram and Detailed-level pattern diagram. This entire diagram was created during
Design process. The activities were involved such as create pattern instance, define its
relationship, declare pattern interface and define relationship between pattern interfaces.
The last phase is the Design Refinement phase. Figure 2.7 shows the process in Design
Refinement phase.
Detailed Pattern Level
Diagram
Concretization
Instantiating pattern internal
Scoping
Domain specific Detailed Pattern Level
Diagram
Specialization
Develop class diagram
Initial UML class diagram
Reduction
Design Optimization
Merging and
grouping
Optimized class diagram
Figure 2.7: Process in Design Refinement Phase (Yacoub and Ammar, 2004)
The purposes of this phase are to create class diagram. Class diagrams are created
by gluing the patterns together at the high level design. Generally, this process takes
Detailed-level pattern diagram as an input and produce optimized class diagrams as an
output.
There are some advantages of POAD methodology. POAD methodology gives
good traceability from the analysis to the design phase. Then, POAD provide good
documentation of system design because of patter-level diagram provide high level
abstract view of system design. POAD methodology also gives the motivation use of
pattern, component, architecture view and design reuse. Thus, pattern level design gives
high quality of system development because systems are implemented by using proven
solution by previous experts. However, POAD methodology has some flaws within their
scope. POAD methodology is a structural development so that its lacks of behavioural
elements such as on how the system react within their subsystems.
2.4.2.2 PDMA
Pattern Driven Modelling and Analysis (PDMA) is another software
development based on pattern (Konrad, 2005). This approach concern on how we
stimulate a pattern to model the embedded systems. The derivation from pattern to
system modelling is the core of this method and based on the concept of object analysis
pattern. Object analysis pattern define the analysis of the relationship of the object
within the system and focusing on what the systems will do. Object analysis pattern in
PDMA uses UML notation to visualize the system structure and behaviour information
such as use case, sequence diagram, state chart diagram and system context diagram.
This UML notation then leads into the system conceptual model. The aims of this
approach is to guide and provide a rules on how we identify the embedded systems
properties such as timing and response time by giving some model examples using UML
notation.
PDMA provided some tools in order to support the graphical visualization within
UML notation. The tools supports PDMA are MINERVA, Hydra and Spin. The
MINERVA is the automated tool to correct the syntax of UML and consistency check
the results, simulation trace and path detection that lead to errors. The Hydra is the
automated tool that map UML notation to a target language. Then, Spin also automates
the execution of process to check temporal constraints against the conceptual model.
Generally, PDMA approach provides some helps to new developers to accelerate
the initial design of conceptual model by mapping the systems requirements into the
system analysis through object analysis pattern. Moreover, PDMA imply how a method
describes embedded system issues like timing, concurrency, event handling and message
communication. PDMA also provides tools to support the correctness of system
requirements transformation into the models by using simulation and checking process.
2.4.2.3 Meta model POAD+PECOS
This approaches using POAD and PECOS methodology as a basis to combine
pattern and component (Jawawi, 2005). The purposes of hybrid Meta model POAD and
PECOS is to motivate high reusable of ERT systems. But firstly, we must define the
POAD and PECOS Meta model before we combine them and Jawawi (2005) has
introduced an enhancement of POAD and PECOS. These two approaches need to
undergo enhancement process because they have different definition which is prevent
direct mapping. The mapping process is involving analysis phase in POAD and design
phase in PECOS.
However, there are some issues regarding on how the transformation process
needs to be done. The issues are 1) how to combine pattern to component, 2) how
interfaces of two Meta model can be mapped and 3) how real-time properties explicitly
expressed in these models. This issue has been solved by Jawawi (2005) by dividing
ERT development process into three phases. Figure 2.8 shows the phases of
transformation Meta model.
Capture the main
requirement using reusable
analysis pattern
Pattern oriented analysis
model
Transform pattern-oriented
analysis model into
component by providing
the interfaces and tracing
the interfaces to the
internal classes
Pattern component early
design model
Derived from internal
classes with the integrated
pattern and some
component from early
design model
Component based detailed
design model
Figure 2.8: Software Process for Integrated POAD and PECOS (Jawawi, 2005)
2.4.2.4 Design Pattern + CBSD
The combination design pattern and CBSD was introduced by Yau and Dong
(2000). This approach explicitly addresses the high reuse of patterns and components.
The main purposes of this approaches is to enable high software quality and productivity
by reusing the existing components by composing together using a certain technique.
But, to compose each component is not an easy task since it must have clear definition
and component interfaces. Then, these approaches present the use of design patterns to
automatic generation of components wrappers for component integration. Hence, these
approaches give an indication the use of component and pattern at design level and it
consist of design and implementation phases only.
Generally, this approaches using CBSD method in software development and
plug in with the design pattern into the component integration process. However, this
approach assumes design pattern is well defined and components are behaved as its
specification. This assumption may give some flaws since the design pattern needs to be
clarified first in order to enable the correctness of component integration. Figure 2.9
shows the design pattern + CBSD approaches.
Figure 2.9: CBSD Process Using Design Pattern (Yau and Dong, 2000)
2.4.2.5 Comparative Evaluation
In order to compare those four pattern oriented methodology, we define four main
criteria that reflect the selection of suitable methodology for this project. The criterions
are component-based, pattern oriented, pattern level and phase level. Component based
and pattern oriented arrangements were selected because to map the project
requirements. Thus, we compare which levels are pattern lies and what are the phases of
methodology are involved. Table 2.1 shows the comparative table of pattern
methodology.
Table 2.1: Comparative of Pattern-Oriented Methodology
Methodology
POAD
PDMA
Meta
Design
model
Pattern +
POAD +
CBSD
PECOS
Component
Yes
No
Yes
Yes
Yes
Yes
Yes
Yes
Analysis
Analysis
Analysis
Design
Analysis
Analysis
Analysis
Design and
and
and
and
Implementatio
Design
Design
Design
n
No
Yes
No
Yes
based
Pattern
oriented
Pattern level
Design
Phase level
Tools
Table 2.1 shows the comparative of Pattern-oriented methodology. From the
observation, all methodologies are component based except for PDMA. This is due to
the close relationship between component and pattern. For the pattern oriented, all
methodologies are using pattern as a basis of their process. Then, all methodologies
except Design Pattern + CBSD were involved at analysis and design phase. As a
conclusion, most of the methodologies were implemented pattern at analysis and design
stages. This approach can strengthen the initial design of system conceptual model and
design architecture. Thus, the use of component based and pattern could give high
impact on modern software development.
Pattern oriented methodology is a method that producing a system by using a
special process, schema and notation. Thus, it can encapsulate various software patterns
such as analysis, architecture and design into the particular form. Based on comparative
evaluation in Table 2.1, it indicates that POAD methodology is the most systematic in
context of used of pattern and component based. POAD is structural approaches and
define the use of pattern at design stage. Thus, POAD methodology devotes useful
traceability from the analysis to the design phase and deliver some helpful
documentation of system design because of pattern-level diagram provide high level
abstract view of system design.
2.5
Embedded Real Time (ERT) System
Embedded system is computer systems that are part of the complex system. It
consists of hardware and software and subject to computational part and physical
constraints. The software and hardware in embedded system works closely due to the
execution some of the system requirements. Some examples of embedded systems are
mobile system, control, forecast, computer chip and so on (Crnkovic, 2005). Embedded
real time system is a part of embedded system. Embedded real time system is highly
dependent on timing, response time, worse case execution and message handling
(Crnkovic, 2005). Due to these real time properties, this system must have explicit view
on safety, reliability and some other properties of dependability.
The complexity of the embedded real system today leads into the new era of
system development. The system development of embedded real time system must
express some important indication such as requirements engineering, high level design,
explicit conceptual model and integration. This property must summarize the common
embedded real system behaviour like dependability, portability and maintainability.
Embedded real time system design is a derivation from the requirements into the
conceptual models. This common development phase is essential and they represent the
abstraction of the systems. The abstraction of the systems including all real time system
properties and due to this complexity, embedded real time system design must extremely
have a lower cost and time of development.
2.5.1
ERT System Methodology
ERT system is a part of computer system that highly dependent on software and
hardware interaction. The complexity of its architecture leads into the complexity of its
system development process. ERT system itself has systematic design lifecycle that
captured all of the system needs from the system requirements until the implementation.
The design approach should be based on the use of one or more formal models to
describe the behaviour of the system at a high level of abstraction, before a decision on
its decomposition into hardware and software components is taken. The final
implementation of the system should be made as much as possible using automatic
synthesis from this high level of abstraction to ensure implementations that are “correct
by construction.” Validation (through simulation or verification) should be done as
much as possible at the higher levels of abstraction.
In this section, we will discuss seven ERT system methodologies. Those
methodologies are Rapid Object-oriented Process for Embedded System (ROPES)
(Douglass, 1999), Octopus/UML (Domiczi et al., 2000), Concurrent Object Modelling
and Architectural Design Method (COMET) (Gomaa, 2001), Method for Componentbased Real Time Object Oriented Development and Testing (MARMOT) (Bunse et al.,
2008) and Software Development Process for Real Time Embedded Software System
(DESS) (Luigi and Bianco, 2000; Baelen et al., 2001).
2.5.1.1 ROPES
Rapid Object-oriented Process for Embedded System (ROPES) was introduced
by Douglass (1999). ROPES methodology is specific for embedded system development
and it use iterative lifecycle oriented to emphasize development process. Thus, ROPES
uses UML as its Meta model to show the semantic and notational schema on modelling
language.
ROPES methodology has four development phases which are analysis, design,
translating and testing. From the development phases, ROPES will generate three result
which are analysis model, design object model and application components. All of these
deliverables is essential since it must meet all initial system requirements. The main
aims of all development process including ROPES are to 1) increase the quality of end
product, 2) improve the repeatability and predictability of the development effort, and 3)
decrease the effort required end product (Douglass, 1999). To achieve all of this
purposes, ROPES methodology must consists the phases, activities and deliverables.
Phase is defining the set of activities that contain the high level of system abstraction.
Activities are a process that emphasizes the deliverables of the system. Figure 2.10
shows the ROPES development phases.
Figure 2.10: ROPES Development Phases (Douglass, 1999)
Figure 2.10 illustrates ROPES development process. It consists of four main
phases which are analysis, design, translating and testing. Each phase have different
artefacts since it have different view of system model. Analysis is divided into
requirements, systems and object analysis activities. Then, design phases are divided
into architectural, mechanistic and detailed design activities. This stage, the design
pattern is used to map into the design object model. The translating phases translate the
UML notation schema into the code and testing phase includes both integration and
validation testing where the test cases primarily upon the scenarios that are identified in
requirements and object analysis phase.
ROPES is primarily covered both structural and behavioural object model of the
system. Structural object model defining what the system does and map into the UML
Meta model such as use case and sequence diagram. Behavioural object model describes
how the system does such as state chart diagram, design context diagram and activity
diagram. Both artefacts are essential to support the completeness of system realization.
However, ROPES methodology lack of use a pattern. It uses a pattern only at design
phase through design pattern. Thus, ROPES did not have systematic way on how to
derive a pattern to another object model.
2.5.1.2 Octopus/UML
Octupus/UML is object-oriented software development that specific for
embedded real time system (Domiczi et al., 2000). This approaches complies with
terminology and notation that defined by UML. However, using UML notation to
describe real time modelling language is problematic. Then, (Domiczi et al., 2000) was
introduced Special Octopus Feature (SOF) as adornments term in order to model
efficiently real time issues. Although SOF is not UML complaint, there exist ongoing
researches to develop the mapping tool from SOF to UML. In general, Octopus/UML
using incremental and evolutionary life cycles oriented to emphasize on rapid
turnaround development process. The aims of this method are to define 1) which classes
and objects are exist 2) structure and behaviour of those classes and object 3) the
relationship between object 4) relationship between classes and 5) smooth transition
between objects and classes into task and processes (Domiczi et al., 2000).
The phases involved are system requirements specifications, system architecture,
analysis, design, implementation, testing and integration. Due to incremental and
evolutionary life cycle approaches, the development processes undergo the special
capabilities implementation. In the incremental model, user needs are determined and
system requirements are defined first. The rest of the development is then performed in a
sequence of increments. In the evolutionary model, a system is also developed in
increments, in acknowledging that the user needs are not fully understood and secondly,
in that all of the requirements cannot be defined up front. User needs and system
requirements are partially defined in the beginning and updated in each succeeding
increment. The evolutionary model does not assume that it will get the system right the
first time. Rather, the developers work on an increment and the results are fed back to
the development work of the next increment. Figure 2.11 show Octopus/UML system
development pattern.
Figure 2.11: Octopus/UML System Development Pattern
Figure 2.11 shows the system development pattern of Octopus/UML. A system
development starts with the system requirements specification and then system
architecture. From system architecture phase, the number of system increment follows,
which contains the analysis, design, implementation and testing of each subsystems.
Each subsystem potentially constructed in parallel in incremental development. The
parallel development motivates the resources sharing during subsystem implementation.
Thus, each subsystem will be integrated once it’s complete.
The Octopus/UML methodology is highly dependent on using UML notation as its
modelling language. Then, SOF was built in order to model the real tine issues and map
into the UML using special tools. Octopus/UML was arranged the development process
within incremental and evolutionary lifecycle. Both lifecycle integrated together to
enhance the effectiveness of system development. Generally, this methodology was
giving complete view the relationship of object oriented and real time. Thus, the
structure of objects and classes and its relationship have clear definition in each process.
However, this methodology did not covered component based and pattern oriented
development. They specify the analysis and design of subsystem by using current
analysis without adopted prior experience from previous developers.
2.5.1.3 COMET
Concurrent Object Modelling and Architectural Design Method (COMET) was
introduced by Gomaa (2001) and the main aims is for development of concurrent
application in particular distributed and real time systems. COMET methodology uses
UML notation as modelling language particularly to define the objects and models in
analysis and design phases. Thus, it solely to integrate object oriented with concurrent
processing concepts. The COMET development approach is highly iterative lifecycles.
COMET consists of three phases which are requirements, analysis and design.
Each phase have a detailed processes which are describing the details composition of
system requirements and models. Figure 2.12 shows the COMET development phase.
Static
Analysis Phase
Dynamic
System architecture
Design Phase
Architectural design of distributed
application
Task structuring
Detailed design
Figure 2.12: COMET System Development (Gomaa, 2001)
Figure 2.12 show the COMET development phase. In the requirements
modelling phase, the functional requirements of the system are identified by visualize it
by use cases and actors. Often, use case can be considered as black box because it
encapsulates all the details about the implementation of system functionality. Then, there
are two compositions in the analysis modelling phase which are static and dynamic
modelling. Static modelling defines the relationship between classes and system itself.
Thus, it defined on how the external system communicates with the system by
emphasizing the specific boundaries. In the UML notation, static modelling can be
visualized by system context class diagram. Dynamic modelling defines on how the
objects interacts with the system use case and usually using state chart diagram in order
to express the system behaviour. In the design modelling analysis, the main activities are
the transition from analysis into design. The systems are composed into the subsystems
which each are identified by subsystem interface. The design modelling can be broken
into four processes which are system architecture, architectural design of distributed
application, task structuring and detailed design. Thus, this phase will apply component
based approaches into the subsystem design.
In general, COMET methodology is highly expressed into the analysis and design
modelling of distributed and real time system. The concept of component based is
applied in the design phase. Hence, the component based approaches is essential since
real time system needs a subsystem as distributed designed self-contained components.
The advantages of this methodology are the transition from analysis phase into design
phase was clear by using UML notation modelling language. However, these
methodologies did not apply pattern oriented approaches whether in the analysis or
design phase.
2.5.1.4 MARMOT
Method for Component-based Real Time Object Oriented Development and
Testing (MARMOT) was developed based on model-driven development with
component (Bunse et al., 2008). The system development with components can ensure
the rapid development besides the ability to reuse existing components and ability to
compose sophisticated software (Crnkovic, 2005). The main aims of this methodology
are to develop embedded system with components with providing the systematic
templates, guidelines and models.
MARMOT consists of four main development activities which are the composition,
decomposition, embodiment and validation. Composition is the main activity in
MARMOT. The MARMOT is viewed as the composition of various component models,
which consists parent/child that ensuing the complete systems. Hence, the other
establishment is MARMOT is allowed the separation of components model
development so the component change does not affect any other component models.
Figure 2.13 illustrate MARMOT development activities.
Figure 2.13: MARMOT Development Process and Component Meta model (Bunse
et al.., 2007)
Figure 2.13 show MARMOT development process. The diagram was illustrated
as three dimensional diagrams which contain abstraction model (software model and
code) and concretization model (hardware constraint) and constructed with two major
development dimensions. The two major developments are Composition/Decomposition
and Abstraction Concretization that map into the four activities, decomposition,
embodiment, composition and validation (Bunse et al., 2008).
As the started of system development, the whole a system was viewed from the
different angle to represents which systems to be built. Decomposition defines the
identical of each component in abstract and logical context. Embodiment determines the
transformation from system modelling specification into the hardware composition.
Although system modelling specification and hardware can be treated as two different
views, but both is assumed as abstraction level description. Then, composition will be
assembled the components that have been implemented according to its abstract model.
After the whole processes have been gone through, the validation process will be
checking the concrete composition that corresponds to its abstract definition.
In general, MARMOT methodology represents the embedded system
construction with component based. This methodology allows an abstract view of
system composition from the software modelling until hardware level. They exerted
UML notation to express the system model visualization. Since MARMOT only
concentrate building a system with component composition, there prevails no indication
the use of software pattern for each process.
2.5.1.5 DESS
Software Development Process for Real Time Embedded Software System
(DESS) is a methodology of object oriented and component based development for ERT
system (Baelen et al., 2001). The goals of this methodology are to encourage the use of
components as building blocks as a part of their systems. It also provides the extendible,
evolution capable and reusable for the family products. To ensure the compatibility with
the existing approaches of system development, DESS methodology was built based on
Unified Process (UP) and V-Model approaches by modifying their semantics where
necessary. The UP approach was adopted to represent DESS workflow process and VModel is to group the process into its specific nature.
The DESS methodology has three processes that called Workflow Vs. Workflows Vs
consists of three main processes which are Realization, Validation and Verification and
Requirements Management. Figure 2.14 illustrate the DESS Workflow Vs.
Figure 2.14: DESS Workflow Vs (Baelen et al., 2001)
Figure 2.14 show the DESS workflow. Each workflow is a group of specific
development process based on UP approaches. All of this workflow will be implemented
using parallel processing. Figure 2.15, 2.16 and 2.17 indicate the composition of
realization, validation and verification and requirements management workflow. Each
workflow possesses the particular process and provides some artefacts as the
deliverables.
Figure 2.15: Realization Workflow (Baelen et al., 2001)
Figure 2.16: Validation and Verification Workflow (Baelen et al., 2001)
Figure 2.17: Requirement Management Workflow (Baelen et al., 2001)
In general, DESS methodology aims for the development of object oriented and
component based for embedded real time system. It used UML notation as modelling
language to express the structural and behavioural of the system. DESS methodology
was implemented by the basis of UP and V-Model by extending the semantics where
necessary. However, DESS does not cover the use of software pattern in the
development workflow whether in system analysis and design.
2.5.1.6 Comparative Evaluation
This section defines the comparative evaluation of ERT system development
methodology that already mention previously. There are seven criterions that have been
identified which are component-based, pattern-oriented, pattern-level, UML notation
support, tool, phase and process lifecycle approaches. These criterions have been chosen
in order to find the suitable methodology that support both component-based and
pattern-oriented. Table 2.2 show the comparative evaluation of ERT system
development methodology.
Table 2.2: Comparative Evaluation of ERT System Development
Methodology
Methodology
ROPES
Octopus/U
COMET
MARMOT
DESS
ML
Component-
Yes
No
Yes
Yes
Yes
Yes
No
No
No
No
based
Patternoriented
Pattern-Level
Design
UML
Yes
N/A
N/A
Special
N/A
N/A
Yes
Yes
Yes
Yes
Yes
Yes
Composition
Realiz
Octopus
Feature
(SOF) +
UML
Yes
Tool
Phase
Analysis
Design
Yes
System
Analysis
requirement
Design
specification
ation
Decompositi
on
Translatin
System
g
architecture
Valida
tion
Embodiment
and
verific
Testing
System
Validation
ation
incremental
development
Requir
ement
manag
ement
Lifecycle
Process
Iterative
Incremental
Iterative
and
Iterative
Iterativ
e
evolutionary
Based on table 2.2, most of the methodology provides the complete system
development. Thus, they use UML notation as modelling language to model the system
abstraction for each phases. Therefore, only ROPES methodology was indicate the use
of component based and pattern oriented at design level. The other methodology like
COMET, MARMOT and DESS is highly motivated to use component as a part of
system development. Even though Octopus/UML is giving the most complete and
systematic ERT system development approaches, this methodology does not cover the
use of component and pattern in system development.
ERT system development methodology was giving the systematic system development
which contains the notation, schema, process and deliverables. This properties will be
combined together to construct the ERT system development. However, by composing
the use of component-based and pattern-oriented in system analysis and design, the time
and cost of ERT system development can be decreased. ROPES methodology was
identified as the previous literature as the methodology that use both component-based
and software pattern. Thus, ROPES explains both structural and behavioural of the
system by modelling it in UML notation such as use case and state chart diagram.
2.6
Discussion
Based on comparative evaluation in Table 2.1 and Table 2.2, POAD was chosen as
pattern methodology and ROPES as ERT system development methodology. POAD was
adopted because it denotes the structural approaches to develop a system by
systematically exerting pattern at analysis and design phase. Hence, ROPES was
selected as ERT system development methodology because it provides the complete
process of ERT system development and express the use of component-based and
software pattern in development phase. By choosing these two approaches, we can
conclude that the hybrid methodology between ROPES and POAD will be carried out by
proposing Meta model and software process. Meta model is used to describe the
semantic and notation schema on how we model the intended software both structural
and behavioural elements. Thus, software process extends the functional of Meta model
by introducing on how the process of software development will be carried out.
CHAPTER 3
RESEARCH METHODOLOGY
3.1
Introduction
The main goal of this project is to promote the use of software pattern and
component at analysis and design level in hybrid ROPES and POAD methodology by
proposed the integrated Meta model and define the software process. Based on the
research works in Chapter 1 and Chapter 2, two important elements were identified to be
investigated in order to integrate both methodologies. The two elements are ERT system
development methodology and pattern-oriented methodology. In this project, those two
elements are essential since it must be studied in depth and the result can be used as the
basis of methodologies selection. In order to verify the results, we used comparative
evaluation as the validation techniques. This chapter will describe the research
methodology in detail which involves those two elements, the integration of two
methodologies and validation of the studies.
3.2
The Software Engineering Research
This section briefly explains the research strategies specifically in software
engineering domain. Shaw (2002) categorized research strategies into four important
elements. The elements are process, questions, results and validations. These elements
can be used as a basis to answer all research problems from the observation proses until
the final process.
There are various types of research questions need to be answered in software
engineering domain. The question whether is WHAT, HOW, WHY and WHERE. This
question leads the process into the required results. We can questions about the method,
methodology, design and feasibility of the system. Then, from the question we can
predict the expected results that we need to obtain. The expected results will act as the
goal for each research question and can be used as the guidance during the research
process. After the expected results are achieved, we must validate the results with a few
technique of validation such as analysis, experience, example, evaluation and
persuasion.
This research process strategy is very important during the research process in
order to ensure the correct questions meet the correct results with the suitable validation
techniques. The research process also experiences some systematically flows from phase
to phase regarding on research framework. Hence, it will help the researchers still
focuses on the objective of the project.
3.3
Research Framework and Processes
This section attempts to illustrate the research framework and explains the
processes are involved in the research framework. There are six process or phases
include in research framework. Each phase have their own activities as illustrated in
Figure 3.1.
There are four main processes and associated with the each phase in the research
framework. The four main processes are problem formulation, literature review,
integrated Meta model POAD and ROPES and define the software process. The
overview of research framework is shown in Figure 3.1.
Phases 1
Problems Formulation
Phases 2
Research Sources
Literature
review
Research area
Problems Description
Objectives
Scopes
Component-Oriented
Development
ERT System
Development
Methodology
Journals
Conference paper
Books
Theses
Pattern-oriented
Development
Phases 3
Evaluate on patternoriented methodology
Evaluate
on
ERT
system
development
methodology
Comparative
Evaluation result
Phases 4
Study the Meta model
of ROPES methodology
Study the Meta model
of POAD methodology
Need
improvement
Proposed an
integrated Meta model of
ROPES and POAD
methodologies
Need
improvement
Validate the proposed
integrated Meta model
Project 2
Phases 5
Define the software
process of integrated ROPES
and POAD Meta model
Validate software
Phases 6
Proposed Software
Process
Implement
Application
process
Report
Figure 3.1: Research Framework
3.3.1
Problems Formulation
In this process, the domain analysis and software pattern is performed in order to
specify the problems. The domain analysis will be based on ERT system development
methodologies and will be incorporated with the component-oriented pattern
methodology. During this process, a following research questions are asked:
1.
How to determine the current problems in ERT system development
methodology?
2.
How to motivate the use of patterns in ERT system development at analysis and
design level?
Early assumption is essential to clarify the objectives and scopes of the research.
This is to ensure the problem is well identified with assumption by undergoing some
reading on journals, conference papers, books and theses. Then, the literature review is
performed to validate the problem arises in problem formulation phase.
3.3.2
Literature Review
In this process, the current ERT system development and component-oriented
pattern methodologies were studied to validate the objectives of the research. Based on
related works reviewed in Chapter 2, four pattern-oriented methodologies and five ERT
system development methodologies are reviewed. This is to clarify and validate the
objectives of the research that states the use of POAD and ROPES methodology as the
basis if the research. The following research questions are asked:
1.
What is the best ERT system development methodology in terms of pattern uses?
2.
What is the best pattern-oriented methodology in term of pattern level uses?
The research questions are important as a guidance of the selection of those
methodologies. These methodologies were selected in the comparative evaluation
process and some important criterions are chosen to map with the needs of pattern uses.
3.3.3
Integrated Meta model POAD and ROPES
In this process, the Meta model of ROPES and POAD is identified and
incorporated with the UML 2.0 specific for embedded system. To specify the Meta
model of ROPES and POAD, we need to implement the ROPES and POAD
methodologies into the selected case studies. This work has been done by (Wan Zulkifli,
2008) and then we define Meta model for each methodology. The following questions
are asked to obtain the details of Meta model:
1. How to identify Meta model of ROPES and POAD methodologies?
2. How to produce Meta model of integrated ROPES and POAD
methodologies?
The results obtained from the above question are the main foundation of this
research. From that results, the integrated Meta model will be validate by composing
into the selected case study. The composing of integrated Meta model to case study is an
iterative process until the firm Meta model is obtained.
3.3.4
Define and Design Software Process
The results obtained from the above three processes are essential to define the
software process for Meta model of integrated ROPES and POAD methodologies.
Software process is the Meta model for define the concrete of software development
process. The research questions need to be answered in this process:
1.
How to define the software process for Meta model of integrated ROPES and
POAD methodologies?
2.
What tools, if any can be used to define the software process?
3.
How to validate the defined software process whether it can be used for the ERT
system?
4.
How to validate the defined software process whether it can be used to support
the use of patterns in ERT system development?
The main reason of this research is to promote the use of pattern in ERT system
development methodology with systematically derivation from analysis to design stage.
The two products were obtained as outputs from this research are Meta model and
software process of integrated ROPES and POAD methodologies.
The summary of the research process is shown in Table 3.1. The research
processes are grouped into four elements Shaw (2002) which are process, question,
expected result and validation. This element is important to clearly identify the goal of
the research.
Table 3.1: Summary of research process
Process
Question
Expected
Result
Determine
How
to
n
Objective
problems
identify
background
problem faces in project
ERT
Validatio
Analysis
the and scopes of the
system
development
today?
Evaluate
How
to
Comparativ
the ERT system identify the best e evaluation table
development and ERT
n
system
pattern-oriented
development
development
pattern-oriented
methodologies
development
and
methodologies
term
Evaluatio
of
in
pattern
uses.
Determine
How
the Meta model of identify
to
Meta model
the of
integrated
integrated ROPES ROPES and POAD ROPES and POAD n
and
POAD Meta model?
methodologies
methodologies
How
integrate
to
those
Analysis
Applicatio
Meta model?
Define the
software
How
process define
of Meta model of process
to
software process
of
Software
of
Applicatio
Meta n
Meta model of integrated
Experime
integrated ROPES model of integrated ROPES and POAD nt
and
POAD ROPES and POAD methodologies
methodologies
3.4
methodologies
Feedback Control System
In order to identify the suitable Meta model for both ROPES and POAD
methodologies, the small scale of ERT system are chosen to be composed with the both
methodology. This activity also can be incorporated with the UML 2.0 profile specific
for embedded system to find the suitable notation and Meta model for embedded system.
After the related Meta models are identified and integrated, the medium scale of ERT
system are chosen to be composed into the define software process. This process is to
ensure that the defined software process can be implemented into the any ERT system.
The case study that has been selected is Feedback Control Systems (Yacoub and
Ammar, 2004). This system was chosen because it’s denotes a small scale embedded
real time system and contains the real time behaviour properties.
Feedback Control Systems is developed to control the software components in a
system and to control external environment as well. There are three basic components in
this systems which are math model, diagram block and signal-flow graph. Figure 3.2
show the block diagram for a feedback control system.
Error (actuating)
signal
Reference input
Feed forward
element
Controlled
output
Plant
+
Feedback data
Feedback
elements
Measurement
Figure 3.2: Block diagram for feedback control system
A feedback control system is dependent on the output. It measured the output to
be compared to the system input so that the appropriate control action will be performed
same as the function of the output and the input. This system has been used widely in
ERT system whereby the feedback output needs to be considered to control the
controller. One of the main system elements are Plant. Plant is a system part that is
using feedback control system. Thus, controller output will be changed based on
requirements of false indication (Yacoub and Ammar, 2004).
3.5
Summary
This chapter outlined the research methodology for this project. The research
processes, questions, expected results and validations is an elements that clarify each
activities in the research framework. Each result in the research framework activities
will be carried out in detail in Chapter 4 to Chapter 6. Generally, research framework
will act as guidance for a researcher to implement research activities systematically.
CHAPTER 4
INTEGRATED ROPES AND POAD METAMODEL
4.1
Introduction
This chapter explains the Meta model of POAD and ROPES methodology and
how both Meta model will be integrated in order to define the ERT software modelling.
Based on Chapter 2, the POAD and ROPES methodology were discussed in depth
regarding its development process. The development process is essential in order to
define the artefacts produced in each respective output for each development phases.
These artefacts than will be mapping onto UML (OMG, 2007) Meta model and will be
supported by Meta Object Facility (MOF) (OMG, 2006) and Object Constraint
Language (OCL) profile. Both profiles are defined by Object Management Group
(OMG). Furthermore, by identifying the respective Meta model, then we define the
POAD and ROPES Meta model. Thus, both Meta model will be integrated in order to
motivate the use of pattern in ERT software development. This chapter will describe the
Meta model constructions in detail which involves POAD and ROPES methodology.
4.2
Metamodel
Computer software is a complex architecture that contains million lines of codes.
This complexity of creation often makes them hard to understand regarding on how the
parts of the system interact each other. Therefore, there must exist some approaches on
how the complexity of software more understandable. Then, modelling is one of the
solutions on how we describe the software in abstract level.
Model is an approach that makes larger system more understandable. Model
describes the specific aspects of the software and can perform an experiment on the
system without changing the actual system. In software engineering, a model is used to
describe the system. Thus, a model was realized by using modelling languages. Most
modelling languages are using some form of graphical notation in order to represent the
model artefacts. UML from OMG is one of the modelling languages that widely used by
software developers. This language is for general purposes that are not domain specific.
Since the model describes the whole software itself, then any level of abstraction
can be instanced into the level which it describes. Therefore, OMG come up with the
four-layered metamodelling architecture as shown in Table 4.1.
Table 4.1: Metamodelling four-layer architecture
Layer
Description
Meta-
The infrastructure for metamodelling architecture.
metamodel
Defines the language for specifying metamodelling.
Metamodel
An instance for a meta-metamodel. Defines a
language for specifying model.
Model
An instance for a metamodel. Defines the language
to describe information domain.
User object
An instance for a model. Defines a specific
information domain.
Table 4.1 shows the four-layered metamodelling. Meta models are a model too
and it lies in the above model layer. A model describes the software and a Meta model
describes the model. For the POAD and ROPES methodology, they represent their
model in the UML notation. To construct the POAD and ROPES Meta model, firstly we
must understand the concept of UML profile, MOF and OCL.
4.2.1
UML Specification
The Unified Modelling Language (UML) is a visual language that specifying,
constructing and documenting the software artefacts. This visual language is for general
purpose and they are not domain specific. In the other words, UML can be implemented
into the various type of application like real time system, business, widow application
and web based.
Since 1997, OMG was issued the UML 1.1 and continuously issued the UML
until today by the task force team. The latest UML versions are UML 2.1.2 and this
version is divided into two parts which are UML 2.0 Infrastructure and UML 2.0
Superstructure. Generally, UML have two packages which are Core and Profiles. Each
packages will be divided into several level of abstraction that describing the notation and
semantics of the Meta models. Hence, it will be supported by MOF and OCL in order to
describe invariants Meta model in modelling constraints.
The Meta Objet Facility (MOF) was issued by OMG standard that provides the
metadata management framework, and a set of metadata services to enable the
development and interaction within models. The first version was issued in 1997 and
called MOF 1.1. This version continuously adopted by OMG until today. The latest
version is MOF 2.0 and incorporated together with UML 2.0 to contribute significantly
in modelling languages.
The Object Constraint Language (OCL) was adapted by OMG to the UML
specification and it is used to help formalizing the semantics of the language and to
provide the facility for UML user to express precise constraints on the structure of their
models. OCL also is used to specify the model elements and invariants on classes and
types in class model. Thus, it will define the preconditions and postconditions on
operation and methods in class.
4.3
POAD Meta model
POAD methodology defines the composition of patterns at high level by using
UML as a means to captures all the software requirements. UML is the collection of
Meta model notation offers by OMG and consists of high level Meta model abstraction.
In order to define the POAD Meta model, firstly we must captures all the artefacts
produced in each development process and analyse the relationship between artefacts
and UML Meta model. Then, we can identify the respective Meta model and starting to
construct the Meta Model. Table 4.2 illustrates the artefacts produced in each phases.
Table 4.2: POAD Artefacts produced vs UML Meta model
Phase
Artefacts
UML Meta model
produced
Analysis
A set of pattern
with name
Design
Patterns
Namespace (from
Core)
with
Relationship
interface
Design
Refinement
Class diagram
Class diagram
Pattern
Dependency
dependencies
Pattern association
Association
Classifier
Table 4.2 shows the artefacts produced in each POAD development phase and
their relationship with UML Meta model. In analysis phase, a set of patterns are
retrieved from the pattern library. Then, the selected pattern will be integrated by using
association relationship in UML Meta model. After those patterns were integrated, we
defined the pattern interface in order to enable interaction between patterns.
Furthermore, the patterns must define a details class diagram in the pattern itself to cope
with the system requirements.
For the POAD Meta model construction, five key elements originally extended
from the UML meta-model to enable pattern-oriented composition using POAD. Those
five key elements are;

Pattern. A set of collaborating classes that originally retrieve from Namespace
(from Core)

PatternInterface. A set of classes and operations that define how the pattern
interfaces wirth the other pattern. Originally retrieved from Classifier.

PatternDependency. It shows the relationship between patterns.

PatternAssociation. It shows the relationship between pattern interfaces.

InterfaceBinder. It used to connect PatternInterface with its internal classes.
PatternDependency
1
2
Pattern
name
Interf aceBinder
PatternInterf ace
Class
Constraint
Relationship
2
connect
1
PatternAssociation
Operation
Attribute
Figure 4.1: POAD Meta model
Figure 4.1 illustrates the POAD Meta model that originally derived from the
UML metamodel. POAD metamodel is structural elements regarding on its model.
However, for real time system, the structural elements alone is not enough. It must cover
both structural and real time behaviour elements in other to represent how the ERT
system should react with the time constraints and resources. (Jawawi, 2006) was
introduced the enhancement of POAD Meta model that enable explicit description for
real time behaviour of components. The two elements that have been introduced by
Jawawi
(2006)
are
1)
RealTimeBehaviour
and
2)
PatternControlInterface.
RealTimeBehaviour was added to class Meta model to show the real time elements in
each class diagram. Figure 4.2 illustrates the POAD Meta model with real time elements
proposed by Jawawi (2006).
PatternDependency 1
PatternControlInterf ace
2
Pattern
name
Interf aceBinder
PatternInterf ace
Class
Constraint
Relationship
2
2
connect
connect
1
QoS
1
PatternAssociation
Operation
Attribute
Real-Time Behav iour
Figure 4.2: Enhancement of POAD Meta model (Jawawi, 2006)
4.4
ROPES Meta model
ROPES methodology defines the systematic development process specific for
ERT system. It consists four development phases which are analysis, design, translating
and testing and each phase have own activities. However, for this project we will cover
only analysis and design phase. ROPES model covers both structural and behaviour
elements in the system. Structural and behaviour elements represent the whole system
reaction and can be represented in UML metamodel. Therefore, we must systematically
identify the artefacts produced for each development phase. This is to ensure what is the
relationship between artefacts in ROPES and UML metamodel. Table 4.3 shows the
artefacts produced in ROPES methodology based on previous implementation in Wan
Zulkifli (2008).
Table 4.3: Artefacts produced in ROPES Methodology
Phase
Artefacts
UML Meta model
Use Case, Object,
Use case, Object,
Analysis
Requirement
Messages, Actor.
System
message, actor
Subsystem,
Subsystem,
component,
statechart, component, port, interface,
activity,
interaction behaviour,
diagram.
componentRealization,
Dependency,
Relation,
Association
Object
Class
Object,
Statechart,
Interaction.
diagram,
Subsystem,
Collaboration, component, port, interface,
Activity, behaviour,
componentRealization,
Dependency,
Relation,
Association
Design
Architectural
Statemachine, Use
case,
Subsystem,
Activities, component, port, interface,
interaction,
Class behaviour,
diagram, component.
componentRealization,
Dependency,
Relation,
Association,
Resources,
Thread, Task
Mechanistic
Class diagram
Pattern,
Class
diagram
Detailed design
Class diagram
Class diagram
Table 4.3 shows the artefacts produced in ROPES development phase and
correspond with the UML Meta model. Generally, ROPES are using structure and
behaviour Meta model and combining with Real Time Meta model such as Message,
Thread and Resources. This elements show that ROPES methodology covers real time
system properties in their modelling systems. After we defined the respective UML
Meta model for each artefact, then the ROPES Meta model is constructed.
Figure 4.3: ROPES Meta model
Figure 4.3 illustrates ROPES Meta model. The Meta model covers both structure
and behaviour elements that represent ERT systems. The construction of the ROPES
metamodel is little bit difficult due to its development process. Each phase of
development process was producing different artefacts which are includes in UML 2.0
superstructure metamodel. Moreover, the transformation from ROPES model into
metamodel must explicitly transform smoothly to ensure each model element will be
putting together in ROPES metamodel.
4.5
Integrated Meta model of POAD and ROPES
POAD Meta model contains structural elements and describes on how the
patterns are composed into each software development phase. Patterns are the main
elements in POAD methodology which derives from the analysis until design phase.
Patterns are glued at high level of abstraction and systematically derived from phase to
another. ROPES Meta model describes the ERT development process which is covers
both structural and behavioural elements. Unlike POAD, ROPES does not explicitly
focus the composition of pattern at each phase. This section focuses on how both Meta
model will be integrated in order to motivate the use of pattern in ERT system
development process early in analysis phase. Initially the mapping process of the both
methodology and Meta model are conducted. Then, the new software development
processes are introduced in order to capture the integrated Meta model development
process.
4.5.1
Mapping POAD to ROPES
POAD and ROPES methodology defines the software development process.
POAD capture the structural elements of software, using pattern as a main components
and they are not domain specific. ROPES cover both structural and behavioural elements
that subject to ERT domain and did not explicitly focus on pattern. To enable smooth
integration POAD model and ROPES model, each elements of POAD metamodel must
provide necessary information in order to integrate with ROPES metamodel. There are
issues that need to be resolved: (1) how to map POAD metamodel to ROPES
metamodel? (2) how to explicitly expressed real time behaviour elements? (3) how to
map POAD process into ROPES process?
4.5.1.1 Mapping POAD Metamodel to ROPES Metamodel
Mapping POAD metamodel to ROPES metamodel is essential process probably
to discover the similarity of POAD metamodel and ROPES metamodel. POAD
metamodel consists seven primary elements as mention in previous section while
ROPES metamodel contains a structural and behaviour UML metamodel elements. By
conducting the mapping process, the similarity of both metamodel can be identified and
furthermore the integrated POAD and ROPES metamodel can be achieved. Direct
migration of two methodologies is possible due to the similarity in software
development definition.
In POAD, Pattern is a set of collaborating classes that solves a specific design
problem and cannot inherit internal parts from other patterns. In contrary, Pattern is not
Package or Subsystem. Package is a collection of ModelElements and can be parents or
children in an inheritance tree. Hence, Package can import or export its internal
elements to other Package. However, in POAD, Package is used in modelling the
patterns with some limitation and constraint. The limitation is relationship and
interfaces. The relationship between patterns in POAD is dependency relationship that is
semantically a uses relationship and is not import or export relationship. Thus, interfaces
between patterns could be the classes itself or operations on interfaces classes. Then,
subsystem is generalization of Package and cannot be considered as patterns.
In POAD, there are three types of interfaces which are PatternInterface,
PatternControlInterface and InterfaceBinder. All these elements are defined specifically
for Pattern metamodel. Its have own definition and purposes. Then, its definition is
different from interface elements in ROPES. Interface in ROPES defines the set of
operation or classes that how two subsystem components interfaces each other. Thus,
subsystem and component is physical view of the system rather than logical view. Then,
the definition of POAD interfaces is has different semantics meaning from ROPES
interface definition.
However, both metamodel consists of similar elements which are Relationship,
Constraint and Real-time behaviour. Relationship defines the association or dependency
between classes or objects in the software modelling. Constraint is about non-functional
properties of systems and related to QoS which captured the fault tolerance,
performance, scheduling and task. Real-time behaviour has four categories which are
passive, active, event and implementation independence class (Jawawi, 2006). A passive
class that does not has its own thread of control. An active is a class that has its own
thread. An Event class is an active class where behaviour is triggered by event.
Implementation independent class is a class whose real-time behaviour can only
specified during the implementation phase. Both POAD and ROPES have real time
behaviour. In POAD, real time behaviour is placed in class classifier while in ROPES,
real time behaviour is placed under Task elements. This is because ROPES has Resource
elements in its metamodel that manages all task and real time behaviour of the system.
Table 4.4 shows the mapping metamodel of POAD and ROPES.
Table 4.4: Mapping POAD to ROPES Metamodel
UML Metamodel
POAD
ROPES
Relationship
Relationship
Same
defines the association or
dependency
between
classes or objects in the
software modelling
Constraint
Constraint is about
non-functional
Same
properties
of systems and related to
QoS which captured the
fault
tolerance,
performance,
scheduling
and task
Real-time Behaviour
Consists
passive,
event
active,
Same
and
implementation
independent class
Pattern
a
set
of
Same
collaborating classes that
solves a specific design
problem
Package
Pattern is grouped
Package
is
as Package but requires collection
a
of
additional stereotyping to ModelElements and can be
reflect the pattern type and represented
relationship
in
domain
between analysis or subsystem.
patterns.
Subsystem
NA
subsystem
is
generalization of Package
and
represent
the
subsystem of the system.
Component
POAD
component
defines
as
components
Component
design ROPES
which
is
in
physical
is packages used to model
composed a set of classes source code or physical
at the design phase.
Class
database.
A specification for
Same
a set of objects and exist at
design time.
PatternInterface
A set of classes and
NA
operations that define how
the pattern interfaces with
the other patterns
PatternControlInterfa
NA
ce
InterfaceBinder
It used to connect
PatternInterface
with
NA
its
internal classes
PatternAssociation
It
shows
relationship
the
NA
between
pattern interfaces
PatternDependency
It
relationship
shows
the
NA
between
patterns
interface
NA
the set of operation
or classes that how two
subsystem
components
interfaces each other
Table 4.4 illustrates the metamodel mapping between POAD and ROPES
methodology. From the table, there are five UML metamodels which are having same
semantic description for both methodologies. The five UML metamodels are
Relationship, Constraint, Real-time Behaviour, Pattern and Class. These elements are
used in constructing a software model in POAD and ROPES methodology. However,
there is two UML metamodels that have different definition between two models which
are Package and Component.
Package is general purposes UML modelling for grouping elements into groups.
They provide a hierarchical view and visibility mechanism to control the visibility of the
elements of the package. In POAD, packages are used in modelling patterns. Pattern is a
collection of collaborating class that solves a specific problem. Using packages to model
patterns requires additional stereotyping and different definition of relationship and
interfaces. However, in ROPES, packages are used to represent the domain analysis of
the system and each package is usually a part of another domain. Meaning that, the
integrated ROPES and POAD metamodel allows the Package to be represented in two
ways which are 1) Patterns and 2) Subsystem. Each Package delivers different purposes
depend on it uses.
Component represents a modular, deployable and replaceable part of a system
that encapsulates implementation and exposes a set of interfaces (UML 2002). In
ROPES, a component is used to represents physical packages that used to model source
code and physical database. Thus, physical packaging is used to define implementation
deliverables. Unlike ROPES, in POAD patterns are visualized as logical packaging and
as well as Component and used to organize a set of collaborating classes.
From the metamodel view, the integrated metamodel of POAD and ROPES can
be constructed by plug in POAD metamodel into ROPES metamodel at the respective
level as figured in figure 4.4.
From POAD
From
POAD
Figure 4.4: ROPES + POAD Metamodel
Figure 4.4 illustrates the integrated POAD and ROPES metamodel. From the
figure, ROPES is used as main methodology. Then, all the POAD UML metamodels
were added into ROPES metamodel. Pattern metamodel in ROPES is replaced by
POAD metamodel. Afterthat, Class metamodel is transformed under the Pattern classes
to show that every class construction in enhancement of ROPES will be illustrated as a
pattern. Then, real time behaviour in POAD is integrated with POAD.
The main issue in the integrated POAD and ROPES metamodel is the definition
of Package and Component. After the integration of both metamodel, the definition of
Package and Component in POAD and ROPES still does not change. Using packages to
illustrate pattern and domain analysis is needed but they have different semantics and
purposes. Furthermore, pattern cannot be modelled using UML component because they
are conceptually different encapsulation. Hence, it is semantically incorrect to model
pattern using component diagram. Because of this restriction, an enhancement of
ROPES methodology will use component as logical (pattern) and physical views. To
conclude, in the integrated ROPES and POAD metamodel, Package is used to visualize
the patterns and subsystems. Hence, Component is used to visualize physical views of
the system as well as patterns.
4.5.1.2 Validation of The Integrated ROPES and POAD Metamodel
The integrated ROPES and POAD metamodel have been developed in the
previous chapter to enable the uses of pattern in ROPES methodology. In order to
validate whether the integrated metamodel is well defined or not, the validation process
will used MOF (OMG, 2007) profiles from OMG.
MOF provides a metadata management and a set of metadata services to enable
the development of model and metadata driven systems. MOF also defines a metamodel
required for composing and validating the model development including UML. In
general, each proposed metamodel that has been developed must be undergoing
validation process towards MOF. This is to ensure the correctness of the proposed
metamodel. Therefore, the integrated ROPES and POAD metamodel were verified using
MOF. The verification process includes each proposed metamodel elements is an
instance of MOF and conforms to rule of MOF. Before that, the proposed metamodel
and MOF elements must be transformed into graph theory in order to develop the
mathematical equation between MOF and proposed metamodel. Figure 4.5 shows the
graph theory for MOF.
Model element
TypedElement
Namespace
Feature
Generalized
Element
Package
Behavioural
Feature
Structural
Feature
Operation
Attribute
Classifier
Class
Association
Figure 4.5: MOF Graph
Figure 4.5 illustrates the MOF graph. The graph was constructed based on MOF
metamodel and contains a node and arc. A node represents an element in MOF and arc
represents the relationship between elements. Figure 4.6 demonstrates the graph for
proposed metamodel.
Interaction
Syste
m
Statemachine
Activity
Node
Relationship
Behaviour
Attribute
Use Case
Class
Pattern
Package
Operation
Real-time
behaviour
Subsystem
Dependency
PatternDependenc
y
PatternInterface
Component
Interface
PatternControlInterfac
e
Port
PatternAssociation
MessageEvent
MessageQueue
Communication
MessageProtocol
Figure 4.6: Graph for The integrated ROPES and POAD metamodel
Both graphs will be used to develop a simple mathematical equation that shows
the relationship between MOF and proposed metamodel. The mathematical equation
must show each proposed metamodel nodes is an instance of MOF nodes and conforms
to rule of MOF. MOF graph can be viewed as:
The integrated ROPES and POAD metamodel graph can be viewed as:
MOF becomes a guardian to check the consistency of proposed metamodel
graph. To check the consistency, all nodes of the proposed metamodel must be mapped
onto MOF nodes. The equation to check the consistency as follows:
……………………… (1)
…………………….. (2)
……….
(3)
…………………… (4)
…………….. (5)
The equation (1), (2) and (5) shows the function of IMGraph to MOF. Each node
in both graphs must subset with the defined function. Then, each node in IMGraph must
be subset in MOF nodes. In order to prove the consistency of IMGraph, the function
from IMGraph to MOF is defined as follows:
All arcs in IMGraph are mapped on the MOF nodes. The equation (3) and (4)
shows if there an arc in two nodes in IMGraph, and then there should be an arc for two
nodes in MOF as shown in Figure 4.7.
IMGraph
MOF
Model element
Class (Classifier)
Pattern (Namespace)
Namespace
PatternDependency
(Model element)
Generalized
Element
PatternControlInterface
(Classifier)
Package
Classifier
Figure 4.7: Equation (3) and (4) Mapping
This results shows that all IMGraph is kind of ModelElement that exist in MOF.
Therefore, the integrated ROPES and POAD metamodel was validated by using the
graph theory of MOF and it is proved that the proposed metamodel fulfil all of the MOF
specification.
4.5.1.3 Mapping ROPES Process to POAD Process
ROPES and POAD have a similarity in development phase. Both methodology
have analysis and design phase which consists of initial finding on system requirements.
However, they have different contents or activities for each development phase. In order
to integrate both metamodel, we must mapping ROPES development phase to POAD.
By conducting the mapping process, we can identify the relationship both development
phase. Table 4.5 illustrates the mapping of development phase for both methodologies.
Table 4.5: ROPES and POAD Development Phase Mapping
Develop
ROPES
POAD
ment phase
Analysis Requirements
Pattern Selection
System engineering
Object Domain
Design
Architectural
Pattern
Level
diagram
Pattern
Level
diagram with interface
Mechanistic
Detailed
internal
pattern
Detailed Design
Table 4.5 shows the mapping process of POAD and ROPES development phase.
In analysis phase, ROPES define details description of analysis system requirements and
covers both structural and behaviour elements while POAD define the patterns selection
based on system requirement analysis. In design phase, ROPES have three level of
design while in POAD, system design only covers the pattern diagram, pattern diagram
with interface and detailed patterns internal classes.
Generally, this project aims in to enhance the ROPES methodology by
promoting the use of pattern from the early phase. Thus, ROPES methodology was
chosen as a main components and combining with the POAD process. In the ROPES
analysis phase, each activity must explicitly address the whole system requirements
including software and hardware, object relationship and system behaviour elements.
After those activities are conducted, the massive and concrete requirements are
produced. Then, POAD analysis process is adapted. We use concrete requirements that
are produced in ROPES as an input into the POAD analysis. Furthermore, POAD
analysis will analyse the inputs and select the suitable patterns in pattern library. Patterns
that are selected then will be used as the main components to the design phase.
In the design phase, ROPES consists of three levels of designing the software
which are architectural, mechanistic and detailed design. Architectural design consists of
domain analysis, subsystem, safety, and task concurrency and resources. Safety and task
activities are real time behaviour. Subsystem consists of a set of components interact
each other to represent the subsystem structure and behaviour. From the analysis phase,
a set of patterns are selected and will be used in the design phase. However, this process
is an iterative process and if there any addition or correction of patterns, it will reverse
back into analysis until the concrete patterns are achieved.
4.5.1.4 Initial Result of POAD + ROPES Development Process
ROPES development process can be enhanced by integrating with POAD
process. POAD are focusing on using patterns from analysis until design phase. Thus,
ROPES and POAD both software development methodology and have a similarity in
term on development process. The only differences between both methodologies are
POAD is not domain specific and using pattern as main component while ROPES is
specific for ERT domain and did not explicitly address the uses of pattern. Moreover,
combining POAD into ROPES can motivate the use of pattern from analysis until design
phase. Figure 4.8 shows the POAD + ROPES development process.
ROPES
POAD
Requirements
System
engineering
Analysis
Pattern Selection
Object
Analysis
Validate
pattern
Need improvement
Yes
Architectural
Design
Validate
pattern
Need improvement
Design
Pattern Level Diagram
Pattern Level Diagram
with interfaces
Design Refinement
Detailed Pattern
Internal
Yes
Mechanistic
Detailed
design
Figure 4.8: ROPES + POAD Development Process
Figure 4.8 shows the ROPES + POAD development process. The combination
POAD and ROPES development process can be done by mapping both development
processes together for each phase. The new development process goals are to promote
the use of patterns from analysis to design phase and subject to ERT domain. From the
figure, the ROPES and POAD development phase is complement each other. The dash
boxes represent the ROPES process and complete boxes represent POAD process. Then,
the dash arrow represents the ROPES realization process to POAD process.
In ROPES, system engineering and object analysis process will conduct the
intensive analysis of the whole system and each object structural and behaviour
elements. During the process, every input will be reflecting into the POAD process
which is pattern selection. Pattern selection process is responsible to make analysis input
from ROPES and retrieve suitable patterns from pattern library. By doing this, system
engineering and object analysis in ROPES will produce a set of pattern that will be used
in design phase. However, before conducting design phase, analysis stage must validate
the selected pattern whether it meets system requirements or not. If not, reverse back to
analysis phase, otherwise proceed to design phase.
In ROPES, design phase consists of architectural, mechanistic and detail design.
Architectural design defines the system architecture from subsystem, component,
domain, concurrency, task and resource view. Here again, the patterns that have been
selected in analysis phase will be used to defines the output artefacts in architectural
design. The pattern level diagram and pattern level with interfaces will be decided and
regularly check with the architectural design requirements. If there any conflicts with
selected pattern, the process will reverse back to analysis phase, otherwise it will
proceed to mechanistic design.
In mechanistic design, each pattern will elaborate its internal classes. Pattern
internal classes will represent the detailed logical implementation of the system and
reflects with the mechanistic design. After finishing this phase, it will go through into
detailed design.
From this explanation, the ROPES + POAD development process will use
pattern as main features. This process can be done by realize of each output in ROPES
analysis into pattern selection process in POAD. Then, the patterns that have been
selected in analysis phase will be used in design phase. By doing this, a set of patterns
are produced and will be represent as logical implementation of the ERT system.
4.5.2
Summary
This chapter presents the integrated metamodel of POAD and ROPES
methodology. The integrated metamodel aims to motivate the use of patterns at software
development process that subject to ERT system. ERT system is the crucial software due
to structural and behavioural elements. In addition, ERT system highly dependent on
time constraint, task distribution and concurrency resource sharing (Crnkovic, 2003 ).
Therefore, the ERT system development process is complex because of the complexity
of real time properties. This result was inspiring the patterns to play the main roles to
increase the software quality as well as decrease the software development cost and
time.
There are two important elements in this chapter need to be considered. The
elements are 1) POAD and ROPES metamodel and 2) POAD and ROPES metamodel
integration. The UML metamodel is used as a modelling languages to defines the metamodels for both methodology. POAD enables the semantic description in their
metamodel by defining the Pattern name, PatternInterface, PatternDependency, Class,
Constraint,
Relationship,
InterfaceBinder,
PatternAssociation
and
PatternControlInterface. All of these elements will be used to construct POAD
metamodel. The POAD metamodel have been enhanced (Jawawi, 2006) from the
original metamodel in order to capture real time behaviour requirements. ROPES define
the semantic description in their metamodel by using UML metamodel for structural,
behaviour, real-time properties and Core profiles. By identifying the ROPES metamodel,
then we construct the ROPES metamodel.
The reasons of creating metamodel for both methodologies are to identify
the semantic description of both models. By doing this, the integrated metamodel of
POAD and ROPES can be achieved. However, before both metamodel will be
integrated, the mapping process and metamodel for both POAD and ROPES need to be
considered. In addition, the mapping process can ensure what or where level need to be
integrated as shown in Figure 4.7. Then, the integrated metamodel of POAD and
ROPES can be obtained.
After the integrated ROPES and POAD metamodel was developed, there is some
mechanism to validate the proposed metamodel. The validation that has been used is
MOF and graph theory. The MOF and proposed metamodel was developed in graph
theory to discover what is the relationship between two graphs by considering the
elements and functions. The elements represent a node and the relationship represents an
arc. This is to ensure that all proposes metamodel nodes are an instance of MOF nodes.
To ensure the proposed metamodel graph has conforms the rules of MOF, the arc has
been used as a function. The results shows that the proposed metamodel was well
defined regarding on MOF.
The effectiveness of this integrated metamodel are to motivate the use of pattern
early at analysis phase and systematically derived until design phase that subject to ERT
system. ROPES are a methodology that covers both structural and behavioural elements
as well as real-time properties. The use of pattern for the whole development process can
ensure the high software reuse, software quality and decreasing of software development
time and cost.
CHAPTER 5
THE INTEGRATED POAD AND ROPES SOFTWARE PROCESS
5.1
Introduction
This chapter describes the software process for integrated ROPES and POAD
metamodel explicitly based on ROPES and POAD integrated metamodel that has been
constructed in Chapter 4. Software Process Engineering Meta model (SPEM) 2.0 is used
to specify the process model.
5.2
Software Process Engineering Model (SPEM)
Software Process Engineering Model (SPEM) is process engineering meta-model
which can provide valuable concepts for modelling, documenting, organizing and
enacting software development process and contents. SPEM metamodel is based on
UML specification and the early version of SPEM is SPEM 1.x that based on UML 1.4
and hence, is extended to SPEM 2.0 based on UML 2.0 Infrastructure specification. A
SPEM 2.0 main aim is used to describe the concrete software development process.
SPEM 2.0 is solely to enable the systematic software development explicitly
from the development teams, process and contents. Development teams can easily
access the necessary information when they need and exchange the necessary
information across team members. The information of software development
systematically separated from its process and contents and purposely to standardize the
property format of documentation of which they need to refer. To realize these needs,
SPEM 2.0 is constructing the metamodel based on UML 2.0 specification.
SPEM 2.0 embodies of seven metamodel which are Core, Process Structure,
Process Behaviour, Method Content, Managed Content, Process with Methods and
Method Plug In. These metamodel is used to defines the SPEM 2.0 metamodel and its
structure will enabling the software development teams to choose the generic behaviour
modelling approach and gives specifics structures to enhance the behaviour models that
are describing development models. To realize the implementation of integrated ROPES
and POAD software process, we use Magic Draw 16.5 tool with SPEM profile.
5.3
The Process Model
Process model is the process that embodies a few processes that have the same
nature. Process model also occurring at the type level which means the process that has
been identified can be used repeatedly for the other software development activities.
Thus, process model is important to explicitly tracking the occurrence of the whole
process, defines the specific process that what it’s should be performed and provides the
necessary information of the process. Therefore, the process model for integrated
metamodel of ROPES and POAD is defined to explicitly describing the concrete
software development and at the same time to show the existence the uses of patterns.
Based on Figure 4.5, the integrated of ROPES and POAD metamodel has the new
software development process which is enabling the uses of patterns in ROPES
methodology.
The process model for integrated of ROPES and POAD metamodel is defined by
using SPEM 2.0 profile. Based on SPEM 2.0 profile, the process model is divided into
two categories which are Method Content and Process Content. Figure 5.1 shows the
whole framework of process model for integrated of ROPES and POAD metamodel.
Figure 5.1: Process Model Framework
Figure 5.1 shows process model framework for the integrated ROPES and POAD
metamodel. This framework consists of the structure of method framework. Method
framework structure consists of Method Content and Process Content. Both contents
will be directed or guided by the Guidance at the intersection in order to provide
background for Method Content and process. Method Content is a metamodel package
that primarily defines the resources of the software development such as users and
groups to build up the development knowledge base. Knowledge base is the collection
of software development resource descriptions and independent of any process related
and projects. The knowledge bases for ROPES+POAD process model framework are
Roles, Work Product, Task and Guideline definition.
Process Content is a process which related to project that specific to any type of
development level. It uses the Method Content elements to detail up the specific process
of development. The Process Content elements for the integrated ROPES and POAD
software process framework are Analysis Process and Design Process. Furthermore,
both contents were connected to Method Plugin. In details, Method Plugin is a Package
that represents a physical container for Method Content and Process Content. It defines a
granularity level for the modularization and organization of for Method Content and
Process Content. A Method Plug embodies in the Process Based Library which contains
all the core elements of SPEM 2.0. Figure 5.2 shows the details of Process Content and
Method Content elements.
Figure 5.2: Details of Process Content and Method Content Elements
5.3.1 Method Content
Method Content contains a few main elements in software development process.
The integrated ROPES and POAD software process have four elements which are Roles,
Work Product, Task and Guidance definition. This element provides step-by-step
explanation by describing how specific fine-granular processes are achieved by which
roles and resources. Some other process might reuse the Method Content elements for
different purposes. Thus, user does not need to specify the fine-structured process of the
development because Method Content only provides the knowledge base that can be
reused for another processes.
5.3.1.1 Role Definition
Role definition defines a set of responsibilities, skills and expertise of an
individual or a set of individual. Roles definition is not a person but rather to the
definition of responsibilities. When the Role definition has been defined, project
manager will responsible to map between individual to Role. Role definitions are used
by Task definition to identify whose perform the task and responsible to the Work
Product. Figure 5.3 shows the Role definition that has been defined in the integrated
ROPES and POAD software process.
Figure 5.3: Roles Definition for ROPES+POAD Process Model
Figure 5.3 shows the Role definition for ROPES+POAD process model. Each
Role compositions have been attached to the CompositeRole that grouping the entire
Role. There are four Roles which are System Architecture, System Analyst, System
Designer and Use Case Specifier. Each Role represents the skills and responsibilities
that should be performed to the set of Task definition.
5.3.1.2 Work Product Definition
Work Product definition is representing as input and output of the process. It is
used, modified and produced by Task. Role may use Work Product to perform a Task
and produce Work Product as a Task process output. For the integrated ROPES and
POAD software process, there are two major packages which are Work Product
definition for Analysis and Design. Figure 5.4 shows the Analysis Work Product
definition for the integrated ROPES and POAD software process.
Figure 5.4: Analysis Work Product Definition for ROPES+POAD Process
Model
Figure 5.4 shows the Analysis Work Product definition for the integrated ROPES
and POAD software process. They compromise three major Work Product definitions
which are Requirement Analysis, System Analysis and Object Analysis. This Work
Product represents the Analysis process in ROPES methodology. Analysis process in
ROPES consists of Requirement, System and Objects analysis process and resemble to
Work Product definition. Analysis Work Product definition is important to provide
subtle information which will be used by Task. Requirement analysis Work Product
contains a set of related Work Product that represent in Artefact notation. The most
important element that has been produced here is a Set of Pattern Work Product
definition. The Set of Pattern has been derived early at analysis phase to ensure that a
Set of Pattern was produced in early stage so that System Designer will use this pattern
to design the system. System Analysis Work Product embodies a Hardware, Software,
Architecture and Executable Work Product definition. Object Analysis Work Product
consists of Object Structural and Object Behavioural Work Product. Moreover, Figure
5.5 shows the Design Work Product definition for ROPES+POAD process model.
Figure 5.5: Design Work Product Definition for ROPES+POAD Process
Model
Figure 5.5 shows the Design Work Product definition for the integrated ROPES
and POAD software process. They compromise three major Work Product definitions
which are Architectural, Mechanistic and Detailed Design. This Work Product
represents the design process in ROPES methodology. Architectural Design Work
Product contains Architectural design model that are composed with the Pattern Level
Diagram and Pattern Level Diagram with Interface Work Product definition. This Work
Product definition provides a critical output by Task because they are all compromise
the overall system design. Then, Mechanistic Design Work Product will provide
Detailed Pattern Internal Work Product definition. This artefact will provide the details
of system class diagram based on design patterns.
5.3.1.3 Task Definition
Task definition is a set of work in the software development process and it is
used as an element of defining a process. Each Task definition is assigned to the specific
Role definition and using Work Product definition as input and output. Task definition
main principles are to define the process of works and sometimes if it is too complex,
Task definition will use Step to describe the process. Figure 5.6 shows the Task
definition for the integrated ROPES and POAD software process.
Figure 5.6: Task Definition for ROPES+POAD Process Model
Figure 5.6 shows the Task definition for the integrated ROPES and POAD
software process. From the diagram, there are special notations that represent the class
which are Category, Discipline and Guideline. Category is used to categorize the process
content based on user criteria. Discipline defines the group of Task definition and
Guideline defines the additional information that might help to accelerate the process.
Iteration category was defined to represent what kind of software development
was conducted that exists in Software Engineering methodology based on user criteria.
Iteration was selected in order to adapt the suitability of integrated ROPES and POAD
software process. This is to enable pattern discovery process more systematic and able to
produce firm a set of patterns. Iteration category contains two Disciplines which are
System Analysis and System Design. System Analysis Discipline embodies a three Task
definition which are Requirement, System Analysis and Object Analysis. These Tasks
also have been categorized by a Use Case Development category and a user might
provide a Guideline (Use case template) to this category. System Design discipline
contains three Tasks which are Architectural, Mechanistic and Detailed design. These
Tasks have been categorized by a Software Pattern category that has Pattern Library
Template and Pattern Level with Interface.
5.3.2 Process Content
Process Content defines a software development process with a special structured
that refers the project development activities. Process Contents contain a set of process
that represents the project process architecture such as Process Structure, Process
Behaviour and Process with Method. Process Structure contains the basic structural
elements for defining development processes which are describing in well-formed
structure from its lifecycle until resources hence, how the projects shall be executed.
Besides that, Process Behaviour feeds the implementers to design the generic modelling
approach that fits their needs. However, ROPES+POAD process model is using Process
with Method approaches to define its process. It is because SPEM 2.0 has a
characteristic that separate between method and process. This approach can fully utilize
the separation of Method Content from processes and consequently the reusability of
Method Contents and processes can be achieved.
ROPES+POAD process model consists of two activities which are Analysis
Process and Design Process. Both activities were attached to the Process Pattern
elements. Process Patterns are reusable building blocks of process and ROPES+POAD
process patterns can be reused for another projects. Moreover, before the details of
Analysis and Design process to be described, the overall flow of process of the
integrated ROPES and POAD software process must be identified. The flow of
integrated ROPES and POAD software process was able to show how the integrated
process will be executed on which phase to which process. Figure 5.7 shows the flow of
process for the integrated ROPES and POAD software process.
Figure 5.7: Process of Flow of the Integrated ROPES and POAD Software
Process
Figure 5.7 demonstrates the flow of process for the integrated ROPES and
POAD software process. The flow consists of two phase which are Analysis and Design
includes with Task definition. Each phase execute specific task definition which already
declared in Method Content. The flow of integrated ROPES and POAD software process
is using ROPES process and merged with POAD process in order to enable pattern
oriented development. The arrows are representing the flow of process between task
definitions.
5.3.2.1 Analysis Process
Analysis Process defines the process of collecting the system requirements from
the higher level until the low level of the system. Analysis Process explicitly derived
from the ROPES analysis process. The realization of ROPES analysis process into
process model is important to provide a concrete explanation of its development. Figure
5.8 shows the Analysis Process activity.
Figure 5.8: Analysis Process for ROPES+POAD Process Model
Figure 5.8 shows the Analysis Process activity in ROPES+POAD process model.
Analysis Process defines the system analysis in depth based on ROPES methodology
process. These processes are divided into two activities which are Understand
Stakeholder Needs and Define the System. The first activity was performed by System
Architecture whereby they define the overall system architecture including system’s
vision and mission. In addition, Define the System Activity is a predecessor of first
activity and was performed after the first activity was completed. Define the System
activity was performed by System Analyst and System Analyst will perform the Task
Definition realization called Task Use.
Task Use has three tasks which are Requirement Analysis, System Analysis and
Object Analysis. Requirement Analysis is a Task definition that was defined in Method
Content package and then was realized to specific Task Use. Requirements analysis has
complex process and will be described in Step meta-class. Before that, Requirement
analysis will produce subtle Work Product Use named Use Case Model. Work Product
Use for Use Case Model is the realization from Work Product Definition in Method
Content package. Thus, Work Product Use for Use Case Model will be traced and
mapped to the Set of Design Pattern (Work Product Definition). Figure 5.9 shows the
Requirement Analysis Task Use Step.
Figure 5.9: Requirement Analysis Task Use Step
Figure 5.9 shows the Requirement Analysis Task Use Step. This Step is the
process flow obtained from ROPES methodology. The process that was derived from
POAD analysis process was represented in dash box notation which is “Pattern
Selection: Pattern Selection Process”. This process then will be directed to another Step
process as shown in Figure 5.10.
Figure 5.10: Pattern Selection: Pattern Selection Process Step
Figure 5.10 shows the “Pattern Selection: Pattern Selection Process” step that
was originally derived from POAD analysis process. This process tends to find and
select the suitable design patterns of the system. After that, System Analysis Task Use
takes part as the next phase.
System Analysis Task Use is composed several step and has complex process. It
originally derived form Task Definition in Method Content package. Figure 5.11
illustrates
the
System
Analysis
Task
Use
Step.
Figure 5.11: System Analysis Task Use Step
Figure 5.11 shows the process step in System Analysis Task Use. This process
was derived from ROPES process and intended to produce a set of hardware and
hardware specification and architectural model as well. After this process was
completed, Object Analysis Task Use will be implemented to discover the objects and
system classes.
Object Analysis Task Use is originally from ROPES process and will link up
with the POAD analysis process. The POAD analysis process will be reused again in
this process in order to produce a firm set of patterns. The firm set of pattern is crucial to
be produced here in order to get well-formed system design architecture that will be
used in Design Process. Figure 5.12 shows the Object Analysis Task Use Step.
Figure 5.12: Object Analysis Task Use Step
Figure 5.12 shows the Object Analysis Task Use Step The dash box represent the
“: Pattern Selection Process” as shown in Figure 5.8 in order to find and select design
patterns. It is clearly shows that Analysis Process activity is originally from ROPES
process and was merged with POAD process to find and create a set of patterns. The
merging process of ROPES and POAD is important to support the new development
process of integrated ROPES and POAD metamodel.
5.3.2.2 Design Process
Design Process is the second phase of software development. Design process is
the process of designing the system based on its requirement. Figure 5.13 shows the
Design Process activity.
Figure 5.13: Design Process for ROPES+POAD Process Model
Figure 5.13 shows the Design Process for ROPES+POAD process model. It
contains two activities which are Define the System and Define System Design. Then,
Define the System activity is from preceding activities in Analysis Process and becomes
predecessor to Define System Design activity. Furthermore, Define System Design
activity will be performed by Method Content elements. For the Define System Design
activity, System Designer will responsible to perform a set of Task Use that the
realization from Task Definition. The Tasks Use items are Architectural, Mechanistic
and Detailed Design.
Architectural Design task use is a set of complex process that needs to be
executed step-by-step. The execution process will use Step elements to shows the whole
flow of process. In addition, Architectural Design task use has one mandatory input
which is a Set of Design Pattern. This Work Product use is essential because it contains
necessary information for designing a system. Then, the mandatory output for this task
use is Architectural design model (Work Product use) that has an important content
tracing. Content trace for Architectural design model (Work Product use) is Pattern
level diagram and Pattern level diagram with interface. Both items are Work Product
definition in Method Content elements. Then, Architectural Design task use itself has
Step process as shown in Figure 5.14.
Figure 5.14: Architectural Design Task Use Step
Figure 5.14 shows the Architectural Design Task Use Step that follows step-bystep flow from ROPES process. Dash box step represents the thread for the “Design
Pattern Modification” process that originally from POAD design phase. POAD design
phase was embedded to this process in order to initiate design pattern modification.
Figure 5.15 illustrates Design Pattern Modification Process Flow.
Figure 5.15: Design Pattern Modification Process Flow
Figure 5.15 was originally derived from POAD early design phase to define
Pattern level diagram and Pattern level diagram with interface diagram. This process is
crucial since it must briefly define the information of patterns.
Mechanistic Design Task Use is the process of defining the structure and
behaviour model. Before that, this task use has one mandatory input which is Pattern
level diagram with interface (Work Product definition) and produce one subtle output;
Detailed Pattern Internal Work Product Use. Figure 5.16 shows the Step process of
Mechanistic Design.
Figure 5.16: Mechanistic Design Task Use Step Process
Figure 5.16 was originally derived from ROPES design phase and was
embedding with POAD design detailed phase that represented with dash box diagram.
This step is to identify the detailed internal class of the patterns. Figure 5.17 shows the
POAD design detailed phase flow process.
Figure 5.17: Design Pattern Internal Class Process Flow
Detailed Design Task Use is the final tasks that need to be executed after
previous task is completed. This task use own one mandatory output which is Design
detailed model (Work Product Use). Figure 5.18 shows the Detailed Design task use
Step process that originally derived form ROPES design phase.
Figure 5.18: Detailed Design Task Use Step Process
From the Design Process diagram, it shows that all the elements are originally
derived from Method Content elements such as Roles, Task and Work Product
definition. The Method Use is the realization of Method Content elements and each task
use represent a set of complex process. The complex process then represent in Step
elements.
5.4
Discussion On The Proposed Software Process
The integrated ROPES and POAD software process consists of two phase 1)
Analysis and 2) Design. These new process was introduced explicitly to enable the uses
of patterns in early phase and systematically. In seeking to demonstrate the efficacy of
the integrated ROPES and POAD software process, the most compelling form of
analysis and design would be to quantitatively show how adopting ROPES and POAD
methodology could bring some improvement of the new process to a standard set of
software development. The discussion of this chapter is twofold. Firstly, what is the
integration point of two processes of methodology need to be done and how to
implement it in order to gain a smooth integrated process? Secondly, there has been a
reviewing on the new process in context of its applicability. This shortcoming is
identified by examining the impact on the new process of adopting the uses of pattern in
ROPES and consequently will answer all the project objectives and motivations that
have been identified in Chapter 1.
The integration of ROPES and POAD is essential to present exactly the uses of
pattern in software development. In ROPES, Analysis phase contains of three processes
which are Requirement, System and Object analysis. To seek the appropriate level of
adopting POAD analysis process in ROPES, the integration will be executed at
Requirement and Object analysis process. Both processes describe the structural and
behaviour information of the system which will be subtle information to select suitable
patterns. After the integration points have been identified, POAD analysis process will
be implemented after system behaviour has been identified. It is important because the
system behaviour tells the whole story how the system should be execute and from there,
the suitable patterns can be selected. Furthermore, in Design phase, POAD design
process will be adapted to the Architectural and Mechanistic design in ROPES. In
Architectural design, POAD design processes which are Pattern Level Diagram and
Pattern Level Diagram with interface will defined because Architectural design define
the package and subsystem of the system. Thus, Detailed Pattern Internal Class will be
defined in Mechanistic design because this process responsible for class diagrams
construction.
After the integrated ROPES and POAD software process was designed, it clearly
shown that the new process was offering the big enhancements in ROPES. The uses of
patterns in ROPES methodology will start in early phase were systematically derived
until design phase. Thus, the complexity of system design will decreased because the
patterns feed the defined class diagrams in completing the design of the system class
diagrams.
The use of patterns in the integrated ROPES and POAD software process is at an
early phase of development, and yet the widespread acceptance of the concepts of a
pattern implies that patterns have a significant future in software development
methodology. Probably, the most important outstanding achievement for the integrated
ROPES and POAD software process is the applicability of pattern oriented development
in the integrated process.
5.5
Comparative Evaluation of Pattern Oriented Development
The integrated ROPES and POAD software process was introduced to enable
pattern oriented development in ROPES. Even though ROPES methodology already
using pattern in its software lifecycle, the process only occurs in design phase. To enable
the using of patterns systematically and furthermore, beginning in early phase, ROPES
was combined with POAD methodology. The results demonstrates, the integrated
ROPES and POAD software process enable the uses of patterns starting in analysis
phase and systematically derived until design phase.
In order to validate the usefulness of integrated ROPES and POAD software
process, the comparative evaluation of pattern oriented development was conducted.
(Simba and Jawawi, 2008) was introduced the integrated POAD and PECOS software
process. The comparative evaluation gives the background information needed to
establish the context of evaluation being conducted. It normally includes the pattern
criteria on which level of patterns are used and how the integration of two
methodologies was established. Table 5.1 shows the comparative evaluation of pattern
oriented development methodology.
Table 5.1: Comparative Evaluation on Pattern Oriented Development
Methodology
Criteria
POAD + PECOS
POAD + ROPES
Structural
Yes
Yes
N/A
Yes
Pattern Selection
Analysis
Analysis
Pattern
Analysis
Architectural
Features
Behaviour
Features
Level
Diagram
Pattern
Design
Level
Early Design
Diagram with Interface
Detailed
Pattern
Design
Design
Internal
Methodology
Integration Level
Architectural
Mechanistic
Design
Integration
Combination
Pattern Selection
Sequential
Iteration
Lifecycle
Table 5.1 demonstrates the comparative evaluation of pattern oriented
development between POAD+PECOS (Simba and Jawawi, 2008) and POAD+ROPES.
The comparison has been made to prove the applicability of POAD+ROPES towards
POAD+PECOS in term of pattern uses. There are some essential criteria have been
identified to compare both works which are system features, patterns, integration and
patterns selection lifecycle. The system features includes structural and behaviour that
represent the nature of the system. POAD+PECOS software process using POAD as
main methodology and PECOS as a supported methodology that enabling component
based development. This integrated software process describes the structural of the
system but not considering of system behaviour because of POAD constraints. In
contrary, POAD+ROPES were enabling the structural and behaviour of the system. In
addition, both integrated software process defined the pattern selection in analysis phase
and systematically derived until design phase.
For the integration level, POAD+PECOS are using integration approaches. This
means, the integration between POAD and PECOS occurs at intersection between them.
The pattern selection and pattern design mainly from POAD but the internal classes of
pattern using component notation that available in PECOS. In contrary, POAD+ROPES
are using combination approaches. This approach enables the whole POAD process to
be merged with the ROPES. This will enable the smooth process transactions between
POAD and ROPES phase. Thus, the traceability, requirement propagation and
trustworthy of the process can be firmed in term of software process quality.
Drawing these insights together, it is possible to define a canonical view of a
system. Both integrated software process express the composition of patterns in analysis
phase and connected together along the software development process until design
phase.
CHAPTER 6
ANALYSIS AND DESIGN OF FEEDBACK CONTROL SYSTEM
6.1
Introduction
This chapter describes the implementation of the Feedback Control System by
applying the integrated ROPES and POAD software process as described in Chapter 5.
The scopes of the implementation strictly on analysis and design phase. Thus, behaviour
of the system will be showed in simulation views by using Rhapsody I-Logix 6.0 tool.
6.2
Analysis Phase
An initial analysis of the system is essential to discover the functionality of the
system in users and stakeholders view. The functionality of the system can be thought as
functional and non-functional requirements. The functional requirements usually will be
viewed as black-box as a System Analyst investigate how the users interact with the
system in high level view. Hence, non-functional requirements specify the performance,
reliability and safety of the functional requirements.
In the integrated ROPES and POAD software process, Analysis Phase consists of
three analysis processes which are Requirement, System and Object analysis.
Requirement analysis is the process how to identify the system users and functionality.
System analysis is to identify the composition of the system such as subsystem. Object
analysis was divided into two categories which are Object Structural and Behaviour
analysis. Object Structural analysis is the process of identifying the objects in the system
and Object Behaviour analysis is the process to identify the behaviour of the objects
against the system.
The other kind of analysis is the pattern selection analysis which originally from
POAD methodology. Pattern selection analysis was combined into Requirement and
Object analysis in order to identify the suitable candidate of design pattern that will be
used in system design. Pattern selection process in early phase in ROPES is very
important to enable the consistency and systematic system development in order to
decrease the complexity of the system development.
6.2.1 Requirement Analysis
Requirements are essential in order to identify the system requirements.
In this case, Feedback Control System requirements are extracted by the System Analyst
so that they can be analysed and refined. In practical, the main tool that will use by
System Analyst to view the system requirements is Use Case. Use Case describes the
behaviour of the system in high level views by ignoring how the system was constructed
in details. This enables the visible views of the system by referring the information that
was given by the users and stakeholders.
6.2.1.1 Main Use Case
Feedback Control System (FCS) is the system that is used into the other system
in order to identify the error feedback of the system. The Use Case of the FCS was
constructed as shown in Figure 6.1.
Feedback Control System
Control
Configure
User
Acuator
Calculate Error
Monitor
Collect data
Sensor
Figure 6.1: FCS Use Case
Figure 6.1 shows the FCS Use Case. FCS Use Case consist three users called
Actor. The Actor of the system is User, Actuator and Sensor. In this case, User was
enabling to configure the system by setting the static indicator input that need to be
compared with the error data. Then, Actuator was responsible to control the Plant
operation and Sensor was responsible to monitor all the measured input taken from the
Plant. All the actors were associated with the respective system functionality that
represented in Use Case form.
Further analysis need to be done in order to discover the suitable patterns to
implement the functionalities of the system. To succeed this purpose, the Use Case
behaviour must be identified to capture how the system operate and to realize that,
System Analyst must develop Use Case Text, Sequence Diagram and State chart of each
identified Use Case.
6.2.1.2 Use Case Behaviour
Use cases defining the functional of the system. Use cases usually are text stories
and used to discover and record requirements. Furthermore, use case described the
action of an actor using the system to meet the goal. In order to visualize how each Use
cases meet the goal, Use Case Text was constructed and furthermore, sequence diagram
and state chart as well.
6.2.1.3 Use Case Text
The Use Case Text is more like text stories and describes how the system
operates by investigate how the Actor communicates with the system. Use Case Text do
not concern in details of the system because Use Case model only visible to the high
level view of the system (black-box). There are five Use Cases which are Configure,
Calculate Error, Collect Data, Control and Monitor. Figure 6.2 illustrates Use Case Text
for Configure Use Case.
UC-00: Configure
Scope
: FCS
Level
: System Goal
Primary Actor
: User
Include Use Case
: Error Calculation
Preconditions
: System was ready
Postconditions
: System was ready to be launched
Basic Flow
:
1. User examines all parts of devices to inspect the hardware.
2. User installs BIOS for main board of System.
3. System shows BIOS ready to execute.
4. User install Operating System (OS) into the System
5. System shows initial status to User.
6. User installs software and firmware for System communication.
7. System ready to execute the process.
Special Requirements
:

Central Processing Unit (CPU)

Monitor

Logic Machine
Frequency of
: Once
Occurrence
Figure 6.2: UC-00
Figure 6.2 shows the Use Case Text for Configure Use Case. Use Case Text
consists of items that specifically mention about system Use Case. They consists of
scope, level, primary actor, include use case, precondition, post condition, flow of
message, special requirements and frequency of occurrence. These items are responsible
to describe the behaviour of Use Case.
In details, Use Case Text for Configure describes the behaviour of its operation
itself. Configure Use Case scope only focusing on the implementation of FCS which is
system goal level. By referring the Use Case diagram, the Actor involves to execute the
Configure Use Case is User and includes with Error Calculation Use Case after the FCS
successful configured. Before the FCS will be configured by an Actor, they must fulfil
certain precondition which is the system itself must be ready to run. After the
configuration works, the expected post-condition is system was ready to be launched. In
general, all of this flow will be described in basic flow of the Configure use case to
describe how this use case should be executed. Apart from that, there are special
requirements included to ensure the successful of the Configure use case. The special
requirements needed are CPU, monitor and logic machine. The occurrence of Configure
use case behaviour only once. For conclusion, Use Case Text is the way to describe the
behaviour of the Use Case. Refer Appendix A for the rest of Use Case Text.
In general, many actions require relatively specific stories to perform. This may
be initiated by an introduction of system sequence diagram that may help the System
Analyst to have clear views how the messages between system and actor may exchange.
By observing the Use Case Text, sequence diagram and state chart of the Use Case will
be constructed.
6.2.1.4 Sequence Diagram
In this section, the sequence diagram of each use cases was developed based on
Use Case Text in the preceding sections. Sequence diagram show the sequence of
message between object and class. However, in requirement analysis, the message
exchange between system and actor. Figure 6.3 shows the sequence diagram of
Configure Use Case.
Configure Use Case Scenario
:User
System:FCS
installB IOS ()
statusBIOS()
InstallOS()
statusOS ()
configureSystem()
systemstatus()
Figure 6.3: Configure Use Case Sequence Diagram
Figure 6.3 shows the sequence diagram for Configure use case. The sequence
diagram was constructed based on Configure Use Case Text in order to shoe the
exchange messages between User and System. The User will send sequence of messages
to the System to initiate BIOS and Operating System (OS) installation. Then, System
will reply the messages to give permission to User to execute those tasks. After those
tasks are successful, User begin Configure the System and the System reply the
messages to User after all the operations are successful. Configure sequence diagram
exactly refer to Configure use case text regarding on its flow. Refer Appendix A for the
Monitor and Control Use Case.
Note that only three use case in FCS use case model was realized into sequence
diagram to show the behaviour of each use cases. Some of the messages are internal to
the system. Those three use cases are directly performs by Actor and again, sequence
diagram in requirement analysis only shows the exchange message between Actor and
System. This is to capture what are the messages between Actor and system. The other
two use cases which are Error Calculation and Collect Data will be realized in statechart
diagram.
6.2.1.5 Statechart
For the FCS Use Case model, there are two use cases which are using statechart
to describe the use case behaviour. The use cases are Error Collection and Collect Data.
Error Collection use case contains the most completes behaviour and may compose into
a few subsystems because of its complexity. However, the Error Calculation is an
autonomous behaviour so that, its behaviour will be shown in statechart diagram as
shown in Figure 6.4.
Cal cul ate Error Use Case Statechart
wai t for feedback data
dataReady
Read feedback data
Queing Data
Enqueue feedback data
update error data i nto database
Data Ready
Retri eve i nput data
Updating Data
Terminate
Process
Process data
Terminate
Process
Process data
produce error data
Produce feedback data
Process data
forward to feedforward subsystem
Updating Data
cal cul ate error data
Figure 6.4: Error Calculation Statechart
Figure 6.4 shows the statechart for Error Calculation use case. They statechart
consists a transition and state. The transition describes what are the operations,
parameters or action need to be transferred to another state. The state may represents the
current state of the operation by the given or specific time. It also influence whether the
states are active or passive.
On the other hand, Figure 6.5 shows the Collect Data statechart. Note that Data
Collection statechart contains two active states which are Store and Retrieve state. Store
state responsible for restoring the incoming data from the subsystem and Retrieve state
responsible for response for the request data if there any possible request from the other
subsystem.
Collect Data Use Case Statechart
wait for data request
dataRequest
Read request data
dataStore
dataRetrieve
sendData
store
retrieve
DataReady
DataReady
Looking for request data
Save data in database
DataFound
Figure 6.5: Collect Data Statechart
6.2.1.6 Pattern Selection
Pattern selection analysis is originally from POAD methodology. However, the
integrated ROPES and POAD software process was enabling the pattern selection
analysis could be made in requirement analysis in ROPES. This is the ultimate objective
of the integrated methodology and the patterns were enabling to be selected in early
phase. In order to do so, each use case text, sequence diagram and statechart was
investigated to capture which part that suitable for patterns implementation. Table 6.1
shows the suitable patterns that possible to be used in system design after deep
understanding of the use case behaviour items.
Table 6.1: Pattern Selection Analysis
Use
Case
Diagra
State
Purpos
m
Error
Calculation
es
Use
Read
rn
Observ
 feedback data
Case
Patte
Statechart
Obser
e the measured ver
data from Plant
Produc
e
Apply
feedback strategy
data
Strate
to gy
produce
feedback data
Calcula
te error data
Observ
Obser
e feedback data ver
to be compared
with input data
Forwar
d
Data
Collection
Use
Case
Statechart
Apply
to strategy
feedforward
Plant
subsystem
error data
Store
 and Retrieve
to gy
with
Manipu
lates
Strate
Black
multiple board
types of data
Table 6.1 illustrates the pattern selection analysis result. The result was obtained
from the comprehensive analysis on use case behaviour diagram. Statechart diagram for
Error Calculation use case compose two types of patterns which are Observer and
Strategy. Observer pattern purposes are to receive any incoming data, processes it and
update the data. These patterns are suitable to be implemented to the feedback and error
calculation state since they both have received potential incoming data. Then, Strategy
pattern implements control strategy to the targeted subsystem with some algorithm
hence; it’s suitable for feedforward and feedback state. In addition, Blackboard pattern
absolutely suitable for store and retrieve state because they contains multiple types of
data that the system needs.
In pattern selection analysis, an early pattern was selected based on use case
behaviour and more precisely, the behaviour of the system. By identifying the suitable
patterns, a set of pattern candidate then was selected that will be used in system design
phase.
6.2.2 System Analysis
The next stage of analysis in ROPES is system analysis. System analysis is the
investigation onto the system without knowing the details architecture of the system.
System analysis may discover the complexity of the system and if possible, the system
may composed into several subsystem depends on its functional. Each subsystem will
implement specific roles or tasks of the system in order to meet system goals. Based on
FCS Use Case model, the FCS can be composed into five types of subsystem as shown
in Figure 6.6.
Feedback Control System
<<System>>
«Subsystem»
«Subsystem»
Monitoring
ErrorCalculation
1
1
1
1
1
controlPlant
1
1
1
«Subsystem»
«Subsystem»
Database
Display
1
1
Figure 6.6: FCS Subsystem Composition
Figure 6.6 shows the subsystem of FCS. The composition of the system has been
made by investigating the functional of the system based on FCS use case model. Note
that each subsystem has specific tasks that responsible to implement the system
functionality. Table 6.2 shows the responsible of each subsystem.
Table 6.2: Subsystem Tasks
Subsystem
Tasks
ErrorCalcula
Responsible to determine the input data, observe
tion
measured data from Plant, produce feedback data, calculate error
data based on feedback data, apply strategy to Plant with error
data.
Monitoring
Responsible to collect measurement data from sensor.
Display
Responsible for display purposes for end user.
controlPlant
Responsible to handle the Plant operation.
Database
Responsible to store all types of data and handle data
manipulation process.
6.2.3 Object Analysis
Object analysis is the process of discover the possible objects that exist in the
domain or subsystem. In this case, the objects will be discovered in each system. In
addition, Object analysis contains two parts which are Structural and Behaviour.
Structural analysis is the process to identify essential objects that appear in subsystem,
propose suitable classes, their relationship and identify essential attributes and
operations. Then, Behaviour analysis is the process to determine the behaviour of each
object that appears in subsystem.
6.2.3.1 Object Structural
In the later section, the FCS subsystem has been identified by undergoing
comprehensive analysis on use cases behaviour. Then, each subsystem may have
possible objects that build up the subsystem structure. In order to identify subsystem
structure, Object structural analysis will be implemented. Object structural analysis main
principles to capture essential objects that appear in subsystem, propose possible class
and identify their relationship. However, build up subsystem structure, the possible
objects that exist in the system must be identified as shown in Table 6.3.
Table 6.3: FCS Transaction Objects
Object 1
Object
2
Primary
Associ
ation
Record
Transaction
Object
Tracks
Sensor
Subject
Tracking Time
Tracking Date
Secondary
Record
Tracks
Sensor
Subject
Tracking Time
Tracking Date
Plant
Controller
Actuato
r
Screen
Message
Contain
Request for action
Owns
Set Data
s
Icon
Menu
Database
Control
FB Data
s
Error
Get Data
Data
Measur
ed Data
Measured
FB
Observ
Request
for
subject
Strategy
FB subject
es
Error
measured data
Notify
Observer
Error
Observer
for
feedback data
FF
Strategy
Request
Update
s
Request for error
data
Table 6.3 shows the FCS transaction objects. The objects were identified by
observing the system behaviour and its relationship with each subsystem. Note that, each
subsystem implements their own function by the group of objects. From Table 6.3, the
association of the two objects was identified following the transaction objects. From this
analysis, the list of objects then will be grouped to the subsystem as shown in Table 6.4.
Table 6.4: Subsystem Objects
Subsystem
Objects
Error
FB Strategy
Calculation
FF Strategy
Measured Subject
FB Subject
Error Observer
Monitoring
Primary Sensor
Secondary Sensor
Record
Display
Screen
Icon
Menu
controlPlan
Plant Controller
Database
Error data
t
FB Data
Measured Data
After all the subsystem objects have been identified, the subsystem object model
diagram was constructed by using Rhapsody I-Logix 6.0 to realize the implementation
of the system. Figure 6.7 shows the FCS subsystem view diagram.
Feedback Control S ystem
<<System >>
ErrorCal cul ati on
1
1
i tsFFS trategy
M oni tori ng
1
1
1
1
i tsFB Strategy
i tsM easuredSubj ect
1
1
1
i tsP ri m aryS ensor
i tsS econdarySensor
1
1
1
1
1
1
i tsRecord
1
1
1
1
1
i tsE rrorObserver
1
1
1
control Pl ant
i tsFB Subj ect
1
1
1
i tsP l antControl l er
1
1
1
1
1
Di spl ay
Database
1
i tsE rrorData
1
1
i tsFB Data
i tsM easuredData
1
1
i tsS creen
1
1
1
i tsIcon
1
i tsM enu
1
Figure 6.7: Subsystem Diagram
6.2.3.2 Object Behaviour
Object behaviour analysis refers to the way what the object does. The objects of
each subsystem have their own behaviour that implements specific tasks to contribute
the operation the whole system. The behaviour of each object will be represented in
Statechart diagram in order to show the clear view how the state change and what are the
exchange messages involve. Figure 6.8 shows the statechart for FFStrategy Object.
idle
DataReady
Apply strategy
Feed data to plant
Figure 6.8: FFStrategy Object Statechart
Figure 6.8 demonstrates the FFStrategy Object statechart diagrams. This diagram
intended to explain the behaviour of the object. The FFStrategy Object was placed in
ErrorCalculation
subsystemand this object responsible to executed the specific
algorithm to Plant. There are four states which are idle, DataReady, Apply strategy and
Feed data to plant which connected with transition arrow. Idle state means the object is
in position to receive incoming data. Then, after the data was received, it goes to the
DataReady states which show the data was available. Then, Apply strategy state begins
to initiate the strategy to be applied into the Feed data to plant state. This behaviour
main purpose is to show how FFStrategy object behaviour will react when the system
start to be executed. Refer Appendix A for the rest of subsystem object statechart.
6.2.4 Analysis Result Summary
Analysis phase in ROPES consist three main processes which are Requirement,
System and Object analysis. Each process have specific purposes that to be done in order
to produce clear views on system requirements. Thus, regarding the integrated ROPES
and POAD software process, POAD analysis process will be combined with the ROPES
analysis process at the critical process. In ROPES, Requirement and Object analysis
process was essential because these processes describe the behaviour of the system.
Since the behaviour of the system was identified, the suitable patterns can be selected.
Therefore, POAD analysis process which is Pattern Selection process was combined into
Requirement and Object analysis process.
To select suitable patterns in software development is the main concerns of the
integrated ROPES and POAD software process. The Requirement and Object analysis
process feed the subtle information about how the correct patterns were selected. Those
processes includes the behaviour features which becoming the major factors of pattern
selection process. Similarly, the pattern selection process relied heavily on the system
behaviour. The Requirement and Object analysis have elaborated the FCS to encompass
a number of different kinds of behaviour diagram, making the behavioural modelling
more complete. This is where the pattern selection process in POAD takes part to
execute the process of selecting suitable patterns of the FCS. In general, Requirement
and Object analysis process deals with the very broad scope strategic decision such as
system structural and behavioural and patterns selection process.
6.3
Design Phase
In the previous section, analysis phase was implemented comprehensively in
order to collect and gather all the system requirements. The use case model, subsystem
view, objects and system behaviours were briefly described. In addition, based on
integrated ROPES and POAD software process, a set of pattern was selected in analysis
phase in order to enable smooth system design by using the selected patterns. In design
phase, there are three processes which responsible to implement FCS design. The three
processes are Architectural, Mechanistic and Detailed design. Then, those processes
were embedded with the POAD design processes which define the Pattern Level
Diagram, Pattern Level with Interface Diagram and Pattern Internal Classes.
6.3.1
Architectural Design
An architectural design main concern is to enable broad level view of the FCS
system. The large-scale design of FCS was constructed by involving the relationship of
UML management notation such as components, packages, subsystem and processors.
In further details, architectural was divided into two processes which are Deployment
View and Component View.
6.3.1.1 Component View
A component is the software items that can be reused to another purpose.
Components occur at run-time and often used for embedded and real-time system. For
FCS, there are three components that libraries and executable types. Figure 6.9 shows
Component View of FCS.
«Executable»
GUI
«Usage»
«Library»
«Executable»
GUIlib
FCS_Library
«Usage»
Figure 6.9: Component View in FCS
Figure 6.9 shows the FCS components. There are three components that
responsible for the systems which are GUIlib, GUI and FCS_Library. GUIlib component
is the Library type which contains a set of objects and function that provide services to
executable component. Thus, all graphical user interface of FCS was placed in GUIlib
component to be linked with FCS_Libarary and GUI components. Then, GUI
component is stand-alone program that execute the entire system display base. A
FCS_Library component is the most important component that execute all the FCS
function. Those three components are declared explicitly to enable the run-time
executable of the FCS.
6.3.1.2 Deployment View
In the previous section, we discussed about the Component view in FCS.
Components exist at the run-time that provides necessary information. However, how
can those components interact with the devices or processors in FCS? Deployment view
can provide the physical view of the system and illustrates how each component
communicates with system hardware. Figure 6.10 shows the Deployment view of FCS.
«Proc ess or»
«Display»
User_Interface
LCD
«Proc ess or»
Error_Calculation
«Proc ess or»
«Proc ess or»
Input_Controller
Output_Controller
«Disk»
Database
«flow»
«Sensor»
«M otor»
position_sensor
Stepper
«flow»
«Sensor»
«M otor»
position_sensor
Stepper
Figure 6.10: Deployment View of FCS
6.3.1.3 Pattern Level Diagram
In the Architectural design, the low-level view of the system has been identified
such as components, deployments and so on. Then, regarding on the integrated ROPES
and POAD software process, the development of Pattern Level Diagram will be
constructed at this level. After a set of pattern has been produced in Requirement
analysis stage as shown in Table 6.1, there is a process to construct the pattern Package.
Before that, Table 6.5 shows the transformation a set of pattern that has been identified
in Table 6.1 into patterns Package.
Table 6.5: Patterns Package
State
Purpose
Pattern
s
Read
feedback data
Package
Observe
the
Patterns
Observer
measured
FB_Obse
rver
data from Plant
Produce
feedback data
Apply
strategy
Strategy
to
FB_Strat
egy
produce
feedback data
Calculate
error data
Observe
Observer
feedback data to
be
ER_Obs
erver
compared
with input data
Forward
to feedforward
Apply
Strategy
strategy to Plant
FF_Strat
egy
with error data
Store
and Retrieve
Manipul
ates
multiple rd
types of data
Blackboa
DT_Blac
kboard
Table 6.5 shows the patterns package of the FCS. Each patterns package was
assigned to the respective purposes based on current state at FCS statechart. Apart from
that, each patterns package was derived originally from core patterns which are
Observer, Strategy and Blacboard. In details, each patterns package was having certain
purposes where it would facilitate process of building FCS class diagram. Figure 6.11
shows how patterns package related to each other and how the flows of data will occur.
P lant
«<<Pattern>>»
«flo w»
«<<Pattern>>»
FF_ Stra tegy
FB _Obsever
«flo w»
«flo w»
«<<Pattern>>»
«<<Pattern>>»
FB _S trateg y
E R_Ob server
«flo w»
«flo w»
«<<Pattern>>»
DT_B lackboard
«flo w»
«flo w»
Figure 6.11: Pattern Level Diagram in ErrorCalculation Subsystem
Figure 6.11 shows the Pattern level diagram for ErrorCalculation Subsystem.
Note that there are five pattern packages that have been constructed based on Table 6.5.
Strategy pattern has been applied to the feedforward and feedback process. Then
Observer pattern will be used on error calculation and the process of producing feedback
data. This entire pattern is in Error Calculation subsystem. In addition, Blackboard
pattern has been constructed into Database subsystem in order to group the types of data.
After the pattern level diagram has been constructed, those patterns must have a special
interface to enable communication between patterns.
6.3.1.4 Pattern Level With Interface Diagram
In the previous section, pattern level diagram for FCS was constructed based on
the requirement analysis and subsystem in FCS. In order to enable the communication
between patterns, each pattern package must have an interface. An interface will act as a
proxy so that all the parameter or transaction of objects can be done here. Figure 6.12
shows the pattern level diagram with interface for FCS.
«<<Pattern>>»
«<<Pattern>>»
FF_S trategy
FB _Ob sever
«Interfac e»
Co ntroller
Feedb ackObserver
1
«<<Pattern>>»
ER_Observer
«<<Pattern>>»
FB _Strateg y
1
«Interfac e»
Error_Observer
«Interfac e»
1
FB
«<<Pattern>>»
DT _Bl ackboard
1
«Interfac e»
Da ta_Cont roller
1
Figure 6.12: Pattern Level Diagram with Interface for ErrorCalculation
Subsystem
Figure 6.12 shows the pattern level diagram with interface for FCS. Each pattern
package contains an interface that responsible to be as proxy of pattern communication.
This process originally from POAD designs process and the construction of pattern
package will enable each pattern exchanging messages through interface.
6.3.2
Mechanistic Design
Mechanistic design deals with the class diagram construction and what its
relationship. The class diagram of FCS will be constructed based on a set of objects in
subsystem. As mention in Section 6.2.3, Object analysis is responsible to discover
possible objects in subsystem. Then, based on those objects, the respective class diagram
will be constructed. Based on subsystem object, the possible candidate class has been
identified based on a set of pattern that has been selected in requirement analysis.
Furthermore, in Architectural design, Pattern level diagram and pattern level diagram
with interface have been identified. So that, in Mechanistic design, the pattern internal
class will be constructed to build up the system. By doing this, the behaviour of the FCS
also can be achieved by constructing sequence and statechart diagram based on defined
class diagram.
6.3.2.1 Design Pattern Internal Class
Based on the basic process in Mechanistic design in ROPES, class diagram for
the system will be constructed to build up the system design. Furthermore, each class
diagram has their own behaviour that will be shows in statechart diagram. However, in
the integrated ROPES and POAD metamodel, the class diagram construction for the
system design must base on pattern shape. In the other words, class diagram for FCS is
constructed by applying the collaboration with patterns package. Before that, the
patterns package internal class must be defined. Table 6.6 illustrates the pattern internal
classes for each patterns package.
Table 6.6: Pattern Internal Classes
Patterns package
Class Diagram
FB_Observer
Subject
Observer
MeasuredSubject
FeedbackObserver
FB_Strategy
FB
FBStrategyA
FBStrategyB
FBController
FF_Strategy
FF_Strategy
ConcreteStrategyA
ConcreteStrategyB
Controller
ER_Observer
ErrorSubject
FeedbackSubject
Error_Observer
AbstractObserver
DT_Blackboard
Data_Controller
DataType
Err_Data
FB_Data
Measured-Data
Table 6.6 shows the pattern internal class diagrams. Internal class diagrams for
patterns package were originally derived from pattern library that already has been
defined by the pattern’s creator. In FCS system, some of the classes may have not
required because of the system requirements. For the initial FCS class diagram, all
patterns package that are shown in Appendix A was connected together via interface
and with the other subsystem class diagrams. Figure 6.13 shows the FCS class diagrams.
plant
1
MeasuredSubject
1
FB_ObserverPattern
FF_Strategy Pattern
«Interface»
1
1
FF_Strategy
Observer
Controller
Subject
1
1
«Interface»
ConcreteStrategyB
ConcreteStrategyA
MeasuredSubject
FeedbackObserver
RecordManager
ER_Observer Pattern
FB_Strategy Pattern
AbsractObserver
«Interface»
1
1
1
FB
«Interface»
ErrorSubject
FBController
1
1
FeedbackSubject
Error_Observer
FBStrategyA
FBStrategyB
DT _Blackboard Pattern
1
1
«Interface»
1
Data_Controller
1
Err_Data
1
1
DataT ype
FB_Data
1
VisualElement
Measured_Data
Figure 6.13: FCS Class Diagram with Patterns
Figure 6.13 shows the FCS class diagrams with patterns. FCS class diagrams
were constructed by the set of patterns and the other subsystem classes. Each patterns
package communicate through class interface which responsible for data or objects
transaction. Apart from that, the other class like Plant, VisualElement and
RecordManager also included together as a part of system design. Note that, the FCS
class diagram above fulfil the integrated ROPES and POAD metamodel requirements
as most of the class diagrams were constructed from the pattern internal classes.
However, the FCS class diagrams that has been developed has not complete yet.
By referring the integrated ROPES and POAD software process, the Mechanistic
design in ROPES is combined with the design phase in POAD. As such circumstances,
after the FCS class diagram was constructed, its must be refined again in order to
decrease the complexity of the class diagrams. This process is to facilitate the
developer so that they will get the appropriate class diagrams. Thus, the sufficient class
diagrams are important to maintain the stability of the system design.
6.3.2.2 Refined Class Diagram
After the FCS class diagrams was constructed as shown in Figure 6.29, it shows
that some other class diagrams can be merged together in order to decrease the
complexity of the system design. This process known as refined class diagrams and the
main principles of this process is to minimize the complexity of the FCS class diagrams.
Based on the FCS class diagrams, there are five patterns package included and each one
contains the original class diagrams. By referring Table 6.1, only three patterns was
included which are Observer, Strategy and Blackboard. Observer patterns were used to
produce feedback and error data. Strategy patterns were used to apply the specific
algorithm to feedback and feedforward purposes and Blackboard pattern is used to
categorize a data. By observing this information and FCS class diagrams, the existed
class diagrams can be refined by minimizing the pattern internal classes. Table 6.7
shows the summary of refined FCS class diagrams.
Table 6.7: Refined FCS Class Diagrams Summary
Pattern
s package
Class
Diagram
FB_Obs
erver
Patter
n
Refined
Diagrams
Subject
AbstractSubject
Observer
AbstractObserver
MeasuredS
FBSubjectObserv
ubject
Obser
FeedbackO
er
ver
ErrorObserver
bserver
ER_Obs
erver
Class
MeasurementSubj
ect
ErrorSubjec
t
FeedbackSu
bject
Error_Obse
rver
AbstractOb
server
FF_Stra
tegy
FF_Strateg
AbstractController
y
Controller
ConcreteStr
FBStrategyA
ategyA
Strateg
ConcreteStr
ategyB
Controller
FB_Stra
FB
tegy
FBStrategy
A
FBStrategy
B
FBControll
er
y
ConcreteStrategy
A
DT_Bla
ckboard
Data_Contr
oller
Blackb
No Change
oard
DataType
Err_Data
FB_Data
Measured_
Data
Table 6.7 shows the summary of FCS class diagrams that has been refined by
combining with the same patterns. Note that, they have five patterns package and each
one of them have their own internal classes. Both FF_Observer and ER_Observer have
the same pattern which is Observer. Observer patterns have two core class diagrams
which are AbstractSubject and AbstractObserver. Both classes already exist in
FF_Observer and ER_Observer patterns package. Furthermore, AbstractSubject
responsible to identify the subject involves in the system. In this case, AbstractSubject is
responsible to handle feedback and measured subject. Furthermore, AbstractObserver is
required to observers any incoming data and feedback and error observer will be placed
inside this class.
The other patterns package that will be grouped together is FF_Strategy and
FB_Strategy. Both patterns package are responsible to execute the specific algorithm in
order to produce some output. As such conditions, FBStrategyA and ConcreteStrategyA
class will be generalized inside AbstractController. Figure 6.14 shows the FCS refined
class diagrams.
Pattern::Strategy ::AbstractController
Pattern::Strategy ::Controller
1
1
1
Plant
1
1
Pattern::Strategy ::ConcreteStrategy A
Pattern::Strategy ::FBStrategy A
1
Pattern::Observ er::AbstractObserv er
Pattern::Observ er::AbstractSubject
MeasurementSubject
1
1
Pattern::Observ er::ErrorObserver
RecordManager
Pattern::Observ er::FBSubjectObserver
1
1
1
VisualElement
Pattern::Blacboard::DataController
1
1
1
1
Pattern::Blacboard::DataHolder
1
Pattern::Blacboard::ErrorData
Pattern::Blacboard::FBData
Pattern::Blacboard::MeasuredData
Figure 6.14: FCS Refined Class Diagram
6.3.2.3 Sequence Diagram
After FCS class diagram was refined and already exist in minimized form, it is
important to stress that analysing the FCS behaviour is very creative process. Thus, the
process of exchanging messages between classes is essential since it may contain some
information parameters or objects that need to travel across class diagrams. In order to
show this process, FCS will use sequence diagram. A sequence diagram is the tool that
shows the sequence of messages between classes or objects. Thus, sequence diagrams
capable to show the timing properties that may exist while messages are exchange. For
FCS system, there are four main sequence diagrams which illustrate how the whole
system will operate. Figure 6.15 shows the sequence diagram for error calculation.
ENV
:Abstract
Observer
:ErrorObserver
:Controller
:DataController
update(changedSubject)
update(changedSubject)
setDataController(aDataController)
setData(newData)
setController(aController)
setInputData(newInputData)
control(feedbackData)
setStrategy(aStrategy)
Figure 6.15: Error Calculation Sequence Diagram
6.3.2.4 Statechart Diagram
Statechart diagram main principles is to shows the behaviour of the objects or
classes. For this reason, they are appropriate to the class diagrams. In FCS class
diagrams, the operations and attributes have been defined. Thus, the selected class
diagrams will show how the process of FCS. By referring to the requirement analysis,
FCS main purposes are to produce error data by observing the measured data from plant
and compared with the defined input. The behaviour of these processes lies in the
important class diagrams. Table 6.8 shows the statechart of the selected class diagrams.
Table 6.8: Statechart Diagram
Class Diagram
Purposes
Plant
The
process
of
producing measured data.
Pattern::Observer::Abstract
Subject
The
process
of
producing feedback data
by observing the measured
data from plant with some
special algorithm.
Pattern::Observer::ErrorOb
server
The
process
of
producing error data by
observing
the
feedback
data.
Pattern::Strategy::Controll
er
The
process
of
applying special algorithm
to plant with error data.
Table 6.8 shows the statechart of respective class diagrams in FCS refined class
diagrams. Each class diagrams have important tasks of describing the whole FCS
process. The process of FCS includes the operations of each class and reflecting the
system design overall. Figure 6.16 shows the statechart for Plant class diagram.
idle
[speed=15]
SetCurrentSpeed
tm(1000)[currentSpeed]
startOperation
tm(1000)[speedUp]
PlantingProcess
tm(1000)
Figure 6.16: Plant Class Statechart
Figure 6.16 shows the statechart for Plant class diagram. The statechart intended
to illustrate the behaviour of the Plant class which enable the specific view on how the
Plant class will executed. The Plant class statechart consists of four states which each
state represent the system behaviour. Idle state means the Plant in the idle state and
available to receive any new command. Before that, the static parameter which is speed
was setup by the User. The static speed was setup because to give the specific
measurement of the plant speed should operate. Then, SetCurrentSpeed state was setting
up the current speed of the Plant. After that, The Plant start the operation based on the
binding parameter which is currentSpeed. Then, the startOperation state will start the
planting process. Each time the currentSpeed value is more or less than speed, the
system will automatically adjust the currentSpeed value until it same as speed value.
Then, the PlantingProcess state will precede the Plant regulated process until the certain
time is met. Refer Appendix A for the other statechart diagram for each class diagram in
Table 6.8. Furthermore, each statechart will undergo some simulation process in order to
show how the FCS behaviour will be executed. Figure 6.17 shows the result of FCS
simulation for the Plant class diagrams.
Figure 6.17: Plant Statechart Simulation Result
Figure 6.17 demonstrates the Plant statechart simulation. Note that the initial current
speed is 5 and the static speed is 15. Each time current speed is lower than static speed,
the system automatically increase the current speed value by one until the current speed
equal with speed value. After that, Plant will start to regulate in order to produce
measured data. Refer Appendix A for simulation result for each class diagram
statechart.
6.3.3
Detailed Design
After the FCS class diagram was constructed and already refined, the final
process of system design in the integrated ROPES and POAD software process is
detailed design. Detailed design is more concern of detailing the attributes and
operations in the FCS class diagrams such as storage format, data format, range used for
attributes and so on. However, in this project we do not put so much stress in detailed
design because of time constraints. Please refer in Appendix A to view FCS refined
class diagrams with attributes and operations.
6.3.4
Design Result Summary
Design phase in ROPES put stress on how the system was designed. There are
three main design processes in ROPES which are Architectural, Mechanistic and
Detailed design. These processes are responsible to construct system design from the
above view until the details view. Apart from that, system was designed supporting with
structural and behaviour diagrams. Structural diagrams such as class, subsystem,
package, objects and behaviour diagrams likes statechart, sequence diagram and task
diagram. All this diagrams are working together to enrich the system designed up to
higher level.
Naturally, in the integrated ROPES and POAD software process enable the
pattern construction up to class designs. Pattern level diagram process is originally from
POAD and was merged with the Architectural design in ROPES. This will enable the
pattern level diagram construction based on patterns that have been selected in
requirement analysis. Furthermore, in Mechanistic design, FCS class diagram was
constructed with collaborating patterns package. Then, each patterns package will reveal
its pattern internal classes that finally build up the complete FCS class diagram. The
process of connecting each patterns package is originally from POAD and known as
pattern level diagram with interface. In the other words, each patterns package
communicating each other through interface. After that, the behaviour of the FCS will be
showed by using statechart and sequence diagrams. The statechart diagrams also
conducting the simulation of FCS in order to show the how FCS run.
After design phase is completed, it shows that the set of patterns that have been
selected in Requirement analysis is consistently used in design phase. The pattern level
diagram and pattern level diagram with interface was merged with the Architectural and
Mechanistic process.
6.4
Summary and Discussion
To demonstrate the applicability of the integrated ROPES and POAD software
process, the selected case study has been selected to conduct the system analysis and
design. FCS system is the small-scale embedded real time system that enables to
produce feedback response to the system based on Plant data. After the FCS analysis and
design was conducted, it show that the integrated ROPES and POAD software process
capable to use patterns systematically from analysis until design phase. Apart from that,
the complexity of the software development was decreased because the uses of patterns.
The integrated ROPES and POAD software process also shows that the implementation
of FCS in analysis and design phase capable to reduced the complexity of embedded real
time system and systematically using patterns from early phase.
The integrated ROPES and POAD software process main concerns are to enable
the uses of patterns from early phase and systematically derived until design phase. The
analysis and design of FCS demonstrates how the POAD process fit in ROPES process.
The POAD process was embedded into ROPES process only in analysis and design
phase. In addition, in order to successful merges POAD process into ROPES, the system
behaviour must specifically describe. The system behaviour plays main roles on how a
set of patterns was selected and how the selected patterns fit into the FCS design.
However, the process of embedding POAD into ROPES only involves the small
scale of system design without affecting the whole process of ROPES. As mention
before, ROPES methodology provides the systematic software development for
embedded real time system in term of analysis and design. Therefore, the company or
individual who are adopted the ROPES methodology for a long time does not having
any problems to use the integrated ROPES and POAD software process for their works.
This is because the use of patterns is the matter of system design without affecting the
notations or semantics in ROPES. The patterns development still using traditional class
diagram, package and interface that available in ROPES metamodel. Because of this, ILogix Rhapsody tool can be adapted into the integrated ROPES and POAD
methodology.
CHAPTER 7
DISCUSSION AND FUTURE WORK
7.1
Introduction
This chapter discussed about Project summary and contribution as well as future
works for further study of this project. The Project summary covers from Chapter 4 to 6
and the knowledge contribution is critically defined. Then, the potential future works for
the further study will be discussed as well.
7.2
Summary
Designing and building ERTS software is difficult in order to fulfil the quality
and performance of the system. Indeed, a wide range of the software development
methodologies have been devised to minimize the complexity of the ERT software
development. Each successive development claims can decrease the complexity of
software development into another level. In this project, the integrated ROPES and
POAD methodology has been built to prove that the uses of software patterns will
enable the systematic and efficient software development especially as solutions for ever
more demanding ERT softwares are required.
In seeking to demonstrate the efficiency of the integrated ROPES and POAD
methodology, the integrated metamodel and software process were developed as
described in Chapter 4 and Chapter 5. In addition, to prove the applicability of the
defined metamodel and software process, the selected case study has been chosen to be
applied by using I-Logix Rhapsody tool. The integrated ROPES and POAD metamodel
has proven to provide the ERT system modelling guidance with the correct notations and
semantics. Furthermore, the integrated ROPES and POAD software process will act as a
standard form to the software analyst and designer to built ERT software by applying
pattern oriented development. After those two processes have been applied, the proven
solution is demonstrated by applying analysis and design strategy into the FCS system
by using I-Logix Rhapsody tool in order to prove the applicability of the defined
software process.
7.3
Project Contribution
Having highlighted the potential benefits of software patterns in software
development, this section pinpoints some of the advantages of building embedded real
time system using software patterns. The following sets of contributions are directly
attributable to the characteristics of pattern oriented development. Naturally, since the
reliable of the integrated ROPES and POAD metamodel as well as software process
have been built, designers have found means of develop the ERT system by following
pattern oriented approaches. This Project main purpose is to enable the pattern oriented
development in ROPES by integrating it with POAD methodology. In particular, the
ongoing process of enabling pattern oriented development in the integrated ROPES and
POAD methodology have shown the formalism of metamodel and software process
developed for specifying, designing and verifying software development using patterns.
By recognising these critical points, there are certain project knowledge contributions
which seem common to pattern oriented development. The project contributions as
follows:
i.
The development of the integrated ROPES and POAD metamodel.
ii.
The development of the integrated ROPES and POAD software process.
iii.
The proven solution of the applicability of the integrated ROPES and
POAD metamodel and software process into the selected case study by
using I-Logix Rhapsody 6.0 tool.
Note that those contributions have highlighted in Chapter 1 which is the Project
objectives and scope. The integrated ROPES and POAD methodology is now having the
new metamodel and software process that enable the uses of patterns. In addition, these
contributions have emphatically indicate that pattern oriented development is not any
more complex than more traditional software development approaches. The ERT system
can be built more systematically and the complexity of the ERT software development
can be decreased by applying patterns. Hence, correct metamodel and systematic
software process can promote systematic and high degree of software patterns reuse. As
conclusion, the integrated ROPES and POAD methodology was offered the new way of
analysing and designing the ERT software. The patterns enable the high degree of
design reuse and consequently, the complexity of ERT software development can be
decreased.
7.4
Future Work
The integrated ROPES and POAD methodology for software patterns are at an
early stage of software development, and yet systematically derived until the design
stage. The widespread acceptance of the concept of software patterns implies that
software patterns have a significant future in the software development paradigm.
Probably, the most important issues for the pattern uses in the integrated ROPES and
POAD methodology are:
i.
An understanding of the situations in which software patterns will be
applied.
ii.
Principle of the development process for pattern oriented development.
iii.
Which software patterns are suitable for the certain domains and in this
case, ERT domain.
Naturally, the integrated ROPES and POAD software process main principles are
to enable the uses of patterns systematically in ROPES. However, there some issues
arise that made the system design little bit harder. The issues are how to ensure that the
patterns that have been selected in analysis phase is appropriate when in design phase.
Then, there must be a standard framework of pattern adaptation after a set of patterns
that have been selected in analysis phase. Other than that, because of the complexity of
embedded real time requirements, the patterns may have been reviewed again in design
phase in order to meet the system functional and non functional requirements especially
for safety critical ERT system. Furthermore, the standard tools to support pattern
oriented development especially for ERT software can be developed. All of these issues
maybe can be solved in the future by observing in depth how the integration of ROPES
and POAD will be conducted. To conclude, the future works of this project as follows:
i.
Patterns selection process.
ii.
Pattern adaptation framework in software design.
iii.
Patterns testing based on generated test cases in software design.
iv.
Metamodel validation and verification using formal method and graph
theory.
REFERENCES
Angelov, C., Sierszecki, K., & Marian, N. (2008). Component-Based Design of
Embedded Software: An Analysis of Design Issues. In Lecture Notes in Computer
Science (pp. 1-11). Berlin: Springer Berlin / Heidelberg.
Baelen, S. V., Gorinsik, J., & Wills, A. (2001). The DESS Methodology. Deliverable
D.1 Version 01 - Public .
Buschman, F., Meunier, R., Rohnert, H., & Sommerlab, P. (1996). Pattern Oriented
Software Architecture:A System of Patterns. John Wiley and Sons.
Bunse, C., Gross, H. G., & Peper, C. (2008). Embedded System Construction –
Evaluation of Model-Driven and Component-Based Development Approaches.
MODELS`08 Workshop ESMDE .
Clements, P. (1996). A Survey of Architecture Description Languages. In Proceedings
of the Eighth International Workshop on Software Specification and Design (pp. 1625). Paderborn, Germany: ACM.
Coad, P. (1997). Object Models:Strategies, Patterns and Applications. Yourdon Press.
Crankovic, I. (2003). Component based Software Engineering- New Challenges in
Software Development. 25th International Conference on Information Technology
Interfaces, (pp. 9-18).
Crnkovic, I. (2005). Component-based Software Engineering for Embedded Systems.
ICSE’05 ACM .
Crnkovic, I., Stig, L., & Michel, C. (2005). Component Based Development Process and
Component Lifecycle. Journal of Computing and Information technology , 321-327.
Demicheil, L., Yalcinalp, L., & Krishnan, S. (2001). Enterprise JavaBeans Specification
Version 2.0.
Domiczi, E., Farfarakis, R., & Jürgen, Z. (2000). Octopus/UML Artifact Reference
Version 1.3.
Domiczi, E., Rallis, F., & Jürgen, Z. (2000). Release of Octopus/UML. Nokia Research
Center .
Dong, J., Alencar, P. S., & Cowan, D. D. (2004). A behavioral analysis and verification
approach to pattern-based design composition. Software and Systems Modeling ,
262-272.
Douglass, B. P. (1999). Doing Hard Time : Developing Real-Time System Using UML
Objects, Framework and Patterns. Addison-Wesley.
Felix, L., & Narashima, B. (2003). Object-Oriented Analysis using Patterns: A Review
and Research Opportunities.
Fernandez, E. B., & Yuan, X. (2000). Semantic Analysis Patterns.
Fernando, L. C. (2005). A New Component Based Life Cycle Model. Journal of
Computer science , 76-82.
Finkelstein, A. (2000). The Future of Software Engineering. Proceedings of 22nd
International Conference on Software Engineering , ACM Press.
Fowler, M. (1997). Analysis Patterns, Reusable Object Models. Addison Wesley.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design Patterns, Elements of
Reusable Object Oriented Software. Addison-Wesley.
Garlan, D., & Shaw, M. (1996). Software Architecture: Perspectives on an Emerging
Discipline. Prentice Hall.
Gomaa, H. (2001). Designing Concurrent, Distributed and Real Time Applications with
UML. Addison-Wesley.
Harb, D., Bouhours, C., & Leblanc, H. (2009). Using an Ontology to Suggest Software
Design Patterns Integration. In MODELS 2008 Workshops, LNCS 5421 (pp. 318331). Berlin: Springer-Verlag Berlin Heidelberg.
Heinenam, G., & Councill, W. (2001). Component Based Software Engineering.
Addison-Wesley.
Jawawi, D. (2006). A Framework for Component-Based Reuse for Autonomous Mobile
Robot Software. PhD Thesis: Universiti Teknologi Malaysia.
Jawawi, D. (2003). Embedded Real Time System:Technical Report. Universiti Teknologi
Malaysia.
Jawawi, D., Mohamad, R., Deris, S., & Mamat, R. (2005). Transforming PatternOriented Models into Component-Based Models for Embedded Real Time Software
Development. MySEC'05 .
Jerry, O. (2007). Pattern Oriented Analysis and Design Theory.
Konrad, S., & Cheng, B. H. (2005). Real-time Specification Patterns. Proceedings of the
27th International Conference of Software Engineering (ICSE05) .
Kotonya, G., & Hutchinson, J. (2005). Pattern and Component Oriented System
Development. Proceeding of the 2005 31st EUROMICRO Conference on Software
Engineering and Advanced Applications .
Lau, K. K., & Wang, Z. (2005). A Taxonomy of Software Component Models.
Proceeding of the 2005 31st EUROMICRO Conference on Software Engineering
and Advanced Applications .
Luigi, L., & Bianco, V. d. (2000). Software Development Process for Real-Time
Embedded Software Systems (DESS). Deliverable D5.2/D5.3/D5.4 DESS process
modeling:methodology and support .
Meyer, B. (2003). The grand Challenge of Trusted Components. Proceedings ICSE 2003
IEEE , 660-667.
Natale, M. D. (2008). Design and Development of Component-Based Embedded
Systems for Automotive Applications. In Lecture Notes in Computer Science,
Reliable Software Technologies – Ada-Europe 2008 (pp. 15-29). Berlin: Springer
Berlin / Heidelberg.
Nicola, J., Mayfield, M., & Abney, M. (2001). Streamlined Object Modelling: Patterns,
Rules and Implementation. Upper Saddle River, N.J: Prentice Hall.
Nierstrasz, O., Grenssler, T., & Schonhage, B. (2002). Components for Embedded
Software. The PECOS Approach CASES .
OMG. (2007). UML Superstructure Specification. http://www.omg.org.
Rajasree, M. S., Jithendra, P., Reddy, K., & Janakiram, D. (2001). Pattern Oriented
Software Development: Moving Seamlessly from Requirements to Architecture.
Riehle, D., & Zullighoven, H. (1996). Understanding and Using Patterns in Software
Development. Theory and Practice of Object System , Vol, 2(1) 13-33.
Sesera, L. (2000). Analysis Pattern. SOFSEM'2000 Lecture Notes in Computer Science
Series
Sesera, L. (2001). Hierarchical Patterns:A Way to Organize Analysis Patterns.
SYSTEMATICS, CYBERNATICS AND INFORMATICS , Volume 3.
Sommerville, L. (2004). Software Engineering 7th Edition. Addison-Wesley.
Staines, A. S. (2007). A Comparison of Software Analysis and Design Methods for Real
Time Systems. Proceedings of World Academy of Science, Engineering and
Technology, (p. Volume 21).
Szyperski, C. (2002). Component Software: Beyong Object Oriented Programming.
Addison-Wesley.
Tichy, M. (2006). Pattern-Based Synthesis of Fault-Tolerance Embedded Systems.
SIGSOFT’06/FSE14 ACM .
Wan Zulkifeli, W. R. (2008). Kajian Penggunaan Corak Rekabentuk Masa Nyata
Dalam Pembangunan Sistem Masa Nyata Berasaskan Metodologi Pattern Oriented
Analysis and Design (POAD) dan Rapid Object Process for Embedded System
(ROPES). Malaysia.
Yacoub, S. M., Xue, H., & Ammar, H. H. (2000). Automating the Development of
Pattern Oriented Designs for Application Specific Software Systems. Proceeding
IEEE .
Yacoub, S., & Ammar, H. H. (2004). Pattern Oriented Analysis and Design:Composing
Patterns to Design Software System. Addison Wesley.
Yau, S., & Dong, N. (2000). Integration in Component based Software Development
Using Design Pattern. Proceeding IEEE .
Zhang, J. Z., & Yunsheng. (2007). Component-oriented Modeling and Design of
Hierarchical Hybrid Control System. IEEE International Conference on Control
and Automation Guangzhou, CHINA .
Appendix A
Analysis and Design of Feedback Control System
UC-01: Monitor
Scope
: Plant and FCS
Level
: System Goal
Primary Actor
: Sensor
Include Use Case
: -
Preconditions
: System was produced measured data
Postconditions
: System was ready to collect measured data
Basic Flow
:
1. Sensor request for Plant status.
2. Plant replies the current state.
3. Sensor start request for measured data from Plant
4. Plant accepts the request and sends the measured data.
5. Sensor destroys the connection with the Plant.
6. Sensor in idle state
Special Requirements

:
Sensor
Frequency of
: Continuos
Occurrence
Figure 1: UC-01
UC-02: Control
Scope
: Plant and FCS
Level
: System Goal
Primary Actor
: Actuator
Include Use Case
: -
Preconditions
: Plant was operate properly
Postconditions
: System was controlled by Actuator
Basic Flow
:
1. Actuator request System status from the System.
2. System sends the status state.
3. Actuator request for Plant status from System
4. System sends the Plant current status.
5. Actuator starts control the Plant while time>0.
6. System sends Plant status regularly to Actuator.
7. Actuator destroy the connection with the Plant.
Special Requirements
:

Central Processing Unit (CPU)

Monitor
Frequency of
: Continuos
Occurrence
Figure 2: UC-02
UC-00: Collect Data
Scope
: FCS
Level
: System Goal
Primary Actor
: User
Include Use Case
: Monitor and Calculate Error
Preconditions
: System was produced measured data, feedback data
and error data
Postconditions
: System was ready to be stored and collected
Basic Flow
:
1. System ready for receive and send a data.
2. System start process saving data in database
3. System start to response for data request
4. System start to send a requested data
Special Requirements
:

Central Processing Unit (CPU)

Monitor

Disks
Frequency of
: Continuos
Occurrence
Figure 3: UC-03
UC-00: Error Calculation
Scope
: FCS
Level
: System Goal
Primary Actor
: User
Include Use Case
: Collect Data, Monitor, Control
Preconditions
: System was ready to run
Postconditions
: System produce error feedback data for Plant
Basic Flow
:
1. System is waiting for incoming data from Plant.
2. Plant produce measured data.
3. System collects a measured data from Plant.
4. System starts to produce feedback data.
5. System starts to calculate error data.
6. System sends error data to the subsystem.
7. System feed error data to the Plant
Repeat step 1-7 until system halted by user
Special Requirements
:

Central Processing Unit (CPU)

Monitor

Logic Machine
Frequency of
: Once
Occurrence
Figure 4: UC-04
Monitor Use Case S cenario
:Sensor
System:FCS
getSystemS tatus()
systemS tatus()
getPlantData()
plantData()
destroyConnection()
sensorIdle()
Figure 5: Monitor Use Case Sequence Diagram
Control Use Case Scenario
:Acuator
System:FCS
getSystemS tatus()
systemS tatus()
getPlantS tatus()
plantStatus()
controlPlant()
tm(time>0)
plantStatus()
destroyConnectionPlant()
Figure 6: Control Use Case Sequence Diagram
idle
DataReady
Apply strategy
Feed data to plant
Figure 7: FBStrategy Object Statechart
dataReady
tm()
Waiting for request
Sending data
Figure 8: MeasuredSubject Object Statechart
idle
set current status
Ready for receive measured data
tm(transferTime=true)
time>0
Receive measured data
Figure 9: FB Subject Object Statechart
idle
setStatus
Ready to receive feedback data
tm(operationTime=true)
update
Update current error data
Figure 10: ErrorObserver Object Statechart
Active
Waiting
Storing
evDetect
DetectingSubject
tm(operationTime)
Figure 11: Record Object Statechart
Active
RequestingControl
Destroying
evControl
Controlling
evDestroyConnection
Figure 12: Plant Controller Object Statechart
Active
Waiting
NotViewed
evnotSeen
evSeen
Viewed
tm(refreshTime)
Figure 13: Screen Object Statechart
«<<Pattern>>»
FB_Obsever
Observer
1
«Interface»
Subject
MeasuredSubject
FeedbackObserver
Figure 14: FB_Observer Pattern Package
«<<Pattern>>»
FB_Strategy
«Interface»
FB
1
FBController
1
FBStrategyA
FBStrategyB
Figure 15: FB_Strategy Pattern Package
«<<Pattern>>»
FF_Strategy
«Interface»
1
1
FF_Strategy
Controller
ConcreteStrategyA
ConcreteStrategyB
Figure 16: FF_Strategy Pattern Package
«<<Pattern>>»
ER_Observer
1
AbsractObserver
«Interface»
ErrorSubject
FeedbackSubject
Error_Observer
Figure 17: ER_Observer Pattern Package
«<<Pattern>>»
DT_Blackboard
«Interface»
1
1
DataType
Data_Controller
Err_Data
FB_Data
Measured_Data
Figure 18: DT_Blackboard Pattern Package
ENV
:Plant
:Measurement
Subject
:Abstract
Subject
:Abstract
Observer
:FBSubject
Observer
:Record
Manager
getPlantMeasurement()
setPlant(aPlant)
measurePlant()
attach(anObserver)
notifyObserver()
update(changedSubject)
setDataController(theDataController)
setFBController(aController)
setSensor()
setData(newData)
detach(anObserver)
getState()
destroySensor()
<idle>
Figure 19: Feedback Sequence Diagram
:DataController
ENV
:Controller
:AbstractController
:Plant
:DataController
setInputData(newInputData)
control(feedbackData)
apply(errorData)
setStrategy(aStrategy)
FBApply(inputData, outputData)
getPlantMeasurement()
setPlant(aPlant)
run()
control(speedUp)
setData(newData)
Figure 20: Feedforward Sequence Diagram
:User
:DataController
:DataHolder
:RecordManager
viewData()
getValue()
setDate()
setDisplay()
setDisplay()
Figure 21: Viewing Sequence Diagram
:VisualElement
wait
tm(1000)
tm(2000)
Notifying
ProducingFBData
notifyObserver();...
[measuredData]
Figure 22: AbstractSubject Class Statechart
wait
tm(1000)
retrievingFBData
setting input data
tm(1000)[FBData]
[inputData]
producing error data
tm(100)
Figure 23: ErrorObserver Class Statechart
wait
tm(2000)[ErrorData]
RetrieveErrorData
[ErrorData]/operationTime=10;
Apply feedforward strategy
tm(1000)
Planting
Figure 24: Controller Class Statechart
Figure 25: AbstractSubject Statechart Simulation Result
Figure 26: ErrorObserver Statechart Simulation Result
Figure 27: Controller Statechart Simulation Result
Pattern::Strategy ::AbstractController
Pattern::Strategy ::Controller
control(f eedbackData:DataHolder):v oid
Controller()
setInputData(newInputData:DataHolder):v oid
setStrategy (aStrategy :AbstractController):v oid
1
apply (errorData:DataHolder):v oid
FBApply (inputData:DataHolder,outputData...
Abstrac tController()
setPlant(aPlant:Plant):v oid
1
1
Plant
speed:double=60
speedUp:OMBoolean
1
1
Pattern::Strategy ::ConcreteStrategy A
control(speedUp:OMBoolean):v oid
getPlantMeasurement():v oid
run():v oid
ev Start():v oid
Pattern::Strategy ::FBStrategy A
apply (errorData:DataHolder):v oid
FBApply (inputData:DataHolder,outp...
ConcreteStrategy A()
apply (errorData:DataHolder...
FBApply (inputData:DataHol...
FBStrategy A()
1
Pattern::Observ er::Abs tractObserv er
Pattern::Observ er::Abs tractSubjec t
update(changedSubject:Abstract...
MeasurementSubject
attach(anObserv er:AbstractObs erv ...
detach(anObserv er:AbstractObserv ...
notif y Observ er():v oid
Abstrac tSubject()
getState():v oid
ev Start():v oid
1
measurePlant():v oid
setPlant(aPlant:Plant):v oid
MeasurementSubject()
getState():v oid
1
Pattern::Observ er::ErrorObs erv er
RecordManager
Pattern::Observ er::FBSubjectObserv er
update(changedSubject:Abs tract...
setDataController(aDataControlle...
setController(aController:Controll...
ErrorObserv er()
setDataController(theDataContr...
update(changedSubject:Abstrac...
FBSubjectObs erv er()
setFBController(aController:Abs...
getState():v oid
1
1
setSens or():v oid
destroy Sensor():v oid
1
Vis ualElement
Pattern::Blacboard::DataController
1
setData(newData:DataHolder):...
DataController()
v iewData():v oid
Message_4():v oid
1
1
setDis play ():v oid
setDate():v oid
1
Pattern::Blacboard::DataHolder
1
currentValue:double
getValue():v oid
DataHolder()
Pattern::Blacboard::ErrorData
Pattern::Blacboard::FBData
Pattern::Blacboard::MeasuredData
Figure 28: Detailed FCS Class Diagram
Download