SDE is also called Integrated Project Support Environment (IPSE) in Europe.
The main component of software development environment is software tools. Man-machine interface is a unified interactive dialogue system between software development environment and users, and it is an important quality symbol of software development environment. Software environment database stores software products or semi-finished products (such as source code, test data and various documents) produced by various software tools, and is the core of software development environment. The connection and mutual understanding between tools are realized through the shared data stored in the information base.
Software development environment database is a knowledge-based information database for software workers, and its data objects are diversified and intelligent. Software development database is used to support the active or passive work of various software tools, especially automatic design tools and compilers.
The first-level SDE database generally includes general subroutine library, reconfigurable program processing information library, module description and interface information library, software testing and error correction basic information library and so on. A relatively complete SDE database should also include feasibility and requirement information files, detailed files of stage design, test-driven database, software maintenance files, etc. The further requirement is the automation of the whole process from software planning to implementation and maintenance, which requires the intelligentization of SDE database system. The basic intelligent achievement is the automatic realization and optimization of software coding, as well as the self-analysis and summary of software engineering projects from all angles. This intelligent achievement should also be actively transformed and studied to enrich the accumulation of knowledge, information and software in SDE database. At this time, the software development environment is gradually moving towards high intelligence and automation with the help of appropriate external control or software engineers.
Software implementation is based on computer language. Today, computer languages have developed into many categories, such as algorithm languages, database languages and intelligent simulation languages. Among dozens of important algorithmic languages, C&C++language has increasingly become a close partner of computer software workers, not only because of its powerful function and flexible construction, but also because it provides a highly structured grammar and a simple and unified software construction method, which makes the design and construction of subroutine library, the basic component of SDE database based on it, extremely convenient.
In fact, C&'s SDE subroutine library based on C++ can provide effective, flexible, convenient and friendly automatic coding foundation for software workers, especially the encapsulation characteristics of C++, which is more suitable for the development, management and maintenance of large-scale projects.
Software development environment can be classified according to the following angles:
(1) According to the classification of software development models and methods, there are software development environments supporting waterfall model, evolution model, spiral model and fountain model, as well as different models and methods such as structured method, information model method and object-oriented method.
(2) According to the functional and structural characteristics, there are many types of software development environments, such as single type, cooperative type, decentralized type and parallel type.
(3) According to the application scope, there are general and special software development environments. The specialized software development environment is related to the application field, so the software development method refers to the methods and steps followed in the software development process. The purpose of software development activities is to effectively obtain some work products, that is, a running system and its supporting documents, and meet the relevant quality requirements. Software development is a very complicated mental work, so software development methodology is often discussed more. Software development methodology refers to the integration of rules, methods and tools, which not only supports development, but also supports the future evolution process (after delivery, the system will change, either correcting errors or adding or reducing functions).
There are various models about the activities that make up software development and system evolution (see software life cycle, software development model and software process), but they usually include the following processes or activities: analysis, design, implementation, confirmation (test acceptance) and evolution (maintenance).
Some software development methods are specific to a certain development stage and belong to local software development methods. Especially, the practice of software development shows that the cost of testing and maintenance will be greatly reduced if more efforts are made in the early stage of development. Therefore, special attention is paid to the software development methods in the analysis and design stages. The methods of other stages, which have been the focus of research since the early stage of programming development, have now developed more maturely (see programming and maintenance flow). In addition to the staged local software development methods, there are also global methods covering the whole development process, especially the focus of software development methodology.
General requirements of software development methods: when proposing a software development method, many factors should be considered, including: ① covering the whole development process to facilitate the transition between stages; (2) Facilitate the communication between relevant personnel in each development stage; ③ Support effective problem-solving skills; ④ Various ways to support system design and development; ⑤ Support the verification and confirmation of software correctness in the development process; ⑥ It is convenient to include design, reality and performance constraints in system requirements; ⑦ Support the mental work of designers and other technicians; ⑧ Support the evolution of the system in its whole life cycle; Pet-name ruby supported by automation tools. In addition, related software products should be visible and controllable at all stages of development; Software development method should be teachable, portable and open, that is, it can accommodate new technologies, management methods and new tools, and it can be called an application-oriented software development environment compatible with existing standards.
⑷ According to the development stage, there are front-end development environment (supporting system planning, analysis and design activities), back-end development environment (supporting programming and testing activities), software maintenance environment and reverse engineering environment. This kind of environment can often be obtained by clipping environments with more functions. Software development environment consists of two parts: tool set and integration mechanism. The relationship between toolsets and integration mechanisms is just like the relationship between plug-ins and slots.
Tool set: Tools in the software development environment can include tools supporting specific process models and development methods, such as analysis tools, design tools, coding tools, testing tools and maintenance tools supporting waterfall models and data flow methods, OOA tools, OOD tools and OOP tools supporting object-oriented methods, etc. Tools independent of models and methods, such as interface-aided generation tools and document publishing tools; It can also include domain-specific management tools and application tools.
Integration mechanism: provide unified support for tool integration and user software development, maintenance and management. According to the function, it can be divided into three parts: environmental information base, process control and message server and environmental user interface.
Environmental information base: the core of software development environment, which is used to store information related to system development and support information exchange and sharing. There are two kinds of information stored in the library, one is the information about the developed system generated during the development process, such as analysis documents, design documents, test reports, etc. The other is the supporting information provided by the environment, such as document template, system configuration, process model, reusable components, etc.
Process control and message server: it is the basis of process integration and control integration. Process integration is to select and combine tools according to the requirements of specific software development process, and control the communication and cooperation between integrated parallel tools.
Environmental user interface: including the general interface of the environment and the interfaces of various environmental components and tools under its unified control. Unified, with a consistent visual sense (look &; Feel) user interface is an important feature of software development environment, and it is the guarantee to give full play to environmental advantages, use tools efficiently and reduce users' learning burden.
A perfect software development environment usually has the following functions:
(1) Consistency and integrity maintenance of software development;
(2) Configuration management and version control;
(3) Various representations of data and their automatic conversion between different forms;
(4) Automatic retrieval and updating of information;
(5) Project control and management;
(6) The legal support of the other party.