2 Software CASE tools state-of-the-art UML modeling Partially automatic code generation Refactoring browsers (occasionally) Context-sensitive search and.

Slides:



Advertisements
Similar presentations
Comparison of Several Meta-modeling Tools 2 Yi Lu Computer Science Department McGill University
Advertisements

Tutorial 12: Enhancing Excel with Visual Basic for Applications
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Chapter 10 Introduction to Arrays
Chapter 10 THINKING IN OBJECTS 1 Object Oriented programming Instructor: Dr. Essam H. Houssein.
T-FLEX DOCs PLM, Document and Workflow Management.
Object-Oriented Analysis and Design
1 SWE Introduction to Software Engineering Lecture 13 – System Modeling.
CS 330 Programming Languages 09 / 13 / 2007 Instructor: Michael Eckmann.
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Introduction to UML Visual modeling Models and its importance
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 1 Program Design
Artificial Intelligence Research Centre Program Systems Institute Russian Academy of Science Pereslavl-Zalessky Russia.
Object-Oriented Analysis and Design
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved COS240 O-O Languages AUBG,
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 8: More About OOP and GUIs.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Avalanche Internet Data Management System. Presentation plan 1. The problem to be solved 2. Description of the software needed 3. The solution 4. Avalanche.
Author: James Allen, Nathanael Chambers, etc. By: Rex, Linger, Xiaoyi Nov. 23, 2009.
COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Artificial Intelligence
Afsin Ustundag. Preliminary Deliverables List of application layer modules Already in the OSEHRA Architecture document Number of applications: 168 Identification.
Winter 2007SEG2101 Chapter 71 Chapter 7 Introduction to Languages and Compiler.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Chapter 9 Moving to Design
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
Introduction to Computer Programming Using C Session 23 - Review.
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
UML-1 3. Capturing Requirements and Use Case Model.
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
ADTs and C++ Classes Classes and Members Constructors The header file and the implementation file Classes and Parameters Operator Overloading.
UML-1 8. Capturing Requirements and Use Case Model.
Data Structures Using C++ 2E1 Inheritance An “is-a” relationship –Example: “every employee is a person” Allows new class creation from existing classes.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
Introducing JavaScript. Goals By the end of this lecture you should … Be able to describe the differences among object methods, object properties and.
Artificial Intelligence Research Center Pereslavl-Zalessky, Russia Program Systems Institute, RAS.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
ISBN Chapter 3 Describing Semantics.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
SWEN 5231 FORMAL METHODS Slide 1 System models u Abstract presentations of systems whose requirements are being analyzed.
C++ Inheritance Data Structures & OO Development I 1 Computer Science Dept Va Tech June 2007 © McQuain Generalization versus Abstraction Abstraction:simplify.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
1 Abstract Model Specification. 2 Explicitly describes behavior in terms of a model using well-defined types (viz. set, sequences, relations, functions)
Passing Parameters. 2 home back first prev next last What Will I Learn? List the types of parameter modes Create a procedure that passes parameters Identify.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Presented by: Samia Azhar( ) Shahzadi Samia( )
CMPB454 ARTIFICIAL INTELLIGENCE (AI) CHAPTER 1.1 Background Information CHAPTER 1.1 Background Information Instructor: Alicia Tang Y. C.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Some Thoughts to Consider 5 Take a look at some of the sophisticated toys being offered in stores, in catalogs, or in Sunday newspaper ads. Which ones.
Functions, Part 1 of 3 Topics  Using Predefined Functions  Programmer-Defined Functions  Using Input Parameters  Function Header Comments Reading 
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
Collision Theory and Logic
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Collision Theory and Logic
Introduction to Programming for Mechanical Engineers (ME 319)
What would be our focus ? Geometry deals with Declarative or “What is” knowledge. Computer Science deals with Imperative or “How to” knowledge 12/25/2018.
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
What would be our focus ? Geometry deals with Declarative or “What is” knowledge. Computer Science deals with Imperative or “How to” knowledge 2/23/2019.
Introducing JavaScript
Presentation transcript:

2 Software CASE tools state-of-the-art UML modeling Partially automatic code generation Refactoring browsers (occasionally) Context-sensitive search and filters Visual interface building Business logic support Design and coding only – no analysis

3 Abbott’s method In 1983 Russel J. Abbott formulated a method of program development by informal English descriptions. Basics: English syntax contains enough information to consider some abstract to be an object, attribute or method.

4 Abbott’s method A subject (syntactical) is considered to be an object. A predicate is considered to be a method. All the modifiers are considered to be attributes of objects or parameters of methods. The suggested approach helps to perform object-oriented analysis.

5 Abbott’s problem «Although the process we follow in formalizing the strategy may appear mechanical, it is not (given the current state- of-the-art of computer science) an automatable procedure. The process of identifying the data types, objects, operators, and control structures, even given the English informal strategy, requires a great deal of real-world knowledge and an intuitive understanding of the problem domain. It is not just a matter of examining the English syntax.» Russel J. Abbott

6 The ObjectSage The ObjectSage is a try to solve Abbott’s problem automatically. Input: informal textual description. Output: C++ *.h file with class declarations. The existing prototype has some restrictions described below.

7 Current restrictions Text: –no pronouns –just a few syntactical structures –no modal verbs etc. Object model: –no variables – types only –no return values for function –almost no simple types

8 Demo Just look at this! It seems to be working! Launch the demo

9 Troubles Different meanings of the same word “ Time files like arrows” © M. Geipel Insufficient information “It’s raining” – whom do you mean? Unknown words (specific for problem domain) “A fricosoid could be either cormable or discormable” … Note: there is no need in understanding certain meaning of each word or sentence, in most cases just relative semantics is enough!

10

11

12

13

14

15

16

17

18 Background knowledge Categories (partially supported) Words are coupled by semantics Privileges (unsupported) The problem domain might have more and less related areas, that could be described by semantic privileges Primitive types (unsupported) Not all the data is represented by classes, there are also simple integers, character and strings Existing classes (unsupported) An existing architecture could give some guidelines while adding new classes

19

20 Repository refactoring Initially we do not get any class hierarchy – just a heap of classes with no connections. To improve the model quality we use several heuristics, which are mostly aimed to determining inheritance.

21

22

23

24

25

26

27

28

29

30

31

32

33 Usage Pre-processing of the requirements. Incremental architecture building Increasing an existing architecture Classes already created by human-developers can give guidelines to The ObjectSage.

34 eXtreme Programming The ObjectsSage seems to be useful in the XP process: User histories could be processed incrementally, using existing architecture Each user history is semantically homogeneous – no misunderstanding Refactoring allows to improve the architecture quickly

35 Thank you for your attention. Any questions?