Section 2: Statement of Work (SOW)
2.2
Milestones and Deliverables
2.2.1 Completion of Phase I: Analysis and Design
2.2.2 Completion of Phase II: Development/Code Construction
2.2.3 Completion of Phase III: Testing
2.2.4
Completion of Phase IV: Documentation
This document specifies requirements to extend the Triangle language. This introductory section provides information on the organization issuing this product, the target users, and the purpose of the product.
Compilers Are Us (CRU) is issuing this requirements document. CRU makes software products that help improve programmer productivity. The target user for this product is average everyday software engineer.
The purpose of the product is to compile source programs written in Triangle. The product must deliver satisfying user experience and provide maximum extensibility or sufficient framework for future visual and technical enhancements. Overall, the product is intended to achieve the following strategic objectives:
(a) Support CRU customers/clients.
(b) Support the needs of the intended audience.
(c) Offer more programming tools for the users.
(d) Increase the credibility of CRU.
(e) Provide a more efficient and effective compiler.
CRU is seeking to expand its product offering and enhance customer service to its user community by extending it’s suite of compilers. Further, by expanding its product offering, CRU will be better positioned to support future expansions in the software development environment market.
The Triangle language needs additional constructs to allow software engineers mor flexibility in developing complex programs.
The Triangle compiler is written in Java which allows portability across multiple platforms. The updated design should not disturbe existing constructs and will allow for additional constructs in the future.
The developer will design, develop, and test the product according to the specifications listed in Section 2 of this requirements document.
The product development will consist of four phases or subtasks:
(a) Analysis of the requirements and design of the additional constructs
(b) Development//Code Construction
(c) Testing
(d) Documentation.
Following are detailed specifications of this requirements statement.
At the
conclusion of the project the Triangle
compiler will have the additional constructs describe below without any
dedregation to it current constructs.
(a) Programmer-centric design
(b) Consistent look and feel throughout the product
(a) Uses existing architecture with little or no modifications. Any modifications must be justified and documented.
(b) Supports long-term accessibility (permanence of product structure)
(a) Extend Triangle with a repeat-command:
repeat C until E
is executed as follows. The subcommand C is executed, then the expression E is evaluated. If the value of the expression is true, the loop terminates, otherwise the loop is repeated. The subcommand C is therefore executed at least once. The type of the expression E must be Boolean.
(b) Extend Triangle with a for-command:
for I from E1 to E2 do C
is executed as follows. First, the expressions E1 and E2 are evaluated, yielding the integers m and n (say), respectively. Then the subcommand C is executed repeatedly, with identifier I bound in successive iterations to each integer in the range m through n. If m > n, C is not executed at all. (The scope of I is C, which may use the value of I but nay not update it. The types of E1 and E2 must be Integer.) Here is an example:
for n
from 2 to m do
if prime(n) then
putint(n)
(c) Extend Triangle with a case-command of the form:
case E of
IL1: C1;
…;
ILn: Cn;
else: C0
This command is executed as follows. First E is evaluated; then if the valued of E matches the integer-literal ILi, the corresponding subcommand Ci is executed. If the value of E matches none of the integer-literals, the subcommand C0 is executed. (The expression E must be of type Integer, and the integer-literals must all be distinct.) Her is an example:
Case
today.m of
2: days
:= if leap then 29 else 28;
4: days
:= 30;
6: days
:= 30;
9: days
:= 30;
11: days
:= 30;
else: days
:= 31
The Triangle compiler project shall perform the following subtasks:
2.1.2.1 Analysis and Design of the Product. In this phase, develop a written requirements document based on analysis and assess and recommend most critical requirements for the product. Be sure to include any constraints the new constructs will place on the compiler (efficiency, speed, etc.) and any impact to the existing architecture and design. Recommend requirements in priority order. Produce a design document describing the product design.
2.1.2.2 Development/Code Construction. Develop all the required functionalities. Modify existing code to accommodate the added constructs. The additions and changes shall be well documented.
2.1.2.3 Testing. Develop a test plan that includes test scenarios. Implement tests to determine the quality and reliability of the product and to refine the product’s technical components. Quality will be assessed through compiler design issues. Reliability of the product will be determined through tests of performance consistency and response time as well as load simulation tests.
2.1.2.4 Documentation. This phase will produce an update to the user’s
manual and documented source code. The
user’s manual should be delivered with the updated source code.
Deliver one paper copy and one electronic copy using MS Word 97 or 2000 of each written deliverable.
Following are the milestones and their associated deliverables:
2.2.1.1 Requirements Analysis Document – A detailed document defining the requirements identified as part of Sub-Task 2.1.2.1.
2.2.1.2 Technical Specifications Document – A detailed description of the design and methodologies that will be employed in the development of the upgrade to the compiler.
2.2.1.3 Development Schedule and Plan – A detailed schedule, with weekly milestones, that should address the major components of the development process. This must include specific design/redesign steps, integration with other components, testing, and quality assurance.
2.2.2.1 Working System (all additions to the compiler)
2.2.3.1 A detailed test plan. The test plan deliverable for this phase will include:
(a) Functionality testing - which will verify if the additions to the compiler conform to specifications, and correctly perform all primary and required functions.
(b) Details testing - which will check the compiler’s new constructs. That is, if they are consistent with established design standards set forth in Phase I.
(c) Performance testing - which will include compiler design issues.
2.2.4.1 Well documented source codes and for all additions to the compiler.
Present a weekly progress report to the Project Manager:
(a) Work accomplished during the reporting period
(b) Deliverable progress, as a percentage of completion
(c) Problem areas
(d) Planned activities for the next reporting period
(a) All milestone completion dates are met.
(b) All deliverables are complete and approved.
(c) All tests are completed successfully.
(d) All source code, object code, data files are complete.
(e) All documentation completed and updated as required.
Deliver completed products after every phase of the project as listed in Section 2.2 of this Task Order. Project Manager will determine satisfactory completion of deliverables.
All materials developed as a result of this Project shall be and remain wholly the property of the UNCP.
The following deliverables and dates will be met:
|
Deliverable |
Date |
|
Weekly Progress Report briefing |
Every Friday starting March 18, 2005 |
|
Requirements Analysis Peer Review Report |
March 18, 2005 |
|
March 18, 2005 |
|
|
Technical Specification Document Peer Review Report |
April 8, 2005 |
|
Technical Specification Document |
April 8, 2005 |
|
Development Schedule and Plan |
April 8, 2005 |
|
Test Plan Peer Review Report |
April 15, 2005 |
|
Test Plan |
April 15, 2005 |
|
Code Peer Review Report |
April 15, 2005 |
|
Test Results Report |
April 22, 2005 |
|
Working System Demonstration |
April 22, 2005 |
|
Source Code with Documentation |
April 29, 2005 |
|
User's Manual Peer Review Report |
April 29, 2005 |
|
User's Manual |
April 29, 2005 |