I. Purpose of Software Engineering:
Establish and apply correct engineering methods to develop software with low cost, good reliability, and efficient operation on the machine, so as to solve or alleviate the software crisis.
Ii. Performance of Software Crisis
1. Estimation of software development costs and progress is often inaccurate
2. users' dissatisfaction with the "completed" software system often occurs
3. the quality of software products is often unreliable
4. Software is often not maintained
5. The software usually does not have proper documentation
6. The proportion of software costs in the total cost of computer systems increases year by year
7. The increasing speed of software development productivity is far behind the rapid popularization and deepening trend of computer applications.
Iii. Causes of software crisis and Solutions
Communication and understanding are the key factors for the emergence of many software crises. On the one hand, users and developers cannot clearly express their intentions, and developers often cannot understand the real needs of users; on the other hand, the communication and understanding between developers are not very good.
In order to solve the software crisis, technical measures and necessary organizational management measures are required. Software Engineering is a new discipline that studies how to better develop and maintain computer software from both management and technology aspects.
Iv. Architecture of Software Engineering
5. Explanation of the Architecture diagram of Software Engineering
When talking about software engineering, we may ask what software engineering contains. In fact, it is difficult to give a detailed and clear answer to this point. The content of software engineering is not static. It changes with people's understanding of software system development and production, and the application development perspective looks at it.
However, no matter how the content changes, the three elements of software engineering are relatively stable. They are processes, methods, and tools. In a coordinate chart, the abscissa represents a tool, the ordinate represents a method, and the area between the two is a process. There may be several types of this process, but the outstanding achievements of People's research are also manifested in a few development engineering models, such as Waterfall models and incremental models. These are represented by lines in the coordinate area. Each online point represents a specific development stage and task, which is related to the content on the right.
In the process of software development, we need technical and management methods and necessary tools to be integrated into the software process, in order to finally obtain products that meet the requirements. Without one aspect, we cannot achieve our goal. If the software tools used in various stages are organically integrated into a process that supports software development, it is called the software engineering support environment.
In short, the purpose of studying software development methods is to make the development process "disciplined"; the purpose of studying software tools is to make the development process "Automated ". Ultimately achieve the purpose of software engineering.