S3D Software Object Oriented Refactoring IMPA – Sistemas Gráficos 3D (2007) Mário de Sá Vera

Slides:



Advertisements
Similar presentations
Introduction to C++ An object-oriented language Unit - 01.
Advertisements

Code Generation in CDE Remi Lequette ILOG.
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
C++ Language Fundamentals. 2 Contents 1. Introduction to C++ 2. Basic syntax rules 3. Declaring and using variables.
Template. 2 Using templates, it is possible to create generic functions and classes. In a generic function or class, the type of data upon which the function.
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Templated Functions. Overloading vs Templating  Overloaded functions allow multiple functions with the same name.
Chapter 8 Scope, Lifetime and More on Functions. Definitions Scope –The region of program code where it is legal to reference (use) an identifier Three.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
COP 3331 Object Oriented Analysis and Design Chapter 7 – Design by Abastraction Jean Muhammad.
1 STL and Its Design Principles Alexander Stepanov.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 10 Object-Oriented Modeling.
Software Testing and Quality Assurance
ObjectDraw and Objects Early Chris Nevison Barbara Wells.
Class template Describing a generic class Instantiating classes that are type- specific version of this generic class Also are called parameterized types.
CS 2511 Fall Features of Object Oriented Technology  Abstraction Abstract class Interfaces  Encapsulation Access Specifiers Data Hiding  Inheritance.
CS 2511 Fall  Abstraction Abstract class Interfaces  Encapsulation Access Specifiers Data Hiding  Inheritance  Polymorphism.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Chapter 25 More Design Patterns.
CPS 108 : Spring What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Implementation Considerations Yonglei Tao. Components of Coding Standards 2  File header  file location, version number, author, project, update history.
Development of numerical library software in Java Feb 8, 2000 H.Okazawa, Shizuoka Seika College, Japan and T.Sasaki, KEK,Japan.
Introduction to MDA (Model Driven Architecture) CYT.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Afsin Ustundag. Preliminary Deliverables List of application layer modules Already in the OSEHRA Architecture document Number of applications: 168 Identification.
Component Basics CS6961 – Lecture 6 Nathan Dykman.
Porting Implementation of Packet Utilization Standard from ADA to JAVA Annelie Hultman (TEC-EME) Donata Pedrazzani (TEC-EMS) ESA/ESTEC 2004 JPUS de-briefing.
17-19 Oct, 2007Geant4 Japan Oct, 2007Geant4 Japan Oct, 2007Geant4 Japan 2007 Geant4 Collaboration.
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.
Rossella Lau Lecture 1, DCO10105, Semester B, DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 24P. 1Winter Quarter C++ Lecture 24.
Copyright © Curt Hill Generic Classes Template Classes or Container Classes.
1 Proving aspect-oriented programming laws Leonardo Cole Paulo Borba Alexandre Mota Informatics Center Federal University of.
CSSE501 Object-Oriented Development. Chapter 4: Classes and Methods  Chapters 4 and 5 present two sides of OOP: Chapter 4 discusses the static, compile.
Computer Engineering Rabie A. Ramadan Lecture 5.
CSE 8313 Spr 2003 M. DiazFundamentals of OO Design in UML/Page-Jones1 Object Oriented Principles – Chapter 8 Encapsulation and Connascence Encapsulation.
Programmeren 1 6 september 2010 HOORCOLLEGE 2: INTERACTIE EN CONDITIES PROGRAMMEREN 1 6 SEPTEMBER 2009 Software Systems - Programming1 Programming.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
API Hyperlinking via Structural Overlap Fan Long, Tsinghua University Xi Wang, MIT CSAIL Yang Cai, MIT CSAIL.
Modern C++ in practice.
1 Future of Abstraction Alexander Stepanov. 2 Outline of the Talk Outline of the Talk  What is abstraction?  Abstraction in programming  OO vs. Templates.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Migration to ISO C++ an overview Gabriele Cosmo CERN - IT/ASD.
Chapter 1 C++ Templates (Sections 1.6, 1.7). Templates Type-independent patterns that can work with multiple data types. Function Templates  These define.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
ESO - Garching 08 – 09 March, st ALMA Common Software Workshop XML « Data by Value » Transport.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Chapter 15 - C++ As A "Better C"
Passing from design to implementation
“Packages in Java”.
Design Patterns Damian Gordon.
A Survey of Object Orientation in Z
Component-Level Design
Object Design: Audio Subsystem
Implementing Architectures
C++ File Structure and Intro to the STL
Introduction to Computer Science for Majors II
Object Constraint Language (MDT OCL) 1
Object Design: Audio Subsystem
Programming Languages and Paradigms
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

S3D Software Object Oriented Refactoring IMPA – Sistemas Gráficos 3D (2007) Mário de Sá Vera

S3D OO Refactoring motivation refactoring strategies API source code documentation conclusion and further works

S3D OO Refactoring motivation :  formal object oriented language (C++) implementation  create a SOA through managers concept  source forge style API presentation  colaborative development (?)

S3D OO Refactoring refactoring strategies :  good C++ practices strongly typed (no void* or callbacks) MACROs replaced by generics (templates) parameters constraints (const and reference) no global declarations other than Managers  no third party components (STL containers only)  stdio deprecated IO replaced by new iostreams  no change to the algorithms  TODO and NOTE fields in the header files

S3D OO Refactoring API source code documentation :  Doxygen  must be extended  original code conventions were kept (?) OO API main features :  semantics : ColorMap, LightCone, AffineTransform  IO : Image, Single/MultiBandRaster  late binding : TextureMapping and Rasterizers/Shaders  control : Managers

S3D OO Refactoring conclusion  77 classes so far  unstable code further works  estabilization of the package  documentation  colaborative development infrastructure  course book re-edition with the OO code (?)