UC:Use cases: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{navi}}
{{navi}}
'''Use cases'''
{{head|Use cases}}


In this page you learn what is a '''use case''', how to contribute to writing good {{rml}}-Use Cases and where to find them in this wiki.
In this page you learn what is a '''use case''' and find a list of {{rml}} use cases.


While the emphasis of the {{rml}}-wiki lies in documenting single elements in a bottom-up approach, we also try to help users to capture the concepts of {{rml}} via [[Dev:Examples|examples]] and use cases in a top down approach.
While the emphasis of the {{rml}}-wiki lies in documenting single elements in a bottom-up approach, we also try to help users to capture the concepts of {{rml}} via [[Dev:Examples|examples]] and use cases in a top down approach.
Line 13: Line 13:
What distinguishes a use case from an example is, that examples will typically consist of pieces of {{rml}}-code, whereas use cases will typically be formulated in natural language or ''Unified Modelling Language'' (UML). Examples are solutions to use cases.
What distinguishes a use case from an example is, that examples will typically consist of pieces of {{rml}}-code, whereas use cases will typically be formulated in natural language or ''Unified Modelling Language'' (UML). Examples are solutions to use cases.


==Use case's table of contents==
=={{rml}} Use Cases==
As a single use case refers to certain subschema, they are listed along this line:
===By category===
*[[TT:UseCases|Enumeration of use cases for the '''timetable''' subscheme]]
[[:category:Use case (CO)|CO Use Cases]] – [[:category:Use case (IL)|IL Use Cases]] – [[:category:Use case (IS)|IS Use Cases]] [[:category:Use case (RS)|RS Use Cases]] [[:category:Use case (TT)|TT Use Cases]] – [[:Category:Use cases by company]]
*[[IS:UseCases|Enumeration of use cases for the '''infrastructure''' subscheme]]
===List===
*[[RS:UseCases|Enumeration of use cases for the '''rolling stock''' subscheme]]
[[UC:Use cases/table|View/edit list on the separate source page]].
*[[IL:UseCases|Enumeration of use cases for the '''interlocking''' subscheme]]
{{:UC:Use cases/table}}
 
===How to interpret the status===
===How to interpret the status===
*''planned''/''postponed'': the use case is planned with higher or lower priority, but there is no draft available by now. Usually there will be no article about this use case in the wiki. Sometimes some basic ideas will be published.
<div style="writing-mode: tb-rl;"></div>
*''draft'': a user has submitted a draft. Usually there will exist an article about the use case where you find the draft.
{|class="wikitable"
*''consolidated'': the draft has been reviewed
!rowspan=2|&nbsp;!!Status!!Description!!colspan=5|participation
*''requirements'': there is an assessment, if and how the {{rml}} schema has to be refined as to depict the use case
|-
*''model'': the requirements of this use case have been implemented into the currant {{rml}} schema
!&nbsp;!!&nbsp;!!<div style="writing-mode: tb-rl;font-size:70%">{{rml}} community</div>!!<div style="writing-mode: tb-rl;font-size:70%">reporting party</div>!!<div style="writing-mode: tb-rl;font-size:70%">{{rml}} scheme coordinator</div>!!<div style="writing-mode: tb-rl;font-size:70%">{{rml}} governance board</div>!!<div style="writing-mode: tb-rl;font-size:70%">{{rml}} scheme development group</div>
*''finished'': the use case has been completely implemented, documented and released
|-
 
|rowspan=3|<div style="writing-mode: tb-rl;font-size:70%">'''pre development'''</div>||''planned''
==What makes a good use case?==
|the use case is planned, but there is no draft available by now; usually there will be no article about this use case in the wiki; Sometimes some basic ideas will be published
A good use case should be ''complete'', ''comprehensible'' and ''practically relevant''. Ideally, it should be ''perceivable by the public'' (A problem that can be understood by and occur to everybody is more illustrative than one that only occurs to a small subgroup of users). Finally, the use case should be ''objective'' in the sense that it is not biased to the requirements or solutions of a certain organization or company.
|style="text-align:center;"|×
 
|
==Structure==
|
Each use case is assigned to a subschema. The article name should follow the paradigm <subschema>:UC:<use case>, e.g. [[IS:UC:Timetabling]].
|
 
|
In {{rml}}, use cases are usually presented with the following structure (which, too, can be seen in the example of [[IS:UC:Timetabling]]):
|-
*Head/Title
|''draft''
*Description: A sketch of the task, the necessary steps and the requirements in general.
|a user has submitted a draft. Usually there will exist an article about the use case where you find the draft
:It is important to note, to which {{rml}} versions a use case or certain aspects of it apply, as use cases will develop further with the development of {{rml}}.
|
*Data flows and interfaces
|style="text-align:center;"|☒
*Interference with other {{rml}} schemas
|
*Characterizing Data
|
**How often do the data change (update)?
|
**How big are the data fragments to be exchanged (complexity)
|-
**Which views are represented by the data (focus)?
|''consolidated''
**Which specific timetable data do you expect to receive/send (elements)?
|the draft has been reviewed and accepted by the scheme coordinator
;Template
|style="text-align:center;"|×
If you start a new use case description you can copy this copy template to support a correct structure. To get an impression how to employ the templates of this list see [[Dev:Use case example]].
|style="text-align:center;"|×
<pre>
|style="text-align:center;"|☒
{{UseCase|<subschema>|<version>|title=}}
|
{{UC title}}
|style="text-align:center;"|×
{{UC description}}
|-
{{UC flows}}
|rowspan=3|<div style="writing-mode: tb-rl;font-size:70%">'''development phase'''</div>||''requirements''
{{UC interference}}
|the '''development phase''' begins with an assessment, if and how the {{rml}} schema has to be refined as to depict the use case
{{UC data}}
|style="text-align:center;"|×
{{UC update}}
|
{{UC complexity}}
|style="text-align:center;"|☒
{{UC focus}}
|
{{UC elements}}
|style="text-align:center;"|×
</pre>
|-
|''model''
|the requirements of this use case have been implemented into the currant {{rml}} schema
|
|
|style="text-align:center;"|☒
|
|style="text-align:center;"|×
|-
|''finished''
|the use case has been completely implemented, documented and released
|
|
|style="text-align:center;"|×
|style="text-align:center;"|☒
|
|-
|
|''postponed''
|if an unfinished use case is not being barried further for several months, it will be listed as postponed
|
|
|style="text-align:center;"|☒
|
|
|-
!colspan="8"|×=participates — ☒=is responsible
|}


==How to contribute a use case==
==How to contribute a use case==
# Please, get into contact with the coordinator of the respective subschema before you start writing a use case. Feel free to start an article in your userspace at your own risk of doing obsolete work.
Generally speaking, contributions to {{rml}} and this wiki are appreciated. For contributing use cases, please follow our [[dev:Use cases|UC guideline]].
# Develop the use case according to the mentioned criteria (especially [[#structure]] and [[#What makes a good use case?]]).
# Let the subschema coordinator review the article.
# The subschema coordinator will take care of publishing the article. He will version the use case and match it with the {{rml}}-versions to which it applies — both the use case and {{rml}} will evolve in the course of time. Finally, the article will be entered into the use case collection of the respective subschema, as in [[#Lists]].


==References==
==References==
<div id="*">[[#t*|*]] http://www.ibm.com/developerworks/library/co-design5/</div>
<div id="*">[[#t*|*]] {{external|http://www.engr.sjsu.edu/fayad/current.courses/cmpe202-Fall2009/docs/lecture2/CmpE202-Use-Cases-3.pdf}}</div>

Revision as of 16:33, 15 March 2019

RailML Trademark RGB V2.png
XML Railway exchange format
https://railML.org
Latest release: 2.5
(September 1st, 2021)
 
Main Menu
 
Subschemas
XML tree
UML diagrams
Use cases
Versions & Changes

Use cases
 

In this page you learn what is a use case and find a list of railML® use cases.

While the emphasis of the railML®-wiki lies in documenting single elements in a bottom-up approach, we also try to help users to capture the concepts of railML® via examples and use cases in a top down approach.

What is a use case?

A use case can be defined as a single task, performed by the end user of a system, that has some useful outcome*. It is described as a list of steps (actions or events) to achieve this outcome.

A use case in terms of railML® is an application of data exchange between at least two IT systems in the railway domain, where railML® can be used as a format and language for the data to be exchanged. The aim of the use case description is to formulate requirements on the technical implementation of the data exchange.

What distinguishes a use case from an example is, that examples will typically consist of pieces of railML®-code, whereas use cases will typically be formulated in natural language or Unified Modelling Language (UML). Examples are solutions to use cases.

railML® Use Cases

By category

CO Use CasesIL Use CasesIS Use CasesRS Use CasesTT Use CasesCategory:Use cases by company

List

View/edit list on the separate source page.

🗒️ This page is mirrored from page UC:Use cases/table in The railML® 3 wiki.
  1. REDIRECT Template:UC:Use cases/table

How to interpret the status

  Status Description participation
   
railML® community
reporting party
railML® scheme coordinator
railML® governance board
railML® scheme development group
pre development
planned the use case is planned, but there is no draft available by now; usually there will be no article about this use case in the wiki; Sometimes some basic ideas will be published ×
draft a user has submitted a draft. Usually there will exist an article about the use case where you find the draft
consolidated the draft has been reviewed and accepted by the scheme coordinator × × ×
development phase
requirements the development phase begins with an assessment, if and how the railML® schema has to be refined as to depict the use case × ×
model the requirements of this use case have been implemented into the currant railML® schema ×
finished the use case has been completely implemented, documented and released ×
postponed if an unfinished use case is not being barried further for several months, it will be listed as postponed
×=participates — ☒=is responsible

How to contribute a use case

Generally speaking, contributions to railML® and this wiki are appreciated. For contributing use cases, please follow our UC guideline.

References