Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software...

28
1 / 28 Harmony: An Approach and Tool Harmony: An Approach and Tool for Combining Semi-formal and for Combining Semi-formal and Formal Notations in Software Formal Notations in Software Specification Specification CS 791z Topics on Software Engineering Instructor’s Research April 19, 2004

description

Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification. CS 791z Topics on Software Engineering Instructor’s Research April 19, 2004. Outline. Context A Procedural Frame The Harmony Tool Conclusions. Context: The Harmony Project. - PowerPoint PPT Presentation

Transcript of Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software...

Page 1: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

1 / 28

Harmony: An Approach and Tool for Harmony: An Approach and Tool for Combining Semi-formal and Formal Combining Semi-formal and Formal Notations in Software SpecificationNotations in Software Specification

CS 791z Topics on Software Engineering

Instructor’s Research

April 19, 2004

Page 2: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

2 / 28

Outline

Context A Procedural Frame The Harmony Tool Conclusions

Page 3: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

3 / 28

Context: The Harmony Project

Proposal of an approach for specifying time- constrained systems (TCS) based on the combined use of UML (graphical, semi-formal notation) and Z++ (formal notation)

Topic placed at the confluence of three paradigms: object-orientation formal specification visual representation

Page 4: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

4 / 28

Context: Why Integrate?

Combine benefitsGraphical notations easy to useFormal methods precise

Different aspects of the system need different ways of description

Provide choices

Page 5: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

5 / 28

Context: Research Space and Location

  

RTnonRT

formal

non OO OO

Z

Topic location: * formal, employing an OOZ variant

* OO development, UML-based* RT modelling capability

UML

formal

OOZ

Page 6: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

6 / 28

Strategies for Integration

Integration of notations: Semi-formal/Formal Semi-formal/Semi-formal Formal/Formal

Types of semi-formal/formal integrations: Derivation or (simple) formalization Complementary formalization Tight integration, involving two-way translations

Page 7: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

7 / 28

Related WorkRelated Work

Similar approaches:Similar approaches: Jia’s AMLJia’s AML Noe and Hartrum’s extension of Rational Rose Noe and Hartrum’s extension of Rational Rose France et al.’s blending of Octopus and Z France et al.’s blending of Octopus and Z Headway System’s RoZeLink Headway System’s RoZeLink Kim and Carrington’s UML/Object-Z combinationKim and Carrington’s UML/Object-Z combination

Our approach is distinct from all the above in at Our approach is distinct from all the above in at least one major aspect: variant of Z involved, least one major aspect: variant of Z involved, provisions for dealing with RTS, tight integration provisions for dealing with RTS, tight integration of notations, or type of supporting environmentof notations, or type of supporting environment

Page 8: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

8 / 28

Notations: Notations: UMLUML

“Graphical language for visualizing, specifying, constructing, and documenting the artifacts of software-intensive systems” [G. Booch]

OMG standard notation for object modeling Includes structural & behavioral model elements Extension mechanisms: stereotypes, tagged values,

constraints Support for RTS: events, signals, active classes, finite-

state machines, timing marks and expressions However, for rigorous development supplementary

formalization is necessary

Page 9: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

9 / 28

Notations: Notations: UML - Example of Class Diagram

Elevator

PositionDetector1

1

Door

1 1

CarButton

1

*

SpecialCarButton

1

*

Button

FloorButton Floor10..1

10..1

GroupIndicator

1

1

Indicator

1*

1

1serves

AlarmSystem11

Page 10: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

10 / 28

Notations: Notations: UML - Example of State Diagram

stoppedToDownentry: door.open()activity: updateRequests()exit: door.close()

movingUpentry: moveUp()activity: goToTarget()exit: stop()

stoppedToUpentry: door.open()

activity: updateRequests()exit: door.close()

idleactivity: updateRequests()

movingDownentry: moveDown()activity: goToTarget()exit: stop()

when(other_level_requestand up_to_go)

when(target_reachedand up_to_go)

when(up_target)

when(no_requests)

when(level_request and up_to_go)

when(level_request and down_to_go)

when(target_reachedand up_to_go)

when(target_reachedand down_to_go)

when(down_target)

when(no_requests)

when(other_level_requestand down_to_go)

when(target_reached anddown_to_go)

Page 11: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

11 / 28

Notations: Notations: Z++

Created by Lano and Haughton Essentially, extends Z with the class construct Closer to implementation than other formal languages Support for dealing with time in the HISTORY clause:

Temporal Logic or Real-Time Logic (RTL) formulae

Page 12: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

12 / 28

Notations: Z++ Class

ZPP_Class ::= CLASS Identifier [TypeParams] [EXTENDS Ancestors]

[TYPES TypeDefs][FUNCTIONS AxiomaticDefs][OWNS Locals][RETURNS OpTypes][OPERATIONS OpTypes][INVARIANT Predicate][ACTIONS Actions][HISTORY History]END CLASS

Page 13: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

13 / 28

Translations UML/Z++: Overview

Formalization = UML to Z++ translationFormalization = UML to Z++ translation Deformalization = Z++ to UML translationDeformalization = Z++ to UML translation Algorithms for automated translations have been Algorithms for automated translations have been

proposedproposed Formalization of both structure and behavior Formalization of both structure and behavior

Rules and principles for translating class diagrams Rules and principles for translating class diagrams (algorithm AFCD)(algorithm AFCD)

Rules and principles for translating state diagrams Rules and principles for translating state diagrams (AFSD)(AFSD)

Principles for reverse translation (ADF)Principles for reverse translation (ADF)

Page 14: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

14 / 28

A Procedural Frame

Series of activities in which model artifacts are produced

Subset of UML used (“2+1 views”) Artifacts:

UML elements: use case diagrams, scenarios, sequence diagrams, class diagrams, and class compounds

Z++ specifications: Z++ classes and statements Activities organized in stages

‘Regular’ and ‘irregular’ sequences of activities

Page 15: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

15 / 28

A A Procedural Procedural

FrameFrame

Requirements Set

UC Collection

SC Collection

1 Definition ofUse Cases

2 Elaboration ofScenarios

3A Construction ofClass Diagrams

4A Elaboration of UMLClass Compounds

4B Elaboration ofZ++ Specification

5AFormalization

5BDeformalization

UML ClassCompounds(COMP)

(CLS and CLSTD)

Z++ Specification(ZSPEC), a set of

Z++ classes (ZPPC)

Integrated UML/Z++Classes Collection

3B Specification ofSequence Diagrams

SQD CollectionCD Collection

Page 16: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

16 / 28

Regular Flow Regular Flow of Activitiesof Activities

1

2

3A

4A

5A

4B

3B

5B

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Definition ofUse Cases

Elaborationof Scenarios

Construction ofClass Diagrams

Specificationof Sequence

Diagrams

Elaboration of UMLClass Compounds

Elaboration ofZ++

Specification

Formalization(UML to Z++)

Deformalization(Z++ to UML)

Page 17: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

17 / 28

Irregular Flow Irregular Flow of Activitiesof Activities

1

2

3A

4A

5A

4B

3B

5B

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Definition ofUse Cases

Elaborationof Scenarios

Construction ofClass Diagrams

Specification ofSequenceDiagrams

Elaboration of UMLClassCompounds

Elaboration ofZ++ Specification

Formalization(UML to Z++)

Deformalization(Z++ to UML)

Page 18: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

18 / 28

The Harmony Tool: Characteristics

Sustains the development of combined UML/Z++ models

Operates on specification projects Monolithic construction Options for automated translations Support for class compounds Tandem mode of operation Provisions for interfacing with external tools

Page 19: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

19 / 28

Harmony: The Browser

Page 20: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

20 / 28

Harmony: Project Pane

Page 21: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

21 / 28

Harmony: New Element Selector & Legend Pane

Page 22: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

22 / 28

Harmony: Toolboxes

Page 23: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

23 / 28

Harmony: Project Loaded

Page 24: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

24 / 28

Harmony: UML Space (Class Diagram)

+updateRequests()+updateTarget()+goToTarget()+moveUp()+moveDown()+stop()

#state : ElevatorState#dir : Direction#current : unsigned int#target : unsigned int#carRequests : unsigned int [ ]#upFloorRequests : unsigned int [ ]#downFloorRequests : unsigned int [ ]

Elevator

+getCurrentFloor() : unsigned int+calculateSpeed() : double

-currentFloor : unsigned int

PositionDetector

1

1

+open()+close()+getState() : DoorState

#state : DoorState

Door

1 1

+getButtonNumber() : unsigned int-buttonNumber : unsigned int

CarButton

1

*

+getKind() : SpecialCarButtonKind-kind : SpecialCarButtonKind

SpecialCarButton

1*

+press()+turnOff()+getState() : ButtonState

#state : ButtonState

Button

+getKind() : FloorButtonKind-kind : FloorButtonKind

FloorButton +getKind() : FloorKind+setFloorNumber(in floorNumber : unsigned int)+getUpButtonState() : ButtonState+getDownButtonState() : ButtonState

#kind : FloorKind#floorNumber : unsigned int#upButton : FloorButton#downButton : FloorButton

Floor

10..1

10..1

+setIndicator(in ind : unsigned int)+resetIndicator(in ind : unsigned int)+resetAll()

-size : unsigned int

GroupIndicator

11

+turnOn()+turnOff()+getState() : IndicatorState

#state : IndicatorState#indicatorNumber : unsigned int

Indicator

1*

11

serves

+audioSignal()+visualSignal()

AlarmSystem1

1

1

*

Page 25: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

25 / 28

Harmony: Z++ Space (Class Spec)

Page 26: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

26 / 28

Harmony: Harmony: Z++ Space (Timing Constraints)Z++ Space (Timing Constraints)

Page 27: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

27 / 28

Conclusions: Summary

Pragmatic semi-formal/formal combination of notations

Formalization of UML constructs in Z++ Rigorous treatment of TCS via RTL Detailed design of the Harmony ISE Lightweight, rapid modeling process

Page 28: Harmony: An Approach and Tool for Combining Semi-formal and Formal Notations in Software Specification

28 / 28

Conclusions: Future Work (most on Andy )

Enhancement of algorithmsEnhancement of algorithms Refinement of the tool’s functionalityRefinement of the tool’s functionality Implementation of Harmony Implementation of Harmony Syntax checker for Z++Syntax checker for Z++ More applicationsMore applications