Software Engineering

Course Assignments

"Tell me and I forget. Show me and I remember. Involve me and I understand." Chinese proverb


Class Practices

To be announced step by step as we go forward

  1. Eclipse and UMLet (Eclipse Shortcuts, Help)
    1. If needed Download JDK 7 and Development Kit Documentation 7 (JDK 7 API Specification):
    2. Software Downloads
    3. Download and install Eclipse IDE for Java Develepers: http://www.eclipse.org/downloads/
    4. Download the Eclipse Subversion (Subclipse) plug-in from http://subclipse.tigris.org/. Use the Eclipse Update Manager, pointed at http://subclipse.tigris.org/update_1.8.x.
    5. Download UMLet, Free UML Tool for Fast UML Diagrams - http://www.umlet.com/ and place it into your Eclipse plugin directory.
    6. Install two Eclipse projects example IO-PJWSTK project and CoffeeMakerStudent-PJWSTK (Import) in your Eclipse workspace.
      1. Uncheck "Project/Build Automatically"
      2. Place a directory for a provided zip archive in your Eclipse "workspace" directory
      3. Create a Java Project
        1. Use: "File/New/Project"
        2. Select: "Java/Java Project" and click "Next"
        3. Select "Create project from existing source" and point to your source directory
    7. Rapid development in Eclipse: Hovers (check editor preferences); Open Declaration (Ctrl+Left Click or F3, Ctrl+F3; Alt+<- and Alt->); Outline vs. Lookup Dialog (Ctrl+O); Content Assist (Ctrl+Space) - insert types and variable names, method name completion, source code templates; Type Hierarchy (F4) vs. Quick Type Hierarchy (Ctrl+T); open type name or hierarchy: Ctrl+Shif+T and Ctrl+Shif+H.
  2. Eclipse and building projects with Ant.
  3. Eclipse and configuration management (SVN).

Homework Assignments

  1. HA1. (due 09-01-2013) Import the IO-PJWSTK and CoffeeMakerStudent-PJWSTK projects into your Eclipse development workspace. Rename your CoffeeMaker project by appending at the end your student ID, e.g., from "CoffeeMaker" to CoffeeMaker-1140 and Share it in the class repository. Now, feel free to update the sources of your own new project and maintain safely in the repository. Create a 4-blocker for your CoffeeMaker project, then with UMLet create a UML use case diagram including descriptions that model the requirements of the system for the CoffeeMaker project. The CoffeeMaker requirements and a sample use case diagram may be found here. Use at least the following roles: Drinker, Editor, Admin. Save your 4-blocker and UML model into a models directory and a diagram as an image file into the images directory in your project. Commit your project. Email your archived images directory to: [email protected] with the subject: PJWSTK Homework1 and your project name in the class repository.
  2. HA2. (due 11-01-2013) Develop for the CoffeeMaker project used in HA1 a coffeeMaker-build.xml  Ant build file that automates all the project tasks as specified in building the IO-PJWSTK project (in file io-pjwstk-build.xml). Also, create an Ant main-run.xml script for the CoffeeMaker Main class with "run-class" and "run-jar" targets as for example in IO-PJWSTK/bin/greeter1-run.xml. Fully document the edu.ncsu.csc326.cofeemaker.Recipe.java using javadoc (How to Write Doc Comments for the Javadoc Tool) and Java code conventions  (Code Conventions for the Java Programming Language) with the minimum at Java Language Coding Guidelines. Test your progress with API pages generated with the javadoc Ant task, all methods have to be well documented. Take a look at the CoffeeMaker User Stories/Requirements to look for NCSU requirements. The CoffeeMaker code is complete but with a few bugs, ignore them for now (see assignment HA3 for fixing them). Next, using the UMLet plugin, create an analysis and design class diagram and one use case realization analyzed and designed for the same use case in the CoffeeMaker project. Export your Eclipse project with javadoc pages in the docs directory and UML models (Export/General/Archive File or Export/Java/JAR file) and email it to: [email protected] with the subject: PJWSTK Homework2.
     
  3. HA3. (due 14-01-2013) For this exercise we will be using the CoffeeMaker project developed in HA2.
    We all know that most computer scientists love caffeine, so the Computer Science department is looking to put a coffee kiosk in the new building. The coffee kiosk must be able to make coffee for students to purchase. Take a look at the CoffeeMaker User Stories/Requirements to look for boundaries and other things to test. The CoffeeMaker code is complete; however, we need you to create and run acceptance tests on the following user stories requirements: 1) Add a Recipe, 2) Delete a Recipe, 3) Edit a Recipe, 4) Add Inventory, 5) Check Inventory, and 6) Purchase Coffee. One initial test class has been created for you: CoffeeMakerTest under the unittests/ directory. You can expended the CoffeeMakerTest class and create  RecipeTest and InventoryTest classes as well. There are currently 5 (very obvious) bugs in the system (some of them are based on requirements). We need you to generate enough unit tests to find these 5 bugs. Once you find the bugs, create a fix (These should be very simple fixes. If the fix takes longer than 5 minutes, you found a bigger bug than the one we wanted you to find! - let me know it.) Find and fix all 5 of the bugs. Create a list of the bugs that you find.
    Deliverables
    1. List of bugs (in file CoffeeMaker/notes/bugs.txt) found in the Add a Recipe, Delete a Recipe, Edit a Recipe, Add Inventory, Check Inventory, and Purchase Beverage user stories in CoffeeMaker
    2. Run all of your JUnit unit tests, which give a green bar.
    3. Export your Eclipse project with all related artifacts (Export/General/Archive File - as a zip archive) and email it to: [email protected] with the subject: PJWSTK Homework3.
    4. Commit your final project into the class repository with all created artifacts.

Referat/artukuł badawczy, końcowy referat należy złożyć do 15.01.2013 - dodadatkow punkty, max 4 dodane do oceny końcowej.

Proponowane propozycje referatu badawczego zgodne z własnymi zainteresowaniami (modele UML, diagramy UML, opracowanie nt. weryfikacji, walidacji, testowania oprogramowania, bezpieczeństwo, artykuł nt. IO, itd.) wraz z krótkim streszczeniem prześlij do [email protected], do końca dnia 10.01.2013. Tematy muszą być zatwierdzone przeze mnie.