As overall product theme we are going to use “Bowling ...



Software Product Development

Course information and plan

Technical University of Denmark

Spring 2006

What should you expect from this course?

Completing a successful software project is more than just coding. It also requires other activities such as customer interaction, planning, documentation and testing. It usually involves a number of people with a set of specialized tasks and skills who have to work together as a team in a structured manner.

This team of peers is brought together to represent the entire set of constituents that are involved with the production, use, and maintenance of the product. Each team member, or role, is accountable for representing the specific needs of its constituencies and none is more important than another. Together these views provide the necessary checks and balances to ensure that the team produces the right solution.

[pic]

This course will give you an introduction to the different roles and their tasks during the different phases of a software project. The lectures will be given by different Microsoft employees, each of them experts within a given role.

During this course you will get acquainted with the work associated with the different roles through a number of assignments we will give you. And even though it is scaled down, you will under our guidance be creating a real software product using Microsoft tools.

What is expected from the students?

Evaluation:

The evaluation of the course will be based on one or more mandatory reports and an oral examination. The course grade, which is individual, will be an overall evaluation of the reports and presentation.

The reports should be handed in by each group and the oral examination will be group-wise. During the oral examination each student should present a topic related to the group’s report, and each student will be asked questions relating to the report, the presentation, and the course.

More practical details about mandatory reports and the oral examination will be announced later.

The course comprises lectures, introduction and use of a collection of technologies, labs, exercises and projects. In the final report you should show that you master the concepts, processes, technologies etc. introduced throughout the course. Therefore, we strongly encourage you to perform well on the individual labs, exercise etc., which systematically will build up the skills needed for the mandatory reports.

|Envisioning |Planning |Developing |Stabilizing |

|6/2 |13/2 |

|8:15am – 10:00 am |Lecture |

|Building 308, room 1,2 &3 | |

|10:00am – noon |Training class |

Week plan:

|Date | Morning Lectures |Training class |Role |Lab duty |

|30/1 |Introduction (Michael Nielsen) |VS & VSTS Lab | |Henrik Westergaard |

| |Product presentation(Thomas | | | |

| |Hejlsberg) | | | |

| |VSTS intro (Henrik Vestergård) | | | |

|6/2 |Envisioning PM (Torben Siggard) |Project Kick-off |Program Manager |Mike Borg |

| | |Scenario document | | |

| | |Personas | | |

| | |Vision document | | |

| | |Storyboard | | |

| | |Technology investigation| | |

|13/2 |Planning process and planning PM |Continue on documents |Program Manager |TBD |

| |(Torben Siggard) |Start on specs Risk | | |

| | |analysis | | |

|20/2 |Planning process and planning PM |Func specs, Estimation, |Program Manager |TBD |

| |(Troels Bent Hansen) |Schedule | | |

|27/2 |Architecture (Pavel Hruby) |High level architecture,|Architecture |TBD |

| | |UML etc. | | |

|6/3 |Moving from Planning To Developing |Design Briefs, design |Developer |TBD |

| |(Alessandro Guida) |specs, iteration | | |

| | |planning | | |

|13/3 |Planning Test (Mario Luici) |Test plans, test design |Tester |TBD |

|20/3 |Development process and development|Coding (Unit test & |Developer |TBD |

| |Dev (Bugsy) |API’s). Code coverage, | | |

| | |design reviews and code | | |

| | |reviews | | |

|27/3 |Development Test (Henrik Frovst) |Automatic tests, coding |Tester |TBD |

|3/4 |Trustworthy Computing (Alessandro |Threat Modelling |Developer & |TBD |

| |Guida) | |Technical Writer | |

| | | | | |

| |User Education (Clara Bui) | | | |

|24/4 |Stabilizing process and stabilizing|Coding and bug handling.|Tester |TBD |

| |Test (Michael Englev) |Code Coverage | | |

|8/5 |Performance (Thomas Hejlsberg) |Coding and profiling |Developer |TBD |

| | | |Tester | |

|9/5 |Test labs (Allan Guinot) |Coding, run auto test, |Tester |TBD |

| |Wrap up (Michael Nielsen) |test reporting | | |

General Training

All general training sessions use the “MSF for Agile Software” portal which can be found on the VSTS foundation server.

Labs for Visual Studio Team System

This document contains some labs and some resources that will take you through most of the features in Visual Studio Team System (VSTS).

General resources

Here are some great resources if you want to dive in to VSTS. I will mention specific resources in the labs when needed.

• - A lot of good introduction videos.

• - Web casts from MSDN

• - The main Team System site

• - MSDN, the primary development resource

Lab 01 - Team System Overview

• Look at the following web cast to get an introduction to VSTS. You need to log in with your Microsoft Passport

o

Lab 02 - Project Kickoff

• Create a team project. Please announce your project name, so teachers are able to follow progress

• Enter the Project Portal. Create an new announcement that identifies who is working on the project.

o Optionally, create at list of contacts and add all project members to the list

Lab 03 - Plan the Project

• Install Microsoft Project 2003 from M:/Alle/.The filename is “Project 2003”

• Update the development plan

1) Open the “Development project plan” from your Project Portal

2) From the toolbar in MS Project, click “Choose Team Project” and connect to your project.

3) Click “Get Work Items”. Add, edit and delete the items/tasks so it fits your plan.

4) Finally, click “Publish

Lab 04 - Check-in Policy and Source Code Control

A great resource is:

• From look at:

o

▪ If you are familiar with version control you can watch all videos under Team Foundation Version Control.

o Watch “Enforcing and Customizing Check-In policies”

▪ Enable a check-in policy for your project. Test it.

• Commit a project to Source Control

• Make sure that all source code is under source code control for the remainder of the project (and for the rest of your life for that matter :-)

Lab 05 - Application Design

• Have a look at all the videos under VSTE/Arc on

• Create a logical datacenter diagram which represents the infrastructure you would suggest the application deployed on

• Create the application diagram, which specifies the overall application structure of your bowling application

• Create a deployment diagram where you deploy our application into the logical infrastructure diagram

• Try and fix the deployment errors!

• Create a class diagram

• From your diagrams, try and create the project templates

Lab 06 - Code Quality

• Watch this web cast on writing quality code:

• Create unit tests run them

• Enable code coverage and verify results

• Run the static code analysis. Look at the errors and try to fix an error of you choice (

Lab 07 - Build Process

This is an entirely free lab. Look at the following online resources:







Implement build automation in the project.

Lab 08 - Testing

• Look at the following web cast:

o Create a manual test case for your project.

o Run the manual test case(s)

Lab 09 - Load Testing

Look at the following web casts:







• If your solution contains a Web Application (depends on project scope), create some web tests that runs through your application. Optionally you can create a “hello world” web app to run web tests

• Create a load test. Explore the load test results. If you do not have a web test, just add some unit tests to the load test scenario.

Lab 10 - Fixing Bugs

• Watch the following web cast:

o

• Create a new bug under work items. Take a bug through the work flow (work flow can be viewed here: )

• Look at the bug rate report (it might take some time before the bug shows up in the report because reporting services are updating on a certain schedule). The report is found in the Team Explorer, under reports and is called “Bug Rates”.

• Use bug reporting for the remainder of the project (and your career :-)

Lab 11 - Source Control

Please refer to lab 04

Lab 12 - Process Customization

This is entirely optional.

Have a look at:







Lab 13 - Reporting

Look at the web cast:



• Look at the Quality Indicators report. How would you use this report?

• What other reports would you consider important if you should identify current risks in your project?

Lab 14 – Project Portal

For more information on the project portal look at:



Week 1: Introduction to Visual & Visual Studio Team System

• Visual studio lab exercise “Develop a web solution, deploy it and run it”:

• Walk through VSTS Lab 1: “Team System Overview”

• Walk through VSTS Lab 14: “Project portal”

Week 2: Technology exploration

• Walk through VSTS Lab 2: “Project overview”

• Use to exploit different technologies and build a simple prototype

Go to the “MSF for Agile Software” portal and select the “Business Analyst” role

1. Use the Vision statement template and the step-by-step guide to create your vision document

2. Use the persona template to describe the personas you are going to support

3. Use the scenario template to describe the high level scenarios

4. Create a storyboard to visualize one of your scenarios

Week 3: Vision Scope and Functional Specs

• Complete documents from last week

• Write one page specs for all feature areas

• Risk analysis

Week 4: Functional Specs and Scheduling

• Complete one page specs for all feature areas

• Write a functional spec, including requirements, for one of the feature areas

• Estimate the Project

• Schedule the Project

• Walk through VSTS Lab 3: “Plan the project”

Repeat the steps on your own solution

Week 5: Architecture

Go to the “MSF for Agile Software” portal and select the “Architect” role

Select the step-by-step guide “Create solution architecture”:

• Select step 1: “Partition the system” and use the guidance to design Application and System diagrams using Visual Studio

• Select step 2: “Determine System interfaces” and using the guidance, add interfaces to your application diagram

• Select step 3:”Create Infrastructure Architecture” create a Logical datacenter diagram using Visual

Inspiration can be found in VSTS Lab 5: “Application design”

Week 6: Design

Develop a design brief for each one page spec

Develop functional/design specifications for each feature associated to a one page spec

Week 7: Test Planning

Go to the “MSF for Agile Software” portal and select the “Tester” role

Select the step-by-step guide “Test a scenario”:

• Select step 1: “Define Test Approach” and specify the test mission, test coverage, test techniques, and test data using the “Test approach worksheet”

Week 8: Coding

Go to the “MSF for Agile Software” portal and select the “Developer” role

• Read through “Implement a development task”

• Walk through VSTS Lab 6: “Code quality” exercise 1: Create unit tests

• Walk through VSTS Lab 4: “Check in-policy”

• Walk through VSTS Lab 11: “Source control”

• Read through “Build a product”

• Walk through VSTS Lab 6: “Code quality” exercise 2-7

• Walk through VSTS Lab 7: “Build process”

Develop your own solution under source code control, including unit test, and create and execute a build

Week 9: Developing automated tests

Go to the “MSF for Agile Software” portal and select the “Tester” role

Select the step-by-step guide “Test a Quality of Service Requirement”:

• Select step 6: Read through “Select and Run a Test Case” and walk through VSTS Lab 8 : “Testing”

• Create an automated Web test using Web test in VSTS, use as a test application.

• Create validation rules for the automated test.

• Data driven test sample: Record a new test on iBuySpy that tests the “search” function. Create a database containing a minimum of 3 search phrases and create a DB reference to the automated Web test you created earlier.

• Load test: Create a new Load test that includes the two previous tests. Try to gradually increase the load starting with a couple of concurrent users and then every time the test succeeds, increase the level of concurrent users. Find the maximum amount of users.

• Select step 7: Read through “Open a bug” and walk through VSTS Lab 10: “Visual Studio Team System – Fixing Bugs”

Repeat the steps on your own solution

Week 10: Threat modeling

Continue feature development

Go to the “MSF for Agile Software” portal and select the “Architect” role

• Select the step-by-step guide “Create solution architecture” and select step 3: “Develop Threat model”

• Use the step-by-step guide to fill out the “Threat model” template

Week 11: Stabilizing Test

• Bug registration

• Bug fixing

• Verification

Week 12: Performance

Go to the “MSF for Agile Software” portal and select the “Architect” role

• Select the step-by-step guide “Create solution architecture” and select step 4: “Develop performance model” and walk through VSTS Lab 9: “Load testing”

• Perform load testing on your own solution

• Post performance issues in the bug database, fix them and run the test again

Week 13: Test labs

• Coding of automated tests

• Running automated tests

• Test reporting

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download