Application of engineering design in software development

Source: Internet
Author: User

Application of engineering design in software development

All the purposeful activities that humans are engaged in are inseparable from design. The initial meaning of design is to write down symbols, marks, and graphics. China's "Ci Hai" interpreted the design as "pre-developed methods and drawings according to certain purpose requirements before a job is officially started ". It can be considered that, in a broad sense, design refers to the activity of finding several forms or modes for people to achieve a certain goal. This activity is mainly manifested in the conception of people around the goal, create and record a pattern, model, or concept.

There are many design types. One of the most common ones is engineering design, which is designed for industrial production or engineering construction. Its goal is to create a new technical system with specific functions through design, such as houses, roads, bridges, vehicles, machines and equipment, household goods, and so on, to meet people's living and production needs. The essence of engineering design is to start from understanding the reality and use various scientific knowledge and experience to transform natural resources into the forms needed by people. As far as the procedure is concerned, it is a re-creation process based on technical principles, a concrete and current implementation of technical principles and technical ideas, and the last part of the construction process of technological creation concepts, it is also the starting point of this concept materialized process. As far as its role is concerned, it is an important part of human production activities. It serves as a bridge between technical principles and technical creations, and is an important basis for organizing production and construction.

Early Software Development adopted individual work methods, and development mainly relied on developers' personal skills and programming skills. At that time, software usually lacked documentation related to the program. The actual cost and progress of software development were often far from what was expected, and the quality of the software was not guaranteed, the developed software often does not satisfy users. With the increasing demand for computer applications, the scale of software is also growing. However, the productivity of software development is far behind the growth rate of computer applications. The above problems seriously hindered the development of software. In the middle of 1960s, various problems in software development and maintenance were called "software crisis ".

At the NATO conference held in Germany in 1968, the term "Software Engineering" was proposed for the first time, hoping to overcome the software crisis with engineering principles and methods. After that, people have carried out research on software development models, development methods, tools and environments, and put forward development models such as Waterfall models, evolutionary models, spiral models, and fountain models, development methods such as data flow-oriented, data structure-oriented, and object-oriented, as well as a batch of computer aided software engineering tools and environments have emerged.

Since the term "Software Engineering" was first proposed in 1968, "Software Engineering" has become an important branch and research direction of computer software. "Software Engineering" refers to the application of computer science, mathematics and management science, and other principles and methods to solve software problems. It aims to improve software productivity, improve software quality, and reduce software costs. Software Engineering involves the principles, methods, tools, and environments of software development, maintenance, and management.

One characteristic of engineering design is the goal clarity. Engineering Design has a clear goal at the beginning, that is, to meet people's various specific material needs. The task is to provide drawings, documents or things such as the construction, performance, process, manufacturing and construction procedures of the product or project prior to product production or project implementation. In software engineering, this feature is represented in the "Demand Analysis" process. At this stage, through extensive communication between developers and users, we constantly clarify some vague concepts and finally form a complete, clear, and consistent requirement description. It can be said that the quality of requirement analysis will directly affect the success or failure of the developed software.

Another feature of engineering design is comprehensiveness. The objects of engineering design are often complex and specific actual problems. The objective requirements are many and sometimes even conflict with each other, while the objective conditions are limited. Therefore, in order to meet the design requirements, in addition to considering the rationality and possibility of engineering and technology, we also need to consider other practical factors comprehensively, such as investment, cost effectiveness, management level, market conditions, public psychology, and coordination with the environment. The analysis and evaluation of the scheme should also meet the special requirements of science, applicability, economy, security, aesthetics, and even timeliness and regionality from the perspectives of technology, economy, and social impact. Because of the many problems involved, engineering design often requires a lot of professional knowledge and personal experience. Therefore, for actual engineering problems, multiple solutions are required, and the overall and relevant factors should be taken into account. the requirements and conditions of various aspects should be analyzed and weighed for optimization or compromise, satisfactory solution. In software engineering, the feasibility analysis stage fully reflects this feature. The task of feasibility analysis is to analyze the feasibility of the problems to be solved technically, economically, practically, and legally. The goal is to determine whether the problem is solved with the smallest possible price within the shortest time. During the feasibility analysis, we usually need to first study the currently used system, and then export the new high-level logic model according to the requirements of the system to be developed. Sometimes several alternative schemes can be proposed, and each scheme can be analyzed technically, economically, and legally. After comparison of each scheme, if one of them is selected as the recommendation solution, it may also be necessary to make a compromise among several schemes. Finally, the recommendation solution provides a clear conclusion, such as "feasible" and "unavailable ", it is possible to "wait for a certain condition to be feasible after maturity ".

Standardization is also an important feature in engineering design. There are usually some procedures and rules in engineering design. For example, the product quality standards include international, national, and industrial standards, which must be considered in the design. Only when certain design rules are met can the design quality be basically guaranteed, and the design scheme can have comparable evaluation indicators, which facilitates comparison and Optimization among schemes. The design scheme is normative to facilitate the operation in production and the change and modification of the scheme according to the actual project. In the process of software development, because a team is developing at the same time, it is necessary to have a unified specification to ensure that all departments work in parallel, generally, there is a general technical specification within the company, including the name, document specification, interface, performance, exception handling, interface and other standards. With these standards, it can effectively reduce the barrier between system analysts, software designers, and programmers, and also facilitate the maintenance of later software.

Another feature of engineering design is innovation. The design itself is a process of constant innovation based on changing requirements and conditions. Engineering Design should also reflect the historical and developmental perspectives of innovation, starting from the needs of users and the market, and continuously meet the ever-evolving needs of mankind, with the continuous innovation in technology and engineering practices. Innovation is the soul of technological progress. Engineering Design Innovation is mainly embodied in the application of new materials, new devices and other new technology sections and methods, the improvement of structure and the development of new functions, and the innovation and identification of artistic forms. In the system analysis phase, the system analyst should have a comprehensive understanding of the user's needs, propose a feasible solution to communicate with the customer, and then improve the solution after receiving feedback from the user, this is repeated until the customer's needs are fully understood. Because the customer's requirements are constantly changing, even after the project (maintenance phase), the customer's requirements may change or discover the design defects of the original system, at this time, the system should be modified. The modification process is a secondary development process.

Through the above discussion, we understand the specific application of engineering design in the software development process. There are many engineering design features, which are not given here. Everything has its two sides. "Software Engineering" solves the "software crisis", but it also brings other problems, for example, the implementation of "Software Engineering" for a small project often reduces productivity. The reason is obvious. It takes a lot of time to hook up the team members, at the same time, because we use the metaphor of engineering to describe software development, we may not be able to see the existence of other development methods, and we have made a dognistic mistake.

Related Article

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.