Title: Software Management System
Description:
In this assignment, you are required to design and implement a Software Management System using C++. The system should assist software development teams in managing their projects, version control, bug tracking and collaboration. The project aims to provide essential functionalities to support team collaboration and basic project management.
Requirements:
You can use your own program design and implementation; however your program should perform the operations described below.
1. Implement the following classes:
a. Project: This class should represent a software development project. It should have attributes like project name, description, start date, end date, and status (e.g., ongoing, completed, on hold). Include functions to display project details.
b. TeamMember: This class should represent a member of the software development team. Each team member should have attributes like name, ID, and role (e.g., developer, tester, designer). Implement functions to display team member information.
c. VersionControl: This class should handle version control for software projects. It should support basic features like creating new versions, tracking changes between versions, and reverting to previous versions.
d. BugTracker: This class should facilitate bug tracking for projects. It should allow team members to report bugs and track bug resolutions.
2. Implement a simple command-line interface that allows users to interact with the Software Management System. Provide basic menu options for project management, version control and bug tracking functionalities.
3. Implement inheritance and polymorphism to create a suitable class hierarchy. For example, you might have a base class for team members, with derived classes for developers, testers, and designers.
4. Implement basic file handling to save and load project data, team member details, version history and bug reports. Use files to persist data between program executions.
5. Create functions to assign team members to projects and tasks and to display the assignment details.
6. Implement a basic search functionality that allows users to search for projects, team members, and bugs.
7. Include simple error handling to handle unexpected inputs and scenarios gracefully.
Submission guideline:
Your assignment submission should contain the following.
Standard Assignment Cover Page
Table of contents (with page numbers for easy reference)
Introduction
A class design diagram showing the classes of the system and the relationship between them.
Algorithms of operations
Test plan and results
Screen Output
Listing of your C++ program with meaningful variable names and good indentation.
Conclusion
Marking scheme:
30% Quality of code implementing Object-oriented concepts
20% UML class relationship diagram including attributes and operations.
Algorithms showing detail design of each function.
10% Well documented C++ program
20% Test plan
Test cases
Test data
Expected and actual output
Comments
10% Compilation and execution procedures
10% Documentation (well structured with content page, introduction, design, test plan and conclusion)
Programming Report- Marking Scheme
Name:
ID:
Marking Criteria Marks Allocation Marks Obtained Comments
Code
OO concepts
Appropriate use of C++ language
20
10
Design
1) UML class diagram
2) Detailed Algorithm
10
10
C++ program
1) Well formatted and understandable
2) Proper comments
Test Plan
1) Test Cases
2) Test Data
3) Expected and Actual
Results with comments
Correctness
1) Compilation and execution process
2) Output
Documentation 10
Total 100