Adrian Trifu 2009

Welcome to the lab website!
You'll find an up-to-date overview of your current situation here.

Week 14:
Agenda:

  • Final deadline for ALL assignments

Week 13:
Agenda:

  • Deadline for assignment 6
  • Deadline for missing assessments 1-3

Week 12: Build Process Management, Ant
Agenda:

  • Build management
  • Ant file
  • Ant integration into Eclipse

References:

  1. Ant manual
  2. Ant tutorial

Assignment 6:
For the Battleships project, write an Ant build file having the following targets:

  1. init - performs a "clean" and creates a folder called "build"
  2. compile.code - should depend on init and should compile the actual project source files (i.e. no tests!) using external libraries (if applicable) contained in "lib", into the folder named "build"
  3. compile.tests - should depend on "compile.code" and should compile all test classes using external libraries (e.g. JUnit) contained in "lib", into the folder named "testclasses"
  4. deploy (default target) - creates a folder called "deploy" into which it creates a jar containing the compiled classes under "build". Should depend on compile.code.
  5. run - should run the compiled game
  6. run.tests - should run all tests using JUnit's TextRunner
  7. clean - restores the project to the initial state (deletes everything except the source code of the game and its tests).

Week 11: Unit testing, JUnit
Agenda:

  • What is unit testing?
  • What is JUnit?
  • JUnit integration into Eclipse

References:

  1. A. Hunt, D. Thomas “Pragmatic Unit Testing in Java with JUnit” (Chapter 1, 2, 3)
  2. JUnit tutorial
  3. JUnit home
  4. What's different in JUnit4
  5. Lecture slides

Assignment 5:
Using JUnit, implement a suite containing tests for at least two classes and four individual methods taken from your implementation of assignment 4.

Week 10: Project Milestone
The requirements for the future release of our best selling game “Battleships” are ready! You'll find the changes summarized in this document.

4th year students, please bring your missing assignment(s). Also, please skim through the following material:

Week 8: The Eclipse IDE
Agenda:

  • Eclipse perspectives and views
  • SVN integration into Eclipse
  • Code refactorings (the files for the lab exercise can be found here)

References:

  1. Eclipse documentation
  2. Subversive documentation

Assignment 4 (first iteration):
Please provide a class diagram (on paper or in a common picture format) and Java implementation, for the requirements contained in the attached document. For the implementation, you are required to use the Eclipse IDE, and to check the resulting java project into the SVN repository.

4th year students, please bring your missing assignment(s). Also, please skim through the following material:

Week 7: CRC
Agenda:

  • CRC Cards
  • CRC Session: for support material click here.

References:

  1. D.Rubin, “Introduction to CRC Cards”.
  2. K. Beck, W. Chunningham, “A Laboratory For Teaching OO Thinking
  3. Scott Ambler, "The Object Primer: Agile Model-Driven Development with UML 2.0"

Week 6: - buffer week -
Agenda:

  • Delivery of assignment 3. As an exception from the rule, I will not record your presence this week.

Week 5: Use Cases
Agenda:

  • Requirements engineering process
  • Actors, scenarios, use cases
  • Use case descriptions
  • Use case diagrams

References:

  1. Martin Fowler, “UML Distilled” (Chapter 9)
  2. Short overview

Assignment 3:
The attachment contains the client's description of a project. Identify all relevant actors and use cases, and draw the corresponding use case diagram. Pick one use case and describe its contents in textual form. Please export your diagrams to a common graphic format!

Week 4: Unified Modeling Language (UML)
Agenda:

  • What is UML?
  • Types of UML diagrams
  • Class diagrams
  • Sequence diagrams

References:

  1. Martin Fowler, "UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition" - Chapters 1,3,4,5
  2. For a comparative overview of various UML modeling tools please click here

Assignments 1 and 2:
Based on the contents of this archive, and using a UML modeling tool of your choice (e.g. StarUML)

  • Draw a detailed class diagram for all the classes contained in folder "code", as well as a sequence diagram for the method calls triggered after the line marked by a "*" in method main() of class Main; Please also upload JPG or bitmap versions of your diagrams!
  • Sketch an appropriate implementation for the classes described in the two diagrams contained in folder "uml". Above all, provide implementations for the methods createFile(), createFolder() and createShortcut() in class Folder, as well as for the copyTo() methods.

Please upload your assignments to your personal SVN repository (http://hoare.cs.upt.ro/adi/svn/<your_repo_name>/trunk).

Week 3: Version Control Systems
Agenda:

  • Concepts
  • Subversion - basic configuration and commands
  • Personal repositories

References:

  1. http://svnbook.red-bean.com/ (chapters 1 and 2, optionally 3 and 4)
  2. http://www.jaredrichardson.net/articles/svn-cheat-sheet.html
  3. http://aymanh.com/subversion-a-quick-tutorial

Here's how to access a SVN server from behind a proxy.

Week 2: Kickoff
Agenda:

  • What is software engineering?