“This is the sixth day of my participation in the Gwen Challenge in November. Check out the details: The Last Gwen Challenge in 2021.”
1. Briefly describe the characteristics, classification, objectives and definition of the software
Software features:
No physical form, development and management permeate a lot of mental work, no wear and aging phenomenon, dependent on specific environment, with reusable.
Software Category:
System software, support software, application software.
Software Engineering definition: Software engineering is:
① The systematic, standardized, measurable approach to software development, operation and maintenance of the process, that is, the application of engineering in software;
② Study the approach mentioned in ①.
Software Engineering Objectives:
Cost reduction, timely delivery of high quality software products (high quality, high efficiency, high efficiency)
2. Is software a program?
Software = program + data + documentation
A program is a sequence of instructions executed in accordance with pre-designed function and performance requirements;
Data is the data structure that the program can normally manipulate information;
The document contains all kinds of graphic data related to the process of program development, maintenance and use.
3. Briefly describe the difference between modern software engineering and traditional software engineering:
A: Traditional software engineering: a structured approach to software development; Modern software Engineering: marked by object-oriented technology.
4. Brief introduction of the concept, characteristics (phenomenon) of software crisis
Software crisis refers to a series of serious problems encountered in the development and maintenance of computer software. These problems are by no means limited to software that doesn’t work properly. In fact, almost all software suffers from these problems to some degree.
The main characteristics of the software crisis (phenomenon) :
-
The software development cycle greatly exceeds the specified date;
-
Software development costs seriously exceeded the standard;
-
Software quality is difficult to guarantee
5. Briefly describe the causes of software crisis:
-
Objective reasons: Related to the characteristics of the software itself, logical components: it is very difficult to manage and control the software development process, difficult to maintain; Large scale: code length is not proportional to program complexity.
-
Objective reasons: on the other hand, it is also related to the incorrect methods of software development and maintenance. Software professionals have wrong understanding, fail to recognize the life cycle of software, adopt wrong methods and technologies, ignore the importance of software demand analysis, and think that software development is to write programs to make it run.
6, what are the ways to eliminate the software crisis?
1. Technical measures: use better software development technology and tools.
2. Organizational management measures
-
Software development is not a mysterious skill of individual labor, but a well-organized, well-managed project in which all kinds of people cooperate and work together.
-
The main way out of the software crisis is to organize the software development work according to the principle and method of engineering.
-
Emphasize the importance of documentation. “Words are proof, words are proof! !” Is the motto to solve the software crisis.
7. Summarize your understanding of the software life cycle
A: Life cycle: The period in which software is defined, developed, used and maintained, until it is finally abandoned.
8. Briefly describe the connections and differences of the four models
Waterfall model: emphasis on sequential, documented, problem is too idealistic, every step of work must be complete and accurate
Prototype model: requirement analysis is quick to start, intuitive to express and easy to communicate. Focus on solving the difficult problem of waterfall model demand analysis
Incremental model: for the system with complex requirements, adopt the development strategy of block development and gradual integration. The new version is called Extreme Programming (XP) (modern incremental model)
Spiral model: it integrates the above three models and increases the risk control link. The correctness of risk analysis is the key factor of software evolution.
9. Basic tasks in each phase of the software life cycle
- Definition of a problem: The key question that must be answered is: “What is the problem to be solved?”
- Feasibility study: “Is there a feasible solution to the problem identified in the previous phase?”
- Requirements analysis: Answer the question exactly what the target system must do.
- Summary design: Answer the question “How will the target system be implemented?”
- Detailed design: Concretize the solution to answer the key question of how the system should be implemented.
- Coding and unit testing: Write correct program modules that are easy to understand and maintain.
- Comprehensive testing: through various types of testing to achieve predetermined requirements of the software.
- Software maintenance: through various necessary maintenance activities to make the system consistently meet user requirements.
10. The importance of requirements analysis
- The failure of many large application systems is finally attributed to requirement analysis: either the improper method of obtaining requirements makes the requirement analysis not in place or not thorough, leading to the developers repeatedly carrying out requirement analysis, resulting in the design, coding, testing can not be carried out smoothly; Either the customer’s poor cooperation leads to the customer’s unconfirmation of demand, or the customer’s demand is constantly changing, which also leads to the failure of design, coding and testing.
- The output document of requirement analysis is User Requirement Report. It is not only the first milestone in the software life cycle, but also a foundation that customers, software developers and project managers must abide by. It is the basis for their joint work, the criterion for project Alpha and Beta testing, and the basis for suppliers to deliver products and demanders to accept products.
- Requirements analysis takes up about 30% of the total software development time or effort.
- The error in requirement acquisition belongs to the early error in software development, which will spread in the subsequent design and implementation.
11. Talk about the use of data flow diagrams
Abstract represents a system or software. From the perspective of information transmission and processing, the process of data flow from input to output is depicted graphically. The data flow and functional details are represented in a top-down, step-by-step decomposition approach. Both functional and information flow modeling mechanisms are provided.
12. Talk about the function of a data dictionary
The analysis model contains representations of data objects, functions, and controls. In each representation, data objects and controls play a role. A data dictionary is built to represent the characteristics of each data object and control. Data dictionaries precisely and rigorously define each system-related data element and organize them in lexicographical order so that users and analysts have a common understanding of all inputs and outputs, storage components, and intermediate calculations.