Presented by: Samia Azhar(06-0155) Shahzadi Samia(06-0112)

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

H1 R1 T1 c Client Director Builder Client Concrete Strategy Builder Strategy H2 R2 T2 H3 R3 T3 Composition of Builder and Strategy Java Source Code Parser.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
The Web Warrior Guide to Web Design Technologies
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 1 Object-Oriented.
1 Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 8.1 – 8.5.
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Investigating JAVA Classes with Formal Concept Analysis Uri Dekel Based on M.Sc. work at the Israeli Institute of Technology. To appear:
Multiview research High Velocity Refactorings In Eclipse Emerson Murphy-Hill and Andrew P. Black Eclipse Technology Exchange October 21, 2007.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Advanced Object-Oriented Programming Features
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 1: Introduction to Decision Support Systems Decision Support.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
C++ fundamentals.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Inheritance. © 2004 Pearson Addison-Wesley. All rights reserved 8-2 Inheritance Inheritance is a fundamental object-oriented design technique used to.
How XSL Formatter works Operation System Requirements How to format GUI for operating on Windows screen Application Integration Interface.
Object-Oriented Analysis and Design
Digital Image Processing Lecture3: Introduction to MATLAB.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
Programming Languages: Telling the Computers What to Do Chapter 16.
A First Program Using C#
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Databases and LINQ Visual Basic 2010 How to Program 1.
1 Chapter Eight Exception Handling. 2 Objectives Learn about exceptions and the Exception class How to purposely generate a SystemException Learn about.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Publishing and Visualizing Large-Scale Semantically-enabled Earth Science Resources on the Web Benno Lee 1 Sumit Purohit 2
USER INTERFACE.
High-Level Views in Object-Oriented Software using Formal Concept Analysis Gabriela B. Arévalo LIRMM - Séminaire D’OC - 9/02/06 Abstract Z B C D P C Z.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
SOFTWARE DESIGN.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Systems Analysis & Design 7 th Edition Chapter 5.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
JavaScript - A Web Script Language Fred Durao
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Data Structures Using C++ 2E1 Inheritance An “is-a” relationship –Example: “every employee is a person” Allows new class creation from existing classes.
1 Chapter Nine Using GUI Objects and the Visual Studio IDE.
Example: object diagram for Scheduler, v What is wrong with this diagram? Seems like a lot of similarity between Task and UnplannedTask Can use.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
Relationships Relationships between objects and between classes.
Visual Basic for Application - Microsoft Access 2003 Programming applications using Objects.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
The world leader in serving science Overview of Thermo 21 CFR Part 11 tools Overview of software used by multiple business units within the Spectroscopy.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Refactoring Agile Development Project. Lecture roadmap Refactoring Some issues to address when coding.
Classes, Interfaces and Packages
HTML DOM Basharat Mahmood, Department of Computer Science, CIIT, Islamabad, Pakistan 1.
2 Software CASE tools state-of-the-art UML modeling Partially automatic code generation Refactoring browsers (occasionally) Context-sensitive search and.
Chapter – 8 Software Tools.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Presentation on Database management Submitted To: Prof: Rutvi Sarang Submitted By: Dharmishtha A. Baria Roll:No:1(sem-3)
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Laboratory Exercise # 10 – Microsoft Word Additional Topics Office Productivity Tools 1 Laboratory Exercise # 10 Microsoft Word Additional Topics Objectives:
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
1 M206 Chapter 31: An Overview of Software Development 1.Defining the problem 2.Analyzing the requirement – constructing initial structural model 3.Analyzing.
Object Oriented Programming
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Unified Modeling Language
Software Design Mr. Manoj Kumar Kar.
Week 4 Object-Oriented Programming (1): Inheritance
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Authors: Khaled Abdelsalam Mohamed Amr Kamel
Cohesion and Coupling.
Presentation transcript:

Presented by: Samia Azhar( ) Shahzadi Samia( )

About FCA Parser FCA Parser is a tool that parses java files to generate input for the Concept Explorers, ConExp or Galicia. The concept Explorer generates the concept lattice which can be used to compare the results produced by the various techniques the tool supports. The user can either select a package containing multiple java files or a single file followed by selection of technique to be applied, binary file storage, selection of the concept Explorer and lattice generation at the end.

User Interface

Functionalities Select a Java package: If the user selects this button, he is prompted to browse for the Java package that contains the software source code.

Functionalities (continued…) Select a Technique: This choice group lets user select one of the four techniques he wants to apply Select a Class/Multiple Classes: Using this button the user can select either a single java file or multiple java files, depending on what he wants to analyze. Select an Explorer: It represents a choice group that enables the user to select one of the two explorers, ConExp and Galicia. The reason for adding Galicia to the interface was that for large number of classes having lots of methods and attributes, ConExp generates a huge lattice which makes it difficult to study. Galicia on the other hand displays only meaningful information which makes the lattice easier to analyze. Save Output File As: This button generates the binary file in the format supported by the concept explorer previously chosen and lets the user save the generated file to a path of his choice.

Functionalities (continued) Start Concept Explorer: This button launches a concept explorer, depending on what the user has chosen from the choice group. In the image shown below, ConExp has been launched.

Alerts No file Selected: If the user does not select any package of file and selects "Save Output File As" button, this alert is generated.

Alerts No technique Selected: This alert is generated if the user presses "Save Output As" button without selecting any technique No Explorer Selected: This alert is generated if the user presses "Save Output As" or "Start Concept Explorer" button without selecting any technique.

Confirmation Message Exit Confirmation Message: This confirmation dialog appears whenever the user closes the application uses the close button at the top right corner.

Techniques Supported Method Attribute Common Properties Class Coupling Client Code. Class Association Principle Class Views

Method Attribute It examines relationship between attributes and methods in a class. Its FCA context is as follows: O = All methods within a class A = Attributes of the current class R = method accesses an attribute This technique helps in detecting the degree of cohesion in a class and various code smells such as long method, large class etc.

Method Attribute

Common Members Detects hierarchies among multiple classes by finding common methods and attributes. Its FCA context is as follows: O = A class A = Common attributes and methods among class R = A class contains an attribute or method To correct hierarchical defects detected various refactoring such as Extract Class, Extract subclass or Extract super class can be applied.

Common Members

Class Coupling Determines the methods invoked and attributes accessed among multiple classes. Its FCA context is as follows: O = A class A = Attributes and Methods of classes. R = A class invokes a method or accesses an attribute of another class

Class Coupling

Client Code It analyzes a class hierarchy by examining the objects behavior in client code and suggests possible refactoring. Its FCA context is as follows: O = An object declared in client code. A = Attribute accessed or method invoked on the object. R = Object accesses an attribute or invokes a method.

Client Code

Class Association Its FCA context is as follows: O = All methods within a class A = Attributes of the current class and Classes it references. R = method accesses an attribute or references another class. It helps us to examine the behavior of a particular class and the degree of coupling to other classes. Various refactoring such as Extract method, Extract Class, Move Method can be applied to deal with the problems encountered

Class Association

Principle Class The group of methods and the type that these methods access and modify is known as a principal class. We consider only end user Types, primitive types are not considered. All methods that read from, write to or call the methods of a particular type are associated with the principle class of that type.

Java Code Principle Classes Derived

Views Three views can be extracted using FCA called fundamental, interaction and association. These views help in detecting class hierarchies by examining principal classes. These also help in reducing structure and information provided by the concept lattices generated for the classes. These views are explained as follows.

Fundamental view For fundamental view that formal Context would be as follows: O = All Methods within principal class. A = Attributes of the user-defined type associated to principal class. R = Method m reads or modifies an attribute of its associated type. It helps to provide a hierarchy of methods using attributes in a principal class.

Fundamental View Principle Classes Lattice for principle Class A Lattice for principle Class B

Common Interactions View For this view, we define the FCA context as follows: O = All Methods within principal class A = Method invocations R = method m calls method n. This helps understanding the interaction of various methods present within the principal classes for their possible categorization as interface methods or functionality provider.

Common Interaction View Principle Classes Lattice for principle Class A Lattice for Principle Class B Lattice for principle Class C

Association View FCA context is as follows: O = All methods within a current principal class A = Attributes of the current principal class, and other principal classes (except those linked by composition) R = m accesses an attribute of its type or accesses principal class (pc). This view depicts the degree of usage of a principal class within methods of the current principal and hence its place within the hierarchy of the principal class.

Association View Principle Classes Lattice for Principle class A Lattice for principle Class B

References Fernandez-Manjon, B. and Fernandez-Valmayor, A Building Educational Tools Based on Formal Concept Analysis. Education and Information Technologies 3, 3-4 (Dec. 1998), Formica, A Concept similarity in Formal Concept Analysis: An information content approach. Know.-Based Syst. 21, 1 (Feb. 2008), Dekel, U. and Gil, Y Revealing Class Structure with Concept Lattices. In Proceedings of the 10th Working Conference on Reverse Engineering (November , 2003). WCRE. IEEE Computer Society, Washington, DC, 353. Bhatti, M. U., Ducasse, S., and Huchard, M Reconsidering Classes in Procedural Object-Oriented Code. In Proceedings of the th Working Conference on Reverse Engineering - Volume 00 (October , 2008). WCRE. IEEE Computer Society, Washington, DC, Moha, N Detection and correction of design defects in object-oriented designs. In Companion To the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion (Montreal, Quebec, Canada, October , 2007). OOPSLA '07. ACM, New York, NY, Ar´evalo, G., Ducass, S., Nierstrasz O., Understanding Classes using XRay Views Institut f¨ur Informatik und angewandte Mathematik, University of Bern Bern, Switzerland Streckenbach, M. and Snelting, G Refactoring class hierarchies with KABA. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (Vancouver, BC, Canada, October , 2004). OOPSLA '04. ACM, New York, NY,