软件工程的十大模型

1.软件生命周期模型

在这里插入图片描述

软件生命周期由软件定义、软件开发与运维(也称软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
问题定义:“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。
可行性研究:“对于上一个阶段所确定的问题有行得通的解决办法吗?”可行性研究的结果是客户做是否继续进行这项工程的决定的重要依据。
需求分析:“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。
总体设计:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。
详细设计:“应该怎样具体地实现这个系统呢?”就是把解法具体化。总体设计阶段以比较抽象概括的方式提出了解决问题的办法。
编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
综合测试:这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。
软件维护:维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。有四种维护:改正性维护;适应性维护;完善性维护;预防性维护。

2.瀑布模型

在这里插入图片描述

在这里插入图片描述

特点:①阶段间具有顺序性和依赖性
②推迟实现的观点
③质量保证的观点
优点:①为项目提供了按阶段划分的检查点。
②当前一阶段完成后,您只需要去关注后续阶段。
③可在迭代模型中应用瀑布模型。
④它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
缺点:①各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
②由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
③通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
④瀑布模型的突出缺点是不适应用户需求的变化。

3.软件需求分析模型

在这里插入图片描述
结构化分析模型的体系结构
分析模型
实体关系图:作为数据建模的基础,描述数据对象及其关系。
数据流图:作为功能建模的基础,描述数据怎样转换以及转换的功能。
状态转化图:作为行为建模的基础,表示系统的各种行为状态以及状态间的转换方式。
数据字典
数据字典描述数据流图的数据存储、数据加工(最底层加工)和数据流,他记录的主要内容有:基本信息;定义;使用特点;控制信息;其他说明。在数据字典中,数据元素的定义可以是基本元素及其组合,数据进行自低向下的分解,知到不需要进一步解释且参与人员都清楚其含义为止。数据组合有三种方式:顺序,选择,重复。
结构化分析过程

  1. 创建实体关系图
  2. 创建数据流模型
  3. 创建行为模型
  4. 编写加工规格说明
    建模步骤:
    1.通过调查研究,获取用户需求。
    2.去除非本质因素,确定系统的真正需求。
    3.描述需求,建立系统的逻辑模型。
    4.书写需求说明书,进行需求复审。
    基本原则:
    1.能够表达和理解问题的数据域和功能域。
    2.能够将复杂的问题化简。
    3.能给出系统的逻辑表示和物理表示。(逻辑表示指明系统所要达到的功能要求和需要处理的数据,不涉及实现的细节)

4.软件设计模型

在这里插入图片描述

软件设计是开发阶段最重要的步骤,它是软件开发过程中质量得以保证的关键步骤。根据用数据、功能和行为模型表示软件的需求,采用某种设计方法进行数据设计、体系结构设计、接口设计和过程设计。
数据设计:主要来源于数据词典和实体关系图,数据设计将实体关系图中描述的对象和关系,以及数据字典中描述的详细数据内容转化为数据结构的定义。
体系结构设计:主要来源于数据流图,体系结构设计定义软件系统各主要成分之间的关系。
接口设计:主要来源于数据流图,接口设计根据数据流图定义软件内部各成分之间、软件与其他协调系统之间及软件与用户之间的交互机制。
过程设计:主要来源于状态转化图、控制规格说明及加工规格说明,过程设计是把结构成分转化成软件的过程性描述。

5.软件测试模型

在这里插入图片描述

测试步骤:1.模块测试2.子系统测试3.系统测试4.验收测试5.平行运行
输入信息:软件配置和测试配置
单元测试
单元测试集中检测最小单元—模块;单元测试和编码属于软件过程的同一个阶段;可以应用人工测试和计算机测试这样两种不同类型的测试方法;单元测试主要使用白盒测试技术,对多个模块的测试可以并行地进行。
测试重点:模块接口;局部数据结构;重要的执行通路;出错处理通路;边界条件。

6.喷泉模型

在这里插入图片描述

喷泉模型是的面向对象的软件过程模型之一。
迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。
“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。
喷泉模型的优点:喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
喷泉模型的缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

7.OOA模型

在这里插入图片描述

OO = objects + classes + inheritance + communication with messages
面向对象 = 对象+类+继承+通信
面向对象的分析(0OA) 是软件生命周期的一个阶段,具有一般分析方法所共有的内容、目标及策略。也是使用面向对象的概念、原理、分析问题域、求解问题域的重要阶段。
00A基本任务是:
运用面向对象的方法,对问题域和系统责任进行分析和理解,找出描述问题域及系统责任所需的对象,定义对象的属性、服务以及它们之间的关系。目标是建立一个符合问题域、满足用户功能需求的00A模型
问题域:被开发系统的应用领域,记载现实世界中要由这个系统进行处理的业务范围。
系统责任:所开发的系统应该具备的职能。
00A特点1
00A采用的概念与问题域的事务保持了最大程度的一致,对象、对象的属性和操作的命名都强调与客观事务保持一致。
00A特点2
00A模型不考虑与系统的具体实现有关的因素例如采用什么编程语言、用户界面、数据库等,因此00A模型独立于具体的现实环境。00D则是针对系统的其体实现。
00A的目标是:
建立一个符合问题域、满足用户需求的00A模型。
用面向对象方法开发软件,通常建立3种形式的模型,分别是:
描述系统静态的对象模型(类图)
描述系统控制结构的动态模型
描述系统功能的功能模型
OOA过程
建立静态模型
描述系统的结构特征,类图。
建立动态模型
描述系统的动态行为特征,交互图、活动图和状态图。
建立功能模型
描述系统的功能的用力图。
写详细说明
三个模型的建立不需要按顺序,不分前后。

8.OOD模型

在这里插入图片描述

大多数系统的面向对象设计模型,在逻辑上由四大部分组成,这四大部分对应于组成目标系统的四个子系统,它们分别是问题子系统、人机交互子系统、任务管理子系统和数据管理子系统。

9.通用模型的建模过程

在这里插入图片描述

                         建模过程框图

建模过程

  1. 建模过程的信息源
    (1) 建模目的
    (2) 先验知识
    (3) 实验数据
  2. 建模途径
    (1) 演绎法
    (2) 归纳法
  3. 建模的可信性
    (1) 在演绎中的可信性
    (2) 在归纳中的可信性
    (3) 在目的方面的可信性

10. 建模的整个过程

在这里插入图片描述

  1. 先是从现实世界到业务模型
    由四个关键因素(人、事、物、规则)构建现实世界的模型,UML采用被称之为参与者的元模型作为信息来源的提供者,参与者代表了现实世界的“人”;UML采用被称之为用例的一种元模型表示驱动者的业务目标,这个业务目标就是现实世界的“事”;这件事是怎么做的,依据什么规则,通过场景来描述的,这些场景就是现实世界的“规则”;最后UML通过被称之为业务的模型来代表现实世界的“物”。人、事、物、规则就是这样被模型化的,于是现实信息转化成业务模型,业务模型真实映射了参与者在现实世界的行为。
  2. 从业务模型到概念模型
    UML通过被称之为概念化的过程来建立适合计算机理解和实现的模型称为分析模型,绘制分析模型最主要的元模型有○1边界类(界面)、②实体类、③控制类(动态、功能模型),同时软件架构和框架也通常在这个阶段产生。
  3. 从概念模型到设计模型
    要得到真正可执行的代码,需要将概念模型实例化,相当于已经得到细节和蓝图去建造部件和组装的过程。概念模型中的边界类可以转化为操作界面或者系统接口;控制类可以转化为计算机程序或控制程序;实体类可以转化为数据库表、XML文档或者其他带有持久化特征的类。可遵循的规则有:○1软件架构和框架、○2编程语言、○3规范或中间件。
    经过三个步骤的转换,就把现实世界转化到计算机可执行的语言上,如果我们把这三个模型的建立过程综合起来就形成上图,显示了建模的整个过程,这一过程是有规律、可推导、可追溯的过程。
  • 2
    点赞
  • 2
    评论
  • 14
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

duixin

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值