SYSTEM DESIGN DOCUMENT

Size: px
Start display at page:

Download "SYSTEM DESIGN DOCUMENT"

Transcription

1 2013 Leş Koding Baran KÜÇÜKGÜZEL Batuhan TAŞDÖVEN Ali Barış UZUNER Bekir ÖZTÜRK SYSTEM DESIGN DOCUMENT This document is prepared by Leş Koding s members; the document is about system design description about the project Science Wars.

2 PREFACE This Document contains the system design information about Science Wars project. This document is prepared according to the IEEE Standard for Information Technology Systems Design Software Design Descriptions IEEE Std This Software Design Documentation provides a complete description of all the system design and views of the Project on both client and server side applications. The first section of this document includes Project Identification, Stakeholders Identification and requirements, Composition of the developers team. The following sections include document purpose and design viewpoints of the system. 1

3 Table of Contents PREFACE Overview Scope Purpose Intended Audience Definitions Conceptual model for software design descriptions Software design in context Software Design Descriptions within Life Cycle Influences on SDD Preparation Influences on Software Life Cycle Products Design Verification and Design Role in Validation Design Description Information Content Introduction SDD identification Design Stakeholders and Their Concerns Design Views Design Viewpoints Design Rationale Design Languages Design Viewpoints Introduction Context viewpoint Log in Screen Lobby Screen Game Screen Logical viewpoint Design concerns Design elements Example languages Dependency viewpoint... 51

4 5.4.1 Design elements Subsystem Connections Information viewpoint Interaction viewpoint Design concerns Design elements Login Interaction State dynamics viewpoint Conclusion

5 Figure 1 Login Screen Use Case Diagram Figure 2 Lobby Screen Use Case Diagram Figure 3 Game Screen Use Case Diagram Figure 4 Modules of the project Figure 5 Illustration of the network communication Figure 6 Database tables Figure 7 Login Interaction Figure 8 EnterQueue Interaction Figure 9 Match Found Interaction Figure 10 Build Tower Interaction Figure 11 Spawn Minion Interaction Figure 12 Upgrade Tower Interaction Figure 13 Upgrade Minion Interaction Figure 14 Use Skill Interaction Figure 15 State Diagram of the Client

6 1. Overview The Software Design Document gives information about how the software should be build. Details of the system are represented using graphical notations like: use case models, class diagrams, sequence diagrams etc. 1.1 Scope In this document all components of the system and a detailed design of each model are explained. There will be some set of design views which will help the process of developing and understanding the project. This documentation is the guideline for the implementation. 1.2 Purpose This document aims to describe the both Client and Server side software of the Science Wars project with the help of several viewpoints. This document is to primary reference to the implementation phase. This document describes the system so that the system fills the needs described in the SRS document. 1.3 Intended Audience The intended audience for this document is both stakeholders and the developers. 2. Definitions IEEE: Institute of Electrical and Electronics Engineers. GUI: Graphical user interface. DAO: Data Access Object Science Wars: Permanent name of the game. SVN: Subversion repository. TortoiseSVN: The program we used for revision control. Unity3D: Game engine we used for client side. 5

7 Visual Studio: A platform we used for implement server. MySQL: Open-source relational database management system. Session: A class for people connected to game before log in. User: A class for people after log in. Player: A class for user after joins a game. Board: Part of map which belongs to one player in game. Game: A class creating after start a game and keep all informations about it. Minion: Soldiers a player can use for attack his opponents. Tower: Buildings a player can use for defense from his opponents. Missile: Bullets used by towers for attack to minions. Message: Objects we used for communications between server and client. Lobby: A place for all players in after log in. Queue: A line where players wait for us to find suitable opponents for them. Skill: Some special talents a player can use in game. Science Tree: An upgrade tree every player has and unlocks new features for game. SOLID: Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion 3. Conceptual model for software design descriptions 3.1 Software design in context This project will be designed as object oriented in a modular design fashion. In this structure, it can respond to users demands quickly and efficiently. Since it is a multiplayer-real time game, this 6

8 property is critically important. With modularity and adaptability, new game modes and different towers, minions, skills can easily be added to the game. 3.2 Software Design Descriptions within Life Cycle Influences on SDD Preparation This document is prepared by considering the opinions of the stakeholders and the SRS document is an important reference to this document Influences on Software Life Cycle Products This project is a client-server application. All of the game steps are going to be simulated and calculated on the server and the clients (users) will be informed via the network module of the game. Hence the most important concepts in this project is the network module and the server module. We should make these components available as soon as possible so we could get feedback from the stakeholders. Then the development of the client side will be easier. Moreover we are going to have multiple client applications like desktop application, android tablet application etc., so first of all the server-side should be available as soon as possible then we can continue on developing multiple client applications Design Verification and Design Role in Validation Since Science Wars is a multiplayer real-time strategy game, the server is responsible of making calculation of every game simultaneously and there is a definite time period of calculation of each game state. The server is responsible of calculating game progress in given time and sending related information to the clients for the sake of real-time game concept. The server and network modules should be reliable, stable and scalable. The client module is responsible for the listening for user commands and sending them to the server for processing then listening related information from the server module. Another important responsibility of the client is to show the game progress visually to the users. Therefore we should test our design and overall system constantly throughout the development progress. 7

9 4. Design Description Information Content 4.1 Introduction This part of the Software Design Document is aiming to provide information about how the design description will be explained in the later parts of this document. In this section we will give information about SDD identification, identified design stakeholders Identified design concerns, selected design viewpoints, each with type definitions of its allowed design elements and design languages, design view, design overlays,design rationale. 4.2 SDD identification This is the initial SDD for the project Science Wars of the team Leş Koding. The date of issue for this document is: This is not the final design document for the project Science Wars and is subject to change in future. The issuing organization for this document is team Leş Koding which is established by Ali Barış Uzuner, Baran Küçükgüzel, Bekir Öztürk, Batuhan Taşdöven. The supervisors of this project are Dr. Selim Temizer and Asst. Serdar Çiftçi. The scope of this document is the software design information about the project Science Wars. In this design report we will mainly use UML for explaining the design viewpoints. 4.3 Design Stakeholders and Their Concerns The design stakeholders of this document are Dr. Selim Temizer and Asst. Serdar Çiftçi and other CENG 490 staff. Dr. Selim Temizer is the one of the instructors of the CENG 490 course and the main supervisor of the team Leş Koding. Asst. Serdar Çiftçi is one the teaching assistants of the CENG 490 course at the Middle East Technical University and is responsible for the team Leş Koding. The team and Asst. Serdar Çiftçi will have weekly meetings about the project hence the team is going to be able to get feedback from him. So the main contact between the team and the CENG 490 staff will be Asst. Serdar Çiftçi. 4.4 Design Views This project will be implemented by following SOLID which enables to create modular structure. As a result of that, the stakeholders can add new features to our game or remove the unnecessary ones from project. Thanks to the SOLID, they can easily update the project. Also new game boards can be easily integrated to the system. Product context is specified and all restricted limitations are given in the SRS document before. Composition and team organization is equally made. Design view also shows 8

10 estimated cost, staffing, documenting and scheduling. A logical view of the product is explained and also it is supported by diagrams. Relationships of the classes are easily perceived. Dependency and information viewpoints show possible future problems and how the information is stored and shared among the users. Lastly, state dynamic views shows the state transitions and flow of actions with diagrams. 4.5 Design Viewpoints Context viewpoint shows what is expected from the user actor in the system. The roles of the user and stakeholders are clearly specified. Logical viewpoint shows the logical class structure of the both server and client applications. Dependency viewpoint is used for explaining the dependencies inside the system. Information viewpoint is the viewpoint which explains the structure of data about the game and their state over the total game progress. Interaction viewpoint is explaining the interactions between modules in the game like user-client, client-server applications also the internal interactions between modules of the client and server. Finally the state dynamic viewpoint is used for explaining the game in a state described way. The game and the users will have their states coded in the server in our project. Hence this viewpoint is very suitable for our project. 4.6 Design Rationale Design choices are made according to some significant features like sustainability, integrating another project. It can be updateable according to stakeholders and users requirements. Each function in the software will be commented so that it can be understandable for the other developers and also they can change the code by help of these comments. 4.7 Design Languages Unified Modeling Language (UML) is selected as a part of design viewpoint specification. 5. Design Viewpoints 5.1 Introduction In this part, six main design viewpoints will be explained. Context viewpoint Logical viewpoint Dependency viewpoint 9

11 Information viewpoint Interaction viewpoint State dynamics viewpoint During the explanation of these viewpoints, UML diagrams will be used to increase understandability. 5.2 Context viewpoint Science Wars software context viewpoint shows the functions provided by design. There are basically three screens controlled by user. First one is log in screen. Functions in here are created after session started. Second one is lobby screen which is coming after log in. And the last one is game screen where player can use functions about game Log in Screen Figure 1 Login Screen Use Case Diagram Enter Username: After session started user can write his username in the specified area. Enter Password: After session started user can write his password in the specified area. Log In Button: After filled the blanks user can log in the game. Forgot Password: If user forgets his login information, he can ask for it. 10

12 5.2.2 Lobby Screen Figure 2 Lobby Screen Use Case Diagram Search Game: When user wants to play a game, he can use search game button. After that he can choose the science what he wants and gets in the queue where other players are waiting for a game. Unlock New Leaves on Science Tree: User can spend his points which he collects from games. He can unlock new minions, towers, upgrades or skills. After unlocked, he can use these features in next game. Chat: Users can speak with each other in lobby. Change Skills: User can changes and saves his skills which he will use in next game. Get Premium Account: User can buy a premium account and have some privileges from game Game Screen 11

13 Figure 3 Game Screen Use Case Diagram Create Minion: Player can create minions to attack his opponents. Build Tower: Player can build towers to destroy his opponents minions. Use Skill: Player can use special skills which he decided before the game is started. Upgrade Tower: Player can upgrade towers which he built. Upgrade Minion: Player can upgrade his available minions and improve their skills. Look At Map: Player can check around the map and look for what other players are doing. 5.3 Logical viewpoint In this part of the document the classes that are going to be implemented in the Science Wars project will be explained. All classes will be explained clearly below, with tables and diagrams. After the explanation of all the classes, relationships between them will be explained. 12

14 5.3.1 Design concerns Design elements Server Classes Science_Wars_Server NameSpace Purpose of this namespace is to keep the whole project together. All elements in the solution belong to this namespace. Runner Class Purpose of this class is to run the game indefinitely and step each entity on a predefined period. For example, every 30 milliseconds, runner class will call step functions of al Minions causing them to walk on their path for some distance. 13

15 Session Class Purpose of this class is to keep the connection between Engine and NetWorker.dll. If NetWorker.dll is replaced with some other socket programming library, the modification of this class only will be enough to adapt project to this change. password. User Class This class is used to represent connections that are authenticated with a valid username and 14

16 etc. Game Class Game class is the class that handles everything about the game: minions, missiles, towers, skills 15

17 Player Class Although Player is not instantiated from it, this class is an extension to the user class. Each user also becomes a player when s/he joins a game and this class includes the stats of the user concerning current game. 16

18 Boards Namespace Purpose of this namespace is to keep all the board implementations together. Boards.Board Abstract Class Purpose of this class to be an outline to the future boards to be implemented. No matter what kind of different boards we implement, each of these boards has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 17

19 Towers Namespace Purpose of this namespace is to keep all the tower implementations together. Towers.Tower Abstract Class Purpose of this class to be an outline to the future towers to be implemented. No matter what kind of different towers we implement, each of these towers has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 18

20 Towers.TowerNode Class TowerNodes are basically nodes of a Tower tree. Each child of a node means that the parent tower can be upgraded to its child tower. Minions Namespace Purpose of this namespace is to keep all the minion implementations together. Minions.Minion Abstract Class Purpose of this class to be an outline to the future minions to be implemented. No matter what kind of different minions we implement, each of these minions has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 19

21 Missiles Namespace Purpose of this namespace is to keep all the missile implementations together Missiles.Missile Abstract Class Purpose of this class to be an outline to the future missiles to be implemented. No matter what kind of different missiles we implement, each of these missiles has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. AreaEffects Namespace Purpose of this namespace is to keep all the area-effect implementations together. 20

22 AreaEffects.AreaEffect Abstract Class Purpose of this class to be an outline to the future AreaEffects to be implemented. No matter what kind of different AreaEffects we implement, each of these AreaEffects has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. Skills Namespace Purpose of this namespace is to keep all the skill implementations together. Skills.Skill Abstract Class Purpose of this class to be an outline to the future skills to be implemented. No matter what kind of different skills we implement, each of these skills has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. Queues Namespace 21

23 Purpose of this namespace is to keep all the queue implementations together. Queues.IPlayerQueue Interface Purpose of this interface to be an outline to the future queues to be implemented. No matter what kind of different queues we implement, each of these queues has to implement methods given in this interface. Queues.BasicPlayerQueue Class This is the simplest queue implementation. This class is going to be used to match 4 players and put them in a game. Messages Namespace Purpose of this namespace is to keep all the message implementations together. Messages.IMessage Interface This interface is used to define the most generic methods of a message. 22

24 Messages.IIncomingMessage Interface Purpose of this interface to be an outline to the future incoming-messages to be implemented. No matter what kind of different incoming-messages we implement, each of these incoming-messages has to implement methods given in this interface. Messages.IncomingMessageImp Abstract Class Purpose of this class is to implement the basic operations that each incoming message needs to implement. By using this class, we make sure that no duplicate codes included in the incoming message implementations. Messages.IOutgoingMessage Interface Purpose of this interface to be an outline to the future outgoing-messages to be implemented. No matter what kind of different outgoing-messages we implement, each of these outgoing-messages has to implement methods given in this interface. 23

25 Messages.OutgoingMessageImp Abstract Class Purpose of this class is to implement the basic operations that each outgoing message needs to implement. By using this class, we make sure that no duplicate codes included in the outgoing message implementations. Paths Namespace Purpose of this namespace is to keep all the path implementations together. Paths.IPath Interface Purpose of this interface to be an outline to the future paths to be implemented. No matter what kind of different outgoing-messages we implement, each of these paths has to implement methods given in this interface. ResourceManager Namespace 24

26 Purpose of this namespace is to keep all the entities related to resource loading together. ResourceManager.ResourceLoader Static Class Purpose of this class is to load all file based resources from disks for all the classes that implement IRequiresResource. ResourceManager.IRequiresResource Interface Purpose of this interface is to label a class that it has some resources to be loaded during the startup period of the server. ScienceTrees Namespace Purpose of this namespace is to keep all the entities related to science trees together. ScienceTrees.ScienceTree Abstract Class Purpose of this class is to implement the basic operations that each science-tree needs to implement. By using this class, we make sure that no duplicate codes included in the science-tree implementations. 25

27 ScienceTrees.PhysicsTree Class This class is one of the 3 ScienceTree implementations. It holds sciencenodes that includes tower and minion unlock options. ScienceTrees.BiologyTree Class This class is one of the 3 ScienceTree implementations. It holds sciencenodes that includes tower and minion unlock options. ScienceTrees.ChemistryTree Class This class is one of the 3 ScienceTree implementations. It holds sciencenodes that includes tower and minion unlock options. 26

28 ScienceTrees.ScienceNode Class This class is used to represent each node in Science Tree. GameUtilities Namespace Purpose of this namespace is to keep all the entities related to science trees together. GameUtilities.MinionPosition Class This class is used to keep information about the position of a minion on the map. GameUtilities.PathPosition Class This class is used to specify a point on a path. 27

29 GameUtilities.TowerSlots Class This class is used to keep the locations of the towers on a board. GameUtilities.TypeIdGenerator Static Class Purpose of this class is to make sure that entities are given proper ID s on both server and client so that both sides of the connection will know that they use the same language during the communication over network. 28

30 Helpers Namespace Purpose of this namespace is to keep all the helper classes together. Helpers.Chronos Static Class 29

31 This class contains functions to handle timing required operations. This class makes sure that server runes on a stable pace. Helpers.Vector3 Class This class is used to handle all kinds of 3-dimensional arithmetics including the calculations of minion positions and missile positions. 30

32 Client Classes Science_Wars_Client NameSpace Purpose of this namespace is to keep the whole project together. All elements in the solution belong to this namespace. Engine.Runner Class Purpose of this class is to run the game indefinitely and step each entity on a predefined period. For example, every 30 milliseconds, runner class will call step functions of al Minions causing them to walk on their path for some distance. 31

33 Engine.User Class This class is used to represent connections that are authenticated with a valid username and password. Client uses this class to provide chat and other social connections. Engine.UserMe Static Class This class includes every infomation related to the current logged-in user. This means SciencePoints, unlocked towers, unlocked minons, friendlist and so on. Since each client can only login to a single account at a given time, this class is static. 32 Engine.Player Class This class is used to represent each player in the current game.

34 Engine.PlayerMe Static Class This class is used to keep the data that is specific to the current player. Since each client can only login to a single account at a given time, this class is static. Engine.Game Static Class Game class is the class that handles everything about the game: minions, missiles, towers, skills etc. Since each client can only login to a single account at a given time, this class is static. 33

35 Engine.Boards Namespace Purpose of this namespace is to keep all the board implementations together. Boards.Board Abstract Class Purpose of this class to be an outline to the future boards to be implemented. No matter what kind of different boards we implement, each of these boards has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 34

36 Engine.Towers Namespace Purpose of this namespace is to keep all the tower implementations together. Towers.Tower Abstract Class Purpose of this class to be an outline to the future towers to be implemented. No matter what kind of different towers we implement, each of these towers has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 35

37 Towers.TowerNode Class TowerNodes are basically nodes of a Tower tree. Each child of a node means that the parent tower can be upgraded to its child tower. Engine.Minions Namespace Purpose of this namespace is to keep all the minion implementations together. Minions.Minion Abstract Class Purpose of this class to be an outline to the future minions to be implemented. No matter what kind of different minions we implement, each of these minions has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 36

38 Engine.Missiles Namespace Purpose of this namespace is to keep all the missile implementations together Missiles.Missile Abstract Class Purpose of this class to be an outline to the future missiles to be implemented. No matter what kind of different missiles we implement, each of these missiles has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 37

39 Engine.AreaEffects Namespace Purpose of this namespace is to keep all the area-effect implementations together. AreaEffects.AreaEffect Abstract Class Purpose of this class to be an outline to the future AreaEffects to be implemented. No matter what kind of different AreaEffects we implement, each of these AreaEffects has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. Engine.Skills Namespace Purpose of this namespace is to keep all the skill implementations together. Skills.Skill Abstract Class Purpose of this class to be an outline to the future skills to be implemented. No matter what kind of different skills we implement, each of these skills has to implement methods given in this class with abstract keyword and also include the attributes that this class includes. 38

40 Engine.Messages Namespace Purpose of this namespace is to keep all the message implementations together. Messages.IMessage Interface This interface is used to define the most generic methods of a message. Messages.IIncomingMessage Interface Purpose of this interface to be an outline to the future incoming-messages to be implemented. No matter what kind of different incoming-messages we implement, each of these incoming-messages has to implement methods given in this interface. Messages.IncomingMessageImp Abstract Class Purpose of this class is to implement the basic operations that each incoming message needs to implement. By using this class, we make sure that no duplicate codes included in the incoming message implementations. Messages.IOutgoingMessage Interface Purpose of this interface to be an outline to the future outgoing-messages to be implemented. No matter what kind of different outgoing-messages we implement, each of these outgoing-messages has to implement methods given in this interface. 39

41 Messages.OutgoingMessageImp Abstract Class Purpose of this class is to implement the basic operations that each outgoing message needs to implement. By using this class, we make sure that no duplicate codes included in the outgoing message implementations. Engine.Paths Namespace Purpose of this namespace is to keep all the path implementations together. Paths.IPath Interface Purpose of this interface to be an outline to the future paths to be implemented. No matter what kind of different outgoing-messages we implement, each of these paths has to implement methods given in this interface. Engine.ScienceTrees Namespace Purpose of this namespace is to keep all the entities related to science trees together. ScienceTrees.ScienceTree Abstract Class 40

42 Purpose of this class is to implement the basic operations that each science-tree needs to implement. By using this class, we make sure that no duplicate codes included in the science-tree implementations. ScienceTrees.PhysicsTree Class This class is one of the 3 ScienceTree implementations. It holds sciencenodes that includes tower and minion unlock options. ScienceTrees.BiologyTree Class This class is one of the 3 ScienceTree implementations. It holds sciencenodes that includes tower and minion unlock options. ScienceTrees.ChemistryTree Class This class is one of the 3 ScienceTree implementations. It holds sciencenodes that includes tower and minion unlock options. 41

43 ScienceTrees.ScienceNode Class This class is used to represent each node in Science Tree. Engine.GameUtilities Namespace Purpose of this namespace is to keep all the entities related to science trees together. GameUtilities.MinionPosition Class This class is used to keep information about the position of a minion on the map. GameUtilities.PathPosition Class This class is used to specify a point on a path. 42

44 GameUtilities.TowerSlots Class This class is used to keep the locations of the towers on a board. GameUtilities.TypeIdGenerator Purpose of this class is to make sure that entities are given proper ID s on both server and client so that both sides of the connection will know that they use the same language during the communication over network. 43

45 Engine.Helpers Namespace Purpose of this namespace is to keep all the helper classes together. Helpers.Chronos Static Class This class contains functions to handle timing required operations. This class makes sure that server runes on a stable pace. 44

46 Helpers.Vector3 Class This class is used to handle all kinds of 3-dimensional arithmetic including the calculations of minion positions and missile positions. Engine.IGUI Namespace Purpose of this namespace is to keep all the GUI interfaces together. IGUI.Graphics Static Class This class holds the classes that implement IGUI interfaces. These classes then represented to the engine for proper displaying of current game state. 45

47 IGUI.ILoginGUI Interface This interface includes the methods that are required to display the game state during LOGIN state. Engine uses an implementation of this interface to call the proper graphics functions. IGUI.ILobbyGUI Interface This interface includes the methods that are required to display the game state during LOBBY state. Engine uses an implementation of this interface to call the proper graphics functions. IGUI.IGameGUI Interface This interface includes the methods that are required to display the game state during GAME state. Engine uses an implementation of this interface to call the proper graphics functions. 46

48 IGUI.IStep Interface This interface is used to mark classes so that engine interacts with them. Step functions will be called each frame by the engine, causing graphics to proceed, updating the visuals. GUI Namespace Purpose of this namespace is to keep the GUI entities together and separate them from any Engine classes. GUI.EntityGUI Namespace Purpose of this namespace is to keep the GUI interfaces of game entities together. EntityGUI.IAreaEffectGUI Interface Purpose of this interface to be an outline to the future area-effect graphics classes to be implemented. No matter what kind of different area-effect graphics class we implement, each of these area-effect graphics classes has to implement methods given in this interface. EntityGUI.IBoardGUI Interface Purpose of this interface to be an outline to the future board graphics classes to be implemented. No matter what kind of different board graphics class we implement, each of these board graphics classes has to implement methods given in this interface. 47

49 EntityGUI.IMinionGUI Interface Purpose of this interface to be an outline to the future minion graphics classes to be implemented. No matter what kind of different minion graphics class we implement, each of these minion graphics classes has to implement methods given in this interface. EntityGUI.IMissileGUI Interface Purpose of this interface to be an outline to the future missile graphics classes to be implemented. No matter what kind of different missile graphics class we implement, each of these missile graphics classes has to implement methods given in this interface. EntityGUI.ISkillGUI Interface Purpose of this interface to be an outline to the future skill graphics classes to be implemented. No matter what kind of different skill graphics class we implement, each of these skill graphics classes has to implement methods given in this interface. EntityGUI.ITowerGUI Interface 48

50 Purpose of this interface to be an outline to the future tower graphics classes to be implemented. No matter what kind of different tower graphics class we implement, each of these tower graphics classes has to implement methods given in this interface. GUIHandler Class This class is used to make proper adjustments to bind the GUI and the Engine. LoginGUI Class This class is an implementation of ILoginGUI and it handles all the drawings that need to be done during LOGIN phase. 49

51 LobbyGUI Class This class is an implementation of ILobbyGUI and it handles all the drawings that need to be done during LOBBY phase. GameGUI Class This class is an implementation of IGameGUI and it handles all the drawings that need to be done during GAME phase Example languages 50

52 5.4 Dependency viewpoint In this section of document, the subsystem of the system and interconnections between those subsystems will be defined in detail. In this project, our system will have 5 main subsystems: Server Database Server Engine Networker Client Engine Client GUI The basic schema for these subsystems is shown below: Figure 4 Modules of the project Design elements In this section, each subsystem will be explained and connections among them will be shown in detail Server Database Subsystem 51

53 This subsystem shall responsible for storing the whole data in it and permitting server engine to access them. This subsystem basically controls the game and user data. There will be two kinds of user data. One is used to store login information of the user. The other one is used to store game related information of the user. Any access to the data will be done via interfaces between this subsystem and other subsystems. Those interfaces will be group into DAO. Any other subsystem will access to DAO in order to get data that it needs. By applying DAO layer to our subsystem, we will provide secure data access and also encapsulated subsystem Server Engine Subsystem This subsystem mainly deals with gathering client requests, answering request results, modifying data models and accessing to database. In this subsystem, firstly, client requests are come as a message and then processed. Each message has its own structure in this subsystem so that each message can reach any data model, can modify them and can do any database access in order to supply its own needs. As being main part of the server, this subsystem has a strong control over the server part. As a result of this, every action that may change anything on the data should be handled by this component Networker Subsystem In this subsystem, there will be two Networker DLLs, one is for the server and the other one is for the client. Each Networker DLL is part of this subsystem and will work in a synchronized state with other Networker DLL. In other words, it is guaranteed that every message sent by server has its corresponding structure in the client and vice versa. What this subsystem basically does is that it creates an interface between client and server so that interaction between server and client can be done easily and fully correctly. As a result of this, this subsystem will only interact with both Server Engine and Client Engine. Networker Subsystem has its own classes and interfaces in it. Server Engine and Client Engine use those interfaces in order to send and receive message. By means of this subsystem, in the future, if we need to change anything in the network part, we will be able to connect this new component to our whole system without any change. 52

54 Client Engine Subsystem This subsystem is very similar subsystem with Server Engine. Since it is responsible for most of the works in the Client, it will have very similar responsibility with the Server Engine. This subsystem can be separated into 2 parts: Message Handler IGUI Message Handler part is responsible for processing received message and sending a new request to Server. While it processes the message, this subsystem may response it by either sending a message to Server or calling a function in IGUI. IGUI is the interface between Server engine and Client GUI. IGUI is triggered by Message Handler to show an action to user or by Client GUI to send a request to Server Engine. In other words, IGUI is the key point between user interaction and data Client GUI Subsystem Last subsystem in our system is responsible for handling interaction between User and Client Engine. This is end-hand of our project. This part is completely separated from other subsystems except IGUI. This subsystem gathers information from Client Engine and controls all the graphical information and shows graphical results to User. It implements IGUI interface so that it can be in an act with Client Engine and also can be completely independent. In future, this subsystem can be replaced with any other GUI if and only if new GUI implements IGUI interface. By the power of this structure, we can easily change GUI according to user s wish Subsystem Connections The subsystem structure and connections between them will be investigated with respect to game scenes. Currently, we have only one game scene in which 4 players can compete in a circular game board. However; in the late part of the project, we shall have new game scenes and so new subsystem connections. 53

55 Below schema illustrates how 4 players represented as Client can interact with each other via server: Figure 5 Illustration of the network communication 5.5 Information viewpoint In our project, there will be only one type of persistent data storage. This persistent data storage will be taking care of user s information. In other words, there will be a database having two tables in which user related information are stored. These tables in the database are shown below: 54

56 Figure 6 Database tables From now on, the general structure of these tables, accessing methods and so on will be explained. General Structure In our database, there will be two tables which are UserLogin and UserData. UserLogin will be used to connect a user to server. After connecting a user to database, we will only use UserData table to access user s data. The reason of having two databases is mainly priority difference of these two tables. Because there is a password field of the UserLogin table, the accessing method to user s password should be topsecure. To make a connection top-secure, we will use SSL which needs more time than usual connection methods. However, all users related information stored in the UserData table need fast access in order to decrease database operation time so that game will not be delayed. Accessing to Database When the server application is opened, application connects to the database for a once by using API called MySQL Connector/NET. After that, when a user is connected, we will check username password pair by accessing UserLogin table and if the signing in is successful then we will read user related datas from UserData table. As a result of this operation, we will be able to load and use user data. Changing the Database 55

57 When the server application is wanted to be closed, application writes to the database by using same API used to access to database. The write operation will be done only when server is wanted to be closed. However; in order to prevent from losing information in case of electricity or any external problem, we will write the information to database in every 10 minutes interval. Security of the Database Because we are storing user passwords in the database, there should be encrypted connection to the database so that passwords and other important data stored securely. In order to protect our server and database, we will use SSL. However; due to high cost of SSL, we will only use it when user tries to connect to server. In the other database accesses, we do not need to secure connection. 5.6 Interaction viewpoint Design concerns Science Wars is a multiplayer real-time strategy game. Science wars is a client-server type application. The client and server will have their own network modules to talk interact with each other. The client and server will use the Networker.dll which is coded by Bekir Öztürk. Networker.dll is a network library with great capabilities which will help the team to achieve client - server side semantics easily. The interaction between server and client will be explained in this section with the help of some UML sequence diagrams Design elements Login Interaction 56

58 Figure 7 Login Interaction The above figure shows the login interaction between the Client and the Server side. The client GUI module is responsible for catching the login attempt then telling the Client Engine that the user wants to login, then the Client Engine is responsible interacting with the Server and making semantically correct messaging protocols. The reason why Client GUI and Client Engine modules are separated is that we want to reuse the Client Engine module when we put a new GUI interface to the client like we will need to do for different platforms Enter Queue Interaction 57

59 Figure 8 EnterQueue Interaction The above sequence diagram shows what kind of interaction happens between server and client applications. The user (client) could want to enter game queue to play a game with other players. The user can enter the queue with three different points of his/her own. There will be Physics, Biology and Chemistry elo points for each user and the user will place the user to the game queue according to its elo points. This sequence diagram above shows the process of entering game queue for a player in the Lobby. Only the players in the lobby can enter to the game queue Game Found Interaction 58

60 Figure 9 Match Found Interaction The above diagram shows what happens when the server founds a suitable game for a set of Users. The above diagram is showing the sequence of events for a user, the only difference of what happens is the server is responsible for working with multiple clients. The above diagram is showing the case when the User says Yes to a match found request. However when the User says No to the game request the user is going to be removed from the queue and the game will not start, but the other users who have said Yes to the game request is going to be placed to the queue again Build Tower Interaction 59

61 Figure 10 Build Tower Interaction The above diagram shows what happens when a user wants to build a new tower into his/her game area. The Client GUI is responsible for capturing the request and informing the Client Engine that the user wanted to create a new tower. Then the Client Engine is sending this request to the Server Engine so that it can handle this request. The Server Engine checks whether the user is able to build the new tower or not. If the user is able to build that tower the server will inform the client that he/she can have successfully built that tower. After doing that the Server Engine informs other clients which is connected to the same game as the requesting user. If the user is not able to build that tower the server will inform only the requesting user about the process Spawn Minion Interaction 60

62 Figure 11 Spawn Minion Interaction The above diagrams show what happens when a user wants to spawn a new minion. The Client GUI is responsible for capturing the request and informing the Client Engine that the user wanted to spawn a new minion. Then the Client Engine is sending this request to the Server Engine so that it can handle this request. The Server Engine checks whether the user is able to spawn a new minion or not. If the user is able to spawn that minion the server will inform the client that he/she can have successfully spawned that minion. After doing that the Server Engine informs other clients which is connected to the same game as the requesting user. If the user is not able to spawn that minion the server will inform only the requesting user about the process Upgrade Tower Interaction 61

63 Figure 12 Upgrade Tower Interaction The above diagrams show what happens when a user wants to upgrade a tower. The Client GUI is responsible for capturing the request and informing the Client Engine that the user wanted to upgrade a tower. Then the Client Engine is sending this request to the Server Engine so that it can handle this request. The Server Engine checks whether the user is able to upgrade the tower or not. If the user is able to upgrade that tower the server will inform the client that he/she can have successfully upgraded that tower. After doing that the Server Engine informs other clients which is connected to the same game as the requesting user. If the user is not able to upgrade that tower the server will inform only the requesting user about the process Upgrade Minion Interaction 62

64 Figure 13 Upgrade Minion Interaction The above diagrams show what happens when a user wants to upgrade a minion. The Client GUI is responsible for capturing the request and informing the Client Engine that the user wanted to upgrade a minion. Then the Client Engine is sending this request to the Server Engine so that it can handle this request. The Server Engine checks whether the user is able to upgrade the minion or not. If the user is able to upgrade that minion the server will inform the client that he/she can have successfully upgraded that minion. After doing that the Server Engine informs other clients which is connected to the same game as the requesting user. If the user is not able to upgrade that minion the server will inform only the requesting user about the process Use Skill Interaction 63

65 Figure 14 Use Skill Interaction The above diagrams show what happens when a user wants to use a skill. The Client GUI is responsible for capturing the request and informing the Client Engine that the user wanted to use a skill. Then the Client Engine is sending this request to the Server Engine so that it can handle this request. The Server Engine checks whether the user is able to use that skill or not. If the user is able to use that skill the server will inform the client that he/she can have successfully used that skill. After doing that the Server Engine informs other clients which is connected to the same game as the requesting user and Server Engine sends the related messages which affect the other user s status. If the user is not able to use that skill the server will inform only the requesting user about the process. 64

66 5.7 State dynamics viewpoint Figure 15 State Diagram of the Client 65

67 An illustration of the defense system is given with the above state diagram. Client: Client is the state where session is started. Login: After session started, user can log in to the system if he enters the correct usernamepassword combination. Then, user will successfully be in the lobby. Lobby: Lobby is the state where users can unlock new towers and minions, upgrade their properties, change skills, chat with other players and join to the queue. Queue: When user selected the join queue in lobby, the search for suitable opponents will start. In this part we are checking for science points and win/lose rates. Then we can create a balanced game for players. ReadyWait: When suitable game is found, users get in the ReadyWait state. If every player accepts the game, it will start, otherwise players will return to queue and continue searching for another game. Loading: After every user accepts the game then the players will wait for others to connect. StartCountDown: In this state, every player loaded and the game is ready to start. We have a short countdown here and after that, the game will start. PlayTime: After game started players can use in game functions like create minion, build tower etc. during the game. AnimationWait: If any player died, game stops for a moment and every player watches a little animation about destroying the area of that player. EndGame: When every player except winner loses, game will end, and all players will return to the lobby. Disconnect: After getting back to lobby, players can spend their points, chat with others and play another game. When a player decided to log out, his session will end. 66

68 6 Conclusion In this design document, we provide details about the software architecture and initial design of the project Science Wars and also implementation details of the project with respect to viewpoints, modules and data design. This document is intended to be used as a reference to the both stakeholders defined before in this document and also to the team Leş Koding. 67

SOFTWARE DESIGN DESCRIPTION

SOFTWARE DESIGN DESCRIPTION 2013 Leş Koding Baran KÜÇÜKGÜZEL Batuhan TAŞDÖVEN Ali Barış UZUNER Bekir ÖZTÜRK SOFTWARE DESIGN DESCRIPTION This document is prepared by Leş Koding s members; the document is about software design description

More information

TETRIS TEAM SMART DRIVER ASSISTANT SOFTWARE DESIGN DESCRIPTIONS. METU-Computer Engineering. 0 P a g e

TETRIS TEAM SMART DRIVER ASSISTANT SOFTWARE DESIGN DESCRIPTIONS. METU-Computer Engineering. 0 P a g e METU-Computer Engineering TETRIS TEAM SMART DRIVER ASSISTANT SOFTWARE DESIGN DESCRIPTIONS Team Members: Seymur Mammadli Shkelim Memmola Nail Ibrahimli Mehmet Kurhan 0 P a g e PREFACE This Document contains

More information

Software Design Description Report

Software Design Description Report 2015 Software Design Description Report CodeBenders Haldun Yıldız 1819663 Onur Aydınay 1819002 Deniz Can Yüksel 1819697 Ali Şihab Akcan 1818871 TABLE OF CONTENTS 1 Overview... 3 1.1 Scope... 3 1.2 Purpose...

More information

SYSTEM REQUIREMENTS SPECIFICATIONS

SYSTEM REQUIREMENTS SPECIFICATIONS 2013 Leş Koding Baran Küçükgüzel Batuhan Taşdöven Ali Barış Uzuner Bekir Öztürk SYSTEM REQUIREMENTS SPECIFICATIONS This document is prepared by Leş Koding s members; the document is about system requirements

More information

MIDDLE EAST TECHNICAL UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING. Vitriol. Software Design Document GROUP MALLORN

MIDDLE EAST TECHNICAL UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING. Vitriol. Software Design Document GROUP MALLORN MIDDLE EAST TECHNICAL UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING Software Design Document GROUP MALLORN Merve Bozo Yaşar Berk Arı Sertaç Kağan Aydın Mustafa Orkun Acar Team Leader:

More information

SOFTWARE DESIGN DESCRIPTIONS DOCUMENT

SOFTWARE DESIGN DESCRIPTIONS DOCUMENT 1.12.2013 CENG 490 SOFTWARE DESIGN DESCRIPTIONS DOCUMENT Group 10 The Cereal Killers Members and Signatures Member Signature Date Yaşar Barış ULU 1.12.2013 Kemal Çağın GÜLŞEN 1.12.2013 Mert ERGUN 1.12.2013

More information

SOFTWARE DESIGN DOCUMENT GROUP SUCH CARPOOL SYSTEM

SOFTWARE DESIGN DOCUMENT GROUP SUCH CARPOOL SYSTEM SOFTWARE DESIGN DOCUMENT GROUP SUCH CARPOOL SYSTEM OVERVIEW TABLE OF CONTENT 1. OVERVIEW... 7 1.1. SCOPE... 7 1.2. PURPOSE... 7 1.3. INTENDED AUDIENCE... 7 2. DEFINITIONS... 8 3. CONCEPTUAL MODEL FOR SOFTWARE

More information

SOFTWARE DESIGN DOCUMENT

SOFTWARE DESIGN DOCUMENT SOFTWARE DESIGN DOCUMENT Version: 1.1 Date: 22.12.2013 MobileLibrary Project Prepared By: HebeleGubeleGom Team Ali Sahin Ali Cinar Yunus Emre Avci Upol Ryskulova 1 Preface This document contains the system

More information

SOFTWARE DESIGN DESCRIPTION OF MUSIC RECOMMENDATION SYSTEM

SOFTWARE DESIGN DESCRIPTION OF MUSIC RECOMMENDATION SYSTEM SOFTWARE DESIGN DESCRIPTION OF MUSIC RECOMMENDATION SYSTEM CENG HISTORY X HACER NİHAL TARKAN AYŞE AYBÜKE TAŞDİREK ASENA OK BİRANT ALTINEL 1 PREFACE This document contains the system design information

More information

Software Design Description

Software Design Description Drogba Inc. Software Design Description Ali Hopyar 1746056 Fatih Hafızoğlu 1746049 Halim Kaya 1746148 Volkan Gümüş 1746007 Table of Contents 1 Overview... 3 1.1 Scope... 3 1.2 Purpose... 3 1.3 Intended

More information

SOFTWARE DESIGN DESCRIPTION

SOFTWARE DESIGN DESCRIPTION MIDDLE EAST TECHNICAL UNIVERSITY COMPUTER ENGINEERING DEPARTMENT SOFTWARE DESIGN DESCRIPTION Group Name : Smeshers Group Members : Uğur Yanıkoğlu Furkan Odluyurt Dicle Ayzit Emre Barış Advisors : Yusuf

More information

Middle East Technical University Department of Computer Engineering RECOMMENDER SYSTEM. Software Design Description Document V1.1.

Middle East Technical University Department of Computer Engineering RECOMMENDER SYSTEM. Software Design Description Document V1.1. Middle East Technical University Department of Computer Engineering RECOMMENDER SYSTEM Software Design Description Document V1.1 Dcengo Unchained DuyguKabakcı 1746064 Işınsu Katırcıoğlu 1819432 Sıla Kaya

More information

SOFTWARE DESIGN DESCRIPTION

SOFTWARE DESIGN DESCRIPTION MUSINS-PRO SOFTWARE DESIGN DESCRIPTION CENG490 Yağmur ERTAŞ - 1819333 Duygu ABADAN - 1818863 Baler İLHAN - 1819853 Anıl ARPACI 1818954 1/4/2015 Table of Contents 1. Overview... 3 1.1 Scope... 3 1.2 Purpose...

More information

HUMAN BODY TRACKING SYSTEM

HUMAN BODY TRACKING SYSTEM HUMAN BODY TRACKING SYSTEM Software Design Description Document V1.1 Mindless Rookies Zehra Deniz Çelik Burak Araz Cem Aydın Yalçın Savrun Revision History Date Revision Comment 03.01.2015 1.0 Created

More information

Guideal SOFTWARE TEST DOCUMENT. (In accordance with IEEE ) v1.0

Guideal SOFTWARE TEST DOCUMENT. (In accordance with IEEE ) v1.0 Guideal SOFTWARE TEST DOCUMENT (In accordance with IEEE 829-2008 ) v1.0 Malum Emre Külah 1881358 Arif Görkem Özer 1881747 Yusuf Mücahit Çetinkaya 1881705 Semih Aktaş 1880913 Version Control History: Version

More information

Smart Driver Assistant Software Requirements Specifications

Smart Driver Assistant Software Requirements Specifications 2016 Software Requirements Specifications SEYMUR MAMMADLI SHKELQIM MEMOLLA NAIL IBRAHIMLI MEHMET KURHAN MIDDLE EAST TECHNICAL UNIVERSITY Department Of Computer Engineering Preface This document contains

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

MIDDLE EAST TECHNICAL UNIVERSITY COMPUTER ENGINEERING DEPARTMENT

MIDDLE EAST TECHNICAL UNIVERSITY COMPUTER ENGINEERING DEPARTMENT MIDDLE EAST TECHNICAL UNIVERSITY COMPUTER ENGINEERING DEPARTMENT ONLINE BARTER MARKET SOFTWARE REQUIREMENTS SPECIFICATIONS (V 1.0) LONESOME CODEBOYS Ali Can BATUR 1745793 Donny Irawan BULHADIE 1702240

More information

11.0 Random Assignment

11.0 Random Assignment 11.0 Random Assignment Random assignment is the procedure by which enrolled youth will be assigned to either the Usual Services or ASPIRE Services groups. Random assignment is performed in a computer system,

More information

Software Requirement Specification

Software Requirement Specification Software Requirement Specification Publish/Subscribe System Group-03 Atul Jangra 2010CS50277 Dushyant Behl 2010CS50282 Shantanu 2010CS50295 Utkarsh 2010CS50299 1 1. Introduction Table of Content 1.1 Purpose...

More information

Aim of this paper is to describe the motivation and the concept of the Decibel project and related technologies.

Aim of this paper is to describe the motivation and the concept of the Decibel project and related technologies. Decibel: Short Concept Proposal Aim of this paper is to describe the motivation and the concept of the Decibel project and related technologies. Decibel Motivation: In the near future, almost all communication

More information

Property and Copyright Information. Notice

Property and Copyright Information. Notice 1.0 Administrator Panel END USER DOCUMENTATION This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for

More information

Turn-Based Online Games

Turn-Based Online Games University of Manchester School of Computer Science Project Report 2015 Turn-Based Online Games Author: Rui Jorge Clara Teixeira University ID: 8501263 Supervisor: Dr Rizos Sakellariou Word Count: 8798

More information

Software Design Specification

Software Design Specification Software Design Specification for Document Version Prepared by Group Name:

More information

CLIENT ONBOARDING PLAN & SCRIPT

CLIENT ONBOARDING PLAN & SCRIPT CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in

More information

CLIENT ONBOARDING PLAN & SCRIPT

CLIENT ONBOARDING PLAN & SCRIPT CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all

More information

D6.1. Project website and internal IT communication infrastructure HINT. 36 months FP7/

D6.1. Project website and internal IT communication infrastructure HINT. 36 months FP7/ D6.1 Project website and internal IT communication infrastructure Project number: 317930 Project acronym: Project title: HINT Start date of the project: 1 st October, 2012 Duration: Programme: Holistic

More information

Software Design Document for Bits Bazaar

Software Design Document for Bits Bazaar Software Design Document for Bits Bazaar Prepared by Codaholics Software Systems, BITS Pilani 19-10-2014 1 Table of contents 1. Introduction 3 1.1 Purpose 3 1.2 Scope 3 1.3 Overview 3 2. System Overview

More information

Homework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is:

Homework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is: Homework 1 Hadachi&Lind October 25, 2017 Must Read: 1. Deadline for doing homework is 3 weeks starting from now 2017.10.25 due date is: 2017.11.15 5:59:59 EET 2. For any delay in submitting the homework

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/04-023 revision 2 Date: September 06, 2005 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular

More information

Schedule User Guide PowerSchool Student Information System

Schedule User Guide PowerSchool Student Information System PowerSchool Student Information System Document Properties Schedule User Guide Copyright Owner 2004 Apple Computer, Inc. All rights reserved. This document is the property of Apple Computer, Inc. and is

More information

Software Requirements Specification (IEEE Std )[1] V1.0. NoNET. Prepared by FixIT

Software Requirements Specification (IEEE Std )[1] V1.0. NoNET. Prepared by FixIT Software Requirements Specification (IEEE Std 830-1998)[1] V1.0 NoNET Prepared by FixIT Ceyda Tosun-1819580 Gülşah Sabırsız-1881424 Gulnaz Shaidolda-1784578 METU - Department of Computer Engineering CENG

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Spontania Administrators Manual

Spontania Administrators Manual Spontania Administrators Manual ClearOne 5225 Wiley Post Way Suite 500 Salt Lake City, UT 84116 Telephone 1.800.945.7730 1.801.975.7200 Spontania Support 801-974-3612 TechSales 1.800.705.2103 FAX 1.801.977-0087

More information

CTI Higher Certificate in Information Systems (Internet Development)

CTI Higher Certificate in Information Systems (Internet Development) CTI Higher Certificate in Information Systems (Internet Development) Module Descriptions 2015 1 Higher Certificate in Information Systems (Internet Development) (1 year full-time, 2½ years part-time) Computer

More information

Software Requirements Specification OPTIMIZED MOODLE LEARNING MANAGEMENT SYSTEM WITH POLICY ENFORCEMENT

Software Requirements Specification OPTIMIZED MOODLE LEARNING MANAGEMENT SYSTEM WITH POLICY ENFORCEMENT Software Requirements Specification For OPTIMIZED MOODLE LEARNING MANAGEMENT SYSTEM WITH POLICY ENFORCEMENT Version 1.0 Prepared by Priyanka Manchanda and Shabna T.R. GROUP 2 - OPTIMIZING MOODLE LMS TO

More information

Software Requirements Specification Version September, 2009

Software Requirements Specification Version September, 2009 Software Requirements Specification Version 1.0 24 September, 2009 Web Accessible Alumni Database Software Engineering Research Team, Faculty of Automatic Control and Computers, Polytechnic University

More information

ADMINISTRATOR PORTAL MANUAL

ADMINISTRATOR PORTAL MANUAL ADMINISTRATOR PORTAL MANUAL TABLE OF CONTENTS SIGNING IN... 5 HOME SCREEN... 6 GENERAL SETTINGS... 7 WORKING HOURS TAB... 9 HOLIDAYS TAB... 11 Shortened hours for the Holidays... 12 Holiday Message...

More information

PREFACE. This is the reference guide for the Month-End Module for IQ Business & IQ Enterprise software systems.

PREFACE. This is the reference guide for the Month-End Module for IQ Business & IQ Enterprise software systems. MONTH-END MODULE PREFACE This is the reference guide for the Month-End Module for IQ Business & IQ Enterprise software systems. The document will aid in understanding and configuration of the Month-End

More information

Software Life-Cycle Models

Software Life-Cycle Models Software Life-Cycle Models CMPSC 487 Lecture 03 Topics: UML Class Diagram Rosenburg Chap 2. Domain Modeling A. UML: Unified Modeling Language UML is a general-purpose, developmental, modeling language

More information

User Guide Preface Readme Audience Vocabulary Navigation

User Guide Preface Readme Audience Vocabulary Navigation User Guide AJ De Las Alas, Tiffany Chan, Stephanie Tran, Viet Tran 1.0 Preface 1.1 Readme DELTA is an application that belongs to Julie Schweitzer s research group. After the application is opened, the

More information

Developing ASP.NET MVC 5 Web Applications

Developing ASP.NET MVC 5 Web Applications Developing ASP.NET MVC 5 Web Applications Course 20486C; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools

More information

Call Center v2.0 for IPBRICK Guide

Call Center v2.0 for IPBRICK Guide Call Center v2.0 for IPBRICK Guide iportalmais October 10, 2013 1 1 Introduction Organizations use call centers as a way to interact and build relationships with their customers. Being aware of the importance

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 0 Date: March 0, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) FlowerSeeker Team 05 Name Eder Figueroa Sophia Wu Doris Lam Hiram Garcia Roles Primary Role: Project Manager/ Implementer. Secondary Role: Tester. Primary

More information

By Kırmızı Mustafa Ozan Çelik Ozan Tahiroğlu Özgür Saygın Bican Seçkin Can Şahin

By Kırmızı Mustafa Ozan Çelik Ozan Tahiroğlu Özgür Saygın Bican Seçkin Can Şahin By Kırmızı Mustafa Ozan Çelik 1746544 Ozan Tahiroğlu 1502681 Özgür Saygın Bican 1752450 Seçkin Can Şahin 1631365 1 Table of Contents Figure List... 3 1. Introduction... 4 1.1 Problem Definition... 4 1.2

More information

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Developing ASP.NET MVC 4 Web Applications Course 20486B; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5

More information

Applying for Jobs Online

Applying for Jobs Online Applying for Jobs Online Hi, I m Sarah. I m here to show you how to apply for a job using an online application form. Most jobs now require you to fill out an application on the Internet. In this course

More information

Group Name: Team Epsilon Max Hinson Jhon Faghih Nassiri

Group Name: Team Epsilon Max Hinson Jhon Faghih Nassiri Software Requirements Specification for UCSB 360 Version 1.2 Prepared by Group Name: Team Epsilon Max Hinson 4426771 maxwellhinson@gmail.com Jhon Faghih Nassiri 4111274 jfaghihnassiri@gmail.com Luke Buckland

More information

Circular Logic. Robotic Tram Data Collection System Software Configuration Management Plan Version 2.3 4/8/ Circular Logic

Circular Logic. Robotic Tram Data Collection System Software Configuration Management Plan Version 2.3 4/8/ Circular Logic Circular Logic Robotic Tram Data Collection System Software Configuration Management Plan Version 2.3 4/8/2008 2008 Circular Logic Document Control Approval The Guidance Team and the customer will approve

More information

Open eclass Asynchronous elearning Platform

Open eclass Asynchronous elearning Platform Open eclass Asynchronous elearning Platform Student Manual The Open eclass platform is a complete Course Management System. It is the solution offered by the Greek Academic Network GUnet to support Asynchronous

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 2 Date: May 22, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2 F5 BIG-IQ Centralized Management: Local Traffic & Network Version 5.2 Table of Contents Table of Contents BIG-IQ Local Traffic & Network: Overview... 5 What is Local Traffic & Network?... 5 Understanding

More information

LEARN TO DEVELOP A LIVE PROJECT AS PER IT STANDARDS. Module 1: What we are going to Learn. Prerequisites

LEARN TO DEVELOP A LIVE PROJECT AS PER IT STANDARDS. Module 1: What we are going to Learn. Prerequisites LEARN TO DEVELOP A LIVE PROJECT AS PER IT STANDARDS Module 1: What we are going to Learn Here we will explain you everything you are going to learn in this course. This module contains an introduction

More information

If you need help with Skype Connect, you can find more answers in our Skype Connect FAQs section: support.skype.com/category/skype_connect

If you need help with Skype Connect, you can find more answers in our Skype Connect FAQs section: support.skype.com/category/skype_connect About this guide Skype Connect provides connectivity between your business and the Skype community. By adding Skype Connect to your existing SIP-enabled PBX, your business could save on your communication

More information

COMP6471 WINTER User-Centered Design

COMP6471 WINTER User-Centered Design COMP6471 WINTER 2003 User-Centered Design Instructor: Shahriar Ameri, Ph.D. Student: Pedro Maroun Eid, ID# 5041872. Date of Submission: Monday, March 10, 2003. (Week 9) Outline Outline... 2 ABSTRACT...3

More information

Software Design Document (SDD) Template (summarized from IEEE STD 1016)

Software Design Document (SDD) Template (summarized from IEEE STD 1016) Software Design Document (SDD) Template (summarized from IEEE STD 1016) Software design is a process by which the software requirements are translated into a representation of software components, interfaces,

More information

Introduction to Change and Configuration Management

Introduction to Change and Configuration Management CHAPTER 1 Introduction to Change and Configuration Management Cisco Prime Network Change and Configuration Management provides tools that allow you to manage the software and device configuration changes

More information

Essentials of design management with Rational Software Architect

Essentials of design management with Rational Software Architect Rational Self-paced training workbook Essentials of design management with Rational Software Architect Lab exercises (Self-paced training) Self-paced training workbook Self-paced training workbook Essentials

More information

ASP.NET MVC Training

ASP.NET MVC Training TRELLISSOFT ASP.NET MVC Training About This Course: Audience(s): Developers Technology: Visual Studio Duration: 6 days (48 Hours) Language(s): English Overview In this course, students will learn to develop

More information

WWW Applications for an Internet Integrated Service Architecture

WWW Applications for an Internet Integrated Service Architecture WWW Applications for an Internet Integrated Service Architecture T. V. Do, B. Kálmán, Cs. Király, Zs. Mihály, Zs. Molnár, Zs. Pándi Department of Telecommunications Technical University of Budapest Fax:

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

Bilkent University. CS 319 Object-Oriented Software Engineering. Fall Logic Design and Breadboard Simulator. Final Report 21 November 2009

Bilkent University. CS 319 Object-Oriented Software Engineering. Fall Logic Design and Breadboard Simulator. Final Report 21 November 2009 Bilkent University CS 319 Object-Oriented Software Engineering Fall 2009 Logic Design and Breadboard Simulator Final Report 21 November 2009 Group #2 20602112 korpeoglu@ug.bilkent.edu.tr Erdinç Körpeoğlu

More information

CTI Short Learning Programme in Internet Development Specialist

CTI Short Learning Programme in Internet Development Specialist CTI Short Learning Programme in Internet Development Specialist Module Descriptions 2015 1 Short Learning Programme in Internet Development Specialist (10 months full-time, 25 months part-time) Computer

More information

WHITEPAPER. Security overview. podio.com

WHITEPAPER. Security overview. podio.com WHITEPAPER Security overview Podio security White Paper 2 Podio, a cloud service brought to you by Citrix, provides a secure collaborative work platform for team and project management. Podio features

More information

Sage Construction Anywhere Setup Guide

Sage Construction Anywhere Setup Guide Sage Construction Anywhere Setup Guide Sage 100 Contractor Sage University This is a publication of Sage Software, Inc. Copyright 2014 Sage Software, Inc. All rights reserved. Sage, the Sage logos, and

More information

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt What

More information

COURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS

COURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS ABOUT THIS COURSE In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will be on coding activities that enhance the

More information

User Manual. Helios PTT for Android

User Manual. Helios PTT for Android User Manual Helios PTT for Android Technical Support: Tel.: 1 250 762 7540 (8 a.m. to 5 p.m. Pacific time) E-Mail: support@heliosglobaltech.com Version 1.0 Table of contents: 1 Technical Support... 3 2

More information

1: Specifying Requirements with Use Case Diagrams

1: Specifying Requirements with Use Case Diagrams Outline UML Design Supplement 1: Specifying Requirements with Use Case Diagrams Introduction Use Case Diagrams Writing Use Cases Guidelines for Effective Use Cases Slide adapted from Eran Toch s lecture

More information

Hitachi ID Password Manager Telephony Integration

Hitachi ID Password Manager Telephony Integration Hitachi ID Password Manager Telephony Integration 2016 Hitachi ID Systems, Inc. All rights reserved. Contents 1 Introduction 1 2 Functional integration 2 2.1 Self-service password reset....................................

More information

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1 Basic Concepts :- 1. What is Data? Data is a collection of facts from which conclusion may be drawn. In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished

More information

Author: Group 03 Yuly Suvorov, Luke Harvey, Ben Holland, Jordan Cook, Michael Higdon. All Completed SRS2 Steps

Author: Group 03 Yuly Suvorov, Luke Harvey, Ben Holland, Jordan Cook, Michael Higdon. All Completed SRS2 Steps Software Requirements Document for Graffiti Author: Group 03 Yuly Suvorov, Luke Harvey, Ben Holland, Jordan Cook, Michael Higdon Version Date Author Change 0.1 09/13/ SM Initial Document 07 0.2 09/22/

More information

Object- Oriented Design with UML and Java Part I: Fundamentals

Object- Oriented Design with UML and Java Part I: Fundamentals Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html

More information

Security Administrator Guide

Security Administrator Guide September 2017 Security Administrator Guide 2017 Arbitration Forums, Inc. All rights reserved. No parts of this work may be reproduced in any form or by any means graphic, electronic, or mechanical, including

More information

Product Documentation SAP Business ByDesign February Marketing

Product Documentation SAP Business ByDesign February Marketing Product Documentation PUBLIC Marketing Table Of Contents 1 Marketing.... 5 2... 6 3 Business Background... 8 3.1 Target Groups and Campaign Management... 8 3.2 Lead Processing... 13 3.3 Opportunity Processing...

More information

System and Software Architecture Description

System and Software Architecture Description System and Software Architecture Description (SSAD) Mental Math Team - 7 Chang Yu Prototyper, Requirements Engineer Isha Agarwal Prototyper, Life Cycle Planner, Implementer Jingxing Cheng Implementer Kajal

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Configuring Dial-on-Demand Routing

Configuring Dial-on-Demand Routing C H A P T E R 7 Configuring Dial-on-Demand Routing This chapter describes how to configure your communication server for dial-on-demand routing (DDR) and dial backup. For a complete description of the

More information

Senior Project: Calendar

Senior Project: Calendar Senior Project: Calendar By Jason Chin June 2, 2017 Contents 1 Introduction 1 2 Vision and Scope 2 2.1 Business Requirements...................... 2 2.1.1 Background........................ 2 2.1.2 Business

More information

Interskill Learning Management System(LMS)

Interskill Learning Management System(LMS) Interskill Learning Management System(LMS) Student Guide Your Guide to Interskill Learning s Online Training Systems www.interskill.com Table of Contents Interskill Interskill LMS Overview... 3 The Login

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) FlowerSeeker Team 05 Name Eder Figueroa Sophia Wu Doris Lam Hiram Garcia Roles Primary Role: Project Manager/ Implementer. Secondary Role: Tester. Primary

More information

UCT Application Development Lifecycle. UCT Business Applications

UCT Application Development Lifecycle. UCT Business Applications UCT Business Applications Page i Table of Contents Planning Phase... 1 Analysis Phase... 2 Design Phase... 3 Implementation Phase... 4 Software Development... 4 Product Testing... 5 Product Implementation...

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

Topics. Overview- The UML Functional Model. Structural Model. Behavioral Models. Use Case Diagram (essential and system)

Topics. Overview- The UML Functional Model. Structural Model. Behavioral Models. Use Case Diagram (essential and system) Topics Overview- The UML Functional Model Use Case Diagram (essential and system) Structural Model Class/object, Component and Deployment Diagram Behavioral Models Activity, State chart, sequence /collaboration

More information

Factotum Sep. 24, 2007

Factotum Sep. 24, 2007 15-412 Factotum Sep. 24, 2007 Dave Eckhardt 1 Factotum Left Out (of P9/9P Lecture) The whole authentication thing There is an auth server much like a Kerberos KDC There is an authentication file system

More information

20486C: Developing ASP.NET MVC 5 Web Applications

20486C: Developing ASP.NET MVC 5 Web Applications 20486C: Developing ASP.NET MVC 5 Web Course Details Course Code: Duration: Notes: 20486C 5 days This course syllabus should be used to determine whether the course is appropriate for the students, based

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) Perfecto Coffee Xpress Consistent Perfection Team 5 Chloe Good Yekaterina Glazko Edwards Hays Yucheng Hsieh Atreya Lahiri Jaimin Patel Yun Shen Andrew

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) Fuppy Team No.7 Krupa Patel (Product Manager) Adil Assouab (Requirement Engineer) Yiyuan Chen (Software Architecture) Praveen Chander (Designer/Prototyper)

More information

Detailed Design. Java Problem Repository & Education Platform JPREP

Detailed Design. Java Problem Repository & Education Platform JPREP Team Members: Luke Greiner Denis Kalic Abigail McCarthy Robert Tateo Nguyen Truong Patrick White Detailed Design Java Problem Repository & Education Platform JPREP Revision: 1.1 Date: 3/07/14 1 D e l t

More information

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram After studying this chapter you should be able to: Define an object. Understand the terms

More information

Administrator Manual. Last Updated: 15 March 2012 Manual Version:

Administrator Manual. Last Updated: 15 March 2012 Manual Version: Administrator Manual Last Updated: 15 March 2012 Manual Version: 1.6 http://www.happyfox.com Copyright Information Under the copyright laws, this manual may not be copied, in whole or in part. Your rights

More information

Microsoft Developing ASP.NET MVC 4 Web Applications

Microsoft Developing ASP.NET MVC 4 Web Applications 1800 ULEARN (853 276) www.ddls.com.au Microsoft 20486 - Developing ASP.NET MVC 4 Web Applications Length 5 days Price $4290.00 (inc GST) Version C Overview In this course, students will learn to develop

More information

Group: 3D S Project: Media Server Document: SRS Date: January Introduction. 1.1 Purpose of this Document

Group: 3D S Project: Media Server Document: SRS Date: January Introduction. 1.1 Purpose of this Document Group: 3D S Project: Media Server Document: SRS Date: January 28 2005 1. Introduction 1.1 Purpose of this Document We will create a server application to stream DVD/CD content to a client on a home network.

More information

California State University CECS_453. Mobile Application Development. Ankush Bhandare Darren Chen Erick Ortiz Said Alhinai Sujeeth Panicker

California State University CECS_453. Mobile Application Development. Ankush Bhandare Darren Chen Erick Ortiz Said Alhinai Sujeeth Panicker California State University CECS_453 Mobile Application Development Ankush Bhandare Darren Chen Erick Ortiz Said Alhinai Sujeeth Panicker GoGoGatchi - Travel plans made easy! ABSTRACT The application GoGoGatchi

More information

Apollo Online Assessment Environment

Apollo Online Assessment Environment Apollo Online Assessment Environment Guide for Registered Users Apollo is a trademark of PSI Services LLC. All rights reserved. talentteam@psionline.com +44 (0)1483 752 900 1 Contents 1. Introduction 3

More information

CENG 491 Configuration Management Report

CENG 491 Configuration Management Report CENG491 Configuration Management Report HANDE ---------------------------------------------------------------------------------------------------------------------------- Kadir Eray Doğanlar Doğuş Küçükgöde

More information

Endpoint Security webrh

Endpoint Security webrh Endpoint Security webrh Framework 3.0 HFA1 Administration Guide 2 January 2011 2011 Check Point Software Technologies Ltd. All rights reserved. This product and related documentation are protected by copyright

More information

Number of seconds that elapse after the primary line goes down before the router activates the secondary line. The default is 0 seconds.

Number of seconds that elapse after the primary line goes down before the router activates the secondary line. The default is 0 seconds. This chapter describes the function and displays the syntax of each dialon-demand routing command. For more information about defaults and usage guidelines, see the corresponding chapter of the Router

More information