32
Requirements Modelling and Software Systems Implementation Using Formal Languages Radek Koˇ ı Brno University of Technology, Faculty of Information Technology Czech Republic koci@fit.vutbr.cz ICSEA 2018, 15.-18.10.2018, Nice, France

Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Requirements Modelling andSoftware Systems Implementation

Using Formal Languages

Radek KocıBrno University of Technology, Faculty of Information Technology

Czech Republic

[email protected]

ICSEA 2018, 15.-18.10.2018, Nice, France

Page 2: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Outline

Software and Software Engineering

Requirements Specification

Formal Methods

Model Driven Engineering

Simulation Driven Development with Petri Nets

Requirements Modelling and Software Systems Implementation Using Formal Languages 2 / 32

Page 3: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Software

What is software (system)• requirement specification• design specification• source codes including comments• executable programs• reference/operation manuals• validation/verification documents• . . .

Software• is a set of documents• its properties are described with informal / semi-formal /

formal languages• how to validate documents against user’s real needs?

Requirements Modelling and Software Systems Implementation Using Formal Languages 3 / 32

Page 4: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Software Engineering

• other engineering (mechanical, . . . ) handles alreadyestablished problem domains

• software engineering should handle any problem domain• modeling, formalization and analyses of problem domains

are major tasks⇒ domain / requirements engineering

Software engineering

• is an discipline for studying methods to translate problemdomain, i.e., semantics, into machine domain, i.e., forms

• how to validate that forms against user’s real needs?

Requirements Modelling and Software Systems Implementation Using Formal Languages 4 / 32

Page 5: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Requirements Specification

What can be used to requirements specification• unrestricted natural languages• structured natural languages• semi-formal specification languages• formal specification languages

User Requirements (needs)

• the initial user requirements are always informal• it is not possible to prove that any specification satisfies user

requirements (needs) – only the user can say• requirements specification has to be clear and readable

for users

Requirements Modelling and Software Systems Implementation Using Formal Languages 5 / 32

Page 6: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Informal Requirements Specification

Informal specification• described in natural languages with diagrams or pictures• has no limits in the expressions used and usually does not

require special preparation• on the other hand, it is prone to vague expressions,

ambiguities, and unmeasurable statements (difficult toevaluate accuracy)

Predefined expression patterns• simplify the creation of requirements using standardized

form of statements• simpler document passage, fulfillment criteria, etc.

Requirements Modelling and Software Systems Implementation Using Formal Languages 6 / 32

Page 7: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Informal Requirements Specification

Decision tables• the original claim is divided into a set of conditions• it is possible to examine behavior in all variants• a set of simple claims that eliminates ambiguous

understanding

Inp. cond. Train accepts an acceleration command Y Y YThe train passes the signal too fast Y Y NThe previous train is closer than X meters Y N Y

Outp. cond. Braking activated. X XA station alarm is generated. X X X

Requirements Modelling and Software Systems Implementation Using Formal Languages 7 / 32

Page 8: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Semi-formal Requirements Specification

Semi-formal languages• replacement for natural language or its supplementation• usually captured in a form of schemes or diagrams

(diagrammatic notation)• semi-formal: elements of systems and their relationships are

declared formally, but the statements describing theirproperties may be specified informally (structured naturallanguage)

• syntax and semantics of elements are formally defined, it isenabled automatic processing the specification(consistency checking, partially transformations etc.)

• system properties are described informally, the fullanalysis/simulation/transformation not allowed

Requirements Modelling and Software Systems Implementation Using Formal Languages 8 / 32

Page 9: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Semi-formal Requirements Specification

Semi-formal models• Entity-Relationship Diagram• Use Case Diagram• Interaction Diagram• Statecharts (State Diagram)

Requirements Modelling and Software Systems Implementation Using Formal Languages 9 / 32

Page 10: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Formal methods

Formal specification• predefined rules for determining the meaning of

specifications• written in formal languages• supported by tools

⇒ enable rigorous software development

Formal description

• specifying requirements and desired properties• modeling internal behavior• the description is typically at certain level of abstraction• precise, consistent and unambiguous

Requirements Modelling and Software Systems Implementation Using Formal Languages 10 / 32

Page 11: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Formal languages

Formal languages• algebraic specification techniques (CASL)• rewriting systems (OBJ3)• Model-oriented languages (Z, VDM)• UML + OCL; MOF + Alf language• Petri nets• logics• . . .

Requirements Modelling and Software Systems Implementation Using Formal Languages 11 / 32

Page 12: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Formal methods

Formal specification• formal specification let designers use abstractions and

reducing the conceptual complexity of the system underdevelopment

• formal specification formalizes the statements describingelement properties

• precise formulation of statements permits machinemanipulation

• a more sophisticated form of validation and verificationthat can be automated using tools

• the specification may be mechanically transformed intoanother one, more detailed than its predecessor, and,eventually, into executable program

Requirements Modelling and Software Systems Implementation Using Formal Languages 12 / 32

Page 13: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Formal methods

Formalization properties• formal methods can be beneficial even if no formal

verification is used at all – since since the rigorousspecification is required the designer has to do the jobmore thoroughly, reaches a better understanding of theproblem and it leads to better solution

• can be difficult to understand not only for users but also fordevelopers

• a formally verified program is only as good as itsspecification

• it is very easy to create a wrong specification that does notmeet the user needs (requirements)

Requirements Modelling and Software Systems Implementation Using Formal Languages 13 / 32

Page 14: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Formal methods

Formal methods properties

• The greatest benefit in applying formal methods oftencomes from the process of formalization rather than from itsoutcomes.

• Formal methods do not guarantee correctness.• Can be difficult to understand not only for users but also for

developers.• How to demonstrate that the specification meets the user

needs?

Requirements Modelling and Software Systems Implementation Using Formal Languages 14 / 32

Page 15: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Formal methods

Summary• How to validate documents/formalized documents against

user’s real needs?• only the user can say• a combination of the formal notation and prototyping

• Formal methods can be difficult to understand• requirements specification has to be clear and

comphrehensible to users as well as developers• a possibility of formal notation as well as graphical modeling

⇒ formal models that can be simulated, graphicallyrepresented, and formally processed

Requirements Modelling and Software Systems Implementation Using Formal Languages 15 / 32

Page 16: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Model Driven Development

Principle• the essential outputs of the development process are

models instead of the program• the program (code) should be (automatically) generated

from models• it is possible to highlight some aspects of the developed

system without having to deal with the implementationdetails

• different levels of abstraction

Requirements Modelling and Software Systems Implementation Using Formal Languages 16 / 32

Page 17: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Model Driven Development

Model Driven Architecture as an implementation of MDE• different levels of abstraction

• Computation Independent Model (CIM) – the businessrequirements for the system

• Platform Independent Model (PIM) – describes softwarefunctions and is independent of realization details

• Platform Specific Model (PSM) – is combined with technicaldetails of platform for realizing system

• used models• use case diagrams• class diagrams• statecharts• activity diagrams

Requirements Modelling and Software Systems Implementation Using Formal Languages 17 / 32

Page 18: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Model Driven Development

Transformation• the lower the abstraction (the closer to the design), the

transformation mechanisms are more sophisticated• Can CIM be formal models? Is it possible to automate the

CIM-PIM transformation?• Is it possible to change model and propagate changes to

higer abstraction models?

Requirements Modelling and Software Systems Implementation Using Formal Languages 18 / 32

Page 19: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Simulation Driven Development

Motivation• reduce the gap between real needs and specified needs

to sofware system under development• combination of semi-formal and formal models• formal and executable models showing a sketch of the

system to help visualize what the system will do

Model continuity• elimination of the overhead caused by creating models at

different level of abstraction• continuous incremental development of models• models can work in live system• no need of implementation or code generation

Requirements Modelling and Software Systems Implementation Using Formal Languages 19 / 32

Page 20: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Simulation Driven Development

Essential parts of the systems are presented through simulation(formal) models

• requirements model = CIM• system model = PIM + PSM

Requirements model System model System implementation

use-cases

use-case

realization

simulationsimulation

behavior

structuresource

code

other

components

Requirements Modelling and Software Systems Implementation Using Formal Languages 20 / 32

Page 21: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Simulation Driven Development

Principle• Domain model – captures the concepts of the domain

system as identified and understood• Behavioral model – captures an external view of system

functionality, its behavior, and interaction with thesurroundings

• User requirements modeling – use cases• Scenario modeling – behavior and interactions of individual

cases

• Design model – sophisticated domain and behavioralmodels, more details

Requirements Modelling and Software Systems Implementation Using Formal Languages 21 / 32

Page 22: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Simulation Driven Development

Requirements Modelling and Software Systems Implementation Using Formal Languages 22 / 32

Page 23: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Simulation Driven Development

Principle (cont.)• Scenarios at the behavior level coincide with scenarios at

the design level and are no longer distinguished.• Continual development of behavior models becomes

design models, which serve simultaneously for specificationpurposes.

• Design models can contain other objects from the domainenvironment to simulate the system or run under real-worldconditions without having to show this implementationdetails at the requirements or behavior model.

• The same model can therefore be used for bothdocumentation requirements and the executable version(prototype, implementation) of the developed system.

Requirements Modelling and Software Systems Implementation Using Formal Languages 23 / 32

Page 24: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Requirements and System Modeling

Use Case• it models a sequence of interaction between actors and

the system (=scenario)• there is a main sequence, which can be supplemented by

alternative sequences for less commonly used interactions

Formalism of OOPN (Object-Oriented Petri Nets)⇒ clear formal syntax⇒ clear semantics⇒ usable by developers having no power mathematical

backgroud⇒ Petri nets are also a simulation model⇒ Petri nets can be executed in real environment

⇒ models scenarios of use case diagram elements⇒ the behavior description can contain parts of code (prg.

language)Requirements Modelling and Software Systems Implementation Using Formal Languages 24 / 32

Page 25: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Identification of elements

Identification of model elements from the use case model• use case ⇒ activity net• actor ⇒ role• more actors can have the same basis ⇒ subject

Requirements Modelling and Software Systems Implementation Using Formal Languages 25 / 32

Page 26: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Use Case Modeling

A simplified example of a robot control system• the use case model and• identification of roles and activities.

Requirements Modelling and Software Systems Implementation Using Formal Languages 26 / 32

Page 27: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Behavior Modeling• actor Robot ⇒ role Robot• use case Execute Scenario ⇒ activity net Scenario

walking

r isCloseToObstacle.

t1

r stop. r turnRight.

r

r

p1

r isCloseToObstacle.

t2

r turnRight.

r

r isCloseToObstacle.

t3

r turnRight.

r isClearRoad.

t11

r

r isCloseToObstacle.

t4 blocked

r isClearRoad.

t12

r isClearRoad.

t13

r

r

r

r go.

r go.

r go.

r

p2

r

r

r

p3

r

r

r

Execute Scenario

Robot

subject

self delay: 10

d := r getDistance.

100

isCloseToObstacle

distanceToObstacle

d <= 10.d

d

isClearRoad

d > 10.

r

d

oldD

p1

p2

t1

t2

Role Robot Activity net Scenario

Requirements Modelling and Software Systems Implementation Using Formal Languages 27 / 32

Page 28: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

System Development

Role Robot uses a subject, which can be defined in differentways

• modelled by OOPN, statecharts, . . .• implemented in a programming language

subject

self delay: 10

d := r getDistance.

100

isCloseToObstacle

distanceToObstacle

d <= 10.d

d

isClearRoad

d > 10.

r

d

oldD

p1

p2

t1

t2

Requirements Modelling and Software Systems Implementation Using Formal Languages 28 / 32

Page 29: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

System Development – DEVS Architecture

• second way of components connection• message passing ⇒ data carrying through ports• looser links between components ⇒ easier changing of

components• no dependence on a component realization (methods,

predicates, . . . )

answer

self delay: 10

100

isCloseToObstacle

distanceToObstacle

d <= 10.d

d

isClearRoad

d > 10.

(#distance, d)

d

oldD

#getDistance

request

p1

t1

t2

Requirements Modelling and Software Systems Implementation Using Formal Languages 29 / 32

Page 30: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Conclusion

We have set several conditions the formalism has to satisfy to besuitable for requirements modeling and realization

• formal notation – an unambiguity of the specification

• a possibility to validate specification against real needsusing prototyping or simulation

• specification has to be comphrehensible to users as well asdevelopers; graphical modeling allowed

• a possibility to keep models during entire developmentprocess

Requirements Modelling and Software Systems Implementation Using Formal Languages 30 / 32

Page 31: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

Conclusion

We have set several conditions the formalism has to satisfy to besuitable for requirements modeling and realization

• formal notation – an unambiguity of the specification• OOPN, DEVS

• a possibility to validate specification against real needsusing prototyping or simulation

• OOPN, DEVS combining with product objects

• specification has to be comphrehensible to users as well asdevelopers; graphical modeling allowed

• OOPN, DEVS combining with use cases, classes, . . .

• a possibility to keep models during entire developmentprocess

• OOPN, DEVS combining with use cases

Requirements Modelling and Software Systems Implementation Using Formal Languages 31 / 32

Page 32: Requirements Modelling and Software Systems Implementation ... · What is software (system) requirement specification design specification ... simplify the creation of requirements

[plain]

Thank you for your attention!