Software scope is the part of project planning that involves determining and documenting a list of specific project goals, tasks, costs and deadlines . Software scope describes the data and control to be processed, function, performance, constraints, interfaces, and reliability. Functions described in the statement of scope are evaluated and in some cases refined to provide more detail prior to the beginning of estimation .
The first activity in software project planning is the determination of software scope. Function and performance allocated to software during system engineering should be assessed to establish a project scope that is understandable at the management and technical levels .
The most commonly used technique to bridge the communication gap between the customer and developer and to get the communication process started is to conduct a preliminary meeting or interview. In the first meeting between the software engineer (the analyst) and the customer, Neither person knows what to say or ask; both are worried that what they do say will be misinterpreted; both are thinking about where it might lead; both want to get the thing over with; but at the same time, both want it to be a success. Obtaining Information Necessary for Scope
The first set of context-free questions focuses on the customer, the overall goals and benefits. For example, the analyst might ask : • Who is behind the request for this work? • Who will use the solution? • What will be the economic benefit of a successful solution? • Is there another source for the solution?
The next set of questions enables the analyst to gain a better understanding of the problem and the customer to voice any perceptions about a solution: • How would the customer characterize "good" output that would be generated by a successful solution? • What problem(s) will this solution address? • Can you show me (or describe) the environment in which the solution will be used? • Will any special performance issues or constraints affect the way the solution is approached?
The final set of questions focuses on the effectiveness of the meeting. T hese are called "meta-questions" and propose the following list : • Are you the right person to answer these questions? Are answers "official"? • Are my questions relevant to the problem that you have? • Am I asking too many questions? • Can anyone else provide additional information? • Should I be asking you anything else?
Once scope has been identified (with the concurrence of the customer), it is reasonable to ask: Can we build software to meet this scope? Is the project feasible ? Feasibility
Technology — Is the project technically feasible? Can defects be reduced to a level matching the application’s needs? Finance — Is it financially feasible? Can development be completed at a cost the software organization, its client, or the market can afford ? Time — Will the project’s time-to-market beat the competition ? Resources — Does the organization have the resources needed to succeed? Software feasibility has four solid dimensions:
A Scoping Example A conveyor line sorting system
The conveyor line sorting system (CLSS) sorts boxes moving along a conveyor line. Each box is identified by a bar code that contains a part number and is sorted into one of six bins at the end of the line. The boxes pass by a sorting station that contains a bar code reader and a PC. The sorting station PC is connected to a shunting mechanism that sorts the boxes into the bins. Boxes pass in random order and are evenly spaced. The line is moving at five feet per minute. CLSS is depicted schematically in the above figure.
CLSS software receives input information from a bar code reader. Bar code data decoded in box identification format. The software will do a look-up in a part number database containing a maximum of 1000 entries to determine proper bin location for the box currently at the reader (sorting station). The proper bin location is passed to a sorting shunt that will position boxes in the appropriate bin. A record of the bin destination for each box will be maintained for later recovery and reporting. CLSS software will also receive input from a pulse tachometer that will be used to synchronize the control signal to the shunting mechanism. Based on the number of pulses generated between the sorting station and the shunt, the software will produce a control signal to the shunt to properly position the box.