十张图分析软件工程与建模
作者:互联网
2019-06-04 18:27:58
1.瀑布模型
传统软件方法学的软件过程,基本都可以用瀑布模型来描述。
与传统的瀑布模型相比,传统的模型没有每一阶段的验证,当后期发现错误时,则需要全部重头修改,消耗了大量人力物力。当前的瀑布模型每一阶段完成之后都要验证,保证每一阶段工作的准确性与高效性。
瀑布模型特点:必须等前一阶段的工作完成之后,才能进入下一个工作阶段。
在瀑布模型的每个阶段都应该坚持:
(1)每个阶段都必须完成每个阶段规定的文档。
(2)每个阶段结束前都要对所完成的文档进行评审,以便于尽早发现问题,改正错误。及时审查,是保证软件质量、降低软件成本的重要措施。 (所以需求分析、规格说明、设计阶段都要验证。)
实线阶段代表开发过程,虚线阶段代表维护过程。左侧的反馈箭头表示当前阶段发现错误时,需要回溯到上个阶段检查。在编码完成后,要对每个单元的编码进行测试,下一步进行综合测试,最后进行维护。在维护完成之后,上面有虚线箭头分别指向规格说明、设计与编码阶段,是因为在维护过程中,可能出现的问题所在的阶段。并且,如果当用户有变化的需求时,则应当重新开始撰写需求分析书,向下的步骤依次进行,直到用户满意。
2.软件生命周期
软件定义时期的任务:确定软件开发工程中的总目标,确定工程的可行性。估计完成该工程的时间成本,并且制定工程进度表。
(1)问题定义:通过对用户的调查访问,确立用户的问题性质,工程目标等。
(2)可行性研究:确立问题研究的范围及可行性,及拿些阶段应该投入更多的人力物力。
(3)需求分析:与客户进行密切访问充分交流信息,以得出用户想要的系统逻辑模型(是以后设计和实现目标的基础)。这个阶段的重要任务是用正式文档准确地记录对目标系统的需求,成为规格说明书。
开发阶段的任务:具体设计和设计前一个时期定义的软件。
(2)总体设计:应该先设计出实现目标系统的几种可能性方案,还有设计程序的体系结构,即确定程序由哪些模块组成及模块之间的关系。
(2)详细设计:解决了具体实现系统的任务,详细地设计每个模块,确定模块功能所需要的算法及数据结构。
(3)编码和单元测试:写出正确的容易理解、易于维护的程序模块。
(4)综合测试:通过各种类型的测试达到预定的要求。最基本的测试是集成测试和验收测试。
运行维护的任务:使软件持久地满足用户的需求。具体来说,当软件在使用过程发现的错误应该及时改正;当环境改变时应修改软件以适应新的环境;当用户有新的需求时应及时改进软件已满足用户的新需求。
3.分析模型
数据是模型的核心(数据字典是工具),是关于数据的信息集合,也是对数据流图中包含的所有元素定义的集合。对于数据流图中出现的所有被命名的图形元素加以定义,使得每个图形元素的名字都有确切的解释。
实体关系图(ER图):描述数据对象以及对象间的关系,用于数据建模。数据模型包含:数据对象、数据对象的属性、数据对象彼此间的关系。
数据流图(DFD图):描述了数据流在系统中流动的过程,以及指明对数据流进行变换的功能,是用于功能建模的基础。是结构化分析的基本工具,描述了信息流和数据转换,通过对加工进行分解可以得到数据流图。对应加工规格说明。
状态转换图(STD图):描述了对外部事件的响应方式,表示了系统的各种行为模式(称为状态)以及在状态间进行变迁的方式,用于行为建模。状态是可以被观察到的系统行为模型,一个状态代表系统的一种行为模型。对应控制规约。
4.将分析模型转化为软件设计
分析模型中的每一个提供了建立设计模型所需的信息。
数据设计将实体关系图中描述的对象和对象之间的关系,以及数据字典中描述的详细数据内容转为数据结构的定义(与数据字典、实体关系图对应)。
体系结构设计定义软件系统各主要成分的关系,主要需要分析数据之间怎样从一个模块流向另一个模块以及在模块内部的流向。(数据流图)。
总体设计分为数据设计和体系结构设计。
接口设计根据数据流图定义软件内部各成分之间、软件与其他协同系统之间及软件与用户之间的交互机制,主要分析数据从不同的模块之间如何设计接口,需要用到数据流图。(数据流图)。
过程设计把结构成分转化为软件的过程性描述,牵扯到数据状态的转换,以及状态变化的方式。(状态转换图、控制规格说明、加工规格说明)。
5.测试步骤与方法
测试时,首先进行单元测试,再进行组装测试,最后进行确认测试。
(1)模块测试:即单元测试。每个模块对应一个独立的子功能,将每个模块作为一个独立的实体进行测试,确认每一个单元能够正常运行,在该阶段的错误通常是编码和详细设计的错误。由编码人员自己完成(白盒法)。
(2)系统集成测试:即接口测试、组装测试。将经测试后的单元模块按照一定的顺序组装成系统,同时进行测试。重点是模块之间的相互通信与协调。当规模系统庞大时,进行集成测试一般分为子系统与系统测试(黑盒法)。应当验证系统是否能够实现需求分析的功能与性能,由专门的测试部门完成。
(3)确认测试:合格测试或验收测试。验证系统是否达到系统规定的要求。
(4)回归测试:在集成测试与确认测试之间加入回归测试。当某一个系统测试出现问题时,与该系统相关的系统进行局部测试,不用进行完全测试,节省时间应该返回就行回归测试。所以回归测试是很有必要的。
6.喷泉模型
“喷泉”体现了软件工程开发过程中的迭代和无缝的特性。
八个关键字:“快速迭代,无缝衔接”
不同阶段的圆圈相互重叠,表明两个活动之间存在交迭。
图中在一个阶段中的每一个向下的箭头表示阶段内的迭代(或求精)。维护的圆圈较小,表示在采取了面向对象范型之后维护的时间缩短了。编码阶段与集成测试阶段的重叠较大,说明两个活动之间存在较大的重叠性,编码阶段的“单元测试”由编码人员自己完成。
与瀑布模型相比,瀑布模型是面向问题的一种软件模型,而喷泉模型是面向对象分析的一种模型,喷泉模型的各个活动之间存在交迭,且每一部分完成之后都要求精,以节省时间。
7.面向对象分析模型
原型开发指向发现对象,对象也指向原型开发。因为原型开发综合其他活动进行是为了找出所有对象。早期的原型用于证实客户的需求,晚期原型用于修改交付用户前使用的状态。
建立用况图是用户使用/需求情况图。
发现对象是必要操作,是建立分析模型的必要环节。
详细说明与发现对象、定义属性与服务、建立结构与连接、划分主题(包)有双向箭头,详细分析对模型中的成分进行规范的定义和文字说明,可集中可分散。详细说明是一个反复的工作,因为对象以及对应属性的不断完善,所以需要反复进行。相当于面向过程分析模型中的“数据字典”。
建立交互图、状态图、活动图是辅助模型,可有可无。
图中每一个过程都有向上回溯的过程,面向对象的一个过程包括对象模型、功能模型与动态模型,各个过程之间界限模糊,为了更详细地找出对象与之间的关系。而面向过程分析模型由 数据模型--功能模型--行为模型,由一定的顺序,遵循严格的顺序进行,逐步找出对象与动能。
8.面向对象设计模型
4大系统:问题域 人机交互 任务管理 数据管理(关系:并列 无缝)
右边主要是OOA模型,5个过程之间无严格层次,先抽取一部分对象,按照其属性与服务相同的归为一个类,当有很多类时存在结构划分,当有更多的结构时划分为主题。对象是在不断发现的,所以在发现新的对象时,又重新开始进行类与对象的划分。
9.建模过程框图
一个模型的可信性分为:在演绎中的可信性 在归纳中的可信性 在目的方面的可信性
在进行一个软件模型建立时,应该具有一定的先验知识,比如现在要做建设银行的软件,可以对比之间做过的农业银行。
演绎分析应在一个逻辑上正确、数学上严格含义进行。
归纳法建模的主要信息来源是实验数据,其可信性分析是检查归纳程序是否按数学上和逻辑上进行。
一个模型只有在他用于原定的目标才能体现出它的意义。
10.建模的整个过程
是一个有规律、可推导、可追溯的过程。
业务模型:如何为现实世界建立模型: 人(actor) 事(use-case) 物(object model) 关键弄明白什么人,什么人做什么事,什么事产生什么物,中间有什么规则,再把人事物之间的关系定义出来,一个模型也就基本建立。参与者(人)是整个模型的核心,用例 (事)表示驱动者的业务目标。对象模型(物)表示达成这些业务目标过程中所涉及到的事物,用逻辑概念来表示他们,并定义他们之间的关系。业务模型映射了参与者在现实世界中的行为。
概念模型:向上映射了原始需求,向下为计算机提出了一种更高层次的抽象。
边界类:界面(UI),所有对计算机的操作都要通过界面进行。
实体类:业务实体的实例化结果 ,添加那些实际业务中使用不到但是转型计算机逻辑时需要的控制信息。
控制类:原始需求中的动态信息,即业务或用例场景中的步骤和活动。
在这个阶段,还可以对这些分析类在不同的视图上进行归纳和整理,以表达软件要求的一些信息。软件架构和框架通常也在这个阶段产生。
设计模型:将该概念模型实例化,得到真正可执行的计算机代码。概念模型中的边界类可以转化为操作界面或者系统接口。控制类可以转化为计算机程序或控制程序。实体类可以转化为数据库、文档或者其他持久化特征的类。
软件系统建模:先完成9种图例--完成5种视图--完成3种转换
9种图例:用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图、部署图
5种视图:用例、逻辑、构件、并发、部署
3种转换:现实--业务 业务--概念 概念--设计
结合课堂所学与老师所讲,老师刚好布置了作业,顺便整理了软件工程与建模相关知识,十张图为中心。以后随着知识体系不断健全,将不断完善,欢迎指出问题。
参考教材:软件工程导论(第6版)清华大学出版社
软件工程与建模 西安交通大学出版社
标签:十张,模块,对象,模型,建模,软件工程,阶段,测试,软件 来源: https://www.cnblogs.com/laurarararararara/p/10975447.html