COSC 665: Software Engineering II
Required Project Components
The goal of the project is develop software -- for example, an online auction, online book/music/video store, online backup service, online collaboration service, etc. (use your imagination). Key components that the project must include are:
Security, privacy, data encryption, Algorithim implementation, data mining, predicting, etc.
Project Must Include Programming
When deciding about the project, the most important thing to keep in mind is that the software product you will develop should require lot of programming. Programming language, such as C, C++, Java, or C# should be used.
Project Proposal Report: The project proposal report should show how the above 4 key components will be developed. If the student is extending a previous project (from COSC 565). Students should create a 2 column table explaining what was implemented earlier for the 4 components and what new features will be added to the extension for each 4 components. Students will be judged on what new they implement for this class (not the previois COSC 565 class). Identify number of Stakeholders (users, mangers, etc.). Have atleast 3-4 actors for your project. Choose a target audience? The software should be targeted towards the audeince. Come up with a set of requirements and use case scenarios for each actor.
1. Report Format
The report must contain the following section.
1. Cover Page and Individual Contributions Breakdown
The contributions breakdown must contain the responsibility matrix and
responsibility allocation chart
2. Table of Contents
Make sure that the page numbers are correct
3. Customer Statement of Requirements
A minimum 3-page high-level narrative about the project .
This could be copied from your project proposal, revised and improved
as necessary.
4. Functional Requirements Specification
1. Stakeholders
Identify everyone who has interest in this system (users, managers, sponsors, etc.)
2. Actors and Goals
Identify who will directly interact with the system, their types (initiating vs. participating) and the goals of the initiating actors.
3. Use Casesa. Casual Description
For all use cases that you plan to have in the final product, write a brief or casual text description.
b. Fully Description
Select a few most important use cases
c Use Case Diagram
Draw the use case diagram with all the use cases.
d. System Requirements - Use Case Traceability Matrix (search the Web)e. Textual Use cases
4. System Sequence Diagrams
Draw the system sequence diagrams for the few most important use cases selected above
5. Nonfunctional Requirements
List and describe the FURPS+
requirements (also check Concepts:
Requirements).
6. Domain Analysis
1. Domain Model
Draw the domain model and provide three tables with:1. Concept definitions
2. Association definitions
3. Attribute definitions2. System Operation Contracts
Should be provided only for the operations of the few use cases elaborated above.
3. Mathematical Model
If used. like a geometric model for computing the trajectories for animate figures in a game.
If you are not using then skip this
If you are using it then, describe your model.
7. User Interface Design
a. Preliminary Design
Describe navigational paths that user will follow when interacting with the system.b. Show the screen mock-ups
C. Show the final GUI (graohoical user interfaces) for the system
8. Plan of Work
Describe what your are planned to do and a timeline used for implementation.
9. Class Diagram and Interface Specification
10. Class Diagram
a. Show all classes and their associations in UML notation.
b . Data Types and Operation Signatures
Independently of the class diagram, write down class specification in UML notation. For every class, specify data types of all attributes11. System Architecture and System Design
12. Algorithms and Data Structuresa. Algorithms
Describe the system use algorithms used. For example, when computing a motion trajectory for an animate figure in a game, you may use some numerical or computer-graphics algorithms. You can use activity diagrams to describe the algorithm design.
b . Data Structures
Describe the data structures, such as arrays, linked lists, trees, etc.
13. References
The list of references should contain references and URLs of any material
that is used in the project. Most importatnly if you are using an existing
system or concept from any web resource, you must mention this in the
starting of the report and also site the reference.