A summary of software engineering courses

Source: Internet
Author: User

Through this half semester my study of software engineering, teachers in the classroom from the basis of software engineering to user needs analysis, and finally to the black Box white box test through some of their own cases, vivid explanation of the software engineering this door itself boring courses, which not only enhance the students learning enthusiasm, And by letting us do some of our own needs analysis, we learned a lot of knowledge.

Teachers not only in the classroom to our careful know, in the extracurricular also let us see some of the most cutting-edge theory of software engineering, through this time I read the "Software Engineering-practitioners of research methods", "pieces of engineering case" These two books, through their own study, I have the following experience.

It is well known that software is very important to a company, an enterprise and even a country, so the maintenance of a software is very important, I will tell you some knowledge about software maintenance.

The maintenance phase is the longest period of software lifetime, and it is also one of the most expensive and energy-consuming phases. Because the operating system software and basic software version upgrade or application management system software is constantly developed and perfected, the software needs to be maintained. However, when the operating environment changes or the system function, performance requirements change, so that the original software can not be maintained by the means to meet the needs of users, the need for software updates.

1. Types of software maintenance:

The software development process has a great impact on the maintenance of software. If software engineering is not used to develop software, the software is only a program without documentation, maintenance is very difficult, this is a kind of unstructured maintenance. If the software engineering method is used to develop software, then each stage has corresponding documents, easy maintenance work is a kind of structured maintenance. Unstructured maintenance activities can only be started by reading, understanding and analyzing the source program, which makes it difficult to understand the system functions, software structure, data structure and other problems, often resulting in misunderstanding. At the same time, because there is no test document, it is impossible to perform regression testing to ensure the correctness of the program. This method of software maintenance is only used prior to the engineering age. In carrying out structured maintenance activities, we need to start with the evaluation requirements, make clear the changes of the function and performance of the software, evaluate the design document, revise and review it, change the program according to the design modification, perform the regression test according to the test case in the test document, and finally, deliver the modified software again. This is important to reduce effort, reduce costs, and improve software maintenance efficiency.

2. Difficulties in Software maintenance:

The difficulty of software maintenance is mainly caused by the defect of software requirement analysis and development method. There is no strict and scientific management and planning in the development stage of the software life cycle, which will cause the maintenance difficulty in the software running. This difficulty is manifested in the following areas.

(1) It is difficult to read other people's procedures.

(2) inconsistencies in the document. This inconsistency manifests itself in inconsistencies between the various documents and the inconsistencies between the document and the program.

(3) There are differences in personnel and time between software development and software maintenance.

(4) Software maintenance is not an attractive job.

3. Cost of Software maintenance:

The cost of software maintenance in the total cost of the proportion is increasing, it in 1970 accounted for 35%~40%,1980 year rose to 40%~60%,1990 year rise to 70%~80%. Software maintenance costs are rising, which is the tangible cost of software maintenance, in addition to the intangible cost, that is to occupy more resources. Because of the large number of software maintenance activities to use more hardware, software and software personnel and other resources, so that the investment of new software development resources are affected by insufficient. Due to changes in maintenance, potential failures are introduced into the software, thereby reducing the quality of the software.

4. Classification of Software Maintenance

There are 4 kinds of software maintenance, such as corrective maintenance, adaptive maintenance, perfect maintenance and preventive maintenance.

(1) Corrective maintenance. After the use of software delivery, due to the incomplete and incomplete development testing, some hidden errors will inevitably be brought to the runtime, and these hidden errors will be exposed in certain usage environments. In order to identify and correct software errors, correct defects in software performance, and eliminate misuse in implementation, the process of diagnosing and correcting errors is called corrective maintenance. For example, corrective maintenance can be a correction of errors in the original program that did not cause the switch (off/on) to be restored, failure to test all possible situations during development, and resolving the problem of missing the last record in the original program.

(2) Adaptive maintenance. With the rapid development of computer, the external environment (new hard, software with landlord) or Data Environment (database, data format, data input/output mode, data storage medium) may change, in order to adapt the software to this change, and to modify the software process is called adaptive maintenance. For example, adaptive maintenance can implement a database for an existing application problem, modify a specified transaction encoding, increase the number of characters, adjust two programs,

So that they can use the same record structure, and modify the program so that it applies to another terminal.

(3) Improve the maintenance of sex. In the process of software use, users will often put forward new functions and performance requirements for the software. In order to meet these requirements, it is necessary to modify or re-develop software to expand software functions, enhance software performance, improve processing efficiency, and improve software maintainability, in which case maintenance activities are called perfect maintenance. For example, the perfect maintenance may be to modify a payroll program to add new deductions, shorten the response time of the system, make it meet specific requirements, and transform the terminal dialogue mode of the existing program into a user-friendly interface; improve the graphical output; Add the online Help function To increase the monitoring facilities for the operation of the software. During the first year or two of the maintenance phase, the amount of corrective maintenance work is greater. As the rate of error detection decreases sharply and tends to stabilize, it enters a normal use period. However, due to the requirements of the transformation, the workload of adaptive maintenance and perfect maintenance gradually increased, in this maintenance process will introduce new errors, thereby aggravating the maintenance workload. The practice shows that in several maintenance activities, the proportion of perfect maintenance is the largest. That is, most of the maintenance work is to change and strengthen the software, not error correction. Therefore, maintenance is not necessarily a fire-fighting emergency repair, but can be a planned, premeditated one kind of redevelopment activities. It turns out that maintenance activities that extend from user requirements to enhance software functionality and performance account for about 50% of the overall maintenance effort.

(4) Preventive maintenance. In addition to the above three categories of maintenance, there is a type of maintenance activity called preventative maintenance. This is to improve the maintainability of software, reliability, and so on to further improve the software to lay a good foundation. In general, preventive maintenance is defined as: "Use today's methodology for yesterday's system to meet tomorrow's needs". In other words, an advanced software engineering method is used to design, compile, and test a part (re) of an application or software that needs to be maintained.

Preventive maintenance accounts for only a small percentage of the total amount of work spent throughout the software maintenance phase, while perfect maintenance accounts for almost half of the workload, and software maintenance activities take up more than 70% of the lifetime effort. This is due to the need to constantly modify the software during the long run of the software to correct newly discovered errors, adapt to new environments and new user requirements. These changes take a lot of effort and time, and sometimes they are not correct, and new errors are introduced. At the same time, the software maintenance technology is not as mature and standardized as the development technology, and consumes more natural work.

5. Software Maintenance:

(1) Data maintenance

Most of the application software data with the expansion of the application scale and the rapid development of user environment, not only the basic information, all other thematic information needs to be constantly maintained and updated. According to the scale and actual demand of the system, the system's data maintenance and updating mechanism should be established, and the period of the data maintenance and updating should be set up, so that all the data of the system is always in the newest state. The importance of data to a software is becoming more and more widely recognized. However, if the data is not updated frequently, it is possible to lose the value of the application, which is a concern for each software maintenance and operation.

(2) Hardware maintenance

In the process of software operation, the daily maintenance system of hardware equipment should be established, and timely maintenance should be carried out according to the usage instructions of the equipment, in order to ensure the equipment intact and the normal operation of the system. However, hardware updates should be considered when the equipment is not capable of processing, or if the equipment itself is outdated, obsolete, or damaged, cannot buy parts, or repairs are not worthwhile. System hardware updates should be re-selected according to the requirements of the hardware evaluation indicators.

(3) Reasons for software maintenance

There are 3 types of reasons that require software maintenance to be maintained in various ways. Correct some potential bugs or design flaws that are exposed under specific conditions of use. Because of changes in the data environment during software use (for example, a change in transaction code) or a change in the processing environment (for example, the installation of new hardware or operating systems), the software needs to be modified to accommodate this change. In order to meet these requirements, users and data processors often ask for improvements to existing functions, additions and improvements to overall performance, and the need to modify the software to incorporate these requirements into the software.

6. The process of software maintenance

After a maintenance request has been made and the review needs to be maintained, the following procedures will be implemented for maintenance.

(1) First to determine the type of maintenance. In many cases, a user can treat a request as a corrective maintenance, while a software developer can think of this request as adaptive or perfect maintenance. At this point, the different views need to be negotiated to resolve.

(2) The corrective maintenance starts from the severity of the evaluation error. If there is a serious error, for example, an important function of a system cannot be performed, then there is a manager who organizes the person immediately to begin to analyze the problem. If the error is not serious,

Corrective maintenance is carried out in conjunction with other software tasks, and is scheduled to be maintained as planned.

(3) Adaptability and perfect maintenance as it is another development work, establish the priority of each request and arrange the work required.

(4) Implement maintenance tasks. The same technical work is generally carried out regardless of the type of maintenance. These include modifying software design, necessary code modifications, unit testing, integration testing, validation testing, and review. The focus of each maintenance type is different.

(5) "firefighting" type maintenance. It is not entirely suitable for the carefully considered maintenance application described above, but for the maintenance of a sudden and significant failure.

The above is my initial understanding of software engineering software maintenance, I will be more efforts to study the course of software engineering.

A summary of software engineering courses

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.