Quality Assurance of Software Models within Eclipse using Java and OCL



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

Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools

A Tool Suite for the Generation and Validation of Configurations for Software Availability

A Software Development Platform for SOA

Analysis of the Specifics for a Business Rules Engine Based Projects

Q U A L I T Y A S S U R A N C E O F S O F T WA R E M O D E L S

Development of Tool Extensions with MOFLON

Scenario-driven Testing of Security-related Domain-specific Language Models

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

Developing SOA solutions using IBM SOA Foundation

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

Model-Driven Development - From Frontend to Code

Foundations of Model-Driven Software Engineering

Function Point Modeler Enterprise Edition A Software Lifecycle Management Tool

What is a life cycle model?

Model Driven Benchmark Generation for Web Services

Generative Software Product Line Development using Variability-Aware Design Patterns

UML Model Smells and Model Refactorings in Early Software Development Phases

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages

Chap 1. Introduction to Software Architecture

UML FOR OBJECTIVE-C. Excel Software

Modelling with Papyrus: Domain-Specific Modelling Languages using UML Profiles

Software Specification and Testing

The Software Development Process

UML Modelling of Automated Business Processes with a Mapping to BPEL4WS

Building industrial sensors with MDSD

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Development of a Feature Modeling Tool using Microsoft DSL Tools.

Asset Based Development

Refactoring BPMN Models: From Bad Smells to Best Practices and Patterns

Metamodels and Modeling Multiple Kinds of Information Systems

Model-Based Engineering: A New Era Based on Papyrus and Open Source Tooling

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

Integrate your tools to help integrate your stakeholders

JOURNAL OF OBJECT TECHNOLOGY

Tools to support Requirements-Based Testing

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Towards Software Configuration Management for Test-Driven Development

A Model-Driven Configuration Management System for Advanced IT Service Management

VICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl

Rules and Business Rules

Jos Warmer, Independent

Instrumentation Software Profiling

Automating the Development of Information Systems with the MOSKitt Open Source Tool

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Applying 4+1 View Architecture with UML 2. White Paper

VClipse Xtext-based IDE for the SAP Variant Configurator

R&D and Topcased (led by Silvia Mazzini)

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

Modern PL/SQL Code Checking and Dependency Analysis

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Efficient Management of Tests and Defects in Variant-Rich Systems with pure::variants and IBM Rational ClearQuest

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Service Oriented Architecture

Bridging the Generic Modeling Environment (GME) and the Eclipse Modeling Framework (EMF)

Refactoring (in) Eclipse

A HW/SW Codesign Methodology based on UML

Luncheon Webinar Series July 29, 2010

SoberIT Software Business and Engineering Institute

Business Process Execution Language for Web Services

A Common Metamodel for Code Generation

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling

Model-Driven ERP Implementation

MOTION Modeling and Testing for System and Service Solutions. ModelBus. Automation, Integration and Collaboration in Development Processes

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

Toward Families of QVT DSL and Tool

Tool chain (BRIDE) delivered as BRICS software distribution

Building a Flexible Software Factory Using Partial Domain Specific Models

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C

Eclipse BPMN Modeler Introducing Intalio Designer

CHAPTER 2 LITERATURE SURVEY

Transcription:

Quality Assurance of Software Models within Eclipse using Java and OCL Dr. Thorsten Arendt Modellgetriebene Softwareentwicklung mobiler Anwendungen Wintersemester 2014/15 17. Dezember 2014

Outline Why model quality assurance? A structured model quality assurance process Tailoring the process for a given modeling project Specification process Application process Tool support: EMF Refactor 2

Why model quality assurance? Problems Model Metrics Model Smells Risks Model Refactorings 3

Why model quality assurance? Model Metrics Problems Model Smells Model Refactorings Risks Model Quality Assurance Process 4

Software quality software model quality [ISO/IEC 9126] 5

Software quality software model quality Software quality 6C model quality goals Correctness Completeness Changeability Comprehensibility Confinement Consistency [ISO/IEC 9126] [Mohagheghi] 6

Model smells Adopted from the concept of code smell Smells are parts of the model that contain symptoms of poor model quality are worthy of an inspection are potential candidates for improvements by refactoring Smells are not synonyms for problems smells don't always indicate a problem.... You have to look deeper to see if there is an underlying problem there - smells aren't inherently bad on their own - they are often an indicator of a problem rather than the problem themselves. [Fowler] 7

A structured model quality assurance process (1) Specification process Manager Designer Application process 8

Discussing important quality aspects Specification process Changeability Comprehensibility Correctness Completeness Changeability Comprehensibility Confinement Consistency 9

Specifying relevant model smells (1) Specification process Changeability Comprehensibility Question: Are there equally named classes in different packages? Smell: Multiple definitions of classes with equal names 10

Specifying relevant model refactorings (1) Specification process Smell: Multiple definitions of classes with equal names Refactorings: Merge Classes, Rename Class 11

Specifying relevant model smells (2) Specification process Completeness Confinement Question: Are there abstract classes without any concrete subclasses? Smell: No concrete Subclass 12

Specifying relevant model refactorings (2) Specification process Smell: No concrete subclass Refactoring: Insert Concrete Subclass 13

UML specific refactorings Refactoring: Change Attribute to Association End Refactoring: Change Association End to Attribute 14

UML class attribute specification Refactoring: Change Attribute to Association End [OMG: UML] 15

A structured model quality assurance process (2) Specification process Manager Designer Application process Modeler Reviewer 16

Tool environment for model quality assurance Model Metrics Problems Risks Model Smells Model Refactorings Model Quality Assurance Process 17

Quality Assurance and Textual Modeling in Eclipse 18

Scenario: Vehicle Rental Company Project Development of a web application for renting vehicles using MDD Semantic domain Company with vehicles, customers, services,.. Technical domain Web application Modeling purpose Modeling of the semantic domain as well as the information mandatory for code generation using a (textual) DSML Credo The better the model, the better the code 19

Xtext Grammar for SWM 20

Scenario: Xtext Model Vehicle Rental Company Is the model complete? Is the model comprehensible, correct,? 21

Metrics calculation Is the model complete? 22

Reporting and interpreting Is the model complete? variously interpretable 23

Smell detection Is the model complete? 24

Locating and interpreting Is the model complete? refactoring as quick-fix 25

Refactoring application Is the model complete? Model partially completed 26

EMF Refactor: Architecture Specification Language Generation module Application module metrics, smells, refactorings extension points Eclipse Modeling Framework (EMF) 27

Configuration of relevant quality assurance techniques 28

Smell-Refactoring relations 29

EMF Refactor: Architecture Specification Language Generation module Application module metrics, smells, refactorings extension points Eclipse Modeling Framework (EMF) 30

Specification languages Metrics Generation module Application module metrics, smells, refactorings + Refactorings Eclipse Modeling Framework (EMF) 31

Integration of EMF Refactor tools Specific tools use each other Metric-based model smells Refactoring invocation from within model smell results view Model smell analysis during refactoring application Each tool can be used directly on the model within a certain EMF-based modeling environment EMF instance editor Unified Modeling Language (UML) Eclipse Plugin Papyrus IBM Rational Software Architect Textual Xtext editors 32

Flexible specification mechanisms in EMF Refactor Usage of existing quality assurance techniques Combination of existing model metrics Metric-based model smells Composite model refactorings Usage of concrete specification languages Java OCL EMF model transformation language Henshin further languages can be integrated by new adapters 33

Conclusion Quality assurance for software models is an important project management task Software quality software model quality A structured model quality assurance process can be adapted to project and domain specific purposes The application sub-process is performed during the modeling task, e.g., in a model review The specification sub-process should be performed before (as far as possible) Tool support in Eclipse is given by EMF Refactor 34

References ISO/IEC 9126-1:2001 Software engineering Product quality Part 1: Quality model, 2001. P. Mohagheghi, V. Dehlen, T. Neple: Definitions and approaches to model quality in model-based software development - A review of literature. Information & Software Technology, 2009. Martin Fowler: Code Smell. http://martinfowler.com/bliki/codesmell.html Object Management Group (OMG): Unified Modeling Language (UML), http://www.omg.org/spec/uml/ Thorsten Arendt and Gabriele Taentzer: A tool environment for quality assurance based on the Eclipse Modeling Framework. Journal Automated Software Engineering, 2013. Thorsten Arendt: Quality Assurance of Software Models - A Structured Quality Assurance Process Supported by a Flexible Tool Environment in the Eclipse Modeling Project, Dissertation, 2014. Eclipse: EMF Refactor, http://www.eclipse.org/emf-refactor 35