projectEval

advertisement

Project Evaluation

1 Overview of the software development life cycle

I applied the most widely used software development life cycle model (Waterfall model) to develop my MSE project. Waterfall model consists of five stages: (1). Requirement specification; (2) software design; (3) code generation; (4).Testing and integration; (5).

Maintenance. My MSE project development process includes three phases: (1). requirement specification phase, (2). design phase, and (3). implementation phase. These three phases covered all stages in the waterfall model. Each development phase was well documented, and all documents were reviewed by the committee members. New phase was started after completion of the previous phase. More important, after each phase, review and formal inspection was done. In the implementing phase, unit and integration test were performed to assure quality of the software.

2 Evaluation of phase1

Phase one focuses on the requirement of the software development. This stage is based on the discussion with Professor Bleyberg to make the requirements clear. After a reasonable understanding is achieved, a basic idea and a preliminary design have been formed that benefits the further understanding of the requirements. With this understanding, next steps are to gather and specify the requirements of the project, including background review, project overview, software requirement specification

(SRS), cost estimate and project plan. Some figure is also made to describe the system configuration.

The SRS is the central task in this phase, it states the purpose of the tool, the expectation of the potential user, and the functionality the tool will provide. When the project reaches the final stage, it turned out that all the requirements specified in Phase 1 have been achieved. I use the function positions to estimate the size of my product, use COCOMO model to calculate the development time. The estimated size of my project is 5.1 kLOC.

The estimated development time of my project is 7.0 months. The actual size of my project is 3.9 kLOC. The actual development time is 10 months. The actual size of code is far less than the estimated value. This is understandable because java has a lot of library packages which actual coding benefits from them for saving lines and time.

3 Evaluation of phase2

The major task in Phase II is to develop a detailed design guiding the implementation of project. It includes object model, formal specification, SQA, test plan, and formal technique inspection. The object model is the central task of this phase. The object model outlines the overall software architecture of project.

It specifies what kinds of components consist of the whole project; what kinds of objects constitute each component, what kinds of main methods is composed of each object. All these design issues are very important for the implementation step. The raw idea formed in Phase One is further developed in details, especially in the form of a computer language (Java). The results of this make some changes with those object model roughly designed in Phase One. To make the Phase One document consistent with the current design requirement, the formal technique inspection has been performed in this phase.

After finishing the object model, we need to choose one formal specification language to

specify the project design. I choose UML/OCL to specify the object model of my project.

The formal specification specifies exactly what each object do, what each method of the object do. The sequence diagram specified the call sequence of related methods. All this information is very important fro the phase III. I use the tool USE version 2.0.0 to verify the correction of my formal specification. Because this tool is a new tool, I spend one week to study it, then I use it in my case.

The test plan, SQA plan, and formal inspection are also very important for software design. With the test plan, I can improve the performance of my program by taking all kinds of possibilities. The SQA plan gives me a guideline to make sure if the software meets the all functionality requirements, technical requirements, and reliability considerations. In the formal specification, committee member can gave me very helpful suggestions.

4 Evaluation of phase3

Phase III of the project focus on the actual implementation and test of the tool. After understanding the requirement properly and designing the project efficiently, the coding was going smoothly for major functions. At first, I modified and developed the

DBConnectionManager component, and wrote a small application program to use the

DBConnectionManager component to connect the dababase. Secondly, I developed an

IVMSManager component, and wrote a small program to run this IVMSManager component, which configure the system. Thirdly, I implemented the server component class to handle all the clients logging on. Fourthly, I wrote the client component through

which voters can cast the ballots. Finally, I put these three components together to make the whole system run.

In this phase, testing is also finished. Basically, this task is performed simultaneously while coding. When the coding reaches the end, the system test and integration test are performed using the test case designed in Phase II. At least, the test report has been provided as in the above section. Refer to Section 14 for details.

5 Conclusion

The project is finished successfully according to the software requirement specification in the Phase I. It was a great experience for me to complete such a parallel and distributed computation project in a professional style. Working on the project not only gives me a good understanding of software life cycle, but also gives me a chance to learn scientific programming, framework implementation. I believe the whole process will make me a better professional in this fascinating field.

Download