How To Understand And Understand Smalltalk

Size: px
Start display at page:

Download "How To Understand And Understand Smalltalk"

Transcription

1 Lessons in Software Evolution Learned by Listening to Smalltalk Oscar Nierstrasz scg.unibe.ch

2 Research Team Adrian Lienhard Adrian Kuhn Fabrizio Perin Lukas Renggli Jorge Ressia David Roethlisberger Niko Schwarz Toon Verwaest Erwann Wernli

3 Roadmap The trouble with change Smalltalk in a Nutshell Taming Software Change Epilogue Bringing Models Closer to Code

4 Roadmap Thetrouble trouble with change The with change Smalltalk in a Nutshell Taming Software Change Epilogue Bringing Models Closer to Code

5 How we enable change Package what is stable Define an interface for configuration

6 A brief history of software packaging

7 The Trouble with Software Change Specifying change Bridging the gap Understanding the system Understanding change Managing change

8 Roadmap The trouble with change Smalltalkinin a Nutshell Smalltalk a Nutshell Taming Software Change Epilogue Bringing Models Closer to Code

9 To thine own self be true Less is More The object model is as simple as possible, but no simpler Reify Everything Everything is an object is applied consistently You can change a Running System Smalltalk models itself, so changing the model changes the system

10 The origins of Smalltalk Alan Kay s Dynabook project (1968) Alto Xerox PARC (1973)

11 Smalltalk architecture Image Changes Virtual machine Sources

12 Everything happens by sending messages First unary, then binary, then keyword: 2 raisedto: factorial 128

13 A typical method Method name Return Argument Comment <= apoint "Answer whether the receiver is neither below nor to the right of apoint." ^ x <= apoint x and: [y <= apoint y] Block Binary message Instance variable Keyword message Unary message (2@3) <= (5@6) true

14 Everything is an object

15 Everything is an object

16 You can change a running system AKA: The Debugger is your Friend

17 Pharo an multi-platform, opensource Smalltalk Pharo by Example. Andrew Black, et al. Square Bracket Associates, 2009.

18 Roadmap The trouble with change Smalltalk in a Nutshell TamingSoftware Software Change Taming Change Epilogue Bringing Models Closer to Code

19 Moose: a platform for reverse engineering

20 Explicit metamodels enable change ConAn Van Hapax... CodeCrawler Smalltalk Extensible meta model Java COBOL C++ Model repository External Parser CDIF XMI Navigation Metrics Querying Grouping Smalltalk The Story of Moose: an Agile Reengineering Environment. Oscar Nierstrasz, Stéphane Ducasse, and Tudor Gîrba. ESEC/FSE 2005

21 Moose visualizations

22 Programming visualizations with CodeCrawler

23 Scripting visualizations with Mondrian Mondrian: An Agile Visualization Framework. Michael Meyer, Tudor Gîrba, and Mircea Lungu. SoftVis 2006

24 Moose a platform for collaborative research

25 Feature inheritance specialization

26 First-class traits enable fine-grained reuse

27 Class = superclass + state + traits + glue Traits provide and require methods The composing class retains control Traits: A Mechanism for fine-grained Reuse. Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Roel Wuyts and Andrew Black. ACM TOPLAS, March 2006

28 Traits and Classes share common behaviour

29 First-class aliases enable object flow analysis Practical Object-Oriented Back-in-Time Debugging. Adrian Lienhard, Tudor Gîrba, and Oscar Nierstrasz. ECOOP 2008.

30 A back-in-time VM with object flow analysis

31 GC remembers only what is needed

32 How to manage change in a running system? Encapsulating and Exploiting Change with Changeboxes. Marcus Denker, et al. ICDL 2007.

33 First-class changes enable scoped evolution

34 Roadmap The trouble with change Smalltalk in a Nutshell Taming Software Change Epilogue Bringing Models Closer to Code Epilogue Bringing Models Closer to Code

35 Systems that support change need to be model-centric and context-aware Model-centric systems are selfdescribing and can be adapted dynamically Context-aware systems control the scope of change to static or dynamic contexts

Dynamic Analysis. The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system.

Dynamic Analysis. The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system. Dynamic Analysis Tudor Gîrba www.tudorgirba.com The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system. One way to gain insights

More information

Stéphane Ducasse. 43 years INRIA Lille Nord Europe- LIFL/USTL - CNRS UMR8022

Stéphane Ducasse. 43 years INRIA Lille Nord Europe- LIFL/USTL - CNRS UMR8022 Stéphane Ducasse Senior Researcher (Directeur de recherche) 43 years INRIA Lille Nord Europe- LIFL/USTL - CNRS UMR8022 mailto:stephane.ducasse@inria.fr + 33 (0)3 20 43 42 56 http://stephane.ducasse.free.fr

More information

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool Michele Lanza Software Engineering Group Department of Informatics University of Zurich, Switzerland Stéphane Ducasse

More information

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript JSClassFinder: A Tool to Detect Class-like Structures in JavaScript Leonardo Humberto Silva 1, Daniel Hovadick 2, Marco Tulio Valente 2, Alexandre Bergel 3,Nicolas Anquetil 4, Anne Etien 4 1 Department

More information

Supporting Software Change in the Programming Language

Supporting Software Change in the Programming Language Supporting Software Change in the Programming Language Oscar Nierstrasz and Marcus Denker Software Composition Group University of Bern www.iam.unibe.ch/ scg Keywords: sofware evolution, languages, traits,

More information

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs César Couto 1,2, Pedro Pires 1, Marco Túlio Valente 1, Roberto S. Bigonha 1, Andre Hora 3, Nicolas Anquetil 3 1 Department

More information

Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities

Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities François Stephany Université de Mons & agilitic francois.stephany@agilitic.com Tom Mens Université de Mons tom.mens@umons.ac.be

More information

The Smalltalk Programming Language. Beatrice Åkerblom beatrice@dsv.su.se

The Smalltalk Programming Language. Beatrice Åkerblom beatrice@dsv.su.se The Smalltalk Programming Language Beatrice Åkerblom beatrice@dsv.su.se 'The best way to predict the future is to invent it' - Alan Kay. History of Smalltalk Influenced by Lisp and Simula Object-oriented

More information

RMoD Software Remodularisation

RMoD Software Remodularisation RMoD Software Remodularisation Research Theme: Communicating systems COM A: Project Proposal USTL/LIFL-INRIA 9 June 2007 Stéphane Ducasse 1 Outline! Building on expertise! RMoD! Team! Challenges and objectives!

More information

The Class Blueprint A Visualization of the Internal Structure of Classes

The Class Blueprint A Visualization of the Internal Structure of Classes The Class Blueprint A Visualization of the Internal Structure of Classes Michele Lanza Software Composition Group University Of Bern Bern, Switzerland lanza@iam.unibe.ch Stéphane Ducasse Software Composition

More information

Exploiting Dynamic Information in IDEs Eases Software Maintenance

Exploiting Dynamic Information in IDEs Eases Software Maintenance Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland roethlis@iam.unibe.ch Abstract The integrated development

More information

Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities

Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities François Stephany University of Mons & agilitic Place du Parc 20 7000 Mons, Belgium francois.stephany@agilitic.com

More information

CodeCrawler Lessons Learned in Building a Software Visualization Tool

CodeCrawler Lessons Learned in Building a Software Visualization Tool CodeCrawler Lessons Learned in Building a Software Visualization Tool Michele Lanza lanza@iam.unibe.ch - Software Composition Group - University of Berne, Switzerland Abstract Software visualization tools

More information

Modeling Examples to Test and Understand Software

Modeling Examples to Test and Understand Software Modeling Examples to Test and Understand Software Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Markus Gälli von Tübach (SG) Leiter der Arbeit:

More information

Génie Logiciel et Gestion de Projets. Evolution

Génie Logiciel et Gestion de Projets. Evolution Génie Logiciel et Gestion de Projets Evolution 1 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2 Evolution: Definitions

More information

Using Recovered Views to Track Architectural Evolution

Using Recovered Views to Track Architectural Evolution Using Recovered Views to Track Architectural Evolution Tamar Richner Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10, 3012 Berne,Switzerland richner@iam.unibe.ch,

More information

OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1

OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1 OOP? What is OOP? Why? OOP in a nutshell Stéphane Ducasse 2.1 Reality on Software Development Analyze Maintain Design Construct Test What is important? maintainability extensibility understandability Stéphane

More information

How To Create A Visualization In Java 2D With A Model Of A Class Diagram In A Programmable Model (Programmer)

How To Create A Visualization In Java 2D With A Model Of A Class Diagram In A Programmable Model (Programmer) Scripting Interactive Visualizations Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Michael Meyer im November 2006 Leiter der Arbeit Prof. Dr. Oscar

More information

Shrew A Prototype for Subversion Analysis

Shrew A Prototype for Subversion Analysis Technical Report Shrew A Prototype for Subversion Analysis Philipp Bunge Supervised by: Tudor Gîrba University of Bern, Switzerland Software Composition Group February 2007 Abstract With the growth of

More information

High-Level Views in Object-Oriented Systems using Formal Concept Analysis

High-Level Views in Object-Oriented Systems using Formal Concept Analysis High-Level Views in Object-Oriented Systems using Formal Concept Analysis Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Gabriela Beatriz Arévalo

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

dynamically typed languages Seaside: A Flexible Environment for Building Dynamic Web Applications

dynamically typed languages Seaside: A Flexible Environment for Building Dynamic Web Applications focus dynamically typed languages Seaside: A Flexible Environment for Building Dynamic Web Applications Stéphane Ducasse, Université de Savoie Adrian Lienhard and Lukas Renggli, University of Bern, Switzerland

More information

Software Visualization Tools for Component Reuse

Software Visualization Tools for Component Reuse Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New

More information

Flexible Object Layouts: enabling lightweight language extensions by intercepting slot access

Flexible Object Layouts: enabling lightweight language extensions by intercepting slot access Flexible Object Layouts: enabling lightweight language extensions by intercepting slot access Toon Verwaest, Camillo Bruni, Mircea Lungu, Oscar Nierstrasz To cite this version: Toon Verwaest, Camillo Bruni,

More information

Java Wiretap. Extracting Feature Execution Models for Reverse Engineering

Java Wiretap. Extracting Feature Execution Models for Reverse Engineering Java Wiretap Extracting Feature Execution Models for Reverse Engineering Julien Fierz Supervised by: Orla Greevy University of Bern, Switzerland Software Composition Group June 2007 Wiretap is a profiler

More information

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture Gustavo Santos, Nicolas Anquetil, Anne Etien, and Stéphane Ducasse RMoD Team INRIA, Lille, France {firstname.lastname}@inria.fr

More information

A Framework of Model-Driven Web Application Testing

A Framework of Model-Driven Web Application Testing A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China

More information

Seaside Dynamic Language Power for Web Development

Seaside Dynamic Language Power for Web Development Seaside Dynamic Language Power for Web Development Stéphane Ducasse a Adrian Lienhard b Lukas Renggli b a Language and Software Evolution Group, Université de Savoie, France b Software Composition Group,

More information

Understanding Software Static and Dynamic Aspects

Understanding Software Static and Dynamic Aspects Understanding Software Static and Dynamic Aspects Welf Löwe IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe Germany loewe@ira.uka.de Andreas Ludwig IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe

More information

Grouping in Object-Oriented Reverse Engineering

Grouping in Object-Oriented Reverse Engineering Grouping in Object-Oriented Reverse Engineering Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Daniele Talerico 2003 Leiter der Arbeit: Michele Lanza

More information

Representing Code History with Development Environment Events

Representing Code History with Development Environment Events Representing Code History with Development Environment Events Martín Dias Damien Cassou Stéphane Ducasse RMoD Inria Lille Nord Europe University of Lille Lifl Abstract Modern development environments handle

More information

Mondrian: An Agile Information Visualization Framework

Mondrian: An Agile Information Visualization Framework Mondrian: An Agile Information Visualization Framework In Proceedings of ACM Symposium on Software Visualization (SoftVis 2006) Michael Meyer Software Composition Group University of Bern, Switzerland

More information

McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0

McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0 1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level

More information

Software visualization. Why visualization?

Software visualization. Why visualization? Software visualization Tudor Gîrba www.tudorgirba.com Software Visualization is the use of typography, graphic design, animation, and cinematography with human-computer interaction and computer graphics

More information

A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint

A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint Michele Lanza Software Composition Group University Of Bern Bern, Switzerland lanza@iam.unibe.ch

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Natural Language Checking with Program Checking Tools

Natural Language Checking with Program Checking Tools Natural Language Checking with Program Checking Tools Fabrizio Perin Lukas Renggli Jorge Ressia Software Composition Group, University of Bern, Switzerland http://scg.unibe.ch/ Abstract Written text is

More information

Pattern-based Program Visualization

Pattern-based Program Visualization Pattern-based Program Visualization Daniela da Cruz 1, Pedro Rangel Henriques 1, and Maria João Varanda Pereira 2 1 University of Minho - Department of Computer Science, Campus de Gualtar, 4715-057, Braga,

More information

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Marco D Ambros and Michele Lanza Faculty of Informatics University of Lugano, Switzerland Abstract Versioning systems such as

More information

Evolution of the Major Programming Languages

Evolution of the Major Programming Languages 142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence

More information

A Modern Objective-C Runtime

A Modern Objective-C Runtime A Modern Objective-C Runtime Vol. 8, No. 1, January February 2009 David Chisnall In light of the recent modifications to the de facto standard implementation Objective- C language by Apple Inc., the GNU

More information

Program Understanding in Software Engineering

Program Understanding in Software Engineering Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert

More information

Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering

Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering Gabriela Arévalo, Stéphane Ducasse and Oscar Nierstrasz Software Composition Group University of Bern, Switzerland www.iam.unibe.ch/

More information

What is a programming language?

What is a programming language? Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there

More information

The leading platform for Model Driven Architecture (MDA) Content:

The leading platform for Model Driven Architecture (MDA) Content: The leading platform for Model Driven Architecture (MDA) Content: Models Made for Business... 2 ArcStyler Overview... 2 Main Benefits... 3 ArcStyler Editions... 4 ArcStyler Modules and Tool Architecture...

More information

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,

More information

SAPM Overview Semester Summary

SAPM Overview Semester Summary SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

What s New in VMware vsphere 5.1 VMware vcenter Server

What s New in VMware vsphere 5.1 VMware vcenter Server What s New in VMware vsphere 5.1 VMware vsphere 5.1 TECHNICAL MARKETING DOCUMENTATION V 1.0/UPDATED JULY 2012 Table of Contents Introduction... 3 Key Components... 3 vcenter Single Sign-On Server.... 3

More information

Software Visualization and Model Generation

Software Visualization and Model Generation Software Visualization and Model Generation Erik Doernenburg Software Developer ThoughtWorks, Inc. Gregor Hohpe Software Engineer Google, Inc. Where are the most defects? 2006 Erik Doernenburg & Gregor

More information

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

Software Analysis Visualization

Software Analysis Visualization 28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006

More information

On Porting Software Visualization Tools to the Web

On Porting Software Visualization Tools to the Web Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) On Porting Software Visualization Tools to the Web Marco D Ambros 1, Michele Lanza 1, Mircea Lungu 2, Romain Robbes

More information

Pattern-based Program Visualization

Pattern-based Program Visualization Proceedings of the International Multiconference on Computer Science and Information Technology pp. 1025 1036 ISSN 1896-7094 c 2007 PIPS Pattern-based Program Visualization Daniela da Cruz 1, Pedro Rangel

More information

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests Couto et al. Journal of Software Engineering Research and Development 2014, 2:1 SOFTWARE Open Access BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests Cesar Couto

More information

Semi-Automatic Generation of Monitoring Applications for Wireless Networks

Semi-Automatic Generation of Monitoring Applications for Wireless Networks Semi-Automatic Generation of Monitoring Applications for Wireless Networks André Lins, Eduardo F. Nakamura, Lincoln S. Rocha, Antônio A.F. Loureiro, Claudionor J.N. Coelho Jr. Department of Technological

More information

Goals, Processes, and Development Effort

Goals, Processes, and Development Effort Pharo s Vision Goals, Processes, and Development Effort http://www.pharo-project.org Stéphane Ducasse stephane.ducasse@inria.fr Marcus Denker marcus.denker@inria.fr Damien Pollet damien.pollet@inria.fr

More information

Supporting Simultaneous Versions for Software Evolution Assessment

Supporting Simultaneous Versions for Software Evolution Assessment Supporting Simultaneous Versions for Software Evolution Assessment Jannik Laval a, Simon Denier a, Stéphane Ducasse a, Jean-Rémy Falleri a a RMoD Team, INRIA Lille - Nord Europe, France, http://rmod.lille.inria.fr

More information

Software Evolution Analysis & Visualization

Software Evolution Analysis & Visualization Software Evolution Analysis & Visualization Harald C. Gall s.e.a.l. - software evolution & architecture lab University of Zurich, Switzerland http://seal.ifi.uzh.ch/gall University of Zurich Department

More information

How To Apply Software Archeology To Your Development Process

How To Apply Software Archeology To Your Development Process How To Apply Software Archeology To Your Development Process Presented for: EclipseCon 2008 Thursday, March 13, 2008 Michael Rozlog michael.rozlog@codegear.com CodeGear Who is Mike? You just said that

More information

Web Application Development

Web Application Development Web Application Development Approaches Choices Server Side PHP ASP Ruby Python CGI Java Servlets Perl Choices Client Side Javascript VBScript ASP Language basics - always the same Embedding in / outside

More information

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori

More information

Paris, October 5 2007 ICSM 2007 Working Session. Francesca Arcelli Fontana

Paris, October 5 2007 ICSM 2007 Working Session. Francesca Arcelli Fontana Paris, October 5 2007 ICSM 2007 Working Session Francesca Arcelli Fontana RE4APM RE University Industry APM Clients Reverse Engineering The process of analyzing a subject system to (i) identify the system

More information

Functional Programming

Functional Programming FP 2005 1.1 3 Functional Programming WOLFRAM KAHL kahl@mcmaster.ca Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling

More information

Magritte. Meta-Described Web Application Development. Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern

Magritte. Meta-Described Web Application Development. Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern Magritte Meta-Described Web Application Development Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Lukas Renggli Juni 2006 Leiter der Arbeit Prof. Dr.

More information

Comprensione del software - principi base e pratica reale 5

Comprensione del software - principi base e pratica reale 5 Prologue C era una volta Comprensione del software - principi base e pratica reale Reverse engineer 1 200 000 lines of C++ code in ca. 2300 classes * 2 = 2 400 000 seconds / 3600 = 667 hours 667 hours

More information

Modern Software Development Tools on OpenVMS

Modern Software Development Tools on OpenVMS Modern Software Development Tools on OpenVMS Meg Watson Principal Software Engineer 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms NXTware Remote Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms Gerrit Woertman CTO OpenVMS Business Generating Software gerrit@bgsoftware.nl +31 6 51341600 Introduction

More information

SOA and the Organization

SOA and the Organization SOA and the Organization Nicolai M. Josuttis IT-communication.com 12/07 1 2 Independent consultant continuously learning since 1962 Nicolai Josuttis Systems Architect, Technical Manager finance, manufacturing,

More information

Computer Information Systems (CIS)

Computer Information Systems (CIS) Computer Information Systems (CIS) CIS 113 Spreadsheet Software Applications Prerequisite: CIS 146 or spreadsheet experience This course provides students with hands-on experience using spreadsheet software.

More information

Design Patterns for Rapid Visualization Prototyping

Design Patterns for Rapid Visualization Prototyping Design Patterns for Rapid Visualization Prototyping Mark Giereth and Thomas Ertl Visualization and Interactive Systems Institute, University of Stuttgart {giereth,ertl}@vis.uni-stuttgart.de Abstract In

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

JOB DESCRIPTION APPLICATION LEAD

JOB DESCRIPTION APPLICATION LEAD JOB DESCRIPTION APPLICATION LEAD The Application Lead will provide functional support and to expand capabilities in the area of systems configuration. This function provides the initial step in the process

More information

Towards the Integration of Versioning Systems, Bug Reports and Source Code Meta-Models

Towards the Integration of Versioning Systems, Bug Reports and Source Code Meta-Models Towards the Integration of Versioning Systems, Bug Reports and Source Code Meta-Models Giuliano Antoniol 1 Massimiliano Di Penta 2 Harald Gall 3 Martin Pinzger 4 1,2 RCOST - Research Centre on Software

More information

Java Technology in the Design and Implementation of Web Applications

Java Technology in the Design and Implementation of Web Applications Java Technology in the Design and Implementation of Web Applications Kavindra Kumar Singh School of Computer and Systems Sciences Jaipur National University Jaipur Abstract: This paper reviews the development

More information

Research Topics in Software Composition

Research Topics in Software Composition Research Topics in Software Composition 1 Oscar Nierstrasz University of Berne 2 Abstract. Traditional software development approaches do not cope well with the evolving requirements of open systems. We

More information

The Phases of an Object-Oriented Application

The Phases of an Object-Oriented Application The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects

More information

Mining a Change-Based Software Repository

Mining a Change-Based Software Repository Mining a Change-Based Software Repository Romain Robbes Faculty of Informatics University of Lugano, Switzerland 1 Introduction The nature of information found in software repositories determines what

More information

Génie Logiciel et Gestion de Projets. Patterns

Génie Logiciel et Gestion de Projets. Patterns Génie Logiciel et Gestion de Projets Patterns 1 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028 Each pattern

More information

Parsing by Example. Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern. vorgelegt von.

Parsing by Example. Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern. vorgelegt von. Parsing by Example Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Markus Kobel März 2005 Leiter der Arbeit: Prof. Dr. Oscar Nierstrasz Prof. Dr. Horst

More information

BUILDING OLAP TOOLS OVER LARGE DATABASES

BUILDING OLAP TOOLS OVER LARGE DATABASES BUILDING OLAP TOOLS OVER LARGE DATABASES Rui Oliveira, Jorge Bernardino ISEC Instituto Superior de Engenharia de Coimbra, Polytechnic Institute of Coimbra Quinta da Nora, Rua Pedro Nunes, P-3030-199 Coimbra,

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

Enterprise Architecture Process, Structure and Organization

Enterprise Architecture Process, Structure and Organization Organizational development Enterprise Process, Structure and Organization t-eam* - a framework derived from project experience Dipl.-Inform. Klaus D. Niemann Managing Director...act! consulting GmbH Glockengießerwall

More information

The PECOS Software Process

The PECOS Software Process The PECOS Software Process Michael Winter 2, Christian Zeidler 1, Christian Stich 1 PECOS is a collaborative project between industrial and research partners that seeks to enable component-based technology

More information

HTTP Fundamentals. Sven Van Caekenberghe http://stfx.eu. Il y a une vie après Ruby on Rails : Web 3.0 avec Pharo EuraTechnologies, Lille 2013-06-06

HTTP Fundamentals. Sven Van Caekenberghe http://stfx.eu. Il y a une vie après Ruby on Rails : Web 3.0 avec Pharo EuraTechnologies, Lille 2013-06-06 HTTP Fundamentals Sven Van Caekenberghe http://stfx.eu Il y a une vie après Ruby on Rails : Web 3.0 avec Pharo EuraTechnologies, Lille 2013-06-06 software as a service vehicle trace & track and fleet management

More information

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Hyeon Soo Kim School of Comp. Eng. and Software Eng., Kum Oh National University

More information

ARCHITECTURE FOR INDUSTRIAL MONITORING SYSTEMS

ARCHITECTURE FOR INDUSTRIAL MONITORING SYSTEMS ARCHITECTURE FOR INDUSTRIAL MONITORING SYSTEMS Assoc.Prof.Dr.Eng. Sorin Aurel MORARU MSc.Eng.Drd. Adrian PELCZ Senior Lecturer Drd.Eng. Liviu PERNIU Assoc.Prof.Dr.Eng. Adrian CRACIUN Automatics Department,

More information

Quality Validation for Mobile Embedded Software

Quality Validation for Mobile Embedded Software International Journal of Advanced Science and Technology 43 Quality Validation for Mobile Embedded Software Haeng-Kon Kim 1, Roger Y Lee 2 1 Dept. of Computer information & Communication Engineering Catholic

More information

XXI. Object-Oriented Database Design

XXI. Object-Oriented Database Design XXI. Object-Oriented Database Design Object-Oriented Database Management Systems (OODBMS) Distributed Information Systems and CORBA Designing Data Management Classes The Persistent Object Approach The

More information

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1 The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose

More information

MiniDraw Introducing a framework... and a few patterns

MiniDraw Introducing a framework... and a few patterns MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation

More information

Software Engineering & Architecture

Software Engineering & Architecture Software Engineering & Architecture 11. QUALITY METRICS AND VISUALIZATION Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems References Some

More information

Improvement of Software Quality and Productivity Using Development Tools

Improvement of Software Quality and Productivity Using Development Tools Improvement of Software Quality and Productivity Using Development Tools V Hideo Abotani V Tomoki Shiratori V Kouji Sasaki V Masaki Tonomura (Manuscript received March 24, 2006) Information systems, which

More information

Copyright 1997 by Alec Sharp PDF-Conversion by Lukas Renggli Download more free Smalltalk-Books at: The University of Berne:

Copyright 1997 by Alec Sharp PDF-Conversion by Lukas Renggli Download more free Smalltalk-Books at: The University of Berne: Copyright 1997 by Alec Sharp PDF-Conversion by Lukas Renggli Download more free Smalltalk-Books at: The University of Berne: http://www.iam.unibe.ch/~ducasse/webpages/freebooks.html European Smalltalk

More information

Which Enterprise Architect Edition Should I Purchase?

Which Enterprise Architect Edition Should I Purchase? Which Enterprise Architect Edition Should I Purchase? Enterprise Architect is available in six editions -,, and Software, Corporate, Professional and Desktop. Functionality for each edition is as follows:.eap

More information