Sie sind auf Seite 1von 30

METU Department of Computer Engineering CENG 491 Engineering Design I Fall 2013-2014 Software Design Document of PhotoCenig

PhotoCenig Tripod
November 24, 2013

1) 2) 3)

Team Members: zgn KORKUT, 1560390, e1560390@ceng.metu.edu.tr Rdvan ZKERM, 1560754, e1560754@ceng.metu.edu.tr Hasan YILMAZ, 1679349, e1679349@ceng.metu.edu.tr

Table of Contents
1. INTRODUCTION ................................................................................................................... 5 1.1 Purpose ....................................................................................................................... 5

1.2 Scope ............................................................................................................................... 6 1.3 Definitions, Acronyms, and Abbreviations ......................................................................... 7 2. SYSTEM OVERVIEW ........................................................................................................... 8 2.1 2.2 2.3 2.4 2.5 Processor Module ........................................................................................................ 8 Database Module ......................................................................................................... 9 Graphical User Interface Module.................................................................................. 9 Input Handler Module ................................................................................................... 9 Output Handler Module ................................................................................................ 9

3. SYSTEM ARCHITECTURE ..................................................................................................10 3.1 Architectural Design .......................................................................................................10 3.2 Design Rationale ............................................................................................................10 4. DATA DESIGN......................................................................................................................11 4.1 Data Description .............................................................................................................11 4.1.1 Panoramic View Table ..............................................................................................11 5. COMPONENT DESIGN ........................................................................................................12 5.1. Architectural Design .......................................................................................................12 5.2 Description of the Components........................................................................................13 5.2.1 GUI Module ...............................................................................................................13 5.2.2 InputHandler Module .................................................................................................14 5.2.3 OutputHandler Module ..............................................................................................16 5.2.4 Processor Module .....................................................................................................17 5.2.5 Database Module ......................................................................................................20 6. HUMAN INTERFACE DESIGN .............................................................................................22

6.1 Overview of User Interface .............................................................................................22 6.2 Screen Images ...............................................................................................................22 6.3 Screen Objects and Actions............................................................................................23 6.3.1 Monitorize Part ..........................................................................................................23 6.3.2 Area Information........................................................................................................23 6.3.3 Return To Start .........................................................................................................24 6.3.4 The Compass............................................................................................................24 6.3.5 View Information .......................................................................................................24 6.3.6 Information ................................................................................................................25 6.3.7 Navigator Menu .........................................................................................................25 6.3.8 Bottom Menu .............................................................................................................26 6.3.9 Keyboard Actions ......................................................................................................27 7. LOGICAL DESIGN ................................................................................................................28 7.1 Coordinate Entity .............................................................................................................28 7.2 Neighbors Relationship....................................................................................................29 7.3 Room Entity .....................................................................................................................29 7.4 Includes Relationship.......................................................................................................29 7.5 People Entity ...................................................................................................................29 7.6 Use Relationship .............................................................................................................29 7.7 Information Entity.............................................................................................................30 7.8 Has Relationship .............................................................................................................30

1. INTRODUCTION
1.1 Purpose
Aim of this software specification requirements document is to provide a complete description of all of the features that are planned to implement to system and to define the expectations from the PhotoCenig project. It also describes how the system operates and how users interact with the application. Besides external systems and interfaces which the application depends, are specified in this SRS document. This document is intended for Developers: in order to be sure they are developing the right project that fulfills requirements in this document. Testers: in order to have an exact list of the features and functions that have to respond according to requirements and provided diagrams. Users: in order to get familiar with the idea of the project and suggest other features that would make it even more functional. Documentation writers: to know what features and in what way they have to explain. What security technologies are required, how the system will response in each users action etc. Advanced end users, end users/desktop and system administrators: in order to know exactly what they have to expect from the system, right inputs and outputs and response in error situations.

1.2 Scope
In daily life address and location information is among in most frequently asked questions. Besides people can interest a place in different city or region where they live. Many people look photos of a place before they go there first time. METU Computer Engineering is also one of the most wondered places. Every year a lot of high-school students come to METU for orientation and take photos in front of our department. So this product will help to find a place such as canteen, student affairs or a staff room in our department and show detailed visual information for interested people such as high-school students who consider to prefer our department. In our project we have two main purpose for people. Firstly, people who do not know inside of our department can reach the information about the place where they want to go such as a staff room, stationery shop or student affairs. The current way to find a place in the department building is to look a list near the main door of the building. By this way the person should know the alphanumerical codes of blocks and rooms to go his/her target. On the other hand by our project a person who try to find any place in our department building, does not need to know anything about building. Secondly, people who try to decide which university they will study and people who deserved to study at METU Computer Engineering department, may want to have information to imagine their prospective department. Unfortunately the current official website of our department includes a few photo and these photos taken from very far. As is seen there is not existing solution for these two aim. So we will try to solve this problems by doing PhotoCenig.

1.3 Definitions, Acronyms, and Abbreviations


This subsection should provide the definitions of all terms, acronyms, and abbreviations required to properly interpret the SDD. This information may be provided by reference to one or more appendixes in the SDD of by reference to other documents.

Terms SDD METU OpenCV BSD CPU 3D IEEE GUI GPS

Definitions Software Design Document Middle East Technical University Open Source Computer Vision Library Berkeley Software Distribution Central Processing Unit Three dimensional The Institute of Electrical and Electronics Engineers Graphical User Interface Global Positioning System

2. SYSTEM OVERVIEW
In this project there are mainly five connected software modules namely processor module, database module, graphical user interface module, input handler module, and output handler module . The general system overview is depicted below in figure 2.1.

Figure 2.1. System Overview Diagram

2.1

Processor Module

This module manages the system. Input data is processed in this module and the output data is send to the graphical user interface module with the help of output handler module. Moreover, the process on views taken from database is done by that module to create the web compatible views that can be shown on the web browser screen. Finally, it decides the data to be sent to database for appropriate view and call the database module to do that work.

2.2

Database Module

This module provides the view according to the data coming from processor module to send to processor module.

2.3

Graphical User Interface Module

This Module is responsible from interaction with the users. It will be used to get the information and actions from the users and to display the results of these actions.

2.4

Input Handler Module

This module handles all the inputs asked by user such as location requests. It also transmits these inputs to the processor module.

2.5

Output Handler Module

This module has a role between processor module and graphical user interface module. It transmits the outputs produced by processor to the graphical user interface module to be shown on screen.

3. SYSTEM ARCHITECTURE
3.1 Architectural Design
The main components of the system is explained here. In the next part the subcomponents will be explained in detail. The architectural design of the system consists of 5 different components, namely Database Module, GUI Module, InputHandler Module, OutputHandler Module, and Processor Module, where each works for different purposes of the system. There is a core component in the architecture which manages the other components relations by mean of data flow and processes the data. This core module may seen as the main module which does the main work. The users will see the GUI Module of the system, and when they do some actions on this module, this data will be sent to InputHandler Module and then to the Processor Module and it will process the sent data. Processor Module will be composed of 3 different subcomponents namely, ErrorHandler Module, Navigator Module, and Show Module. These modules responsibilities are described in detail in the Processor Modules description and how they will work is explained in detail in this document. When user navigates, processor will get the corresponding view according to the coordinates and send it to outputhandler module in order to be displayed on the screen. The details of the processes will be given for each component later.

3.2 Design Rationale


As it is already mentioned before, our project will have 5 different components. Each of which handling the different purposes with their own subcomponents. Main component of the system which makes the core jobs is Processor Module and its subcomponents, Navigator Module Show Module, and ErrorHandler Module. GUI Module is used to interact with the environment, users. Database modules purpose is storing and manipulating the panoramic view data to be used in the system. Other two components, InputHandler and OutputHandler are the helper components for Processor and GUI, supplying the interaction between those modules.

10

4. DATA DESIGN
4.1 Data Description
4.1.1 Panoramic View Table
This object will hold panorama id, save path to find the view on server, tags to give the opportunity to tag the views and make users to find these views easily by searching on tags, and GPS information to associate the view with the exact location on the system map. Panorama id is the primary index.

Field id save_path tags gps view

Type Integer String String String Integer

Null No No Yes Yes Yes

Primary Key Yes No No No No

11

5. COMPONENT DESIGN
Here, a detailed description of the system architecture is explained here.

5.1. Architectural Design


The main components of the system are presented in this part.

Figure 5.1. Component Diagram of the System Architecture

12

In figure 5.1, architectural design of the system, there are 5 main modules which are GUI module, InputHandler Module, OutputHandler Module, Database Module and Processor Module. Each module works for different purposes, and some modules include different submodules. Sub-modules are User Module in GUI Module and Navigator Module, Show Module, ErrorHandler Module in Processor Module. Main modules will do the main work of the system, and sub-modules will be work in some main modules. The user will see and work on the GUI Module of the system. When the user do actions on this module, the data comes from users action will be sent to InputHandler Module, after that the Processor Module takes this datas and process them. In the Processor Module will contain 3 different components and these submodules will be described in detail in part 7 of this document. The details of the each component of the architecture of the system will be given later.

5.2 Description of the Components


Descriptions with the details of the modules and submodules are given in this part of the document. The interaction between the components can be seen from sequence diagrams.

5.2.1 GUI Module


5.2.1.1 Processing Narrative for GUI Module This module is responsible for the interaction with the users. It is used for to get input, actions and information from the users and to show the output, results of those actions to the users. 5.2.1.2 GUI Module Interface Description This module gets the input, actions, from the environment for the system and It tells the InputHandler module what action is taken by the user, and gets the datas from OutputHandler module and shows it on the screen. Inputs those come to this module are sent to different subcomponents of the InputHandler Module. It is an input interface for InputHandler Module and an output interface for OutputHandler Module.

13

5.2.1.3 Dynamic Behavior of GUI Module

Figure 5.2.1 : Sequence Diagram for GUI Module

5.2.2 InputHandler Module


5.2.2.1 Processing Narrative for InputHandler Module This module works between the GUI module and Processor module in order to manage the inputs sent from the GUI and call the related sub-module of the Processor Module. 5.2.2.2 InputHandler Module Interface Description The actions sent from the GUI module enters to this module and after looking characteristic of these inputs, the related subcomponent of processor is called, so GUI Module is like an input interface for this module and Processor Module is like an output interface.

14

5.2.2.3 InputHandler Module Processing Detail InputHandler module gets the information from the GUI. By looking at the characteristics of these data, related sub-module is called from Processor Module with the given action or information. 5.2.2.4 Dynamic Behavior of InputHandler Module

Figure 5.2.2 : Sequence Diagram for InputHandler Module

15

5.2.3 OutputHandler Module


5.2.3.1 Processing Narrative for OutputHandler Module This module is between the GUI module and Processor module in order to handle the outputs sent from the Processor to GUI. It is responsible from sending results of the Processor Module and tell GUI to show the result.. 5.2.3.2 OutputHandler Module Interface Description The results of the Processor Module are sent to GUI through the OutputHandler module. Therefore, Processor Module is an input interface for OutputHandler module and GUI Module is an output interface for this module. 5.2.3.3 OutputHandler Module Processing Detail After the processing of the datas is finished, GUI will need to be changed in order to show the results. Therefore the information, views or actions to be displayed are sent to GUI from Processor through the this module. To process the different kind of information, the sent data passes through OutputHandler Module and then it calls the related parts of the GUI with related data.

16

5.2.3.4 Dynamic Behavior of OutputHandler Module

Figure 5.2.3 : Sequence Diagram for OutputHandler Module

5.2.4 Processor Module


5.2.4.1 Processing Narrative for Processor Module This module is the main component of the architecture which handle all the main parts of the system. There are three sub-modules for different works. Navigator Module: According to users demands going one point to another will be animated. Show Module: According to user inputs managing the maps and views, and preparing the part of the view to be displayed. ErrorHandler Module: In case of any errors that can be occurred on database, writing the reason and the related information on the database and on the screen.

17

Each of these responsibilities will be handled by different sub-modules of the Processor Module. Relations between these sub-modules are shown in figure 5.1. In this part just what they are supposed to do and their interfaces are described. 5.2.4.2 Processor Module Interface Description The Processor gets the information from the InputHandler Module. The different informations will call the different sub-modules of the Processor. According to the inputs, some data are called from Database Module or written on it. After finishing this process, the results will be sent to OutputHandler Module to be sent to GUI Module. Therefore, InputHandler and Database Modules are the input interfaces of this module, where OutputHandler and Database Modules are the output interfaces for this module. ErrorHandler Module has interfaces with every other subcomponent of Processor, and also with Database Module.Navigator Module has interfaces with Database Module, InputHandler Module, ErrorHandler Module, and Show Module. Show Module has connection with OutputHandler Module, Database Module, ErrorHandler Module and Navigator Module. What will be sent in between these sub-modules are in the next part and how they will work is in part 7 of this document. 5.2.4.3 Processor Module Processing Detail The Processor Module is the module where all the main jobs are done. Since the project contains different works such as displaying existing image or handling errors, there will be different sub-modules. As already mentioned in processing narrative part, there will be three different sub-modules Navigator Module, ErrorHandler Module and Show Module. Each of which will handle different situations. Show Module will be handling the viewing of the views or maps. When users want to view a panoramic view, InputHandler Module will send the related data to this subcomponent. Then related views will be asked from database, after getting the view, it will be prepared to be displayed on the screen with desired rectangular of the panoramic image, finally it will be sent to

18

outputhandler, in order to be displayed on GUI.If something needs to change in GUI, Processor Module will call Show Module and the outputs will be sent to OutputHandler Module with Show Module. The details of the algorithm to be used will be explained in part 7 under Processor Module.In case of any errors ErrorHandler sub-module of the Processor Module will be called with the error information. 5.2.4.4 Dynamic Behavior of Processor Module

Figure 5.2.4 : Sequence Diagram for OutputHandler Module

19

5.2.5 Database Module


5.2.5.1 Processing Narrative for Database Module This module is responsible from keeping the data, pictures and information about locations in the department of Computer Engineering, and sending, getting the data according to the needs of Processor Module. There will be tables for View Table, Image Table according to location information and Error Table. 5.2.5.2 Database Module Interface Description Accessing to database will only be with the Processor Module. It will take input from Processor and send required data back to Processor. Therefore, Processor Module is the only output and input interface of Database Module. 5.2.5.3 Database Module Processing Detail The purpose of the Database Module is storing and managing the data, therefore there will be methods for getting data and adding data for each table. This methods can be called from only Processor Module when the system needs to use data or store data. Different tables will be used by different sub-modules of the Processor Module, so related subcomponents will have access to related tables. If Processor wants a data from Database, this module returns the corresponding data to the Processor. When Processor wants this module to store sent data, this module puts the sent data to related table.

20

5.2.5.4 Dynamic Behavior of Database Module

Figure 5.2.5 : Sequence Diagram for OutputHandler Module

21

6. HUMAN INTERFACE DESIGN


6.1 Overview of User Interface
Graphical user interface will be shown via web browser. After entering URL address of the PhotoCenig website the user can directly use the all features of the program. At the beginning the program starts in front of the A Block of METU Computer Engineering Building. To make easy to use program users can be reach all features from the main screen. There will not be user type like admin, moderator, ordinary user etc. Screen appearance and properties of screen objects will be described in next sections..

6.2 Screen Images

Figure 6.2.1 : Main Screen The main screen of PhotoCenig will be animated like shown in the Figure 6.2.1. At the first look we can say that there are five main physical part of the screen: background, left-side, right-side, upside and downside. In this figure except area information and view information parts all of

22

the others are permanent on the screen. When View Information will be clicked Information part also will be visible under the button View Information like as shown in the figure 6.2.2.

Figure 6.2.2 : Information Bar

6.3 Screen Objects and Actions


6.3.1 Monitorize Part
This part is the main object of the program and placed at background. Monitorize part will show part of the panoramic images according to users view angle. At each coordinate user can view only one photo. 6.3.1.2 Mouse Drag Function Mouse drag function is active at this part. When user clicks a point on the view if the user drags the mouse, view also will be dragged. In other words users view angle will be changed according to mouse action.

6.3.2 Area Information


This part is not permanent on the screen. There will be pre-defined areas in the program such as canteen, a room. These areas includes more than one coordinate points. If user enter one of these areas, name of the are will be shown in Area Information part like as shown in the Figure 6.3.2.1.

23

Figure 6.3.2.1 : Area Information

6.3.3 Return To Start


This is a button will be placed at the top of right block. As its name suggest this button jumps the user to starting point. This means restart the program. Starting point is in front of the A Block door.

6.3.4 The Compass


This is an object to understand view direction on 2d. When user changes the view angle, the current angle can be read from the compass object.

6.3.5 View Information


This part is also not permanent on the screen. There will be information about some places. If the user is in one of these areas, the view information button will be visible. If user clicks the view information button, information part will be open to show information. Information part will be described below. When information part is open, if user clicks this button, information part will be closed.

24

6.3.6 Information
This part will be visible after view information button is clicked. There will be three type of information about the area : E-mail address, room, and local phone number. These areas may be a teacher's room can also be student affairs. If user clicks to email address on the information part, email client program of users operation system will be opened to send mail.

6.3.7 Navigator Menu


This part has many object as a part of a drop-right menu. If user clicks the leaf object of this menu, PhotoCenig take user off to where wanted to go step by step. This menu has submenus : Auditoriums, Administrative Staff, Labs, People and Others. This parts will be described below. 6.3.7.1 Auditoriums Auditoriums has five sub-objects. METU Computer Engineering Building has five auditoriums BMB1 to BMB5. 6.3.7.2 Administrative Staff Administrative Staff has three sub-object: Secretary of Chair, Chief of Student Affairs and Secretary of Student Affairs. 6.3.7.3 Labs Computer Engineering Building has many labs such as Scheme Lab, smail Abi, Intelligent Systems, Kovan. Labs object will include all of the labs. 6.3.7.4 People People is the largest menu object. It will include three sub-object. Faculty Members, Assistants and Support Staff. Because of Faculty Members and Assistants have many people, they can be separated by alphabetically according to their size.

25

6.3.7.5 Others Others includes the rest important areas : Computer Club, Meeting Room, Canteen, Photocopy Room.

6.3.8 Bottom Menu


This menu has six menu objects to change view. 6.3.8.1 Zoom-In Button Zoom-In button is shown by + symbol in the menu. This button zooms the photo. 6.3.8.2 Zoom-Out Button Zoom-Out button is shown by - symbol in the menu. This button zooms out the photo. 6.3.8.3 Turn Left Button Turn left button is shown by left arrow in the menu. This button rotate view direction to left. 6.3.8.4 Turn Right Button Turn right button is shown by right arrow in the menu. This button rotate view direction to right. 6.3.8.5 Turn Down Button Turn down button is shown by down arrow in the menu. This button rotate view direction to down. 6.3.8.6 Turn Up Button Turn up button is shown by up arrow in the menu. This button rotate view direction to up.

26

6.3.9 Keyboard Actions


There are four keyboard actions by eight keys because key pairs do same actions. 6.3.9.1 Up Arrow or W or w When user clicks up-arrow or w button (case-insensitive) , the program take user off next coordinate in front of the current position if it is possible. 6.3.9.1 Down Arrow or S or s When user clicks down-arrow or s button (case-insensitive) , the program take user off next coordinate at the back of the current position if it is possible. 6.3.9.1 Left Arrow or A or a When user clicks left-arrow or a button (case-insensitive) , the program take user off next coordinate at left of the current position if it is possible. 6.3.9.1 Right Arrow or D or d When user clicks right-arrow or d button (case-insensitive) , the program take user off next coordinate at right of the current position if it is possible.

27

7. LOGICAL DESIGN

Figure 7.1 : Entity Relationship Diagram As shown in the Figure 7.1 there are four entities in the logical view. These entities are Coordinate, Room, People and Information. They and their relations will be described below.

7.1 Coordinate Entity


Coordinate entity means each point that has a panoramic view. It has a unique id and keeps x,y and z coordinate of the point. It also keeps URL of the panoramic photo file.

28

7.2 Neighbors Relationship


This relationship between two coordinate points. It means which coordinate points can be go from the current point. A coordinate point can have one-to-many neighbor point.

7.3 Room Entity


Room entity means not only peoples rooms but also labs, auditoriums etc. It has a unique id and keeps the area information. Area information means what for using that room.

7.4 Includes Relationship


This relation is between Coordinate and Room entities. A room may have one or more coordinate point that have panoramic view. At each of these points user is in same room. Includes relationship describe which room has included which coordinates.

7.5 People Entity


This entity means people who have rooms in Computer Engineering Building. Each person has unique id. The entity keeps their name and separates them according to their class. A person can be faculty member, assistant, administrative staff or support staff.

7.6 Use Relationship


This relationship is between people and rooms. Each person uses a room but more than one people can use a room. This relationship keeps the information about which person uses which room.

29

7.7 Information Entity


This entity means information about people. It depends on peoples existence, so it is weak entity. Information entity keeps email, room and local phone number of people.

7.8 Has Relationship


This relationship is between People and Information entities. Due to the information entity is weak, Has relationship is also weak relationship. It keeps which information belonging to which person.

30

Das könnte Ihnen auch gefallen