Outsource Inc. (Group A)

Outsource Inc. (Group A)

COMP 3663 X2

S1:

Software Requirements Specification

OutSource Inc. (Group A)

Mallinson, Mike 100071936

Logan, Billy 100059371

Peters, Richard 100071545

Table of Contents

COMP 3663 X2

S1:

Software Requirements Specification

Table of Contents

Introduction

1Introduction

1.1Purpose

1.2Scope

1.3Definitions, acronyms & abbreviations

1.4References

1.5Overview

2Overall description

2.1Product perspective

2.1.1System interfaces

2.1.1.1Concept of Operations

2.1.2User Interfaces

2.1.2.1Introduction Window Concept

2.1.2.2Select Difficulty Screen

2.1.2.3Create new Character Window Concept

2.1.2.4Load Character Window Concept

2.1.2.5Dungeon Window Concept

2.1.2.6Select Stats Window Concept

2.1.2.7Map Window Concept

2.1.3Hardware interfaces

2.1.4Software Interfaces

2.1.5Java Virtual Machine

2.1.6Communications Interfaces

2.1.7Memory Constraints

2.1.8Operations

2.1.9Site Adaptation Requirements

2.2Product Functions

2.2.1“Creating a Character” Use Case

2.2.2“Traveling to Adjacent Grid Location” Use Case

2.2.3 “Obtaining Item” Use Case

2.2.4 “Travel to New Location” Use Case

2.2.5“Initiate Battle” Use Case

2.2.6 “Attack” Use Case

2.2.7“Berserker” Use Case

2.2.8“Use Item” Use Case

2.2.9“Flee” Use Case

2.2.10“Defend” Use Case

2.2.11“Save” Use Case

2.2.12“Load” Use Case

2.3 User Characteristics

2.4Constraints

2.5Assumptions and Dependencies

2.6Apportioning of Requirements

2.6.1Basic Functional Requirements

2.6.2Human Interface Requirements

2.6.3Undesirable Characteristics

2.6.4Basic Non-functional Requirements

2.6.5 Cost and Time Constraints

3. Specific Requirements

3.1External interface requirements

3.1.1User interfaces

3.1.1.1Title Screen

3.1.1.2Character Creation

3.1.1.3Dungeon Window

3.1.1.4Battle Window

3.1.2Hardware Interfaces

3.1.3Software Interfaces

3.1.4Communication Interfaces

3.2Classes/Objects

3.2.1Character

3.2.1.1Face

3.2.1.2Status Points

3.2.1.3Attributes

3.2.1.4Experience

3.2.1.5Level

3.2.1.6Life Tokens

3.2.2Area

3.2.2.1Room

3.2.2.1.1Maze

3.2.2.2Door

3.2.2.3Map

3.2.3Encounter

3.2.3.1Hostile Unit

3.2.3.1.1Enemy

3.2.3.1.2Boss

3.2.4Item

3.2.4.1Room Key

3.2.4.2Boss Key

3.2.4.3Treasure Chest

3.2.4.4Gear

3.2.4.4.1Weapon

3.2.4.4.2Armor

3.2.4.5Potion

3.3Performance Requirements

3.4Design Constraints

3.5Software System Attributes

3.5.1Reliability

3.5.2Availability

3.5.3Security

3.5.4Maintainability

3.6Other Requirements

4Project Management Plan

4.1Introduction

4.1.1Project Overview

4.1.2Project Deliverables

4.1.3Evolution Of The SPMP

4.1.4Reference Materials

4.1.5Definitions And Acronyms

4.2Project Organization

4.2.1Process Model

4.2.2Organizational Structure

4.2.3Organizational Boundaries and Interfaces

4.2.4Project Responsibilities

4.3Managerial Process

4.3.1Managerial Objectives and Priorities

4.3.2Assumptions, Dependencies, and Constraints

4.3.3Risk Management

4.3.4Monitoring and Controlling Mechanisms

4.3.5Staffing Plan

4.4Technical Process

4.4.1Methods, Tools, and Techniques

4.4.2Software Documentation

4.4.3Project Support Functions

4.5Work Packages, Schedule, and Budget

4.5.1Work Packages

4.5.2Dependencies

4.5.3Resource Requirements

4.5.4Budget and Resource Allocation

4.5.5Schedule

Appendix A – Glossary of Terms

Appendix B – Sequence Diagrams for Use Cases

Introduction

OutSource Inc. is a PC videogame developer and designer company. Our goal is to provide customers with an enjoyable and attractive gaming experience, Conan. With over 10 years experience in the IT industry, our designers will provide a gaming experience that will keep you coming back for more.

For this product, OutSource Inc. will be partnered with Initech. We are developing a game called Conan, in which Conan the barbarian must fight his way through a dungeon to survive.

This report contains important requirements and information about the game Conan. Section 2 of this report illustrates the game menus, maps and dungeon screens. Section 3 is a listing of the technical specifications.

OutSource Inc. would like to thank Initech for allowing us to have this experience and we expect to exceed Initech’s initial expectations on the game.

Sincerely,

The OutSource Inc. Team

1 Introduction

1.1 Purpose

The purpose of this report is to provide the supplier and customer with a composed guideline concerning the Conan computer game. Section 1 will describe the basic aspects of the game while Section 2 will illustrate a basic graphical implementation providing a glimpse of the game’s appearance, the game’s functions and behavior. Section 3 is mainly for software engineers.

1.2 Scope

This component covers the customer deliverable for a Conan computer game. This will allow developers to mold the game to fulfill the requirements and present a template for the game’s layout.

1.3 Definitions, acronyms & abbreviations

See Appendix A – Glossary of Terms.

1.4 References

  • Braude, E. J. (2001). Software Engineering: An Object-Oriented Perspective. John Wiley and Sons.
  • Silver, D. (2006). Course Web Page: Comp 3663 X2 – Software Engineering. Retrieved January 28, 2007 from the World Wide Web:
  • Overview

Conan is a role playing computer game devised by Initech and developed by OutSource Inc. The game will provide entertainment for gamers ages 14+ as the user will be participating in violent endeavors. The game will not be complicated and the controls will be simple making the game appealing for all gamers.

2 Overall description

2.1 Product perspective

2.1.1 System interfaces

2.1.1.1 Concept of Operations

Conan can be in any of the following states:

  • Initialize – the user creates a player and starts the game.
  • Dungeon: First room – the user has to reach the first room before he/she can continue, quit, save or win the game.
  • If the door is locked; Conan cannot open the door without the key.
  • Waiting – Conan may move and encounter enemies
  • Player can quit or save the game.
  • The user proceeds to the next room.
  • Encounter – User begins a battle, if the user wins the battle continues. Otherwise the game is over.

2.1.2 User Interfaces

2.1.2.1 Introduction Window Concept

This is the Main menu for Conan. The user has the option to start a new game or load a saved game.


2.1.2.2 Select Difficulty Screen

Using this menu, the user chooses a difficulty. The user has the following options Easy, Medium or Hard.


2.1.2.3 Create new Character Window Concept

Using this menu, the user creates a new character.

2.1.2.4 Load Character Window Concept

Using this menu, the user loads a previously played character.


2.1.2.5 Dungeon Window Concept

This is the basic game screen. The game messages and dialog will appear at the bottom of the screen. The character attributes are in the top right corner, the inventory in the right middle and the action keys in the bottom right corner.


2.1.2.6 Select Stats Window Concept

This is the screen where the user chooses the initial attributes for his/her character.

2.1.2.7 Map Window Concept

This is the map screen showing a detailed layout of the dungeon. The map shows Conan’s position relative to the other rooms in the dungeon.

2.1.3 Hardware interfaces

A mouse and keyboard will be used.

2.1.4 Software Interfaces

Used to store data of individual areas.

2.1.5 Java Virtual Machine

Required to run the game.

2.1.6 Communications Interfaces

None, this is a single-player offline game.

2.1.7 Memory Constraints

The game is required to run on the Acadia Advantage laptops, so no more than 512MB of RAM will be used. The game content will use no more than 50 MB of hard drive space.

2.1.8 Operations

The user will be able to save and load the game.

2.1.9 Site Adaptation Requirements

None.

2.2 Product Functions

This section gives a brief explanation of the functionality of the game. Greater detail is given in Section 3.

2.2.1 “Creating a Character” Use Case

2.2.2 “Traveling to Adjacent Grid Location” Use Case

2.2.3
“Obtaining Item” Use Case

2.2.4
“Travel to New Location” Use Case

2.2.5 “Initiate Battle” Use Case


2.2.6
“Attack” Use Case

2.2.7 “Berserker” Use Case


2.2.8 “Use Item” Use Case


2.2.9 “Flee” Use Case


2.2.10 “Defend” Use Case


2.2.11 “Save” Use Case


2.2.12 “Load” Use Case

2.3
User Characteristics

This game is aimed towards young adults.

2.4 Constraints

  • Deliverables must be received on time. No deliverable can be accepted before a previous deliverable has been received and approved.
  • The entire project must cost no more than 35 man-days (at 8 hours/day).
  • Must run on any Acadia Advantage laptop under Windows XP.
  • Implemented in Java.
  • Can be downloaded and installed from a web homepage.
  • Assumptions and Dependencies
  • System assumes save files are valid and not tampered with.
  • System assumes that XML room descriptions are valid.
  • Apportioning of Requirements
  • Basic Functional Requirements

F1- Each play of the game has a limited time frame. The player can set this.

F2- Provides a castle with interconnected areas.

F3- There is one area from which the game begins

F4- Each area must have a name, a unique graphical image and its own set of no less than 3 environmental variables such as the number of monsters in the room, and type of monsters, the items in the room, etc.

F5- Each area has connections to one or more other areas.

F6- Areas contain monsters and items with which to interact with.

F7- Must allow the creation and maintenance of various game characters. Each character has a unique name and image and a set of qualities such as life points, strength, defense (optional), attack rating, and attack power that can be assigned points by the player outside of battle. The system must allow the player to create these characters, define the qualities and select a character image.

F8- Must allow the main character to be designated. The objective is to save the princess.

F9- No more than two characters can be at the same location in the room at one time

F10- When two characters meet at a position in the room they battle.

F11- Once battle is complete the main character, if s/he still exists and has the remaining qualities to do so, can move to a new location based on the player’s choice of direction. Moves deplete resources – so characters cannot simply just move for ever without having their qualities replenished in one form or another

F12- Must allow users to query for (and potentially print) a report of current character and area status by showing all quality and environmental variable values

F13- Must alert the player when main character quality values are reaching critical levels

F14- Must generate a game summary report showing overall performance through the game

F15- Must provide a method of saving and restoring the characters as a set.

F16- Should have a method of saving and restoring the current game state so that a game can be stopped and started at a later time.

F17- The above functions should be integrated as a single system that shares the appropriate data structures. Note that the use of a DBMS is possible but discouraged.

Plot Requirements

F18- “Conan: Rescue the Princess” (hereon referred to as the game). Is a fairly straightforward game largely described in the title.

F19- Conan (our main character) is sent to a run down castle to rescue a Princess.

F20- Conan must fight his way through several rooms to get to the princess, and have her follow him out again.

F21- In each room there is a key for the exit that is locked. Key disappears after use.

F22- Final Fantasy style top-down turn-based RPG.

F23- Enemies encountered randomly when a player moves, and a battle sequence is activated. The difficulty setting decides the number of enemies in a room. For each move the character makes there is a 'dice roll' and if the certain number hits the battle starts. For each move you make, the number on the 'dice' reduces by one so eventually you do get into a battle.

F24- While exploring the castle Conan will uncover chests, and other appropriate containers that will contain items.

F25- After completing 25% of the castle Conan will fight a boss, after defeating said boss the player is given some new armor and a new weapon.

F26- Before Conan rescues the princess he must fight the King of Swords. After defeating the King you receive his sword.

F27- After the King is defeated the Prince shows up and swears a vendetta (“you’ll never make it out alive”) and runs out of the castle.

F28- When Conan enters the next room on his way out (princess in tow) he encounters the captain of the guard – defeat the captain and get his armor.

F29- When the princess is with you she won’t be attacked very frequently (10% of the time) but the possibility is there. She is a healer (no offensive attacks, but able to issue potions to herself and Conan).

F30- After a battle experience is gained allowing Conan to raise his level. At the end of a battle there should be a chance to gain items as well. 1/4 chance of getting a potion and a 1/20 chance of gaining a revive token.

F31- If possible, there could be a 'boss key' in the game somewhere before the battle with the king. It could be in the first room in a less than obvious place or anywhere between the start and that chamber.

Character Requirements:

F32- Conan starts with a basic sword and armor.

F33- Conan has a simple sword attack that does damage to the enemy. He has a special berserker attack that he can use once per room. This attack hits the enemy up to 10 times in rapid succession.

F34- The game should track:

  • Life Points
  • Defense Rating (based on armor)
  • Attack Accuracy
  • Attack Power (Range of damage)
  • Experience
  • Level

Item Requirements

F35- Potion – restores 100% LP (One Time Use)

F36- Life Tokens – Bring you back to life if you die (beginning of the room).

F37- Keys – used to advance to the next room. (One Time Use)

F38- Swords – Three types (Basic, Master, King)

F39- Armor – Basic starting armor, master armor, Titan’s Chest (Captain of the Guards Armor), Helmet of Revive (Infinite life tokens), Ring of Agility (RARE ITEM, speeds up attack timer)

Map Requirements

F40- The castle is a series of rooms leading from the main entrance to where the princess is held. The path of rooms should be linear however the individual rooms should contain a maze.

F41- If the player enters a square that they have already passed through they may still encounter enemies.

F42- The castle could be designed in 2 parts with 2 paths one for in and one for out. It could also be that Conan has to go the same way he came in but against stronger monsters.

F43- Ideally the game should be written such that the maps can be adjusted easily. XML is a viable option to describe the rooms. It should be then possible to add levels to the game. (Optional Requirement)

F44- If possible, the map should start darkened over so the player has to explore the map. That way there is an increased chance of running into enemies while getting lost. Show a few blocks around Conan so he can navigate.

2.6.2 Human Interface Requirements

I1- Must be GUI based with efficient use of mouse point and click and menu features.

I2- Must be user friendly and encourage player/game setup and interaction by providing, at minimum:

I3- Cut and paste and document content copying where possible to reduce repetitive typing.

I4- Intelligent display and sequencing of queries and menus.

I5- User oriented error and warning messages.

I6- On-line help information.

I7- Optionally, allow certain aspects of displays and reports to be tailored (or personalized) to the individual user.

I8- Intelligent display and sequencing of queries and menus.

I9- User oriented error and warning messages.

I10- On-line help information.

I11- Optionally, allow certain aspects of displays and reports to be tailored (or personalized) to the individual user.

Movement Screen:

I12- Shows position on the grid.

I13- Shows the items in your bag, equipped items, level, life points, and experience.

Battle Screen:

I14- Shows player’s timer until next turn.

I15- On player’s turn a menu is presented giving options:

  • Attack: This can be split into an attack submenu with attacks of various strength and accuracy, though a stronger attack should be less accurate.
  • Defend: After rescuing the princess this will have a submenu asking whether you want Conan to defend himself, or the princess. Defend will decrease the damage done by an enemy attack by a percentage that increases as Conan levels.
  • Item: Before rescuing the princess this will use the player’s entire turn, however after the princess is in tow selecting this will bring a submenu asking which character you want to be healed by the potion. The princess will administer the potion and Conan is still free to attack or defend afterward.
  • Run: Flee from battle. The enemy you were facing will not regain Life Points, and will continue to roam the room
  • Undesirable Characteristics

U1- Lengthy user manual - focus on great on-line help and reference documentation as well as innovative "getting started" tutorial. Ask yourself, how would I like to learn how to use the system.

U2- Need for external components such as backup utility or DBMS that might have to be purchased by your customer (these issues can be discussed with your customer and TA).

2.6.4 Basic Non-functional Requirements

B1- Must run on any Acadia Advantage laptop under Windows XP.

B2- Is implemented in Java.

B3- Can be downloaded and installed from a web homepage.

2.6.5Cost and Time Constraints

T1- Deliverables (by Customer and Supplier) must be received on time as per the course schedule for full marks. No deliverable can be accepted before a previous deliverable has been received and approved.

T2- The entire project must cost no more than 35 man-days (at 8 hours/day).

3. Specific Requirements

3.1 External interface requirements

3.1.1 User interfaces

The user interface in this game will be represented by multiple graphical windows. These windows include:

1) Title screen

2) Character Creation

3) Dungeon Window

4) Battle Window

3.1.1.1 Title Screen

This window shows the options to create a new character, load a previously saved character, or quit the game. Creation of a new character loads the character creation window. Loading a previously saved character loads the dungeon window. Quitting the game quits the game.

3.1.1.2 Character Creation

This window shows the options to enter the characters name, distribute the initial status points of the character to their attributes, and choose a graphical representation of the character. Clicking the create button will load the dungeon window and initialize the game.

3.1.1.3 Dungeon Window

This window will show the layout of the dungeon room, the stats of the character, the inventory of the character, the controls, and the message area. This is where the movement and exploring of the dungeon occurs. Upon the start of battle, the battle window is loaded.

3.1.1.4 Battle Window

This window will show the character and enemy graphics, the status of the character, the status of the enemy (optional), the possible actions the character may take, a message window to output the results, and the animations used to represent battle (optional). Upon victory, or defeat with life tokens remaining, the dungeon window will be loaded. Upon defeat with no life tokens remaining, the title screen will be loaded.

3.1.2 Hardware Interfaces

This game will support the use of a mouse and keyboard as input devices. The game will be developed to run on the Acadia laptop hardware.