Software Project Management

Base Knowledge

Students must have fundamental knowledge and practice of software programming.

Teaching Methodologies

The course runs around the development of a software project.
Theoretical classes are used for presentation and discussion of some of the subjects and study materials. Labs are used for progress meetings with the instructor, demonstrations to the class, and clarification about deliverables and tools.
Students are assessed by their work during all the semester
Project grades are individual, and reflect both team performance and student individual contributions: 10 points. A final exam is worth 10 points.
A minimum of 40% in both project and exam is mandatory for passing
The project consists of planning, organizing, monitoring and controlling a software development project. The work is executed during the semester, and permanently monitored by the instructor. The assessment is based on the work and performance demonstrated by each student during the course of the project.

Learning Results

By the end of this course, students should be able to:
–   Demonstrate, through the involvement in a team project, the fundamental aspects of team management
–   Prepare a software development plan, including estimates, scheduling, resources allocation, configuration management, change control management and risk management.
–   Identify different approaches to risk, allowing software delivery within the deadline and cost.
–   Prepare and manage a change control plan.
–   Write a quality assurance plan and apply different quality control techniques to guarantee the quality of the delivered software product.
–   Demonstrate knowledge about software development processes and methodologies, and how they improve software projects.

Program

1.   Project planning
–   Development of a software development plan
–   Software estimation and scheduling
2.   Quality and risk management
–   Quality plan
–   Revisions and Inspections
–   Risk analysis and management
–   Testing and test plan
–   JUnit
3.   Configuration management and version control
–   Change management
–   Subversion
4.   Project management
–   Requirements management
–   Project monitoring and control
–   Team management
–   Meetings management
5.   Software development processes
–   Process models
–   Software process characteristics

Curricular Unit Teachers

Internship(s)

NAO