Introducing Allors Applications, Tools & Platform.

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
ITEC200 – Week03 Inheritance and Class Hierarchies.
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Data Abstraction and Object- Oriented Programming CS351 – Programming Paradigms.
OOP Languages: Java vs C++
Introduction To System Analysis and design
Software Engineering Muhammad Fahad Khan
Programming Languages and Paradigms Object-Oriented Programming.
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
Chapter 12: Adding Functionality to Your Classes.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
Polymorphism, Inheritance Pt. 1 COMP 401, Fall 2014 Lecture 7 9/9/2014.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Introduction To System Analysis and Design
Abstract Factory Design Pattern making abstract things.
Programming Languages and Paradigms Object-Oriented Programming (Part II)
Algorithm Programming Bar-Ilan University תשס"ח by Moshe Fresko.
Key Takeaway Points A use case is a business process; it begins with an actor, ends with the actor, and accomplishes a business task for the actor. Use.
Programming Languages and Paradigms Object-Oriented Programming.
Overloading Binary Operators Two ways to overload –As a member function of a class –As a friend function As member functions –General syntax Data Structures.
Relation Type Theory Foundations & Applications. Overview Introduction Type Theory Object Type Theory – Critique of Object Type Theory – Patches for Object.
Introduction to Object Oriented Programming CMSC 331.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
CSE 425: Data Types I Data and Data Types Data may be more abstract than their representation –E.g., integer (unbounded) vs. 64-bit int (bounded) A language.
1 Chapter 8 – Classes and Object: A Deeper Look Outline 1 Introduction 2 Implementing a Time Abstract Data Type with a Class 3 Class Scope 4 Controlling.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Allors for Developers. Overview Problems The Allors Solution Allors Jargon Allors Platform Allors Tools Allors Application.
Data Structures Using C++ 2E1 Inheritance An “is-a” relationship –Example: “every employee is a person” Allows new class creation from existing classes.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Object Oriented Software Development
Part VII: Design Continuous
Lecture 10 Concepts of Programming Languages Arne Kutzner Hanyang University / Seoul Korea.
 Objects versus Class  Three main concepts of OOP ◦ Encapsulation ◦ Inheritance ◦ Polymorphism  Method ◦ Parameterized ◦ Value-Returning.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
(1) ICS 313: Programming Language Theory Chapter 12: Object Oriented Programming.
Object Oriented Programming
CS-1030 Dr. Mark L. Hornick 1 Basic C++ State the difference between a function/class declaration and a function/class definition. Explain the purpose.
Introduction to Object-Oriented Programming Lesson 2.
OOP Review CS 124.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Classes, Interfaces and Packages
Domain Inheritance Scaling Agility using Domain Inheritance.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Presented by Ted Higgins, SQL Server DBA An Introduction to Object – Oriented Programming.
1 C# - Inheritance and Polymorphism. 2 1.Inheritance 2.Implementing Inheritance in C# 3.Constructor calls in Inheritance 4.Protected Access Modifier 5.The.
Author: DoanNX Time: 45’.  OOP concepts  OOP in Java.
C++ General Characteristics: - Mixed typing system - Constructors and destructors - Elaborate access controls to class entities.
A First Book of C++ Chapter 12 Extending Your Classes.
Object-Orientated Programming
SNSCT_CSE_PROGRAMMING PARADIGM_CS206
Object Oriented Analysis and Design
Java Programming Language
More Object-Oriented Programming
Chapter 8, Design Patterns Introduction
Lecture 10 Concepts of Programming Languages
Chapter 11 Class Inheritance
Presentation transcript:

Introducing Allors Applications, Tools & Platform

The Goal To Increase Software Manufacturability – Design for manufacturability (DFM) describes the process of designing or engineering a product in order to facilitate the manufacturing process in order to reduce its manufacturing costs. » _ for _ manufacturability

How to Achieve our Goal Ubiquitous Language Separation of Concerns Embrace, Extend and Evolve OO Support Agile Software Development Integrated, but Open and Extensible The KISS principle ("Keep it Simple, Stupid") states that design simplicity should be a key goal and unnecessary complexity avoided »

Separation of Concerns Functional Separation of Concerns – Use Subject Orientation Technical Separation of Concerns – An Integrated Pattern Language

Subject Orientation

In contrast with – Component Based Development – Service Oriented Architecture – Bounded Context in DDD Can be applied at – Source level (Allors) – Binary level (HyperJ)

Integrated pattern language An integrated pattern language – Strategy Based – Factory of Factories – Inversion of Control Dependency Injection Service Locator Event-driven programming

Strategy Based

Factory of Factories

Dependency Injection Constructor Injection public abstract class ObjectBase : IStrategyBased, IDeletable { private IStrategy strategy; protected ObjectBase(IStrategy allors) { this.strategy = allors; } public virtual IStrategy Strategy { get { return this.strategy; } }

Injection & Service Locator

Service Locator Management Static allocation of objects – Through configuration file – Through population Dynamic allocation of objects (JIT) – Through SessionCreated Event on Population – Through PropertyNotFound Event on Properties

Event-driven programming No need for explicit Observer Pattern Use of Association side of Relation

Embrace, Extend & Evolve OO Meta Domain Population Independence Rolling Transactions Disconnected Working Relation Oriented Analysis and Design (ROAD) – Multiple Type Declarations – 3 rd Generation OOAD – Relation Methods

Meta Domain

Subject Orientation

Population Independence Use ‘Best Fit for the job’ Population Currently available Populations – Memory (Connected & Disconnected) – Sql Scheduled Populations – File based

Rolling Transactions No explicit Transaction demarcation Always in a Transaction

Disconnected Working Just in Time Checkout & Explicit Check in

Relation Oriented Analysis & Design Relation Oriented vs Object Oriented Relation Oriented Methods Multiple Type Declarations 3 rd Generation OOAD

Who defines the behavior Is it the Object Type or the Relation Type!

Overloading RO Methods Same signature, Different behavior

Overloading RO Methods - Advantages New level of polymorphism More robust (contrary to Contract Based) – No null pointer exceptions Half way technology for Relation Orientation

Multiple Type Declarations Definition Advantages Example Implementation

Muldecs - Definition A Multiple Type Declaration (muldec) declares that the specified object should implement multiple types – the objects assigned to the variable should implement all types (usually interfaces) Muldecs can be supported at – The platform level (JVM, CLR, C++ linker …) – The language level (Java, C#, C++, …) – The framework level (Allors, …) Muldecs can be overloaded

Muldecs - Advantages Reduces the gap between statically and dynamically typed languages Less casting Higher level of modularization – Looser coupling is possible Better evolution – More additive Especially suited for 3 rd generation OOP

Muldecs - Example

Muldecs – Implementation in Allors

Muldecs - Notations C derivatives – type1 type2 … variable – methodName( type1 type2 … argument) Uml

3 rd Generation Object Oriented Programming (OOP) Can be seen as a evolution from – 1 st Generation OOP (Inheritance) – 2 nd Generation OOP (Delegation) Builds upon – Relation Oriented Method Overloading – Multiple Type Declaration

1 st Generation OOP

2 nd Generation OOP

3 rd Generation OO

Support Agile Software Dev. Focus on Customer Valued Functionality Automatic upgrades Unified Testing Immersive UI Testing

Integrated, but Open & Extensible Applications Meta Domain Roll your own Population Use Inversion of Control (IOC) – And everything is Open Source!

Allors Applications Prebuilt Subject Domains – To use either directly, or to extend – With a horizontal or vertical scope – Allowing flexible upgrades

Meta Domain Design time – Extend the Meta Domain Compile time – Use template engine to generate code/artefacts Runtime – Use Meta Domain at Runtime

Questions?