CS- Software Engineering. Homework

CS- Software Engineering. Homework

 

Assignment 1

Due 9/26/2014 1:59pm

 

 

3 page and the 4th is only a plan graph. 

 

 

Below is a plain language description for the development of a Family Reunion software application. It is fairly detailed, but there may be ambiguous areas, functional omissions, and contradictions.

This and the two remaining assignments will involve you in the creation of a project notebook for this fictitious software system. While there will not be any programming during these assignments, by the end of assignment 3, you will have a viable design that could be serve as the basis for an implementation team.

Feel free to ask questions in class or through Blackboard regarding the software description. I will transmit any changes/clarifications/corrections I make to the software description to all students via Blackboard.

For this assignment, you will read through the fake client’s description and extract an essential set of requirements, involved entities (e.g., the users), and the relationships between requirements and entities. Your assignment submission will include the following work products:

  1. A list of at least 20 use cases, each one summarizing a functional requirement of the system in a sentence or two. This is also a good place to indicate possible security threats. You can specify security threats and/or system constraints either with individual use cases or as separate list items, or both. This list should be concise and meaningful.

  2. A list of definitions of key terms used by the software system. Indicate which definitions are objects, i.e., data structures that the system will use/manipulate.

  3. A list of the user types of the system and other entities external to the system. You will also indicate under each entity type the use cases to which the entity has access (i.e., who can do what). For the use cases, you only need to refer to specific use cases in the list produced in #1 (utilize a use case id or name).

  4. A Use Case Diagram that illustrates the relationships between entity types and use cases.

SOFTWARE DESCRIPTION

We want to create a web and mobile application that will allow family members and friends to schedule and organize family reunions and share photos and comments privately with each other for a family’s reunions.

A person can register and start a family group in the application and send invitations to other people to join the family group. People may also register separately with the site

 

and request to join an existing family group. When someone joins a family group they specify at least one relationship to someone else in that group (except for the first member of the family group). Relationships may always be changed later.

There are 2 kinds of user accounts: basic and premium. A basic user account is free and basic users can access all functions but can only upload a set # of photos per day. A premium user account is $5 per month and there are no upload restrictions.

Family members will receive notifications about new reunion events and reminders if they members have not confirmed attendance or absence. Family members can rsvp to commit to either attending or not attending the reunion. Reunion organizers can designate reunion roles that family members can volunteer for. People can’t do anything for past reunions except post photos and comments. Reunion information pages will show a map to the event.

Family members will receive notifications when new pictures are uploaded (but only 1 notification per day or so). Any basic or premium member can post comments about any other user’s pictures but if comments violate the terms of use then they can be removed by an admin.

DELIVERABLES

Keep all work products in a single document. Organize it with a simple table of contents. All of your assignments will add to this document.

Please submit your Assignment 1 document as a PDF via Blackboard by the deadline (late submissions will be penalized). If you must submit multiple files, zip them up together and submit the zip file.