0% found this document useful (0 votes)
13 views3 pages

CS 341 Project 3: Feasibility Study

This document outlines Project Assignment 3 for a software design course. It includes objectives to conduct a feasibility study comparing 3D APIs and to design the project. Students must choose a 3D interface approach, build a demo, and justify their choice. They also need to further design project classes and logic, and create a schedule to implement the project in upcoming assignments. The feasibility study and design work will be graded based on completeness, consistency, understandability, appropriate design techniques, UML usage, and schedule.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views3 pages

CS 341 Project 3: Feasibility Study

This document outlines Project Assignment 3 for a software design course. It includes objectives to conduct a feasibility study comparing 3D APIs and to design the project. Students must choose a 3D interface approach, build a demo, and justify their choice. They also need to further design project classes and logic, and create a schedule to implement the project in upcoming assignments. The feasibility study and design work will be graded based on completeness, consistency, understandability, appropriate design techniques, UML usage, and schedule.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

 

CS 341
Software Design
Project Assignment 3
Design Extension
Due: Nov. 13, in class
Objectives
• To do a feasibility study comparing Java 3D/Maya and Processing APIs
• To design how you will build your project
• To gain experience in project planning

Assignment
Feasibility Study
Currently, 3 user interfaces are under consideration for the Risk program:

• Models built with Maya and manipulated using the Java 3D API
• 3D Models built programmatically and manipulated by the API available from [Link]
• 2D user interface

A major decision needs to be made about which user interface direction to take. The Java
3D / Maya approach would probably lead to the best graphics. The API is very complicated
and needs to be learned in a limited amount of time.

The Processing API looks much simpler. While you have some experience with it, it still
needs to be learned more thoroughly. There is also a question of whether it provides the
functionality that you need.

A 2D user interface would be simpler to implement but not as flashy.

To make a decision between these three approaches, you should develop a small program
that manipulates a single 3D object in a simple way, but in a way that you would like to use
in the game. By doing this you will learn how easy/difficult it is to work with each system.
You should use this information to make a decision about which approach to use.

Design
The design work for this assignment should focus on the game logic, ignoring user interface
issues. You should identify the major classes, their responsibilities, and how they relate to
each other. It would be good, though, to indicate how your classes participate in the Ob-
server pattern.

1
CS 341 Project Assignment 3

Your design should be done to enough detail that you are convinced that you understand
what the classes are and how they fit together. You should identify important attributes and
operations for your classes.

After completing your design, formulate a schedule for completing the code (and testing it,
of course). Code is due on November 20, December 4 and December 11. Things that you
should keep in mind when formulating your schedule:

• Consider how long the early programming assignments took. Evaluate the complexity of
your classes compared to those assignments. Use that comparison to help you estimate
how much effort each class will take.
• User interface code always takes longer than you think it should, so keep this in mind
when doing your planning. This will be particularly true if you are using parts of Swing you
have never used before.
• You should break up the work among yourselves but keep in mind that you will need some
time to make sure that it works together.
• Select the order in which you implement your application based upon how critical the fea-
tures are to your application and ease with which you can test parts of an incomplete ap-
plication. Refer back to your priority list from the first assignment so that you focus on
the highest priority pieces of functionality.
• Include in your schedule time that you need to learn new technologies (like 3D API,
Swing, etc.).

What you should turn in


For the feasibility study, you should submit a textual document describing the feasibility
study that you did, the decision that you made and why. Your discussion should make it
clear that you understand how to use the API that you select (basically what the previous
assignment requested).

Your design documentation should include a textual description, UML diagrams, and javadoc
documentation as appropriate to help clarify your design.

Your schedule should identify:

• What functionality you plan to complete by each due date. This could be that you plan to
have a user interface complete, but with most of the components doing nothing, or spe-
cific commands working, requiring partial implementation of multiple classes. Or you
might have a bottom-up plan where you will have specific classes built and thoroughly
tested with JUnit, but limited end-user functionality, or some combination of these.
• What classes (or parts of classes) must be implemented to provide that functionality.

Try to come up with a schedule that you believe you can meet. If, when doing the schedul-
ing, you realize the project is too ambitious, come talk to me and we can reconsider the
goals of the project.

2
CS 341 Project Assignment 3

Grading
The feasibility study will replace the Existing System Design assignment. Its grade will re-
place the Existing System Design assignment grade. It will be graded as follows

Description of feasibility study 15 points

Explanation of the choice you make 15 points

Demonstration of your understanding of how to use the system within 70 points


your project. This may involve class diagrams, sequence diagrams,
and text.

The design extension portion of this assignment will be graded as follows:

Design completeness 15 pts

Design consistency 15 pts

Design understandability 10 pts

Appropriate use of design techniques (inheritance vs. composition, im- 30 pts


mutability, design patterns)

Good use of UML 15 pts

Schedule 15 pts

Turning in your work


Please turn in a paper document for this assignment.

Common questions

Powered by AI

A schedule for completing code should be formulated by analyzing the complexity of classes compared to previous assignments, anticipating more time for UI coding, and including buffer time for learning new technologies like 3D APIs or Swing . It should prioritize critical features based on ease of testing and completion, and ensure time for integration across individual contributions, considering inter-class dependencies and testing plans .

Developing a small program is important as it provides practical insights into the ease or difficulty of working with each interface system. It allows for hands-on experience with the APIs, highlighting potential challenges in implementation and ensuring that the chosen system aligns with project needs and team's capabilities. This minimizes risk by validating assumptions in a controlled setup .

Breaking up work among a team is significant as it distributes workload, leverages diverse skills, and enhances efficiency. Effective management entails clear division based on skill sets while ensuring sufficient integration time for seamless collaboration between components. Regular communication and coordination are essential to address dependencies and integrate part implementations effectively .

The three user interface options considered for the Risk program are: 1) Models built with Maya and manipulated using the Java 3D API, which offers potentially the best graphics but has a complicated API that requires significant learning in a limited time . 2) 3D Models built programmatically and manipulated by the Processing API, which is simpler and familiar but requires evaluation on whether it meets functionality needs . 3) A 2D user interface, which is simpler to implement but lacks the visual appeal of 3D graphics .

Assessing timeline alignment with project ambitions ensures realistic planning that acknowledges resource constraints and complexity. If misalignment is identified, it's crucial to consult with stakeholders to recalibrate the project scope and objectives, thus maintaining project feasibility and avoiding unsustainable workloads that could jeopardize quality and delivery .

The feasibility study is graded based on the description (15 points), explanation of the choice made (15 points), and demonstration of system understanding through class diagrams, sequence diagrams, and text (70 points). The design extension is graded on design completeness (15 points), design consistency (15 points), design understandability (10 points), use of design techniques like inheritance, composition, immutability, and design patterns (30 points), good use of UML (15 points), and the schedule (15 points).

The design work for the assignment should focus on the game logic, excluding user interface issues, which is significant because it ensures a strong foundational structure of the core functionalities independent of UI complexities . This focus helps in creating a modular design where the game logic can be tested and refined, ensuring robustness before integrating visual components, which can complicate debugging and development workflows .

The recommended methodologies for identifying class responsibilities and relationships include focusing on the Observer pattern and other relevant design patterns, ensuring clear definitions of class attributes and operations, and employing UML diagrams for visual clarity. This structured approach facilitates a comprehensive understanding of the system design .

The feasibility study should compare Java 3D/Maya and Processing APIs, considering the ease of learning and whether they meet functional requirements . Its role in the project development process is to assess which user interface approach is most viable, guiding further development decisions and ensuring that resources are directed towards a technically feasible and efficient implementation .

User interface code may take longer to implement than anticipated due to the complexity and intricacies involved in graphics rendering and interactive elements, particularly when using unfamiliar parts of libraries like Swing. The iterative nature of integrating and testing visual components can lead to frequent revisions and increased development time .

You might also like