A Model for Software Plans
|
|
- Jayson Cole
- 6 years ago
- Views:
Transcription
1 A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary
2 private static Vector readdata() { BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); Vector list = new Vector(); int inputsize = Integer.parseInt( stdin.readline()); for (int i = 0; i < inputsize; i++) { int value = Integer.parseInt( stdin.readline()); list.add(new Integer(value)); Input return list; 2
3 private static Vector readdata() { BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); Vector list = new Vector(); System.out.print( "Enter the number of values: " ); int inputsize = Integer.parseInt( stdin.readline()); System.out.println( "Enter " + inputsize + " values." ); for (int i = 0; i < inputsize; i++) { int value = Integer.parseInt( stdin.readline()); list.add(new Integer(value)); Input Prompting return list; 3
4 private static Vector readdata() { BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); Vector list = new Vector(); System.out.print( "Enter the number of values: " ); int inputsize = 0; try { inputsize = Integer.parseInt( stdin.readline() ); catch (IOException e) { System.err.println( "Encountered an I/O exception. Exiting."); System.exit(1); System.out.println( "Enter " + inputsize + " values." ); for (int i = 0; i < inputsize; i++) { int value = 0; try { value = Integer.parseInt( stdin.readline() ); catch (IOException e) { System.err.println( "Encountered an I/O exception. Exiting."); System.exit(1); list.add(new Integer(value)); return list; Input Prompting I/O Exception 4
5 private static Vector readdata() { BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); Vector list = new Vector(); System.out.print( "Enter the number of values: " ); int inputsize = 0; { boolean inputisvalid = false; while (!inputisvalid) { try { inputsize = Integer.parseInt( stdin.readline() ); catch (NumberFormatException e) { System.err.println( "Invalid number entered. (" + e.getmessage() + ")" ); catch (IOException e) { System.err.println( "Encountered an I/O exception. Exiting."); System.exit(1); System.out.println( "Enter " + inputsize + " values." ); for (int i = 0; i < inputsize; i++) { int value = 0; { boolean inputisvalid = false; while (!inputisvalid) { try { value = Integer.parseInt( stdin.readline() ); catch (NumberFormatException e) { System.err.println( "Invalid number entered. (" + e.getmessage() + ")" ); catch (IOException e) { System.err.println( "Encountered an I/O exception. Exiting."); System.exit(1); list.add(new Integer(value)); return list; Input Prompting I/O Exception Input Validation 5
6 Character Level Tangling Invasive compositions [Carver & Griswold 1999] fprintf(stderr, %s: failed to open %s\n, argv[0], szfilename); 6
7 Software Plans An approach for fine-grained separation and tangling of context-dependent concerns Inspired by architectural plans Multiple semi-independent code views Orthogonal to modular decomposition Each view has code for one or a few related concerns, in their necessary context A plan can reconcile concern code from other plans 7
8 8
9 Example: Plans for Tangling in GNU Sort if (fp == stdin) { /* Allow reading stdin from tty more than once. */ if (feof (fp)) clearerr (fp); static else void if (fp xfclose == stdout) (FILE *fp) { { if (fflush (fp)!= 0) { error (0, errno, _("flushing stdout")); cleanup (); else { exit (SORT_FAILURE); if (fclose (fp)!= 0) { error (0, errno, _("closing file")); static cleanup void xfclose (); (FILE *fp) { exit (SORT_FAILURE); /* Allow reading stdin from tty more than once. */ if (feof (fp)) if (fflush (fp)!= 0) { error (0, errno, _("flushing stdout")); cleanup (); clearerr (fp); exit (SORT_FAILURE); if (fclose (fp)!= 0) { error (0, errno, _("closing file")); cleanup (); exit (SORT_FAILURE); 9
10 Implementation One approach: use existing code model, augmented with concern information Annotate code with concerns Hide portions to create a plan Doesn't work: Forces ordering of unrelated code blocks Cost of manual concern annotation Edits to shared code may damage other plans Doesn't track edits by plan Not plan-oriented 10
11 Blocks if (fp == stdin) { /* Allow reading stdin from tty more than once. */ if (feof (fp)) clearerr (fp); else if (fp == stdout) { if ( fflush (fp)!= 0) { error (0, errno, _("flushing stdout")); cleanup (); exit (SORT_FAILURE); else { if ( fclose (fp)!= 0) { error (0, errno, _("closing file")); cleanup (); exit (SORT_FAILURE); Block: Span of text Set of related concerns Creation time 11
12 Plans if /* ( Allow fflush reading (fp)!= stdin 0) { from tty more than once. */ if error (feof(0, (fp)) errno, _("flushing stdout")); clearerr cleanup (); (fp); exit (SORT_FAILURE); Plan: Sequence of blocks (possibly repeated) Set of related concerns Set of context concerns Last update time 12
13 Document and View Document: Set of plans View: Concatenation of block spans Related code shown along with context code 13
14 Editing Operations Design principles: Reduce manually concern annotation No non-local editing effects Favor normal editing techniques Character-level concern manipulation Edits on a view modify the underlying document Transparently Maintain concern-code relationships New code automatically associated with related concerns (not context concerns) 14
15 Operations View ComputeView InsertSpan DeleteSpan Plan AddBlock DeleteBlock SplitBlock MergeBlock Document AddBlockToPlan DeleteBlockFromPlan SplitBlock MergeBlock UpdatePlan NewPlan Clipboard ImportBlocks ExportBlocks 15
16 Editing Example: New Plan if (feof (fp)) clearerr (fp); if ( fflush (fp)!= 0) { error (0, errno, _("flushing stdout")); cleanup (); exit (SORT_FAILURE); if ( fclose (fp)!= 0) { error (0, errno, _("closing file")); cleanup (); exit (SORT_FAILURE); Related: STDIN File fflush (fp) STDOUT Close Close Reconciliation Context: if (feof (fp)) clearerr (fp); fclose (fp) 16
17 Editing Example: Insert Span if (feof (fp)) clearerr (fp); if ( fflush (fp)!= 0) { error (0, errno, _("flushing stdout")); cleanup (); exit (SORT_FAILURE); if (fp == stdin) { if (feof (fp)) clearerr (fp); else if (fp == stdout) { fflush (fp) else { ; if ( fclose (fp)!= 0) { error (0, errno, _("closing file")); cleanup (); exit (SORT_FAILURE); fclose (fp) ; 17
18 Editing Example: Delete Span if (feof (fp)) clearerr (fp); if ( fflush (fp)!= 0) { error (0, errno, _("flushing stdout")); cleanup (); exit (SORT_FAILURE); if (fp == stdin) { if (feof (fp)) clearerr (fp); else if (fp == stdout) { fflush (fp) else { ; if ( fclose (fp)!= 0) { error (0, errno, _("closing file")); cleanup (); exit (SORT_FAILURE); fclose (fp) ; 18
19 Related Work Aspect-oriented programming [Kiczales] Better for loosely coupled, scattered concerns Hyperspaces [Tarr and Ossher] Interface-level SoC Code elision Folding: Hiding based on syntax (e.g. brackets) Hiding: P-Edit [Kruskal], Spotlight [Cox & Coppit] hide concern-annotated code Perspectives [Black and Jones], slicing [Weiser] and partial evaluation [Jones] Reduced views, but not independently editable 19
20 Current Status and Future Work Prototype proof-of-concept implements model Tool assisted, semi-automatic plan merging Language-dependent block dependency analysis Improved editing operations Inter-plan constraints Plan design Reverse-engineering of plans User studies, industrial studies Eclipse plugin 20
21 Conclusion Tangling of character-level concerns a problem Loosely-coupled tangling can be separated Context dependencies are important Software plans offer a potential solution Our model is a more sophisticated code representation That explicitly represents concerns and plans Supports software plans 21
22 Thank you Research Software Plans 22
23 Aspect-Oriented Programming Extend the language to allow cross-cutting concerns to be modularized [Kiczales, Tarr, Murphy, Griswold, ] Aspect abstraction encapsulates scattered code Compiler weaves aspects into classes Joinpoints: well-defined locations in the program (field access, method call, etc.) Pointcuts: declarative selection of joinpoints Advice: code to insert 23
24 Example: Prompting in AspectJ aspect Prompting { pointcut numberprompt(): execution(* Average.promptForNumber(..)); before(): numberprompt() { System.out.print( "Enter the number of values: " ); pointcut valueprompt(int inputsize): call(* Average.promptForValues(..)) && args(..,inputsize); before(int inputsize): valueprompt(inputsize) { System.out.println( "Enter " + inputsize + " values." ); 24
25 Example: I/O Exception Handling aspect IOExceptionHandling { declare soft : IOException : call(* *.*(..) throws IOException) && within(average); after() throwing(org.aspectj.lang.softexception ex) : execution(* Average.*(..)) && within(average) { System.err.println( "Encountered an I/O exception. Exiting."); System.exit(1); 25
26 private static int promptfornumber(final BufferedReader stdin) { int inputsize = 0; boolean inputisvalid = false; while (!inputisvalid) { try { inputsize = Integer.parseInt( stdin.readline() ); catch (NumberFormatException e) { System.err.println( "Invalid number entered. (" + e.getmessage() + ")" ); return inputsize; private static Vector promptforvalues(final BufferedReader stdin, final int inputsize) { Vector list = new Vector(); for (int i = 0; i < inputsize; i++) { int value = 0; boolean inputisvalid = false; while (!inputisvalid) { try { value = Integer.parseInt( stdin.readline() ); catch (NumberFormatException e) { System.err.println( "Invalid number entered. (" + e.getmessage() + ")" ); list.add(new Integer(value)); return list; private static Vector readdata() { BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); int inputsize = promptfornumber(stdin); return promptforvalues(stdin, inputsize); 26
27 AOP Good For Scattering Pointcuts very general Method call/return Within some class Get/set of a field Exception handling Within call stack (cflow) Aspects meant to be context-independent Can hack context-dependent aspects by introducing dummy methods or refactoring to create needed join points 27
28 AOP Not Good For Tangling Invasive compositions [Carver & Griswold 1999] fprintf(stderr, %s: failed to open %s\n, argv[0], szfilename); AspectJ pointcuts poor for exposing and separating some concerns [Murphy et. al 2001] int[] match(... ) { // Multiline matching if (newline && (mymatch.offset > 0) && (input.charat(idx - 1) == \n )) return next(input,idx,eflags,mymatch); // Not BOL match if ((eflags & RE.REG_NOTBOL) > 0) return null;... 28
Software Plans for Separation of Concerns
Software Plans for Separation of Concerns David Coppit and Benjamin Cox The College of William and Mary 9/11/13 1 Elevation 9/11/13 2 Floor Plan 9/11/13 3 Foundation Plan 9/11/13 4 Software 9/11/13 5 Example:
More informationSoftware Plans. A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code. David Coppit Robert R. Painter Meghan Revelle
Software Plans A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code David Coppit Robert R. Painter Meghan Revelle Department of Computer Science The College of William and Mary Williamsburg,
More informationCourse 6 7 November Adrian Iftene
Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP
More information1. Download the JDK 6, from
1. Install the JDK 1. Download the JDK 6, from http://java.sun.com/javase/downloads/widget/jdk6.jsp. 2. Once the file is completed downloaded, execute it and accept the license agreement. 3. Select the
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationLanguage Oriented Modularity: From Theory to Practice
Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)
More informationAOP 101: Intro to Aspect Oriented Programming. Ernest Hill
AOP 101: Intro to Aspect Oriented Programming ernesthill@earthlink.net AOP 101-1 AOP 101: Aspect Oriented Programming Goal of Software History of Programming Methodology Remaining Problem AOP to the Rescue
More informationAspect-Oriented Programming and AspectJ
What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview
More informationIntroduction to. Bruno Harbulot. ESNW, the University of Manchester.
Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation
More informationA Novel Approach to Unit Testing: The Aspect-Oriented Way
A Novel Approach to Unit Testing: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab, Department of Computer Science East China Normal University 3663, North Zhongshan Rd., Shanghai
More informationInput from Files. Buffered Reader
Input from Files Buffered Reader Input from files is always text. You can convert it to ints using Integer.parseInt() We use BufferedReaders to minimize the number of reads to the file. The Buffer reads
More informationChapitre 6 Programmation orientée aspect (AOP)
6 Programmation orientée aspect (AOP) 2I1AC3 : Génie logiciel et Patrons de conception Régis Clouard, ENSICAEN - GREYC «L'homme est le meilleur ordinateur que l'on puisse embarquer dans un engin spatial...
More informationAspect-Oriented Programming and Aspect-J
Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern
More informationUnderstanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit
Understanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit Department of Computer Science The College of William and Mary Separation of
More informationModularity: what, why and how
Modularity: what, why and how Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Modularity... p.1/33 Some problematic code Imagine implementing a syntax tree evaluator.
More informationInformation systems modeling. Tomasz Kubik
Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components
More informationI/O in Java I/O streams vs. Reader/Writer. HW#3 due today Reading Assignment: Java tutorial on Basic I/O
I/O 10-7-2013 I/O in Java I/O streams vs. Reader/Writer HW#3 due today Reading Assignment: Java tutorial on Basic I/O public class Swimmer implements Cloneable { public Date geteventdate() { return (Date)
More informationProgramming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003
Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,
More informationA Unit Testing Framework for Aspects without Weaving
A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko
More informationA Guide Illustrating the Core Java Equivalent to Selected Tasks Done Using the HSA Class Library
HSA to Core Java A Guide Illustrating the Core Java Equivalent to Selected Tasks Done Using the HSA Class Library The examples below compare how tasks are done using the hsa Console class with how they
More informationAspect Oriented Programming
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Version of February 23, 2013 Abstract Handling errors Declaring, creating and handling exceptions
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Version of February 23, 2013 Abstract Handling errors Declaring, creating and handling exceptions
More informationLesson 3: Accepting User Input and Using Different Methods for Output
Lesson 3: Accepting User Input and Using Different Methods for Output Introduction So far, you have had an overview of the basics in Java. This document will discuss how to put some power in your program
More informationIntroduction to Aspect-Oriented Programming
Introduction to Aspect-Oriented Programming LÁSZLÓ LENGYEL, TIHAMÉR LEVENDOVSZKY {lengyel, tihamer}@aut.bme.hu Reviewed Key words: aspect-oriented programming (AOP), crosscutting concerns Aspect-oriented
More informationAn Aspect-Oriented Approach. Henrique Rebêlo Informatics Center
An Aspect-Oriented Approach to implement JML Features Henrique Rebêlo Informatics Center Federal University of Pernambuco Summary jmlc problems bigger code, slower code, no suppport for Java ME, and bad
More informationObject Oriented Design. Object-Oriented Design. Inheritance & Polymorphism. Class Hierarchy. Goals Robustness Adaptability Flexible code reuse
Object-Oriented Design Object Oriented Design Goals Robustness Adaptability Flexible code reuse Principles Abstraction Encapsulation Modularity March 2005 Object Oriented Design 1 March 2005 Object Oriented
More informationDynamic Weaving for Building Reconfigurable Software Systems
Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent
More informationOpen Modules: Reconciling Extensibility and Information Hiding
Open Modules: Reconciling Extensibility and Information Hiding Jonathan Aldrich School of Computer Science Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213, USA jonathan.aldrich@cs.cmu.edu
More informationAspect-Oriented Programming with AJDT Andy Clement IBM UK Ltd MP 146, Hursley Park Winchester, Hants. England clemas at uk.ibm.
Aspect-Oriented Programming with AJDT Andy Clement IBM UK Ltd MP 146, Hursley Park Winchester, Hants. England +44 1962 816658 clemas at uk.ibm.com Adrian C olyer IBM UK Ltd MP 146, Hursley Park Winchester,
More informationObject-Oriented Design. March 2005 Object Oriented Design 1
Object-Oriented Design March 2005 Object Oriented Design 1 Object Oriented Design Goals Robustness Adaptability Flexible code reuse Principles Abstraction Encapsulation Modularity March 2005 Object Oriented
More informationMore Refactoring s: Aspect Oriented Programming with AspectJ
More Refactoring s: Aspect Oriented Programming with AspectJ 1 Geeta Bagade, 2 Dr. Shashank Joshi 1 Ph.D. Scholar, 2 Professor/Ph.D Guide Bharati Vidyapeeth, Pune, India ABSTRACT: Even though Object Oriented
More informationFile Access. FILE * fopen(const char *name, const char * mode);
File Access, K&R 7.5 Dealing with named files is surprisingly similar to dealing with stdin and stdout. Start by declaring a "file pointer": FILE *fp; /* See Appendix B1.1, pg. 242 */ header
More informationSo, What is an Aspect?
Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationImproving Software Modularity using AOP
B Vasundhara 1 & KV Chalapati Rao 2 1 Dept. of Computer Science, AMS School of Informatics, Hyderabad, India 2 CVR College of Engineering, Ibrahimpatnam, India E-mail : vasu_venki@yahoo.com 1, chalapatiraokv@gmail.com
More informationJava in 21 minutes. Hello world. hello world. exceptions. basic data types. constructors. classes & objects I/O. program structure.
Java in 21 minutes hello world basic data types classes & objects program structure constructors garbage collection I/O exceptions Strings Hello world import java.io.*; public class hello { public static
More informationMode Meaning r Opens the file for reading. If the file doesn't exist, fopen() returns NULL.
Files Files enable permanent storage of information C performs all input and output, including disk files, by means of streams Stream oriented data files are divided into two categories Formatted data
More informationA Process for Separation of Crosscutting Grid Concerns
A Process for Separation of Crosscutting Grid Concerns Paulo Henrique M. Maia 1, Nabor C. Mendonça 1, Vasco Furtado 1, Walfredo Cirne 2, Katia Saikoski 3 1 University of Fortaleza (UNIFOR) Fortaleza CE
More informationCSC Java Programming, Fall Java Data Types and Control Constructs
CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference
More informationA sample print out is: is is -11 key entered was: w
Lab 9 Lesson 9-2: Exercise 1, 2 and 3: Note: when you run this you may need to maximize the window. The modified buttonhandler is: private static class ButtonListener implements ActionListener public void
More informationSort-based Refactoring of Crosscutting Concerns to Aspects
Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft
More informationEmploying Query Technologies for Crosscutting Concern Comprehension
Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software
More informationSERG. Sort-based Refactoring of Crosscutting Concerns to Aspects
Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen
More informationProgram Elements -- Introduction
Program Elements -- Introduction We can now examine the core elements of programming Chapter 3 focuses on: data types variable declaration and use operators and expressions decisions and loops input and
More informationAspect-Orientation from Design to Code
Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739
More informationWhat is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting
Aspect Oriented Programming Todd A. Whittaker Franklin University whittakt@franklin.edu What is AOP? Addresses crosscutting concerns Requirements analysis leads to identification of concerns in a software
More informationClasses, interfaces, & documentation. Review of basic building blocks
Classes, interfaces, & documentation Review of basic building blocks Objects Data structures literally, storage containers for data constitute object knowledge or state Operations an object can perform
More informationInternet Technology 2/7/2013
Sample Client-Server Program Internet Technology 02r. Programming with Sockets Paul Krzyzanowski Rutgers University Spring 2013 To illustrate programming with TCP/IP sockets, we ll write a small client-server
More informationCS246 Spring14 Programming Paradigm Files, Pipes and Redirection
1 Files 1.1 File functions Opening Files : The function fopen opens a file and returns a FILE pointer. FILE *fopen( const char * filename, const char * mode ); The allowed modes for fopen are as follows
More informationMulti-Dimensional Separation of Concerns and IBM Hyper/J
Multi-Dimensional Separation of Concerns and IBM Hyper/J Technical Research Report Barry R. Pekilis Bell Canada Software Reliability Laboratory Electrical and Computer Engineering University of Waterloo
More informationEngineering Abstractions in Model Checking and Testing. Michael Achenbach Klaus Ostermann
Engineering Abstractions in Model Checking and Testing Michael Achenbach Klaus Ostermann 1 This Talk What is abstraction engineering? How can we integrate abstractions with current tools? What more is
More informationChapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1
Chapter 32 Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development
More informationSystems Programming. 08. Standard I/O Library. Alexander Holupirek
Systems Programming 08. Standard I/O Library Alexander Holupirek Database and Information Systems Group Department of Computer & Information Science University of Konstanz Summer Term 2008 Last lecture:
More informationAssertion with Aspect
Assertion with Aspect Takashi Ishio, Toshihiro Kamiya, Shinji Kusumoto, Katsuro Inoue Graduate School of Engineering Science, PRESTO, Japan Science and Technology Agency Osaka University 1-3 Machikaneyama-cho,
More informationAspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC
Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities
More informationChapter 8. Exception Handling. CS 180 Sunil Prabhakar Department of Computer Science Purdue University
Chapter 8 Exception Handling CS 180 Sunil Prabhakar Department of Computer Science Purdue University Clarifications Auto cast from char to String does not happen. Cast between int and char happens automatically.
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationSCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas
SCALA AND ASPECTJ Approaching Modularizing of Crosscutting Concerns Ramnivas Laddad ramnivas ramnivas!com @ramnivas Copyright Ramnivas Laddad. All rights reserved. @ramnivas Spring framework committer
More informationCOE318 Lecture Notes Week 10 (Nov 7, 2011)
COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:
More informationChapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring
Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has
More informationUntangling: A Slice Extraction Refactoring
Untangling: A Slice Extraction Refactoring Ran Ettinger and Mathieu Verbaere Programming Tools Group Computing Laboratory University of Oxford Thanks to our supervisor Oege de Moor Supported by an Eclipse
More informationBugdel: An Aspect-Oriented Debugging System
Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,
More informationExceptions and Error Handling
Exceptions and Error Handling Michael Brockway January 16, 2015 Some causes of failures Incorrect implementation does not meet the specification. Inappropriate object request invalid index. Inconsistent
More informationFrom Metaprogramming to Aspect-Oriented Programming. Éric Tanter University of Chile DCC/CWR
From Metaprogramming to Aspect-Oriented Programming Éric Tanter University of Chile DCC/CWR Outline Metaprogramming and Reflection Open Implementations Aspect-Oriented Programming Metaprogramming & Reflection
More informationInsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse
InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,
More informationCISC 323 (Week 9) Design of a Weather Program & Java File I/O
CISC 323 (Week 9) Design of a Weather Program & Java File I/O Jeremy Bradbury Teaching Assistant March 8 & 10, 2004 bradbury@cs.queensu.ca Programming Project The next three assignments form a programming
More information(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days
Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented
More informationIT101. File Input and Output
IT101 File Input and Output IO Streams A stream is a communication channel that a program has with the outside world. It is used to transfer data items in succession. An Input/Output (I/O) Stream represents
More informationCIS265 - Spring Exam 2 First Name Last Name CSU#
CIS265 - Spring 2013 - Exam 2 First Name Last Name CSU# MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) An instance of describes system errors.
More informationJAC444 - Lecture 4. Segment 1 - Exception. Jordan Anastasiade Java Programming Language Course
JAC444 - Lecture 4 Segment 1 - Exception 1 Objectives Upon completion of this lecture, you should be able to: Separate Error-Handling Code from Regular Code Use Exceptions to Handle Exceptional Events
More informationIntroduction Unit 4: Input, output and exceptions
Faculty of Computer Science Programming Language 2 Object oriented design using JAVA Dr. Ayman Ezzat Email: ayman@fcih.net Web: www.fcih.net/ayman Introduction Unit 4: Input, output and exceptions 1 1.
More informationCPSC 211. SOLUTIONS to PRACTICE EXERCISES II
CPSC 211 SOLUTIONS to PRACTICE EXERCISES II Recursion 1. The output of cheers(3) is: Hip Hip Hurrah 2. public static void cheers(int n) { if ( n
More informationdataflow pointcut in aspect-oriented programming
dataflow pointcut in aspect-oriented programming Hidehiko Masuhara (University of Tokyo) joint work with Kazunori Kawauchi 1 background: aspect-oriented programming (AOP) a paradigm for modularizing crosscutting
More informationA Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages"
A Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages" Procedural language" Functional language" Object-Oriented language" 1 Acknowledgements" Zhenxiao Yang" Gregor Kiczales"
More informationEXCEPTIONS. Objectives. The try and catch Statements. Define exceptions. Use try, catch and finally statements. Describe exception categories
Objectives Define exceptions 8 EXCEPTIONS Use try, catch and finally statements Describe exception categories Identify common exceptions Develop programs to handle your own exceptions 271 272 Exceptions
More informationClasses Basic Overview
Final Review!!! Classes and Objects Program Statements (Arithmetic Operations) Program Flow String In-depth java.io (Input/Output) java.util (Utilities) Exceptions Classes Basic Overview A class is a container
More informationDynamic Weaving for Building Reconfigurable Software Systems
Dynamic Weaving for Building Reconfigurable Software Systems JAGDISH LAKHANI lakhjag@iitedu Computer Science Dept Illinois Institute of Technology Chicago, IL 60616 FAISAL AKKAWI akkawif@iitedu Computer
More informationF1 A Java program. Ch 1 in PPIJ. Introduction to the course. The computer and its workings The algorithm concept
F1 A Java program Ch 1 in PPIJ Introduction to the course The computer and its workings The algorithm concept The structure of a Java program Classes and methods Variables Program statements Comments Naming
More informationAspect-Oriented Programming
Aspect-Oriented Programming Based on the Example of AspectJ Prof. Harald Gall University of Zurich, Switzerland software evolution & architecture lab AOP is kind of a complicated one for me ( ) the idea
More informationWriting your own Exceptions. How to extend Exception
Writing your own Exceptions How to extend Exception When would you write your own exception class? When to write your own custom exception is a matter for discussion in your project design team. There
More informationEXCEPTIONS. Java Programming
8 EXCEPTIONS 271 Objectives Define exceptions Exceptions 8 Use try, catch and finally statements Describe exception categories Identify common exceptions Develop programs to handle your own exceptions
More informationc Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco
c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted
More informationCS111: PROGRAMMING LANGUAGE II
CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1(c): Java Basics (II) Lecture Contents Java basics (part II) Conditions Loops Methods Conditions & Branching Conditional Statements A
More informationneeds to be reliable, easy to change, retarget efficiency is secondary implemented as interpreter, with virtual machine
Java history invented mainly by James Gosling ([formerly] Sun Microsystems) 1990: Oak language for embedded systems needs to be reliable, easy to change, retarget efficiency is secondary implemented as
More informationEnterprise Informatization LECTURE
Enterprise Informatization LECTURE Piotr Zabawa, PhD. Eng. IBM/Rational Certified Consultant e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa/en 07.10.2011 Lecture 7 Aspect-Oriented Programming
More informationLecture 16 & 17. Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc.
Lecture 16 & 17 Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc. Spring 2009 EE 382V Software Evolution, Instructor Miryung Kim This week s Agenda Presentations:
More informationG51PGP Programming Paradigms. Lecture OO-4 Aggregation
G51PGP Programming Paradigms Lecture OO-4 Aggregation 1 The story so far We saw that C code can be converted into Java code Note real object oriented code though Hopefully shows you how much you already
More informationIntroduction to Computer Science II (ITI 1121) Final Examination
Université d Ottawa Faculté de génie École d ingénierie et de technologie de l information University of Ottawa Faculty of Engineering School of Information Technology and Engineering Introduction to Computer
More informationIntroduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt www.introsoftwaretesting.com OO Software and Designs Emphasis on modularity and reuse puts complexity
More informationApplying Aspect Oriented Programming on Security
Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology
More informationCSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige
CSC 308 2.0 System Development with Java Exception Handling Department of Statistics and Computer Science 1 2 Errors Errors can be categorized as several ways; Syntax Errors Logical Errors Runtime Errors
More informationDefensive Programming. Ric Glassey
Defensive Programming Ric Glassey glassey@kth.se Outline Defensive Programming Aim: Develop the programming skills to anticipate problems beyond control that may occur at runtime Responsibility Exception
More information(Refer Slide Time: 01:12)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #22 PERL Part II We continue with our discussion on the Perl
More informationOBJECT ORIENTED PROGRAMMING. Course 6 Loredana STANCIU Room B616
OBJECT ORIENTED PROGRAMMING Course 6 Loredana STANCIU loredana.stanciu@upt.ro Room B616 Exceptions An event, which occurs during the execution of a program, that disrupts the normal flow of the program's
More informationStandard. Number of Correlations
Computer Science 2016 This assessment contains 80 items, but only 80 are used at one time. Programming and Software Development Number of Correlations Standard Type Standard 2 Duty 1) CONTENT STANDARD
More informationControls Structure for Repetition
Controls Structure for Repetition So far we have looked at the if statement, a control structure that allows us to execute different pieces of code based on certain conditions. However, the true power
More informationTowards Reusable Heterogeneous Data-Centric Disentangled Parts
Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute
More informationLab 5: Java IO 12:00 PM, Feb 21, 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Lab 5: Java IO 12:00 PM, Feb 21, 2018 1 The Java IO Library 1 2 Program Arguments 2 3 Readers, Writers, and Buffers 2 3.1 Buffering
More informationAspect-Oriented Programming with C++ and AspectC++
Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial University of Erlangen-Nuremberg Computer Science 4 Presenters Daniel Lohmann dl@aspectc.org University of Erlangen-Nuremberg, Germany
More information