Software development consists of different phases: initiation, planning, execution, monitoring and control, and closing. At the initiation phase a project is approved and a project manager, PM, is assigned. At the planning phase PM defines the project schedule, cost, tasks (work items), resources (team), and assigns project tasks to resources. At the execution phase, project tasks are implemented. At the closing phase, the project is delivered to customer. Across all phases, PM continue to monitor, analyze, manage, and control the execution of the project. The objective here is to keep the project under control and deliver the project on time and within planned budget.
This dissertation addresses the issues of managing project tasks, resources, documents, and software defects. PMs utilize project management software to manage project schedule, tasks, and resources. These systems provide visualizations to display project information (e.g., task name, resource name, task duration, task start date, defect ID, defect description, defect severity, etc.). To help PMs analyze and manage project schedule, tasks, and resources, they currently utilize common two-dimensional (2D) visualization methods such as Gantt charts and tables/spreadsheets. They also utilize defect tracking systems and common 2D visualization to analyze and manage the software defects found during the development of software systems.
The common 2D visualizations currently supported by project management and defect tracking systems have these limitations: it is difficult to see the entire schedule in a single view especially in the case of large data, they do not display analysis information, and they do not support interacting, e.g., rotating the view, with the displayed data to ease the comprehension of the data. This dissertation develops an approach that presents project tasks, resources, and defect information in three-dimensional (3D) visualizations to overcome the above limitations. To assess our approach, we conducted empirical studies using participants from both academia and industry on real-world projects. We developed a prototype tool named 3DProjView for the study. The studies showed that subjects using 3D visualizations achieved higher accuracy and spent less time analyzing project tasks, resources, and software defects.
Across all phases of software development, project stakeholders develop and share documents /artifacts such as project charter, project plan, requirements document, design document, code peer reviews, testing documents, etc. The project team uses these documents to implement/solve project tasks. Currently, project documents/artifacts reside at different repositories and they are not linked together which makes it difficult to implement project tasks. This dissertation develops a traceability system that links the system artifacts together and provides different views of traceability links based on stakeholder role. To help us develop the traceability system, we conducted a survey at an industrial firm evaluating the linking between system artifacts. We developed a tool called TraceLink to prototype and evaluate the traceability system. We conducted an empirical study using participants from the industry and students to evaluate the use of the traceability system to support software maintenance. The results showed that the traceability system helped achieve high accuracy in finding and linking information together.