Do we know these knowledge points in software engineering? I sorted it out a little!

Source: Internet
Author: User

Software: An assembly of various programs and data required for computer operation, including the operating system, assembly language, compilation, program, database, text editing and maintenance user manual.

Software features: (1) the main production of software products is mental labor, and it has not been freed from manual development (2) software is a logical product, which is different from material products, he is the result of mental work (3) software products will not use bad (4) production of software products is mainly due to the increasing cost of development (5) software, and the software cost is quite expensive.

Software classification: system software and application software

Software development: the era of programming (1946-1956), the era of program systems (1956-1968) the era of Software Engineering (so far)

Performance of Software Crisis (1) inaccurate estimation of software development costs and Progress (2) development of software products cannot fully meet user needs (3) poor reliability of developed software (4) software usually does not have proper documentation (5) Poor maintainability of software (6) the speed of Improving Software Development Productivity is far from the trend of computer application popularity

Causes of Software Crisis: (1) growing software scale (2) difficult to manage software development (3) the unique characteristics of the software indeed cause some objective difficulties for development and maintenance (4) many misunderstandings and methods in software development and maintenance can be attributed to the individualized characteristics of early computer development (5) backward Software Development Technology (6) backward production methods (7) development tools are lagging behind and productivity increases slowly

Software Engineering: use engineering, scientific and mathematical principles and methods to develop and maintain related technologies and management methods of computer software. Therefore, it is defined as: system, standard, research on the whole process of measurable Engineering Method Application and software development, operation and maintenance, and the above method.

Software Engineering consists of methods, tools, and processes.

Software Engineering and programming methodologies are studied for software and programs, (1) Improving Software Quality and reliability (2) Improving Software maintainability (3) improving software productivity, reduce software development costs

Basic Principles of Software Engineering: (1) Strict management with phased Life Cycle plans (2) Adherence to phase reviews (3) Strict product control (4) adoption of Modern Programming Technology (5) results due to a clear review (6) fewer and refined development team members (7) Recognition of the need to continuously improve software engineering practices

Objectives of Software Engineering: (1) Maintainability (2) Effectiveness (3) reliability (4) comprehensibility (5) Maintainability (6) reusability (7) adaptability (8) portability (9) traceability (10) Interoperability

In terms of software development technology, we mainly research development methods, development processes, development tools and environments. In software development management, the main research is: software management, software economics, software Psychology

Software is a logical product

Software engineering and computer science are different in nature. Software Engineering focuses on building software systems.

 

Software life cycle: Any software starts from its proposal and ends with its elimination. There is a period of existence,

A software life cycle refers to the entire period from the time when a software is developed to the time when the software is decommissioned.

Software life cycle is a typical phase division: problem definition, feasibility study, requirement analysis, summary design, detailed design, coding, testing and maintenance.

Activity period: software analysis period: (1) Feasibility Study Project Development Plan (2) Demand Analysis Software design period: (1) Summary design (2) Detailed design coding and testing period: coding test run and maintenance period

The software life cycle model refers to the overall process idea of developing software projects. The software life cycle model describes how various activities are executed during software development.

Waterfall Model: it is embodied in a rational linear development model, which lacks flexibility. In particular, it cannot solve the problem of unclear or inaccurate software requirements.

The software engineering process includes the development process, management process, supply process, acquisition process, operation process, maintenance process, and support process.

The fountain model is a model driven by user needs and driven by objects. It is applicable to object-oriented development methods, he overcame the limitations of the waterfall model that does not support software reuse and integration of multiple development activities. The fountain model makes the development process iterative and non-intervoid.

 

Feasibility study: (1) technical feasibility study (2) economic feasibility study (3) Legal feasibility study (4) Selective Study of Development Solutions

Cost-benefit analysis: (1) cost estimation of the number of source program lines (2) time value of currency

The scope of the study on social feasibility includes contract, liability, and infringement.

Requirement analysis refers to the process in which developers need to conduct detailed debugging analysis, accurately understand user requirements, and convert users' non-formal requirement statements into complete requirement definitions, then define the process of converting to the corresponding functional specification.

Requirement Analysis task: (1) define the problem clearly.. functional requirements, performance requirements, environmental requirements, user interface requirements, system reliability, security, executable and Maintainability (2) Export the software's logical model (3) write documents

Data Flow Diagram: (1) Data Flow (2) Processing (3) Data Storage (4) data origin and destination

Data Dictionary: (1) Data Flow entries (2) Data items (3) Data Storage entries (4) Processing entries

A data dictionary is used to define the specific meaning of each wind in a data flow diagram. It and a data flow diagram constitute a logical model of the system and are the main components of the requirement specification.

Multiple tools can be used for requirement analysis, but the PAD chart is not suitable.

In the data flow diagram, data streams have names and directions.

In the structured analysis method, the tools used to express the running status of internal data of the system are: Data Flow Diagram

The software architecture includes two important features: (1) process component (module) hierarchy (2) Data Structure

Depth indicates the number of layers to be controlled, and width indicates the maximum number of layers controlled above the same level. fan-out is a metric that directly controls the trees of other modules for one module, fan-In refers to a metric directly controlling the number of modules in a given module.

Coupling: non-direct coupling, data coupling, tag coupling, external coupling, control coupling, public environment Coupling, content Coupling

Cohesion: function cohesion, information cohesion, communication cohesion, process cohesion, logical cohesion, time cohesion, and occasional cohesion.

Modularization refers to the process of dividing two software systems into several modules from top to bottom. Each module completes a specific sub-function and all modules are assembled in a certain way, complete the functions required by the entire system.

The design of the software structure is based on modules, and based on the results of requirement analysis. It is further divided into modules from the steps of implementation and forms a hierarchical structure of modules.

Software design is a process of converting software requirements into software representations, including the overall design and detailed design.

The transformed DFD consists of three parts: input, transformation, and output.

Software design is generally divided into general design and detailed design. The relationship between them is global and local.

Put several logically similar components in a module, and the module's cohesion is logical.

In the analysis of the data structure, we mainly find the transformation center, which is the key to the structure from the data flow diagram.

The repetitive structure of the process design language includes the for structure, the while structure, and the until structure.

The basic points of the structured programming method are the details: (1) the top-down and progressive refinement of the programming method. (2) construct a program using three basic control structures. (3) organize the main program group.

A program flow chart is also called a program flow chart. It should be composed of three basic control structures in sequence and can be nested, and cannot overlap with each other. Such a flow chart is a structured flow chart.

If a program regards it as a whole, it also has only one entry, a single sequence structure of the exit, which is the process of combination.

Among the three basic structures of program control, the loop structure provides repeated program control.

Testing Methods: static testing methods manual testing, computer-aided static analysis Dynamic Testing Methods black box testing, white box testing

Black box testing: This method regards the tested object as a black box. The tester will test on the software interface without considering the internal structure and processing process of the program, it is used to verify the operability of software functions, check whether the program meets the functional requirements, whether the program can receive data well, and generate correct output.

Unit test: (1) content module interface, local data structure, important execution data, error handling, and Boundary Conditions

Test method: Because the tested module is located on a layer of the entire software structure, it is generally called by other modules and cannot be run independently, therefore, in the unit test, the driver module and the shape module must be designed for the tested module.

Integration Test method: bottom-up test and top-down test.

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.