Generation and Handcoding
|
|
|
- Edgar Lloyd
- 9 years ago
- Views:
Transcription
1 Farbe! Generative Software Engineering 3. Integrating Handwritten Code Prof. Dr. Bernhard Rumpe University Page 2 Generation and Handcoding Not everything shall and can be generated Code is fine, when model would not be more abstract How to integrate hand written code with generated code General principles How they apply in DEX model Parameterized generator hand written code API generated code + included parts API Predefined Predefined Predefined components runtime system Generator script/template Environment: hardware, GUI, frameworks Map: concept code
2 Page 3 Goals of Handcoding The goal of handcoding extend domain model add functionality to generated code customizegenerated code Benefits of handcoding Normally re-generation is not needed Reuse of existing handwritten code Tooling (e.g. editor) for the programming language can be used DEX supports extensions for domain model with attributes and method bodies domain model with signatures generated GUI code Page 4 Handwritten Code Handcoding (HC) = the process of writing code manually (by hand) vs. generating code (GC), where the code comes from the generator. Important questions to decide: Artefacts of interest for users? What to write, what to read and understand Generating and handcoding in which order? Repeatable generation? Dependences between the forms of code? Methodical alignment Which knowledge is necessary for the developer the generating tool the compiler, linker and virtual machine
3 Page 5 Mixing of HC and Generation in Artifacts Scenario A: 1. Let the generator produce code frames in files 2. Add code manually, e.g. method implementations Advantage: HC is well integrated inside GC Disadvantage: One shot generation only Model becomes irrelevant because useless after generation, Changes in models impossible Doesn t support evolution Decision: Strict separation of handcoding and generation on artifacts! Each artifact (= file) is either handcoded or generated. Page 6 Mixing of HC and Generation in Artifacts -2 Scenario B: 1. Let the generator produce code frames in files Generate explicit markers to protect regions of HC 2. Add code manually in protected regions Advantage: Easy to use and easy to identify where to handcode Necessary: Extraction of HC for inclusion in next generation step Disadvantages: Not robust e.g. against editing Vulnerable against advanced tools (e.g. beautifiers) No clean full generation possible Generated code needs to be version controlled public class Person { public String getfullname () { /* [protected GEN#XwgHEge23qp (method getfullname)] */ // to be handcoded /* [/protected GEN#XwgHEge23qp] */
4 Page 7 Separation of HC and GC in Artifacts Each artifact (file) is either HC or GC. Advantages: Only sources (HC and models) need to be versioned this greatly reduces conflicts and helps understanding progress from the version control logs Developers normally don t read generated code just understand the interfaces Clean & regenerate always works Necessary: HC needs to be written and integrated Page 8 Alternatives for Integration of HC 1. Reference it from the model. Ch. 2 for attributes & DEX would allow method signatures & bodies in a CD, but that pollutes the CD (not recommended) 2. Compiler: no that doesn t work We would need partial classes, not provided by 3. When starting at runtime 3a) Write your own main()-function and call HC to configure GC that is fine and actually used by many frameworks 3b) write static-code pieces: no, because classes are loaded lazy in (and thus static code may be never called) 4. Config file Works, but is error prone because it looses type safety. 5. Generator identifies HC and integrates references to it HC to follow naming conventions to be identified
5 Page 9 Overview of Product with HC Generated DEX product has this architecture HC internal architecture is out of generators control: But it is recommended to maintain the architecture GUI hand coded generated RTE standard components Application Core hand coded generated RTE standard components Persistence hand coded generated RTE standard components Page 10 Generator detects HC, the Principle: Approaches DEX uses: (Placeholder X) 1. Extending signature and implementation of domain class X.java When XSIG.java exists inherit it in X.java When XEIMP.java exists use it in the factory (assuming it is a subclass of XIMP) 2. Specific Hot Spots documented in the generator handbook. Extending signature, implementation and hot spots is based on naming conventions (e.g. XSIG, XEIMP)
6 Farbe! Generative Software Engineering 3. Integrating Handwritten Code 3.1. Extension of Generated Code Prof. Dr. Bernhard Rumpe University Page 12 Generated Artifacts in DEX What DEX does: One class is mapped to an interface an implementation, and a factory for object creation CD SocNet class Group extends Profile { // String purpose; «interface» Group + String getpurpose(); + void setpurpose(string s) GroupImpl GroupFactory +static Group create() #Group docreate() - String purpose; + String getpurpose(); + void setpurpose(string s)
7 Page 13 Extending the Implementation and adapting generated functionality by defining HC class XEIMP that inherits GC handcoded class «interface» Group GroupImpl GroupEIMP GroupFactory +static Group create() #Group docreate() Generator adapts only the GroupFactory now GroupEIMP objects are created Necessary: GroupEIMP is subclass of GroupImpl EIMP was chosen to prevent occasional use EIMP = extended implementation Product-CD import GroupEIMP; class GroupFactory protected Group docreate() { return new GroupEIMP(); adapted Factory Page 14 How to add handcoded classes Two steps are required to add handcoded classes in DEX 1. Create handcoded class GroupEIMP 2. Implement the full and the empty constructor of GroupImpl public class GroupEIMP extends GroupImpl { public GroupEIMP() { super(); attributes of class GroupImpl protected GroupEIMP(String profilename, boolean isopen, Date created, String purpose) { super(profilename, isopen, created, purpose); (3. Override methods and add attributes/methods )
8 Page 15 How to add attributes to the domain model The domain model can be extended by adding attributes public class GroupEIMP extends GroupImpl { private String newattribute = "My String"; //... new domain model attribute Properties of these attributes not visible in the GUI not saved in the database Page 16 How to add Methods Application functionality can be extended by adding new methods This brings the meat to the application public class GroupEIMP extends GroupImpl { //... public String groupoverview (){ return "Group Overview: " + getpurpose() + " " + getheadcount(); new method Limitations New methods do not appear in the signature of the Group interface
9 Page 17 How to implement derived Attributes Derived attribute does have an empty default implementation as get/retrieve-method Add meaning to the derived attribute using HC by overriding the getter Model-CD Group /int headcount; public class GroupEIMP extends GroupImpl { public int getheadcount() { return sizemembers()+ sizeorganizers(); Every generated method can be overwritten Incl. ordinary get/setters for attributes Association methods Page 18 DEX Example for Derived Attributes derived attributes are shown in the gui
10 Page 19 Overwriting Generated Methods Generated methods can be adapted by HC Group boolean isopen Date created String purpose /int headcount Model-CD overrride public class GroupEIMP extends GroupImpl { //constructors... public void setpurpose(string pname) { StatusBar.write("Group "+profilename +" new purpose "+pname) super.setpurpose(pname); Log result is shown in the bottom line on the GUI Logging Page 20 Extending the Implementation Advantages: relatively little effort to adapt implementation adaptable reuse of generated implementation smooth integration of HC artefact Product-CD «interface» Group Restriction: Only one subclass supported GroupImpl GroupEIMP Disadvantages: IDEs don t assist when superclass hasn t been generated yet = many false errors are reported after fresh checkout or a clean some risk of unwanted occasional detection of *EIMP re-generation necessary after EIMP-class is created (or deleted) to get adapted factory
11 Farbe! Generative Software Engineering 3. Integrating Handwritten Code 3.2. Extending Data Model Signature Prof. Dr. Bernhard Rumpe University Extending the Signature of a Class Page 22 by defining HC interface XSIG that inherits to GC Product-CD public interface GroupSIG { String getfullname(); «interface» GroupSIG 1. Generator detects XSIG.java 2. Generated code is adapted to implement the new interface 3. Generator also expects XEIMP.java, because XImpl is now abstract «interface» Group GroupImpl GroupEIMP Signature extensions (methods) are inherited to interface X.java and handcoded in XEIMP.java Sandwich -Principle for extension
12
13 Page 25 Signature Extensions Summary Advantages Separation of generated and handwritten artifacts Signature extensions in HC interfaces Supports redefinition of generated functionality Supports implementation of internally available methods and attributes Disadvantages/problems Signature of methods need to be repeated at implementation Re-generation is necessary when SIG/EIMP-class is added or removed Farbe! Generative Software Engineering 3. Integrating Handwritten Code 3.3. Hot Spots for the DEX GUI Prof. Dr. Bernhard Rumpe University
14 Page 27 Hot Spot A hot spot is a place in the generated code that is planned for adaptation by handwritten code. The adaptation is carried out through the generator detecting and including appropriate HC. Hot spot documentation needs: A) How does a hot spot look like e.g. naming conventions for the class B) Signature the hot spot has to provide C) What is the API the hot spot can use The approach is similar to framework hot spots. Page 28 Hot Spots in DEX Often the GUI of a DEX product needs adaptation More functions, more screens, nicer appearance, GUI can be customized by adding handwritten extensions DEX has e.g. hot spots prepared for Menu Extension Home Screen Adaptation Panel Extensions Startup and TearDown Phases Adapting a hot spot needs some knowledge about the mechanisms of the adapted GUI. Examples of DEX SocNet adaptations: see DEX website:
15 Page 29 Hot Spot: Menu Extension Purpose: Add menu items Hot spot class: MainWindowViewEIMP Methods to override: extendmenu() Available API: addmenuitem(), public class MainWindowViewEIMP extends MainWindowView { //constructors public void extendmenu() { JideMenu m = new JideMenu("StatusBar"); JMenuItem item = new JMenuItem("print"); m.add(item); item.addactionlistener(new ActionListener() public void actionperformed(actionevent e) { StatusBar.write("Menue item print was clicked"); ); addmenuitem(m); Page 30 How to Adapt the Home Screen Purpose: Customize home screen Hot spot class: MainWindowPresenterEIMP Methods to override: sethometitle() Available API (see code): Swing public class MainWindowPresenterEIMP extends MainWindowPresenter { //constructors public JPanel sethometitle() { JPanel panel = new JPanel(); panel.setlayout(null); JLabel lblsystem = new JLabel("SocNet System"); lblsystem.sethorizontaltextposition(swingconstants.center); lblsystem.sethorizontalalignment(swingconstants.center); lblsystem.setfont(new Font("Tahoma", Font.PLAIN, 40)); panel.setlayout(new BorderLayout(0, 0)); panel.add(lblsystem, BorderLayout.CENTER); return panel;
16 Page 31 Adapting Panels Purpose: Customize Panel for Specific Domain Class X Hot spot class: XEditPanelViewEIMP Methods to override: getxpanelcomponent() Available API (see code): Swing Reusable: Methods from XEditPanelView Product-CD «interface» ITagEditPanelView TagEditPanelView TagEditPanelView TagEditPanelViewEIMP public class TagEditPanelViewEIMP extends TagEditPanelView { //constructors public ITagPanelComponentView gettagpanelcomponent() { //... Page 32 StartUp & TearDown Purpose: Add startup and teardown actions or takeover control completely Hot spot class: XControllerEIMP (for model X.cd) Methods to override: startup() teardown() Available API (see code): Reusable: Methods from AbstractController public class SocNetControllerEIMP extends SocNetController{ //constructors protected void startup() { //... some startup actions protected void teardown() { //... some teardown actions
17 Page 33 Summary Lessons learned Hot spots are HC classes that replace generated classes and at the same time inherit their functionality for reuse Hot spots can be used for various purposes: Signature extension Method overwriting Functionality extension Hot spots allow to inject HC into a generated system, thus adapting it for specific needs Hot spots are filled during the generation process and identified through naming conventions Hot spots are usually model-specific Farbe! Generative Software Engineering 3. Integrating Handwritten Code 3.4. More Adaptation Mechanisms Prof. Dr. Bernhard Rumpe University
18 Page 35 Class Overriding The principle: When X.java exists in handcoded form just use it and generate nothing Required: HC can be distinguished from GC e.g. disjoint directories for HC and GC Advantage: Anything can easily be adapted Disadvantage: X.java: nothing is generated anymore; no reuse Brittle: adaptations of model need to be tracked manually in HC Page 36 Class Overriding plus Prototypes The principle: When X.java exists in handcoded form use it, but generate XProto.java instead Xproto.java can be used as superclass for HC X. Advantage: Anything can easily be adapted Reuse of generated code possible, which is still there Disadvantage: Brittle: adaptations of model need to be tracked manually in HC Remark: very similar to the Dex approach using EIMPL
19 Page 37 Use GUI as Framework The principle: The generated code may be adaptable by classic programming techniques, e.g. usable as framework Required: Explicit hot spots (= empty methods) that can be overwritten in subclasses Possibilities to adapt / configure in the generated code Advantage: Traditional form of adaptation, no interaction with generator Disadvantage: Generated code needs to be a framework Page 38 Delegation to HC The principle: The generated code uses delegation to hot spots Similar to the used inheritance approach Advantage: More flexible, e.g. individual delegators for each method Disadvantage: More complex: more objects to manage, Objects have substructure Product-CD Model-CD Person String getfullname() Person String getfullname() delegate «interface» PersonDelegate String getfullname() delegator Delegation delegate PersonImpl String getfullname()
20 Page 39 Partial Classes The principle: The language allows classes to be distributed over several artefacts, called partial classes Advantage: Generation of classes piecewise is possible Disadvantage: doesn t support this (It can be mimicked by a design pattern) Generated functionality cannot be redefined Person String firstname Model-CD String getfullname() partial class Person{ string firstname; // partial class Person{ public string getfullname(){ // C# classes have the same names Page 40 Aspect Orientation for HC-Injection The principle: Use an Aspect-Oriented Language Add functionality in form of Aspects Disadvantage: From SE point of view aspects are harmful. Not recommended to use an AOP language for coding. (Much worse than goto) public class Person { // generated impl public void clearmembers() { // default impl AspectJ public aspect PersonAspect { pointcut pcclearmembers(person p): execution(* Person. clearmembers()) && target(p); void around(person p): pcclearmembers (p) { // handwritten impl p = instance on which method shall be executed Handwritten impl. in advice
21 Page 41 Embed Action Language in Model The principle: Embed a language for method implementation within the modelling language Advantage: We get completely rid of handcoding! Disadvantage: Large model: confusing? IDEs are less elaborated for such kind of programming Examples: MontiCore (DEX) provides possibilities to add methods and method bodies, e.g. in and python-style UML has its own action language defined Page 42 Model Refers to Actions The principle: Add references to the implementations in the model Variants: 1) GC calls the referenced HC: like delegation 2) Generator weaves the referenced artefact into the GC Disadvantage: Model gets polluted Model contains references to artefacts that should be developed after the model unnecessary IDEs are less elaborated for such kind of programming For 2: Checking of syntactical correctness is deferred to the compiler (and thus too late)
XPoints: Extension Interfaces for Multilayered Applications
XPoints: Extension Interfaces for Multilayered Applications Mohamed Aly, Anis Charfi, Sebastian Erdweg, and Mira Mezini Applied Research, SAP AG [email protected] Software Technology Group, TU
INTRODUCTION TO COMPUTER PROGRAMMING. Richard Pierse. Class 7: Object-Oriented Programming. Introduction
INTRODUCTION TO COMPUTER PROGRAMMING Richard Pierse Class 7: Object-Oriented Programming Introduction One of the key issues in programming is the reusability of code. Suppose that you have written a program
CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
Karsten Lentzsch JGoodies SWING WITH STYLE
Karsten Lentzsch JGoodies SWING WITH STYLE JGoodies: Karsten Lentzsch Open source Swing libraries Example applications Consultant for Java desktop Design assistance Training for visual design and implementation
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
GUIs with Swing. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2012
GUIs with Swing Principles of Software Construction: Objects, Design, and Concurrency Jonathan Aldrich and Charlie Garrod Fall 2012 Slides copyright 2012 by Jeffrey Eppinger, Jonathan Aldrich, William
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
Lab 9. Spam, Spam, Spam. Handout 11 CSCI 134: Spring, 2015. To gain experience with Strings. Objective
Lab 9 Handout 11 CSCI 134: Spring, 2015 Spam, Spam, Spam Objective To gain experience with Strings. Before the mid-90s, Spam was a canned meat product. These days, the term spam means just one thing unwanted
Principles of Software Construction: Objects, Design and Concurrency. GUIs with Swing. toad 15-214. Spring 2013
Principles of Software Construction: Objects, Design and Concurrency GUIs with Swing 15-214 toad Spring 2013 Christian Kästner Charlie Garrod School of Computer Science 2012-13 C Garrod, C Kästner, J Aldrich,
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Assignment # 2: Design Patterns and GUIs
CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs
History OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Approach of Unit testing with the help of JUnit
Approach of Unit testing with the help of JUnit Satish Mishra [email protected] About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
SEER Enterprise Shared Database Administrator s Guide
SEER Enterprise Shared Database Administrator s Guide SEER for Software Release 8.2 SEER for IT Release 2.2 SEER for Hardware Release 7.3 March 2016 Galorath Incorporated Proprietary 1. INTRODUCTION...
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
Lab Manual: Using Rational Rose
Lab Manual: Using Rational Rose 1. Use Case Diagram Creating actors 1. Right-click on the Use Case View package in the browser to make the shortcut menu visible. 2. Select the New:Actor menu option. A
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved 1 1. Update Before you start updating, please refer to 2. Important changes to check if there are any additional instructions
Object Instance Profiling
Object Instance Profiling Lubomír Bulej 1,2, Lukáš Marek 1, Petr Tůma 1 Technical report No. 2009/7, November 2009 Version 1.0, November 2009 1 Distributed Systems Research Group, Department of Software
Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.
Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the
JiST Graphical User Interface Event Viewer. Mark Fong [email protected]
JiST Graphical User Interface Event Viewer Mark Fong [email protected] Table of Contents JiST Graphical User Interface Event Viewer...1 Table of Contents...2 Introduction...3 What it does...3 Design...3
JIDE Action Framework Developer Guide
JIDE Action Framework Developer Guide Contents PURPOSE OF THIS DOCUMENT... 1 WHAT IS JIDE ACTION FRAMEWORK... 1 PACKAGES... 3 MIGRATING FROM EXISTING APPLICATIONS... 3 DOCKABLEBARMANAGER... 9 DOCKABLE
Librarian. Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER
Librarian Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER Contents Overview 3 File Storage and Management 4 The Library 4 Folders, Files and File History 4
User Guide. You will be presented with a login screen which will ask you for your username and password.
User Guide Overview SurfProtect is a real-time web-site filtering system designed to adapt to your particular needs. The main advantage with SurfProtect over many rivals is its unique architecture that
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
Continuous Integration
Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener [email protected] Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My
Automatic generation of fully-executable code from the Domain tier of UML diagrams
Abstract. Automatic generation of fully-executable code from the Domain tier of UML diagrams Macario Polo, Agustín Mayoral, Juan Ángel Gómez and Mario Piattini Alarcos Group - Department of Computer Science
Nexawebホワイトペーパー. Developing with Nexaweb ~ Nexaweb to Improve Development Productivity and Maintainability
Nexawebホワイトペーパー Developing with Nexaweb ~ Nexaweb to Improve Development Productivity and Maintainability Nexaweb Technologies, Inc. February 2012 Overview Many companies today are creating rich internet
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
3 Improving the Crab more sophisticated programming
3 Improving the Crab more sophisticated programming topics: concepts: random behavior, keyboard control, sound dot notation, random numbers, defining methods, comments In the previous chapter, we looked
IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in
IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in Author(s): Marco Ganci Abstract This document describes how
Chapter 13 - Inheritance
Goals Chapter 13 - Inheritance To learn about inheritance To understand how to inherit and override superclass methods To be able to invoke superclass constructors To learn about protected and package
Unification of AOP and FOP in Model Driven Development
Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Agile Software Development
Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved 1 1. Update Before you start updating, please refer to 2. Important changes to check if there are any additional instructions
2 The first program: Little Crab
2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if statement In the previous chapter, we
ICOM 4015: Advanced Programming
ICOM 4015: Advanced Programming Lecture 10 Reading: Chapter Ten: Inheritance Copyright 2009 by John Wiley & Sons. All rights reserved. Chapter 10 Inheritance Chapter Goals To learn about inheritance To
Integration of Application Business Logic and Business Rules with DSL and AOP
e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer
E-Commerce Installation and Configuration Guide
E-Commerce Installation and Configuration Guide Rev: 2011-05-19 Sitecore E-Commerce Fundamental Edition 1.1 E-Commerce Installation and Configuration Guide A developer's guide to installing and configuring
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
Abstract. a http://www.eiffel.com
Abstract Eiffel Software a provides a compiler for the Eiffel programming language capable of generating C code or Common Intermediate Language byte code. The CLI code can be executed on the Common Language
Concepts and terminology in the Simula Programming Language
Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction
EMC Documentum Composer
EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights
Design by Contract beyond class modelling
Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable
Implementation Aspects of OO-Languages
1 Implementation Aspects of OO-Languages Allocation of space for data members: The space for data members is laid out the same way it is done for structures in C or other languages. Specifically: The data
Aspect Oriented Programming. with. Spring
Aspect Oriented Programming with Spring Problem area How to modularize concerns that span multiple classes and layers? Examples of cross-cutting concerns: Transaction management Logging Profiling Security
The first program: Little Crab
CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,
Stack Allocation. Run-Time Data Structures. Static Structures
Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,
UML for C# Modeling Basics
UML for C# C# is a modern object-oriented language for application development. In addition to object-oriented constructs, C# supports component-oriented programming with properties, methods and events.
Host: http://studynest.org/ INTRODUCTION TO SAP CRM WEB UI
SAP CRM WEBCLIENT UI 7.0 EHP1 Online course Content Contact: +61 413159465 (Melbourne, Australia) Host: INTRODUCTION TO SAP CRM WEB UI Demo1: Why SAP CRM? Why an organization Need SAP CRM Web Client User
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Click DVDs. Just click to pick. CS4125 Systems Analysis and Design Chantelle Geoghegan - 0544981 Danielle Frawley- 0545511
Click DVDs Just click to pick CS4125 Systems Analysis and Design Chantelle Geoghegan - 0544981 Danielle Frawley- 0545511 BLANK MARKING SCHEME CS4125: Systems Analysis Assignment 1: Semester II, 2008-2009
E-Commerce Installation and Configuration Guide
E-Commerce Installation and Configuration Guide Rev: 2012-02-17 Sitecore E-Commerce Services 1.2 E-Commerce Installation and Configuration Guide A developer's guide to installing and configuring Sitecore
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
Course/Year W080/807 Expected Solution Subject: Software Development to Question No: 1
Subject: Software Development to Question No: 1 Page 1 of 2 Allocation: 33 marks (a) (i) A layout manager is an object that implements the LayoutManager interface and determines the size and position of
Administering Active Directory. Administering Active Directory. Reading. Review: Organizational Units. Review: Domains. Review: Domain Trees
Reading Read over the Active Directory material in your Network+ Guide I will be providing important materials Administering Active Directory If you don t understand certain concepts, please ask for help!
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
Enterprise Application Development Using UML, Java Technology and XML
Enterprise Application Development Using UML, Java Technology and XML Will Howery CTO Passage Software LLC 1 Introduction Effective management and modeling of enterprise applications Web and business-to-business
Part 1 Foundations of object orientation
OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed
Efficient database auditing
Topicus Fincare Efficient database auditing And entity reversion Dennis Windhouwer Supervised by: Pim van den Broek, Jasper Laagland and Johan te Winkel 9 April 2014 SUMMARY Topicus wants their current
A generic framework for game development
A generic framework for game development Michael Haller FH Hagenberg (MTD) AUSTRIA [email protected] Werner Hartmann FAW, University of Linz AUSTRIA [email protected] Jürgen Zauner FH
A Practical Guide to Test Case Types in Java
Software Tests with Faktor-IPS Gunnar Tacke, Jan Ortmann (Dokumentversion 203) Overview In each software development project, software testing entails considerable expenses. Running regression tests manually
Unicenter Desktop DNA r11
Data Sheet Unicenter Desktop DNA r11 Unicenter Desktop DNA is a scalable migration solution for the management, movement and maintenance of a PC s DNA (including user settings, preferences and data.) A
Encapsulating Crosscutting Concerns in System Software
Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com
New Generation of Software Development
New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 [email protected] ABSTRACT In this paper, I present a picture of what software development
Embedded Software development Process and Tools: Lesson-1
Embedded Software development Process and Tools: Lesson-1 Introduction to Embedded Software Development Process and Tools 1 1. Development Process and Hardware Software 2 Development Process Consists of
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Domain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software Development Karsten Klein, hybrid labs, January 2007 Version: 1.0 Introduction Eric Evans Book Domain Driven Design was first published end of 2003 [Evans2003].
Classes and Objects in Java Constructors. In creating objects of the type Fraction, we have used statements similar to the following:
In creating objects of the type, we have used statements similar to the following: f = new (); The parentheses in the expression () makes it look like a method, yet we never created such a method in our
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
Preet raj Core Java and Databases CS4PR. Time Allotted: 3 Hours. Final Exam: Total Possible Points 75
Preet raj Core Java and Databases CS4PR Time Allotted: 3 Hours Final Exam: Total Possible Points 75 Q1. What is difference between overloading and overriding? 10 points a) In overloading, there is a relationship
Schema Classes. Polyhedra Ltd
Schema Classes Polyhedra Ltd Copyright notice This document is copyright 1994-2006 by Polyhedra Ltd. All Rights Reserved. This document contains information proprietary to Polyhedra Ltd. It is supplied
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
FioranoMQ 9. High Availability Guide
FioranoMQ 9 High Availability Guide Copyright (c) 1999-2008, Fiorano Software Technologies Pvt. Ltd., Copyright (c) 2008-2009, Fiorano Software Pty. Ltd. All rights reserved. This software is the confidential
Exception Handling. Overloaded methods Interfaces Inheritance hierarchies Constructors. OOP: Exception Handling 1
Exception Handling Error handling in general Java's exception handling mechanism The catch-or-specify priciple Checked and unchecked exceptions Exceptions impact/usage Overloaded methods Interfaces Inheritance
Evaluation of AgitarOne
Carnegie Mellon University, School of Computer Science Master of Software Engineering Evaluation of AgitarOne Analysis of Software Artifacts Final Project Report April 24, 2007 Edited for public release
SharePoint Integration Framework Developers Cookbook
Sitecore CMS 6.3 to 6.6 and SIP 3.2 SharePoint Integration Framework Developers Cookbook Rev: 2013-11-28 Sitecore CMS 6.3 to 6.6 and SIP 3.2 SharePoint Integration Framework Developers Cookbook A Guide
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
AP Computer Science Java Subset
APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall
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
A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION
A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used
UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger
UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 61B Fall 2014 P. N. Hilfinger Unit Testing with JUnit 1 The Basics JUnit is a testing framework
Object Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
What is a life cycle model?
What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each
Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona
Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester
BPM Scheduling with Job Scheduler
Document: BPM Scheduling with Job Scheduler Author: Neil Kolban Date: 2009-03-26 Version: 0.1 BPM Scheduling with Job Scheduler On occasion it may be desired to start BPM processes at configured times
Redpaper Axel Buecker Kenny Chow Jenny Wong
Redpaper Axel Buecker Kenny Chow Jenny Wong A Guide to Authentication Services in IBM Security Access Manager for Enterprise Single Sign-On Introduction IBM Security Access Manager for Enterprise Single
How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science Otto-von-Guericke-University
Deleting the User Personalization done on Enterprise Portal
Deleting the User Personalization done on Enterprise Portal Applies to: SRM 7.0 with EP 6.0. For more information, visit the Supplier Relationship Management homepage Summary This document explains the
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
Textual Modeling Languages
Textual Modeling Languages Slides 4-31 and 38-40 of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics
How To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For
Projet Java Responsables: Ocan Sankur, Guillaume Scerri (LSV, ENS Cachan) Objectives - Apprendre à programmer en Java - Travailler à plusieurs sur un gros projet qui a plusieurs aspects: graphisme, interface
11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl
UML Class Diagrams 11 November 2015 UML Class Diagrams The class diagram provides a static structure of all the classes that exist within the system. Classes are arranged in hierarchies sharing common
Alteryx Predictive Analytics for Oracle R
Alteryx Predictive Analytics for Oracle R I. Software Installation In order to be able to use Alteryx s predictive analytics tools with an Oracle Database connection, your client machine must be configured
