精华内容
下载资源
问答
  • 北京大学研究生软件工程课程第三章结构化建模技术.ppt
  • 软件工程ch3结构化需求分析学习计划以及建模.ppt
  • 昨天图文介绍了迭代化开发和需求管理,今天我们介绍基于构件的体系结构和可视化建模。基于构件的体系结构软件开发中最体现创造力的地方,可以通过“修建桥梁”来理解为什么要贯彻基于构件的体系结构以指导我们每次...

    昨天图文介绍了迭代化开发和需求管理,今天我们介绍基于构件的体系结构和可视化建模。基于构件的体系结构是软件开发中最体现创造力的地方,可以通过“修建桥梁”来理解为什么要贯彻基于构件的体系结构以指导我们每次开发的演进增量过程。可视化建模是为了消除自然语言的二义性而规定的一套符号体系,由各类Diagram组成。其核心是标准化通信,可以让项目所有的参与人员更方便的沟通与交流。由于需求金字塔模型具有可追踪的特点,再加上这套符号体系的补充,可称完美!

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • 软件工程(三)—— 结构化方法

    千次阅读 2019-03-09 14:37:18
    一、结构化需求分析 在软件系统的需求工作中,通常面临三大挑战,即问题空间理解、人与人之间的通信、需求的变化性。为了应对这三大挑战,支持需求工作目标的实现,一种好的需求技术应具有以下基本特征: ①提供...

    一、结构化需求分析

           在软件系统的需求工作中,通常面临三大挑战,即问题空间理解、人与人之间的通信、需求的变化性。为了应对这三大挑战,支持需求工作目标的实现,一种好的需求技术应具有以下基本特征:

    ① 提供方便的通信机制;

    ② 鼓励需求分析人员使用问题空间的术语思考问题,编写文档;

    ③ 提供定义系统边界的方法;

    ④ 提供支持抽象的基本机制;

    ⑤ 为需求分析人员提供多种可供选择的议案;

    ⑥ 提供特定的技术,适应需求的变化等。

            典型的方法包括结构化方法、面向数据结构的软件开发方法以及近年来流行的面向对象方法等。

            结构化方法是一种系统的软件开发方法,其中包括结构化分析方法、结构化设计方法以及结构化程序设计方法。

            软件需求分析的目标是给出“系统必须做什么的一个估算”,即需求规格说明——以一种系统化的形式,准确地表达用户的需求,其中应不存在二义性和不一致性等问题。这样的需求需求规格说明可作为开发组织和客户关于“系统必须做什么”的一种契约,并作为以后开发工作的基础。

    1、基本术语

    (1) 数据流

            在计算机软件领域中,把数据定义为客观事物的一种表示,而把信息定义为具有特定语义的数据。所以,数据是信息的载体。在结构化分析方法中,数据流是数据的流动。

    (2) 加工

            在结构化分析方法中,加工是数据的变换单元,即它接受输入的数据,对其进行处理,并产生输出。

            既然加工是数据变换单元,因此它必须关联一个或多个输入/输出数据流,一个加工相关联的输入和输出数据,可进一步增强该加工的语义。有序的加工及相关的数据流形成系统的信息流。

    (3) 数据存储

            数据存储是数据的静态结构。

    (4) 数据源和数据潭

            数据源是数据流的起点;数据潭是数据流的归宿。数据源和数据潭是系统之外的实体,可以是人、物或其他软件系统。它们均用一个矩形来表示。

    2、系统功能模型表示

            需求分析的首要任务是建立系统功能模型,为此结构化分析方法给出了一种表达功能模型的工具,即数据流图,简称DFD图。

            简单地说,DFD是一种描述数据变换的图形化工具,其中包含的元素可以是数据流,数据存储、加工、数据源和数据潭等。

            在使用DFD图来表达系统功能模型时,应注意以下3个问题:

    ① 在DFD图中,数据流起到连接其他实体的作用;

    ② 加工之间可以有多个数据流,这些数据流之间可以没有任何直接关系,数据流图也不表明它们的先后次序;

    ③ 对于一个较大的软件系统,往往需要采用多层次的数据流图。

    3、建模过程

    (1) 建立系统环境图,确定系统语境

            经过需求发现工作之后,分析人员一般可以比较容易地确定系统的数据源和数据潭,以及和这些数据源和数据潭相关的数据流,形成系统顶层数据流图,也称为系统环境图。

    (2) 自顶向下,逐步求精,建立系统的层次数据流图

            在顶层数据流图的基础上,按功能分解的设计思想,对加工进行分解,自顶向下的画各层设计流图,直到底层的加工足够简单,功能清晰易懂,不必再继续分解为止,并把这样的加工称为叶加工。

            系统分层数据流图的层次编号是按顶层、0层、1层、2层…的次序编排的。顶层数据流图标出了系统的边界,0层数据流图是对顶层数据流图中包含的大加工的细化,1层数据流图又是对0层中加工的细化。为了方便,有时称这些图互为“父子”关系。

            为了方便管理,从0层开始就要对数据流图以及其中的加工进行编号,并在整个系统中应是唯一的。编号的规则如下:

    ① 顶层数据流图以及其中唯一加工均不必编号;

    ② 由于0层通常只有一个子图,因此该子图的层号为0,而其中每一加工的编号分别为0.1,0.2,0.3...;

    ③ 以后各层,其子图层号为上一层(父层)的加工号;而该层中的加工编号为子图层号,后跟一个小数点,再加上该加工在子图中的顺序号,例如1.1,1.2,1.3...。

            由“父图”生成“子图”的步骤如下:

    ① 将“父图”的每一加工按其功能分解为若干个子加工;

    ② 将“父图”的输入流和输出流“分派”到相关的子加工;

    ③ 在各加工之间建立合理的关联,必要时引入数据存储,使之形成一个有机的整体。

    (3) 定义数据字典

            它依据系统的数据流图,定义其中包含的所有数据流和数据存储的数据结构,直到给出构成以上数据的各数据项的基本数据类型。

            数据是对客体的一种表示,所有客体均可用三种基本结构表示,这三种结构分别是顺序结构、选择结构和重复结构。它们的特点如下:

    ① 顺序结构

            顺序结构是指数据A是由数据B和数据C顺序构成的,并记为“+”。例如:“学生成绩” 是由“学号”、“姓名”、“成绩”构成的,记为:学生成绩 = 学号 + 姓名 + 成绩,其中 = 表达的意思是“定义为”。

    ② 选择结构

            选择结构是由数据A或是数据B或数据C定义的,并记为“|”。例如:“性别”是“男”或是“女”,记为:性别 = 男|女。

    ③ 重复结构

            重复结构是指数据A是由多个重复出现的数据B构成的,并记为“{ }”。例如:“学生成绩表”是由多个“学生成绩”构成的,记为:学生成绩表 = {学生成绩}

            在数据字典中,为了使定义的结构便于理解和阅读,一般按3种条目来组织,即数据流条目、数据存储条目和数据项条目。其中,数据流条目给出DFD图中所有数据流的结构定义;数据存储条目给出DFD图中所有数据存储的结构定义;数据项条目给出所有数据项的类型定义。

    (4) 描述加工

            它依据系统的数据流图,给出其中每一加工的小说明。由于需求分析的目的是定义问题,因此对DFD图中的每一加工只需给出加工的输入数据和输出数据之间的关系。对此可根据实际情况采取以下3种表达工具:

    ① 结构化自然语言

            如果一个加工的输入数据和输出数据之间的逻辑关系比较简单,可以使用结构化自然语言予以表述。

    ② 判定表

            如果一个加工的输入数据和输出数据之间比较复杂,可以采用一定的表达工具,例如判定表或判定树等,以避免产生不一致的理解。

            一个判定表由4个区组成,Ⅰ区内列出所有的条件类别,Ⅱ区内列出所有的条件组合,Ⅲ区内列出所有的操作,Ⅳ区内列出在相应的组合条件下,某个操作是否执行或执行情况。示例图如下:

    Ⅰ 条件类别Ⅱ 条件组合
    Ⅲ 操作Ⅳ 操作执行

    ③ 判定树

            判定树也是一种描述加工的工具。 

    4、应用中注意的问题

    (1) 模型平衡问题

    ① 系统DFD中每个数据流和数据存储都要在数据字典中予以定义,并且数据名一致;

    ② 系统DFD中最底层的加工必须在小说明中予以描述,并且加工名一致;

    ③ 父图中的某加工的输入输出数据流和分解这个加工的子图的输入输出数据流必须保持一致,特别是保持顶层输入数据流和输出数据流在个数上、在标识上均是一样的;

    ④ 在加工小说明中,所使用的数据流必须是在数据字典中定义的,并且名字是一致的。

    (2) 信息复杂性控制问题

     ① 上层数据流可以打包;

    ② 为了便于理解,一幅数据流图中的图元个数要控制在一定的数量以内;

    ③ 检查与每个加工相关的数据流,是否有太多的输入输出数据流,并寻找可降低该加工接口复杂性的、对数据流进行划分的方法;

    ④ 分析数据内容,确定是否所有的输入信息都用于产生输出信息。

    5、需求验证

            需求验证应验证需求规格说明书中的每一单一需求是否满足5个性质,即必要性、无歧义性、可测性、可跟踪性、可测量性;验证需求规格说明是否满足4个性质,即重要性和稳定性程序、可修改性、完整性和一致性。

    二、结构化设计

            结构化设计的主要任务是在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案。其中,结构化设计又进一步细分为总体设计和详细设计。

    1、总体设计

    (1) 总体设计的目标及表示

            总体设计阶段的基本任务是把系统的功能需求分配到一个特定的软件体系结构中。表达这一软件体系结构的工具有以下几种:

    ① Yourdon提出的模块结构图

            模块结构图是一种描述软件宏观结构的图形化工具。在结构图中每个方框代表一个模块,框内注明模块的名字或主要功能。连接上下层模块的线段表示他们之间的调用关系。带注释的箭头表示模块调用过程中传递的信息。处于较高层次的是控制模块,它们的功能相对复杂而且抽象;处于较低层次的是从属模块,它们的功能相对简单而且具体。依据控制模块的内部逻辑,一个控制模块可以调用一个或多个下属模块;同时,一个下属模块也可以被多个控制模块所调用,即尽可能的复用已经设计出的低层模块。

    ② 层次图

            层次图主要用于描绘软件的层次结构。在层次图中,每个方框代表一个模块,方框间的连线表示模块的调用关系。层次图适合自顶向下设计软件的过程中使用。

    ③ HIPO图

            实际上,HIPO图是由H图(层次图)和IPO图两部分组成的。为了使用HIPO图具有可跟踪性,除最顶层的方框外,为每个方框都加了编号。对H图中的每个方框,应有一张IPO图,用于描述这个方框所代表的模块的处理逻辑。IPO图的基本形式是在左边的输入框中列出有关的输入数据,在中间的处理框中列出主要的处理以及处理次序,在右边的输出框中列出产生的输出数据。另外,还用类似向量符号(箭头线)清楚地指出数据通信的情况。

    (2) 总体设计步骤

            总体设计的基本步骤是,首先将系统的DFD图转化为初始的模块结构图,再基于“高内聚低耦合”这一软件设计原则,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图(MSD)。

            待建的数据流图一般可以分成两类,即变换型数据流图和事务型数据流图。

    ① 变换型数据流图

            具有较明显的输入部分和变换部分之间的界面、变换部分和输出部分之间界面的数据流图,称为变换型数据流图。左边的虚线是输入和变换之间的界面,右边的虚线是变换与输出之间的界面。左边虚线处的输入称为逻辑输入,右边虚线处的输出称为逻辑输出。最开始的输入称为物理输入,最终结束的输出称为物理输出。

            DFD图所对应的系统,在高层次上来来讲由3个部分组成,即处理输入数据的部分、数据变换部分以及处理数据输出部分。那么数据处理工作也分为3个部分,即获取数据、变换数据、输出数据。

    ② 事务型数据流图

            当数据到达一个加工T,该加工T根据输入数据的值,在其后的若干动作序列(事务)中选出一个来执行,这类数据流图称为事务型数据流图。

            加工T完成的任务有:接收输入数据、分析并确定对应的事务、选取与该事务对应的一条活动路径。

            事务型数据流图所描述系统的数据处理模式为“集中——发散”式。其中,每一路径完成一项事务处理并且一般可能还要调用若干个操作模块。而这些模块又可以共享一些细节模块。因此,事务型数据流图可以具有多种形式的软件结构。

     

            结构化设计方法基于“自顶向下,功能分解”的基本原则,针对两种不同类型的数据流图,分别提出了变换设计和事务设计。其中,变换设计的目标是将变换型数据流图映射为模块结构图,而事务设计的目标是将事务型数据流图映射为模块结构图。

            总体设计分为3个阶段。第一阶段为初始设计,在对给定的数据流图进行复审和精华的基础上,将其转换为初始的模块结构图。第二阶段为精化设计,依据模块“高内聚,低耦合”的原则,精化初始的模块结构图,并设计其中的全局数据结构和每一模块的接口。第三阶段为复审阶段,对前两个阶段所得到的高层软件结构进行复审,必要时还可能需要以该软件结构做一些精化工作。

            在实践中,一个大型的软件系统一般是变换型流图和事务型流图的混合结构。在软件总体设计中,通常以变换设计为主,事务设计为辅进行结构设计。即首先利用变换设计,把软件系统分为输入、中心变换和输出3个部分,设计上层模块,然后根据各部分数据流图的结构特点,适当地利用变换设计和事务设计进行细化,得到初始的模块结构图,再按照“高内聚低耦合”的原则,对初始的模块结构图进行精化,得到最终的模块结构图。

    (3) 模块化以及启发式规则 

    ①  模块化

            模块是执行一个特殊任务的一个过程以及相关的数据结构。模块通常由接口和模块体(接口的实现)组成。

            结构化设计方法是一种典型的模块化方法,即把一个待开发的软件分解成若干简单的、具有高内聚低耦合的模块,这一过程称为模块化。

    ⒈ 耦合

            耦合是指不同模块之间相互依赖程序的度量。耦合的产生主要基于以下几个因素:

    ● 一个模块对另一个模块的引用;

    ● 一个模块向另一个模块传递数据;

    ● 一个模块对另一个模块施加控制。

            常见的模块耦合类型有:内容耦合、公共耦合、控制耦合、标记耦合、数据耦合。

    ⒉ 内聚

            内聚是指一个模块内部各部分之间相互关联程度的度量。

            常见的模块内聚类型有:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

    ② 启发式规则

            从实践中总结的一些启发式规则有:

    ● 改进软件结构,提高模块独立性

    ● 力求模块规模适中

    ● 力求深度、宽度、扇出(需要控制和协调的下级模块数量)和扇入(直接调用它的上级模块的数量)适中

    ● 尽力使用模块的作用域在其控制域之内

    ● 尽力降低模块接口的复杂度

    ● 力求模块功能可以预测

    2、详细设计

            通过详细设计,具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构,从而精确地定义了满足需求所规约的结构。详细设计的目标是将总体设计阶段所产生的系统高层结构映射为以这些术语所表达的低层结构,也是系统的最终结构。

    (1) 结构化程序设计

            结构化程序设计方法是一种基于结构的编程方法,即采用顺序结构、选择结构以及重复结构进行编程,其中每一结构只允许一个入口和一个出口。它的本质是使程序的控制流程线性化,实现程序的动态执行顺序符合静态书写的结构,从而增强程序的可读性,有利于理解、测试和排错。

    (2) 详细设计工具

            详细设计工具通常分为图形、表格和语言3种。

    ① 程序流程图

            程序流程图又称为程序框图。在程序流程图中,使用的主要符号包括顺序结构、选择结构和循环结构。它的主要优点是对控制流程的描绘很直观,便于初学者掌握。但它也有很多缺点,比如:

    ● 它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构;

    ● 它所表达的控制流,往往不受任何约束可随意转移,从而会影响甚至破坏好的系统结构;

    ● 它不易表示数据结构。

    ② 盒图(N-S图)

            采用盒图进行设计时,首先给出一个大的矩形,然后为了实现该模块的功能,再将该矩形分成若干个不同的部分,分别表示不同的子处理过程,这些子处理过程又可以进一步分解成更小的部分,其中每次分解都只能使用给定的基本符号,最终形成表达该模块的设计。

    ③ PAD图

            PAD图采用二维树形结构来表示程序的控制流。采用PSD图设计的模块一定是结构化的,并且所描述的程序结构也是十分清晰的。左边的竖线是程序的主线,是第一层控制结构,随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线,竖线的条数总是程序的控制层次数,从而使PAD图表现出的处理逻辑易读、易懂、易记。

    ④ 类程序设计语言(PDL)

            PDL也称为伪码,它不仅可以作为一种设计工具,还可以作为注释工具直接插在源程序中,以保持文档和程序的一致性,提高了文档的质量,可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作,已经存在的一些PDL处理工具,可以自动由PDL生成程序代码。

            PDL的缺点是水如图形工具那样形象直观,并且当描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树那样清晰直观。

    (3) 设计规约

            设计规约通常包括概要设计规约和详细设计规约,它们是相应设计过程的输出文档。

            概要设计规约指明高层软件体系结构,它的的主要内容包括:系统环境、软件模块的结构、模块描述、文件结构和全局数据文件的逻辑结构、测试需求等。

            详细设计规约是对软件各部分属性的描述,它的主要内容包括:各处理过程的算法、算法所涉及的全部数据结构的描述。

    展开全文
  • 软件工程中的结构化分析方法

    千次阅读 2019-02-26 08:47:42
    软件需求分析--结构化分析(SA)方法 结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法结构化分析方法(SA...

    软件需求分析--结构化分析(SA)方法

    结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。

      结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。

      SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

      1 SA 法概述

      1.SA 法的基本思想

      结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

      结构化分析方法的基本思想是“分解”和“抽象”。

      分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。

      图4 是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

      抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。

     

      2.SA 法的步骤

      ⑴建立当前系统的“具体模型”;

      系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。

      ⑵抽象出当前系统的逻辑模型;

      分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。

      ⑶建立目标系统的逻辑模型;

      分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD 图)。

      ⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。

      3.SA 法的描述工具

      ⑴ 分层的数据流图

      ⑵ 数据词典

      ⑶ 描述加工逻辑的结构化语言、判定表或判定树。

      2 数据流图

      数据流图(Data Flow Diagram,简称DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

      1.数据流图的图符数据流图有以下4 种基本图形符号:

    箭头,表示数据流;  〇:圆或椭圆,表示加工;   =:双杠(带一边开口,一边闭合),表示数据存储;  □:方框,表示数据的源点或终点。

     

     

      箭头表示数据流,圆或椭圆表示加工。双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。

      ⑴ 数据流 是数据在系统内传播的路径,由一组成固定的数据项组成。除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。

      ⑵ 加工 也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。

      ⑶ 数据存储 指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。

      ⑷ 数据源点和终点 是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。一般只出现在数据流图的顶层图中。

    展开全文
  • 实验报告书 课程 名 软件工程 题 目 实验一 结构化分析实验 班 级 软件 081 学 号 110831123 姓 名 评语 成绩 指导教师 批 阅时间 年 月 日 结构化分析实验报告要求 一目的与要求 1系统学习和理解结构化软件工程分析...
  • 提出基于领域需求的结构化描述的自动分析建模方法,通过对系统整体按照一定的组织结构进行描述,描述句式采用富含语义的句型和普通句型相结合的方式,运用自然语言处理相关技术,通过预定义的转换规则对结构化描述下...
  • 针对用现有方法对动态体系结构建模的不足,提出了一种软件体系结构抽象模型(SAAM)。SAAM以两种互为补充的形式化方法-面向对象Petri网OPN和π 演算为语义基础,其中OPN可以形象地描述软件体系结构的初始模型和...
  • 依据goal-scenario coupling方法提出了一种基于概念属性的结构化目标描述与识别方法。根据上述方法获得的目标模型,在Le Metayer提出的基于图形语法的体系结构建模理论和原则基础之上,提出了一种新的、目标驱动的...
  • 题 目 结构化分析实验 班 级 学 号 姓 名 评语 成绩 指导教师 批阅时间 年 月 日 软件工程 实验报告 - 1 - 结构化分析实验报告要求 1 目的与要求 : 1系统学习和理解结构化软件工程分析阶段的基本概念原理技术和方法 ...
  • 题 目 结构化分析实验 班 级 学 号 姓 名 评语 成绩 指导教师 批阅时间 年 月 日 软件工程 实验报告 - 1 - 结构化分析实验报告要求 1 目的与要求 : 1系统学习和理解结构化软件工程分析阶段的基本概念原理技术和方法 ...
  • UML建模软件工程

    千次阅读 2019-02-01 09:51:47
    前言     前面几篇博文小编初步为大家分享了UML建模中的相关内容-事物、关系、九种图。
    前言
        前面几篇博文小编初步为大家分享了UML建模中的相关内容-事物、关系、九种图。那么,我们有没有想过为什么要学习UML建模呢?学习UML建模有什么用途呢?如何使用UML中的模型图呢?本文小编将带您一起走进这精彩而奇妙的世界。
    正文
        UML是统一建模语言,它和前段时间小编学习的软件工程有着密不可分的关系。软件工程的终产物-文档、UML的终产物-九种图,这两者成为了软件系统开发的灵魂。
        举个简单例子,如果我想给自己的小宠物狗盖个窝,开始的时候我手头上有一堆木材、钉子、锤子、木锯、尺子等,在开工之前稍微计划一下,用半天或者一天的时间就可以完成。只要能容得下小宠物狗,能遮风挡雨,就算不美观、差一点也是可以的。     如果建筑师想建一座房子,他在打好地基之前就需要好好规划一下。要根据房屋所需者的要求,建筑师先要为将要建造的房子设计一张草图或者几张房屋建设的蓝图,要考虑各个房间的用途以及照明取暖设备的布局,供所需者参考。然后在准备材料,请工人建房子。    如果房地产开发商想要开发一个新楼盘,在正式动工之前,他需要对这个项目有一个合理的、详细的规划。有预算、有风险评估等,更是少不了该楼盘的图纸、模型图等。
        我们的软件系统开发,就类似于以上不同等级的盖房子一样。如果一个软件开发团队像建造狗窝一样进行软件开发,想要开发出高质量的软件通常情况下会是失败的。如果像建房子或者开发新楼盘一样开发软件,问题就不再是开始动工、写代码了,而是怎样正确动工、怎样正确写代码和怎样减少代码量了。这样高质量软件的开发就像建造房子、开发楼盘一样,变成了一个有结构化、有过程化和与工具相结合的问题了。
        我们在软件开发过程中,使用UML建模就相当于是给房子画蓝图、给新楼盘设计模型图。软件工程思想将软件开发过程划分了不同的阶段,每个阶段的文档也是给不同的人员看的。文档与UML图是软件开发过程的灵魂、是一个良好的软件开发团队中不可缺少的一部分。接下来具体说说它们之间的关联。

    UML与软件工程的结合
    前面小编学习了软件工程,也总结了一些相应的博客;现在学习了UML建模。那么这两者是怎样结合在一起的呢?请看下面的一张图:

    在这里插入图片描述


    一、项目开始阶段
    这个阶段相当于软件工程中的可行性研究,主要任务是通过与用户的沟通,以确认待开发系统“要做什么”,并进行可行性研究,简单来说就是从企业的角度出发研究这个项目是否能做、是否能盈利,如果可以盈利就去做。
    1.本阶段的重点:搞清项目的范围、必要的业务流程、项目的技术限制
    2.项目的成功关键因素:要充分了解利益相关方对于整体项目成功与否最关切的问题是什么,并且评估问题和项目成败的风险是否相关。
    这些方面在一开始就决定了此项目是否会成功,要不要进行这个项目。本阶段结束之后,如果通过可行性研究分析,那么便进入下一个阶段——需求分析。

    二、需求分析阶段
    本阶段主要是分析人员跟客户沟通,进行需求的收集和分析,然后形成需求规格说明书之类的文档,交由设计人员进行后续的系统设计工作。UML中的用例图正是用于需求收集和表达的有力工具,但是如何找出用例并非易事,这是因为从用户那里收集来的信息很可能是零散的、没有系统性的,要直接从中找出正确的用例非常困难。因此在分析用例之前,可以先对企业级的业务流程进行规划和设计,抓住企业的本质工作流,为后续进行详细的需求收集和用例分析做好准备。这就会引出UML中另一个重要的图—活动图,在本阶段的活动图是服务于用例图的。
    要想进行业务流程设计,提到流程一定不能忘了活动图。活动图最适合用来描述企业的本质工作流。活动图的应用:
    1.项目起始阶段,需求分析人员可以使用活动图,针对与项目相关的企业活动,与领域专家一起设计流程。
    2.项目上线阶段,可以用利用起始阶段的活动图作为集成测试的重要参考依据
    3.项目维护阶段,企业管理人员可以通过活动图了解企业现行的流程以及未来可以改善的方向。

    三、系统设计阶段
    前一阶段主要是使用用例图,后续的设计和开发阶段将围绕用例展开。系统设计就阶段的主要任务就是实现用例。
    1. 系统的设计分为概要设计和详细设计。概要设计即总体设计,这个阶段是建立系统整体模型和架构的阶段,需要抽象整个系统的结构,建立类模型就出现了,用类模型来模拟真实的系统关系模型,解决功能需求的问题。类图的主要目的是在进行软件开发前,先对软件所需面对问题领域的本质作一个通盘性的了解,但类图在软件设计之初并不完全正确,必须通过后续的检查才能够逐渐趋近于真实世界的领域模型。类图形成之后,对象图也会随之而来,复杂的系统中为了保证类图的正确性可以用对象图来解释类图的设计,因为类是对象的抽象和组合,在面向对象的编程设计中,我们所有的编码都是面向对象的。
    2. 类图和对象图都属于静态结构图,整个系统的静态结构呈现出来之后,这个框架已经有了,相当于有了躯体,这个时候我们需要给他注入血液让它动起来,所以这个时候需要交互图和行为图来描述整个系统的动态模型,其中行为图包括活动图和状态图,交互图包括时序图和协作图。
    3. 接下来到了详细设计,本阶段用到最多的是类图和包图,会包含很多的类,必须对这些类进行分类,放置在不同的命名空间中,利用命名空间之间的关系图,来限制住不同分类对象之间的访问,这就是“包图”的使用场景。

    四、实现阶段
    有了前面的概要设计和详细设计作为铺垫,到系统实现阶段就变得很容易了。实现阶段的编码依据就需要用到上一阶段的系统设计模型,包括静态和动态。行为图和交互图成为了主要的编码依据,因为它们对系统实现有较强的逻辑性,具体代码映射最强的就是对象图,它在画图软件中可以直接生成代码。
    五、测试阶段
    单元测试:使用类图和类的规格说明书
    集成测试:使用类图、包图、构件图、协作图
    系统测试:使用用例图来测试系统功能
    系统配置:使用部署图

    结语
        以上内容是小编对近期学习到的软件工程与UML建模之间联系的一个简单梳理。暂时理解的也许有些片面,如有发现不当之处,欢迎您及时斧正。
    *感谢您的阅读,希望对您能有所帮助*
    展开全文
  • 第4章 结构化分析本章目标 掌握结构化分析的几种常用建模方法掌握结构化分析的几种图形工具掌握利用Visio绘制数据流图的方法4.1 结构化分析概述 一种考虑数据和处理的需求分析方法被称作结构化分析方法Structured ...
  • 软件工程------需求结构化分析方法SA

    千次阅读 2019-06-05 13:59:55
    SA方法建模主要是3方面的: 功能建模:采用数据流图DFD; 行为建模:采用状态转换图(考的少); 数据建模:采用ER图
  • 火龙果软件工程技术中心 我觉得无论结构化范型或面向对象的范型,都是应用到软件工程的每一个阶段。系统的分析、设计必然要为技术管理提供方便,而且从程序的设计方法不断演化(过程式程序设计-〉模块化的程序设计-...
  • 软件工程导论实验报告 结构化设计方法
  • 序列图交互建模中的常见错误及其纠正方法。   常见错误 纠正错误 举例 不将序列图中的对象映射到类图中的类 确保序列图中的每个对象在类图中都有相应的类 - 设计...
  • 课程名 软件工程 题 目 试验1结构化分析试验 学 号 140093 班 级 Z计121 姓 名 薛慧君 评语 评语 成绩 指导老师 批阅时间 年 月 日 试验1结构化分析试验 试验目标和要求 1经过试验加深了解传统软件工程方法 ...
  • 软件工程.第四章.结构化分析方法.结构化分析模型0 目录4 结构化分析方法4.2 结构化分析模型4.2.1课堂重点4.2.2测试与作业5 下一章 0 目录 4 结构化分析方法 4.2 结构化分析模型 4.2.1课堂重点 4.2.2测试与...
  • 软件工程.第四章.结构化分析方法.结构化分析过程0 目录4 结构化分析方法4.1 结构化分析过程4.1.1课堂重点4.1.2测试与作业5 下一章 0 目录 4 结构化分析方法 4.1 结构化分析过程 4.1.1课堂重点 4.1.2测试...
  • 结构化方法作为一种“思想”工具,可以用于定义需求,建立待建系统的功能模型;可用于定义满足需求的结构,给出一种特定的软件解决方案。 需求技术的基本特征 二、需求分析中的基本术语 1.数据:客观事物的...
  • 软件工程(四)——需求建模

    千次阅读 2018-10-17 22:55:44
    笔者正在学习《软件工程-实践者的研究方法》这本书,记录下一些读书笔记,共勉! 1.需求分析 在技术层面上,软件工程开始于一系列的建模工作,最终生成待开发软件的需求规格说明和设计表示,指明软件和其他系统...
  • 结构化需求分析 Structured Analysis;讲义内容;什么是需求;结构化分析SA;案例-基本描述;步骤1需求获取;步骤2需求提炼分析建模;步骤2需求提炼分析建模;步骤3编写SRS;步骤4需求验证;步骤4需求验证;步骤4需求验证;数据...
  • 软件工程】UML 统一建模语言

    千次阅读 热门讨论 2015-10-22 21:35:01
    【前言】: 之前的文章里,分享了我对软件工程的一些看法。基本概述了整个软件工程设计的全部流程。 今天再来分享一下我对UML这整套优秀的建模准则工具的看法。
  • 软件工程中, 结构化方法是较为经典的设计与开发方式之一, 侧重于对系统进行功能 分解,它使用图表和文字在不同抽象层次上描述系统。复杂的过程被层层分解为子图, 直到每一个子过程都清晰得足以实现为止。 SA使用...
  • 结构化需求分析 Structured Analysis;讲义内容;什么是需求;结构化分析SA;案例-基本描述;步骤1需求获取;步骤2需求提炼分析建模;步骤2需求提炼分析建模;步骤3编写SRS;步骤4需求验证;步骤4需求验证;步骤4需求验证;数据...
  • 软件体系结构建模离不开具体的软件工程方法,常用的有:结构化开发方法、面向对象开发方法、基于构件的开发方法和基于体系结构的开发方法。 2.2 软件体系结构模型 软件体系结构模型应是多维的,而非单一的结构。...
  • 软件工程导论 结构化分析方法实验 实验报告
  • 课程名 软件工程 题 目 结构化分析试验 班 级 学 号 姓 名 评语 评语 成绩 指导老师 批阅时间 年 月 日 结构化分析试验汇报要求 1目标和要求: 1系统学习和了解结构化软件工程分析阶段基础概念原理技术和方法 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,031
精华内容 16,412
关键字:

结构化方法建模软件工程