Software Engineering Study Notes (a): Software Engineering

1 computer software

1.1 Software

Computer software refers to computer programs and documentation system, the program is described computing tasks to be processed and the processing rules.

1.2 Software Features

  • A logical entity.
  • Maintenance workload.
  • Software maintenance process will be introduced side effects.

1.3 Software Category

1.3.1 System Software

Closest to the hardware layer, such as the operating system.

1.3.2 Support Software

Software development, maintenance and operation of the software, such as various IDE and so on.

1.3.3 Applications Software

Software used in specific areas.

2 software language

Language including requirements definition language, a functional language, language design, programming languages ​​and document language.

2.1 Requirements Definition Language

Language for writing software requirements definition, including functional requirements and non-functional requirements. A typical languages ​​PSL.

2.2 Functional language

Written in the language of the statute software features, describes what to do and what software only. A typical language has a broad spectrum of languages, Z language.

2.3 design language

Written language software design of the Statute, is strict and complete description of the software design. Typical languages ​​PDL.

2.4 programming language

That is the programming language, the language can be divided into a lower level language, and non-procedural language procedural languages, and specific language common language, interactive and non-interactive language languages, language and sequence distribution Concurrent with the language.

2.5 document language

Software written language used in the document, such as Z language.

3 Software Engineering

Software engineering is the establishment and use of a set of sound engineering principles, in order to get the economy software that is reliable and can run efficiently on real machines. Software engineering is the application of computer science theory and method of management principles of the project, according to budget and schedule to achieve to meet user requirements of software product engineering, or as a study subject.

4 basic principles of software engineering

4.1 appropriate development standards

Selection of appropriate development standards, in order to ensure the sustainability of software development, and final software products to meet customer demand.

4.2 appropriate design methods

To consider modularity, information hiding, localization, consistency and adaptability of software problems, the use of appropriate design and implementation approach helps solve the problem of support.

4.3 high quality engineering support

The need to provide high quality engineering support, such as configuration management, quality assurance.

4.4 effective software project management

Project management software directly affects the efficient use of available resources to improve productivity software organizations.

5 software life cycle

Software life cycle is divided into six stages:

5.1 Computer Systems Engineering

Computer systems engineering task is to determine the relationship between the general requirements of software to be developed and scope, as well as the computer software and other system elements, cost estimates and make scheduling, and feasibility analysis.

5.2 Requirements Analysis

The main demand analysis software to be developed to address the question of what to do, determine the software's functionality, performance, data, interface requirements, generate software requirements specification.

5.3 Design

Software design software to be developed to solve the problem of how to do, can usually be divided into system design and detailed design, system design task is to design a software system architecture, detailed design task is to design implementation details of the various components.

5.4 encoding

Encoded using the programming language.

5.5 Test

Detect and correct errors in the software defect, including unit testing, integration testing, system testing and validation testing.

5.6 Operation and Maintenance

The need for software to run during maintenance, software modifications.

6 CMM

CMM is a CMM, software process defines five maturity levels, including the initial level, repeatable level, defined level, the management level, optimization level.

6.1 The initial stage

Features of the software process is disordered, even chaotic, almost no process is the result of well-defined.

6.2 Repeatable

Established a basic project management processes to track cost, schedule, and functional characteristics of the process to develop the necessary discipline, we can repeat the success of previous similar applications made in the project.

6.3 Defined Level

Management and engineering activities have been both software process documentation, standardized, and integrated into a standard software process for the organization. All projects use approved, tailored standard software process for developing and maintaining software.

6.4 Managed level

Collect detailed metrics for software process and product quality, the software process and products are quantitatively understood and controlled.

6.5 Optimization level

Quantify the feedback process and advanced new ideas, new technology to promote the process of continuous improvement.

7 CMMI

CMMI is a process model integrated with a number of improvements, the system is multiple engineering disciplines and fields of support, consistent process improvement framework that can adapt to the characteristics and needs of modern engineering can improve the quality and efficiency of the process, there are two .CMMI notation: continuous staged model and model.

7.1-stage model

Staged structural model similar CMM, is divided into five maturity levels:

7.1.1 Initial

Process unpredictability and lack of control.

7.1.2 Managed

Process services for the project.

7.1.3 Defined

Process for the service organization.

7.1.4 Quantitative Management

Process has measure and control.

7.1.5 Optimization

Centralization and process improvement.

7.2 Continuous Models

Continuous process model focuses on the ability of each domain, a domain organization of different processes can be achieved in different fields of process capability level. CMMI process areas included six ability levels, number of levels 0-5, level indicates the ability of a single process . how well the organization's ability to perform field level including common objectives and related common practice, can be applied independently to any individual process areas, meaning each ability level:

7.2.1 CL0

Unfinished process of domain failure to take or achieve all the objectives defined in CL1.

7.2.2 CL1

Has been performed, the common goal is to identify the process can convert input work products into identifiable output work products to achieve specific goals supported by process area.

7.2.3 CL2

Has managed to focus on the common goal is to institutionalize the process has been managed. The operation of the process according to organizational policies which procedure will be used, the project has been documented to follow the plan and process description, all those who are working are entitled to use enough resources, all tasks and work products are monitoring, control and evaluation.

7.2.4 CL3

Has defined common goal is to focus on the institutionalization process has been defined. Tailoring process is in accordance with guidelines from the organization's standard process focused organization to get cut, you must also collect metrics process assets and processes, and the process for future on improvements.

7.2.5 CL4

Quantitative management, the common goal is to focus on the institutionalization of the process can be quantitatively managed using measurement and control and quality assurance to improve the process area, the establishment and use of quantitative targets on quality and execution as management guidelines.

7.2.6 CL5

Optimized quantization effect change means change and optimize the process area to respond to customer requirements and continuous process improvement plan domains.

8 Software Process Model

Also known as the software development process model used to model the software, all software development processes, activities and tasks of the structural framework.

8.1 Waterfall Model

1970 proposed by W.Royce, given the fixed order of the software life cycle activities, the next stage after the event on a stage activities to complete the transition, end up developing software products on a stage of the waterfall model is complete and activity after a review can begin the next phase of activity, characterized by:

  • Receiving results of the last stage of this phase as an input event activities.
  • This phase should be completed by the implementation of activities based on the results of a phase of the campaign.
  • To review the activities of this stage.
  • The results of this activity as an output stage, passed to the next stage.

8.1.1 advantage

The most widely used model first appeared ensure the smooth progress of software development, play an important role in improving the quality and efficiency of software development projects.

8.1.2 shortcomings

  • Difficult to clearly describe all the user needs, the needs of the development process is also likely to change.
  • When errors are found, correct mistakes in order to return to the previous stage, resulting in falls back.
  • Until after the test is completed you can see the software can run, found the cost of modifying the problem is enormous.

8.2 incremental model

The incremental model of software development process is divided into a plurality of time-staggered schedule linear sequence, the linear sequence is generated for each incremental version may be released after a version modifications and additions to the previous version, the incremental release process repeated until a final perfect product.

8.2.1 advantage

Software for frequently changing needs of the development of the future incremental demand may be gradually added to the other may have planned to manage technical risks.

8.2.2 shortcomings

The need for good architecture, to avoid damage to components have been added to the constructed parts of the system, the system needs to have a good overall analysis, or likely to degenerate into learning by doing to change the model.

8.3 prototype model

Is an executable version of the prototype system is expected to reflect the nature of the system is a prototype of a selected subset of the target software does not have to meet all the constraints, the purpose can be quickly and inexpensively build a prototype step is..:

graph TB defines the overall objectives -> identify needs identification requirements -> designated prototype development plan specifies prototyping plan -> OK prototype prototype to determine the objectives and scope Objectives and scope -> Quick fast design modeling design modeling -> prototyping prototyping -> delivery delivery -> collect feedback gathering feedback - the next round of development of prototype iterations -> defines the overall objectives

8.3.1 advantage

Users and developers agree on the prototype, reduce errors, shorten development cycles and accelerate cost reduction.

8.3.2 shortcomings

Not conducive to the prototype as a final product, a prototype was built merely used to define user requirements, then it would be partially or completely abandoned, accurate prototype design more difficult, is not conducive to innovative developers.

8.4 spiral model

The spiral model and aspects of the systematic iterative binding characteristics prototype implementation of the waterfall model control up, increasing the risk analysis model from rotating spiral outward along the spiral, within the task area 4 (four quadrants) were complete the following tasks:

  • First quadrant: risk analysis, evaluation of the selected program, risk identification, clear risk.
  • The second quadrant: to plan, to determine the target software, selected embodiments, clarify the project development restrictions.
  • The third quadrant: client assessment, evaluation and development work, propose amendments.
  • The fourth quadrant: implementation of the project, the implementation of software development, verification products.

Here Insert Picture Description

(Source: https: //www.itread01.com/content/1544588849.html)

8.4.1 advantage

Design flexible, easy to calculate the cost, the customer always participate in every stage of development, can be effective interaction.

8.4.2 shortcomings

Long cycle requires extensive experience and expertise in risk assessment, if the failure to identify risks will inevitably result in significant losses.

8.5 Fountain model

Fountain model is an object-oriented development process model support. Fountain embodies the object-oriented characteristics of the iterative and non-gap.

Here Insert Picture Description

8.5.1 advantage

Various stages there is no obvious boundary, developers can synchronize the development, improve the efficiency of software development projects, saving development time.

8.5.2 shortcomings

It is not conducive to project management, demanding documenting, auditing difficult.

8.6 component-based development model

Utilizing prepackaged member constructed applications. Member may be developed in-house member, and may be commercially member.

8.6.1 advantage

Reusable components, easy to maintain, very helpful to improve software productivity, and improve software quality and reduce costs.

8.6.2 shortcomings

100% is difficult to find suitable means, is existing members may not be very suitable for use, but based on existing components constructed of 100% of the components may not pass the test, it is difficult to ensure quality.

8.7 Formal Methods Model

Formal methods are based on rigorous mathematical basis of a software development method, with rigorous mathematical language and semantic description of functional specification and design of the statute, through mathematical analysis and derivation, easy to find ambiguity demand, completeness and inconsistency, easy validation of analytical models, design models and procedures. mathematical calculations, such that the formal design formal party to the Statute to function, and the formal design reduced to the program code conversion becomes possible.

8.7.1 advantage

The language of mathematics to solve the ambiguity problem specification, improve the accuracy of mathematical provides a means to confirm that proof and verification software programmed to meet the needs of the user and the system becomes possible, visually simulation / execution model.

8.7.2 shortcomings

Formal methods to lower the level of abstraction than other technologies, easy to get into the details, we need to determine in advance the system boundary, usually limited to correct a consistent model, but it is not correct in most cases consistent with the model.

Guess you like

Origin www.cnblogs.com/Blueeeeeeee/p/12147872.html