Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
The Certification Pattern
Version 1.1
Date: 2016-06-20
The Certification Pattern
:: 1 :: Scarecrow Consultants Ltd ©2016
Contents
1 Introduction .................................................................................................................................... 2
1.1 Pattern Aims............................................................................................................................ 2
2 Concepts.......................................................................................................................................... 4
3 Viewpoints ...................................................................................................................................... 5
3.1 Overview ................................................................................................................................. 5
3.2 Rules ........................................................................................................................................ 6
3.3 Certification Viewpoint (CVp) ................................................................................................ 8
3.3.1 Description ...................................................................................................................... 8
3.3.2 Examples ......................................................................................................................... 9
4 Summary ....................................................................................................................................... 13
5 Related Patterns............................................................................................................................ 14
6 References & Further Reading ...................................................................................................... 14
The Certification Pattern
:: 2 :: Scarecrow Consultants Ltd ©2016
1 Introduction The ability to present claims about a subject, backed up by arguments that are supported by evidence, together with the ability to counter such claims in a similar manner, is a common need in systems engineering. For this reason the Evidence Pattern was created (see [Holt et al 2016].
However, sometimes such claim-argument-evidence chains need to be presented in a summary form that states that the claim made about the subject are in some way certified as being valid. This leads to the concept of a certificate that is issued by a certification body.
Figure 1 - The Certification Pattern as a specialisation of the Evidence Pattern
The additional concepts of certificate and certification body lead to the 'Certification Pattern'. This is a specialisation of the 'Evidence Pattern' and its description below should be read in conjunction with that of the 'Evidence Pattern'.
1.1 Pattern Aims This pattern is intended to be used as an aid to the definition of certified chains of evidence and arguments used to support claims made about a subject. The main aims of this pattern are shown in the Architectural Framework Context View (AFCV) in Figure 2.
Figure 2 - Architectural Framework Context View showing Certification Pattern aims
«pattern»
Ev idence Pattern
«pattern»
Certification Pattern
AFCV [Package] Pattern Aims [Architectural Framework Context View showing Certification Pattern aims]
«concern»
Support definition of
ev idence-based claims
«concern»
Support definition of certified claims
about a subject
«concern»
Allow accreditation of
certifier to be established
«concern»
Capture timeliness &
v alidity of certified
claim
«concern»
Show accreditation
standards adopted
Certification Pattern Context
«stakeholder role»
Claimant
«stakeholder role»
Accreditation Body
«stakeholder role»
Accreditation Standard
«stakeholder role»
Certification Body
See Evidence Pattern
AFCV
«include»
«include»
«include»
«constrain»
The Certification Pattern
:: 3 :: Scarecrow Consultants Ltd ©2016
The main purpose of the Certification Pattern is to 'Support definition of certified claims about a subject' made by a 'Certification Body'. This includes the Use Cases:
'Support definition of evidence-based claims' - allow evidence-based claims about a subject to be made. This is the main Use Case of the Evidence Pattern and is broken down further on the Evidence Pattern's AFCV which should be referred to in order to fully understand the aims of the Certification Pattern.
'Capture timeliness & validity of certified claim' - allow any aspects of timeliness (such as start date & end date) and on-going validity of a certified claim to be captured. Some certified claims have a validity defined by an end date but may become invalid prior to that end date depending on their nature and how they are used.
'Allow accreditation of certifier to be established' - allow the accreditation of a certification body to be established if such a body has been formally accredited.
The Use Case 'Allow accreditation of certifier to be established' is constrained by the need that the Certification Pattern 'Show accreditation standards adopted'. That is, it must allow the accreditation standards used by an accreditation body in the accreditation of a certification body to be captured.
The Certification Pattern
:: 4 :: Scarecrow Consultants Ltd ©2016
2 Concepts The main concepts covered by the Certification Pattern are shown in the Ontology Definition View (ODV) in Figure 3.
Note that only the additional Ontology Elements that the Certification Pattern adds to the Evidence Pattern are described here. The reader is referred to the Evidence Pattern for a description of the core Ontology Elements.
Figure 3 - Ontology Definition View showing Certification Pattern concepts
The Certification Pattern adds a number of new concepts to the Evidence Pattern.
Firstly, some Evidence has time-bounded validity, being valid only for a specified time period. This can be handled by adding the optional concepts of ‘Start date’ and ‘End date’ as optional properties to Evidence. ‘Start date’ and ‘End date’ can be made as fine-grained as required through the definition of ‘DateType’. This could, for example, include time if needed. Some Evidence might have a ‘Start date’ and no defined ‘End date’ because the Evidence never expires. Even so, knowing the ‘Start date’ can be useful in assessing the weight to give to a piece of Evidence. Evidence that is decades old may be given less credence than that which is weeks or months old.
Secondly, a number of new Ontology Elements have been added: 'Certificate', 'Certification Body', 'Accreditation Body', 'Accreditation' and Accreditation Standard'.
ODV [Package] Concepts [Ontology Definition View showing Certification Pattern concepts]
«ontology element»
Claim-Argument Link
«ontology element»
Argument
«ontology element»
Argument-Ev idence Link
«ontology element»
Claim
«ontology element»
Claimable Item
{abstract}
«ontology element»
Claimant
«ontology element»
Counter-Claim
«ontology element»
Ev idence
values
Start date : DateType
End date : DateType
«ontology element»
Subject
«ontology element»
Refuter
«ontology element»
Certificate
values
ID : String
Issue date : DateType
{As a minimum a Certificate MUST state one (and
only one) Claim. In addition, intermediate elements
of a Claim-Argument-Evidence chain can not be
omitted.}
{ID & Issue date are
optional}
«ontology element»
Certification Body
«ontology element»
Accreditation Body
«ontology element»
Accreditation
values
End date : DateType
ID : String
Start date : DateType
{A Certificate can only be
issued by a Certification Body
that is making the Claim stated
on the Certificate.}
{Start date and End date
are both oprional}
«ontology element»
Accreditation Standard
0..*
counters
0..*
0..*
states
1..*
0..*
is performed against
1..*
1..*
is made about
1
0..1
accredits
1..*
0..*
states
1
1..*supports1..*
1
makes
1..*
0..*
supports
0..*
1..*reinforces1..*
0..*
identifies
1 1
issues
0..*
The Certification Pattern
:: 5 :: Scarecrow Consultants Ltd ©2016
A 'Certificate' is a type of Evidence. It states a Subject, one or more Claimable Items and identifies a Claimant. As a minimum a 'Certificate' must state one (and only one) Claim as the Claimable Items stated. Other Claimable Items can also be stated but intermediate elements can not be omitted. Thus a 'Certificate' can state a Claim, a Claim linked to one or more Arguments or Claim linked to one or more Arguments linked to Evidence. A 'Certificate' can not, for example, state a Claim and Evidence with no intermediate Argument. In addition a 'Certificate' has two properties, each of which is optional. These are an 'ID' to contain an identifier and an 'Issue date' to state the date on which the 'Certificate' was issued.
A 'Certification Body' issues zero or more 'Certificate'. A 'Certificate' can only be issued by the 'Certification Body' that is the Claimant stated on the 'Certificate'.
A 'Certification Body' may be formally accredited by a third party. Such a third party is known as an 'Accreditation Body' and its formal accreditation of a 'Certification Body' is captured in an 'Accreditation'. Such an 'Accreditation' is performed against one or more 'Accreditation Standard'. An 'Accreditation' may have properties of 'Start date' and 'End date' that define the valid time period for the 'Accreditation', along with an 'ID' to contain an identifier for the 'Accreditation'.
Note that the concept of a 'Certificate' covers more than those artefacts encountered that are typically labelled or called "certificates" (such as membership certificates, insurance certificates, test certificates etc.). It covers any conceptual item that represents a certified summary of a Claim made about a Subject by a Certification Body. Thus artefacts such as driving licences, travel tickets, visitor passes etc. can also be modelled using the concept of a 'Certificate' as presented here. Also, a 'Certificate' is modelled as a single element in a model but may be physically realised by multiple real-world artefacts. Thus a 'Certificate' that models a train ticket may be physically realised by two or more physical tickets.
Note also that when the Certification Pattern is used as part of a wider Framework, then 'Subject' may be filled by one or more Ontology Elements from the wider Framework. Thus, for example, a System may be the 'Subject' stated on a 'Certificate' (a one-to-one mapping) but equally a Person and a Competency (or even set of Competencies) could form the 'Subject' (a many-to-one mapping).
3 Viewpoints This section describes the Viewpoints that make up the Certification Pattern. It begins with an overview of the Viewpoints, defines Rules that apply to the pattern and then defines each Viewpoint.
Note that only the additional Viewpoints that the Certification Pattern adds to the Evidence Pattern are described here. The reader is referred to the Evidence Pattern for a description of the core Viewpoints.
3.1 Overview The Certification Pattern defines a number of Viewpoints as shown in the Viewpoint Relationship View (VRV) in Figure 4.
The Certification Pattern
:: 6 :: Scarecrow Consultants Ltd ©2016
Figure 4 - Viewpoint Relationship View showing Certification Pattern Viewpoints
The Certification Pattern defines five Viewpoints for the definition of certified Evidence-Argument-Claim chains. The following four are core Viewpoints from the Evidence Pattern:
The 'Claim Definition Viewpoint' is used to define Claims for a particular Subject and to show who made the Claims.
The 'Argument Viewpoint' is used to show the Arguments that support a Claim.
The 'Evidence Viewpoint' is used to show the Evidence that reinforces Arguments.
The 'Counter-Claim Viewpoint' is used to make Counter-Claims (or supporting Claims) about Claimable Items.
The Certification Pattern adds a fifth Viewpoint:
The 'Certification Viewpoint' is used to show a Certificate that formally acknowledges aspects of a Claim-Argument-Evidence chain. It can also be used to show who accredits Certification Bodies or the Certificates issued by such Certification Bodies.
The Certification Viewpoint is described in more detail in the following sections. A number of examples are also given.
3.2 Rules Nine Rules apply to the five Certification Viewpoints, as shown in the Rules Definition View (RDV) in Figure 5.
VRV [Package] Ov erv iew [Viewpoint Relationship View showing Certification Pattern Viewpoints]
«viewpoint»
Ev idence Viewpoint
«viewpoint»
Argument Viewpoint
«viewpoint»
Claim Definition
Viewpoint
«viewpoint»
Counter-Claim Viewpoint
«viewpoint»
Certification Viewpoint
A Certification Viewpoint potentially has links to all the other
Viewpoints. It states the Subject, Claim and Claimant that appear on a
Claim Definition Viewpoint. It may include the Arguments from
Argument Viewpoints. If it includes Arguments, then it may also include
Evidence from Evidence Viewpoints. Counter-Claims and Refuters from
Counter-Claim Viewpoints can also be included.
These relationships have been omitted for clarity.
0..*
counters items on
0..*
1..*
shows the arguments that support claims on
1
1..*
shows the evidence that
reinforces arguments on
1..*
0..*
counters items on
0..*
0..*
counters items on
0..*
The Certification Pattern
:: 7 :: Scarecrow Consultants Ltd ©2016
Figure 5 - Rules Definition View showing Certification Pattern Rules
Note that the nine Rules shown in Figure 5 are the minimum that are needed. Others could be added if required. Note also that Rules CP01 to CP04, CP06 & CP07 are the same as the corresponding Rules in the Evidence Pattern. Rule CP05 is a revised version of Rule EP05 found in the Evidence Pattern. Rules CP08 & CP09 are new to the Certification Pattern.
RDV [Package] Rules [Rules Definition View showing Certification Pattern Rules]
«rule»
Rule CP04
notes
Every Claim must be made about an
identified Subject.
«rule»
Rule CP01
notes
Every Claim must be supported by at
least one Argument.
«rule»
Rule CP02
notes
Every Argument must be reinforced
by at least one Evidence.
«rule»
Rule CP03
notes
Every Claim must be made by a
defined Claimant.
«rule»
Rule CP05
notes
As a minimum one Certification
View must be produced.
«rule»
Rule CP06
notes
A Counter-Claim View must have
EITHER one Claim OR one Counter-
Claim and at least one Claimable
Item (Claim, Counter-Claim,
Argument, Claim-Argument Link,
Evidence or Argument-Evidence
Link) that the Claim or Counter-
Claim supports or counters.«rule»
Rule CP07
notes
The Claimable Items that appear on a
Counter-Claim View must appear on
another relevant View. E.g. an
Argument that appears on a Counter-
Claim View must also appear on an
Argument View etc.
«rule»
Rule CP08
notes
As a minimum a Certificate MUST
state one (and only one) Claim. If
showing other Claimable Items, then
intermediate elements of a Claim-
Argument-Evidence chain can not be
omitted.
«rule»
Rule CP09
notes
A Certification Viewpoint can be
used in one of three ways as
described by sub-Rules CP09a,
CP09b and CP09c.
«rule»
Rule CP09a
notes
A Certification Viewpoint can be used to show a
single Accreditation Body and the Certification
Bodies that it accredits along with the relevant
Accreditation Standards, if required. If used in this
way, nothing else can be shown.
«rule»
Rule CP09b
notes
A Certification Viewpoint can be used to show a
single Certification Body and the Certificates that it
issues. The Accreditation Body that accredits it,
along with the relevant Accreditation Standard, can
be shown if required. If used in this way, nothing else
can be shown.
«rule»
Rule CP09c
notes
A Certification Viewpoint can be used to define a single Certificate, showing the Subject, the Claim made about the
Subject and the Certification Body that issues the Certificate (and that is also the Claimant making the stated Claim). It
can also state other Claimable Items that form the parts of the Claim-Argument-Evidence chain such as Arguments or
Arguments and Evidence and the relationships between them and the stated Claim (but see Rule CP08). The various
properties of a Certificate and those it inherits from Evidence can also be shown, as can the Accreditation Body that
accredits the Certification Body along with information on the Accreditation Standard used.
1
11
The Certification Pattern
:: 8 :: Scarecrow Consultants Ltd ©2016
3.3 Certification Viewpoint (CVp) The aims of the Certification Viewpoint are shown in the Viewpoint Context View in Figure 6.
Figure 6 - Viewpoint Context View showing Certification Viewpoint aims
The main aim of the Claim Definition Viewpoint is to 'Support definition of evidence-based claims' through the aims of 'Allow claims to be made' and 'Ensure linking relationships are established'. That is, its aim is to capture the Claims made by a Claimant about a Subject together with the relationships from Claimant to Claim to Subject.
3.3.1 Description
The Viewpoint Definition View (VDV) in Figure 7 shows the Ontology Elements that appear on a Certification Viewpoint.
Figure 7 - Viewpoint Definition View showing the Ontology Elements that appear on the Certification Viewpoint (CVp)
The Certification Viewpoint can be used in three ways, as described by Rule CP09:
AFCV [Package] Certification Viewpoint (CVp) [Viewpoint Context View showing Certification Viewpoint aims]
«concern»
Support definition of certified claims
about a subject
«concern»
Allow accreditation of
certifier to be established
«concern»
Capture timeliness &
v alidity of certified
claim
«concern»
Show accreditation
standards adopted
Certification Viewpoint Context
«stakeholder role»
Accreditation Body
«stakeholder role»
Accreditation Standard
«stakeholder role»
Certification Body
«constrain»
«include»
«include»
VDV [Package] Description [Viewpoint Definition View showing the Ontology Elements that appear on the Certification Viewpoint (CVp)]
«viewpoint»
Certification Viewpoint
«ontology element»
Certificate
values
ID : String
Issue date : DateType
Valid : Boolean
«ontology element»
Claimant
«ontology element»
Ev idence
values
Start date : DateType
End date : DateType
«ontology element»
Subject
«ontology element»
Claimable Item
{abstract}
«ontology element»
Certification Body
{As a minimum a Certificate MUST
state one (and only one) Claim. In
addition, intermediate elements of a
Claim-Argument-Evidence chain can
not be omitted.}
«ontology element»
Claim
«ontology element»
Accreditation Body
«ontology element»
Accreditation Standard
{The use of this Viewpoint is
governed by Rule CP09. This
dictates the multiplicities that
are valid on a View realising
this Viewpoint. See the
description of the Viewpoint
for details.}
0..1
0..*states
1..*
1
issues
1..*
0..*
0..*
1
makes
1..*
0..1
0..*
identifies
1
0..1
accredits
1..*
1..* 0..*
`
0..*
states
1
1..*
is made about
1
The Certification Pattern
:: 9 :: Scarecrow Consultants Ltd ©2016
1. To show a single Accreditation Body and the Certification Bodies that it accredits along with the relevant Accreditation Standards, if required. If used in this way then the multiplicities to all other Ontology Elements on the Viewpoint are treated as being zero.
2. To show a single Certification Body and the Certificates that it issues. The Accreditation Body that accredits it, along with the relevant Accreditation Standard, can be shown if required. If used in this way then the multiplicities to all other Ontology Elements on the Viewpoint are treated as being zero.
3. To define a Certificate, showing the Subject, the Claim made about the Subject and the Certification Body that issues the Certificate (and that is also the Claimant making the stated Claim). It can also state other Claimable Items that form the parts of a Claim-Argument-Evidence chain such as Arguments or Arguments and Evidence and the relationships between them and the stated Claim. The various properties of a Certificate and those it inherits from Evidence can also be shown, as can the Accreditation Body that accredits the Certification Body along with information on the Accreditation Standard used.
If it is felt that these three distinct usages of a Certification Viewpoint make the definition too complex, then the Viewpoint could be split into three separate Viewpoints, one for each distinct usage.
3.3.2 Examples
Example Views that conforms to the Certification Viewpoint are given in the following sub-sections. Examples are given that show:
Certification Bodies accredited by an Accreditation Body
Certificates issued by a Certification Body
Other examples cover Certificates that apply to the following examples:
Membership of a professional body
Train travel
Engineering compliance
In all the examples that follow, the Certification Views are realised as SysML block definition diagrams. Certificates and Accreditation Standards are realised as stereotyped blocks and Certification Body and Accreditation Body as stereotyped actors. Stereotyped dependencies have been used to realise the relationships between Certificates, Subjects, Claimable Items, Certification Bodies, Accreditation Bodies and Accreditation Standards.
The Certification Pattern
:: 10 :: Scarecrow Consultants Ltd ©2016
3.3.2.1 Certification Bodies accredited by an Accreditation Body
Figure 8 - CV - Example of Certification Bodies accredited by an Accreditation Body
The Certification View in Figure 8 shows an Accreditation Body 'Engineering Council' and some of the Certification Bodies that it accredits.
This View conforms to Rules CP05 and CP09a.
«accreditation body»
Engineering Council
«certification body»
The IET
«certification body»
BCS, The Chartered
Institute for IT
«certification body»
Institute of Cast Metals
Engineers (ICME)
«certification body»
The Welding Institute
(TWI)
«accredits»
«accredits»
«accredits»
«accredits»
The Certification Pattern
:: 11 :: Scarecrow Consultants Ltd ©2016
3.3.2.2 CV - Example of Certificates issued by a Certification Body
Figure 9 - CV - Example of Certificates issued by a Certification Body
The Certification View in Figure 9Figure 9 shows a number of Certificates issued by a Certification Body 'SCL Training Company' to attendees on a specific training course. In this case the Certification Body is a training company and is not accredited.
This View conforms to Rules CP05 and CP09b.
«certification body»
SCL Training Company
«certificate»
Mr AZ - MBRE Course
Certificate
Issue date = 15 February 2016
Start date = 27 January 2016
«certificate»
Mr BY - MBRE Course
Certificate
Issue date = 15 February 2016
Start date = 27 January 2016
«certificate»
Mr CX - MBRE Course
Certificate
Issue date = 15 February 2016
Start date = 27 Januray 2016
«issued by»
«issued by»
«issued by»
The Certification Pattern
:: 12 :: Scarecrow Consultants Ltd ©2016
3.3.2.3 CV - Example of Membership Certificate of a Professional Body
Figure 10 - CV - Example of Membership Certificate of a Professional Body
The Certification View in Figure 10 shows a Certificate 'SAP's IET Membership Certificate' that has been issued by the Certification Body 'The IET'. The Certificate is concerned with the Subject 'SAP's Professional Membership' and states the Claim (made by 'The IET') that 'SAP is a Member of the IET'. It also shows that 'The IET' is accredited by the Accreditation Body 'Engineering Council'.
This View conforms to Rules CP05, CP08 and CP09c (as well as CP03 and CP04).
3.3.2.4 CV - Example of Train Travel
Figure 11 - CV - Example of Train Travel
«certification body»
The IET
«claim»
SAP is a Member of the IET
«subject»
SAP's
Professional
Membership
«certificate,evidence»
SAP's IET Membership
Certificate
Issue date = 12 March 2014
Start date = 11 March 2014
«accreditation body»
Engineering Council
«concerned with»
«states»
«issued by»
«relates to»
«accredits»
«claims»
«certification body,claimant»
Virgin Trains
«certificate»
Train Ticket
End date = 14 July 2016
ID = 57571
Issue date = 14 June 2016
Start date = 14 June 2016
«claim»
Bearer of ticket is permitted
to make a return journey
between Wolv erhampron &
Birmingham
«subject»
Rail Trav el
«claims»
«concerned with»«issued by»
«relates to»
«states»
The Certification Pattern
:: 13 :: Scarecrow Consultants Ltd ©2016
The Certification View in Figure 11 shows a Certificate 'Train Ticket' that that has been issued by the Certification Body 'Virgin Trains'. The Certificate is concerned with the Subject of 'Rail Travel' and states the Claim (made by 'Virgin Trains') that 'Bearer of ticket is permitted to make a return journey between Wolverhampton & Birmingham'. The Certificate shows the 'Issue date', 'Start date', 'End date' and 'ID' tags.
This View conforms to Rules CP05, CP08 and CP09c (as well as CP03 and CP04).
3.3.2.5 CV - Example of Engineering Compliance
Figure 12 - CV - Example of Engineering Compliance
The Certification View in Figure 12 shows a Certificate 'Engineering Compliance Certificate' that that has been issued by the Certification Body 'Network Rail'. The Certificate is concerned with the Subject of 'Engineering Compliance - Signalling Between ABC and PQR'. It states the Claim (made by 'Network Rail') that 'Requirements of the PRS have been met'. The Certificate shows the 'Issue date', 'Start date', 'ID' and 'Valid' tags.
The Certificate also states two Arguments that support the Claim, along with the Evidence that reinforces the Arguments:
The Argument that 'Engineering Deliverables have been submitted and accepted' reinforced by the Evidence of the 'DRN Tracker' stated in the Certificate.
The Argument that 'Engineering Documentation Demonstrates Compliance' reinforced by the Evidence of the 'DPE Signature' and 'PM Signature' stated in the Certificate.
This View conforms to Rules CP05, CP08 and CP09c (as well as CP01, CP02, CP03 and CP04).
4 Summary As well as the four Viewpoints inherited from the Evidence Pattern, the Certification Pattern defines an additional Viewpoint, the Certification Viewpoint. This is used to show a Certificate that formally acknowledges aspects of a Claim-Argument-Evidence chain, namely (and as a minimum) the Claim and its Subject and the Claimant making the Claim, who is also the Certification Body issuing the
«subject»
Engineering
Compliance -
Signalling Between
ABC and PQR
«claim»
Requirements of the
PRS hav e been met
«certification body,claimant»
Network Rail
«argument»
Engineering
Deliv erables hav e
been submitted and
accepted
«evidence»
DRN Tracker
«argument»
Engineering
Documentation
Demonstrates
Compliance
«evidence»
DPE Signature
«evidence»
PM Signature
«certificate»
Engineering Compliance Certificate
ID = 1234567-ABC-DEF-FRM-00001
Issue date = 25 September 2015
Start date = 25 September 2015
Valid = TRUE
«states»«relates to»
«claims»«states»
«states»
«concerned with»
«issued by»
«reinforces»
«states»
«supports»
«supports»
«states»
«reinforces»
«reinforces»
The Certification Pattern
:: 14 :: Scarecrow Consultants Ltd ©2016
Certificate. It can also be used to show who accredits Certification Bodies together with the Accreditation Standard followed or the Certificates issued by Certification Bodies.
5 Related Patterns If using the Certification Pattern, the following patterns may also be of use:
Description
Traceability
Testing
6 References & Further Reading Holt, J., Perry, S & Brownsword, M. Foundations for Model-Based Systems Engineering: From Patterns to Models. London: IET Publishing; 2016
Holt, J & Perry, S. SysML for Systems Engineering; 2nd Edition: A model-based approach. London: IET Publishing; 2013
Object Management Group. SysML website [online]. Available from http://www.omgsysml.org; Accessed February 2015
Holt, J. UML for Systems Engineering - watching the wheels. 2nd edn. London: IEE Publishing; 2004 (reprinted IET Publishing; 2007)
Rumbaugh, J., Jacobson, I. & Booch, G. The Unified Modeling Language Reference Manual. 2nd edition. Boston, MA: Addison-Wesley; 2005