The Problem Decomposition of programs in terms of classes and in terms of crosscutting concerns are both useful, but languages based on source files allow.

Slides:



Advertisements
Similar presentations
Holdings Management Overview
Advertisements

The C ++ Language BY Shery khan. The C++ Language Bjarne Stroupstrup, the language’s creator C++ was designed to provide Simula’s facilities for program.
Haverford Cascade Mentoring Program Computer Programming: C++ to Python Conversion Professor: Dave Wannacott Student: Kris Brower Dobbins Vocational Tech.
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Introduction to PHP MIS 3501, Fall 2014 Jeremy Shafer
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De Volder, Gregor Kiczales Students: Doug Janzen, Rajeswari Rajagopalan,
Software Practices Lab. -- The University of British Columbia 1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De.
Software Practices Lab. -- The University of British Columbia 1 JQuery: Finding your way through scattered code Andrew Eisenberg, Doug Janzen, Kris De.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Input Validation For Free Text Fields ADD Project Members: Hagar Offer & Ran Mor Academic Advisor: Dr Gera Weiss Technical Advisors: Raffi Lipkin & Nadav.
Advanced Object-Oriented Programming Features
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Guide To UNIX Using Linux Third Edition
Chapter 10 Classes Continued
C++ fundamentals.
Intro to Java Programming  A computer follows the instruction precisely and exactly.  Anything has to be declared and defined before it can be used.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Java and C++, The Difference An introduction Unit - 00.
XP The University of Akron Summit College Business Technology Department Computer Information Systems 2440: 140 Internet Tools Instructor: Enoch E. Damson.
Using Styles and Style Sheets for Design
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
JavaScript, Fourth Edition
1 California State University, Fullerton Chapter 8 Personal Productivity and Problem Solving.
Objectives Understand what MATLAB is and why it is widely used in engineering and science Start the MATLAB program and solve simple problems in the command.
Tutorial 2 Drawing Text, Adding Shapes, and Creating Symbols.
Computing with C# and the.NET Framework Chapter 1 An Introduction to Computing with C# ©2003, 2011 Art Gittleman.
Goals of Course Introduction to the programming language C Learn how to program Learn ‘good’ programming practices.
Chapter 3: Completing the Problem- Solving Process and Getting Started with C++ Introduction to Programming with C++ Fourth Edition.
JavaDoc1 JavaDoc DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY July 24, 2006 by Emil Vassev & Joey Paquet revision 1.2 –
Chapter 8 Cookies And Security JavaScript, Third Edition.
HSCI 709 SQL Data Definition Language. SQL Standard SQL-92 was developed by the INCITS Technical Committee H2 on Databases. SQL-92 was designed to be.
Object Oriented Programming … and other things you need to program in java.
© 2001 Business & Information Systems 2/e1 Chapter 8 Personal Productivity and Problem Solving.
Lead Black Slide Powered by DeSiaMore1. 2 Chapter 8 Personal Productivity and Problem Solving.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
1 Interfaces and Abstract Classes Chapter Objectives You will be able to: Write Interface definitions and class definitions that implement them.
Lesson 13 Databases Unit 2—Using the Computer. Computer Concepts BASICS - 22 Objectives Define the purpose and function of database software. Identify.
NETWORK VISUALIZATION ABHISHEK KUMAR (2011CS50272)
INTRODUCTION TO HTML5 New HTML5 User Interface and Attributes.
Object-Oriented Programming (OOP) What we did was: (Procedural Programming) a logical procedure that takes input data, processes it, and produces output.
Methods Awesomeness!!!. Methods Methods give a name to a section of code Methods give a name to a section of code Methods have a number of important uses.
Chapter 27 Getting “Web-ified” (Web Applications) Clearly Visual Basic: Programming with Visual Basic nd Edition.
Invitation to Computer Science 6 th Edition Chapter 10 The Tower of Babel.
Author: DoanNX Time: 45’.  OOP concepts  OOP in Java.
COM: 111 Introduction to Computer Applications Department of Information & Communication Technology Panayiotis Christodoulou.
NOTEPAD++ Lab 1 1 Riham ALSmari. Why Notepad++ ?  Syntax highlighting  Tabbed document interface  Zooming  Indentation code  Find and replace over.
1 Java Review Outline Java Primitives, Program Structure Operators, Control Flow, Loops Classes and Objects Arrays and ArrayList Most of these slides are.
Computer Graphics Lecture 1. Books D. Hearn, M. P. Baker, "Computer Graphics with OpenGL", 3rd Ed., Prentice Hall, 2003, ISBN
System is a set of interacting or interdependent components forming an integrated whole.
Java Interfaces CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University (see Chapter 9 of.
Section 8.1 Section 8.2 Create a custom theme Design a color scheme
Getting Started with CSS
Creating Your Own Classes
Release Numbers MATLAB is updated regularly
C# and the .NET Framework
Chapter 12 Information Systems.
CS543: WEB APPLICATION PROGRAMMING
Lecture2.
Digital Design – Copyright Law
OBJECT ORIENTED PROGRAMMING II LECTURE 8 GEORGE KOUTSOGIANNAKIS
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Dotri Quoc†, Kazuo Kobori†, Norihiro Yoshida
CS Problem Solving and Object Oriented Programming Spring 2019
INTERFACES Explained By: Sarbjit Kaur. Lecturer, Department of Computer Application, PGG.C.G., Sector: 42, Chandigarh.
Presentation transcript:

The Problem Decomposition of programs in terms of classes and in terms of crosscutting concerns are both useful, but languages based on source files allow only a single decomposition. A Solution Use a tool that lets developers create virtual source files (VSFs) by gathering together declarations from multiple classes. Virtual source files are effective views in that editing them results in corresponding changes being made to the original source code. VSFs let developers edit cross- sections of their code while maintaining its full object- oriented structure and without the need for additional language features. Programming With Crosscutting Effective Views Doug Janzen Kris De Volder Software Practices Lab Department of Computer Science University of British Columbia Vancouver, BC Canada Define a Set of Program Elements 1 The user creates a set of element identifiers called the Input Set by: Using comment tags, or Selecting elements from a browser, or Writing a query Render VSF 2 The tool creates a virtual source file by retrieving the source code for every element in the Input Set. Special syntax is used to identify which source file each block of text belongs to. Edit VSF 3 The user can add, change, and delete elements in the virtual source file. Parse VSF 4 The tool parses the virtual source file to produce the Output Set. Unlike normal source files, VSFs must be parseable in order to be saved. Update Source Files 5 The tool analyzes the differences between the Input Set I and the Output Set O to determine how the source files should be modified: Added elements:A = O – I Removed elements:R = I – O Same elements:S = I O class framework/Figure { drawing */ protected Graphics g; drawing */ public void draw() { … } class figures/Circle { drawing */ public void draw() { … } class figures/Square { drawing */ public void draw() { … } class framework/Figure { drawing */ protected Graphics g; drawing */ public void draw() { … } class figures/Circle { drawing */ public void draw() { … } class figures/Square { drawing */ public void draw() { … } package figures; class Circle extends Figure{ public int radius; drawing */ public void draw() { … } package figures; class Circle extends Figure{ public int radius; drawing */ public void draw() { … } package figures; class Square extends Figure { private int size; drawing */ public void draw() { … } package figures; class Square extends Figure { private int size; drawing */ public void draw() { … } package framework; abstract class Figure { drawing */ protected Graphics g; drawing */ public abstract void draw(); } package framework; abstract class Figure { drawing */ protected Graphics g; drawing */ public abstract void draw(); } framework/Figure>draw() figures/Circle>draw() figures/Square>draw() framework/Figure>g framework/Figure>draw(Graphics) figures/Circle>draw(Graphics) figures/Square>draw(Graphics) class framework/Figure { drawing */ protected Graphics g; drawing */ public void draw(Graphics g) { … } class figures/Circle { drawing */ public void draw(Graphics g) { … } class figures/Square { drawing */ public void draw(Graphics g) { … } class framework/Figure { drawing */ protected Graphics g; drawing */ public void draw(Graphics g) { … } class figures/Circle { drawing */ public void draw(Graphics g) { … } class figures/Square { drawing */ public void draw(Graphics g) { … }