280 likes | 487 Views
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.
E N D
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 • 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
Context: Why Integrate? • Combine benefits • Graphical notations easy to use • Formal methods precise • Different aspects of the system need different ways of description • Provide choices
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
Related Work • Similar approaches: • Jia’s AML • Noe and Hartrum’s extension of Rational Rose • France et al.’s blending of Octopus and Z • Headway System’s RoZeLink • Kim and Carrington’s UML/Object-Z combination • Our approach is distinct from all the above in at least one major aspect: variant of Z involved, provisions for dealing with RTS, tight integration of notations, or type of supporting environment
Notations: UML • “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
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
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
Translations UML/Z++: Overview • Formalization = UML to Z++ translation • Deformalization = Z++ to UML translation • Algorithms for automated translations have been proposed • Formalization of both structure and behavior • Rules and principles for translating class diagrams (algorithm AFCD) • Rules and principles for translating state diagrams (AFSD) • Principles for reverse translation (ADF)
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
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
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
Conclusions: Future Work (most on Andy ) • Enhancement of algorithms • Refinement of the tool’s functionality • Implementation of Harmony • Syntax checker for Z++ • More applications