Requirement Analysis Document v.2 14.12.2009 CENG-401 SOFTWARE ENGINEER PROJECT MANAGEMENT SYSTEM (Project Manager) Ahmet Edip SEÇKİN 07010555 (Developer) Erhan ŞEN 07010507 (Developer) Semih Serdar CENGİZOĞLU 07010515
Contents Contents... 2 Content of Figures... 3 1. INTRODUCTION... 4 1.1. Purpose of the system... 4 1.2. Scope of the System... 4 1.3. Objectives and success criteria of the Project... 5 1.4. Overview... 5 2. CURRENT SYSTEMS... 6 3. PROPOSED SYSTEM... 8 3.1. Overview... 8 3.2. Functional Requirements... 8 3.3. Non Functional Requirements... 9 3.3.1. Usability... 9 3.3.2. Reliability... 9 3.3.3. Performance... 9 3.3.4. Scalability... 9 3.3.5. Hardware Requirement... 9 3.4. Pseudo Requirements... 9 3.5. System Models... 9 3.5.1. Scenario... 9 3.5.1.1. Adding Users... 9 3.5.1.2. Adding Project... 10 3.5.1.3. Adding Task... 10 3.5.1.4. Managing Project, Tasks, and User... 10 3.5.1.5. Login/ Logout... 10 3.5.1.6. Sent/Read/Reply Message... 10 3.5.2 Use Case Model... 11 3.5.3. Object Model... 16 3.5.4. Dynamic Model... 17 4. CONCLUSION... 20 5. GLOSSARY... 21 6. REFERENCES... 22 2
Content of Figures Figure 1: Example From Current Systems 1... 6 Figure 2:Example From Current Systems 2... 7 Figure 3: Example from Current Systems 3... 7 Figure 4 : Use Case Diagram... 11 Figure 5: Class Diagram... 16 Figure 6: Sequence Diagram of Administrator... 17 Figure 7: Sequence Diagram of Developer... 18 Figure 8: Sequence Diagram of Client... 19 3
1. INTRODUCTION Project management system is a term covering many types of software, including scheduling, cost control and budget management, resource allocation, collaboration software, communication, quality management and documentation or administration systems, which are used to deal with the complexity of large projects. A Project management system is designed to support multiple users modifying different sections of the plan at once; for example, updating the areas they personally are responsible for such that those estimates get integrated into the overall plan. Web-based tools, including extranets, generally fall into this category, but have the limitation that they can only be used when the user has live Internet access. To address this limitation, client-server-based software tools exist that provide a Rich Client that runs on users' desktop computer and replicate project and task information to other project team members through a central server when users connect periodically to the network. Some tools allow team members to check out their schedules (and others' as read only) to work on them while not on the network. When reconnecting to the database, all changes are synchronized with the other schedules. 1.1. Purpose of the system Our purpose is to enable to people with Project Management System that build project teams on this web system and anyone in a project team can login anywhere, anytime to update their plans, and also watch their progress as it happens. With Project Management System, you can monitor and control your projects in real-time. You will never be out of touch because your project progress will be available online, every minute of the day. 1.2. Scope of the System This system can be used by people via internet to learn new information about their project. It helps people schedule their projects more easily than before. Also, it helps people to identify all of the tasks that are required to complete your project on time. The system benefits are: View project status online Report on progress, across the Web Get an up to date view 24 hours a day Access it anywhere, anytime Create project schedules Assign time and resources System reminds the activity via e-mail 4
1.3. Objectives and success criteria of the Project The objectives of the project are to: Adding Project: System provides adding project. This process can be done by only authorized user. Adding Users: Admin can add user to system. Assign users to selected project: Project should have users to tasks. Admin can add to project. Adding Task to user and project: Each Project should have tasks. Each task have user to do it. Time Schedule: In selected project, there will be a task schedule. In that schedule, we can see the tasks on calendar. Project Status (percentage of done jobs): User can see the project status in project page Reports: Admin can create specific reports such as; project status, project budgets. 1.4. Overview Project management system is web-based software, accessed through an intranet or extranet using a web browser. It allows users who in same project group to view the latest information as it happen. Also, it helps you create, plan and manage tasks easily. 5
2. CURRENT SYSTEMS Project management software can be implemented as a Web application, accessed through an intranet or extranet using a web browser. Web-based project management and collaboration applications are increasing every day, and we are beginning to see alternative applications. One of the most popular project management software programs is Basecamp. "Basecamp is subscription-based online project management software. However, there is no set-up fee and you can upgrade or downgrade at any time. Additionally, you can cancel at any time without a termination fee. Basecamp software is hosted on reliable web servers and is supported by Internet Explorer 6.0+, Firefox, and Safari. Basically, if you have a PC or Mac and an Internet connection, you re good to go. Your Basecamp account is password protected and several of the plans include SSL security." Figure 1: Example From Current Systems 1 Another example for project management software is ActiveCollab. This program is a project management and collaboration tool that you can set up on your own website. Have an area where you can collaborate with your team, clients and contractors and keep projects on track while retaining full control over access permissions and your data. 6
Figure 2:Example From Current Systems 2 The Trac Project is a unique, wiki-style, open source project management program. It is developed and maintained by Edgewall Software and it is written in the Python programming language. Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, change sets, files and wiki pages. A timeline shows all current and past project events in order, making the acquisition of an overview of the project and tracking progress very easy. Figure 3: Example from Current Systems 3 7
3. PROPOSED SYSTEM 3.1. Overview We are planning to do easiest project management system based on web. In that project, there are some users which they are communicate each other and coordinate the selected project, on the other hand there are projects. Each project has own users. Unauthorized users cannot see the project details. There is another feature that sending notification e-mail to users. Other features are file management, calculating project time, calculate remaining time, and so on. 3.2. Functional Requirements That project will run on the web server. And users can access from everywhere. The security issues are primary works because it will be run on web. We will try to apply real-time interaction. For example; if admin add a job to somebody then the user can see instantly, and he or she receive an e-mail about the job information. On this project, we will use JavaScript and Ajax for simultaneous communication. This is the most important feature of the project. On the other hand, system will be written with PHP, Mysql and CSS technologies. The functional requirements of the system are: Administrator has full access to system and manages the projects, users, tasks, messages, and system maintenance. Users responsible to their tasks, and they can chat with others. They cannot ad project but can edit. If the task is done by user, then user mark it as a done. Administrator should create a project. And then he/ she prepare the task list and assign these tasks to users and indicate the date which is finishing time. A project has a name, user list, task list, messages (chatting with users), permissions, schedule, and activity list. A task has a name, date, user list All activities should be reminded to relevant users. There will be a calendar which shows the tasks schedule. This calendar must be specialized to each user. Sign up process should be done by administrator. Users cannot sign up to system. Security issue is the significant part. Important information s should be encrypted. When posting any data on the system, used methods should be evaluated. 8
3.3. Non Functional Requirements 3.3.1. Usability The usage of the system will be very easy. There will be some effects when using the system. Users can access the module without complexity. 3.3.2. Reliability System maintains the user accounts in an encrypted format no one can access the user s info. Most important part is password. Password should be encrypted powerfully. On the other hand accessibility is other important point user cannot access the unauthorized area. 3.3.3. Performance Performance issue is the imported part of our project. We should avoid the complexity which aspect of coding. Likewise, database side should be noncomplex also. In here, according to server and link speed features, performance is affected. We should minimize the system 3.3.4. Scalability Reconsidering Persistent DBConnections DB connection = thread = memory With partitioning all httpd processes talk to all DBs With lots of caching you might not need the main database that often MySQL connections are fast Commercial connection pooling products 3.3.5. Hardware Requirement This System will be running on Linux server. Temporally, we use aedips.com domain as an application domain. It uses a Linux server. All we need to upload the ready system to server. 3.4. Pseudo Requirements The target environment of the project is a web. And we will implement the project using PHP, JavaScript, Ajax, HTML, CSS3 and MySql. 3.5. System Models 3.5.1. Scenario The scenario helps us to have to identify the different type of action that we can have using this application so the possible scenarios that can be driven from the system are: 3.5.1.1. Adding Users Admin can add the users to system in 3 types: as admin, user, and client. 9
3.5.1.2. Adding Project Projects can be added by only admin. Projects have tasks, assigned users, messages, files, task schedules 3.5.1.3. Adding Task Admin can add a task to specific project and specific users, and can give a date to these tasks as a finishing date. 3.5.1.4. Managing Project, Tasks, and User Only admin can manage these modules. He/she can edit, delete and modify. 3.5.1.5. Login/ Logout User must be login to system before any process. After all work user can logout from system. 3.5.1.6. Sent/Read/Reply Message User can send, read, reply message. Firstly user should select users, then write and send message 10
3.5.2 Use Case Model Figure 4 : Use Case Diagram The use cases are explained below in detail: I. Use Case Name : Login to System Initiating Actor : Administrator, Developer, Client Entry Condition : The actor enters username and password onto system. 1) User enter information 2) Click Login to system Exit Condition : * Enter the main page 11
II. Use Case Name : Logout System Initiating Actor : Administrator, Developer, Client 1) User clicks Logout button Exit Condition : none III. Use Case Name : Project Initiating Actor : Administrator Entry Condition : The actor is logged into system to do project operations 1) User uses the Add use case for adding project to system 2) User uses the Delete use case to delete project from system 3) User uses the Modify use case for modifying project 4) User uses the Add Users use case to add user to project 5) User uses the Tasks use case to determine task of project Exit Condition : The user observes the project operations IV. Use Case Name : Add Users Initiating Actor : Administrator Entry Condition : User is logged into system and at least one project must be added 1) Add Users uses the Project use case 2) User selects the project to be added 3) In selected project, add user button is clicked 4) User name, surname and other details about users 5) User clicks save button Exit Condition : User has received an acknowledgement that operation has been made Quality Requirements :* An e-mail is sent by system to added user to give information about his/her username and password. V. Use Case Name : Add Initiating Actor : Administrator 1) User clicks add new project button 2) User enters the project details 3) User clicks save button Exit Condition : * User has received an acknowledgement that operation has been made VI. Use Case Name : Delete 12
Initiating Actor : Administrator 1) User selects the project name to be deleted 2) User clicks delete button Exit Condition : * User has received an acknowledgement that operation has been made Quality Requirements :* A warning is shown by system as do you really want to delete this user. VII. Use Case Name : Modify Initiating Actor : Administrator Participating Actor : Developer 1) User selects the project name to be modified 2) User clicks modify button 3) Changes are made on project 4) User clicks save button Exit Condition : * User has received an acknowledgement that operation has been made VIII. Use Case Name : Status Initiating Actor : Administrator Participating Actor : Developer, Client 1) User selects the project name to see status of it 2) User clicks status button Exit Condition : * The user observes status of the project IX. Use Case Name : Tasks Initiating Actor : Administrator 1) Tasks uses the Project use case 2) User determines the project tasks 3) User uses the Add_Task use case for adding tasks to users 4) User uses the Delete_Task use case to delete tasks from users 5) User uses the Modify_Task use case for modifying task 6) User uses the Schedule use case to assign starting and ending date of task to each user 7) User uses the Status use case for modifying project Exit Condition : * The user observes tasks in the project 13
X. Use Case Name : Add_Task Initiating Actor : Administrator 1) User clicks add task button 2) User determine the tasks 3) User chooses the developer to give tasks them 4) User clicks add button Exit Condition : * User has received an acknowledgement that operation has been made Quality Requirements :* An e-mail is sent by system to developer to give information about his/her task(s). XI. Use Case Name : Delete_Task Initiating Actor : Administrator 1) User selects the task name to be deleted 2) User clicks delete button Exit Condition : * User has received an acknowledgement that operation has been made XII. Use Case Name : Modify_Task Initiating Actor : Administrator Participating Actor : Developer 1) User selects the task name to be modified 2) User clicks modify button 3) Changes are made on task 4) User clicks save button Exit Condition : * User has received an acknowledgement that operation has been made XIII. Use Case Name : Schedule Initiating Actor : Administrator Participating Actor : Developer 1) User selects the task name to schedule it 2) User determine the starting and ending date of task Exit Condition : * The user observes schedules o the tasks Quality Requirements :* An e-mail is sent by system to developer to give information about his/her task(s) schedule(s). 14
XIV. Use Case Name : Messages Initiating Actor : Administrator or Developer or Client 1) User uses the Add_M use case to send messages 2) User uses the Delete_M use case to delete messages 3) User uses the Read use case to read messages Exit Condition : * The user observes messages in the account XV. Use Case Name : Add_M Initiating Actor : Administrator or Developer or Client 1) User clicks inbox button 2) User clicks send message button 3) User enters the user name or names to be sent 4) User enters the message topic and other details 5) User clicks send button Exit Condition : * User has received an acknowledgement that operation has been made XVI. Use Case Name : Delete_M Initiating Actor : Administrator or Developer or Client 1) User clicks inbox button 2) User chooses the message 3) User clicks delete button Exit Condition : * User has received an acknowledgement that operation has been made XVII. Use Case Name : Read Initiating Actor : Administrator or Developer or Client Participating Actor : Developer 1) User clicks inbox button 2) User chooses the message 3) User clicks read button Exit Condition : * The user observes messages in inbox 15
3.5.3. Object Model Figure 5: Class Diagram The Figure 5 illustrates the class diagram as a big picture of the Project Management System. 16
3.5.4. Dynamic Model Figure 6: Sequence Diagram of Administrator 17
Figure 7: Sequence Diagram of Developer 18
Figure 8: Sequence Diagram of Client There are 3 sequence diagrams (in figure 6-7-8). First one is for administrator side. Second one is for developer side, and last one is for client view. The person is who have more permission is administrator level. 19
4. CONCLUSION Nowadays, most of the software slips to web platforms form desktop software. In that aspect, internet technologies are becoming more important day by day. Big software companies produce their new software in web platform mostly. If we should give some example, we can these: Microsoft thinks that web platforms more efficient than desktop platform. They developed the new technology for the web environment. Silverlight. Silverlight is the beginning of the new period on the web. On the other hand, another example is cloud computing. Google Co. develops the new thing. Their new operating system based on web. As we see that, everything goes to web environment. It is that why we choose the web platforms, and we chose PHP because; it is the most efficient, easy, elastic programming on web. Most of the popular sites develop their applications in PHP, such as facebook, haber7. Because of all of these, we wanted to develop the project management system on web platform 20
5. GLOSSARY UML (Unified Modeling Language): Unified Modeling Language is a standardized specification language for object modeling. UML is a general-purpose modeling language that includes a graphical notation used to create an abstract model of a system JavaScript: JavaScript is an object-oriented scripting language used to enable programmatic access to objects within both the client application and other applications. It is primarily used in the form of client-side JavaScript, implemented as an integrated component of the web browser, allowing the development of enhanced user interfaces and dynamic websites. PHP: PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web page content from it. It can be deployed on most web servers and on almost every operating system and platform free of charge. PHP is installed on over 20 million websites and 1 million web servers. Ajax (shorthand for Asynchronous JavaScript + Xml): Ajax is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. The use of Ajax techniques has led to an increase in interactive or dynamic interfaces on web pages. CSS: Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (that is, the look and formatting) of a document written in a markup language. It s most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including SVG and XUL. MySQL: MySQL is a relational database management system (RDBMS) that has more than 6 million installations. MySQL stands for "My Structured Query Language". The program runs as a server providing multi-user access to a number of databases. 21
6. REFERENCES I. http://ssi7.cs.tamu.edu II. http://en.wikipedia.org/wiki/project_management_softwarehttp://www.visualcase.com /tutorials/uml-tutorial.htm III. Lecture Slides. http://fatih.edu.tr/~tyanik/ceng401/ceng401.htm 22