SlideShare a Scribd company logo
1 of 54
Copyright (c) 2018 Pentad-SE Ltd
Automatic measurement of COSMIC size
by syntactical/semantic analysis of text
requirements
20/06/2018 1COSMIC-SIG 07/06/2018
Peter Fagg
Pentad-SE Ltd
md@pentad.co.uk
Objectives of this work
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 2COSMIC-SIG 07/06/2018
Set the context by explaining briefly the concepts of Natural Language
(NL)
Explain a type of NL called Controlled Natural Language (CNL) which
conforms to a defined syntax, then explain its use to state requirements
To explain in more detail the process for formally defining a CNL in a form
suitable for automation
To demonstrate how two NCLs have been implemented and how a COSMIC
functional size may be measured automatically.
To describe in outline four implementations of a CNL
Natural Language
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 3COSMIC-SIG 07/06/2018
‘Natural Language’ refers to a human language such as English, Russian,
German, or Japanese as distinct from a command or programming language
which can be understood by a machine
It is language that has evolved as a method of communicating between
people
It is only Natural when used within a community that understands it.
e.g. the language used by a doctor to describe a prescription is understandable
by a pharmacist who must dispense the prescription, e.g.
“2 tab b.i.d. p.c”
However, the patient receiving the prescription needs to be told that this means:
“2 tablets twice per day after meals”
Natural Language
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 4COSMIC-SIG 07/06/2018
Fortunately in the field of Requirements Engineering , there is a specific audience,
and a generally-understood language for communication.
Sometime third parties have to analyse NL so as to understand the meaning and
where the information comes from, in many forms and formats and from many
sources, in languages that are Natural only to the respective intended listeners or
readers.
Examples:
The NL Processing techniques used to make sense of the body of information
gathered are very sophisticated and diverse.
Even in this field there are several types of stakeholder, each with its own NL
National security services monitor phone calls, texts, e-mails, etc.,
to detect and intercept possible security threats;
Google analyses web search pattern to determine interests so they
can target advertising.
Requirement Types
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 5COSMIC-SIG 07/06/2018
Requirements emerge at various stage of the lifecycle. ISO/IEC 29148
(Requirements Engineering) has defined the type of requirements that
can be expected and is illustrated as follows:-
Controlled Natural Language
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 6COSMIC-SIG 07/06/2018
Even a language directed to a specific audience does not guarantee that statements
of requirements are clear and unambiguous.
To help overcome that we can use what is called a ‘Controlled Natural Language’.
Use of a Controlled Natural Language makes the automatic analysis to understand
meaning much easier that if a NL is used.
Controlled Natural Language
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 7COSMIC-SIG 07/06/2018
A subset of Natural Language where the grammar and vocabulary have
been restricted so as to remove or reduce ambiguity and complexity.
CNL’s are constructed so as to satisfy two objectives ...
• To improve readability, e.g. for non-native speakers by
constraining vocabulary and grammar
• To enable reliable and automatic analysis of the language
Two important concepts to achieve objectives: Syntax and Semantics
Syntax concerns the structure and rules of the language. It is referring
to grammar and vocabulary, which in a CNL, is constrained
Semantics deal with the meaning assigned to the Keywords and
Words used by the Syntax.
Controlled Natural Language
Examples
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 8COSMIC-SIG 07/06/2018
I am researching four forms of expressing requirements expressed in CNL
Easy Approach to Requirements Analysis (EARS):
COSMIC User Story Standard (CUSS)
ISO IEC/29148 Requirements Engineering.
The Haoues, Sellami, Ben-Abdallah Use Case.
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 9COSMIC-SIG 07/06/2018
The structure and content is controlled by Keywords followed by
placeholders containing specific information, appearing in a strict order.
There is only one requirement per sentence.
Requirements are separated by a full stop.
Controlled Natural Language
EARS
Controlled Natural Language
CUSS - Cosmic User Story Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 10COSMIC-SIG 07/06/2018
General Form
As a <who/role>, I want to <what>, linked to <connections>; so/then be
notified about operation status.
Example
“As a Librarian, I want to register a new book, connected to author and
publisher; then be informed about operation status”
Keywords and placeholders again, but more punctuation rules. The Comma
Semi-Colon and Full-stop have special meaning
Controlled Natural Language
ISO/IEC 29148
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 11COSMIC-SIG 07/06/2018
Keywords and placeholders and fewer punctuation rules. The Comma and Full-stop
have special meaning. The Role of the User is less obvious but it is there.
Controlled Natural Language
29148 - Conclusions
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 12COSMIC-SIG 07/06/2018
• This is included as it is something I have researched and will definitely progress in
due course as it is a good subject for automation.
• It is in line with my policy not to invent but to use a ready-made solution, where
others are doing the selling and just add value to it.
• IS 29148 will be issued shortly, there must be an audience for it. It would be good
for COSMIC to be ready for it.
Haoues, Sellami, Ben-Abdallah
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 13COSMIC-SIG 07/06/2018
A paper in 2017 by M. Haoues, A. Sellami, and H. Ben-Abdallah proposes a format for
Use Cases based on a limited form of Markup.
Markup involves using tags of different kinds to identify the different elements of the
statement. For example the Use Case header has the following information
Number:<unique ID assigned to a use case>
Name:<unique name assigned to a use case>
Level:<level of use case description>
Description:<a summary of use case purpose>
Actors:<Primary actor: actor that initiates the use case>
<Secondary actor: actor that participates within the use case>
Haoues, Sellami, Ben-Abdallah
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 14COSMIC-SIG 07/06/2018
Pre-condition:<a list of conditions that must be true to initialize the use case>
Post-condition (success):<state of the system if goal is achieved>
Post-condition (failure):<state of the system if goal is abandoned>
Relationship
[Include:<use cases in relation with this use case by "include">, Extend:<use cases in relation with this use case by "extend">,
Super use case:<list of subordinate use cases of this use case>, Sub use case: <list of all use cases that specialize this use case>]
Begin
MS /* Main scenario */
<Steps of the scenario from trigger to goal>
Begin
<NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist, Expletive, Response, DataRecovery><Action
Description> [<Int-Parameter>] [<Out-Parameter>]
End
AS /* Alternative scenario */
Begin<Event, begin at Num "action number">
<NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist, Expletive, Response, DataRecovery><Action
Description> [<Int-Parameter>] [<Out-Parameter>]
The main scenario back to NUM
End
ES /* Error scenario */
Begin<Event, begin at Num "action number">
<NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist, Expletive, Response, DataRecovery><Action
Description> [<Int-Parameter>] [<Out-Parameter>]
End
End Use Case
Apply these ideas to the ‘Resto-Sys’ case study
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 15COSMIC-SIG 07/06/2018
Add an Order
1. when the waiter logged on, the list of restaurant options is displayed
2. The waiter presses the option “Add a new order”
3. The system displays the list of tables
4. The waiter chooses the table where the customer is installed. The system
changes the order state from active to closed
5. The system displays the list of item families
6. The waiter chooses the item families based on the items requested by the
customer
7. The system displays the list of items according to the selected Item families
8. The waiter selects the items requested by the customer and specify for each
item the recommended quantity and customer's comment. The system creates a
new order
COSMIC Case Study – Sizing Natural Language/Use Case uses Resto-Sys as its
case study. (Downloadable from Cosmic Website) An example case is ...
Resto-Sys
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 16COSMIC-SIG 07/06/2018
Add an Order
Begin
1. <System><Expletive><when the waiter logged on, the list of restaurant options is
displayed>.
2. <Waiter><Request><The waiter presses the option “Add a new order”> [<Order Data>].
3. <System><Response & Request &Response ><The system displays the list of tables> [<Order
Data>] & [<Table Data>&<Table Data>].
4. <Waiter><Request & Response><The waiter chooses the table where the customer is
installed. The system changes the order state from active to closed > [<Table ID>&<Table ID>].
/*If a new order for the same table is entered, the previous order (if any) should be closed. In
this case, there is always at most one order ‘active’)*/
5. <System><Request & Response><The system displays the list of item families> [<Item family
data>&<Item family data>].
6. <Waiter><Request & Response><The waiter chooses the item families based on the items
requested by the customer> [<Item family ID>&<Item familyID>].
7. <System><Request & Response><The system displays the list of items according to the
selected Item families> [<Item Data>&<Item Data>].
8. <Waiter><Request& Response><The waiter selects the items requested by the customer and
specify for each item the recommended quantity and customer's comment. The system
creates a new order> [<Order Items>] & [<Order Items>].
End
Resto-Sys
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 17COSMIC-SIG 07/06/2018
Add an Order
Begin
1. <System><Expletive><when the waiter logged on, the list of restaurant options is displayed>.
2. <Waiter><Request><The waiter presses the option “Add a new order”> [<Order Data>].
3. <System><Response & Request &Response ><The system displays the list of tables> [<Order
Data>] & [<Table Data>&<Table Data>].
4. <Waiter><Request & Response><The waiter chooses the table where the customer is
installed. The system changes the order state from active to closed > [<Table ID>&<Table ID>].
/*If a new order for the same table is entered, the previous order (if any) should be closed. In
this case, there is always at most one order ‘active’)*/
5. <System><Request & Response><The system displays the list of item families> [<Item family
data>&<Item family data>].
6. <Waiter><Request & Response><The waiter chooses the item families based on the items
requested by the customer> [<Item family ID>&<Item familyID>].
7. <System><Request & Response><The system displays the list of items according to the
selected Item families> [<Item Data>&<Item Data>].
8. <Waiter><Request& Response><The waiter selects the items requested by the customer and
specify for each item the recommended quantity and customer's comment. The system creates
a new order> [<Order Items>] & [<Order Items>].
End
Resto-Sys – Conclusion (1)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 18COSMIC-SIG 07/06/2018
The addition of Markup adds greatly to the burden of expressing stories. Will
requirements writers do this? Given that the benefit will be perceived as of value
only to the measurement community, it could be hard to sell.
Markup also reduces readability for those who are not trained in the language. I see
it is as intermediate language, translating from plain to structured text in a form to
enable automation.
I have automated the measurement of size of requirements expressed as Markup
languages in another domain, so I am sure it can be done in this case, but it is not a
priority for me.
This is just an illustration of the extra information that needs to be added when a
Markup approach is adopted, and the structure that has to be imposed to be able to
make it machine readable. It is included here to draw attention to other approaches
in this field of automation using COSMIC
Resto-Sys – Conclusion (2)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 19COSMIC-SIG 07/06/2018
The authors of the paper indicate a software tool may be developed and perhaps
demonstrated at the next IWSM in China.
It will be interesting to see how it deals with semantics.
Note however, this problem of dealing with the semantics is not unique to Markup.
It is common to any other method of size measurement automation.
EARS and CUSS
The EARS approach relies on sentence structure, Keywords, Placeholders and
Vocabulary. The result is both Human and machine readable.
The CUSS approach is the same , but in addition it uses punctuation marks with
specific meanings, so is more complicated.
These will now be explained in more detail
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 21COSMIC-SIG 07/06/2018
EARS was originally devised for specifying REAL-Time systems in Marvin et al at Rolls
Royce. There is an active EARS community. The first International Conference and
Workshop is in Banff in August, co-resident with IEEE conferences
My main motivation for using EARS is to apply COSMIC to measure size of Real Time
systems specified using EARS.
I am working on specifying three case studies (an Elevator, the Rice Cooker and a
Liquid Mixing system) in EARS for training and demonstration purposes
To make it applicable to business systems, I have also compiled a Vocabulary specific
to the Data Rich Domain.
The syntax/vocabulary combination is called EARS-FSM, and this part of the
presentation describes how the EARS-FSM syntax/vocabulary is defined.
The same definition process is applied to EARS and CUSS. 29148 and marked-up
Use Case are not discussed further here.
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 22COSMIC-SIG 07/06/2018
The EARS Syntax comprises 5 basic boilerplates called Event Driven, Ubiquitous, State
Driven, Conditional and Complex. Any statement of requirement can be expressed
using a combination of these Boilerplates.
The term “Boilerplate” is used because that is the language of this community. It is
simply another word for Template
The Complex boilerplate is simply a container for combinations of the other four.
The process of defining any boilerplate is additive in that a Boilerplate item itself can
in turn require another Boilerplate to define it.
The full set of EARS-FSM Boilerplates has been completed and will be made available
for download for those interested in knowing more.
For this presentation, the Event Driven boilerplate is described in detail in order
to explain the process. The other boilerplates are defined in outline.
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 23COSMIC-SIG 07/06/2018
General Form
WHEN <optional preconditions> <trigger> the<system name> shall <system
response>
Event Driven
An event-driven requirement is initiated only when a triggering event is detected at
the system boundary. The keyword When is used for event-driven requirements.
EBNF
event-driven ::= 'WHEN' precondition+ Trigger 'the' SystemName 'shall' SystemResponse
Railroad Diagram
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 24COSMIC-SIG 07/06/2018
When. A keyword to indicate the type of pattern
Precondition. Optional. Condition bounded by IF .. THEN
Trigger. The task the User requires the system to perform
followed by the Username. The set of values for the
Trigger is defined in the Vocabulary
Event Driven
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 25COSMIC-SIG 07/06/2018
The Keyword indication start of the system name
SystemName. The system or application performing the task
Shall Keyword indicating the start of the mandatory System
Response
SystemResponse. What the system does in response to the task it has
been requested to perform by the User. The values for
SystemResponse is a set of domain-dependent
Keywords, each Keyword is further defined using its
own EBNF.
Event Driven
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 26COSMIC-SIG 07/06/2018
SystemResponse
The SystemResponse can take the value of any Word defined in the
Vocabulary. The Words are domain specific and represent what the
software is required to do. In the case of the Data Rich domain, the
Words are the familiar extended CRUD
EBNF and Railroad Diagram
SystemResponse ::= (get|put|create|update|view|delete|list|request |send)
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 27COSMIC-SIG 07/06/2018
Get
Primary purpose is recover an object from persistent storage for
processing
EBNF and Railroad
get ::= 'get' ObjectName ('selector' ( ',' attribute)* )?
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 28COSMIC-SIG 07/06/2018
Get: the Keyword
ObjectName: The subject of the get, i.e. where information
about the object is stored
Selector: where applicable, the selection criteria
Attribute: the set of attributes describing the Object to be
retrieved
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 29COSMIC-SIG 07/06/2018
Ubiquitous
A ubiquitous requirement has no preconditions or trigger. It is not
invoked by an event detected at the system boundary or in response
to a defined system state, but is always active.
EBNF and Railroad
Ubiquitous ::= 'the' SystemName 'shall' SystemResponse
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 30COSMIC-SIG 07/06/2018
Unwanted Behaviour or Conditional
“Unwanted behaviour” is a general term used to cover all situations
that are undesirable. A “Conditional” state is only performed when the
pre-condition is satisfied
General Form
IF <optional preconditions> <trigger>, THEN the <system name> shall <system
response>
EBNF and Railroad
Unwanted ::= 'if' Precondition+ Trigger 'then' 'the' SystemName 'shall'
SystemResponse
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 31COSMIC-SIG 07/06/2018
Placeholder = Trigger
EBNF and Railroad
Trigger ::= (enters| requests)
EARS-FSM
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 32COSMIC-SIG 07/06/2018
State-driven
A state-driven requirement is active while the system is in a defined
state. The keyword While is used to denote state-driven
requirements.
General Form
WHILE <in a specific state> the <system name> shall <system response>
EBNF and Railroad
stateDriven ::= 'WHILE' state 'the' SystemName 'shall' SystemResponse
EARS – Conclusions (1)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 33COSMIC-SIG 07/06/2018
• EARS is already used in the Real Time world. My research shows it can be adapted
for Data Rich domain, however the adaptation had to be formally specified. The
slides illustrate what was done to achieve this. The result is called EARS-FSM.
• The full EARS-FSM Specification is complete in draft form. This will be completed
shortly. It will be downloadable from the VisualFSM website and will be offered for
download from the Cosmic website
• As proof of concept, the EARS-FSM Specification has been successfully
implemented in a software tool called VisualFSM Autosize Workbench. This takes
an EARS-FSM conformant set of requirements, and automatically measures and
documents them.
• A free Community Edition of the software is in final preparation for release
Please see http://www.VisualFSM.com/cosmicautosize.asp.
EARS – Conclusions (2)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 34COSMIC-SIG 07/06/2018
• This experience of implementation showed that It is reasonably straight-forward to
implement the EARS-FSM syntax and that the Semantic rules are easily derived.
The reason for this is the use of a CNL constrains the Syntax and Vocabulary used
making it easier for a parser to extract meaning
– E.g. the parser assumes the EARS reserved-word ‘show’ indicates the start of
an Exit’ statement ; reserved-word ‘enters’ indicates the start of an ‘Entry’
statement
• The EARS for Real Time (EARS-FSM-RT) is being specified and a module will be
added to the Workbench and an update will be made available.
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 35COSMIC-SIG 07/06/2018
• current requirements specification techniques used in agile
software development are customer-oriented and, from the
developers point of view, have proven to be insufficient
• there is more information from the customer point of view,
written in a too-high level, than from the developers perspective,
with some implementation details.
Miguel Ecar, Fabio Kepler, and Jo˜ao Pablo S. da Silva published a paper in
May 2018, available from the COSMIC website in which they conclude:
They present a template that captures more information than a normal User
Story. They call this the COSMIC User Story Standard (CUSS).
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 36COSMIC-SIG 07/06/2018
The CUSS template is the following:
“As a <who/role>, I want to <what>, linked to <connections>; so/then
be notified about operation status.”
where:
– <who/role> is the Functional User
– <what> is the verb that represents the action or the functional
process
– <connections> represents other data groups involved in this
functional process
– “so/then be notified about operation status” is optional
statement and represents the functional user feedback.
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 37COSMIC-SIG 07/06/2018
US -> AS USER I DOT | AS USER I L DOT | AS USER I FEED DOT | AS USER I L
FEED DOT
I -> IWANT METHOD DG
L -> LINK PLINK | LINK PLINK SLINK TLINK | LINK PLINK TLINK
AS -> As a | As an | As the
IWANT -> COMMA I want to | | COMMA, i can
LINK -> COMMA connected to
FEED -> SEMICOLON so | SEMICOLON i can
FBACK -> FEED be informed about operational status
STRUCTURE and SYNTAX
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 38COSMIC-SIG 07/06/2018
PLINK -> DG
SLINK -> COMMA PLINK | COMMA PLINK SLINK
TLINK => and DG
DOT -> .
COMMA -> ,
SEMICOLON -> ;
USER -> <;ist of roles>
METHOD -> <list of verbs/actions>
DG -> list of data groups
STRUCTURE and SYNTAX
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 39COSMIC-SIG 07/06/2018
– As a Manager, I want to remove a book.
– As a user, I can update books; so be notified about operation status.
– As a Manager, I want to add a new book, connected to author.
– As the Manager, I want to save books, connected to author and
publishing company.
– As a Manager, I want to create books, connected to author and
publishing company; then be notified about operation status.
Examples
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 40COSMIC-SIG 07/06/2018
CUSS
“As a <who/role>, I want to <what>, linked to <connections>; so/then be
notified about operation status.”
EBNF and Railroad
CUSS ::= "as a" role "i want to" action ("so"|"then") "be notified about" state
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 41COSMIC-SIG 07/06/2018
EBNF
As ::= 'as a' | 'as an' | 'as the'
Keyword AS
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 42COSMIC-SIG 07/06/2018
EBNF
role ::= ("user"|"manager"|"operator")
Placeholder Who/Role
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 43COSMIC-SIG 07/06/2018
EBNF
action ::= (register|create|update|list|send)
Placeholder Action
CUSS – COSMIC User Story
Standard
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 44COSMIC-SIG 07/06/2018
EBNF
state ::= (status|any)
Placeholder State
CUSS - Conclusions
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 45COSMIC-SIG 07/06/2018
CUSS is an extension to the traditional User Story designed to replace the human
consensus approach used in Agile (planning poker etc)
The additional information required by CUSS better reflects the intent of the
function better than traditional User Story conventions so less expert opinion is
involved. CUSS is still missing detail required for measurement and the remaining
semantics have to be assumed using expert opinion. If you change the experts, the
result may change due to different semantic interpretation by individuals.
If the Syntactical and Semantic analysis of the same input are automated using
CUSS it would result in a repeatable result. Although the semantic element is still
subject to expert opinion, as it is embedded, it is repeatable reflecting the
opinion of the original experts.
A tool with a different Semantic element may yield a different result. You need to
understand the Semantics embedded in the tool to be able to evaluate its
usefulness for the purpose.
Implementation
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 46COSMIC-SIG 07/06/2018
The final step is to consider Semantics. The Syntax imposes a structure, whereas
the Vocabulary constrains the Keywords and Words that can be used. Semantic
analysis makes sense of the whole.
The Syntax and Semantic rules have been successfully implemented in a software
tool I use for research purposes called VisualFSM Autosize-WB which I use for
research
EARS/CUSS/etc Measurement
Model
Autosize
Syntax Semantic
Syntax Model
DMSD
(size aCFP)
It takes in “well formed” requirements, performs Syntactical analysis to break out
the Syntax Model, then performs Semantic analysis to calculate the size.
VisualFSM-Autosize-WB
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 47COSMIC-SIG 07/06/2018
EARS Analysis. Text to Data Movement Sequence Diagram
Conclusions (1)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 48COSMIC-SIG 07/06/2018
CUSS. The survey approach of gaining consensus of experts is only valid when a
group of local experts is used. The result is not transportable. CUSS overcomes this
by reducing the need for expert opinion by defining a syntax and requiring more
detail .
The syntax itself uses punctuation marks to convey meaning, this could be difficult
to enforce.
CUSS itself used the survey technique to evaluate the effectiveness of the syntax by
inviting expert opinion as the size of a set of CUSS requirements. The semantics
embedded in the proposed tool will depend on expert opinion.
As User Stories are used early in the life cycle where detail may be missing, CUSS
yields a more useful and repeatable result then wholly expert opinion.
Users should just be aware that the subjective element is still there. This is to be
expected given the information available
Conclusions (2)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 49COSMIC-SIG 07/06/2018
EARS. the additional detail it contains compared to User Stories and CUSS yields
a result closer to the actual size. The semantic element still relies on expert
opinion but to a lesser extent because a Data Movement can be derived directly
from a statement with fewer assumptions.
The one sentence/one statement enforces the one object – one subject approach
which is accepted best practice. The ability to combine several different
statements means more complete and complex requirements can be defined.
The need for subjective assessment by human experts of what might be expected
to happen, due to lack of detail, is very much reduced.
The attention to detail in the EARS syntax for RT applications came about because
of the need to specify more clearly due to the consequence of error.
Business systems should really adopt the same approach and avoid the
consequences, which in this case is rework due to lack of clarity.
EARS-FSM is one way of enforcing this. IMO!!!
Conclusions (2)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 50COSMIC-SIG 07/06/2018
IS 29148
Given that it is an International Standard, it is worth giving it some serious
consideration
I have done some preliminary work on the formal Specification of the Syntax
using the same method as for EARS and CUSS. From that work I am sure it can be
automated .
It uses the same strategy as EARS so I expect it to involve minor changes to adapt
to the different Syntax and hopefully minimal changes to the Semantic analysis.
A Module will be added to VisualFSM Autosize-WB in due course
Conclusions (3)
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 51COSMIC-SIG 07/06/2018
Finally
•CUSS can be used very early
•EARS when more information is available (or required by contract)
•29148 same as EARS but being an International Standard it could have more
exposure
•actual measurement of size when all is known which can be used to
validate and improve the automation results
Each can be automated and will yield a result that is better than the consensus of
Expert opinion.
Which approach to use depends on the purpose and when the information
becomes available Primarily it depends on the motivation for people to do it
Thank You
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 52COSMIC-SIG 07/06/2018
Questions
What is EBNF?
See slide (A1) which follows for a brief overview
How do I read a Railroad Diagram?
See slide (A2) that follows for a brief overview
(A1) -Extended Backus Naur Form
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 53COSMIC-SIG 07/06/2018
EBNF is a formal mathematical way to describe a language. I use it to define
the syntax because it is relatively easy to parse elements of the statement
described in this way.
It is too big a subject to cover in a few minutes but a simple example will give
an insight. Characters, symbols, quotes, punctuation and brackets have
specific meanings: Consider the definition of the
Get statement: get ::= 'get' ObjectName ('selector' ( ‘,' attribute)* )?
the GET statement is started by the keyword ‘get’ followed by the name of the
object. The opening and closing bracket () define a group and the final ? means
it is optional. ‘selector’ is a keyword followed by a group of attributes to filter
the selection; the * means it is a repeating group; the “,” means the attributes
are separated by a comma.
From this simple explanation you can imagine it is far easier to parse the EBNF
I have used Extended Backus-Naur Form (EBNF) to define Syntax in previous
slides.
(A2) Railroad Diagram
Copyright (c) 2018 Pentad-SE Ltd20/06/2018 54COSMIC-SIG 07/06/2018
A Railroad Diagram (RRD) is a way of visualizing the processing paths of a
program, so-called because it is similar to moving carriages in a railway siding,
following all possible paths, left to right, to the destination.
Consider the GET Statement again
get ::= 'get' ObjectName ('selector' ( ‘,' attribute)* )?
Submitting this the Railroad Diagram generator we get
Reading left to right, follow the lines; these are processing paths. Where the
lines loop back, as before Attribute, it means go round until all attributes are
processed.
The combination of EBNF and RRD defines the structure of the parser required
to process the get statement. A parser is required for each statement
To supplement the EBNF statements, I use RRDs to validate the EBNF: the
Diagram Utility I use takes EBNF as input and outputs the RRD.

More Related Content

Similar to Measure COSMIC Size of Requirements Automatically

Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...
Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...
Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...IJECEIAES
 
Sudheer_SAP_ABAP_Resume
Sudheer_SAP_ABAP_ResumeSudheer_SAP_ABAP_Resume
Sudheer_SAP_ABAP_ResumeSudheer babu
 
Karthick_Exp_resume
Karthick_Exp_resumeKarthick_Exp_resume
Karthick_Exp_resumeKarthick Muthu
 
How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...Juha-Pekka Tolvanen
 
Performance Testing
Performance Testing Performance Testing
Performance Testing GeetikaVerma16
 
Selecting the Right EDM/PDM Vendor TU 301
Selecting the Right EDM/PDM Vendor TU 301Selecting the Right EDM/PDM Vendor TU 301
Selecting the Right EDM/PDM Vendor TU 301Glen Alleman
 
Reducing Rakuten Ichiba's development lead time - A Pattern Language-
Reducing Rakuten Ichiba's development lead time - A Pattern Language- Reducing Rakuten Ichiba's development lead time - A Pattern Language-
Reducing Rakuten Ichiba's development lead time - A Pattern Language- Takahiro Yamaki
 
Sasidhar_ 5+ yrs_Testing Profile
Sasidhar_ 5+ yrs_Testing ProfileSasidhar_ 5+ yrs_Testing Profile
Sasidhar_ 5+ yrs_Testing ProfileSasidhar Reddy
 
ISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization success
ISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization successISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization success
ISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization successHarold van Heeringen
 
TaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docxTaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docxbradburgess22840
 
TaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docxTaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docxdeanmtaylor1545
 
Project synopsis.
Project synopsis.Project synopsis.
Project synopsis.ssuser3bb83f1
 
Cosmi cjuin sig2018
Cosmi cjuin sig2018Cosmi cjuin sig2018
Cosmi cjuin sig2018Charles Symons
 
Documentation project of college management [1]
Documentation project of college management [1]Documentation project of college management [1]
Documentation project of college management [1]Priyaranjan Verma
 
Kamanja: Driving Business Value through Real-Time Decisioning Solutions
Kamanja: Driving Business Value through Real-Time Decisioning SolutionsKamanja: Driving Business Value through Real-Time Decisioning Solutions
Kamanja: Driving Business Value through Real-Time Decisioning SolutionsGreg Makowski
 

Similar to Measure COSMIC Size of Requirements Automatically (20)

Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...
Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...
Towards Benchmarking User Stories Estimation with COSMIC Function Points-A Ca...
 
Sudheer_SAP_ABAP_Resume
Sudheer_SAP_ABAP_ResumeSudheer_SAP_ABAP_Resume
Sudheer_SAP_ABAP_Resume
 
Certified Business Analytics Specialist (CBAS)
Certified Business Analytics Specialist (CBAS) Certified Business Analytics Specialist (CBAS)
Certified Business Analytics Specialist (CBAS)
 
Karthick_Exp_resume
Karthick_Exp_resumeKarthick_Exp_resume
Karthick_Exp_resume
 
How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...
 
Performance Testing
Performance Testing Performance Testing
Performance Testing
 
Selecting the Right EDM/PDM Vendor TU 301
Selecting the Right EDM/PDM Vendor TU 301Selecting the Right EDM/PDM Vendor TU 301
Selecting the Right EDM/PDM Vendor TU 301
 
Reducing Rakuten Ichiba's development lead time - A Pattern Language-
Reducing Rakuten Ichiba's development lead time - A Pattern Language- Reducing Rakuten Ichiba's development lead time - A Pattern Language-
Reducing Rakuten Ichiba's development lead time - A Pattern Language-
 
QEAD .docx
QEAD                                                        .docxQEAD                                                        .docx
QEAD .docx
 
Sasidhar_ 5+ yrs_Testing Profile
Sasidhar_ 5+ yrs_Testing ProfileSasidhar_ 5+ yrs_Testing Profile
Sasidhar_ 5+ yrs_Testing Profile
 
ISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization success
ISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization successISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization success
ISMA 9 - van Heeringen - Using IFPUG and ISBSG to improve organization success
 
TaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docxTaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docx
 
TaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docxTaskYou are required to prepare for this Assessment Item by1..docx
TaskYou are required to prepare for this Assessment Item by1..docx
 
Six Sigma Project
Six Sigma ProjectSix Sigma Project
Six Sigma Project
 
Project synopsis.
Project synopsis.Project synopsis.
Project synopsis.
 
Cosmi cjuin sig2018
Cosmi cjuin sig2018Cosmi cjuin sig2018
Cosmi cjuin sig2018
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Documentation project of college management [1]
Documentation project of college management [1]Documentation project of college management [1]
Documentation project of college management [1]
 
Kamanja: Driving Business Value through Real-Time Decisioning Solutions
Kamanja: Driving Business Value through Real-Time Decisioning SolutionsKamanja: Driving Business Value through Real-Time Decisioning Solutions
Kamanja: Driving Business Value through Real-Time Decisioning Solutions
 
SADCW_7e_Chapter03.pptx
SADCW_7e_Chapter03.pptxSADCW_7e_Chapter03.pptx
SADCW_7e_Chapter03.pptx
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 

Measure COSMIC Size of Requirements Automatically

  • 1. Copyright (c) 2018 Pentad-SE Ltd Automatic measurement of COSMIC size by syntactical/semantic analysis of text requirements 20/06/2018 1COSMIC-SIG 07/06/2018 Peter Fagg Pentad-SE Ltd md@pentad.co.uk
  • 2. Objectives of this work Copyright (c) 2018 Pentad-SE Ltd20/06/2018 2COSMIC-SIG 07/06/2018 Set the context by explaining briefly the concepts of Natural Language (NL) Explain a type of NL called Controlled Natural Language (CNL) which conforms to a defined syntax, then explain its use to state requirements To explain in more detail the process for formally defining a CNL in a form suitable for automation To demonstrate how two NCLs have been implemented and how a COSMIC functional size may be measured automatically. To describe in outline four implementations of a CNL
  • 3. Natural Language Copyright (c) 2018 Pentad-SE Ltd20/06/2018 3COSMIC-SIG 07/06/2018 ‘Natural Language’ refers to a human language such as English, Russian, German, or Japanese as distinct from a command or programming language which can be understood by a machine It is language that has evolved as a method of communicating between people It is only Natural when used within a community that understands it. e.g. the language used by a doctor to describe a prescription is understandable by a pharmacist who must dispense the prescription, e.g. “2 tab b.i.d. p.c” However, the patient receiving the prescription needs to be told that this means: “2 tablets twice per day after meals”
  • 4. Natural Language Copyright (c) 2018 Pentad-SE Ltd20/06/2018 4COSMIC-SIG 07/06/2018 Fortunately in the field of Requirements Engineering , there is a specific audience, and a generally-understood language for communication. Sometime third parties have to analyse NL so as to understand the meaning and where the information comes from, in many forms and formats and from many sources, in languages that are Natural only to the respective intended listeners or readers. Examples: The NL Processing techniques used to make sense of the body of information gathered are very sophisticated and diverse. Even in this field there are several types of stakeholder, each with its own NL National security services monitor phone calls, texts, e-mails, etc., to detect and intercept possible security threats; Google analyses web search pattern to determine interests so they can target advertising.
  • 5. Requirement Types Copyright (c) 2018 Pentad-SE Ltd20/06/2018 5COSMIC-SIG 07/06/2018 Requirements emerge at various stage of the lifecycle. ISO/IEC 29148 (Requirements Engineering) has defined the type of requirements that can be expected and is illustrated as follows:-
  • 6. Controlled Natural Language Copyright (c) 2018 Pentad-SE Ltd20/06/2018 6COSMIC-SIG 07/06/2018 Even a language directed to a specific audience does not guarantee that statements of requirements are clear and unambiguous. To help overcome that we can use what is called a ‘Controlled Natural Language’. Use of a Controlled Natural Language makes the automatic analysis to understand meaning much easier that if a NL is used.
  • 7. Controlled Natural Language Copyright (c) 2018 Pentad-SE Ltd20/06/2018 7COSMIC-SIG 07/06/2018 A subset of Natural Language where the grammar and vocabulary have been restricted so as to remove or reduce ambiguity and complexity. CNL’s are constructed so as to satisfy two objectives ... • To improve readability, e.g. for non-native speakers by constraining vocabulary and grammar • To enable reliable and automatic analysis of the language Two important concepts to achieve objectives: Syntax and Semantics Syntax concerns the structure and rules of the language. It is referring to grammar and vocabulary, which in a CNL, is constrained Semantics deal with the meaning assigned to the Keywords and Words used by the Syntax.
  • 8. Controlled Natural Language Examples Copyright (c) 2018 Pentad-SE Ltd20/06/2018 8COSMIC-SIG 07/06/2018 I am researching four forms of expressing requirements expressed in CNL Easy Approach to Requirements Analysis (EARS): COSMIC User Story Standard (CUSS) ISO IEC/29148 Requirements Engineering. The Haoues, Sellami, Ben-Abdallah Use Case.
  • 9. Copyright (c) 2018 Pentad-SE Ltd20/06/2018 9COSMIC-SIG 07/06/2018 The structure and content is controlled by Keywords followed by placeholders containing specific information, appearing in a strict order. There is only one requirement per sentence. Requirements are separated by a full stop. Controlled Natural Language EARS
  • 10. Controlled Natural Language CUSS - Cosmic User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 10COSMIC-SIG 07/06/2018 General Form As a <who/role>, I want to <what>, linked to <connections>; so/then be notified about operation status. Example “As a Librarian, I want to register a new book, connected to author and publisher; then be informed about operation status” Keywords and placeholders again, but more punctuation rules. The Comma Semi-Colon and Full-stop have special meaning
  • 11. Controlled Natural Language ISO/IEC 29148 Copyright (c) 2018 Pentad-SE Ltd20/06/2018 11COSMIC-SIG 07/06/2018 Keywords and placeholders and fewer punctuation rules. The Comma and Full-stop have special meaning. The Role of the User is less obvious but it is there.
  • 12. Controlled Natural Language 29148 - Conclusions Copyright (c) 2018 Pentad-SE Ltd20/06/2018 12COSMIC-SIG 07/06/2018 • This is included as it is something I have researched and will definitely progress in due course as it is a good subject for automation. • It is in line with my policy not to invent but to use a ready-made solution, where others are doing the selling and just add value to it. • IS 29148 will be issued shortly, there must be an audience for it. It would be good for COSMIC to be ready for it.
  • 13. Haoues, Sellami, Ben-Abdallah Copyright (c) 2018 Pentad-SE Ltd20/06/2018 13COSMIC-SIG 07/06/2018 A paper in 2017 by M. Haoues, A. Sellami, and H. Ben-Abdallah proposes a format for Use Cases based on a limited form of Markup. Markup involves using tags of different kinds to identify the different elements of the statement. For example the Use Case header has the following information Number:<unique ID assigned to a use case> Name:<unique name assigned to a use case> Level:<level of use case description> Description:<a summary of use case purpose> Actors:<Primary actor: actor that initiates the use case> <Secondary actor: actor that participates within the use case>
  • 14. Haoues, Sellami, Ben-Abdallah Copyright (c) 2018 Pentad-SE Ltd20/06/2018 14COSMIC-SIG 07/06/2018 Pre-condition:<a list of conditions that must be true to initialize the use case> Post-condition (success):<state of the system if goal is achieved> Post-condition (failure):<state of the system if goal is abandoned> Relationship [Include:<use cases in relation with this use case by "include">, Extend:<use cases in relation with this use case by "extend">, Super use case:<list of subordinate use cases of this use case>, Sub use case: <list of all use cases that specialize this use case>] Begin MS /* Main scenario */ <Steps of the scenario from trigger to goal> Begin <NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist, Expletive, Response, DataRecovery><Action Description> [<Int-Parameter>] [<Out-Parameter>] End AS /* Alternative scenario */ Begin<Event, begin at Num "action number"> <NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist, Expletive, Response, DataRecovery><Action Description> [<Int-Parameter>] [<Out-Parameter>] The main scenario back to NUM End ES /* Error scenario */ Begin<Event, begin at Num "action number"> <NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist, Expletive, Response, DataRecovery><Action Description> [<Int-Parameter>] [<Out-Parameter>] End End Use Case
  • 15. Apply these ideas to the ‘Resto-Sys’ case study Copyright (c) 2018 Pentad-SE Ltd20/06/2018 15COSMIC-SIG 07/06/2018 Add an Order 1. when the waiter logged on, the list of restaurant options is displayed 2. The waiter presses the option “Add a new order” 3. The system displays the list of tables 4. The waiter chooses the table where the customer is installed. The system changes the order state from active to closed 5. The system displays the list of item families 6. The waiter chooses the item families based on the items requested by the customer 7. The system displays the list of items according to the selected Item families 8. The waiter selects the items requested by the customer and specify for each item the recommended quantity and customer's comment. The system creates a new order COSMIC Case Study – Sizing Natural Language/Use Case uses Resto-Sys as its case study. (Downloadable from Cosmic Website) An example case is ...
  • 16. Resto-Sys Copyright (c) 2018 Pentad-SE Ltd20/06/2018 16COSMIC-SIG 07/06/2018 Add an Order Begin 1. <System><Expletive><when the waiter logged on, the list of restaurant options is displayed>. 2. <Waiter><Request><The waiter presses the option “Add a new order”> [<Order Data>]. 3. <System><Response & Request &Response ><The system displays the list of tables> [<Order Data>] & [<Table Data>&<Table Data>]. 4. <Waiter><Request & Response><The waiter chooses the table where the customer is installed. The system changes the order state from active to closed > [<Table ID>&<Table ID>]. /*If a new order for the same table is entered, the previous order (if any) should be closed. In this case, there is always at most one order ‘active’)*/ 5. <System><Request & Response><The system displays the list of item families> [<Item family data>&<Item family data>]. 6. <Waiter><Request & Response><The waiter chooses the item families based on the items requested by the customer> [<Item family ID>&<Item familyID>]. 7. <System><Request & Response><The system displays the list of items according to the selected Item families> [<Item Data>&<Item Data>]. 8. <Waiter><Request& Response><The waiter selects the items requested by the customer and specify for each item the recommended quantity and customer's comment. The system creates a new order> [<Order Items>] & [<Order Items>]. End
  • 17. Resto-Sys Copyright (c) 2018 Pentad-SE Ltd20/06/2018 17COSMIC-SIG 07/06/2018 Add an Order Begin 1. <System><Expletive><when the waiter logged on, the list of restaurant options is displayed>. 2. <Waiter><Request><The waiter presses the option “Add a new order”> [<Order Data>]. 3. <System><Response & Request &Response ><The system displays the list of tables> [<Order Data>] & [<Table Data>&<Table Data>]. 4. <Waiter><Request & Response><The waiter chooses the table where the customer is installed. The system changes the order state from active to closed > [<Table ID>&<Table ID>]. /*If a new order for the same table is entered, the previous order (if any) should be closed. In this case, there is always at most one order ‘active’)*/ 5. <System><Request & Response><The system displays the list of item families> [<Item family data>&<Item family data>]. 6. <Waiter><Request & Response><The waiter chooses the item families based on the items requested by the customer> [<Item family ID>&<Item familyID>]. 7. <System><Request & Response><The system displays the list of items according to the selected Item families> [<Item Data>&<Item Data>]. 8. <Waiter><Request& Response><The waiter selects the items requested by the customer and specify for each item the recommended quantity and customer's comment. The system creates a new order> [<Order Items>] & [<Order Items>]. End
  • 18. Resto-Sys – Conclusion (1) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 18COSMIC-SIG 07/06/2018 The addition of Markup adds greatly to the burden of expressing stories. Will requirements writers do this? Given that the benefit will be perceived as of value only to the measurement community, it could be hard to sell. Markup also reduces readability for those who are not trained in the language. I see it is as intermediate language, translating from plain to structured text in a form to enable automation. I have automated the measurement of size of requirements expressed as Markup languages in another domain, so I am sure it can be done in this case, but it is not a priority for me. This is just an illustration of the extra information that needs to be added when a Markup approach is adopted, and the structure that has to be imposed to be able to make it machine readable. It is included here to draw attention to other approaches in this field of automation using COSMIC
  • 19. Resto-Sys – Conclusion (2) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 19COSMIC-SIG 07/06/2018 The authors of the paper indicate a software tool may be developed and perhaps demonstrated at the next IWSM in China. It will be interesting to see how it deals with semantics. Note however, this problem of dealing with the semantics is not unique to Markup. It is common to any other method of size measurement automation.
  • 20. EARS and CUSS The EARS approach relies on sentence structure, Keywords, Placeholders and Vocabulary. The result is both Human and machine readable. The CUSS approach is the same , but in addition it uses punctuation marks with specific meanings, so is more complicated. These will now be explained in more detail
  • 21. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 21COSMIC-SIG 07/06/2018 EARS was originally devised for specifying REAL-Time systems in Marvin et al at Rolls Royce. There is an active EARS community. The first International Conference and Workshop is in Banff in August, co-resident with IEEE conferences My main motivation for using EARS is to apply COSMIC to measure size of Real Time systems specified using EARS. I am working on specifying three case studies (an Elevator, the Rice Cooker and a Liquid Mixing system) in EARS for training and demonstration purposes To make it applicable to business systems, I have also compiled a Vocabulary specific to the Data Rich Domain. The syntax/vocabulary combination is called EARS-FSM, and this part of the presentation describes how the EARS-FSM syntax/vocabulary is defined. The same definition process is applied to EARS and CUSS. 29148 and marked-up Use Case are not discussed further here.
  • 22. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 22COSMIC-SIG 07/06/2018 The EARS Syntax comprises 5 basic boilerplates called Event Driven, Ubiquitous, State Driven, Conditional and Complex. Any statement of requirement can be expressed using a combination of these Boilerplates. The term “Boilerplate” is used because that is the language of this community. It is simply another word for Template The Complex boilerplate is simply a container for combinations of the other four. The process of defining any boilerplate is additive in that a Boilerplate item itself can in turn require another Boilerplate to define it. The full set of EARS-FSM Boilerplates has been completed and will be made available for download for those interested in knowing more. For this presentation, the Event Driven boilerplate is described in detail in order to explain the process. The other boilerplates are defined in outline.
  • 23. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 23COSMIC-SIG 07/06/2018 General Form WHEN <optional preconditions> <trigger> the<system name> shall <system response> Event Driven An event-driven requirement is initiated only when a triggering event is detected at the system boundary. The keyword When is used for event-driven requirements. EBNF event-driven ::= 'WHEN' precondition+ Trigger 'the' SystemName 'shall' SystemResponse Railroad Diagram
  • 24. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 24COSMIC-SIG 07/06/2018 When. A keyword to indicate the type of pattern Precondition. Optional. Condition bounded by IF .. THEN Trigger. The task the User requires the system to perform followed by the Username. The set of values for the Trigger is defined in the Vocabulary Event Driven
  • 25. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 25COSMIC-SIG 07/06/2018 The Keyword indication start of the system name SystemName. The system or application performing the task Shall Keyword indicating the start of the mandatory System Response SystemResponse. What the system does in response to the task it has been requested to perform by the User. The values for SystemResponse is a set of domain-dependent Keywords, each Keyword is further defined using its own EBNF. Event Driven
  • 26. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 26COSMIC-SIG 07/06/2018 SystemResponse The SystemResponse can take the value of any Word defined in the Vocabulary. The Words are domain specific and represent what the software is required to do. In the case of the Data Rich domain, the Words are the familiar extended CRUD EBNF and Railroad Diagram SystemResponse ::= (get|put|create|update|view|delete|list|request |send)
  • 27. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 27COSMIC-SIG 07/06/2018 Get Primary purpose is recover an object from persistent storage for processing EBNF and Railroad get ::= 'get' ObjectName ('selector' ( ',' attribute)* )?
  • 28. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 28COSMIC-SIG 07/06/2018 Get: the Keyword ObjectName: The subject of the get, i.e. where information about the object is stored Selector: where applicable, the selection criteria Attribute: the set of attributes describing the Object to be retrieved
  • 29. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 29COSMIC-SIG 07/06/2018 Ubiquitous A ubiquitous requirement has no preconditions or trigger. It is not invoked by an event detected at the system boundary or in response to a defined system state, but is always active. EBNF and Railroad Ubiquitous ::= 'the' SystemName 'shall' SystemResponse
  • 30. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 30COSMIC-SIG 07/06/2018 Unwanted Behaviour or Conditional “Unwanted behaviour” is a general term used to cover all situations that are undesirable. A “Conditional” state is only performed when the pre-condition is satisfied General Form IF <optional preconditions> <trigger>, THEN the <system name> shall <system response> EBNF and Railroad Unwanted ::= 'if' Precondition+ Trigger 'then' 'the' SystemName 'shall' SystemResponse
  • 31. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 31COSMIC-SIG 07/06/2018 Placeholder = Trigger EBNF and Railroad Trigger ::= (enters| requests)
  • 32. EARS-FSM Copyright (c) 2018 Pentad-SE Ltd20/06/2018 32COSMIC-SIG 07/06/2018 State-driven A state-driven requirement is active while the system is in a defined state. The keyword While is used to denote state-driven requirements. General Form WHILE <in a specific state> the <system name> shall <system response> EBNF and Railroad stateDriven ::= 'WHILE' state 'the' SystemName 'shall' SystemResponse
  • 33. EARS – Conclusions (1) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 33COSMIC-SIG 07/06/2018 • EARS is already used in the Real Time world. My research shows it can be adapted for Data Rich domain, however the adaptation had to be formally specified. The slides illustrate what was done to achieve this. The result is called EARS-FSM. • The full EARS-FSM Specification is complete in draft form. This will be completed shortly. It will be downloadable from the VisualFSM website and will be offered for download from the Cosmic website • As proof of concept, the EARS-FSM Specification has been successfully implemented in a software tool called VisualFSM Autosize Workbench. This takes an EARS-FSM conformant set of requirements, and automatically measures and documents them. • A free Community Edition of the software is in final preparation for release Please see http://www.VisualFSM.com/cosmicautosize.asp.
  • 34. EARS – Conclusions (2) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 34COSMIC-SIG 07/06/2018 • This experience of implementation showed that It is reasonably straight-forward to implement the EARS-FSM syntax and that the Semantic rules are easily derived. The reason for this is the use of a CNL constrains the Syntax and Vocabulary used making it easier for a parser to extract meaning – E.g. the parser assumes the EARS reserved-word ‘show’ indicates the start of an Exit’ statement ; reserved-word ‘enters’ indicates the start of an ‘Entry’ statement • The EARS for Real Time (EARS-FSM-RT) is being specified and a module will be added to the Workbench and an update will be made available.
  • 35. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 35COSMIC-SIG 07/06/2018 • current requirements specification techniques used in agile software development are customer-oriented and, from the developers point of view, have proven to be insufficient • there is more information from the customer point of view, written in a too-high level, than from the developers perspective, with some implementation details. Miguel Ecar, Fabio Kepler, and Jo˜ao Pablo S. da Silva published a paper in May 2018, available from the COSMIC website in which they conclude: They present a template that captures more information than a normal User Story. They call this the COSMIC User Story Standard (CUSS).
  • 36. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 36COSMIC-SIG 07/06/2018 The CUSS template is the following: “As a <who/role>, I want to <what>, linked to <connections>; so/then be notified about operation status.” where: – <who/role> is the Functional User – <what> is the verb that represents the action or the functional process – <connections> represents other data groups involved in this functional process – “so/then be notified about operation status” is optional statement and represents the functional user feedback.
  • 37. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 37COSMIC-SIG 07/06/2018 US -> AS USER I DOT | AS USER I L DOT | AS USER I FEED DOT | AS USER I L FEED DOT I -> IWANT METHOD DG L -> LINK PLINK | LINK PLINK SLINK TLINK | LINK PLINK TLINK AS -> As a | As an | As the IWANT -> COMMA I want to | | COMMA, i can LINK -> COMMA connected to FEED -> SEMICOLON so | SEMICOLON i can FBACK -> FEED be informed about operational status STRUCTURE and SYNTAX
  • 38. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 38COSMIC-SIG 07/06/2018 PLINK -> DG SLINK -> COMMA PLINK | COMMA PLINK SLINK TLINK => and DG DOT -> . COMMA -> , SEMICOLON -> ; USER -> <;ist of roles> METHOD -> <list of verbs/actions> DG -> list of data groups STRUCTURE and SYNTAX
  • 39. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 39COSMIC-SIG 07/06/2018 – As a Manager, I want to remove a book. – As a user, I can update books; so be notified about operation status. – As a Manager, I want to add a new book, connected to author. – As the Manager, I want to save books, connected to author and publishing company. – As a Manager, I want to create books, connected to author and publishing company; then be notified about operation status. Examples
  • 40. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 40COSMIC-SIG 07/06/2018 CUSS “As a <who/role>, I want to <what>, linked to <connections>; so/then be notified about operation status.” EBNF and Railroad CUSS ::= "as a" role "i want to" action ("so"|"then") "be notified about" state
  • 41. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 41COSMIC-SIG 07/06/2018 EBNF As ::= 'as a' | 'as an' | 'as the' Keyword AS
  • 42. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 42COSMIC-SIG 07/06/2018 EBNF role ::= ("user"|"manager"|"operator") Placeholder Who/Role
  • 43. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 43COSMIC-SIG 07/06/2018 EBNF action ::= (register|create|update|list|send) Placeholder Action
  • 44. CUSS – COSMIC User Story Standard Copyright (c) 2018 Pentad-SE Ltd20/06/2018 44COSMIC-SIG 07/06/2018 EBNF state ::= (status|any) Placeholder State
  • 45. CUSS - Conclusions Copyright (c) 2018 Pentad-SE Ltd20/06/2018 45COSMIC-SIG 07/06/2018 CUSS is an extension to the traditional User Story designed to replace the human consensus approach used in Agile (planning poker etc) The additional information required by CUSS better reflects the intent of the function better than traditional User Story conventions so less expert opinion is involved. CUSS is still missing detail required for measurement and the remaining semantics have to be assumed using expert opinion. If you change the experts, the result may change due to different semantic interpretation by individuals. If the Syntactical and Semantic analysis of the same input are automated using CUSS it would result in a repeatable result. Although the semantic element is still subject to expert opinion, as it is embedded, it is repeatable reflecting the opinion of the original experts. A tool with a different Semantic element may yield a different result. You need to understand the Semantics embedded in the tool to be able to evaluate its usefulness for the purpose.
  • 46. Implementation Copyright (c) 2018 Pentad-SE Ltd20/06/2018 46COSMIC-SIG 07/06/2018 The final step is to consider Semantics. The Syntax imposes a structure, whereas the Vocabulary constrains the Keywords and Words that can be used. Semantic analysis makes sense of the whole. The Syntax and Semantic rules have been successfully implemented in a software tool I use for research purposes called VisualFSM Autosize-WB which I use for research EARS/CUSS/etc Measurement Model Autosize Syntax Semantic Syntax Model DMSD (size aCFP) It takes in “well formed” requirements, performs Syntactical analysis to break out the Syntax Model, then performs Semantic analysis to calculate the size.
  • 47. VisualFSM-Autosize-WB Copyright (c) 2018 Pentad-SE Ltd20/06/2018 47COSMIC-SIG 07/06/2018 EARS Analysis. Text to Data Movement Sequence Diagram
  • 48. Conclusions (1) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 48COSMIC-SIG 07/06/2018 CUSS. The survey approach of gaining consensus of experts is only valid when a group of local experts is used. The result is not transportable. CUSS overcomes this by reducing the need for expert opinion by defining a syntax and requiring more detail . The syntax itself uses punctuation marks to convey meaning, this could be difficult to enforce. CUSS itself used the survey technique to evaluate the effectiveness of the syntax by inviting expert opinion as the size of a set of CUSS requirements. The semantics embedded in the proposed tool will depend on expert opinion. As User Stories are used early in the life cycle where detail may be missing, CUSS yields a more useful and repeatable result then wholly expert opinion. Users should just be aware that the subjective element is still there. This is to be expected given the information available
  • 49. Conclusions (2) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 49COSMIC-SIG 07/06/2018 EARS. the additional detail it contains compared to User Stories and CUSS yields a result closer to the actual size. The semantic element still relies on expert opinion but to a lesser extent because a Data Movement can be derived directly from a statement with fewer assumptions. The one sentence/one statement enforces the one object – one subject approach which is accepted best practice. The ability to combine several different statements means more complete and complex requirements can be defined. The need for subjective assessment by human experts of what might be expected to happen, due to lack of detail, is very much reduced. The attention to detail in the EARS syntax for RT applications came about because of the need to specify more clearly due to the consequence of error. Business systems should really adopt the same approach and avoid the consequences, which in this case is rework due to lack of clarity. EARS-FSM is one way of enforcing this. IMO!!!
  • 50. Conclusions (2) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 50COSMIC-SIG 07/06/2018 IS 29148 Given that it is an International Standard, it is worth giving it some serious consideration I have done some preliminary work on the formal Specification of the Syntax using the same method as for EARS and CUSS. From that work I am sure it can be automated . It uses the same strategy as EARS so I expect it to involve minor changes to adapt to the different Syntax and hopefully minimal changes to the Semantic analysis. A Module will be added to VisualFSM Autosize-WB in due course
  • 51. Conclusions (3) Copyright (c) 2018 Pentad-SE Ltd20/06/2018 51COSMIC-SIG 07/06/2018 Finally •CUSS can be used very early •EARS when more information is available (or required by contract) •29148 same as EARS but being an International Standard it could have more exposure •actual measurement of size when all is known which can be used to validate and improve the automation results Each can be automated and will yield a result that is better than the consensus of Expert opinion. Which approach to use depends on the purpose and when the information becomes available Primarily it depends on the motivation for people to do it
  • 52. Thank You Copyright (c) 2018 Pentad-SE Ltd20/06/2018 52COSMIC-SIG 07/06/2018 Questions What is EBNF? See slide (A1) which follows for a brief overview How do I read a Railroad Diagram? See slide (A2) that follows for a brief overview
  • 53. (A1) -Extended Backus Naur Form Copyright (c) 2018 Pentad-SE Ltd20/06/2018 53COSMIC-SIG 07/06/2018 EBNF is a formal mathematical way to describe a language. I use it to define the syntax because it is relatively easy to parse elements of the statement described in this way. It is too big a subject to cover in a few minutes but a simple example will give an insight. Characters, symbols, quotes, punctuation and brackets have specific meanings: Consider the definition of the Get statement: get ::= 'get' ObjectName ('selector' ( ‘,' attribute)* )? the GET statement is started by the keyword ‘get’ followed by the name of the object. The opening and closing bracket () define a group and the final ? means it is optional. ‘selector’ is a keyword followed by a group of attributes to filter the selection; the * means it is a repeating group; the “,” means the attributes are separated by a comma. From this simple explanation you can imagine it is far easier to parse the EBNF I have used Extended Backus-Naur Form (EBNF) to define Syntax in previous slides.
  • 54. (A2) Railroad Diagram Copyright (c) 2018 Pentad-SE Ltd20/06/2018 54COSMIC-SIG 07/06/2018 A Railroad Diagram (RRD) is a way of visualizing the processing paths of a program, so-called because it is similar to moving carriages in a railway siding, following all possible paths, left to right, to the destination. Consider the GET Statement again get ::= 'get' ObjectName ('selector' ( ‘,' attribute)* )? Submitting this the Railroad Diagram generator we get Reading left to right, follow the lines; these are processing paths. Where the lines loop back, as before Attribute, it means go round until all attributes are processed. The combination of EBNF and RRD defines the structure of the parser required to process the get statement. A parser is required for each statement To supplement the EBNF statements, I use RRDs to validate the EBNF: the Diagram Utility I use takes EBNF as input and outputs the RRD.

Editor's Notes

  1. The thing to look out for is to ensure you measure the problem, not the solution
  2. This is the Conversation part of the 3Cs
  3. The reason for stating the Keywords to be able to assign it to one of the COSMIC sub-processes
  4. We will not describe the process – it is the same
  5. It is not the fact that is written from the customer Point Of View. FUR are defined as the services delivered to the User, and COSMIC measurement is from the user Point of View. User Requirements The real problem is that to do a full COSMIC measurement more information is required than is contained in a Traditional User Story, What CUSS does is to a requirement to provide more information. The Cosmic Community would benefit, as would the Agile community, but there is a question mark over whether they would do it.
  6. It is not the fact that is written from the customer Point Of View. FUR are defined as the services delivered to the User, and COSMIC measurement is from the user Point of View. User Requirements The real problem is that to do a full COSMIC measurement more information is required than is contained in a Traditional User Story, What CUSS does is to a requirement to provide more information. The Cosmic Community would benefit, as would the Agile community, but there is a question mark over whether they would do it.
  7. It is not the fact that is written from the customer Point Of View. FUR are defined as the services delivered to the User, and COSMIC measurement is from the user Point of View. User Requirements The real problem is that to do a full COSMIC measurement more information is required than is contained in a Traditional User Story, What CUSS does is to a requirement to provide more information. The Cosmic Community would benefit, as would the Agile community, but there is a question mark over whether they would do it.
  8. The reason for steing the Keywords to to be able to