CS562: APPLIED SOFTWARE ENGINEERING

 

Winter 2008

Rogers 440, TR 12:00 – 13:20

Carlos Jensen (cjensen @ eecs…)

 

Office hours:

TR 10:00 – 11:30

TR 14:00 – 15:30

By Appointment

 

Class Overview

The goal of this class is to give you, the student, hands-on experience in software engineering and project management by working on a real, long-term team project. While doing so, students will be introduced and research advanced topics in Software Engineering techniques, topics, and tools. This is the second course in a 2 course sequence. CS561 is an enforced prerequisite. This class is meant to build on the requirements and project ideas derived by teams in the first course. The focus of this course is on the second half of the design and software engineering cycle; team management, development & testing.

 

Class Topics

-          Code management tools & techniques

-          Project management tools & techniques

-          Test methodology & tools

-          Engineering for security & privacy

-          Software engineering in a multi-core world

 

Schedule

Topic

Tuesday

Thursday

Topic / Slides

Reading / Assignment

Topic / Slides

Reading / Assignment

W1 (1/8)

Project Management

Introduction & Overview

- Project Team reorganization

Project Planning

Slides

- Team Status Report

W2 (1/15)

Risk Management

Team Management & Project Sustainability

Slides

- Team Checkpoint (Project Plan, Revised Requirements)

W3 (1/22)

Code Management

Code/Project Management tools

Slides

 

Class Canceled

W4 (1/29)

Joining Projects

- Team Status Report

 

- Group awareness in distributed software development

- The Social Structure of Free and Open Source Software Development  

- Information Needs in Collocated Software Development Teams.

 

- Summary

Code Visualization tools (1)

- Let’s go to the whiteboard: How and why software developers draw code

 

- Code thumbnails: using spatial memory to navigate source code

 

- Summary

W5 (2/5)

Test Methodology

Testing Overview

Slides

Test Plans

Testing Fundamentals

Slides

- Team Status Report

W6 (2/12)

- Automated Whitebox Fuzz testing

 

- Automated GUI testing guided by usage profiles

- Assignment 1

Reviewing 25 years of testing technique experiments

 

Agile Testing

- Team Checkpoint (Test Plan)

W7 (2/19)

Multi-Core

Slides

 

 

- Team Status Report

W8 (2/26)

No Class

 

 

- Team Checkpoint (Test Results, Prototype)

W9 (3/4)

Security & Privacy

Slides

 

- Mining Rule Semantics to Understand Legislative Compliance

 

- Specifying Privacy Policies with P3P and EPAL: Lessons Learned

 

- Team Status Report

- Assignment 2 Report

W10 (3/11)

 

 

 

- Final Presentation

Finals

 

 

- Assignment 2 turn-in

- Final project SW & Report

 

 

 

Assignments

-          In-class presentation: Each student will be required to lead discussion on up to two class topics

-          Team Status Reports: 5 minute update on what you have accomplished this week/problems you face

-          Team Checkpoint: 15 minute mini-presentation on the progress of your development & testing

-          Summaries: Students will be required to come prepared for class and keep up with the readings so they can participate in discussions. To ensure this happens, all students are required to submit weekly 1 page summaries of readings/lecture topics

-          Assignment 1: Joining Project Experience. Students will need to research a Open Source community, and document it’s structure & history

-          Assignment 2: TBD (pending IRB)

 

Grades

-          In-class presentations                                    10%

-          Class Participation                                            10%

-          Summaries                                                         10%

-          Assignment 1                                                     15%

-          Assignment 2                                                     15%

-          Project                                                                 40%

o   Requirements                                                   10%

o   Design                                                                  20%

o   Test Plan                                                              20%

o   Test implementation                                      20%

o   Presentations                                                    10%

o   Documentation                                                20%

 

 

Other

image002