Deliverable 1 Planning & Requirements
Deliverable 1 Planning & Requirements
Deliverable 1 Planning & Requirements
PUCIT
College
of
Information
First Deliverable
Version 1.0
TABLE OF CONTENTS
FIRST DELIVERABLE GUIDE..................................................................................................................3 1 INTRODUCTION..............................................................................................................................................3 1.1 PROJECT/PRODUCT FEASIBILITY REPORT.......................................................................................................3 Technical Feasibility..............................................................................................................................3 1.1.2 Operational Feasibility..................................................................................................................4 1.1.3 Economic Feasibility.....................................................................................................................4 1.1.4 Schedule Feasibility.......................................................................................................................4 1.1.5 Specification Feasibility................................................................................................................4 1.1.6 Information Feasibility..................................................................................................................4 1.1.7 Motivational Feasibility.................................................................................................................4 1.1.8 Legal & Ethical Feasibility...........................................................................................................5 1.2 PROJECT/PRODUCT SCOPE...........................................................................................................................5 1.3 PROJECT/PRODUCT COSTING........................................................................................................................5 1.3.1 Project Cost Estimation By Function Point Analysis....................................................................5 1.3.2 Project Cost Estimation by using COCOMO81 (Constructive Cost Model)...............................8 1.4 CPM - CRITICAL PATH METHOD................................................................................................................9 1.5 GANTT CHART.........................................................................................................................................12 1.6 INTRODUCTION TO TEAM MEMBER AND THEIR SKILL SET.................................................................................13 TOOLS AND TECHNOLOGY WITH REASONING.......................................................................................................13 1.8 VISION DOCUMENT..................................................................................................................................14 RISK LIST.....................................................................................................................................................15 1 INTRODUCTION ...........................................................................................................................................15 1.1 Systems Specifications....................................................................................................................17 1.2 Identifying External Entities...........................................................................................................17 1.3 Context Level Data Flow Diagram.................................................................................................18 1.4 Capture "shall" Statements.............................................................................................................18 1.5 Allocate Requirements....................................................................................................................18 1.6 Prioritize Requirements..................................................................................................................18 1.7 Requirements Trace-ability Matrix.................................................................................................18 1.8 EXAMPLE................................................................................................................................................18 1.8.1 Introduction.................................................................................................................................18 1.8.2 Existing System Business Organization ......................................................................................19 1.8.4Scope of the System.......................................................................................................................20 1.8.5 Summary of Requirements:(Initial Requirements)......................................................................20 1.8.6 Identifying External Entities or Actors........................................................................................22 1.8.9 Capture "shall" Statements and the external entities (Actors)....................................................24 1.8.10 Allocate Requirements...............................................................................................................25 1.8.11 Priorities Requirements.............................................................................................................26 1.8.12 Requirements Traceability Matrix.............................................................................................29 1.9 High Level Usecase Diagram.........................................................................................................30
Technical Feasibility
The project is technically feasible because similar products are already in the market. More over a lot of help available in the form of books and forums regarding the development of this project. Hardware and software required for the development of project are easily available.
must be derived indirectly using other direct measures. Function-oriented metrics were first proposed by Albrecht, who suggested a measure called the function point. Function points are derived using an empirical relationship based on countable (direct) measures of softwares information domain and assessments of software complexity. Function Point Analysis can provide a mechanism to track and monitor scope creep. Function Point counts at the end of requirements; analysis, design, code, testing and implementation can be compared. The function point count at the end of requirements and/or designs can be compared to function points actually delivered. If the project has grown, there has been scope creep. The amount of growth is an indication of how well requirements were gathered by and/or communicated to the project team. If the amount of growth of projects declines over time it is a natural assumption that communication with the user has improved. Function points are computed by completing the table shown in the figure below. Five information domain characteristics are determined and counts are provided in the appropriate table location.
Information domain values are defined in the following manner: Number of user inputs: Each user input that provides distinct application-oriented data to the software is counted. Inputs should be distinguished from inquiries, which are counted separately. Number of user outputs: Each user output that provides application-oriented information to the user is counted. In this context output refers to reports, screens, error messages, etc. Individual data items within a report are not counted separately. Number of user inquiries: An inquiry is defined ass an on-line input that results in the generation of some immediate software response in the form of an on-line output. Each distinct inquiry is counted.
Number of files: Each logical master file (i.e. a logical grouping of data that may be one part of a large database or a separate file) is counted. Number of external interfaces: All the machine-readable interfaces (e.g., data files on storage media) that are used to transmit information to another system are counted. Once these data have been collected, a complexity value is associated with each count. Organizations that use function point methods develop criteria for determining whether a particular entry is simple, average, or complex. Nonetheless, the determination of complexity is somewhat subjective. To compute function points (FP), the following relationship is used:
Finally, Total Project Cost and Total Project Effort are calculated given the average productivity parameter for the system. The formulae are given as follows: Cost / FP = labor rate / productivity parameter Total Project Cost = FP est. * (cost / FP) Total Estimated Effort = FP est. / productivity parameter
Embedded
TD= 2.5(PM)0.32
PM= person-month (effort) KLOC= lines of code, in thousands TD= number of months estimated for software development (duration)
Effort
PM= 2.4 (KLOC)1.05 x M PM= 3.0 (KLOC)1.12 x M PM= 2.4 (KLOC)1.20 x M
PM= person-month KLOC= lines of code, in thousands M.- reflects 15 predictor variables, called cost drivers The schedule is determined using the Basic COCOMO schedule equations. People Required = Effort / Duration
CPM models the activities and events of a project as a network. Activities are depicted as nodes on the network and events that signify the beginning or ending of activities are depicted as arcs or lines between the nodes. The following is an example of a CPM network diagram: Steps in CPM Project Planning 1. Specify the individual activities. 2. Determine the sequence of those activities. 3. Draw a network diagram. 4. Estimate the completion time for each activity. 5. Identify the critical path (longest path through the network) 6. Update the CPM diagram as the project progresses. 1. Specify the Individual Activities
From the work breakdown structure, a listing can be made of all the activities in the project. This listing can be used as the basis for adding sequence and duration information in later steps. 2. Determine the Sequence of the Activities Some activities are dependent on the completion of others. A listing of the immediate predecessors of each activity is useful for constructing the CPM network diagram. 3. Draw the Network Diagram Once the activities and their sequencing have been defined, the CPM diagram can be drawn. CPM originally was developed as an activity on node (AON) network, but some project planners prefer to specify the activities on the arcs. 4. Estimate Activity Completion Time The time required to complete each activity can be estimated using past experience or the estimates of knowledgeable persons. CPM is a deterministic model that does not take into account variation in the completion time, so only one number is used for an activity's time estimate. 5. Identify the Critical Path The critical path is the longest-duration path through the network. The significance of the critical path is that the activities that lie on it cannot be delayed without delaying the project. Because of its impact on the entire project, critical path analysis is an important aspect of project planning. Determining the following six parameters for each activity which can identify the critical path: ES: earliest start time: the earliest time at which the activity can start given that its precedent activities must be completed first. ES (K)= max [EF(J) : J is an immediate predecessor of K] EF: earliest finish time: equal to the earliest start time for the activity plus the time required to complete the activity. EF (K)= ES (K) + Dur (K) LF: latest finish time: the latest time at which the activity can be completed without delaying the project. LF (K)= min [LS(J) : J is a successor of K] LS: latest start time: equal to the latest finish time minus the time required to complete the activity. LS (K)= LF(K) Dur (K) TS: Total Slack: the time that the completion of an activity can be delayed without delaying the end of the project
TS (K)= LS(K) ES(K) FS: Free Slack: the time that an activity can be delayed without delaying both the start of any succeeding activity and the end of the project. FS (K)= min [ES(J) : J is successor of K] EF(K) The slack time for an activity is the time between its earliest and latest start time, or between its earliest and latest finish time. Slack is the amount of time that an activity can be delayed past its earliest start or earliest finish without delaying the project. The critical path is the path through the project network in which none of the activities have slack, that is, the path for which ES=LS and EF=LF for all activities in the path. A delay in the critical path delays the project. Similarly, to accelerate the project it is necessary to reduce the total time required for the activities in the critical path. 6. Update CPM Diagram As the project progresses, the actual task completion times will be known and the network diagram can be updated to include this information. A new critical path may emerge, and structural changes may be made in the network if project requirements change. Example:
Activity A B C D E F G
Star t
End
Activity A B C D E F G
Duration ES 5 3 8 7 7 4 5 0 0 5 5 0 13 17
EF 5 3 13 12 7 17 22
LS 0 3 5 6 6 13 17
LF 5 6 13 13 13 17 13
TS 0 3 0 1 6 0 0
FS 0 2 0 1 6 0 0
The parameters and slacks are calculated as follows: The critical path is: A-> C-> F-> G
Based on the Work Breakdown Structure (WBS), a timeline or Gantt chart showing the allocation of time to the project phases or iterations should be developed. This Gantt chart would identify major milestones with their achievement criteria. It must contain duration estimation of all the necessary activities to be carried out during the project development along with the human resources responsible for the respective tasks. Activity dependencies are also required to be mentioned in it. Use MS Project to develop gantt chart.
The application tools, which are to be used on front and back end of the system to be developed, should be listed. The reasons for these tools should also be described. Identify what the needs for tool support are, and what the constraints are, by looking at the following: The development process. What tool support is required to effectively work? For example, if the organization decide to employ an iterative development process, it is necessary to automate the tests, since you will be testing several times during the project. Host (or development) platform(s). Target platform(s). The programming language(s) to be used. Existing tools. Evaluate any existing and proven tools and decide whether they can continue to be used. The distribution of the development organization. Is the organization physically distributed? Development tools generally support a physically distributed organization differently. The size of the development effort. Tools support large organizations more or less well. Budget and time constraints
Another name used for this document is the Product Requirement Document. There are certain checkpoints that help to verify that the vision document is fulfilled. Checkpoints: Have you fully explored what the "problem behind the problem" is? Is the problem statement correctly formulated? Is the list of stakeholders complete and correct? Does everyone agree on the definition of the system boundaries? If system boundaries have been expressed using actors, have all actors been defined and correctly described? Have you sufficiently explored constraints to be put on the system? Have you covered all kinds of constraints - for example political, economic, and environmental? Have all key features of the system been identified and defined? Will the features solve the problems that are identified? Are the features consistent with constraints that are identified?
Risk List
Timing issues Implementation issues Marketplace competition User acceptance Negative impacts The possibility of suffering harm or loss in terms of danger is called risk. Regarding the importance of risks a list is to be maintained. Risk list is a sorted list of known, open risks to the project, sorted in decreasing order of importance, associated with specific mitigation or contingency actions. Purpose The Risk List is designed to capture the perceived risks to the success of the project. It identifies, in decreasing order of priority, the events that could lead to a significant negative outcome. It serves as a focal point for project activities and is the basis around which iterations are organized The Risk List is maintained throughout the project. It is created early in the Inception phase, and is continually updated as new risks are uncovered and existing risks are mitigated or retired. At a minimum, it is revisited at the end of each iteration, as the iteration is assessed. *********************REQUIREMENTS ENGINEERING*********************
1 Introduction
Requirements engineering process provides the appropriate mechanism for understanding what the customer wants, analyzing need, assessing feasibility, negotiating a reasonable solution, specifying the solution unambiguously, validating the specification and managing the requirements as they are transformed into an operational system. The task of capturing, structuring, and accurately representing the user's requirements so that
they can be correctly embodied in systems which meet those requirements (i.e. are of good quality).
Requirements elicitation Requirements analysis and negotiation Requirements specification System modeling Requirements validation Requirements management
Here, requirements specification is to be discussed. Requirements specification would lead to the following four steps: Identify external interfaces Development of context diagram Capture shall statements
b. Perform Refinement After over specifying the entities, you have to refine them on the basis of your business logic. For example, in this example we found the following entities more related to our business logic;
1.8.1 Introduction
Green Wood (GW) is a multinational company, which deals in manufacturing, delivery and selling of sports goods and sports ware throughput the world. GW deals in almost all types of support goods and has its manufacturing set-up in Sialkot, Pakistan. They have their own products selling outlets and showrooms throughout the world. They also supply their goods to other dealers on wholesale ordering basis. Currently GW is managing their operations manually. GW management has decided to completely automate the whole business processes of the company. Also in order to increase their sales, GW wants to have fully automated system, which can support online 24x7 electronic buying and selling.
Sport goods manufacturing Sport goods ordering and supply Consumer Outlets & Showrooms
Following departments/offices facilitates above mentioned business services: 1.8.2.1Sport Goods Manufacturing Department Deals in manufacturing of sport goods. 1.8.2.2 GW Supplier Office It deals in supply of sport goods to their own selling outlets or to other dealers. It also processes orders from the dealers. Following are some business processes, which are handled in this department.
Order Management Customer Account Maintenance Order Processing Shipping Department Product Inventory Accounts & Administration CRM MIS HRM & Pay Roll Sales & Marketing
1.8.2.3 GW Consumer Outlets & Showrooms They directly deals with buying and selling of goods to customers Shopping Centre Stock Maintenance 1.8.3 Business Organization Chart
1.8.4.1 Phase I
Phase I includes following business areas: Customer Account Maintenance Order Processing Product Inventory
1.8.4.2 Phase II
Phase II involves complete automation of the Supplier Department. Phase II includes following business areas: Accounts and Administration CRM MIS HRM and Payroll Sales and Marketing
1.8.5.1 Order Management 1. Only registered customer could place order for goods. So a customer must be able to register himself to the system by requesting for registration. There should have to be two types of registration process, normal and privileged. Customer should provide his personal, organizational, authorizer and payment details in the registration request process. All the requests are to be viewed by the customer account administrator (CA). CA could accept, reject and temporarily waive the requests on the basis of credentials provided. If admin accept the registration request, a login information (Password, Id & role) should be assigned and mailed to the corresponding customer. Similarly customer could also request for the updating of his record. He could request for different types of updating e.g. updating of his personal/shipping details, or upgrading of his status from registered to privileged customer, or updating of his payment methodology. Customer could also view his details for verification purposes and similarly CA could search any customer detail and could also view the whole list of currently registered customers. 2. Both registered and privileged customers could order for goods. Customer places an order by providing his ID and other order related details A complete order must contain personal details of the customer, shipping information, product list along with product quantity and payment details. Customer could make payment either through cash or through a credit card. Accordingly invoice should be generated, and user should be given the option to finally place the order and in the end confirmation receipt must be given to the customer. Invoice contains the list of complete product along with their pricing details. It also contains discounts, sales tax and total pricing details. User could also view the status of their orders by providing the Order Number. Privileged customers could also place the request for the updating of their orders if the orders are not shipped. They could place request for the updating of shipping address and product quantity only. Similarly the privileged customer could also place the request for the cancellation of the order. But all these updating and cancellation requests are to be viewed by the Order Administrator in order to accept, reject, or waive them. 3.Action List mechanism should be adopted for better notification/messaging services, business interaction and control. An action event should be generated for a corresponding administrator when a request is placed for updating of orders or customer details etc. These actions could be generated by the Order Operator or through the updating process. Similarly on the other hand corresponding administrator could view his Action List containing different actions, and correspondingly process these pending actions. Similarly when the action processing is completed or if the action is just a notification message then administrator could delete these actions from the action list. Actions List configuration should be done by System Admin, who could add new action events and delete any current event from the system. 4. Shipping Department ships the corresponding orders.
1.8.8 Perform Refinement After over specifying the entities, you have to refine them on the basis of your Business Logic. For example, in this example we found the following entities more related to our Business Logic; Customer Inventory Shipment Account
A customer shall place order for goods A customer shall register himself to the system The system shall provide two types of registration process, normal and privileged CA CA shall accept, reject and temporarily waive the requests on the basis of credentials provided. Customer A customer shall login to the system and can change his password System shall update the customers Request System shall process different types of updating e.g. updating of his personal/shipping details, or upgrading of his status from registered to privileged customer, or updating of his payment methodology Customer A customer shall view his details for verification purposes CA shallaccept, reject and temporarily waive the requests on the basis of credentials provided. System shall search any customer details Both registered and privileged customers willorder for goods. Customer Customer shall make payment; either through cash or through a credit card System shall generate invoice, confirmation receipt and finally will place order User shall view the status of their orders by providing the Order Number Privileged customers shallplace the request for the updating of their orders if the orders are not shipped. Privileged Privileged customer shall place the request for the cancellation of the order. customer But all these updating and cancellation requests are to be viewed by the Order Administrator in order to accept, reject, or waive them. Administrator An action event "shall" be generated for a corresponding administrator when a request is placed for updating of orders or customer details etc Administrator Corresponding administrator "shall" view his Action List containing different actions, and correspondingly process these pending actions When the action processing is completed or if the action is just a notification message then administrator "shall" delete these actions from the action list
24
A customer shall register himself to theUC_Registration_Request system The system shall provide two types ofUC_Place_Order_Request registration process, normal and privileged CA shallaccept, reject and temporarily waiveUC_Process_Customer_Request the requests on the basis of credentials provided. A customer shall login to the system and canUC_Login change his password System shall update the customers Request UC_Update_Request System shall process different types ofUC_Change_Status updating e.g. updating of his personal/shipping details, or upgrading of his status from registered to privileged customer, or updating of his payment methodology A customer shall view his details forUC_View_Customer_Details verification purposes System shall search any customer details UC_Search_Customer CA shallaccept, reject and temporarily waiveUC_Accept_Customer_Request the requests on the basis of credentialsUC_Reject_Customer_Request provided. UC_View_Customer_Request
Both registered and privileged customersUC_Place_Order_Privleged willorder for goods. Customer will make payment; either throughUC_Pay_For_Order cash or through a credit card System will generate invoice, confirmationUC_Invoice_Generation, receipt and finally will place order User shall view the status of their orders byUC_Serach_Orders providing the Order Number Privileged customers shallplace the requestUC_Update_Request for the updating of their orders if the orders are not shipped. 25
2.0
3.0
3.0
Privileged customer shall place the requestUC_Change_Payment_Details, for the cancellation of the order. But all these UC_Change_Status, updating and cancellation requests are to beUC_Change_Personal_Details viewed by the Order Administrator in order to accept, reject, or waive them. The System shall generate an action eventUC_Create_Action, for a corresponding administrator when a request is placed for updating of orders or customer details etc Corresponding administrator shall view hisUC_View_Action, Action List containing different actions, and correspondingly process these pending actions
Highest
1.0
2.0
2.0
2.0
1.0
A customer willUC_1 place order for goods Highest A customer shallUC_2 register himself to the system Highest Customer willUC_3 make payment either through cash or through a credit card Highest System willUC_4 generate invoice, confirmation receipt and finally will place order Medium Both registered andUC_5 privileged customers willorder for goods. Medium The system shallUC_6 provide two types of registration process, normal
UC_Registration_Request
UC_Pay_For_Order
UC_Invoice_Generation,
UC_Place_Order_Privleged
UC_Place_Order_Request
26
3.0
Medium
1.0
Medium
1.0
Medium
1.0
Medium
1.0
Medium
1.0
Medium
2.0
Medium
and privileged The System shallUC_7 generate an action event for a corresponding administrator when a request is placed for updating of orders or customer details etc CA shallaccept,UC_8 reject andUC_9 temporarily waiveUC_10 the requests on the basis of credentials provided. System shallUC_11 update the customers Request System shallUC_12 process differentUC_13 types of updatingUC_14 e.g. updating of his personal/shipping details, or upgrading of his status from registered to privileged customer, or updating of his payment methodology A customer shallUC_15 view his details for verification purposes System shallUC_16 search any customer details User shall viewUC_17 the status of their orders by providing
UC_Create_Action
UC_Update_Request
UC_View_Customer_Details
UC_Search_Customer
UC_Serach_Orders
27
2.0
2.0
1.0
3.0
3.0
the Order Number Medium Privileged UC_18 customers shallplace the request for the updating of their orders if the orders are not shipped. Medium Privileged UC_19 customer shallUC_20 place the requestUC_21 for the cancellation of the order. But all these updating and cancellation requests are to be viewed by the Order Administrator in order to accept, reject, or waive them. Lowest A customer shallUC_22 login to the systemUC_23 and can change his password Lowest Corresponding UC_24 administrator shall view his Action List containing different actions, and correspondingly process these pending actions Lowest When the actionUC_25 processing is completed or if the action is just a notification message then administrator shall delete these actions from the
UC_Update_Request
UC_View_All_Orders UC_Manage_Order
UC_Login,
UC_View_Action,
UC_Delete_Action
28
action list
UC_PlaceOrderRequest, UC_PlaceCustomerRequest
Business
Business
Business
Business Business
UC_View_Customer_Details
Business
UC_SearchCustomer
Business
29
10 2.0
11 2.0
12 2.0
Both registered andB1 privileged customers willorder for goods. Customer will makeB1 payment; either through cash or through a credit card System willB1 generate invoice, confirmation receipt and finally will place order
UC_Place_Order_Privellged
Business
UC_Pay_For_Order
Business
UC_Invoice_Generation
Business
30
31