Design Recovery. Today’s Lecture Reverse engineering Assignment 3 Benumbered design continued (if time)

Slides:



Advertisements
Similar presentations
Grade Cam Dustin Foster 2/4/13 Please open Chrome & Login to Skyward.
Advertisements

Ravi Mathur Updated December 5,  ODTBX uses Git (see the ODTBX Git Tutorial) ODTBXODTBX Git Tutorial ◦ SourceForge account needed (free). SourceForge.
Version Control System (Sub)Version Control (SVN).
Online Assignment Submission (January 2010 Semester)
Author Instructions How to upload Single Abstract to the paper management system Single Abstract is a document that describes one presentation that someone.
© 2009 University of California, Irvine – André van der Hoek1February 8, 2009 – 21:49:30 Informatics 122 Software Design II Lecture 9 André van der Hoek.
© 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 18:19:12 Informatics 122 Software Design II Lecture 5 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 20, 2015 – 03:43:42 Informatics 121 Software Design I Lecture 4 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 20, 2015 – 08:31:54 Informatics 121 Software Design I Lecture 2 André van der Hoek and.
COMS S1007 Object-Oriented Programming and Design in Java July 15, 2008.
Design Recovery 1 Informatics 122 Alex Baker. What is Design Recovery? Sort of like reverse engineering.
ICS 463, Intro to Human Computer Interaction Design: 3. Perception Dan Suthers.
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 9 André van der.
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 André van der.
Downloading and Installing AutoCAD Architecture 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the software.
15-Jul-15 Starting Eclipse Just the basics. Getting Eclipse If you Google for “Eclipse”: The first hit is the home page, The second.
1 of 4 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Eclipse Process Framework Plugin example: documents & maps generation
INF 123: Software Architectures, Distributed Systems, and Interoperability Discussion Session Week 1 - Spring 2008 Instructor: Prof. Richard N. Taylor.
Websites with Weebly are easy!. Easy Website Creation with Weebly Making your library media center’s web presence current and effective Holly Frilot,
The Re-engineering and Reuse of Software
SEEM4570: XAMPP, Eclipse, Summary of Html Kangfei Zhao Room 711,ERB
Getting Started With Java Downloading and installing software Running your first program Dr. DwyerFall 2012.
LGC Website and Customer On-line Tools LGC RESOURCE 2014.
Presented by Chad Kafka This Month’s Topic: Wikispaces Advanced Today’s session is an introduction to what a WIKI is and how they can be used in education.
© 2011 Delmar, Cengage Learning Chapter 7 Managing a Web Server and Files.
COMP Introduction to Programming Yi Hong May 13, 2015.
Reverse Engineering and Design Recovery Informatics 122 Alex Baker.
Introduction to Course MMIS 656 Web Design Technologies.
CIHS Registration Session 4. Registration So Far… You should have selected all of your required courses for next year. All students should also.
Learning How to Skype Presented by: Nicole Spells AET/541 – E-Learning University of Phoenix Jenna Pavleck.
Object-Oriented Software Engineering Using UNIX groups and Subversion Estimated Time: minutes “Unix is user-friendly. It's just very selective about.
Parent Portal Also known as: The next best thing to being at school with your student!
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Intro to the CS4240 Project Slides from Oct
SENG 301 – Tutorial 1 Introduction to Eclipse, Subclipse, and JUnit Slides: Theodore D. Hellmann.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Click to create a Free Account! OR Login if you have your account.
Author Instructions How to upload Abstracts and Sessions to the Paper Management System.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Go to your school’s web locker site school name.schoolweblockers.com) Your user name is the first letter of your first name, the first 4.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Websites with Weebly are easy!. Easy Website Creation with Weebly Holly Frilot, Library Media Specialist Collins Hill High School, Suwanee, GA.
GumTree Development Environment Setup Windows Only Compatible with Eclipse 3.2 M3 (Last update: 16/11/05)
Homework Assignment #1 J. H. Wang Oct. 13, Homework #1 Chap.1: 1.24 Chap.2: 2.13 Chap.3: 3.5, 3.13* (or 3.14*) Chap.4: 4.6, 4.12* –(*: optional.
Go to your school’s web locker site Your user name is the first letter of your first name, the first four letters of.
Instructions For Registration Online Course Submission: Semester I.
Suggestions for Parents Take the time to see what your kids are doing online and what their interests are. Let them teach you about the Internet. Surf.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
Communication/Grade/Echalk Session 4 of y Folders & Searching eChalk .
Author Instructions How to upload Abstracts and Sessions to the Paper Management System.
CSE 250 Spring  Can use either Eclipse plugin or web interface  For Eclipse, make sure all the files you want to submit are in the same project.
Websites with Weebly are easy!. What is Weebly? Weebly is a free website creator. It is very easy to use. If you feel comfortable creating documents with.
Design and printing instructions: This document is set to the correct size - please do not change the dimensions on the File/Page Setup menu. Finished.
How to create an educational wiki. Laurie Roberts 2010.
------TAO, MARKUS Project IT. JavaDoc ‣ JavaDoc is a standard method of commenting source code (interfaces, classes, methods, instances variables). ‣
Welcome Teachers! - WELCOME TO TEACHER WEBSITE BUILDING 101.
Lindsey Velez, Director of Instructional Technology Single Sign-On One Click.
iClickers: Technology and Pedagogy
Stephen Perry, IRO Accra December 2013
Object-Oriented Software Engineering Using UML, Patterns, and Java,
SENG 301 – Tutorial 1 Introduction to Eclipse, Subclipse, and JUnit
CCA Skill Certification
Install Ruby If you are running on Mac OS X, Ruby is preinstalled.
Project Model-Based Systems Engineering: Documentation and Analysis
Managing a Web Server and Files
2019 Convention Planner Training Using NCA Convention Central: Part I
Welcome to your tutor group
Informatics 122 Alex Baker
Presentation transcript:

Design Recovery

Today’s Lecture Reverse engineering Assignment 3 Benumbered design continued (if time)

Reverse Engineering Recreating design abstractions from:  Code  Existing design documentation (if available)  Personal experience / general knowledge about problem and application domains  Talking to people (Biggerstaff, 1989)

Design Recovery We might need  Formal specifications  Dataflows  Underlying patterns  Informal knowledge We want to understand  What  How  Why This might be more than just re-creating…

Why do we have to do this?

Working with others’ code…  Debugging  Maintenance  Modification  Reuse Working with your own code You will work with code in the absence of a complete design

Why do we have to do this? No design  Lost design  Build-and-fixed  Agile methodologies Design drift  Common! Incomprehensible design

Design Recovery’s Goals Recover lost information Cope with complexity Generate alternate views Detect side effects Facilitate Reuse (Chikofsky and Cross, 1990)

Design Recovery Tips

Object Orientation Something of an advantage  Class names, function names  Established relationships (inheritance, members, etc.) High cohesion helps  A holistic sense of purpose

Finding the structure Entities  Classes  Methods  Variables Relationships  Inheritance  Member Objects  Method calls

Approaches Reverse engineering tools  E.g. Omondo Running the program Eclipse’s References and Declarations Reading documentation Reading class names Talking to people Code reading

Also, remember Existing artifacts, but also  Personal experience  Knowledge about problem  Knowledge about the context  Knowledge about solution

A (Small) Example addAllPixels(Image image){ for(int i = 0; i < image.getWidth(); i++){ for(int j = 0; j < image.getHeight(); j++){ Color c = image.getColor(i, j); addPixel(new Pixel(i, j, c)); addToColumn(i, new Pixel(i, j, c)); updateColorTotals(c); }}}

We might be able to guess that: Need for a pixel class Different instances for  addPixel  addToColumn Concerned about speed  Not so much about space Concerned about changability?  Or just following convention

Could have just been addAllValues(ImageNumber n){ for(int i = 0; i < image.height; i++){ for(int j = 0; j < image.height; j++){ colorArray[n][i][j] = image.colorAt(i, j); }}}

Assignment 3 – Design Recovery Recover the design of Calico (surprise!)  Tool for electronic whiteboard software design developed at UC Irvine  You may use any tools you like  Do not ask anyone about it (despite that normally being a good resource) Get the Calico code from the subversion repository, detailed instructions follow

Assignment 3 – Design Recovery Each group must turn in:  A complete UML (-ish) Diagram  At least 1 additional diagram of your choice (might be informal)‏  A document describing the design of Calico (at least 4 pages)‏  Your audience is someone unfamiliar with Calico who needs to make very significant changes to it  The code may not compile  Your submission graded on completeness, clarity, accuracy Each person also needs to submit a team evaluation (forms available on class webpage)‏ Paper copy due Thursday, February 4 th, at start of class

Suggestions for Group Work Everyone start by taking their own look at the whole system  Multiple perspectives will be very useful Work out the high level architecture Understand program flows Look out for subtle details

Further tips There are papers available on Calico on André's website; feel free to consult them Use representations of classes to organize Rote completeness is not the answer, will need to be elegant

Team Assignments Team 1 Warren Applebaum Stacey Dao Sam Kaufman Kyle Lutze Ryan Nissenbaum Team 2 James Benson Hunter Gillane Garrett Kim Francesco Mantovani Hiroe Ono Team 3 Alex Chung Sohrab Hejazi Tae Kim Michael Merchant Matthew Palmer Team 4 Andrew Ziming Ryan Hsu Frank Morales Joshua Papa Jordaniel Wolk Team 5 Jessie Danielson Simon Huynh Patrick Lu Kyle Musler Sean Tsusaki Leo Zen

Detailed Checkout Instructions Two Steps: 1) Install Subclipse plugin for Eclipse 2) Check out the Calico repository NB: this assumes that you're using Eclipse and are otherwise comfortable with it.

Detailed Checkout Instructions 1. In Eclipse, go to Help > Software Updates > “Available Software” tab

Detailed Checkout Instructions 2. Hit “add site”, enter location:

Detailed Checkout Instructions 3. Hit “OK” => Check the Subclipse main box => hit “Install”

Detailed Checkout Instructions 4. Make sure everything is checked off and hit “Finish”

Detailed Checkout Instructions 5. Let the libraries download => hit “Yes” at this dialogue box

Detailed Checkout Instructions 6. Make a new Project (NOT Java Project) and choose this

Detailed Checkout Instructions 7. Make a new repository location

Detailed Checkout Instructions 8. Enter and hit “next”

Detailed Checkout Instructions 9. Select the root of the tree => hit “Next” (NOT “Finish”)‏

Detailed Checkout Instructions 10. Check out in the workspace => give it a name => hit “Finish”

Server Checkout To checkout the server version, you will need to repeat steps 6 through 10. Just replace the SVN URL with: Note: You will need to login with your ICS username and password. (If you receive any SSL certificate errors, you can safely ignore them) If you have any problems, please feel free to or stop by my office (ICS2 room 110)