软件工程十大模型

目录

一、软件工程建模过程模型(生命周期模型)

二、瀑布模型

三、结构化方法下的需求分析模型

四、结构化方法下的软件设计模型

五、测试模型

六、面向对象方法论模型

七、喷泉模型

八、面向对象需求分析模型

九、面向对象软件分析模型

十、建模过程模型


一、软件工程建模过程模型(生命周期模型)

软件工程十大模型_第1张图片

软件生命周期模型是软件开发过程中各个阶段的过程和活动所组成的一系列模型。它的存在是为了确保软件开发过程的有效性、可靠性和高质量。整体软件生命周期模型包括需求分析、设计、编码、测试、运维等阶段,并一直伴随着软件整个生命周期的发展。现在主流的软件生命周期模型有瀑布模型、迭代模型、螺旋模型、敏捷模型等,开发者可以根据具体要求和情况选择合适的模型进行软件开发。

二、瀑布模型

瀑布模型一直是唯一被广泛采用的生命周期模型,现在他仍然是软件工程中应用得最广泛的过程模型。

传统瀑布模型:

软件工程十大模型_第2张图片 

实际瀑布模型:

软件工程十大模型_第3张图片 

1.阶段见具有顺序性和依赖性

阶段间具有顺序性和依赖性,这个特点有两重含义①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的文档输出正确,后一阶段工作才能正确工作。

2.推迟实现观点

瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想

3.质量保证的观点

软件工程的基本目标是优质、高产。为了保证所开发的软件的质量,在瀑布模型的每

个阶段都应坚持两个重要做法。

(1)每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。

(2)每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

三、结构化方法下的需求分析模型

软件工程十大模型_第4张图片

结构化方法下的需求分析模型是软件开发过程中用来捕获和规格化需求的一种方法。它采用一系列的图表和文档来详细描述系统的功能、数据和行为。

需求收集:通过与利益相关者的沟通来收集需求信息,这可能包括面对面的访谈、问卷、工作坊、观察和分析现有文档等手段。

数据建模:通过建立数据模型来理解系统中的信息是如何被存储和关联的。常用的工具是实体-关系图(ER图),它展示了数据实体、它们的属性以及实体之间的关系。

功能建模:使用功能分解图来展示系统应提供的功能和这些功能之间的逻辑关系。这有助于明确不同功能的边界和它们的层次结构。

行为建模:使用状态图或者流程图来描述系统或系统中的某个部分的行为。这涵盖了系统如何响应各种事件,包括系统的各种状态以及状态之间的转换。

需求规格说明书(SRS):将所有收集到的信息汇总成一个文档,详细说明系统的需求。SRS是一个正式的文档,它描述了系统的行为、功能、接口、性能、约束等。

结构化需求分析模型是帮助理解和分析复杂系统需求的有力工具。它强调早期错误的预防和纠正,以及需求的精确性和可管理性。通过可视化的方法,结构化需求分析有助于提供一个清晰、透彻的需求视图,为系统设计和后续开发工作打下坚实的基础。

四、结构化方法下的软件设计模型

软件工程十大模型_第5张图片

 

结构化方法下的软件设计模型是软件工程中一种传统的设计方法,它强调逐步细化的过程,将复杂的系统分解成更小、更容易管理的部分。该方法通常涉及顶层设计和详细设计两个阶段:

顶层设计(高层设计):

设计者确定系统的架构和组件,如模块和它们之间的关系。

系统被分解成多个模块,每个模块负责一组特定的功能。

使用模块化和封装原则来促进代码的重用和系统的维护性。

模块设计:

在模块设计阶段,对顶层设计中识别的每个模块进行更详细的设计。

定义模块的接口、输入输出数据和模块内部的处理逻辑。

这一阶段还会涉及到数据结构的定义、算法的选择以及错误处理机制的设计。

详细设计:

这是设计过程的最底层阶段,涉及到实际的数据结构和算法的详细规定。

在详细设计阶段,每个模块的内部结构被完全定义,包括具体的数据结构、算法和所有必要的详细信息。

接口设计:

接口设计负责定义系统内部各模块之间以及系统与外部世界(如用户、其他系统)之间的通信接口。

这包括确定数据如何在模块之间传递,以及模块如何相互协作以完成任务。

五、测试模型

软件工程十大模型_第6张图片

结构化方法下的软件测试模型是一种基于结构化程序设计思想的软件测试模型。该模型将程序划分为多个模块,每个模块可以独立地进行测试,并且测试结果可以被反馈到整个程序中。常见的结构化方法包括基本路径测试、数据流测试和边界值测试等。

其中,基本路径测试是指通过对程序控制流图的分析,确定所有可能的执行路径,并针对每一条路径进行测试。数据流测试则是针对程序中的数据流进行测试,以保证程序能够正确地处理输入数据,并产生正确的输出结果。而边界值测试是针对特定数据域的最大值、最小值和临界值进行测试,以检验程序是否能够正确处理这些输入情况。

结构化方法下的软件测试模型具有可靠性高、覆盖面广、测试效率高等优点,能够有效地提高软件质量和可靠性。它也是目前应用最为广泛的软件测试方法之一,被广泛运用于软件开发过程中的测试活动中。

六、面向对象方法论模型

软件工程十大模型_第7张图片

面向对象方法论是一种以对象为中心的软件设计和开发方法。在面向对象方法论下,软件的对象被定义为一个实体,这个实体具有一定的属性和行为,而且能够进行信息交互和传递。面向对象方法论主要包括需求分析、设计、编码和测试等阶段,这些阶段都以对象为中心进行。具体而言,面向对象方法论注重于从“对象”角度出发分析和设计问题,利用面向对象的分析和设计方法,建立实体关系模型和抽象数据模型,通过继承、多态等特性实现模块间的协作和交互。

七、喷泉模型

软件工程十大模型_第8张图片 

 “喷泉”一词体现了面向对象软件开发过程迭代和无缝的特征。图中代表不同阶段的圆圈相互重叠,这明确表示两个活动之间存在交迭;而面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间并不存在明显的边界问题。图中在一个阶段内的向下箭头代表该阶段内的迭代。图中减小的圆圈代表维护,圆圈越小象征着采用了面向对象范型之后维护时间缩短了。维护的圆圈小是因为使用了面向对象模型来进行开发较为安全。

八、面向对象需求分析模型

软件工程十大模型_第9张图片

面向对象需求分析模型是一种以对象为中心的需求分析方法,主要目的是通过分析和确定用户需求,建立一个系统的概念模型和需求规格说明文档。在面向对象需求分析模型中,分析人员利用面向对象的分析和设计方法,以“对象”为中心进行需求的分析和表示,从而产生一个包含系统功能和业务问题的要求列表。通过对这些“对象”的描述和规范,形成一个稳定的、一致的、完整的、可追溯的需求规格说明文档。 

面向对象需求分析模型主要有三个关键方面:需求捕获、需求分析和需求表示。在需求捕获方面,分析人员需要通过深入的访谈和交流,了解客户的需求,以收集和识别软件的功能性和非功能性需求。在需求分析方面,分析人员需要将捕获到的需求进一步梳理和分析,确保软件的需求要求被清楚地定义和描述。在需求表示方面,分析人员则对需求进行建模,根据对象分析的思想,对需求进行抽象和表示,客户可以通过模型进行需求确认,进一步优化和改善需求规格说明的质量。

面向对象需求分析模型适合用于大型、复杂的系统需求分析,它能够快速、准确地捕获到用户需求,为软件系统的开发提供了明确的概念模型和需求规格规范。

九、面向对象软件分析模型

软件工程十大模型_第10张图片 

面向对象软件分析模型是一种以对象为中心的软件分析方法。该方法主要通过对系统的分析和模拟,识别、定义和描述系统的业务逻辑和功能要求,从而生成系统的概念模型。在面向对象软件分析模型中,分析人员利用面向对象的分析和设计方法,以“对象”为中心进行系统的分析和表示,从而产生一个有系统运行时行为和执行属性的系统模型,同时也会定义系统中的类层次结构、接口等。

在面向对象软件分析模型中,有三个关键方面:场景分析、对象建模和动态建模。在场景分析方面,分析人员可以通过活动图、用例图、时序图等方式,分析系统的功能性需求和非功能性需求。在对象建模方面,分析人员通过确定系统中的对象和对象之间的关系,建立一个稳定的对象模型。在动态建模方面,分析人员可以通过状态图、交互图等方式,描述系统的行为和活动,从而进一步完善系统模型。

面向对象软件分析模型能够有效地提高系统的重用性和可维护性,减少系统开发周期,并且能够提高系统的可靠性和稳定性。该模型广泛应用于大型、复杂的软件系统分析和设计中,是目前软件工程领域一个最重要的分析方法之一。

十、建模过程模型

软件工程十大模型_第11张图片

1.建模过程的信息源

(1)建模目的(2) 先验知识(3)实验数据

2.建模途径

(1) 演绎法(2) 归纳法

3.建模的可信性

(1)在演绎中的可信性(2)在归纳中的可信性(3)在目的方面的可信性

 

 

你可能感兴趣的:(软件工程)