Incremental Change of Software

Size: px
Start display at page:

Download "Incremental Change of Software"

Transcription

1 Incremental Change of Software

2 Taxonomy of Evolution Changes Incremental change (IC) adds substantial new functionality Refactoring (restructuring) preserves the functionality Replacement substitute one functionality by another example: replacing buggy code Retracting deletes a functionality

3 Strategies for IC Anticipated change information hiding, parametrization localize change within one class Many changes cannot be anticipated process of learning during development Microsoft: 70% of requirements predicted Ford project: 30% predicted examples of unexpected changes company mergers, introduction of Euro

4 Unanticipated IC The Software was not prepared/designed for it Very common situation in practice A substantial part of software engineering

5 Initiation The Mini-process of IC IC design IC implementation & Tests Release

6 IC Initiation Problem Report May require logs, traces Preventive Maintenance enhance reliability, comprehensibility, extensibility, etc. New Feature Request additional functionality of the product usually initiated by the customers, marketing, management All change requests assigned a priority and placed on the queue hot problems cause instant reprioritization

7 IC Design Concept Location Find where in the code the change will be done Study Code and Documentation Identify/Weigh Alternative Solutions Implementation strategy Divide large changes into several smaller ones Each has its own implementation and testing activity Impact analysis Find all components that will be affected by the change

8 IC Implementation Refactoring 1 (pre-factoring) Restructure the software to localize change Actualization Implements the new code Incorporation Replaces the new code by the old Change propagation Changes all other components that must be changed Refactoring 2 (post-factoring) Improves clarity, readability

9 Testing Unit tests of the components Guarantee that units (classes) work Regression test Guarantee that things that did not change still work Integration test Guarantee that the whole system works again Tests are done both during and after implementation

10 IC Release Release build Write Release Notes Make release available to customer

11 Concept location plays key role in IC concepts are present in the code primitive concepts have to be enriched Point-of-Sale: introduce credit card payment old code: payment represented as just one number latent concepts have to be implemented Student Registration: introduce prerequisite check old code assumption: prerequisites are satisfied

12 Concept location finds code that implements concept part of program comprehension concept location methodologies human knowledge "grep" (pattern matching) dynamic search (execution traces) static search through dependency graph traceability tools

13 Top-down search Depth first search done by programmer: Start with the top class (main in C++) while (concept is not implemented here) if (the concept is a part of the composite functionality) move to subclass which leads to the concept else backtrack concept located

14 Change propagation Refactoring 1 (pre-factoring) Restructure the software to localize change Actualization Implements the new code Incorporation Replaces the new code by the old Change propagation Changes all other components that must be changed Refactoring 2 (post-factoring) Improves clarity, readability

15 Change propagation if the visited class is modified, it may no longer fit secondary changes must be made in interacting ( neighboring ) classes secondary changes may trigger additional changes ripple effect Process Mark neighboring classes of a class that changed visit the marked classes one-by-one

16 Three possibilities for marked Change class Mark all neighbors class visit Do not change class but propagate Mark all neighbors Do not change class and do not propagate Erase the mark

17 Three options (class diagram) Change class mark Do not change class but propagate

18 Three options (class diagram) Do not change class and do not propagate

19 Example change propagation Point-Of-Sale application Old program keeps an inventory, receives delivery, sells products, and supports a cash register. Classes designed and implemented at a minimal level of functionality

20 UML class diagram

21 Incremental change complexities of sale taxes different products may have different sales tax, depending on state law location tax in class item actualization new class taxcategory

22 Incorporation register store item sale salelineitem taxcategory

23 Change propagation register store item sale salelineitem taxcategory

24 Change propagation register store item sale salelineitem taxcategory

25 Change propagation register store item sale salelineitem taxcategory

26 Change propagation register store item sale salelineitem taxcategory

27 Change propagation register store item sale salelineitem taxcategory

28 Summary adding tax 1 new class was implemented All 5 old classes had to be visited (!) 3 old classes had to be changed

29 Example Drawlets Application framework Drawlets adds graphical display to a host application Drawing canvas lines, free-hand lines, rectangles, rounded rectangles, triangles, pentagons, polygons, ellipses, text boxes, images

30 Drawlets more than 100 classes, 35 interfaces and 40,000 lines of code originally implemented by Kent Beck, Ward Cunningham later ported into Java perfect API drawlets.htm

31 The host application responsible for providing an instance of the drawing canvas, toolbars, and tool buttons Class SimpleApplet is a host application is a part of the Drawlet library SimpleApplet runs in any browser

32 SimpleApplet window

33 Top classes LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

34 Concept Location :: Example Locating figure properties in Drawlets

35 Example Drawlets: Top class LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

36 Wrong way LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

37 Backtrack LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

38 Right way LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

39 Wrong way LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

40 Backtrack LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

41 Concept Location :: Summary LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

42 Change Request implement an "owner" for each figure owner put that figure onto the canvas only owner is allowed to move that figure each session declares a session owner this session owner will own all new figures created no other owner will be allowed to manipulate them This change will make SimpleApplet more versatile and useful support for cooperative work

43 Extraction The concepts relevant to the change figure owner and session owner both are implicit old code assumes that there is just one owner who owns both sessions and figures

44 Location LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

45 Actualization LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

46 Incorporation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

47 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

48 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

49 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

50 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

51 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

52 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

53 Propagation LocatorConnectionHandle Locator AbstractFigure Figure StylePalette SequenceOfFigures OwnerIdentity SimpleApplet DrawingCanvas ToolBar CanvasTool SimpleDrawingCanvas SimpleListener ToolPalette SelectionTool ConstructionTool PrototypeConstructionTool ShapeTool LabelTool RectangleTool EllipseTool RectangularCreationTool PG_RectImageTool

54 Shorter change propagation Long change propagation is a problem it would be advantageous to shorten it opportunistic refactoring moves code affected by change into fewer classes splitting the roles

55 More info on the case study Václav Rajlich, Prashant Gosavi: Incremental Change in Object-Oriented Programming. IEEE Software 21(4): (2004)

A Case Study of Unanticipated Incremental Change

A Case Study of Unanticipated Incremental Change A Case Study of Unanticipated Incremental Change Václav Rajlich, Prashant Gosavi Department of Computer Science, Wayne State University, Detroit, MI 48202 rajlich@cs.wayne.edu Abstract Incremental changes

More information

4 Software models. often more than what people can handle not necessary to know all details at all times

4 Software models. often more than what people can handle not necessary to know all details at all times 4 Software models Software is complex often more than what people can handle not necessary to know all details at all times Models offer simplified view concentrate on the important issues and omit the

More information

6 Concepts and concept location Initiation

6 Concepts and concept location Initiation 6 Concepts and concept location Initiation Concept Location Impact Analysis Prefactoring Actualization Postfactoring Conclusion V E R I F I C A T I O N 2012 Václav Rajlich Software Engineering: The Current

More information

A Case Study in Adding Ownership Domain Annotations

A Case Study in Adding Ownership Domain Annotations A Case Study in Adding Ownership Domain Annotations Marwan Abi-Antoun Nariman Ammar Fayez Khazalah October 2010 Department of Computer Science Wayne State University Detroit, MI 48202 Abstract A software

More information

JAVA CONCEPTS Early Objects

JAVA CONCEPTS Early Objects INTERNATIONAL STUDENT VERSION JAVA CONCEPTS Early Objects Seventh Edition CAY HORSTMANN San Jose State University Wiley CONTENTS PREFACE v chapter i INTRODUCTION 1 1.1 Computer Programs 2 1.2 The Anatomy

More information

Illustrator Domains 1-4: Getting to Know Your Workspace. Dreamweaver Domain 3

Illustrator Domains 1-4: Getting to Know Your Workspace. Dreamweaver Domain 3 Illustrator Domains 1-4: Getting to Know Your Workspace 1 Lesson 1: Getting to Know the Work Area Toolbar Fly-out menus for hidden tools Panels Can be opened, closed, docked, or hide all (Tab) Like your

More information

Design Patterns: Prototype, State, Composite, Memento

Design Patterns: Prototype, State, Composite, Memento Design Patterns: Prototype, State, Composite, Memento Let s start by considering the CanvasEditor as we had it at the end of the last class. Recall that when a button was clicked, the button s custom ActionListener

More information

9 Refactoring. Refactoring changes the software structure but does not change the functionality of the program. important activity during evolution

9 Refactoring. Refactoring changes the software structure but does not change the functionality of the program. important activity during evolution 9 Refactoring Refactoring changes the software structure but does not change the functionality of the program important activity during evolution Refactoring consists of behaviour preserving transformations

More information

STRONGVON Tournament Management System Features and Capabilities Copyright 2009 STRONGVON LLC

STRONGVON Tournament Management System Features and Capabilities Copyright 2009 STRONGVON LLC STRONGVON Tournament Management System Features and Capabilities Copyright 2009 STRONGVON LLC Introduction The STRONGVON Tournament Management System is the most comprehensive way to manage your tournaments

More information

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A G R A M S ) WHAT IS CLASS DIAGRAM? A class diagram

More information

COMPUTER/INFORMATION FLOOD STANDARDS

COMPUTER/INFORMATION FLOOD STANDARDS COMPUTER/INFORMATION FLOOD STANDARDS CIF-1 Flood Model Documentation A. Flood model functionality and technical descriptions shall be documented formally in an archival format separate from the use of

More information

Oracle Order Capture. Dependencies. Related Documentation and Resources. Implementation Guide

Oracle Order Capture. Dependencies. Related Documentation and Resources. Implementation Guide Oracle Order Capture Implementation Guide Release 11i August 2000 Part No. A86137-01 This topic group provides general descriptions of the set up and configuration tasks required to implement the application

More information

INF 111 / CSE 121. Laboratory 6: Package and Sequence Diagrams using ArgoUML

INF 111 / CSE 121. Laboratory 6: Package and Sequence Diagrams using ArgoUML Laboratory 6: Package and Sequence Diagrams using ArgoUML Name : Student Number : Laboratory Time : Objectives Add Packages to a Class Diagram in ArgoUML Create a Sequence Diagram in ArgoUML Create a new

More information

Modeling software evolution by evolving interoperation graphs

Modeling software evolution by evolving interoperation graphs Annals of Software Engineering 9 (2000) 235 248 235 Modeling software evolution by evolving interoperation graphs Václav Rajlich Department of Computer Science, Wayne State University, Detroit, MI 48202,

More information

SOFTWARE MAINTENANCE: A

SOFTWARE MAINTENANCE: A SOFTWARE MAINTENANCE: A TUTORIAL BY KEITH H. BENNETT 2008.10.13 소프트웨어 200310612 조보경 Software Engineering Field Main problem of software engineering Scale and Complexity of the software Goal of software

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Explorations of Rigid Motions and Congruence

Explorations of Rigid Motions and Congruence Explorations of Rigid Motions and Congruence James King University of Washington Department of Mathematics king@uw.edu http://www.math.washington.edu/~king The Plan In this session, we will explore exploring.

More information

Filing a Sales Tax Return in ebiz Tax

Filing a Sales Tax Return in ebiz Tax Filing a Sales Tax Return in ebiz Tax Step-by-step instructions Denver Treasury Division This handout gives step-by-step instructions on how to file a sales tax return in Denver s ebiz Tax Center. 6/30/2017

More information

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

Refactoring. Refactoring Techniques

Refactoring. Refactoring Techniques Refactoring Refactoring Techniques Code Quality is Important! Refactoring is... A disciplined technique for restructuring an existing body of code, altering its internal structure without changing its

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018 News in RSA-RTE 10.2 updated for sprint 2018.18 Mattias Mohlin, May 2018 Overview Now based on Eclipse Oxygen.3 (4.7.3) Contains everything from RSARTE 10.1 and also additional features and bug fixes See

More information

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis.

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis. SOFTWARE ENGINEERING SOFTWARE EVOLUTION Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Evolution Learning Objectives: Identify the principal issues associated with software evolution and

More information

Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary

More information

website_ctr:link_click unique_link_clicks_ctr video_avg_sec_watched_actions video_avg_pct_watched_actions

website_ctr:link_click unique_link_clicks_ctr video_avg_sec_watched_actions video_avg_pct_watched_actions Existing Name New Name as of Name in Ad Insights API (reference) pre 3/14 3/14/2017 1 Existing Name New Name Ad Insights API Field Name (as reference) 2 Account Account Name /act_?fields=name

More information

A Rapid Overview of UML

A Rapid Overview of UML A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system

More information

Modeling Software Evolution by Evolving Interoperation Graphs 1

Modeling Software Evolution by Evolving Interoperation Graphs 1 Annals of Software Engineering, Vol. 9, 2000, pp. 235-348. Modeling Software Evolution by Evolving Interoperation Graphs 1 Václav Rajlich Department of Computer Science Wayne State University Detroit,

More information

Intermediate/Advanced. Faculty Development Workshop FSE Faculty retreat April 18, 2012

Intermediate/Advanced. Faculty Development Workshop FSE Faculty retreat April 18, 2012 Intermediate/Advanced Faculty Development Workshop FSE Faculty retreat April 18, 2012 Remote Desktop Sharing Quick Reference Guide for Moderators The Moderator or a Participant may request control of another

More information

Checklist for Requirements Specification Reviews

Checklist for Requirements Specification Reviews Checklist for Requirements Specification Reviews Organization and Completeness o Are all internal cross-references to other requirements correct? o Are all requirements written at a consistent and appropriate

More information

C Sc 335 Practice Test 2 Answers 1a) Create an initial list of classes that would do a good job of modeling this system (ANSWER MAY VARY)

C Sc 335 Practice Test 2 Answers 1a) Create an initial list of classes that would do a good job of modeling this system (ANSWER MAY VARY) C Sc 335 Practice Test 2 Answers 1a) Create an initial list of classes that would do a good job of modeling this system (ANSWER MAY VARY) Candidate Class Name Single Responsibility Customer (or Rentor)

More information

CO Java SE 8: Fundamentals

CO Java SE 8: Fundamentals CO-83527 Java SE 8: Fundamentals Summary Duration 5 Days Audience Application Developer, Developer, Project Manager, Systems Administrator, Technical Administrator, Technical Consultant and Web Administrator

More information

COWLEY COLLEGE & Area Vocational Technical School

COWLEY COLLEGE & Area Vocational Technical School COWLEY COLLEGE & Area Vocational Technical School COURSE PROCEDURE FOR JAVA PROGRAMMING CIS1868 3 Credit Hours Student Level: This course is open to students on the college level in either freshman or

More information

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45 MTAT.03.094 Software Engineering Written Exam 17 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail

More information

CHANGES TO THIS POLICY

CHANGES TO THIS POLICY Privacy Policy Your personal and corporate privacy is important to FunkyCouture.com. This privacy policy ( Policy ) applies to the FunkyCouture.com e Web sites and services and tells you how personal and

More information

Reengineering II. Transforming the System

Reengineering II. Transforming the System Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have

More information

ADOBE TRAINING CS6 PHOTOSHOP BASICS: EDITING PHOTOS & WORKING WITH TEXT - 1

ADOBE TRAINING CS6 PHOTOSHOP BASICS: EDITING PHOTOS & WORKING WITH TEXT - 1 ADOBE TRAINING CS6 PHOTOSHOP BASICS: EDITING PHOTOS & WORKING WITH TEXT Photoshop is the leading professional software for editing and adjusting photos, images and other graphic projects. It is a very

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

Gift Card Instructions Daxko Spectrum

Gift Card Instructions Daxko Spectrum Gift Cards Gift card are good to use for a variety of reason: 1. You can track the declining balance on them. 2. You can recharge them; treat it as a cash card. The cards can be attached to a recipient.

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Course ISI-1329 - Three Days - Instructor-Led Introduction This three-day, instructor-led course introduces students to computer programming. Students will learn the fundamental

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

COMPUTER FLOOD STANDARDS

COMPUTER FLOOD STANDARDS COMPUTER FLOOD STANDARDS CF-1 Flood Model Documentation A. Flood model functionality and technical descriptions shall be documented formally in an archival format separate from the use of letters, slides,

More information

Furniture Wizard Security Introduction

Furniture Wizard Security Introduction Furniture Wizard Security Introduction In this section, we will introduce you to the new security features of Furniture Wizard. Furniture Wizard s security will allow you to set permissions for different

More information

2. Reasons for implementing clos-unit

2. Reasons for implementing clos-unit A CLOS Implementation of the JUnit Testing Framework Architecture: A Case Study Sandro Pedrazzini Canoo Engineering AG sandro.pedrazzini@canoo.com Abstract There are different reasons why you would like

More information

ShaDe for SketchUp. User's Guide All rights reserved For research use only (non-commercial use) Manuela Ruiz Montiel and Universidad de Málaga

ShaDe for SketchUp. User's Guide All rights reserved For research use only (non-commercial use) Manuela Ruiz Montiel and Universidad de Málaga ShaDe for SketchUp User's Guide All rights reserved For research use only (non-commercial use) Manuela Ruiz Montiel and Universidad de Málaga Author Manuela Ruiz Montiel Date November 28, 2011 Version

More information

Refactoring and Rearchitecturing

Refactoring and Rearchitecturing Refactoring and Rearchitecturing Overview Introduction Refactoring vs reachitecting Exploring the situation Legacy code Code written by others Code already written Not supported code Code without automated

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized

More information

The Studio Director QuickBooks Help

The Studio Director QuickBooks Help The Studio Director QuickBooks Help Copyright 2016 The Studio Director OnVision Solutions, Inc. P.O. Box 3221 Monument, CO 80132 http://www.thestudiodirector.com Table of Contents OVERVIEW & REQUIREMENTS...

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Refactoring Practice: How it is and How it Should be Supported

Refactoring Practice: How it is and How it Should be Supported Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case

More information

Course Title: Computer Graphics Course no: CSC209

Course Title: Computer Graphics Course no: CSC209 Course Title: Computer Graphics Course no: CSC209 Nature of the Course: Theory + Lab Semester: III Full Marks: 60+20+20 Pass Marks: 24 +8+8 Credit Hrs: 3 Course Description: The course coversconcepts of

More information

Methods for requirements engineering

Methods for requirements engineering Methods for requirements engineering Objectives To explain the role of methods and techniques in requirements engineering To introduce data-flow modelling To introduce semantic data modelling To introduce

More information

An approach to introductory programming

An approach to introductory programming An approach to introductory programming Abhiram Ranade April 21, 2014 What should you teach in an introductory programming course? What should you teach in an introductory programming course? Some simple

More information

Introduction to Computer Science with Python Course Syllabus

Introduction to Computer Science with Python Course Syllabus CodeHS Introduction to Computer Science with Python Course Syllabus Course Overview and Goals The CodeHS Introduction to Computer Science in Python course teaches the fundamentals of computer programming

More information

Carnegie Learning Math Series Course 1, A Florida Standards Program. Chapter 1: Factors, Multiples, Primes, and Composites

Carnegie Learning Math Series Course 1, A Florida Standards Program. Chapter 1: Factors, Multiples, Primes, and Composites . Factors and Multiples Carnegie Learning Math Series Course, Chapter : Factors, Multiples, Primes, and Composites This chapter reviews factors, multiples, primes, composites, and divisibility rules. List

More information

Unit 1, Lesson 13: Polyhedra

Unit 1, Lesson 13: Polyhedra Unit 1, Lesson 13: Polyhedra Lesson Goals Identify prisms and pyramids. Understand and use vocabulary for polyhedra. Understand the relationship between polyhedra and their nets. Required Materials nets

More information

Kerievsky_book.fm Page 355 Thursday, July 8, :12 PM. Index

Kerievsky_book.fm Page 355 Thursday, July 8, :12 PM. Index Kerievsky_book.fm Page 355 Thursday, July 8, 2004 12:12 PM Index A Absorbing class, 117 Abstract Factory, 70 71 Accept methods, 327 Accumulation methods, 315, 325 330 Accumulation refactorings Collecting

More information

MTAT Software Engineering. Written Exam 10 January Start: 9:15 End: 11:45

MTAT Software Engineering. Written Exam 10 January Start: 9:15 End: 11:45 MTAT.03.094 Software Engineering Written Exam 10 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

GraphWorX64 Productivity Tips

GraphWorX64 Productivity Tips Description: Overview of the most important productivity tools in GraphWorX64 General Requirement: Basic knowledge of GraphWorX64. Introduction GraphWorX64 has a very powerful development environment in

More information

Topics. Designing the program. Chapter 9 Program and Transaction Design. (c) Addison Wesley Chapter 9

Topics. Designing the program. Chapter 9 Program and Transaction Design. (c) Addison Wesley Chapter 9 MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 9 Program and Transaction Design Copyright 2000 by Addison Wesley Version

More information

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV Contents Preface Chapter 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19

More information

Event Night Card Reader

Event Night Card Reader Event Night Card Reader There are three possible scenarios at event check-in: 1. Pre-registered Guests: Bidders who have registered for the event in advance, including on-line registrations. 2. New Bidders

More information

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell Data Analysis 1 Chapter 2.1 V3.1 Copyright @ Napier University Dr Gordon Russell Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is

More information

Utilizing Web Search Engines for Program Analysis

Utilizing Web Search Engines for Program Analysis Utilizing Web Search Engines for Program Analysis Daniel Ratiu, Lars Heinemann Technische Universität München ICPC 2010, Braga Object-Oriented Software Construction [B. Meyer] Many objects are there just

More information

Computer Programming II C++ (830)

Computer Programming II C++ (830) DESCRIPTION This is an advanced course in computer programming/software engineering and applications. It reviews and builds on the concepts introduced in CP I. It introduces students to dynamic data structures,

More information

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture

More information

Registration and Title System

Registration and Title System Registration and Title System Refactored Point of Sale System for County Offices Release 9.1.0 5/21/2018 About These contain information about new features, enhancements, and reported issues resolved in

More information

Exam in TDDB84: Design Patterns,

Exam in TDDB84: Design Patterns, Exam in TDDB84: Design Patterns, 2014-10-24 14-18 Information Observe the following, or risk subtraction of points: 1) Write only the answer to one task on one sheet. Use only the front side of the sheets

More information

Navigating Product Catalogs Through OFDAV Graph Visualization

Navigating Product Catalogs Through OFDAV Graph Visualization Navigating Product Catalogs Through OFDAV Graph Visualization Mao Lin Huang Department of Computer Systems Faculty of Information Technology University of Technology, Sydney NSW 2007, Australia maolin@it.uts.edu.au

More information

Paint Tutorial (Project #14a)

Paint Tutorial (Project #14a) Paint Tutorial (Project #14a) In order to learn all there is to know about this drawing program, go through the Microsoft Tutorial (below). (Do not save this to your folder.) Practice using the different

More information

Oracle Forms Modernization Through Automated Migration. A Technical Overview

Oracle Forms Modernization Through Automated Migration. A Technical Overview Oracle Forms Modernization Through Automated Migration A Technical Overview Table of Contents Document Overview... 3 Oracle Forms Modernization... 3 Benefits of Using an Automated Conversion Tool... 3

More information

Check out FilesAndExceptions from SVN. Exam 2 Review File I/O, Exceptions Vector Graphics Project

Check out FilesAndExceptions from SVN. Exam 2 Review File I/O, Exceptions Vector Graphics Project Check out FilesAndExceptions from SVN Exam 2 Review File I/O, Exceptions Vector Graphics Project Exam 2 review File I/O and Exceptions Vector Graphics project kickoff Exam is in class tomorrow Test on

More information

Solved Question Paper June 2017

Solved Question Paper June 2017 Solved Question Paper June 2017 1.a) What are the benefits of Object Oriented Methodology in real life applications? Briefly explain each element of the state diagram with respect to dynamic modeling.

More information

Soda Machine Laboratory

Soda Machine Laboratory Soda Machine Laboratory Introduction This laboratory is intended to give you experience working with multiple queue structures in a familiar real-world setting. The given application models a soda machine

More information

End-of-Module Assessment Task

End-of-Module Assessment Task Name Date 1. The juice box pictured below is 4 inches high, 3 inches long, and 2 inches wide. a. In the grid above, the distance between grid lines represents one inch. Use the grid paper to sketch the

More information

Self-review Questions

Self-review Questions 7Class Relationships 106 Chapter 7: Class Relationships Self-review Questions 7.1 How is association between classes implemented? An association between two classes is realized as a link between instance

More information

Ways of documenting Session 5: detailed requirements The Data Dictionary one any The Project A data dictionary Data Dictionary may be maintained

Ways of documenting Session 5: detailed requirements The Data Dictionary one any The Project A data dictionary Data Dictionary may be maintained Session 5: The Data Dictionary relationship to systems analysis methodologies relationship to project management data definition vs. data representation taxonomy of data types COMP 477 /377, Spring, 2017

More information

Introduction to UML. Danang Wahyu utomo

Introduction to UML. Danang Wahyu utomo Introduction to UML Danang Wahyu utomo danang.wu@dsn.dinus.ac.id 085 740 955 623 Evolution of OO Development Methods History of OOAD leading to UML Why Model? Analyse the problem domain - Simplify reality

More information

Search Results Tabs. List Tab Options

Search Results Tabs. List Tab Options Search Results Tabs The Search Results screen is sectioned by tabs. These tabs contain information and tools that are vital in how you configure listing information to package and sell to your clients.

More information

Entity Relationship Modelling

Entity Relationship Modelling Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes, and relationships in a system The degree of

More information

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University Properties of High Quality Software CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Software Engineering Basics Important Principles for creating a Software Solution:

More information

COWLEY COLLEGE & Area Vocational Technical School

COWLEY COLLEGE & Area Vocational Technical School COWLEY COLLEGE & Area Vocational Technical School COURSE PROCEDURE FOR Student Level: This course is open to students on the college level in either the freshman or sophomore year. Catalog Description:

More information

Unit E Geometry Unit Review Packet

Unit E Geometry Unit Review Packet Unit E Geometry Unit Review Packet Name Directions: Do ALL (A) Questions. Check Your Answers to (A) Questions. If ALL (A) Questions are correct, skip (B) Questions and move onto next I can statement. If

More information

Is it possible to rotate ΔEFG counterclockwise to obtain ΔE F G? If so, how?

Is it possible to rotate ΔEFG counterclockwise to obtain ΔE F G? If so, how? [Hide Toolbars] In Lesson 3.1.1, you learned how to transform a shape by reflecting it across a line, like the ice cream cones shown at right. Today you will learn more about reflections and also learn

More information

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD Domain analysis Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD OOA concerned with what, not how OOA activities focus on the domain layer

More information

The Auction Manager Owner s Manual. A quick guide to the tools and features available in BiddingforGood s Auction Manager.

The Auction Manager Owner s Manual. A quick guide to the tools and features available in BiddingforGood s Auction Manager. The Auction Manager Owner s Manual A quick guide to the tools and features available in BiddingforGood s Auction Manager. When you log in to Auction Manager, this is what you ll see: This is the main toolbar.

More information

V-BOX Cloud Configuration

V-BOX Cloud Configuration V-BOX Cloud Configuration Website: http://www.we-con.com.cn/en Technical Support: support@we-con.com.cn Skype: fcwkkj Phone: 86-591-87868869 QQ: 1043098682 Technical forum: http://wecon.freeforums.net/

More information

CHAPTER 6 ACTIONS, METHODS, REFACTORING

CHAPTER 6 ACTIONS, METHODS, REFACTORING VERSION 1 CHAPTER 6 In this chapter we cover ACTIONS in more depth and show how to easily create additional actions in a script by using a technique known as REFACTORING. The chapter covers two forms of

More information

Software Requirements Specifications

Software Requirements Specifications Communication Model for Cooperative Robotics Simulator Software Requirements Specifications Version 1.0 1. Introduction 1.1 Purpose The purpose of this document is to define functionality of Communication

More information

2.4 Angle Properties in Polygons.notebook. October 27, 2013 ENTRANCE SLIP

2.4 Angle Properties in Polygons.notebook. October 27, 2013 ENTRANCE SLIP ENTRANCE SLIP If you are given one interior angle and one exterior angle of a triangle, can you always determine the other interior angles of the triangle? Explain, using diagrams. 1 2.4 Angle Properties

More information

Course Information Package

Course Information Package Course Information Package PLANNING FORM FOR AN EDUCATIONAL MODULE (to be completed by the teacher) Programme of Studies: Name of the module: Target group: Level of the unit: Entrance requirements: Number

More information

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing Extreme Programming CS 6704, Spring 2002 By Roy Tan and Jiang Shu Contents What is Extreme Programming (XP)? When to use XP? Do we need yet another software methodology? XP s rules and practices XP s relation

More information

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

CompuScholar, Inc. Alignment to Nevada Computer Science Course Standards CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):

More information

Information Technology Audit & Cyber Security

Information Technology Audit & Cyber Security Information Technology Audit & Cyber Security Structured Data Requirements Systems & Infrastructure Lifecycle Management with E-R LEARNING OBJECTIVES Explain the role of conceptual data modeling in the

More information

On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1

On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1 On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu On to Iteration 3: NextGen POS Failover

More information

Grade 10 Geometry 3 rd Nine Weeks Pacing Guide

Grade 10 Geometry 3 rd Nine Weeks Pacing Guide Week 1 (1/ 4-6) Week 2 (1/9-13) 2016-2017 Grade 10 3 rd Nine Weeks Pacing Guide 17. [G-SRT.4] Prove theorems about triangles. Theorems include a line parallel to one side of a triangle divides the other

More information

Eclipse Forms. Release 8.7.2

Eclipse Forms. Release 8.7.2 Eclipse Forms Release 8.7.2 Legal Notices 2011 Epicor Software Corporation. All rights reserved. Unauthorized reproduction is a violation of applicable laws. Epicor and the Epicor logo are registered trademarks

More information

Software Change and Evolution 1

Software Change and Evolution 1 Published in Lecture Notes in Computer Science LNCS 1725, Springer Verlag, 1999, 186-199. Software Change and Evolution 1 Václav Rajlich Department of Computer Science, Wayne State University Detroit,

More information