Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama

Slides:



Advertisements
Similar presentations
Software Metrics for Object Oriented Design
Advertisements

Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
Figures – Chapter 24.
Classes & Objects Computer Science I Last updated 9/30/10.
Metrics for Object Oriented Design Shyam R. Chidamber Chris F. Kemerer Presented by Ambikadevi Damodaran.
Applying and Interpreting Object Oriented Metrics
Nov R. McFadyen1 Metrics Fan-in/fan-out Lines of code Cyclomatic complexity* Comment percentage Length of identifiers Depth of conditional.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Design Metrics Software Engineering Fall 2003 Aditya P. Mathur Last update: October 28, 2003.
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
File Systems and Databases
Object-Oriented Metrics
March R. McFadyen1 Software Metrics Software metrics help evaluate development and testing efforts needed, understandability, maintainability.
Comp 587 Parker Li Bobby Kolski. Automated testing tools assist software engineers to gauge the quality of software by automating the mechanical aspects.
BACS 287 Basics of Object-Oriented Programming 1.
Software Metrics.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Lecture 17 Software Metrics
Chidamber & Kemerer Suite of Metrics
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Paradigm Independent Software Complexity Metrics Dr. Zoltán Porkoláb Department of Programming Languages and Compilers Eötvös Loránd University, Faculty.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Measurement & Metrics
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
Concepts of Software Quality Yonglei Tao 1. Software Quality Attributes  Reliability  correctness, completeness, consistency, robustness  Testability.
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 1 Evaluation of a Business Application Framework Using Complexity.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
An Automatic Software Quality Measurement System.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Measurement and quality assessment Framework for product metrics – Measure, measurement, and metrics – Formulation, collection, analysis, interpretation,
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
Object-Oriented (OO) estimation Martin Vigo Gabriel H. Lozano M.
Cooperation & Interoperability Architecture & Ontology.
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Object Oriented Metrics
Software Engineering Lecture 19: Object-Oriented Testing & Technical Metrics.
1 OO Technical Metrics CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
OBJECT-ORIENTED DESIGN JEAN SIMILIEN. WHAT IS OBJECT-ORIENTED DESIGN? Object-oriented design is the process of planning a system of interacting objects.
Design Metrics CS 406 Software Engineering I Fall 2001 Aditya P. Mathur Last update: October 23, 2001.
Object Oriented Metrics
A Hierarchical Model for Object-Oriented Design Quality Assessment
Object Oriented Programming
Course Notes Set 12: Object-Oriented Metrics
Design Characteristics and Metrics
Internet and Java Foundations, Programming and Practice
Object-Oriented Metrics
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
Mei-Huei Tang October 25, 2000 Computer Science Department SUNY Albany
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Chapter 8, Design Patterns Introduction
Chapter 8: Design: Characteristics and Metrics
Presentation transcript:

Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley Dept. of Electrical and Computer Engineering Virginia Tech Support by NSF CAREER. 1

Overview of Presentation  Overview of Abstraction Layer  Overview of Ontology  Issues in Abstraction Layer Modularization  Research Approach  Conclusion 2

Examples of the Abstraction Layer Porting Interface Hardware OS Browser Adapter Hardware Adapter OS Hardware Adapter OS Hardware JavaOS Java Virtual Machine Java Base Classes Java Standard Extension Classes Java Base API Java Standard Extension API Applets and Applications Java on a Browser Java on a Desktop OS Java on a Smaller OS Java on a JavaOS Network Java Base Platform  Java Virtual Machine 3

Examples of the Abstraction Layer (cont.)  GIGA Platform  Mobile platform developed by SK Telecome in South Korea 4

Benefits and issues of abstraction layers  Removes dependencies from underlying resources  Promote portability and reusability  Require much effort and time to build an abstraction layer  Same amount of efforts and time may be required if a new underlying resource is introduced or the supported resources are evolved  Focus on portability, reusability and reducing overhead  Little attention to the modularity of the abstraction layer 5 Construct the abstraction layer using ontology

Ontologies  An ontology is an explicit description of a domain  concepts  properties and attributes of concepts  constraints on properties and attributes Ontology allows people to share common understanding of the structure of information and enable reuse of domain knowledge. 6

Criteria for Introducing Ontologies  Large amounts of data  Complex data structures  Inheritance, containment and many relationships  Diverse sources  Many legacy systems  Sources using different formats  Requirement for formal proofs  Contracts and policy enforcement 7

Characteristics of APIs  APIs can be decomposed into multiple semantic units  Ex.) OS APIs: Thread Management, Memory Management, I/O Management  APIs are structured with a hierarchy and can be represented as a Tree  Java APIs, Microsoft Foundation Class  APIs follow a naming convention  Noun only: Normally constructor/destructor Socket(), Array()  Verb followed by noun createProcess(), deleteProcess()  Verb only add(), append() 8

Process of Ontology Support for Abstraction Layer Modularization Natural Language Processing Tokenizer APIs Annotate the tokens Ontology Processing Identify API relationship Classify the tokens Feature Model for Abstraction Layer Accesses Abstraction Layer Modularity API Generator APIs for Abstraction Layer APIs of Underlying Resources Traceability Link Domain Feature Model 9

Feature Model of Abstraction Layer 10 datatype VariableName::PackageName:APIName ReturnType APIName:: PackageName

11 Measurement of Abstraction Layer Modularity  Object-Oriented Metrics  Weighted methods per class (MWC) Measure class complexity by summing the complexity of each method  Depth of inheritance tree (DIT) Measure the length o the maximum path from the node to the root of the tree Derive the modularity by measuring affected classes from a change  Number of children (NOC) Measure the number of direct subclasses  Coupling between object classes (CBO)  Response for class (RFC)  Lack of cohesion metric (LCOM) Chidamber, S.R.,Kemerer, C.F., "A metrics suite for object oriented design," Software Engineering, IEEE Transactions on, vol.20, no.6, pp , Jun 1994

Coupling between object classes (CBO)  Measure the number of other classes to which the class is coupled  Excessive coupling indicates weakness of class encapsulation, or modularity 12

Response for class (RFC)  a set of methods that can potentially be executed in response to a message received by an object of that class.  Useful to check testability  Smaller numbers are better  Larger numbers indicate increased complexity and debugging difficulties 13

Lack of cohesion metric (LCOM)  A measure of the “tightness” of the code  Consider a class C with three methods M1,M2 and M3.  Let {I1} = { a, b. c, d, e }, {I2} = {a, b, e}, and {I3} = {x,y,z}.  {I1}∏{I2} is nonempty,  {I1} ∏{I3} and {I2} ∏{I3} are null sets  LCOM = 2 – 1 =1  The larger the number of LCOM, the more cohesive the class 14

Conclusions  The approach helps maintain the abstraction layer consistently  A feature model can provide insight the modularity and functionality of the underlying resources  The approach is transparent to the implementation technology of underlying resources  Need to find the appropriate measurement to predict the modularity in model level  Generative programming has the potential to automate the creation of APIs for the abstraction layer. 15

Support by NSF CAREER. 16