Software Architecture, Process and Management Tools for Software Projects

Size: px
Start display at page:

Download "Software Architecture, Process and Management Tools for Software Projects"

Transcription

1 Software Architecture, Process and Management Tools for Software Projects Allan Clark School of Informatics University of Edinburgh Semester Two

2 Previous Lecture s Estimation Exercise Recall from the previous lecture I asked you all to estimate how long it would take to complete a given task I asked how long you estimate a developer would take, stating that the developer needn t be yourself I meant a suitable developer, in other words if you didn t think you personally could complete the task because you lack certain skills you could think of a more appropriate developer But I didn t say this

3 Previous Lecture s Estimation Exercise To remind you all of the task in question: Write a Java to HTML translator It needn t do any error detection/correction But nor need it translate invalid JAVA You cannot use an existing one, but you can use libraries for parsing text or even parsing Java itself.

4 Turan If you have very low estimate, one way of testing/showing your estimate is to have a go at some code Linus Torvalds: Talk is cheap, show me the code

5 Turan If you have very low estimate, one way of testing/showing your estimate is to have a go at some code Linus Torvalds: Talk is cheap, show me the code However, Turan obviously thought this was a bit easy so he decided to do this using only his right hand He didn t say whether he was right-handed or not He also chose to do this in a single-file Obviously that gave him a huge advantage and surely more than made up for using a single hand Although I do not yet have the data to back up this claim

6 Turan 6:15 pm Started working on the project. I decided to implement it in JavaScript so that it would be easy to see HTML results. 6:18 pm I already have a simple UI, textarea for Java source input, button To HTML and output area. Time to get these components working! I thought it will make sense to start with getting Java keywords (public, final, catch, while) highlighted. I googled java keywords, got their list from Oracle web site. First idea was to tokenize everything using space character as a separator. Then go through the tokens and if any of them match just surround them with. 6:31 pm After few fails, keywords are being successfully processed now.

7 Turan 6:45 pm Next step: Strings. As we know that Java code will always be valid, it could be easily implemented with regex. 6:50 pm Done! got keywords and strings highlighted. Next: detect annotations, classes, constants (mostly using Java code style convention). 7:20 pm Great! Everything seems working! Testing Time! 7:31 pm Comments.. are really tricky.. /* foo / int i; / bar */ 7:31-8:20 pm Some RegEx magic and comments are also working! 8:20-8:45 pm More testing minor fixes

8 Turan These time comments available at: You can try out his code here: A single HTML file with Javascript and CSS injected NTS (not too shabby) As an aside, both those urls (and most others) are valid Java 1 public static void main(string[] args) 2 { 3 System.out.println ("An inserted url"); System.out.println ("compiles Ok!"); 6 } Line comments on a line of their own were failing for me

9 Some Java Code 1 public boolean[] sieveoferatosthenes(int max){ 2 3 boolean[] primecandidates = new boolean[max]; //defaults to false 4 for(int i=2; i<max; i++ ){primecandidates[i]=true;} 5 6 for(int i=2; i<math.sqrt(max);i++){ 7 if(primecandidates[i] == true){ 8 //all multiples of i*i, except i, are not primecandidates 9 for(int j = i + i; j<max; j=j+i){ 10 primecandidates[j]=false; 11 } 12 } } 15 return primecandidates; 16 }

10 Some Java Code 1 public boolean[] sieveoferatosthenes(int max){ 2 3 boolean[] primecandidates = new boolean[max]; //defaults to false 4 for(int i=2; i<max; i++ ){primecandidates[i]=true;} 5 6 for(int i=2; i<math.sqrt(max);i++){ 7 if(primecandidates[i] == true){ 8 //all multiples of i*i, except i, are not primecandidates 9 for(int j = i + i; j<max; j=j+i){ 10 primecandidates[j]=false; 11 } 12 } } 15 return primecandidates; 16 }

11 1 Some Similar Java Code 2 public boolean[]sieveoferatosthenes(int max){boolean[] primecandidates 3 = new boolean[max]; /*defaults to false*/ for(int i=2; i<max; i++ 4 ){primecandidates[i]=true;} for(int i=2; i<math.sqrt(max);i++){ 5 if(primecandidates[i] == true){ /*all multiples of i*i, except i, 6 are not primecandidates*/ for(int j = i + i; j<max; j=j+i){ 7 primecandidates[j]=false;}}} return primecandidates;}

12 1 Perfectly Valid Formatted Output 2 public boolean[]sieveoferatosthenes(int max){boolean[] primecandidates 3 = new boolean[max]; /*defaults to false*/ for(int i=2; i<max; i++ 4 ){primecandidates[i]=true;} for(int i=2; i<math.sqrt(max);i++){ 5 if(primecandidates[i] == true){ /*all multiples of i*i, except i, 6 are not primecandidates*/ for(int j = i + i; j<max; j=j+i){ 7 primecandidates[j]=false;}}} return primecandidates;}

13 Alternative Perfectly Valid Formatted Output 1 public boolean[] sieveoferatosthenes(int max){ 2 3 boolean[] primecandidates = new boolean[max]; //defaults to false 4 for(int i=2; i<max; i++ ){primecandidates[i]=true;} 5 6 for(int i=2; i<math.sqrt(max);i++){ 7 if(primecandidates[i] == true){ 8 //all multiples of i*i, except i, are not primecandidates 9 for(int j = i + i; j<max; j=j+i){ 10 primecandidates[j]=false; 11 } 12 } } 15 return primecandidates; 16 }

14 Did the experiment work? Mostly yes: I had feared that the lowest estimate would be 3 days and the highest 5 days This would not have made my point at all In the end, I didn t have much to fear the highest and lowest estimates were: 8 hours 1 year Even if we take 1 year to mean it is still an estimate that is 48 5 = 240 times the lowest estimate Neither of these are bad estimates

15 Did the experiment work? Estimates vary wildly These are not necessarily caused by either estimator being poor at estimating how long a given task will take (though most of us are indeed poor at that) It is not necessarily caused by a difference in the competence/suitability/required knowledge of the two estimators (though this can be a large factor) Often it is caused by the two estimators simply thinking of two different sets of requirements One may be thinking of production quality code One may be thinking of a rough first attempt that allows other parts of the project dependent upon it to start Almost any estimate could be made correct by decreasing/increasing the scope/quality/function/performance

16 Today s Topic Let s get back on talk about tools for software projects Recall the rabbit hutch Remind me again how many of you think you could build this or something similar?

17 Do you own one of these?

18 Do you own one of these? and one of these?

19 Automating Drudgery Most of the techniques we ll talk about can benefit from automated tools, and some would be totally impractical without them e.g. the continual code changes involved in Extreme Programming Discussing all relevant tools is outside of the scope of this course. We will look at a few extremely useful categories, focusing on baseline open-source packages that everyone should be using unless their organisation has something better. We primarily consider useful individual tools, not integrated project management suites, because they are more widely applicable. That isn t to say project management suites aren t useful. Here though we wish to highlight the individual components that are useful on their own merit (outside of any integrated project management suite)

20 Tool Types Version control (e.g. Git) Build control (e.g. make) Debuggers (e.g. gdb) Unit/regression testing (e.g. JUnit) Bug/issue tracking (e.g. Trac) Documentation generation (e.g. JavaDoc) Project management (e.g. MS Project) Integrated suites (e.g. RUP) Others

21 1st Step: Version Control Before starting any project (programming or otherwise!) with edits occuring over more than a couple of weeks, you should set up a version control system If you do not, you deserve every one of the many troubles that will be coming your way Version control or conguration management systems like Git, Mercurial, or Subversion track and manage changes during development and maintenance of any long-lived set of files. They tell you who changed what, when.

22 Basic Version Control Features Have separate repository holding all versions of all files Changes in local copies do not affect the repository until a commit (a.k.a. checkin) Commits merge your changes with the repository files Locking or merge mechanisms prevent or resolve collisions between users Can provide complete history of all changes, reproducing state at any time and tracking who changed what when

23 /* * 12/ 26/ 93 ( seiwald ) - allow NOTIME targets to be expanded * 01/ 04/ 94 ( seiwald ) - print all targets, bounded, when tra * 12/ 20/ 94 ( seiwald ) - NOTIME renamed NOTFILE. * 12/ 17/ 02 ( seiwald ) - new copysettings () to protect target * 01/ 03/ 03 ( seiwald ) - T_ FATE_ NEWER once again gets set wit * 01/ 14/ 03 ( seiwald ) - fix includes fix with new internal i * 04/ 04/ 03 ( seiwald ) - fix INTERNAL node binding to avoid T */

24 Managing Software Releases Any decent company will have version control already Release to the public: modified snapshot of repository Typical sequence for a release: 1. Feature freeze (only bugfixes allowed now) 2. Release candidate (could ship if bug-free) 3. Candidate sent to testing team 4. Bugs are found, patched ; new release candidate Typically there are different code branches maintained at least production and development but often feature branches as well

25 3 Generations of Version Control 1972 Single file system Locking ensures only one person at a time edits any file Nearly unusable for multiple developers Examples: RCS, SCCS, VSS ($$) 1985 Realisation: file merging works! No need for locking Just merge later Allows multiple distributed developers or just separate copies Examples: CVS, Subversion 2002 Realisation: repository merging works! Distributed Version Constrol System no need for one central repository repositories and not just files can be merged as needed Useful even for single developers to handle independent sets of changes separately Examples: Git, Mercurial, bzr, Bitkeeper ($$)

26 Which Version Control Tool To Use? Surely everyone is already using VC for your own projects, even when not required? If not, set one up today and try using it for a few weeks The de-facto standard has changed from RCS to CVS to Subversion and now to... Post-Subversion there was market fragmentation with many 3rd-generation DVCS tools, but Git and Mercurial seem to be coming out on top. github is, in some quarters, becoming a substitute for a CV Mercurial has an excellent tutorial: Others like bzr, Codeville, SVK, darcs, arch/tla, ArX, fossil and monotone seem to have less market share, but perhaps its too early to tell.

27 Integrated Version Control Businesses often use commercial version control tools such as: IBM Rational ClearCase Microsoft VSS Borland StarTeam Except for possibly Bitkeeper, the revision control portions of these systems tend to be quite outdated and much harder to use than necessary What large commercial tools do often offer is a workow that is tightly integrated into a larger process model, of which version control is only a part. Various programs also help put a pretty face on version control, such as TortoiseCVS and TortoiseSVN (integrating version control into Windows) Emacs and Eclipse (integrating version control into editing and development)

28 Git Blame $ git blame sbsi_ numeric_ devel / Template / main_ Model. c 352 c44 ( ntsorman : 03: ) # ifndef NO_ 352 c44 ( ntsorman : 03: ) # include 352 c44 ( ntsorman : 03: ) # endif 352 c44 ( ntsorman : 03: ) ( allanderek : 24: ) # include < Ma 352 c44 ( ntsorman : 03: )

29 Build Control Build control tools like make automate the process of generating an executable or compiled version of a program or other file or document from source files: UNIX> make cc -c file1.c cc -c file2.c cc -o a.out file1.o file2.o UNIX> Does everyone know how to use make/gmake or ant? Does everyone actually use them or tools like them for your own projects even when not required to do so?

30 Build Control is not Scripting Proper build control programs like make are not the same as scripting tools like Apple s Automator They don t simply replay a series of actions but instead encode a complex web of dependencies so that only the next appropriate actions are taken (based on datestamps). That is, if your build process has 4,356 steps, and it is failing on step 3,963, make will start the build process at step 3,963 each time it runs, rather than doing the first 3,962 tasks over again from the beginning. This is the main advantage of something like make over simpler scripting or build control tools.

31 Other Build Control Tools Java s ant is more portable in some sense, though it is not as widely used apart from Java projects Python/Ruby/etc have a variety of build tools For more complicated projects needing to compile across many UNIX-like systems, consider autoconf/automake These are becoming outdated I have a bit of a problem with infrequently used DSLs Integrated development environments (IDEs) like Visual Studio and Eclipse usually replace makefiles with project files but those are not as easily shareable to other systems Note that build control is not just for compiling, it s for at least: making releases generating documentation running tests automating any other complex task! Goal: don t do anything by hand more than 3 times

32 Debuggers/Profilers Debuggers allow you to: Step through code line by line Set break points Allow state to be examined or changed They are essential for C/C++, but extremely useful even for interpreted languages Many IDEs include integrated debuggers, but there are separate command-line debuggers: gdb, jdb, pdb, etc. and many graphical ones: ddd, Insight, etc Profilers tell you where the time and memory are spent in your application If you optimise without a profiler there is a 99.9% chance you are wasting your time

33 Unit/Regression Testing Unit/regression testing frameworks make testing easy to do habitually, which makes everyones life easier and is required by Extreme Programming, as well see JUnit was developed for Extreme Programming on Java, based on a Smalltalk original It has been ported to many other languages: pyunit (Python), CppUnit (C++), NUnit (.NET), etc. There are also addons such as: Coverlipse to check Java code coverage QuickCheck to generate test cases in Haskell doctest to run tests embedded in doc strings

34 Unit Tests 1... deep amoungst complex matrix operations... 2 for (int i = 0; i < something.height; i++){ 3 for (int j = 0; j < something.width; i++){ 4... complex code... 5 x = blah[j] + bleg[i]; 6 j = some_function(i); 7 z = blerger[i] + blerger[j]; 8... more complex code; 9 } 10 }

35 Bug/Issue Tracking Any software package with a decent-sized userbase will generate a lot of bug reports, complaints, and feature requests Bug/issue tracking software keeps track of all of those for you without it many fall through the cracks or end up dominating all your time and concentration. There is no standard, but Trac, GNATS, and BugZilla/ IssueTracker are widely used free tools also: Mantis, TestTrack Pro (Seapine $$) If your code is hosted at a site with an integrated configuration management package like SourceForge, github or google code it will come with bug/issue tracking.

36 Bugs vs Features Question: How do I distinguish between a bug report and a feature request?

37 Bugs vs Features Question: How do I distinguish between a bug report and a feature request? Answer: Don t In either case, the software isn t doing what your user(s) want(s) it to do: Either you think it is worthwhile and feasible to fix that state of affairs or you don t Everything is an issue, important factors are: Severity Urgency Priority Effort to fix Consequences of fixing (e.g. using more memory)

38 Document Generation No one actually writes documentation consistently, so it always gets out of sync with code similarly for comments Documentation generation software like JavaDoc (Java), NDoc (.NET), PHPDoc (PHP), and Doxygen (C++, C, Java, etc.) automatically generates documentation from your source code and comments Most of it is guaranteed to be up to date, and if developers know their comments are going to be used as-is for the reference manual then they won t consider it wasted effort to update their comments when the code changes

39 Generated Documentation Traps Even though generated documentation is often quite impressive looking, it is crucial for a human to go over it eventually to make sure it is also readable Often the result is nearly unusable because it is repetitive, lacks context, and is missing crucial transitions between sections It takes several passes between the source code comments and the generated output to make it all work ok Note that only reference manuals can be generated: user manuals must be written from scratch with the user in mind, and should never simply mirror the structure of the code.

40 Project Management Keeping track of all the sub-tasks in a large project, such as: who they are assigned to in what order they have to be done how long each will take is a pain (at best) Project management software like Microsoft Project ($$) helps with this Main feature: automatic Gannt charts and PERT charts Basecamp ($$) is a bit more ambitious: adding distributed time tracking Also many free programs, such as: Planner, GanttProject, KPlato, etc

41 Integrated Suites For open-source projects, integrated suites like GitHub and Google Code Hosting are freely available that do all the above and add (at least): Document release management Binary le release management Web hosting Discussion forums/ lists Proprietary workflow/process management tools like the IBM Rational Unied Process suite and Cruise Control (builds, runs tests, publishes results) are even more ambitious Integrated packages are great if you need most of their features; separate tools can be used at any time. Fogcreek offers several products such as kiln which are something of a half-way house between fully integrated and separate tools (in this case source code control and code review)

42 The Joel Test Is a substitute for a 6 month long approach for determining how good your software team is 12 yes/no questions No, difficult measurements: lines of code, average lines per bug etc

43 The Joel Test 1. Do you use source code control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing?

44 : The Joel Test Do you use source code control? If not, stop what you are doing, because whatever it is, you re doing it wrong Without source code control, multiple developers will not be able to work together Even if you could, SCC is so simple to set up Even for single developers being able to see previous versions is wonderful for bug-finding (amongst other things)

45 : The Joel Test Can you make a build in one step? Is there one step, that can build every kind of executable, all the documentation, all the various versions and platform-dependent releases Anything that takes more than one step can be messed up

46 : The Joel Test Do you make daily builds? Sometimes someone breaks the build A common mistake is to add a new source file and forget to add it to the source code control Everything works/compiles on the single person s machine but that file is missing from the repository and hence any references break the build for others A daily/hourly build catches these mistakes sooner rather than later Some teams have punishments for breaking the build, such as that the offender must babysit the buildbot or becomes the coffee-mule

47 : The Joel Test Do you have a bug database? If not, you will ship low quality code Even if you are single developer You are also likely to work on low-priority items

48 : The Joel Test Do you fix bugs before writing new code? Remember the feature matrix? The longer you wait before fixing a bug, the costlier it is to fix in both time and money

49 : The Joel Test Do you have an up-to-date schedule? I know writing a schedule is hard but sometimes other things depend on your code It keeps a tab on featuritis and helps decide what does and what does not go in

50 : The Joel Test Do you have a spec? Nobody disagrees with the statement: It s a good idea to have a spec I warned you about coding requiring good communication, writing a spec is good communication

51 : The Joel Test Do programmers have quiet working conditions? Speaks for itself Interesting read on the worst time to interrupt a programmer: programmer-interrupted/ A programmer takes between minutes to start editing code after resuming work from an interruption. When interrupted during an edit of a method, only 10% of times did a programmer resume work in less than a minute

52 : The Joel Test Do you use the best tools money can buy? Programmers are expensive, software isn t that expensive This doesn t mean to say that the best is necessarily expensive

53 : The Joel Test Do you have testers? A tester is cheaper than a programmer, don t pay a programmer to test Similar to asking a surgeon to take over a nurse s shift for a week but still pay the them the surgeon s salary

54 : The Joel Test Do new candidates write code during their interview? A couple of blog-posts about this went viral around 6 years ago Write a program that prints the numbers from 1 to 100. But for multiples of three print Fizz instead of the number and for the multiples of five print Buzz. For numbers which are multiples of both three and five print FizzBuzz. Numbers vary, but essentially a majority of those applying for programming jobs cannot do this

55 : The Joel Test Do you do hallway usability testing? Not overly relevant for us, but: Hallway usability testing: Grab the next person that walks past your office/desk Ask them to use the code you just wrote 5-6 people will tell you 95% of what there is to learn about usability problems in your code

56 The Joel Test Related to Tool Usage? 1. Do you use source code control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing?

57 The Joel Test As an aside, any of these questions are good questions to ask of any company you are interviewing Note, the interview can be as much you examining them as they examining you

58 Summary Every sane person should be using version control and build control tools Unit/regression testing is good and much easier with the right framework Bug/issue tracking can stop you from going mad Documentation generation is great, but does not eliminate hand cleanup At least use these tools until you find something better For a big list of project management tools for Linux, see The individual tools are not that important, but it is important that you use something for each of these tasks and that you know they exist

59 Related Reading Required Reading Eric S. Raymond. Understanding Version-Control Systems, 2007 update Of course, dates and details of specific tools are not examinable Martin Fowler. Continuous Integration, 2006 update Suggested Reading Sebastien Auvray. Distributed Version Control Systems: A Not-So-Quick Guide Through, 2008 Linas Vepstas. Call Center, Bug Tracking and Project Management Tools for Linux, 2002 update Ben Collins-Sussman et al. Version Control with Subversion, Chapter 1, Fundamental Concepts.

60 Any Questions Any Questions? Next time there might be a slightly longer quiz so please bring something to write on, even if that is just your phone, but it will probably be easier with a pen and paper.

Tools for SW Projects

Tools for SW Projects Tools for SW Projects Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar SAPM Spring 2012: Tools 1 Automating Drudgery Most of the techniques we ll talk about can benefit from

More information

Tools for SW Projects

Tools for SW Projects Tools for SW Projects Massimo Felici and Conrad Hughes mfelici@inf.ed.ac.uk conrad.hughes@ed.ac.uk http://www.inf.ed.ac.uk/teaching/courses/sapm/ Slides: Dr James A. Bednar SAPM Spring 2009: Tools 1 Automating

More information

The Joel Test: 12 Steps to Better Code.

The Joel Test: 12 Steps to Better Code. The Joel Test: 12 Steps to Better Code http://www.joelonsoftware.com/articles/fog0000000043.html The Joel Test In general, a score of

More information

Chapter 3. Revision Control

Chapter 3. Revision Control Chapter 3 Revision Control We begin our journey into software engineering before we write a single line of code. Revision control systems (RCSes) such as Subversion or CVS are astoundingly useful for single-developer

More information

The Joel Test 12 Steps to Better Code

The Joel Test 12 Steps to Better Code The Joel Test 12 Steps to Better Code Readings The Joel Test (by Joel Spolsky) http://www.joelonsoftware.com/articles/fog0000000 043.html The Joel Test In general, a score of

More information

Using GitHub to Share with SparkFun a

Using GitHub to Share with SparkFun a Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing

More information

Construction: version control and system building

Construction: version control and system building Construction: version control and system building Paul Jackson School of Informatics University of Edinburgh The problem of systems changing Systems are constantly changing through development and use

More information

Case study on PhoneGap / Apache Cordova

Case study on PhoneGap / Apache Cordova Chapter 1 Case study on PhoneGap / Apache Cordova 1.1 Introduction to PhoneGap / Apache Cordova PhoneGap is a free and open source framework that allows you to create mobile applications in a cross platform

More information

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner Task-Oriented Solutions to Over 175 Common Problems Covers Eclipse 3.0 Eclipse CookbookTM Steve Holzner Chapter CHAPTER 6 6 Using Eclipse in Teams 6.0 Introduction Professional developers frequently work

More information

Construction: version control and system building

Construction: version control and system building Construction: version control and system building Paul Jackson School of Informatics University of Edinburgh The problem of systems changing Systems are constantly changing through development and use

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn CSE 374 Programming Concepts & Tools Hal Perkins Winter 2012 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person, multi-platform, multi-month

More information

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Introductions Code Reasoning Version control IDEs

More information

SECTION 2: HW3 Setup.

SECTION 2: HW3 Setup. SECTION 2: HW3 Setup cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis,CSE 390a,Justin Bare, Deric Pang, Erin Peach, Vinod Rathnam LINKS TO DETAILED SETUP AND USAGE INSTRUCTIONS

More information

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014 CS2112 Fall 2014 Assignment 4 Parsing and Fault Injection Due: March 18, 2014 Overview draft due: March 14, 2014 Compilers and bug-finding systems operate on source code to produce compiled code and lists

More information

Software Tools Subversion

Software Tools Subversion Software Tools Subversion Part II Lecture 4 1 Today s Outline Subversion (SVN) TortoiseSVN Client SVN Tips 2 Subversion (SVN) 3 Subversion (SVN) Centralized open-source VCS; started in 2000 Developed as

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

SECTION 2: Loop Reasoning & HW3 Setup

SECTION 2: Loop Reasoning & HW3 Setup SECTION 2: Loop Reasoning & HW3 Setup cse331-staff@cs.washington.edu Review: Reasoning about loops What is a loop invariant? An assertion that always holds at the top of a loop Why do we need invariants?

More information

Excel Basics: Working with Spreadsheets

Excel Basics: Working with Spreadsheets Excel Basics: Working with Spreadsheets E 890 / 1 Unravel the Mysteries of Cells, Rows, Ranges, Formulas and More Spreadsheets are all about numbers: they help us keep track of figures and make calculations.

More information

Crash Course in Modernization. A whitepaper from mrc

Crash Course in Modernization. A whitepaper from mrc Crash Course in Modernization A whitepaper from mrc Introduction Modernization is a confusing subject for one main reason: It isn t the same across the board. Different vendors sell different forms of

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

SECTION 2: Loop Reasoning & HW3 Setup

SECTION 2: Loop Reasoning & HW3 Setup SECTION 2: Loop Reasoning & HW3 Setup cse331-staff@cs.washington.edu slides borrowed and adapted from CSE 331 Winter 2018, CSE 391, and many more Review: Reasoning about loops What is a loop invariant?

More information

Implement an ADT while using Subversion

Implement an ADT while using Subversion 1 Objectives Learn to use Subversion Implement an ADT while using Subversion In this lab, you learn about the version control tool called Subversion and you will implement a Java class given an interface.

More information

Software Systems Design. Version control systems and documentation

Software Systems Design. Version control systems and documentation Software Systems Design Version control systems and documentation Who are we? Krzysztof Kąkol Software Developer Jarosław Świniarski Software Developer Presentation based on materials prepared by Andrzej

More information

Dealing with Bugs. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 27 04/21/2009

Dealing with Bugs. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 27 04/21/2009 Dealing with Bugs Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 27 04/21/2009 University of Colorado, 2009 1 Goals 2 Review material from Chapter 11 of Pilone & Miles Dealing with

More information

Programming with Haiku

Programming with Haiku Programming with Haiku Lesson 4 Written by DarkWyrm All material 2010 DarkWyrm Source Control: What is It? In my early days as a developer on the Haiku project I had troubles on occasion because I had

More information

Participation Status Report STUDIO ELEMENTS I KATE SOHNG

Participation Status Report STUDIO ELEMENTS I KATE SOHNG 2015 Participation Status Report STUDIO ELEMENTS I KATE SOHNG Table of Contents I. Wataru... 1 A. JQuery discussion... 1 B. Other JavaScript libraries... 1 C. CakePHP framework... 2 D. Webpage feedback...

More information

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS SENG 371 SOFTWARE EVOLUTION LAB OUTLINE Introduction to Version Control Systems VERSION CONTROL SYSTEMS Subversion Git and Github 1 Prepared by Pratik Jain 2 INTRODUCTION TO VCS A version control system

More information

Clickbank Domination Presents. A case study by Devin Zander. A look into how absolutely easy internet marketing is. Money Mindset Page 1

Clickbank Domination Presents. A case study by Devin Zander. A look into how absolutely easy internet marketing is. Money Mindset Page 1 Presents A case study by Devin Zander A look into how absolutely easy internet marketing is. Money Mindset Page 1 Hey guys! Quick into I m Devin Zander and today I ve got something everybody loves! Me

More information

Source Control. Comp-206 : Introduction to Software Systems Lecture 21. Alexandre Denault Computer Science McGill University Fall 2006

Source Control. Comp-206 : Introduction to Software Systems Lecture 21. Alexandre Denault Computer Science McGill University Fall 2006 Source Control Comp-206 : Introduction to Software Systems Lecture 21 Alexandre Denault Computer Science McGill University Fall 2006 Source Revision / Control Source Control is about the management of

More information

Section 2: Developer tools and you. Alex Mariakakis (staff-wide)

Section 2: Developer tools and you. Alex Mariakakis (staff-wide) Section 2: Developer tools and you Alex Mariakakis cse331-staff@cs.washington.edu (staff-wide) What is an SSH client? Uses the secure shell protocol (SSH) to connect to a remote computer o Enables you

More information

Lab session 1 Git & Github

Lab session 1 Git & Github Lab session 1 Git & Github Administration Course personnel: Lecturer - Refael Dakar, currentintec@gmail.com TA - Avi Hayoun, hayounav@cs.bgu.ac.il Office hours - Tuesdays, 14:00-16:00 @ 109/37 (might change)

More information

Week - 01 Lecture - 04 Downloading and installing Python

Week - 01 Lecture - 04 Downloading and installing Python Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and

More information

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change Chapter01.fm Page 1 Monday, August 23, 2004 1:52 PM Part I The Mechanics of Change The Mechanics of Change Chapter01.fm Page 2 Monday, August 23, 2004 1:52 PM Chapter01.fm Page 3 Monday, August 23, 2004

More information

Subversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION

Subversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION SESSION FOUR 4.1 What is Version Control? Subversion Version control or revision control is the management of the evolution of information. Typically it is used in engineering or software development where

More information

Mr G s Java Jive. #11: Formatting Numbers

Mr G s Java Jive. #11: Formatting Numbers Mr G s Java Jive #11: Formatting Numbers Now that we ve started using double values, we re bound to run into the question of just how many decimal places we want to show. This where we get to deal with

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

15 Minute Traffic Formula. Contents HOW TO GET MORE TRAFFIC IN 15 MINUTES WITH SEO... 3

15 Minute Traffic Formula. Contents HOW TO GET MORE TRAFFIC IN 15 MINUTES WITH SEO... 3 Contents HOW TO GET MORE TRAFFIC IN 15 MINUTES WITH SEO... 3 HOW TO TURN YOUR OLD, RUSTY BLOG POSTS INTO A PASSIVE TRAFFIC SYSTEM... 4 HOW I USED THE GOOGLE KEYWORD PLANNER TO GET 11,908 NEW READERS TO

More information

TOP DEVELOPERS MINDSET. All About the 5 Things You Don t Know.

TOP DEVELOPERS MINDSET. All About the 5 Things You Don t Know. MINDSET TOP DEVELOPERS All About the 5 Things You Don t Know 1 INTRODUCTION Coding and programming are becoming more and more popular as technology advances and computer-based devices become more widespread.

More information

CptS 360 (System Programming) Unit 3: Development Tools

CptS 360 (System Programming) Unit 3: Development Tools CptS 360 (System Programming) Unit 3: Development Tools Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation Using UNIX-style development tools lets

More information

Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition)

Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition) Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition) Data Structures and Other Objects Using Java is a gradual, "just-in-time" introduction to Data Structures for a CS2

More information

Data Structures And Other Objects Using Java Download Free (EPUB, PDF)

Data Structures And Other Objects Using Java Download Free (EPUB, PDF) Data Structures And Other Objects Using Java Download Free (EPUB, PDF) This is the ebook of the printed book and may not include any media, website access codes, or print supplements that may come packaged

More information

Post Experiment Interview Questions

Post Experiment Interview Questions Post Experiment Interview Questions Questions about the Maximum Problem 1. What is this problem statement asking? 2. What is meant by positive integers? 3. What does it mean by the user entering valid

More information

Version Control for Fun and Profit

Version Control for Fun and Profit Version Control for Fun and Profit Chris Brady Heather Ratcliffe The Angry Penguin, used under creative commons licence from Swantje Hess and Jannis Pohlmann. Warwick RSE 30/11/2017 Version control 30/11/2017

More information

VIDEO 1: WHY SHOULD YOU USE TEMPLATES TO SEND YOUR S?

VIDEO 1: WHY SHOULD YOU USE TEMPLATES TO SEND YOUR  S? VIDEO 1: WHY SHOULD YOU USE TEMPLATES TO SEND YOUR EMAILS? Hey, it s Kyle from HubSpot Academy. Let s talk about about email templates. Why should you use templates to send your emails? You probably don

More information

Within Kodi you can add additional programs called addons. Each of these addons provides access to lots of different types of video content.

Within Kodi you can add additional programs called addons. Each of these addons provides access to lots of different types of video content. There are a lot of misconceptions in the Kodi world about what buffering is, what causes it, why it happens and how to help avoid it. So I wanted to write an article addressing some of the causes of buffering

More information

Annotation Hammer Venkat Subramaniam (Also published at

Annotation Hammer Venkat Subramaniam (Also published at Annotation Hammer Venkat Subramaniam venkats@agiledeveloper.com (Also published at http://www.infoq.com) Abstract Annotations in Java 5 provide a very powerful metadata mechanism. Yet, like anything else,

More information

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet. Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that

More information

QUICK EXCEL TUTORIAL. The Very Basics

QUICK EXCEL TUTORIAL. The Very Basics QUICK EXCEL TUTORIAL The Very Basics You Are Here. Titles & Column Headers Merging Cells Text Alignment When we work on spread sheets we often need to have a title and/or header clearly visible. Merge

More information

Inf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics

Inf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics Inf1-OP Inf1-OP Exam Review Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 20, 2017 Overview Overview of examinable material: Lectures Week 1

More information

Introduction to Programming

Introduction to Programming CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed

More information

DESIGNING RESPONSIVE DASHBOARDS. Best Practices for Building Responsive Analytic Applications

DESIGNING RESPONSIVE DASHBOARDS. Best Practices for Building Responsive Analytic Applications DESIGNING RESPONSIVE DASHBOARDS Best Practices for Building Responsive Analytic Applications CONTENTS Responsive Design and Embedded Analytics...1 6 Principles and Best Practices... 2 Tools of the Trade...

More information

Web Hosting. Important features to consider

Web Hosting. Important features to consider Web Hosting Important features to consider Amount of Storage When choosing your web hosting, one of your primary concerns will obviously be How much data can I store? For most small and medium web sites,

More information

Laboratory 1: Eclipse and Karel the Robot

Laboratory 1: Eclipse and Karel the Robot Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also

More information

Exercises: Instructions and Advice

Exercises: Instructions and Advice Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects

More information

Strategy. 1. You must do an internal needs analysis before looking at software or creating an ITT

Strategy. 1. You must do an internal needs analysis before looking at software or creating an ITT Strategy 1. You must do an internal needs analysis before looking at software or creating an ITT It is very easy to jump straight in and look at database software before considering what your requirements

More information

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed. Preface Here are my online notes for my Algebra course that I teach here at Lamar University, although I have to admit that it s been years since I last taught this course. At this point in my career I

More information

Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing.

Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing. Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing. Overview The desire to use tools to increase validation productivity with the consequent

More information

ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS

ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS Aleš Keprt Department of Informatics, Moravian College Olomouc ales.keprt@mvso.cz ABSTRACT: Asynchrony is a situation when multiple things

More information

» How do I Integrate Excel information and objects in Word documents? How Do I... Page 2 of 10 How do I Integrate Excel information and objects in Word documents? Date: July 16th, 2007 Blogger: Scott Lowe

More information

Source Code Control & Bug Tracking

Source Code Control & Bug Tracking http://home.hit.no/~hansha/?page=software_development O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com Source Code Control & Bug Tracking Hans-Petter Halvorsen O. Widder. (2013). geek&poke.

More information

Lecture 19 CSE August You taught me Language, and my profit on t is I know how to curse. William Shakspere, The Tempest, I, ii.

Lecture 19 CSE August You taught me Language, and my profit on t is I know how to curse. William Shakspere, The Tempest, I, ii. Lecture 19 CSE 110 5 August 1992 You taught me Language, and my profit on t is I know how to curse. William Shakspere, The Tempest, I, ii. 1 Left-Over Language Features Today was the day we saw the last

More information

Table of Laplace Transforms

Table of Laplace Transforms Table of Laplace Transforms 1 1 2 3 4, p > -1 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Heaviside Function 27 28. Dirac Delta Function 29 30. 31 32. 1 33 34. 35 36. 37 Laplace Transforms

More information

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7 GIT VERSION CONTROL TUTORIAL William Wu w@qed.ai 2014 October 7 ABOUT ME Scientific Computing Specialist background: math, cs, ee interests: machine learning, DSP, imaging, data viz, cloud work: various

More information

SOFTWARE CONFIGURATION MANAGEMENT

SOFTWARE CONFIGURATION MANAGEMENT SOFTWARE CONFIGURATION MANAGEMENT Cape Town SPIN - Albert Visagie - 19 March 2008 Goals Where were we? And get back there reliably. Where are we? How did we get here? Which bugs were fixed in this version?

More information

Categorizing Migrations

Categorizing Migrations What to Migrate? Categorizing Migrations A version control repository contains two distinct types of data. The first type of data is the actual content of the directories and files themselves which are

More information

FROM 4D WRITE TO 4D WRITE PRO INTRODUCTION. Presented by: Achim W. Peschke

FROM 4D WRITE TO 4D WRITE PRO INTRODUCTION. Presented by: Achim W. Peschke 4 D S U M M I T 2 0 1 8 FROM 4D WRITE TO 4D WRITE PRO Presented by: Achim W. Peschke INTRODUCTION In this session we will talk to you about the new 4D Write Pro. I think in between everyone knows what

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

Biocomputing II Coursework guidance

Biocomputing II Coursework guidance Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers

More information

Divisibility Rules and Their Explanations

Divisibility Rules and Their Explanations Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although

More information

CS18000: Programming I

CS18000: Programming I CS18000: Programming I Testing Basics 19 April 2010 Prof. Chris Clifton Testing Programs Your programs are getting large and more complex How do you make sure they work? 1. Reason about the program Think

More information

CS354 gdb Tutorial Written by Chris Feilbach

CS354 gdb Tutorial Written by Chris Feilbach CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that

More information

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software.

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software. Introduction to Netbeans This document is a brief introduction to writing and compiling a program using the NetBeans Integrated Development Environment (IDE). An IDE is a program that automates and makes

More information

APPENDIX B. Fortran Hints

APPENDIX B. Fortran Hints APPENDIX B Fortran Hints This appix contains hints on how to find errors in your programs, and how to avoid some common Fortran errors in the first place. The basics on how to invoke the Fortran compiler

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Programming assignment A

Programming assignment A Programming assignment A ASCII Minesweeper Official release on Feb 14 th at 1pm (Document may change before then without notice) Due 5pm Feb 25 th Minesweeper is computer game that was first written in

More information

Reviewing gcc, make, gdb, and Linux Editors 1

Reviewing gcc, make, gdb, and Linux Editors 1 Reviewing gcc, make, gdb, and Linux Editors 1 Colin Gordon csgordon@cs.washington.edu University of Washington CSE333 Section 1, 3/31/11 1 Lots of material borrowed from 351/303 slides Colin Gordon (University

More information

Close Your File Template

Close Your File Template In every sale there is always a scenario where I can t get someone to respond. No matter what I do. I can t get an answer from them. When people stop responding I use the Permission To. This is one of

More information

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG 1 Notice Class Website http://www.cs.umb.edu/~jane/cs114/ Reading Assignment Chapter 1: Introduction to Java Programming

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

Get JAVA. I will just tell you what I did (on January 10, 2017). I went to:

Get JAVA. I will just tell you what I did (on January 10, 2017). I went to: Get JAVA To compile programs you need the JDK (Java Development Kit). To RUN programs you need the JRE (Java Runtime Environment). This download will get BOTH of them, so that you will be able to both

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction Why I Am Writing This: Why I am I writing a set of tutorials on compilers and how to build them? Well, the idea goes back several years ago when Rapid-Q, one of the best free BASIC

More information

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing

More information

Stack Machines. Towards Scalable Stack Based Parallelism. 1 of 53. Tutorial Organizer: Dr Chris Crispin-Bailey

Stack Machines. Towards Scalable Stack Based Parallelism. 1 of 53. Tutorial Organizer: Dr Chris Crispin-Bailey 1 of 53 Stack Machines Towards Scalable Stack Based Parallelism Tutorial Organizer: Department of Computer Science University of York 2 of 53 Today s Speakers Dr Mark Shannon Dr Huibin Shi 3 of 53 Stack

More information

Portions adapted from A Visual Guide to Version Control. Introduction to CVS

Portions adapted from A Visual Guide to Version Control. Introduction to CVS Portions adapted from A Visual Guide to Version Control Introduction to CVS Outline Introduction to Source Code Management & CVS CVS Terminology & Setup Basic commands Checkout, Add, Commit, Diff, Update,

More information

CSE 374 Programming Concepts & Tools

CSE 374 Programming Concepts & Tools CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 11 gdb and Debugging 1 Administrivia HW4 out now, due next Thursday, Oct. 26, 11 pm: C code and libraries. Some tools: gdb (debugger)

More information

9 th CA 2E/CA Plex Worldwide Developer Conference 1

9 th CA 2E/CA Plex Worldwide Developer Conference 1 1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640

More information

Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as

Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as contentious as the text editor This talk tries to address

More information

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo Software Design Models, Tools & Processes Lecture 6: Transition Phase Cecilia Mascolo UML Component diagram Component documentation Your own classes should be documented the same way library classes are.

More information

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering The Power of Unit Testing and it s impact on your business Ashish Kumar Vice President, Engineering Agitar Software, 2006 1 The Power of Unit Testing Why Unit Test? The Practical Reality Where do we go

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Evaluation Guide for ASP.NET Web CMS and Experience Platforms Evaluation Guide for ASP.NET Web CMS and Experience Platforms CONTENTS Introduction....................... 1 4 Key Differences...2 Architecture:...2 Development Model...3 Content:...4 Database:...4 Bonus:

More information

02161: Software Engineering I

02161: Software Engineering I 02161: Software Engineering I Week 9: Version Control, Software Development Process, and Project Introduction Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring

More information

UKNova s Getting Connectable Guide

UKNova s Getting Connectable Guide UKNova s Getting Connectable Guide Version 1.2 2010/03/22 1. WHAT IS "BEING CONNECTABLE" AND WHY DO I NEED IT? Being connectable means being able to give back to others it is the fundamental principle

More information

CSCI0330 Intro Computer Systems Doeppner. Lab 02 - Tools Lab. Due: Sunday, September 23, 2018 at 6:00 PM. 1 Introduction 0.

CSCI0330 Intro Computer Systems Doeppner. Lab 02 - Tools Lab. Due: Sunday, September 23, 2018 at 6:00 PM. 1 Introduction 0. CSCI0330 Intro Computer Systems Doeppner Lab 02 - Tools Lab Due: Sunday, September 23, 2018 at 6:00 PM 1 Introduction 0 2 Assignment 0 3 gdb 1 3.1 Setting a Breakpoint 2 3.2 Setting a Watchpoint on Local

More information