Link Search Menu Expand Document

Project Description

Objectives:

  1. Be able to conduct the software change process;

  2. Be able to write software documents (requirement specification, design document, test cases);

  3. Work in the team environment;

  4. Practice presentation and communication skills requested by software engineering.

Team Setup:

Overview: This course project is team based. Students attending this course will be assigned into 4 teams (5 students per team) and focus on software maintenance of a well-known open-source software Xfig.

Roles and responsibilities: Each team needs to choose a member as the project leader (with 5% bonus of the final project points). The project leader has the responsibility of managing the project and assigning tasks. Each feature will have a feature champion (others team members, except the team leader), who will lead this feature development. At the end of the semester, the team members will do a cross evaluation of contribution among each other.

Professionalism: Being a professional means you should work well with others. If the behavior of any team member is unprofessional, you could contact the instructor to discuss this matter privately.

Feature Change Requests:

Teams will work on 4 new features of Xfig, which are listed below:

Feature #

Change Request/New Feature

Scope

#1

(1). Each Xfig object (e.g., arch, line, rectangle) has a property called depth, which is used to identify and group the objects on the same layer. This feature is important to address the object overlapping relationship.

(2). Users are allowed to change the depth of any Xfig object, and then re-organize the overlapping among objects. However, it is not very convenient, if users just want to flip flap overlapped objects.

(3). A quick way is to add a new feature called “send to back” and “bring to front”, which will set the depth of the selected object to the maximum value and then put it on the bottom layer (Note that Depth 0 is the top of the drawing order).

This new feature has global impact to Xfig source codes, and these components below will be involved:

(1). Relevant grouping /recording functions of accessing data structures of all xfig objects regarding.

(2). The new X window menu item and shortcut button.

#2

(1). Xfig allows users to export xfig figure into multiple figure formats, such as PNG, EPS, JPG, PDF, etc;

(2). Microsoft Visio has its own format named VDX, which is a well-documented XML Schema-based format. If Xfig could export the figure into VDX format, Visio could edit the figure generated by xfig;

(3). Add the export format VDX into Xfig. Note that the genuine VDX format is complicated. Students can design a “simple” VDX for this feature. If the genuine VDX format has been implemented, 10 points bonuses will be offered.

This new feature has global impact to xfig source codes, and these components below will be involved:

(1). The new item in the listbox of figure type.

(2). The new X window of setting VDX figure properties.

(3). Interpreting figure data between the original Xfig and VDX.

#3 & #4

Self-proposed features (follow the examples of #1 & #2 to finish this table).

Follow the examples of #1 & #2 to finish this table

Deliverables & Schedule & Grading Rules:

All documents, presentation slides, source codes and other deliverables must be uploaded to the moodle before the due date. Grading rules for each deliverable are shown below. Late submission will not be accepted unless the instructor has been notified with an acceptable reason (e.g., health issues, travel for academic conferences or interviews, …, on a case by case basis).

1 - Xfig Architecture Diagrams (Due: February 8, 2021)

(1). You can use any tool including Xfig itself to draw the UML diagrams extracted from Xfig source codes. The diagrams include one static diagram (similar to C++ class diagram, called pseudo class diagram) and one activity diagram (3 points for each of them: 3 - Good, 2 - Fair, 1 - Poor). Your diagrams need to have significant improvement compared to the sample ones. Otherwise, you cannot get the points.

(2). One-page summary explaining these two diagrams and your improvements in details is requested. (2 point)

(3). Presentation slides are not requested. You can present based on your diagrams and the summary. (2 points)

Note that the rules for the absence of presentation are the same as before.

2 - Requirement Book (Due: March 1, 2021)

(1). Requirement Book for new features (6 points per feature, and the final grading is the average points of all features)

(Very Poor: 1 point, Poor: 2 point, Fair: 3 points, Fair/Good: 4 points, Good: 5 points, Excellent: 6 points)

Grading Criteria:

Very Poor: No difference compared to the feature change requests.

Poor: Difference can be observed, but requirements are not itemized.

Fair: Difference can be observed, and requirements have been itemized.

Fair/Good: All itemized requirements are feasible, testable, concise, and clear.

Good: Sufficient interaction with other relevant features have been included.

Excellent: Smart, effective and user friendly solutions have been proposed to address the feature interaction.

(2). Presentation: 2 points (must attend the presentation to get this credit)

(3). Feature Change Request Table: 2 points

3 - Design (Concept Location & Impact Analysis) (Due: March 15, 2021)

(1). Updating the requirement book based on the comments from the instructor (2 points): Note - you need to highlight the changes, and create the change history table to get this credit.

(2). Updating the diagrams to support the design (1 point): Note - you cannot get this credit if your diagram updating has no connection with the needs of your concept location and impact analysis.

(3). Presentation (2 points): You must attend the presentation to get this credit.

(4). Feature (5 points): 5 points per feature (2 points for concept location, and 3 points for impact analysis), and “the grading = # points of total features / # of features”

(i). Concept Location:

Describing the progress of building and executing the query for your feature - 1 point

Concept location result - 1 point

(ii). Impact Analysis: Note - you must follow the methodology introduced in the lecture and take use of your static diagram, otherwise no credit will be obtained

Grading Criteria:

Poor - 1 point: only provide the impact analysis result and mark it on your static diagram.

Fair - 2 points: provide the impact analysis result and mark it on your static diagram. Also, the progress and its explanation are given in detail.

Good - 3 points: Two different coding solutions have been evaluated based on their impact analysis results, and the decision has been given based on the evaluation result. Note - if it is impossible to have 2 alternative solutions, please explain it in detail.

Note that please submit your requirement book revision, static diagram revision and design document in one zip file.

4 - Test Cases & Test Results (Due: April 28, 2021)

Grading (10 points in total):

Test case and requirement book traceability table: 1 point

Presentation: 2 points (Note: you must attend the presentation to get this credit unless an acceptable reason has been sent to the instructor before the presentation)

Test Cases: 4 points per feature and the final grading is the average points of all your features.

Grading Criteria:

Excellent - 4 points: Full coverage to all requirements has been reached, and all test cases can be considered full test cases. Note - a test case with all key elements (i.e., case ID, title, dependency, input specification, test steps, and output specification) can be considered a full test case.

Good - 3 points: Full coverage to all requirements has been reached, and a few test cases have issues to be considered a full test case.

Fair - 2 points: Full coverage to all requirements has been reached, and a significant number of test cases have issues in being considered full test cases.

Poor - 1 point: Full coverage to all requirements has NOT been reached, and a significant number of test cases have issues in being considered full test cases.

Test Results: 3 points (test results are due by Apr. 26, 2021 10:20am)

5 - Code Inspection (Due: April 28, 2021)

This assignment is due by the last class (April 28, 2021 10:20am). However, the moderator needs to submit the author’s summary and reader’s log before your code inspection meeting. The in-meeting log and final summary can be appended here by the due date.

Please refer to our coding and code inspection preparing slides for details.

6 - Features (Due: April 28, 2021)

(1). Coding is due by Apr. 28, 2021 before the class, and all requirements need to be demonstrated in the class;

(2). Commit all codes into the GitHub repository by Apr. 28, 2021 before the class, and a copy of source codes of xfig needs to be submitted here.

(3). Pass all test cases (the test log needs to be submitted by Apr. 28, 2021 before the class) Note: the same moodle assignment as test cases