Object-Oriented Programming and the Progress ABL Tomáš Kučera Principal Solution Engineer / EMEA Power Team.

Slides:



Advertisements
Similar presentations
Software Engineering Key design concepts Design heuristics Design practices.
Advertisements

DEV-2: Getting Started with OpenEdge® Architect – Part I
The Next Generation OpenEdge® IDE
1 Chapter 6: Extending classes and Inheritance. 2 Basics of Inheritance One of the basic objectives of Inheritance is code reuse If you want to extend.
OpenEdge® Object-oriented ABL
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
CM10134-CM50147 Programming I Basic Programming in Java Marina De Vos.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Object Oriented System Development with VB .NET
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Objects First with Java A Practical Introduction using BlueJ
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
Object-Oriented Databases
Dept. of Computer Engineering, Amir-Kabir University 1 Design Patterns Dr. Noorhosseini Lecture 2.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
1 CMPT 275 Software Engineering Revision Control.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
New Generation of OpenEdge ® RDBMS Advanced Storage Architecture II Tomáš Kučera Principal Solution Engineer / EMEA Power Team.
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
What is Object-Oriented Programming?. Objects – Variables and Logic inside "Objects", not standalone code – Objects contain related variables and functions.
Introduction To System Analysis and design
Programming Languages and Paradigms Object-Oriented Programming.
Introduction to Object-oriented programming and software development Lecture 1.
Objects and Components. The adaptive organization The competitive environment of businesses continuously changing, and the pace of that change is increasing.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
Object-oriented programming in the Progress® 4GL 10.1A Beta
INT-11: It’s Monday Morning, Do You Know Where Your Service Has Been? Service Management with Sonic ™ and Actional Marv Stone Progress Software.
Object Oriented Programming with JAVA Arash N. Kia AlZahra University Definitions – Part 1.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
ARCH-03: Implementing the OpenEdge™ Reference Architecture – Part 1 John Sadd Progress Fellow and OpenEdge Evangelist.
Features of Object Oriented Programming Lec.4. ABSTRACTION AND ENCAPSULATION Computer programs can be very complex, perhaps the most complicated artifact.
Stephenson College DP 96 1 Object-Orientation by Derek Peacock.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Systems Analysis and Design in a Changing World, 3rd Edition
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
Lecture 12 March 16, The Scope of a Variable What if there are two variables with the same name? –A local or block-local variable can have the same.
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
DEV-6: Advanced Object-Oriented Programming in the ABL Evan Bleicher Senior Development Manager Shelley Chase
9-Dec Dec-15  INTRODUCTION.  FEATURES OF OOP.  ORGANIZATION OF DATA & FUNCTION IN OOP.  OOP’S DESIGN.
Object-Oriented Programming. Objectives Distinguish between object-oriented and procedure-oriented design. Define the terms class and object. Distinguish.
More Design Patterns From: Shalloway & Trott, Design Patterns Explained, 2 nd ed.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Introduction to Object-Oriented Programming Lesson 2.
A7: Architecting Your Application in OpenEdge ® 10 Mike Ormerod Applied Architect.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Presented by Ted Higgins, SQL Server DBA An Introduction to Object – Oriented Programming.
CSCI 171 Presentation 15 Introduction to Object–Oriented Programming (OOP) in C++
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Industrial Group Project Introduction to Object Oriented Programming Adelina Basholli, February, 2016.
CSCE 240 – Intro to Software Engineering Lecture 3.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
Object-Oriented Design
CSC 222: Object-Oriented Programming
Object-Orientated Programming
MOVE-11: Using Classes and Procedures in OpenEdge® 10
Why Object-oriented Programming?
DEV-08: Exploring Object-oriented Programming
COP 3330 Object-oriented Programming in C++
Presentation transcript:

Object-Oriented Programming and the Progress ABL Tomáš Kučera Principal Solution Engineer / EMEA Power Team

© 2007 Progress Software Corporation2 > whoami  Started with Progress Software Czech Republic – Dec 19, 1994  2 Technical Support (1996 at ETSC)  Since Dec 1996 – Consultant, Presales, Trainer, Project Manager  Currently – GFS Mgmt responsibilities for Cze&Pol, Member of the EMEA Power Team – primary responsibility for SAND  Product Areas: OpenEdge, Sonic, some Apama and Actional  Contact: Skype: tomas_kucera TKU

© 2007 Progress Software Corporation3 Agenda  Obligatory Theory  Simple Sample

© 2007 Progress Software Corporation4 What are Objects?  You interact with objects everyday A customer An order  All objects contains state and behavior What they can do and what changes when they do  Software objects represent these as: Data ( like 4GL variables ) Methods ( like 4GL procedures) Your car The telephone

© 2007 Progress Software Corporation5 Object-Oriented Principles  Abstraction Break up complex problem Focus on public view, commonalities  Encapsulation Hide implementation details Package data and methods together  Hierarchies Build new objects by referencing or extending other objects

© 2007 Progress Software Corporation6  Type Enforces type consistency at compile time  Class Defines type with data and methods and provides implementation  Object Runtime instantiation of class  Interface Defines type with only methods – no implementation provided Object-Oriented Constructs

© 2007 Progress Software Corporation7 Why should I care about Object-Orientation?  Object-orientation is a highly structured way to build applications Simpler modeling tool integration, e.g. roundtrip engineering  Code benefits Less bugs More reuse  Business benefits Time to market Better maintainability Object-orientation’s big benefits

© 2007 Progress Software Corporation8 Why should I care about Object-Orientation?  Strong Typing Less runtime processing Improved quality through finding errors at compile-time Class hierarchy known at compile-time  Re-use Abstraction means code re-use Classes can be deployed for re-use Improved quality and higher productivity How do we get the benefits?

© 2007 Progress Software Corporation9  Requires more forethought than procedural Type hierarchies can be hard to change –Refactoring and modeling can help  Requires a base class library to get started Base classes can take a while to build  Different mindset from procedural Easier, if you have worked with super procedures before Unfortunately it is not totally free

© 2007 Progress Software Corporation10 Object-Orientation versus Procedural  “Types” are created at run-time  Type definition is loosely bound  Inheritance is determined at run-time  Provides flexibility for generic code  Types are known at compile time  Type definition is contractual  Inheritance is set at design-time  Prevents run-time type errors Procedural OO

© 2007 Progress Software Corporation11 Mapping Procedures to Classes  Procedure Files (.p)  Main block code  Internal Procedures  Functions  ON CLOSE  Super procedures  Class Files (.cls)  Constructor  Void Methods  Method  Destructor  Inheritance Procedure Class

© 2007 Progress Software Corporation12 Agenda  Obligatory Theory  Simple Sample

© 2007 Progress Software Corporation13 Simple Sample  Create a solution using Progress OOABL that will perform the following: Feature #1- it will retrieve data from a specific database table into a temp-table based on provided WHERE phrase and will provide access to it Feature #2 - it will check access privileges to the table Feature #3 - it will display the data The Scenario

© 2007 Progress Software Corporation14 Simple Sample  Standard Progress ABL  Sophisticated Progress ABL with includes, persistent procedures, super procedures  Progress OOABL Quiz: The Approach

© 2007 Progress Software Corporation15 Simple Sample  Standard Progress ABL  Sophisticated Progress ABL with includes, persistent procedures, super procedures  Progress OOABL Answer: The Approach

© 2007 Progress Software Corporation16 Simple Sample  Encapsulation  Inheritance  Typing  Interfaces  Polymorphism  Delegation What we will see and will not see  Encapsulation  Inheritance  Typing  Interfaces  Polymorphism  Delegation

© 2007 Progress Software Corporation17 Simple Sample The Model

© 2007 Progress Software Corporation18 Simple Sample Let‘s do it!

© 2007 Progress Software Corporation19 Question? Tomáš Kučera Skype: tomas_kucera customer

© 2007 Progress Software Corporation20 Where to get more Information resources  OpenEdge Documentation: Getting Started: 10.1B Object-oriented Programming manual  PSDN - Library – Products – OpenEdge – Development Tools & Language – Advanced Business Language (ABL) Library – Product Documentation – OpenEdge Release 10.1B Product Documentation – Getting Started

© 2007 Progress Software Corporation21