Formal Concept Analysis used for object-oriented software modelling

Slides:



Advertisements
Similar presentations
Practical Database Design Methodology and Use of UML Diagrams
Advertisements

Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Introduction to Object Orientation System Analysis and Design
Ozone Level ppb (parts per billion)
Chapter 7 System Models.
TU e technische universiteit eindhoven / department of mathematics and computer science Modeling User Input and Hypermedia Dynamics in Hera Databases and.
K. Ingram1November 2000 Object Orientated Analysis and Design - Contents When to use OO? What is OO? Unified Modelling Language OO Methodologies: –Object.
Lecture 6: Software Design (Part I)
UML an overview.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
9/6/2001Database Management – Fall 2000 – R. Larson Information Systems Planning and the Database Design Process University of California, Berkeley School.
1 COST G9 - Work group 2 meeting Székesfehérvár, Hu Modeling real property transactions Radoš Šumrada Faculty of Civil and Geodetic.
IMS5024 Week 3 Semester 2, IMS 5024 Object orientation (1)
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1 Introduction to System Engineering G. Nacouzi ME 155B.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
IMS5024 Week 61 IMS 5024 Object orientation (1). IMS5024 Week 62 Content Individual assignment date Group assignment What is object orientation? n Place.
Chapter 7: System models
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
What is Business Analysis Planning & Monitoring?
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Overview of the Database Development Process
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
ITEC224 Database Programming
Chapter 10 Information Systems Analysis and Design
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
Chapter 7 System models.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Content The system development life cycle
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
RUP-DmA 10 Dinosaur meets Archaeopteryx? Seven Theses on Rational's Unified Process (RUP) Wolfgang Hesse c/o FB Mathematik und Informatik, Universität.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Towards a Reference Quality Model for Digital Libraries Maristella Agosti Nicola Ferro Edward A. Fox Marcos André Gonçalves Bárbara Lagoeiro Moreira.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
NURHALIMA 1. Identify the trade-offs when using CASE Describe organizational forces for and against adoption of CASE tools Describe the role of CASE tools.
Distributed Java Programming Distributed Java Programming Class #1 August 20, 2002.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Formal Concept Analysis of Procedure Call Relations Christopher Taylor.
Introduction to UML.
Evolution of UML.
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Abstract descriptions of systems whose requirements are being analysed
Presentation transcript:

Formal Concept Analysis used for object-oriented software modelling Wolfgang Hesse FB Mathematik und Informatik, Univ. Marburg

Contents 1 The role of concepts in software development 2 OO modelling: Aspects, methods and open questions 3 Bridging the gap between use case analysis and class & object modelling 4 FCA used for "crossing perspectives" 5 Other SE applications of FCA 6 Resume References

1 The role of concepts in software development Software development methods support the complex task of .. gathering and analysing requirements .. designing and structuring the software system .. implementing (i.e. programming and integrating) the system .. operating and improving the system Modelling is the central task for finding the adequate system structure to fulfill the requirements Object-oriented modelling builds on concepts formed during analysis of the application domain and to be maintained during system design & implementation

The SW development cycle (acc. to the EOS* model) Analysis Use & Operations Use environment Development environment Design Implementation planning, analytic activities synthetic, verifying activities * (for Evolutionary, Object-oriented Software development)

Design & architectural concepts Test & integration concepts Concepts everywhere … Business concepts Use & user concepts Maintenance concepts Domain concepts Analysis Use & Operations System concepts Process concepts Design Implementation Design & architectural concepts Test & integration concepts Programming concepts

Citations on concepts … James Rumbaugh: "The objects in the model should be application-domain concepts ... ." James Martin und James Odell: "Object types are important, because they create conceptual building blocks for designing systems. [...] An object type is a concept." Grady Booch: "Key abstractions are the classes and objects that form the vocabulary of the problem domain."  Use Formal Concept Analysis (FCA) to form and evaluate the concepts needed for software development

2 Object-oriented modelling: Aspects and methods Aspects of OO modelling behavioural structural ontological OO methods: support building an OO model and bringing together various aspects. Recent, popular methods start with use cases ( behavioural aspect), recommend to detect objects & classes ( structural aspect), according to the intentions of system users and owners ( ontological aspect).

From use cases to classes & objects

From use cases to classes & objects (2) Open questions: Are use cases (formulated in user language) appropriate for finding a good class & object structure? Are there promising alternatives? Where do the candidates for classes & objects come from? Are they already "contained" or "hidden" in the use cases? Is the object list (I. Jacobson) an appropriate "medium"? What are the criteria to choose between class candidates? How can we compare alternative class models? Is all this so easy as some authors suggest?  ".. objects are there just for the picking." (B. Meyer in [Mey 88])

Example of a use case diagram Wine trade business Receive order Process order <<include>> Determine inv. stock Clerk Order missing products <<include>> <<include>> Create deliv. instructions A ‘use case model’ combines all the use cases of a system and at the top level helps to visualise the context of the system and its boundary. The diagram notation used for expressing the use case model is defined in the UML. Actors are classes, notated in their simplest form as stick figures with an instance name (or class box). Ellipses represent the different use cases and have an identifier naming them. Also the whole name is given a name. Lines identify the associations between actors and use cases. In this model an actor, for example a ‘clerk’ in a model of a bank system, can be associated with an number of different cases, e.g. ‘counter transaction’, ‘cheque clearing’, ‘audit’ and more than one actor with one use case e.g. ‘customer’ and ‘operator’ in a ‘stuck_item’ use case in the recycling machine example. The identification of each use case requires a detailed consideration of the system’s requirements. A systematic approach representing the different use cases will be presented on the next slide. Process inc. delivery Define max. & min. stock quantity Process delivery results

Formal Concept Analysis (FCA) A theory for formally describing concepts and their relationships Formal Context (G, M, I ): G (formal) objects ("things") M (formal) attributes I G M Incidence relation AI := { m  M | g I m for all g  A } the set of attributes common to all objects in A BI := { g  G | g I m for all m  B } the set of objects that have all attributes from B Formal Concept (A, B) with A  G, B  M and AI = B und BI = A . A the extent of a concept B the intent of a concept Sub- / super concept relation (A, B) ≤ (C, D) iff A  C ( D  B )

3 Bridging the gap: The BASE approach Use cases describe functionality handle "things" of the domain "Things" are marked by the domain experts, may occur as classes, objects, attributes, roles, etc. .. in the forthcoming class model. Our FCA view: "Things"  formal objects Use cases  formal features

Resulting line diagram

Crossing perspectives via FCA Functional perspective (Use cases) general special ... particular ... Data perspective ("Things") common

Crossing perspectives via FCA (2) Most general use cases stand top-most. Special use cases stand lower in the diagram.  Upper part shows use case hierarchy (functional perspective) Most common "things" (class candidates?) stand bottom-most. Particular "things" (class attributes?) stand higher in the diagram  Lower part shows "things" hierarchy (data perspective) Typical questions resulting from FCA analysis: Why is thing X so high in the diagram? Shouldn't it lie in the scope of use case Y? Why is (sub-) use case X so low in the diagram? Shouldn't its scope comprise thing Y? Is node X is good class candidate? Are its sub-nodes good candidates for (OO-) attribute, its super-nodes for (OO-) operations?

Alternative approaches Other possible associations with FCA categories classes  formal objects attributes & operations  formal features ( e.g. Godin et al. 1998, Snelting & Tip 2000)  But: In our case we analyse a forthcoming (not an existing) class structure! It is just our goal to find classes, attributes and operations ! use cases  formal objects "Things"  formal features  is a reasonable alternative, - equivalent from a mathematical point of view, - even more "natural" from the use case point of view, - ... but less "natural" from an overall SE point of view:  functional perspective should be on top of data perspective

Further analyses Implication analysis:. All use cases covering thing X cover thing Y as well.  Is this an indicator of a possible use case refinement? Block relation analysis: Try to fill up the incidence table in such a way that blocks (rectangles with a total incidence relation) are formed.  Each block can be considered as a candidate for a system component (I.e. as a collection of coherent concepts)

Conclusions FCA supports building class & object models from use case descriptions by exposing class candidates, their attributes and operations. Choice between class candidates is done interactively - no automated decisions. FCA analysis illuminates both functional and data perspectives of classes & objects. Implication analysis supports refinement of functional decomposition. Block relation analysis supports modularisation and component structure. FCA is a good basis for the discourse between system owners, users and developers. BASE tool generates concept lattices, suggestions for functional refinement, modularisation and plausibility checks. Additional effort for applying FCA analysis and the BASE tool is marginal.

References [Düw 00] S. Düwel: BASE- ein begriffsbasiertes Analyseverfahren für die Software-Entwicklung, Disser-tation, Universität Marburg 2000, http://www.ub.uni-marburg.de/digibib/ediss/welcome.html [D-H 98] S. Düwel, W. Hesse: Identifying Candidate Objects During System Analysis, Proc. CAiSE'98/IFIP 8.1 3rd Int. Workshop on Evaluation of Modeling Methods in System Analysis and Design (EMMSAD'98), Pisa 1998 [D-H 00] S. Düwel, W. Hesse: Bridging the gap between Use Case Analysis and Class Structure Design by Formal Concept Analysis. In: J. Ebert, U. Frank (Hrsg.): Modelle und Modellierungssprachen in Informatik und Wirtschaftsinformatik. Proc. "Modellierung 2000", pp. 27-40, Fölbach-Verlag, Koblenz 2000 [D-H 03] S. Düwel, W. Hesse: BASE – ein begriffsbasiertes Analyseverfahren für die Software-Entwicklung. in: K. Lengnink et. al (Hrsg.) Mathematik für Menschen, Festschrift f. R. Wille, TU Darmstadt 2003 [G-W 98] B. Ganter, R. Wille: Formal Concept Analysis, Mathematical Foundation, Springer 1998 [GMM+ 98] R. Godin et al.: Design of class hierarchies based on concept (Galois) lattices. Theory and Apllication of Object Systems (TOPAS) 4(2), pp. 117-134, 1998 [Jac 93] I. Jacobson: Object-Oriented Software Engineering - A Use Case Driven Approach; Revised Printing, Addison- Wesley 1993 [Lin 95] C. Lindig: Komponentensuche mit Begriffen, Proceedings Software­technik '95, Braunschweig, S. 67-75, Oktober 1995 [Lin 98] C. Lindig: Analyse von Softwarevarianten, Informatik-Bericht 98‑04, Technische Universität Braunschweig, Januar 1998

References (cont'd) [L-S 97] C. Lindig, G. Snelting: Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis, Proceedings of the International Conference on Software Engineering (ICSE 97), Bo­ston, USA, pp. 349-359; 1997 [L-S 00] C. Lindig, G. Snelting: Formale Begriffsanalyse im Software Engineering. In: [S-W 00] [M-O 92] J. Martin, J. Odell: Object-Oriented Analysis and Design. Prentice Hall 1992 [Mey 88] B. Meyer: Object oriented software construction. Prentice Hall 1988 [Sne 96] G. Snelting: Reengineering of configurations based on mathemati­cal concept analysis, ACM Transactions on Software Engineering and Methodology, 5(2), pp.146--189, April 1996 [S-T 00] G. Snelting, F. Tip: Understanding Class Hierarchies Using Concept Analysis, ACM Transactions on Programming Languages and Systems, pp. 540-582, May 2000 [S-W 00] G. Stumme, R. Wille (Hrsg.): Begriffliche Wissensverarbeitung: Methoden und Anwendungen. Springer 2000 [Vog 97] F. Vogt: Supporting Communication in Software Engineering: An Approach Based on Formal Concept Analysis, Preprint Nr. 1926, Technische Universität Darmstadt, Fachbereich Mathematik, 1997 [Wil 00] R. Wille: Begriffliche Wissensverarbeitung: Theorie und Praxis. Informatik-Spektrum 23.6, pp. 357-369 (2000)