A major challenge regarding project management is traceability, i.e., to ensure the completeness of information about every step within a process chain. This paper outlines an approach based on Topic Map Templates, augmented with query and constraint definitions, to systematically address traceability aspects in the context of software development processes, in particular for requirements engineering and transitions to subsequent development phases. Furthermore, it is shown that Templates, when expressed in a uniform way, are an important means to enhance the functionality of, e.g., editors and viewers for Topic Maps. In order to illustrate the proposed approach, individual development steps regarding the realisation of a simple flight reservation system, particularly highlighting then-supported interactions between participants, serve as an example.
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
On Topic Map Templates and Traceability
1. TM Templates
and
Traceability
O. Drobnik,
M. Ueberall
Introduction
Templates
Traceability On Topic Map Templates and Traceability
Phase
Transitions
Navigation
O. Drobnik, M. Ueberall
Conclusion
Telematics Group, Institute of Computer Science
J. W. Goethe-University, Frankfurt/Main, Germany
2006 / 10 / 11
2. TM Templates
and
Traceability Motivation and Objective
O. Drobnik,
M. Ueberall
Introduction
Templates
Problems in Software Development:
Traceability • participants (e.g., stakeholders, designers,
Phase programmers) with different objectives and domain
Transitions
knowledge (consistent conceptualisations)
Navigation
Conclusion • any loss of information to be considered fatal
(traceability)
• semantics-preserving phase transitions
Own approach based on:
• use of lightweight representations (Topic Maps!)
• development process guidance by means of Templates
4. TM Templates
and
Traceability Use Case Specification
O. Drobnik,
M. Ueberall
Introduction
Templates Concepts from the UML 2.0 Superstructure are, e.g.:
Traceability
• use case: specification of a set of actions performed by
Phase
Transitions a system, yielding an observable result of value for one
Navigation or more actors
Conclusion
• actor: role played by a user or any other system that
interacts with the subject
• extend: relationship specifying that the behaviour of a
use case may be extended by that of another
• include: relationship defining that a use case contains
the behaviour in another one
5. TM Templates
and
Traceability Use Case Example
O. Drobnik,
M. Ueberall
Introduction
Templates
Traceability
Annotation
Phase
Transitions
Navigation Flight
Conclusion
FlightBooking
exte
nds
PrintTicket
(a) UML notation
6. TM Templates
and
Traceability Use Case Example
O. Drobnik,
M. Ueberall
Introduction
Templates
Traceability
Actor
Annotation ent
Phase lvem ent
Transitions extends invo m
olve
inv comment
Navigation Flight
Conclusion ~ i
FlightBooking
exte FlightBooking PrintTicket
nds Flight Annotation
ExtendedUseCase ExtendingUseCase
PrintTicket
(a) UML notation (b) TM representation
7. TM Templates
and
Traceability Templates: Definitions
O. Drobnik,
M. Ueberall
Introduction
Templates
Traceability
• A Topic Map Template is a Topic Map “that only
Phase consists of topics that are declared in order to be used
Transitions
as types in a class of topic maps” [ISO working group]
Navigation
Conclusion
• Association Templates are models that introduce
constraints [Biezunski/Newcomb]
• A single Template is “the formal declaration of a
required Pattern for a given association type”, a Pattern
is “the structure of an individual association” [Vatant]
8. TM Templates
and
Traceability Templates: Generic Basic Types
O. Drobnik,
M. Ueberall
Introduction
Templates
Traceability
Phase Comment supports
Transitions Question
Navigation contradicts
Information Creator
Conclusion
Theory leads-to
Version
Problem connected-with
Topic Types Occurrence Types Association Types
10. TM Templates
and
Traceability Nested Templates Example
O. Drobnik,
M. Ueberall
Introduction
Templates
domain Name
[ :UseCaseDescription]
Traceability UseCase
independent is-part-of( :UseCaseDescription, :UseCase) leads-to
Actor empty
is-part-of( :UseCaseDescription, :Actor)
Phase Precond. mask
Is-part-of( :UseCaseDescription, :Precond)
Transitions Action
domain Is-part-of( :UseCaseDescription, :Action)
Postcond.
specific Is-part-of( :UseCaseDescription, :Postcond)
Navigation ...
Conclusion instance-of instance-of
UseCaseDescription-related templates UseCaseDescription form
domain Name FlightBookingDsc
[FlightBookingDsc:UseCaseDescription]
UseCase FlightBooking
independent is-part-of(FlightBookingDsc,FlightBooking) leads-to filled-in
Actor Customer
is-part-of(FlightBookingDsc,Customer) form
Precond. „Ticket needed“
is-part-of(FlightBookingDsc,_preF.B.Dsc)
Action „contact FRS“
domain is-part-of(FlightBookingDsc,_actF.B.Dsc)
Postcond. „got Ticket“
specific is-part-of(FlightBookingDsc,_postF.B.Dsc)
...
Instance-of
11. TM Templates
and
Traceability Flight Booking Example (I)
O. Drobnik,
M. Ueberall
LTM notation
Introduction // initial use case with actor
Templates
[FlightBooking : UseCase = "FlightBooking" @"http://.../#FlightBooking"]
[Customer = "Customer" @"http://.../#Customer"]
Traceability
tmdm:supertype-subtype(Actor, Customer)
Phase
Transitions
// a complete use case description links use cases and actors
Navigation [UseCaseDescription]
Conclusion exmpltm:is-part-of(placeholder:UseCaseDescription, placeholder:UseCase)
exmpltm:is-part-of(placeholder:UseCaseDescription, placeholder:Actor)
// a customer is an individual person with certain attributes
[Person = "Person" @"http://.../#Person"]
[Address = "Address" @"http://.../#Person_Address"]
[Age = "Age" @"http://.../#Person_Age"]
[BankingAccount = "BankingAccount" @"http://.../#Person_BankingAccount"]
exmpltm:has-attribute(placeholder : Person, placeholder : Address)
exmpltm:has-attribute(placeholder : Person, placeholder : Age)
exmpltm:has-attribute(placeholder : Person, placeholder : BankingAccount)
tmdm:supertype-subtype(Customer, Person)
12. TM Templates
and
Traceability Flight Booking Example (II)
O. Drobnik,
M. Ueberall
LTM notation
Introduction // use case refinement
Templates
[RC : UseCase = "RegisterCustomer" @"http://..."]
[DT : UseCase = "DeliverTicket" @"http://..."]
Traceability
...
Phase
Transitions
includes(FlightBooking : IncludingUseCase, RC : IncludedUseCase) ~ INCL
Navigation extends(FlightBooking : ExtendedUseCase, DT : ExtendingUseCase) ~ EXTD
Conclusion
13. TM Templates
and
Traceability Traceability: Definitions
O. Drobnik,
M. Ueberall
Introduction
Templates
Traceability • In the general sense, traceability denotes the ability to
Phase
Transitions
chronologically interrelate the uniquely identifiable
Navigation
entities to ensure the completeness of information
Conclusion about every step within a process chain
• In software development, the term refers to the ability to
link the requirements set forth at the beginning of a
project to the corresponding design artefacts, the
resulting software, and associated test cases
14. TM Templates
and
Traceability Traceability and Requirements Engineering
O. Drobnik,
M. Ueberall
Introduction Individual development steps must be comprehensible
Templates
• within the same phase of development (intra-phase)
Traceability
Phase • between (consecutive) phases of development
Transitions
(inter-phase)
Navigation
Conclusion
First, prevent incorrect use of concepts (cf. “extend”
example earlier on)
• Templates have to be augmented by usage restrictions
(using constraints)
• Validation rules can be expressed in terms of (boolean)
predicates or queries
17. TM Templates
and
Traceability Intra-Phase Consistency: Using Predicates
O. Drobnik,
M. Ueberall
TMQL/AsTMA= notation
Introduction
Templates
Traceability
Phase
[Predicate = "Predicate" @"http://..."]
Transitions {UseCase, Predicate, [[is-valid-indirect isa tmql_predicate where: """
Navigation is-valid (UseCase: $usecase) &
Conclusion not (extends(ExtendedUseCase: $usecase’,
ExtendingUseCase: $usecase) &
not(is-valid-indirect(UseCase: $usecase’))) &
not (includes(IncludedUseCase: $usecase’’,
IncludingUseCase: $usecase) &
not(is-valid-indirect(UseCase: $usecase’’))) """
]]}
18. TM Templates
and
Traceability Consistency-preserving Phase Transitions
O. Drobnik,
M. Ueberall
Introduction
• Phase Transitions require a consistent mapping (e.g.,
Templates
requirements have to be mapped to design artefacts)
Traceability
Phase
• This kind of mapping can be supported by additional
Transitions
regulations concerning Templates from both phases
Navigation
(e.g., any use case instance has to be associated with
Conclusion
at least one design pattern instance)
• Violations of these regulations have to be handled
differently (temporarily invalid constructs should not be
rejected at once)
• Regulations (i.e., constraints) can also be used to make
sure that certain required steps during development
phase transitions are performed
20. TM Templates
and
Traceability Consistency-preserving Phase Transitions: Using Queries
O. Drobnik,
M. Ueberall
Introduction
[Query = "Query" @"http://..."]
Templates
[DesignPattern = "DesignPattern" @"http://..."]
Traceability
{UseCase, Query, [[
Phase
Transitions SELECT $usecase WHERE
Navigation
applies-to($usecase : UseCase, $designpattern :
Conclusion
DesignPattern)]]}
[Component = "SoftwareComponent" @"http://..."]
{UseCase, Query, [[
SELECT $usecase WHERE
applies-to($usecase : UseCase, $designpattern :
DesignPattern) AND
is-implemented-by($designpattern : DesignPattern,
$comp : Component)]]}
21. TM Templates
and
Traceability Navigation and Views
O. Drobnik,
M. Ueberall
Introduction
Different views and objectives of participants involve, e.g.,
Templates
Traceability • different (phase-dependent) concepts
Phase
Transitions
• different needs of details
Navigation • different notations
Conclusion
Therefore, flexible visualisation, (semantic) zooming and
filtering capabilities are needed
• possible visualisations: Conceptual Graphs, UML
diagrams, code fragments
• predicate-based queries (also address scalability
aspects)
22. TM Templates
and
Traceability Navigation and Views: Overview
O. Drobnik,
M. Ueberall
Status: not Status:
Introduction req. eng. phase
implemented implemented
Templates Name xxxxxxxx Name xxxxxxxx Name xxxxxxxx
UseCase xxxxxxxx UseCase xxxxxxxx UseCase xxxxxxxx
Actor xxxxxxxx Actor xxxxxxxx Actor xxxxxxxx
Traceability Precond. xxxxxxxx Precond. xxxxxxxx Precond. xxxxxxxx
Action xxxxxxxx Action xxxxxxxx Action xxxxxxxx
Postcond. xxxxxxxx Postcond. xxxxxxxx Postcond. xxxxxxxx
Phase ... ... ...
Transitions
Navigation applies-to
design phase
Conclusion
implement. phase
implemented-by implemented-by implemented-by
xxxx xxxx xxxx xxxx
pending
questions