Software development foundation (1)

Software crisis

A series of serious problems encountered in the development and maintenance of computer software

Software Engineering Definition

Use engineering concepts, principles, techniques and methods to develop and maintain software

Basic goals of software engineering

High quality and high yield

Software life cycle

①Problem definition

② Feasibility study

③ Demand analysis

④Overall design (outline design)

⑤Detailed design

⑥ Coding and unit testing

⑦Comprehensive test

Software development model

Model name Description
Waterfall model

Applicable to: situations where user needs are relatively clear;

Features:

   1. The stages are sequential and dependent;

   2. The idea of ​​delaying realization

   3. Quality assurance point of view; each stage must complete the required documents, failing to submit qualified documents means that the tasks of the stage have not been completed; the completed documents must be reviewed before the end of each stage;

It is a document-driven development model;

advantage:

    1. Force developers to adopt standardized methods and structured technology;

    2. Strictly stipulate the documents that must be submitted at each stage;

    3. All products delivered at each stage must be carefully verified by the quality assurance team;

It has a "feedback loop";

Disadvantages:

    There is no guarantee that the finally developed software product can truly meet the needs of users; it does not adapt to changes in user needs in software development work, and its ability to control risks is poor;

Incremental model

Applicable to: software systems with relatively stable user needs and high technical risks;

It is emphasized that an operable product must be released for each increment, and the product is gradually submitted to users in batches. The entire software product is decomposed into many incremental components, and developers submit components to users one by one;

Spiral model

Applicable to: large, complex, high-risk management information system

It can be seen as a rapid prototype model with the risk analysis process added before each stage;

Main advantage: is risk-driven

 

Fountain model

It is a model driven by user needs and object-driven, mainly used to describe the object-oriented software development process;

Advantages: improve the efficiency of software project development, save development time, and adapt to the object-oriented software development process.

Iterative and seamless features;

V model Emphasizes testing throughout the development process; based on the waterfall model, the V model emphasizes the correspondence and parallelism between the testing process and the development process; it is suitable for situations where the requirements are clear and there are few requirements changes;
Prototype model

Suitable for occasions where user needs will change during the software development process;

通过向用户提供原型来获取用户的反馈,使开发        出的软件能够真正反映用户的需求;

快速原型模型

适用于:用户需求不明确,小型或是交互的系统,大型系统的某些部分;

它是不带“反馈环“的;

过程:

    它的第一步是快速的建立一个能反映用户主要需求的原型        系统,让用户在计算机上使用,通过实践来了解目标系统        的概貌;通过向用户提供原型来获取用户的反馈,使开发        出的软件能够真正反映用户的需求;

目标是快速,低成本;

 

构件组装模型

步骤:

  ①需求分析和定义

  ②软件架构设计

  ③构件库的建立

  ④应用软件设计

  ⑤测试和发布

优点:提高了软件的复用性、可靠性;

 软件开发方法

名称 说明
结构化方法

1.用户至上

2.严格区分工作阶段,每个阶段有任务和成果

3.强调系统开发过程的整体性和全局性

4.系统开发过程工程化,文档资源标准化

5.自顶向上、逐步分解

适用于用户需求较为明确的开发

原型法

适用于需求不明确的开发

面向对象方法

1.更好的复用性

2.关键在于建立一个全面、合理、统一的模型

3.分析、设计、实现三个阶段界面不明确

面向服务方法

三个层次:

1.基础设计层

2.应用结构层

3.业务组织层

服务建模:

服务发现、服务规约、服务实现

 

Guess you like

Origin blog.csdn.net/dongjinkun/article/details/83051483