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



Similar documents
17. Evolutionary Object-Oriented Software Development (EOS) An agile process based on PBS

15. Evolutionary Object-Oriented Software Development (EOS) An agile process based on product-breakdown structure (PBS) Obligatory Literature

Ontologies in the Software Engineering process

Using Bonds for Describing Method Dispatch in Role-Oriented Software Models

Analysis of Software Variants

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

Masters of Science in Software & Information Systems

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

3C05: Unified Software Development Process

Software Construction

IES - Introduction to Software Engineering

Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework

From Business World to Software World: Deriving Class Diagrams from Business Process Models

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Quality Assurance by Means of Feature Models

Programming Language Constructs as Basis for Software Architectures

Information systems modelling UML and service description languages

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Using Library Dependencies for Clustering

INTEGRATING HCI ELEMENTS INTO THE WATERFALL METHODOLOGY TO EASE NOVICE DEVELOPERS TO DEFINE SYSTEM REQUIREMENTS: RESEARCH-IN- PROGRESS

Literaturliste Software Engineering (wird ergänzt)

Towards an Integration of Business Process Modeling and Object-Oriented Software Development

A process-driven methodological approach for the design of telecommunications management systems

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

Organization. Introduction to Software Engineering

Domain Modeling of Software Process Models

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Formalization of Functional Requirements and Their Traceability in UML Diagrams A Z Notation Based Approach

I219 Software Design Methodology

Course Computer Science Academic year 2012/2013 Subject Software Engineering II ECTS 6

Principles and Software Realization of a Multimedia Course on Theoretical Electrical Engineering Based on Enterprise Technology

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

The Unified Software Development Process

Object Oriented Analysis and Design and Software Development Process Phases

Opportunities and Challenges in Software Engineering for the Next Generation Automotive

Supply Chain Management on Demand

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

A FIRST COURSE FORMAL CONCEPT ANALYSIS

Generating Aspect Code from UML Models

How To Design Software

Über die Semantik von Modellierungssprachen

Ontology based Recruitment Process

The use of Trade-offs in the development of Web Applications

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Component Based Development Methods - comparison

A Comparison of SOA Methodologies Analysis & Design Phases

What CMMI Cannot Give You: Good Software

The Road in Software Engineering Education from Structured Programming to Object- Oriented Modelling

Application of UML in Real-Time Embedded Systems

Component Based Software Engineering: A Broad Based Model is Needed

City University of Hong Kong Course Syllabus. offered by Department of Computer Science with effect from Semester A 2015/16

What is Industrie 4.0

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

THE NATURE OF MEDICAL DEVICE SERVICES A Multiple-Case Study

Layered Approach to Development of OO War Game Models Using DEVS Framework

Business Process- and Graph Grammar-Based Approach to ERP System Modelling

µfup: A Software Development Process for Embedded Systems

Best of Both Worlds - A Mapping from EXPRESS-G to UML

The Integrated Clinical Pathways -Approach Current Requirements to the Knowledge Management in Health Information Systems

Menouer Boubekeur, Gregory Provan

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Génie Logiciel et Gestion de Projets. Evolution

for High Performance Computing

Case Study: Design and Implementation of an Ordering system using UML, Formal specification and Java Builder

Ontological Representations of Software Patterns

BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4

(Refer Slide Time 00:56)

The BPM to UML activity diagram transformation using XSLT

Seamless Method- and Model-based Software and Systems Engineering

Petri Net based Verification and

Software Design Document (SDD) Template

SOPLE-DE: An Approach to Design Service-Oriented Product Line Architectures

Standardontologie für Wissensmanagement

SLA Business Management Based on Key Performance Indicators

Software Development Methodologies

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

Transcription:

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

FCA-SE 20 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

FCA-SE 30 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) FCA-SE 40 Analysis Use & Operations Use environment Development environment Design Implementation * (for Evolutionary, Object-oriented Software development) planning, analytic activities synthetic, verifying activities

Concepts everywhere FCA-SE 50 Domain concepts Business concepts Analysis Use & user concepts Maintenance concepts Use & Operations Process concepts Design Implementation System concepts Design & architectural concepts Programming concepts Test & integration concepts

FCA-SE 60 Citations on concepts James Rumbaugh: "The objects in the model should be applicationdomain 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

FCA-SE 70 2 Object-oriented modelling: Aspects and methods Aspects of OO modelling behavioural structural OO methods: ontological 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 FCA-SE 80

FCA-SE 90 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])

FCA-SE 100 Example of a use case diagram Wine trade business Receive order Process order <<include>> Clerk Order missing products <<include>> Determine inv. stock Create deliv. instructions <<include>> Process inc. delivery Define max. & min. stock quantity Process delivery results

Formal Concept Analysis (FCA) FCA-SE 110 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 A I := { m M g I m for all g A } the set of attributes common to all objects in A B I := { 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 A I = B und B I = 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 FCA-SE 120 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 FCA-SE 130

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

FCA-SE 150 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?

FCA-SE 160 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 "Things" formal objects 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

FCA-SE 170 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)

FCA-SE 180

FCA-SE 190 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.

Goals and aims Formal objects Formal attributes Formal concepts Meaning of order relation References FCA-SE 200 Analysis of class structure Classes Attributes and operations Abstract classes Generalisation Godin et al. [GMM+ 98] Analysis of class structure Program variables Attributes and operations Classes Generalisation Snelting& Tip [S-T 00] Modularisation of legacy systems Program procedures Program variables Modules (of maximal cohesion) Nesting of modules Lindig& Snelting [L-S 97] Configuration analysis Code segments Controlling expressions Configurations Specialisation of configurations Lindig& Snelting [Sne 96], [Lin 98] Searching class libraries Software modules Keywords States during searching Specialisation of search results Lindig [Lin 95] Project control "Things" relevant for projects Project activities States of project progress Grade of project progress Vogt [Vog 97] Finding class candidates "Things" relevant for use cases Use cases Class candidates Specialisation of functionality Düwel& Hesse [Düw 00], [D-H 98]

References FCA-SE 210 [Düw 00] S. Düwel: BASE- ein begriffsbasiertes Analyseverfahren für die Software-Entwicklung, Dissertation, 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 3 rd 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] [Lin 95] [Lin 98] I. Jacobson: Object-Oriented Software Engineering - A Use Case Driven Approach; Revised Printing, Addison- Wesley 1993 C. Lindig: Komponentensuche mit Begriffen, Proceedings Software-technik '95, Braunschweig, S. 67-75, Oktober 1995 C. Lindig: Analyse von Softwarevarianten, Informatik-Bericht 98-04, Technische Universität Braunschweig, Januar 1998

References (cont'd) FCA-SE 220 [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)