理学学士作业:荣誉计算机与信息系统
1.0 Project Plan 1项目计划
1.1.1项目的目的
这个项目的目的是确保项目工作,,确保项目按照完全功能的系统要求。然而,如果我们想通过完善的系统做的接近,我们必须通过这些测试,要求在“测试规则设计、需求分析、软件规范”,但我们做我们必须清楚地了解从公司发回重审的规则之前,他们的主要功能是什么,其性能的限制,系统接口,特殊的要求是什么,发展综述。
1.1.1 Project Purpose
This project purpose is to make sure the project works and to ensure the project follow exactly the function which is the system remand. However, if we want to do the close by the perfect system, we have to pass through those test and remand and rules under the “TEST, Design, requirement analysis, software specification”, but before we doing the rules we have to understand clearly about the remand from the company, what is their main function, what is the performance limitation, system interface, special requirement, development review.
Table of content目录
1.0 Project Plan1.1 Project Purpose
1.1.1 Main Function
1.1.2 Performance Limitation
1.1.3 Performance the plan
1.1.4 Special Requirement
1.1.5 Development Review
1.2 Resources
1.2.1 Human Resource
1.2.2 Hardware Resource
1.2.3 Software Resource
1.3 Schedule
1.3.1 Estimation
1.4 reduce the time to complete the system before the deadline
2.0 Quality Control
2.1 Requirement Analysis
2.2 Software Specification
2.3 Design
2.4 Test
2.5 Maintain
3.0 Recommendation & conclusion
1.1.2 Main Function
function in Input Description
1 User name when log in
2 Password when log in
3 Verification code when log in
4 User name when register
5 Password when register
6 E-mail address when register
7 Confirmed E-mail address when register
8 ID number when register
9 Real full name when register
10 Date of birth when register
11 Gender when register
12 Default Bill/Ticket Shipping address when register
13 Password recovery secure question and answer when register
14 Phone number when register
15 Verification code when register
16 Number of trains when searching for trains
17 Preferred date of train when searching for trains
18 Preferred departure station when searching for trains
19 Preferred sear place when searching for trains
20 Destination to go when searching for trains
21 Preferred class when searching for trains
22 Verification code when searching for trains
23 Preferred credit card number to use when paying
24 Credit card PIN when paying
25 Name on Credit Card when paying
26 Expiry date of Credit Card when paying
27 One-time PIN for credit card payment
28 Select/Input new bill/ticket shipping address when paying
29 Verification code when paying
30 Date of ticket shipping after paying if a physical ticket is required
31 Date of advanced ticket shipping for more than 15 days
32 Ticket cancelling/refund with reasons
Output:
Function in output Description
1 Welcome page when successfully logged in
2 Error page when wrong username/password/verification code
3 Error message when entering invalid information when register
4 Activation page when successfully registered
5 Timetable of trains when user is searching
6 Error message when user entered invalid value in searching block
7 Detail information when user clicked on a certain train
8 Availability/unavailability of trains on user preferred date
9 Availability/unavailability of seats on user preferred date
10 Availability/unavailability of class on user preferred date
11 Booking/reservation details of the train confirmation
12 Payment/billing details of the ordered train
13 Successfully paid/unsuccessfully paid with reasons
14 Ticket refund success with money back details
15 Ticket refund fail with reasons
Inquiries:
Function in inquires Description
1 Customer preferred destination and date
2 Preferred train, seat and class
3 Recent promotions
4 Ticket price (with/without insurance)
5 Earliest booking time and booking deadline
6 National holidays and local festivals
7 Is it possible to change booked date/seat/class
8 Is it possible to cancel and refundable
1.1.3 Performance Limitation
1. condition and limitation
Complete this project should have the conditions:
Knowing well with C++ language and HTML and website design knowledge can use those to complete this project and all function their demand.
In fact, our team has professional designer and developer and analysts
2. the product
booking ticket online system, it need to insert on the website to work with the website.3. here is the System Requirements :
Windows2000, XP or win7 operating system.
Computer/Processor
Computer with a 233MHz processor or higher (Pentium processor recommended)
Operating System
Windows Vista 32-bit or higher
Memory
Windows Vista 32-bit – 512 MB or higher
Hard Drive Space
Windows Vista 32-bit – 70 MB or higher
Drive
CD-ROM drive (if installation is done from a CD-ROM).
Display
Super VGA (800 x 600) or higher-resolution monitor with 256 colors.
Peripherals
Modem or Internet connection; Microsoft Mouse, Microsoft IntelliMouse, or compatible pointing device
4. Service
Our team has the right for their installation and maintain, commissioning and operating
5. Acceptance criteria
When this project is complete our team will choose someone to test it, if there are bug or any error we will fix it, and collect the bugs and suggestion, until it have no bugs for all functions and system.
1.1.4 Special Requirement
‘The system must be live within 8 months of the start of the project.They are prepared for the costs to be increased (within reason) in order to achieve this.’
1.1.5 Development Review
the human
1.2 Resources
1.2.1 Human Resource
The project testing performance The job taken by:
Project plan A
Analysis requirement B
Specified design C
Total design D
Software testing A,B.C.D
Software modification A,B
User setting C,D
1.2.2 Hardware Resource
Hardware:
This tool is a simple encryption tool, it may not demand high requirement for the computer CUP and so on.
Intel Pentium Processor, 550 MHz or greater.
Minimum 128 MB of RAM capacity or more.
Minimum of 16 MB Graphic Card RAM capacities or more.
Recommended hard disk space of 512M or more.
1.2.3 Software Resource
Dreamweaver, VC++ visual, jsd, windows 7 those are the basic software support as
Testing software:
Browses, IE 8, fire fox, 360 safe, we also have text file or another performance software
1.3 Schedule
1.3.1 Estimation
I am using the cocomo to estimate as the function points
Calculation method as the follows
Each element of the adjustment factor Fi, i = 1,2 ..., 15, value
Very low, low, normal, high, high, high, 6 grade
Normally under Fi, = 1
Boehm recommended Fi, of value
(0.70,0.85, 1.00, 1.15, 1.30, 1.65)
E = aLb
D = cEd
E workload, PM
D is development time, M
L is the project lines of code estimates DKSI
15 Fi-values selected EAF is calculated as follows
Basic values, the parameters a, b, c, d Choice
software types a b c d Usage
Tissue 2.4 1.05 2.5 0.38 Various types of applications Chosen
Semi-independent 3.0 1.12 2.5 0.32 Various types of applications, and programming procedures
Embedded 3.6 1.20 2.5 0.32 real-time processing and control procedures, operating system
MM=a*(KDSI)b*(f1+f2+……f15); TDEV= c*(MM)d.
Boehm recommended Fi, of value
1 2 3 4 5 6
0.70 0.85 1.00 1.15 1.30 1.65
Software Reliability 5 F1
Software complexity 4 F2
Size of database 6 F3
Program execution time 6 F4
The program memory size 2 F5
Changes in the software development Environment 1 F6
The response speed of the software Development environment 1 F7
the ability of Analysts 6 F8
the ability of the programmer 6 F9
Experience on the application of the field 5 F10
Experience of the development environment 3 F11
Program shooting languages experience 3 F12
The ability of the software development 3 F13
The quality and quantity of software tools 3 F14
The progress of the requirements for software 3 F15
Type of Tissue
KDSI RANGER (1~50)
Following by the functions KDSI =23
MM=a*(KDSI)b*(f1+f2+……f15)
MM=2.4*23*1.05(1.3+1.15+1.65+1.65+0.85+0.7+0.7+1.65+1.65+1.3+1+1+1+1+1)
=2.4*23*1.05*18.15
=1051.974
TDEV= c*(MM)d
=999.3753
Salary is 8000 dollars/p-m
P-M= E=aLb=2.4*23*1.05=57.96
D=cEd=2.5*67.96*0.38=55.062
P-M≈58
Total Cost will be 8000*58=464,000 dollars
It could be 8 people working for 7.25 months.
1.4 reduce the time to complete the system before the deadline
Method 1st
To reduce the time of produce software project by increasing the number of people.
Because the part our BOSS is an anxious man he want to finish it below 8 month(36week) so we are going to increasing the number of people who are working on the project, before the number is 7 now we change it to 8 it will complete the project before 8th month.
Method 2nd
Purpose to reduce the project time, that can reduce part of it also can make it using shorter time.
An automated test plans and development --- the initial test of the increased workload
The automated testing initially increased the complexity of the work test. Need to be considered before the decision to introduce automated testing tools, many special places, you need to review the plan AUT or the SUT in order to determine whether it is compatible with the test tool. Sometimes the market does not meet the automation needs of the tool, then you need to develop their own test software and frameworks. In addition, the need to review not automated test support the validity of the sample data. The sequence of the type of data required, and over the body, and then specify Lakes or development need to paddle the sample data plan, you also need to consider modularity and reuse of test scripts.
Test engineering development is a slow and expensive and time-consuming process. When the software requirements or software module changes, test engineers often have to re-development of the existing test project, and start from scratch to create a new testing process. The ability to use test management and automated test tools to generate or modify the testing process, calls the only good fertilizer for a small part of the manual testing process.
Method 3rd
Reduce the testing
Perform the test, you must meet the entry criteria. For various reasons, the verification of the access standards should be automated. Access standards for the test team is ready to begin testing a tailor-made to build. To accept a software build in the system during the test, you need to meet a variety of access standards, most of which should be automated.
Here are some standards to be automated:
All unit testing and integration testing must be successfully implemented.
Version of the software without any problem.
The building must pass a smoke test to check before the function can still work.
Version must be included in the document, introduced in this version, the newly added content and modify content.
Defects in the new version must be updated to "test" state.
The source code must be saved in a version control system.
Access standards after verification, it can be tested. Manually test the labor intensity of playing the Penguin error-prone. Automatic testing tools or internally developed framework Yun Xu test script execution, a return visit, only a few public intervention. Ideally, after the appropriate settings, test engineers only need to startup scripts, tools unattended execution. The test compares the expected results and actual results, and report the corresponding results. Need to perform a number of tests you can perform a number of tests can also set the start point in time. Using this method is simple, flexible, test engineers can focus on other priorities.
Automatic testing tools now only need to click the icon, you can select and execute a particular test works. With modern automatic test engineering Builder. Create and modify substantially reduced the time spent in the testing process than manual testing, and sometimes only takes a few seconds.
2.0 quality control 质量控制
2.1 requirement analysis
The rules of requirement analysis Are we working under those rules( YES ,NO)
Required to ensure that the customer system is feasible y
To ensure the customer requirements is specified under the their request y
To avoid between customer and developer has misunderstanding y
To provide the customer to have suitable software system reality demand y
Below are some of the referencing shows:
To help us to understand more about the rules in analysis requirements
1. Demand raised
Focused on the purpose of describing the system. The demand made and analysis focus only on the point of view of users of the system. Users, developers and users to identify a problem area, and define a description of the system. Such a definition is called the system specifications, and it acts as a contract between users and developers.
2. Requirement Description
The main task of the analysts in the problem analysis phase are: identification, synthesis and modeling of the needs of users, clear the ambiguity, ambiguity and inconsistency of the user needs to analyze the data requirements of the system logic for the original and target software model. Analysts to be the original problem will understand the software development experience combined in order to find What are the requirements to the one-sidedness or short-term behavior of the user's unreasonable demands, which are not but the true value of the potential demand.
3. Requirements review
In the needs assessment stage, analyzing the requirements specification to users and software designers with their own generated for review and preliminary user manual to ensure that the software needs complete, accurate, clear, specific, and users and software the design agreed understanding of the requirements specification and preliminary user manual. If it is found missing or fuzzy points, must be corrected as soon as possible, re-check.
Software requirements analysis process
1. Software requirements analysis work to be done in-depth description of the functionality and performance of the software to determine the details of the limitations of the software design and software interface with other system elements, the definition of software effectiveness of demand.
2. Needs analysis should be noted that all the information and requirements are standing on the user's perspective. Try to avoid the analyst's subjective imagination, and try to analyze the progress presented to the user. Without the direct guidance of the premise, allowing users to carry out the inspection and evaluation. To achieve the accuracy of the needs analysis.
3. Analysts through demand analysis, and stepwise refinement of software requirements, and describe the software to deal with the data field, and to software developers that can be converted to the design data, said data structure design and process design and function. Upon completion of the software, the software specifications developed instructions also provide the basis for the evaluation of software quality
2.2 software specification
Rule of software specification Are we working under those rules( YES ,NO)
Tracking documents through the creation of demand, to ensure that consistent specifications and system requirements. y
Ensure that the specifications can improve system flexibility, maintainability and performance. y
Ensure that the test strategy y
Make sure to create a realistic development schedule, including pre-assessment. y
Ensure that a formal change procedures for system design. y
Project back ground
A: this a company named GoForlt
This project is taken by our team.
B: this project system is to build an traveling ticket online booking system.
Design
Rule of Design Are we working under those rules( YES ,NO)
To ensure that established standards used to describe the design and ensure compliance with these standards. y
To ensure proper control and use the documentation of the design changes. y
To ensure that the system design component has been approved in accordance with the guidelines agreed to start coding. y
To ensure that the design review in accordance with the progress. y
To ensure that the code to follow the established style, structure and documentation standards. y
To ensure that the code after appropriate testing and integration, and modification of the coding module proper identification. y
View code is written to follow the established progress. y
Ensure that the code review in accordance with the progress. y
Design Principles
The design model for the analysis should be traceable: The software modules may be mapped to multiple needs.
The design structure should be as much as possible to simulate the actual problem.
The design should show consistency.
Do not design as writing code.
Should be able to assess the quality of the design is created.
Review designed to reduce the semantic error.
The design should be modular, software logically divided into elements or subsystems, and contain a clear representation of data, architecture, interfaces and components.
It should be designed to show the hierarchy between the various parts of the software control wise.
1. The design should be modular; This means that software should be logically divided into specific functions and sub-functions section.
2. the design should be expressed by clear and separable data and process to form.
3. Design should allow the module to show independent features.
4. Should be designed to interface to reduce the complexity of connection between the module and the external environment.
5. Should be designed from information obtained during software requirements analysis can be repeated side software design
6. The use of the method. To have the characteristics of good design does not depend on luck in the design process through the integrated use of basic design principles, system methodology, a thorough review of the assessment can contribute to good design. Software design approach every day in the evolution, as has been the method of testing and refinement, good design should have the following four characteristics, and consistent between all of these features.
The expression of the field of information into the software design of the mechanism of expression.
Represents the symbol of the functional components and their interfaces.
Stepwise refinement and segmentation of the test.
Guidelines for quality assessment. Development software, no matter what design approach you must be able to skillfully use a set of data, algorithms, and program design, the basic principles.
7. Should be designed to export lower interface of the complex connection between the module and the external environment.
2.3 Test
Rule of Design Are we working under those rules( YES ,NO)
To ensure that the testing program to establish and follow. y
To ensure the creation of test plans to meet all the requirements of the system specification. y
After testing and rework software and specifications, to ensure consistency. y
Software testing principles:
1. software developers, programmers should avoid testing procedures
Test model --- the W model
Programmer or development team should be avoided to test the functional modules of their own program or group of developers. If conditions permit, should software testing by an independent third-party testing of the development team and customer group or testing agency. This does not mean programmers can not test their own procedures, and more to encourage programmers to debug, test by others to be more effective, objective, and is likely to be successful, but allow the programmer to debug will be more effective and targeted .
2. as soon as possible and continue to Software Testing
The software testing throughout the entire software development process, software testing should not be seen as a separate stage in the process. In every aspect of software development are likely to produce unexpected problems, their impact there are many factors, such as the software itself is abstract and complex nature of software involved in the complexity of the problem, software development, the diversity of the various stages of work. as well as all levels of staff with the relationship. So should adhere to the technical assessment of the various stages of software development, to overcome the error at an early stage, thereby reducing costs and improving software quality.
3. test cases have the right attitude:
First, test cases should be composed by the test input data and expected output of these two parts;
Second, in the design of test cases, not only to consider the reasonable input conditions, but also pay attention to the unreasonable input conditions. Software put into practical operation, often do not comply with normal use, but some of the output error of even a large number of accidents enter the software half past one can not make an appropriate response, it is easy to produce a series of problems, ranging from results, while in paralysis failure! Therefore, the input conditions of some commonly used unreasonable to find more little-known software defects.
Software testing video
4. people in groups feather flock together
software testing is no exception, and must pay full attention to the cluster software testing, can be regarded as the "80-20 principle". Do not think that a few errors and solve these problems, you need to test. Instead, here is the error cluster, this program should focus on tests to test the effectiveness of investment.
5. Strict implementation of the test plan, eliminate the arbitrariness of the test in
order to avoid the occurrence of omission or repeated invalid.
6. should conduct a comprehensive inspection of each test results. Must be
comprehensive, carefully check the test results, but often overlooked, resulting in many errors are missing
Keep the test cases, test plans, test reports and the final analysis, to prepare for regression testing and maintenance purposes.
In compliance with the above principles on the basis of software testing, with minimal time and effort to identify the various defects in the software, so as to achieve the purpose of software quality assurance.
2.4 Maintain
Rule of Design Are we working under those rules( YES ,NO)
To ensure the consistency of the code and documentation. y
Monitoring to ensure that the established change control process, including the changes integrated into the software version of the product in process. y
To ensure that modify the code to follow coding standards and to review it, not to destroy the entire structure of the code. y
1. Corrective maintenance
Refers to the correction has occurred and the system testing phase have not yet found an error in the system development phase. The maintenance workload to account for the maintenance workload from 17% to 21%. Some of the errors found is less important, does not affect the normal operation of the system maintenance work at any time: while some error is very important, and even affect the normal operation of the entire system, its maintenance programs must be developed, modify, and To review and control.
2. Adaptive maintenance
The use of software to adapt to IT change and manage changes in demand and changes. Maintenance work accounts for the maintenance workload from 18% to 25%. Since computer hardware prices continue to decline. Various types of system software, the record is not poor, is often to improve the system hardware environment and operating environment and system replacement needs; changing external market environment and management needs to make all levels of management staff have been put forward new information needs . These factors will lead to adaptive maintenance work to produce. Maintenance work in this area should also like the system development in a planned and systematically carried out.
3. Perfection of maintenance
This is a modification to expand functionality and improve performance, mainly refers to the increase in system analysis and design phase is not obligatory for functional and performance characteristics of existing software systems. These functions is necessary to improve the system. In addition, improvements in processing efficiency and programming, and maintenance accounted for 50% to 60% of the entire maintenance work, a larger proportion. Is also an important aspect of the quality of system development. Maintenance in addition to a planned, step by step to complete the outside. Also note that the documentation added to the front of the appropriate documentation to.
4. Preventive maintenance
In order to improve the reliability and maintainability of the application software, in order to adapt to changing hardware and software environment in the future, should take the initiative to increase preventive function, to enable applications to adapt to all kinds of change rather than be eliminated. Such as special reporting capabilities into a common report generation capabilities to adapt to future changes in report format. Maintenance accounted for about 4% of the maintenance workload.
3.0 Recommendation & conclusion建议与结论
From understanding to this project plans, we had explain and show up any functions it should have and including Implied functions
On the estimation and the quality control, the project quality is quiet good, it are exactly following by users ordered. However they changed their function and deadline to shorter. But we still work hard on it.
After overall through our testing processing, we can see from the 2.1 to 2.4 describe all we are done is good, it ensure and proof us to do the right as the follow exactly the user said.
In my suggestion, although people are concerned about the development and cost, exciting advances technology provides developers with the productivity improvements, but the software testing cost has always been ignore, or we can say the testing is the cost in the project. i know this is a little bit naughty, actually the software testing is where the cost goes, and the testing cost and the time it's taking is the similar with the real project total cost and time limitation.
programmer who are design the whole project and trying to complete this project, you should have know every knowledge before you writing this project and you better do literal review to understand what the people has done in this situation, that can make you working well. On the other hand, the reducing timescale, I think it better be increasing the number of people in the producing project team, and try using the second method to reduce the time of testing. Making a project we can use some of reuse coding but testing, we have to do in every function try any possibility to ensure there are no any error in side it.
there is a report from BORIS BEIZE. they have working program, it cost a half time in the testing processing.
IDT had a test for software testing investgation, it had 700 reply. the question in the paper is what is the percent of costing in the whole project. 46% of people think it does 30%~50%, 19% people think it does 50%~70%.
it really cost a huge part of the whole part of the total cost and plan, so if we want improving the working and decreasing the time of working to a good future.
We should focus on the testing to reduce time, the BOSS increasing the money of the project to reduce time, get more money is good but I do have a good method to reduce the money and the date and the same time. Why we don't choose it. So I suggest when we want to reduce time of project, first don't increase the money, then you should have a report to analysis changing the testing with what we do before the compares, that you will see how much you will increasing the money, but increasing the number of people which belong to professional group is 100% right, that I can’t deny.
本文编号:37488
本文链接:https://www.wllwen.com/wenshubaike/lwfw/37488.html