联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-04-17 09:44

CS 2820 Introduction to Software Development

Spring 2024

Steve Goddard

Project, March 26

(Total of 300 points)

Due: April 8, 19, and May 3 (Three Sprints)

_____________________________________________________________

Team Assignment (teams of 4).

300 points: Create code to analyze and visualize the channel allocation to nodes (coordinators) in a WARP

program.

1) One of you will be the Maintainer and invite the other team members to be a developer on your

project, with an expiration date of Friday, May 17. All team members will work with this repo.

2) The project requires you to work in a team of 4, using a modified Agile Scrum process to complete

the Channel Analysis component of the WARP system using the tools we have learned this

semester. There will be 3 sprints, each approximately 1.5-2 weeks in length.

a. Sprint 1 due: April 8

b. Sprint 2 due: April 19

c. Sprint 3 due: May 3

Unlike a normal Scrum process, you will have defined deliverables that will be graded. You may

deliver more than the minimum required, for which credit will be given in the next Sprint. Delivering

less than the minimum results in a loss of points for that Sprint, AND you will need to make up the

progress in the next Sprint. For each Sprint, you will evaluate your partners and provide the repo

URL in the online Project assignment. Only one URL per team will be required.

3) Each Sprint will require a separate git branch and contain the following artifacts:

a. UML diagram(s) of new or updated classes (if any) in that Spring.

b. JUnit tests for all ChannelVisualization and ChannelAnalysis methods delivered in that

Sprint, except the constructors (think about how to accomplish this), and JUnit tests for any

new methods you might create in other classes, if any are created. To accomplish this

requirement, make all new methods public for testing purposes, but comment whether it

should be public or private in the JavaDoc comments.

c. JavaDoc updates for all code, and JavaDoc files for the entire package of code.

d. Source code (compliant with the style guide)

e. Updated README.md to document each team member’s completed tasks and tasks left to

be done (and by whom).

4) Be sure to merge your Sprint {1,2,3} branch with the main branch so that you continue to build on

prior ‘releases’, but maintain the branches so that the TA can evaluate progress.

5) PROGRAM SPECIFICATION: complete the ChannelAnalysis and ChannelVisualization

classes such that they create the *.ch files available from ICON and evaluate the channel allocation

of WARP flows, as requested in the Warp main program when the runtime configuration option -ca

is used. Be sure to complete all methods declared in the class. Your output will look like the following

for an ExampleX graph with periods of 5 and 10 for flows F0 and F1 respectively:

Channel Analysis for graph ExampleX

Scheduler Name: Priority

numFaults: 1

Channel/Time Slot 0 1 2 3 4 5 6 7 8 9

0 - - - - - - - - - -

1 [A]::F0:(A:B) - - [C]::F1:(C:B) - - - - - -

2 - [B]::F0:(B:C), F0:(A:B) - - - - - - - -

3 - - [B]::F0:(B:C) - - [A]::F0:(A:B) - - - -

4 - - - - - - [B]::F0:(B:C), F0:(A:B) - - -

5 - - - - - - - [B]::F0:(B:C) - -

6 - - - - [B]::F1:(B:A), F1:(C:B) - - - - -

2

7 - - - - - - - - [B]::F1:(B:A) -

8 - - - - - - - - - -

9 - - - - - - - - - -

10 - - - - - - - - - -

11 - - - - - - - - - -

12 - - - - - - - - - -

13 - - - - - - - - - -

14 - - - - - - - - - -

15 - - - - - - - - - -

After the header information, the top row of the visualization is a row of time slots. Each subsequent row

consists of a channel name, and a visualization of its allocation, wherein each time slot entry has one or

more of the following entries:

[NodeName]:: if the channel is allocated to a node (aka coordinator of the communication) for

push or pull instructions.

FlowName(Src,Snk) follows the coordinator information and represents the flow name, source

node, and sink node involved in the communication (these parameters come from the instruction).

Multiple instructions in the same time slot for the same coordinator are separated by a comma.

- if the channel was idle in that slot (i.e., there was no push or pull instructions using that channel at

that time slot).

If more than one coordinator is allocated the same channel in the same time slot, a channel conflict

exists. This conflict must be recorded by setting the conflictExist flag to true, and adding a semi-colon (‘;’)

to the existing entry, followed by the additional coordinator communication notation. For example:

[A]::F0:(A:B); [C]::F1:(C:B)

Entries in the visualization are separated by tab characters, just as the program visualization (.dsl) file

does. Additional example output is available in the ICON Project module.

Your TA will evaluate your assignment by pulling your files from your Sprint branch repository. The

assignment will be scored at follows:

Sprint 1

Artifacts: 50 pts.

1. (10 pts) High level plans and status in the README.md file. Clearly document who will do what

tasks. Identify and explain any artifacts (diagrams and design documents) that should be

considered in this Sprint delivery.

2. (25 pts) UML Sequence Diagram showing program flow starting with Warp processing the ‘ca’

option. Consider using https://sequencediagram.org to create your diagram, but you can use

PowerPoint, or any other tool if you want.

3. (15 pts) Design and project plan documents (e.g., UML class diagram, pdf file, pptx file, etc.) that

capture what you are planning to do. For example, what are the tasks to be done? In what order

will tasks be done? Who will do them? How will you test? How will you document? You should

also have identified some of the methods you will need in the Visualization class at least.

Sprint 2

Artifacts: 50 pts.

Completed or nearly completed Visualization class, including documentation.

1. (5 pts) High level plans and status in the README.md file. Clearly document who will do what

tasks. Identify and explain any artifacts (diagrams and design documents) that should be

considered in this Sprint delivery.

2. (5 pts) Updates to the UML diagrams (Class and Sequence) with the new methods, even if

helper methods are stubbed out.

3. (10 pts) Code in the ChannelVisualization class file that follows the style guide, shows

good design, and flows correctly (doesn’t crash and creates some sort of output that indicates

progress). If the class is not fully implemented, high-level helper methods documented with

JavaDoc and comments explaining what will be done. Use step-wise refinement, with stubbed

out helper methods so that the program flow exists, if the method is not yet finished.

4. (5 pts) JavaDoc comments and updated documentation files.

5. (20 pts) JUnit tests for the ChannelVisualization class.

3

6. (5 pts) Plan for Sprint 3, including tasks assigned to each person. Feel free to have part of this

plan already completed. It is OK to finish early!

Sprint 3

Artifacts and Correctness: 200 pts

Completed, working project

1. (10 pts) High level plans and status in the README.md file. Clearly document who will do what

tasks. Identify and explain any artifacts (diagrams and design documents) that should be

considered in this Sprint delivery.

2. (25 pts) Updates to the UML diagrams (Class and Sequence).

3. (80 pts) Design and code correctness. All helper methods should be public, so they can be

tested, but comments indicating which should normally be considered private or protected.

4. (25 pts) JavaDoc comments and updated documentation files.

5. (60 pts) JUnit tests for the ChannelVisualization and ChannelAnalysis classes.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp