【系统分析师之路】第七章 复盘系统设计(结构化开发方法)
复盘系统设计—结构化开发方法
前言部分 历年真题考点分析
1)考点分析
结构化开发方法主要包括了结构化需求分析和结构化设计,系统设计等方面的知识点。是系统分析师考试当中的重中之重。
2)重要知识点
01)结构化开发中需求分析的三个模型
02)需求分析活动的核心数据字典
03)系统总体结构设计的主要任务是什么
04)软件系统模块结构设计中的扇入与扇出
05)数据流图的主要作用是什么
06)详细设计与概要设计的概念以及输出
07)系统模块结构设计中一个模块应具备的要素有哪些
08)结构化设计(StructuredDesign,SD)的基本概念
09)结构化设计中模块的内聚和耦合
10)数据流图包含的四种元素及应用场景
11)结构化开发方法的优缺点
12)流程图与活动图的比对
13)结构化开发方法的分类
第一部分 综合知识历年真题
高项综合知识历年真题(1分)
【2019年下高项真题第7题:绿色】
7、在软件需求分析中,( )分别用来表示功能模型和行为模型。
A、数据流图、状态转换图
B、状态转换图、ER图
C、状态转换图、数据流图
D、ER图、状态转换图
解答:答案选择A。送分题。
考查需求工程⇒需求开发⇒需求分析的内容
数据模型:实体联系图
功能模型:数据流图
行为模型 :状态转换图
STD通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为
DFD说明系统所完成功能,从数据传递和加工的角度
2007下综合知识历年真题(2分)
【2007下系分真题第20题:绿色】
20.需求分析活动建造了软件的数据领域、功能领域和行为领域模型。模型的核心是数据字典,围绕着这个核心有三种不同的图,其中,(27)描述数据对象间的关系,用于进行数据建模;(28)表示了系统的各种行为模式以及在状态间进行变迁的方式,是行为建模的基础。
(27)
A.实体关系图
B.数据流图
C.状态变迁图
D.程序流图
(28)
A.实体关系图
B.数据流图
C.状态变迁图
D.程序流图
解答:答案选择A|C。送分题。
2012上综合知识历年真题(1分)
【2012年系分真题第20题:绿色】
20.以下关于软件系统模块结构设计的叙述中,正确的是(27)。
(27)
A.当模块扇出过大时,应把下级模块进一步分解为若干个子模块
B.当模块扇出过小时,应适当增加中间的控制模块当模块扇出
C.模块的扇入大,表示模块的复杂度较高
D.模块的扇入大,表示模块的复用程度高
解答:答案选的D。
一个模块的扇出是指该模块直接调用的下级模块的个数,扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。
扇出过大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块
扇出过小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。
一个模块的扇入是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程度高。
设计良好的软件结构通常顶层扇出比较大,中间扇出比较小,底层模块则有大扇入。
2014上综合知识历年真题(1分)
【2014年系分真题第20题:绿色】
20.系统分析阶段,在确定系统的所有功能后,还需要分析各功能之间的关系和流程,使用(22)来检验是否识别出所有的功能,判定系统分析师是否了解系统功能,也是以后进行系统设计的基础。
(22)
A.系统功能体系图
B.功能流程图
C.数据流图
D.实体-联系图
解答:答案选择C。
- 在系统分析阶段,确定系统的所有功能后,还需要分析各功能之间的关系和流程
- 通常系统分析师会使用“系统功能体系图”来检验是否识别出所有的功能,判定系统分析师是否了解系统功能,也是以后进行系统设计的基础
2017上综合知识历年真题(2分)
【2017年系分真题第20题:绿色】
20.系统设计是根据系统分析的结果,完成系统的构建过程。系统设计的主要内容包括(27);系统总体结构设计的主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的(28)。
(27)
A. 概要设计和详细设计
B. 架构设计和对象设计
C. 部署设计和用例设计
D. 功能设计和模块设计
(28)
A.用例图
B.模块结构图
C.系统部署图
D.类图
解答:答案选择A|B。
系统设计的主要内容包括概要设计和详细设计。
概要设计又称为系统总体结构设计,它是系统开发过程中很关键的一步,其主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。
在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。
根据任务的不同,详细设计又可分为多种,例如,网络设计、代码设计、输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
2018上综合知识历年真题(5分)
【2018上系分真题第18题:黄色】
18.系统设计是根据系统分析的结果,完成系统的构建过程。其中,( )是为各个具体任务选择适当的技术手段和处理流程: ( )的主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的 ( )。
(27)
A.详细设计
B.架构设计
C.概要结构设计
D.功能设计
(28)
A.详细设计
B.架构设计
C.概要结构设计
D.模块设计
(29)
A.用例图
B.模块结构图
C.系统部署图
D.类图
解答:答案选择A|C|B。第一第二空错。
系统设计的主要内容包括概要设计和详细设计。
概要设计又称为系统总体结构设计,它是系统开发过程中很关键的一步,其主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。
在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。
根据任务的不同,详细设计又可分为多种,例如,网络设计、代码设计、输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
【2018上系分真题第20题:红色】
20.系统模块结构设计中,一个模块应具备的要素包括输入和输出、处理功能、()和()。
(31)
A.外部数据
B.内部数据
C.链接数据
D.数据格式
(32)
A.程序结构
B.模块结构
C.程序代码
D.资源链接
解答:答案选择B|C。
一个模块应具备以下四个要素:
输入和输出
模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那儿取得输入,进行加工后再把输出返回调用者。
处理功能
指模块把输入转换成输出所做的工作。
内部数据
指仅供该模块本身引用的数据。
程序代码
指用来实现模块功能的程序。
前两个要素是模块的外部特性,即反映了模块的外貌;后两个要素是模块的内部特性。
在结构化设计中,主要考虑的是模块的外部特性,其内部特性只做必要了解,具体的实现将在系统实施阶段完成
2019上综合知识历年真题(6分)
【2019年系分真题第19题:绿色】
19、结构化设计(StructuredDesign,SD)是一种面向( )的方法,该方法中( )是实现功能的基本单位。
A、数据流
B、对象
C、模块
D、构件
》
A、模块
B、对象
C、接口
D、子系统
解答:答案选择A|A。考察需求工程中的面向结构化设计。
- 结构化设计(StructuredDesign,SD)是一种面向数据流的方法,它以 SRS 和 SA 阶段所产生的数据流图和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。
- SD 方法的基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段
- 概要设计的主要任务是确定软件系统的结构,对系统进行模块划分,确定每个模块的功能、接口和模块之间的调用关系
- 详细设计的主要任务是为每个模块设计实现的细节。
【2019年系分真题第20题:红色】
20、耦合表示模块之间联系的程度。模块的耦合类型通常可分为7种。其中,一组模块通过参数表传递记录信息属于( )。一个模块可直接访问另一个模块的内部数据属于( )。( )表示模块之间的关联程度最高。
A、内容耦合
B、标记耦合
C、数据耦合
D、控制耦合
解答:答案选择B|A|A。软件模块之间的耦合度从低到高排序为:
1)非直接耦合
两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
数据耦合 一组模块借助参数表传递简单数据
标记耦合 一组模块通过参数表传递记录信息(数据结构)
控制耦合 模块之间传递的信息中包含用于控制模块内部逻辑的信息
外部耦合 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息
公共耦合 多个模块都访问同一个公共数据环境,公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等
内容耦合 一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入
【2019年系分真题第21题:黄色】
21、内聚表示模块内部各部件之间的联系程度,( )是系统内聚度从高到低的排序。
A、通信内聚、瞬时内聚、过程内聚、逻辑内聚
B、功能内聚、瞬时内聚、顺序内聚、逻辑内聚
C、功能内聚、顺序内聚、瞬时内聚、逻辑内聚
D、功能内聚、瞬时内聚、过程内聚、逻辑内聚
解答:答案选择C。二周目仍然蒙对。软件模块内部的内聚程度从高到低排序为:
聚合类型 说明
功能内聚 完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚 处理元素相关,而且必须顺序执行
通信内聚 所有处理元素集中在一个数据结构的区域上
过程内聚 处理元素相关,而且必须按特定的次序执行
瞬时内聚(时间内聚) 所包含的任务必须在同一时间间隔内执行
逻辑内聚 完成逻辑上相关的一组任务
偶然内聚(巧合内聚) 完成一组没有关系或松散关系的任
2020上综合知识历年真题(5分)
【2020下系分真题第01题:绿色】
01.系统结构化分析模型包括数据模型、功能模型和行为模型,这些模型的核心是( )。
A.实体联系图
B.状态转换图
C.数据字典
D.流程图
解答:答案选择C。
本题考查的是结构化分析模型的相关概念。
结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型三种模型。流程图一般用于描述活动流程或程序执行流程,程序流程图是设计阶段的工具,与结构化分析无关。
实体-关系图(E-R图):用于建立数据模型,其中包含了实体、关系、属性。
数据流图(DFD):描绘信息流和数据输入输出的移动过程。是结构化分析过程中使用的主要功能建模工具。
状态转换图:通过描述系统的状态及引起系统状态转换的事件,表示系统的行为,提供了行为建模的机制。
数据字典:描述在数据模型、功能模型和行为模型中出现的数据对象和控制信息的特征,给出这些对象的精确定义。数据字典是分析模型的核心,通常使用CASE工具来创建和维护数据字典。
数据字典是结构化分析方法(SA方法)的核心。它通常包括五个部分,即数据项、数据结构、数据流、数据存储、处理过程。
【2020下系分真题第02题:绿色】
02.数据流图是系统分析的重要工具,数据流图中包含的元素有( )。
A.外部实体、加工、数据流、数据存储
B.参与者、用例、加工、数据流
C.实体、关系、基数、属性
D.模块、活动、数据流、控制流
解答:答案选择A。送分题。
数据字典是结构化分析方法(SA方法)的核心。它通常包括五个部分,即数据项、数据结构、数据流、数据存储、处理过程。答案选择C选项
【2020下系分真题第21题:绿色】
21.结构化设计(Structured Design, SD)是一种面向数据流的系统设计方法,它以()等文档为基础,是一个()。 逐步求精和模块化的过程。SD方法的基本思想是将软件设计成由相对独立且具有单一功能的模块,其中()阶段的主要 任务是确定软件系统的结构,对软件系统进行模块划分,确定每个模块的功能、接口和模块之间的调用关系。
A.数据流图和数据字典
B.业务流程说明书
C.需求说明书
D.数据说明书
》
A.自底向上
B.自顶向下
C.原型化
D.层次化
》
A.模块设计
B.详细设计
C.概要设计
D.架构设计
解答:答案选择A|B|C。送分题。
本题考查的是结构化设计相关内容。
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析(Structured Analysis,SA)、结构化设计(Structured Design,SD)和结构化程序设计(Structured Programming,SP)三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。
结构化设计是一种面向数据流的系统设计方法,它以数据流图和数据字典等文档为基础。数据流图从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据字典是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。第一空为A选项。
结构化设计的基本思想是自顶向下逐步分解。这一思想指明了模块划分工作的层次性。首先,将系统整体看作一个模块,按其功能分为若干个子模块,这些子模块各自承担系统部分功能,并协调完成系统总体功能。然后,将每一个子模块分别作为整体,进一步划分下一层功能更简单的子模块,以此类推,直至模块功能不能再划分为止,最终形成层次型的系统结构模型。第二空为B选项。
SD可以进一步细分为概要设计和详细设计两个阶段,其中概要设计主要任务是确定软件系统的结构,对软件系统进行模块划分,确定每个模块的功能、接口和模块之间的调用关系。而详细设计则是具体描述每个部件或模块的实现方法。第三空为C选项。
2022上综合知识历年真题(2分)
【2022下系分真题第29题:黄色】
29.结构化设计(Structured Design, SD)是一种面向数据流的方法,可进一步细分为( )两个阶段,它根据( )和系统结构准则,将DFD转换为系统结构图,用系统结构图来建立系统的物理模型,描述系统分层次的模块结构,以及模块之间的通信与控制关系。
A.概要设计和详细设计
B.数据库设计和架构设计
C.概要设计和架构设计
D.模块设计和数据设计
》
A.模块耦合性原则
B.模块独立性原则
C.自顶向下原则
D.自底向上原则
解答:答案选择A|B。第二空错选了C。
SD可以进一步的细分为概要设计和详细设计两个阶段。它根据模块独立性原则和系统结构准则,将DFD转化为系统结构图,然后用系统结构图来建立相应的系统的物理模型,描述系统分层次的模块结构。以及模块之间通信与控制关系。
SD方法给出了一组帮助系统设计人员在模块层次上区分设计质量的原理和技术,它通常与SA方法衔接起来一起使用,以DFD为基础得到系统的模块结构,SD方法尤其适用于变换型结构和事务型结构的目标系统。
第二部分 案例分析历年真题
2020年下系统分析师案例分析(25分)
2020年下系统分析师案例分析试题二(结构化分析设计)
阅读以下关于软件系统分析与设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某企业拟开发一套数据处理系统,在系统分析阶段,系统分析师整理的核心业务流程与需求如下:
(a)系统分为管理员和用户两类角色,其中管理员主要进行用户注册与权限设置,用户主要完成业务功能;
(b)系统支持用户上传多种类型的数据,主要包括图像、文本和二维曲线等;
(c)数据上传完成后,用户需要对数据进行预处理操作,预处理操作包括图像增强、文本摘要,曲线平滑等; .
(d)预处理操作完成后,需要进一步对数据进行智能分析,智能分析操作包括图像分类、文本情感分析、曲线未来走势预测等;
(e)上述预处理和智能分析操作的中间结果均需要进行保存;
(f)用户可以将数据分析结果以图片、文本、二维图表等多种方式进行展示,并支持结果汇总,最终导出为符合某种格式的报告。
【问题1】 (9分)
数据流图(Data Flow Diagram, DFD) 是一种重要的结构化系统分析方法,重点表达系统内数据的传递关系,并通过数据流描述系统功能。请用300字以内的文字说明DFD在进行系统需求分析过程中的主要作用。
【问题2】 (10分)
顶层图(也称作上下文数据流图)是描述系统最高层结构的DFD,它的特点是将整个待开发的系统表示为一个加工,将所有的外部实体和进出系统的数据流都画在一张图中。请参考题干描述,将合适的内容填入图2—1中(1) ~ (5)空白处,完成该系统的顶层图。
【问题3】 (6分)
在结构化设计方法中,通常采用流程图表示某一处理过程,这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。而在面向对象的设计方法中,则主要采用活动图表示某个用例的工作流程。请用300字以内的文字说明流程图和活动图在表达业务流程时的三个主要不同点。
【问题1标准答案】
DFD图是理解和表达用户需求的工具,是需求分析的手段。
DFD作为一个存档的文字资料,是进一步修改和充实开发计划的依据。
DFD概括的描述了系统的内部逻辑过程,是需求分析结果的表达工具,也是系统设计的重要参考资料,是系统设计的起点。
【问题2标准答案】
1)管理员
2)用户权限信息
3)用户
4)多种类型数据
5)导出报告/展示结果
【问题3标准答案】
流程图着重描述处理过程,它的主要控制结构是顺序,分支,循环;各个处理过程之间有严格的顺序和时间关系;而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。
流程图只能表达顺序的执行过程,活动图则可以表达并发执行过程。
活动图可以有多个结束状态,而流程图只能有一个结束状态。
第三部分 论文写作历年真题
2018上论文写作历年真题(75分)
试题一 论信息系统开发方法论
信息系统的开发一般分为系统规划、需求定义、系统设计、实施和维护等主要五个阶段,每一个阶段都应该在科学方法论的指导下开展工作。随着信息系统规模的变化和传统开发方法 论的演变,信息系统开发过程经历了“自底向上”和“自顶向下”两种方式
请围绕“信息系统开发方法论”论题,依次从以下三个方面进行论述。
1.概要叙述你参与分析和开发的信息系统以及你所担任的主要任务和开展的主要工作。
2.分别说明信息系统“自底向上”和“自顶向下”两种系统分析设计方式。详细阐述系统 遵循“自底向上”方式和“自顶向下”方式设计开发的优缺点。
3.详细说明你所参与的信息系统是如何遵循“自底向上”、“自顶向下”或综合“自底向上”和“自顶向下”两种方式进行的分析、设计和开发的。
结构化方法属于自顶向下的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。
它的优点有
1)是目前最成熟,应用较广泛的一种工程化方法;
它的缺点有:
1)开发周期长,难以适应环境变化
2)早期的结构化方法注重系统功能,兼顾数据结构的方面不多
3)结构化程度较低的系统,在开发初期难于锁定功能要求
自底向上的开发方法本质上就是不断归纳、不断抽象的过程。
自底向上的开发模式是先编写出基础程序段,然后再逐步扩大规模、不断补充和升级某些功能,最终构造出软件的过程。该模式的核心本质是“不断归纳”,直到形成稳定的系统。
它的优点有
自底向上是新兴的模型们推荐的灵活的开发模式,采用这种模式的优点是比较灵活,系统应对变化的能力相对较强。
它的缺点有
由于设计是从底层开始的,所以缺点也比较明显:如果设计经验不足的话,难以保证总体设计的一致性。
实际上在现代设计中,有很多的大型项目都是混合使用自顶向下法和自底向上法的,因为自顶向下可以确定系统大的架构方向,自底向上可以灵活调整系统的实现细节。