Navigation auf uzh.ch

Suche

Department of Informatics s.e.a.l

Software Engineering Assignments and Project

Notes

The labs and project are worth 30% of your mark in Software Engineering.

You will work both individually and in teams of 4. To set up the team, you have to use the Group Enrollment section in OLAT.

For teams that develop great applications/projects, we encourage you to submit them to the SCORE Student Contest 2013 in San Franciso, CA, as part of the 35th International Conference on Software Engineering (ICSE 2013)

Top Three Team Projects

Find descriptions of the top three team projects completed for this course here

Problem Statement

You can choose any publicly available data and visualize it in an interactive web application. Interactive means that the user has to interact with the website to see the data in more detail or to see other aspects of the data - zooming in and out is not enough if it does not change the appearance.

Requirements:

  • the used dataset(s) must be publicly available
  • the datasets have to be visualized interactively and must be displayed in a geographic and tabular format (although the latter one can be discussed if you have other good ideas), as well as it should be possible to run statistics on the data (again, this can be discussed)
  • there has to be the notion of a user for the application that can
    • (a) either share views with other users,
    • (b) rate certain data points / datasets, such as events or lightning, or
    • (c) add comments or pictures to certain data points or datasets, such as pictures or comments to events
  • you need to have your user stories / project approved by the course assistant and your TA
  • your mark will be affected by the ambition and follow-through of your project. If you do a simple project exceptionally well, you might get a high mark. If you do an ambitious project poorly, you will get a low mark.

Some good sources for public data are:

You can also think about visualizing data of public events (e.g. show on a map how many people visited events during a night). Sources for that might be:

For example, if you choose to visualize referendum data, it should be possible to share interesting views like the differences between urban areas and the countryside. Users who receive that should be able to continue from this view and zoom into more detailed views. You can also add other user data to your application. If you, for instance, choose to visualize public events, you can add your and your friends' location in real time, so that you can see which events your friends attend. With the visualized data, you can further determine which events would be the most interesting for you.

Some other examples would be:

  • Flight Data: on a map show all flights of a specific time period
  • Lightning Data: show live thunderstorms on a map
  • Change of distribution of the population: during the day there are more people in the city; during the night, many are sleeping in the suburbs - show that on a map
  • Visualize student data: what people study / what background they have / where they are from, etc.
  • Internet activity: there are already a lot of visualization methods of the internet. Maybe you can create a new one
  • Referendums (Abstimmungen): show the result of a Swiss referendum you are interested in

These are just examples - you are encouraged to find something with your own in your team. Do not choose a very complex problem - you should be able to finish the project within this term.

Educational Objectives

During this project you will:

  • learn how to leverage APIs and cloud computing infrastructure
  • work on an inter-disciplinary software development project
  • work with legacy data formats
  • use tests to verify and validate your code
  • use team software infrastructure to collaborate
  • turn requirements into implementation
  • prioritize and plan
  • design and architect your system

Constraints and tooling

You must:

  • use the Google Web Tookit
  • use Rational Team Concert to manage your code, your team and your work items
  • use Google App Engine to host your application
  • give a 5 minutes presentation (2-3 slides) on your progress after completing Assignment 6 and after Assignment 7 (the two sprints)
  • organize your project according to Scrum. The teaching assistants will be your Project Owners. Although Project Owners are responsible for the success of the project, in this case you are responsible - you will also get the grade for the project
  • since we want to train an agile software development process, you should be alert for minor changes of the requirements during the development phase

Marking Scheme

The assignments and final project are worth 30% of your mark, comprised of:

  • (5%) Assignment 1: Jazz 1 & GWT Tutorials (individual)
  • (5%) Assignment 2: Testing (individual)
  • (7%) Assignment 3: Project description, user stories and team name (team)
  • (8%) Assignment 4: Sprint and product backlog, planning poker, second Jazz tutorial and put stories into RTC (team and individual)
  • (8%) Assignment 5: Design and Google App Engine tutorial (team and individual)
  • (27%) Assignment 6: Project Sprint 1. Short presentation during the lecture and demo to TA in lab. (team)
  • (40%) Assignment 7: Project Sprint 2. Short presentation during the lecture and demo to TA in lab. (team)

Milestones

Assignment 1

  • Objective: Prepare yourself to work on software development RTC and GWT. This is an individual assignment.
  • Procedure: For this assignment work through the first Jazz tutorial and the GWT tutorial (see OLAT and below). The TAs will check that you've completed this assignment at the beginning of the lab on September 25th.
  • Mark: 5%
  • Due: At the beginning of your lab on September 25th.
  • Related material:

Assignment 2

  • Objective: This assignment will introduce you to software testing. In addition, you will have to prepare for starting your team projects. This is an individual assignment.
  • Procedure: You will follow a tutorial on JUnit and Selenium (the Testing Tutorial below). You will learn how to write test methods and try refactoring on your code. Moreover, you will have to think about possible project ideas and data sets to be used and bring a write-up of these. The TAs will check that you've completed this assignment at the beginning of the lab on October 2nd.
  • Mark: 5%
  • Due: At the beginning of your lab on October 2nd.
  • Related material:

Assignment 3

  • Objective: This assignment will introduce you to the requirements phase through a hands‐on activity. You will learn how to formulate complete and correct user stories including acceptance criteria, how these help you to define what the project does, and how to group them. This is a team assignment.
  • Procedure: You will follow the instructions given in the Assignment 3 file, which will guide you through the requirements elicitation, analysis and representation phases. In addition, you will have to fill in the Peer Evaluation Form (individual, one file to be submitted by each teammember).
  • Mark: 7%
  • Due: October 10th, 10:00am.
  • Related material:

Assignment 4

  • Objective: This assignment will introduce you to sprint planning, estimating the effort required for completing user stories, requirements negotiation activities, creating a sprint backlog, breaking down the tasks required to complete a user story and defining the goal of your first sprint. You will also learn about RTC (Jazz), how to put your sprint and product backlog into RTC and how to use the source control mechanism in RTC. This is a team and individual assignment.
  • Procedure: You will follow the instructions given in the Assignment 4 file - this will also include the second Jazz Tutorial. In addition, you will have to fill in the Peer Evaluation Form (individual, one file to be submitted by each teammember).
  • Mark: 8%
  • Due: October 15th, 10:00am.
  • Related material:

Assignment 5

  • Objective: This assignment will introduce you to the design of a system through a hands-­on activity. Additionally, it will introduce you to the web application architecture of the Google App Engine, e.g. how an application on the server communicates with the client using RPC and how data is persisted. This is a team and individual assignment.
  • Procedure: You will follow the instructions given in the Assignment 5 file, which includes two tutorials and the design part. In addition, you will have to fill in the Peer Evaluation Form (individual, one file to be submitted by each teammember).
  • Mark: 8%
  • Due: October 22nd, 10:00am.
  • Related material:
    • Assignment 5
    • Reference Diagrams. This archive contains the following:
      • Stockwatcher after the initial tutorial
      • Stockwatcher after the GWT-RPC tutorial
      • Stockwatcher after the AppEngine Tutorial (note that if you didn't do the GWT-RPC tutorial, you wouldn't have the types related to the StockPriceService)
      • Sequence diagram for refreshing stocks in the GWT-RPC version
      • A diagram depicting Scheduled Tasks. You may find Scheduled Tasks useful for updating your data

Assignment 6

  • Objective: This assignment will take you through one sprint cycle and have you finish the high-­priority items for the product. You will learn more about how to apply Scrum to a project, e.g. daily (in our case weekly) Scrum meetings and completing tasks and user stories. You will also learn how to develop in a small team using a source control mechanism to share code and how to communicate with each other through the tasks / user stories / meetings and sharing the source code. This is a team assignment.
  • Procedure: You will follow the instructions given in the Assignment 6 file. In addition, you will have to fill in the Peer Evaluation Form (individual, one file to be submitted by each teammember).
  • Mark: 27%
  • Due: November 19th, 12:00pm (presentation slides) and November 20th, 10:00am (rest of the assignment).
  • Related material:

Assignment 7

  • Objective: The goal of this assignment is to have you go through the second sprint cycle, finish the release and deliver a working product that comprises all high-­ and medium-­level priority user stories, and should comprise all or most low-­level priority user stories. You will continue to apply the practices learned in the previous assignments. You will use continuous integration, unit testing and acceptance testing to increase the level of quality of the product. This is a team assignment.
  • Procedure: You will follow the instructions given in the Assignment 7 file. In addition, you will have to fill in the Peer Evaluation Form (individual, one file to be submitted by each teammember).
  • Mark: 40%
  • Due: November 27th, 10:00am (second sprint plan), December 17th, 12:00pm (presentation slides) and December 18th, 10:00am (rest of the assignment).
  • Related material:

Weiterführende Informationen

Title

Teaser text