第5章结构化分析方法

合集下载

软件项目管理案例教程(第三版)课后习题答案整理(最终版)(1)

软件项目管理案例教程(第三版)课后习题答案整理(最终版)(1)

项目管理案例教程(第三版)习题及答案第一章软件项目管理概述一、填空题1、实现项目目标的制约因素有(项目范围)、(成本)、(进度计划)、(客户满意度)等。

2、项目管理包括(启动过程组)、(计划过程组)、(执行过程组)、(控制过程组)、(收尾过程组)5个过程组。

二、判断题1、搬家属于项目。

(对)2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。

(错)3、过程管理就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。

(对)4、项目具有临时性的特征.(对)5、日常运作存在大量的变更管理,而项目基本保持连贯性的。

(错)6、项目开发过程中可以无限制地使用资源.(错)三、选择题1、下列选项中不是项目与日常运作的区别的是(C)A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。

B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。

C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。

D.项目是一次性的,日常运作是重复性的.v2、下列选项中最能体现项目的特征(C)A.运用进度计划技巧B.整合范围与成本C.确定期限D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D)A.由人来做B.受限于有限的资源C.需要规划、执行和控制D.都是重复性工作4、项目经理的职责不包括(D)A.开发计划B.组织实施 C.项目控制 D.提供资金5、下列选项中属于项目的是(C)A.上课B。

社区保安C.野餐活动D。

每天的卫生保洁6、下列选项中正确的是(C)A.一个项目具有明确的目标而且周期不限 B.一个项目一旦确定就不会发生变更C.每个项目都有自己的独特性D.项目都是一次性的并由项目经理独自完成7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。

A.过程B.项目C。

项目群D。

组合8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。

软件工程第五章课后题

软件工程第五章课后题

一、选择题
1.软件管理中,需要对软件进行配置,各阶段文档的管理属于()。

D
A.组织管理
B资源管理
C.计划管理
D.版本管理
2.软件开发的结构化方法中,常用数据字典技术,其中数据加工是
其组成内容之一,下述方法()是常采用编写加工说明的方法。

Ⅰ结构化语言Ⅱ判定树Ⅲ判定表
A.Ⅰ
B.Ⅱ
C.Ⅱ、Ⅲ
D.都是
3.在软件工程实施中,产生软件生命周期的概念是由()。

A.方法论所决定的
B.开发技术划分
C.软件开发规律
D.软件工程管理
二、填空题
1.软件计划包括和两个阶段。

2.软件概要设计的成果是。

3.软件的详细设计,也称模块设计。

它要求设计人员为每一个程序模块确定所使用的,,、输出数据等。

4.结构化分析方法是进行分析的方法。

三、解答题
1.什么是软件的可维护性?可维护性的度量的特性是什么?
2.提高可维护性的方法有哪些?
答案:
一、1.D 2.D 3.A
二、
1.总体设计(或概要设计)详细设计
2.软件设计说明书
3.算法数据结构接口细节和输入
4. 面向数据流
三、
1.软件的可维护性:软件能够被理解、校正、适应及增强功能的容易程度。

可维护性的度量的特性是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

2.(1)建立明确的软件质量目标。

(2)利用先进的软件开发技术和工具。

(3)建立明确的质量保证工作。

(4)选择可维护的程序设计语言。

(5)改进程序文档。

大学计算机基础第5章

大学计算机基础第5章

时期 阶段
任务
文档
需求分析 系统的目标及应完成的工作 需求规格说明书
开发
总体设计 软件设计
详细设计 软件编码 编写程序代码
总体设计说明书 详细设计说明书 程序、数据注释
黑盒测试、白盒测试、单元 测试后的软件、
软件测试 测试、集成测试、确认测试、大纲、方案与结
系统测试

运行 软件维护 运行和维护
维护后的软件
1)软件生命周期模型:是描述软件开发过程 中各种活动如何执行的模型。 2)常见的软件生命周期模型有:瀑布模型、 增量模型、螺旋模型、喷泉模型、变换模型及 基于知识的模型等。
上图是软件生存周期的瀑布模型。
5、软件工具与软件开发环境
软件工具:就是帮助开发软件的软件。 软件开发环境(或称软件工程环境):是全面支 持软件开发全过程的软件工具的集合,这些软 件工具按照一定的方法和模式组合起来,共同 支持软件生命周期内的各个阶段和各项任务的 完成。
结构化方法的软件开发过程
软件计划后 结构化分析
结构化设计
编码并测试 结构化程序设计
面向对象方法的软件开发过程
软件计划后 面向对象分析
面向对象设计
软件测试 面向对象编程
1、结构化分析方法
1)结构化分析(简称SA)方法是面向数据流 进行需求分析的方法。该方法使用简单易读 的符号,运用抽象的概念模型,根据软件内 部数据传递、变换的关系,自顶向下逐层分 解,描绘出满足功能要求的软件模型
DFD图的数据流可分为两种类型:变换流和事务流 变换流:信息沿着输入通路进入系统,同时将信息的外
部形式转换成内部形式,通过变换中心处理之 后,再沿着输出通路转换成外部形式输出 事务流:信息沿着输入通路到达一个事务中心,事务中 心根据输入信息的类型在若干个动作序列中选 择一个来执行,这种信息流称为事务流

第五章结构化分析与建模

第五章结构化分析与建模

结构化分析模型

系统模型从以下不同的角度表述系统:


从外部来看,它是对系统分析上下文或系统环境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处理的数 据结构建模。
系统行为模型:


结构化的需求分析模型有:

数据流模型,用来描述系统中的数据处理过程。 状态转换模型,用来描述系统如何对事件做出响应。

数据流图举例
假设我们要开发一个学生管理系统。 其中开发小组通过进行进一步的需求调查,明 确了该系统的主要功能是进行学籍管理,包括 学生报到、入学、毕业的管理,学生上课情况 的管理。 通过详细的信息流程分析和数据收集后,生成 了该子系统的数据流图。
将0层 DFD中的加工“1.0报到”分解成1层DFD中的3个子 加工:“ 1.1 核对录取通知书”、“ 1.2 核对体检结果”和 “1.3同意入学”。保留0顶层DFD加工边界中的7个数据流。 随着加工的分解,新增两个数据流“已核对的录取通知书” 和“已核对的体检结果”。


数据流图举例:飞机机票预订系统:旅行社把预订机票的旅客信 息输入机票预订系统。系统为旅客安排航班,打印出取票通知单 (附应交的帐款)。旅客在飞机起飞的前一天凭取票通知等交款 取票,系统检验无误,输出机票给旅客。
旅行社
订票单 分类并检查
有效订票单 订票
航班 取票单 有效取 票单 记账文件 机票准备 账单 记账 取票通知单 航班目录
旅客
机票
机票文件
旅行社
数据流图举例(分层)


设一个工厂采购部每天需要一张定货报表。定货 的零件数据有:零件编号、名称、数量、价格、 供应者等。零件的入库、出库事务通过计算机终 端输入给定货系统。当某零件的库存数少于给定 的库存量临界值时,就应该再次定货。 数据流分析:

软件工程概述-第5章 结构化需求分析

软件工程概述-第5章 结构化需求分析

实体 属性 联系
用矩形表示,矩形内写 明实体名
用椭圆形表示,并用无 向边将其与对应实体连 接起来
用菱形表示,并用无向 边分别与有关实体连接 起来,同时在无向边旁 标上联系的类型。
E-R 图表示图示 例 2-1 中的例子
练习
例:简单的学生选课系统:
(1)学生 属性有学号,姓名, 性别,年龄,所在系
x
1.1
1.2
1.3
1
3
2
2.1 2.3
2.2
1.1 1.3
目录
1
5.1结构化分析
2
5.2数据流图
3
5.3数据字典
4
5.4 实体关系图
5
5.5 状态转换图
数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数据 流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出 所需的加工处理过程。
(2)课程 属性有课程号,课程 名称,先修课程号,学分
实体之间的联系:
一个学生可同时选修多门 课程,而一门课程可以同时被 若干学生选修。用成绩来表示 某个学生学习某门课程的成绩 。
分解:对于一个复杂的系统,为了将复杂性降 低到可以掌握的程度,可以把大问题分解成若 干小问题,然后分别解决。
抽象:分解可以分层进行,即先考虑问题最本 质的属性,暂把细节略去,以后再逐层添加细 节,直至涉及到最详细的内容,这种用最本质 的属性表示一个系统的方法就是“抽象”
结构化分析
结构化分析方法基本思想 “分解”和“抽象”
取值范围:数据项的取值范围,例如,职工年龄 的取值范围定义为18至60岁,表示为18..60。
初始值:数据项的初始值,例如,为了操作简便, 软件定义借书日期的初始值默认为系统的当前日 期。

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。

这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。

2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。

例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。

这为提高软件产品质量提供了有效保证。

瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。

•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。

3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。

将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。

快速原型方法具有以下一些特点。

•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。

一旦需求或设计确定下来,原型就将被抛弃。

因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。

快速原型往往采用软件生成工具来创建,例如,4GL语言。

面向数据流的分析方法

面向数据流的分析方法

⾯向数据流的分析⽅法外部实体位于软件系统边界之外的信息⽣产者或消费者转换变换数据流的处理过程,⼜称泡(bubble )为⼀个或多个转换提供数据源或数据存储服务的缓冲区、⽂件或数据库数据存储在转换之间定向流动的数据项或数据项集合第5章⾯向数据流的分析⽅法⾯向数据流的分析⽅法(dataflow-oriented analysis method )与⾯向对象、⾯向数据的分析⽅法,都是需求建模⽅法。

它们均有⼀组规范的语⾔表达机制,需求分析⼈员⽤来表达⽤户需求、构造软件系统模型。

此外,它们还含有⼀些规则和经验知识,指导分析⼈员提取需求信息,促进⽤户需求精确化、完全化和⼀致化。

⾯向数据流的分析⽅法是结构化分析⽅法系列中的⼀⽀,具有明显的结构化特征。

结构化分析⽅法的雏形出现于20世纪60年代后期。

但是,直到1979年才由DeMarco 将其作为⼀种需求分析⽅法正式提出。

由此,结构化分析⽅法得到了迅速发展和⼴泛应⽤。

本章主要介绍⼴为使⽤的⾯向数据流的分析⽅法及其需求分析CASE ⼯具。

5.1 数据流图与数据字典⼀个基于计算机的信息处理系统就是对数据流进⾏⼀系列加⼯的处理过程,⽽这些加⼯将输⼊数据流变换为输出数据流。

数据流图就是⽤来刻画数据流和加⼯的信息系统建模技术。

数据字典是与数据流图配套使⽤的,⽤来定义系统中数据元素的有机集合体。

5.1.1 数据流图数据流图(Data Flow Diagram ,DFD )描述输⼊数据流到输出数据流的转换(即加⼯),⽤于对系统的功能建模。

1.数据流图的基本图形元素数据流图中的基本图形元素包括:数据流、转换、数据存储以及外部实体,如图5-1所⽰。

数据流、转换、数据存储⽤于构建软件系统内部的数据处理模型;外部实体表⽰存在于系统边界之外的对象,⽤来帮助我们理解软件系统数据的来源和去向。

图5-1 数据流图的基本图形元素需要说明的是,DFD 图形元素还可以⽤其他描述符号来表⽰,如⽤圆⾓矩形表⽰转换,⽤开放箭头表⽰数据流等。

王芳-数字档案馆学-第五章 数字档案馆系统的分析与设计

王芳-数字档案馆学-第五章 数字档案馆系统的分析与设计

第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 3、结构化设计的概念
结构化设计的核心是模块分解设计。结构化设计 运用一套标准的设计准则和工具,对系统控制层 次关系和模块进行分解。模块化显著提高了系统 的可修改性和可维护性,同时,为系统设计工作 的有效组织和控制提供了方便条件。结构化设计 最重要的概念包括模块化、内聚与耦合
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 2、结构化设计 结构化设计是软件生命周期的重要组成部分, 是指把通过数据、功能和行为模型展示的软件 需求传送给设计阶段,由设计阶段产生体系结 构设计、接口设计、数据设计和过程设计
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 2、结构化设计
第一节信息系统开发方法介绍
二、原型法
原型法的主要优点表现为:原型法的开发过程是 一个循环往复的反馈过程,符合用户对计算 机 应用的认识逐步发展、螺旋式上升的规律。 原 型法很具体,使用户能很快接触和使用系统,容 易为不熟悉计算机应用的用户所接受,可提 高 用户参与系统开发的积极性。
第一节信息系统开发方法介绍
第五章数字档案馆系统的分析与设计
本章要点
介绍了信息系统开发的一般方法,包括结构化 生命周期法、原型法、面向对象的开发方法以 及计算机辅助设计工程CASE;分析了档案信息 系统的规划方法和可行性研究;最后阐述了档 案信息系统设计的步骤和方法
关键词
档案信息系统 结构化生命周期法 原型法
面向对象的开发方法
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 1、结构化分析 结构化分析方法适合于数据处理类型软件的需求 分析。由于利用图形表达需求显得清晰、简 明 ,易于学习和掌握。具体来说,结构化分析 方 法就是用抽象模型的概念,按照软件内部数 据 传递、变换的关系,自顶向下逐层分解,直 到 找到满足功能要求的所有可实现的软件为止。

软件工程第五章结构化设计

软件工程第五章结构化设计

服务注册中心
发现
注册
服务消费者 调用
服务提供者
并发系统的集中式控制模型
传感器进程 用户界面Fra bibliotek传动装置进程 系统控制器
计算进程 故障处理器
系统控制模型
事件驱动系统
广播模型:发生的事件广播到所有子系统,任何能处理 该事件的子系统都会响应。该模型适用于基于网络的分 布式系统。
广播模型中的子系统注册其感兴趣的特别事件 广播模型的优点是进化比较简单
软件模块化设计
模块是一个独立命名的,拥有明确定义的输入、输出 和特性的程序实体。
软件的模块化设计(Modular Design)。系统是有 一个个模块组装而成。
软件模块化设计优点
可以简化软件的设计和实现 提高软件的可理解性和可测试性 软件更容易得到维护。
软件模块化设计缺点
结构化设计阶段 数据流设计方法 面向数据的设计 结构化程序设计 案例分析
结构化设计概述
结构化设计方法(Structured Design, SD)是基于模 块化、自顶向下细化、结构化程序设计等程序设计技 术基础上发展起来的。
结构化设计方法用模块结构图来表达程序模块之间的 关系。
缺点是子系统都知道是否和什么时候处理事件,这可能会引 起冲突。
中断驱动模型:由中断处理器对来自外部的中断进行检 测,然后在其他组件中处理这些中断。该模型适用于对 定时有严格要求的实时系统。
只用在硬件实时系统中,要求对一些事件能做出及时响应
总线架构
像水管一样随意接入 像PCI总线一样即插即用
第三部分软件设计与建模
结构化软件设计
阳王东
回答问题
什么是软件设计?有哪些阶段和任务? 什么是模块化设计?有哪些原理? 什么是软件结构和体系结构?二者有什么区别? 数据流有哪些类型?如何区分? 数据流映射的步骤是什么? 什么是结构化程序设计?有哪些工具? 什么是JSD方法?具体步骤是什么?

第五章 数据库设计

第五章 数据库设计

运动会方面,实体集包括:运动员(编号,姓名,性别,队 伍号),比赛项目(项目名,比赛场地)。其中,一个比赛项 目可供多名运动员参加,一名运动员可参加多个项目。
根据上述条件,分别设计运动队和运动会两个局部E-R图。
第三节 概念结构设计 参赛项目 性别 队伍号 队伍名 教练名 运动员 性别 队伍号 运动员 m 参加 n n 属于
第三节 概念结构设计 分解变换。如果实体集的属性较多,可以进行分解。例如, 对于员工实体集,其属性为员工号、姓名、性别、生日、(所 属)支行名、岗位、工资、奖金。 性别 生日 支行名 岗位 工资 奖金
姓名 员工号 员工
第三节 概念结构设计 可以把员工信息分解为两部分,一部分属于固定信息,一部 分属于变动信息。为了区别这两部分信息,产生一个新的实体 和一个新的联系。
在视图合并阶段,设计者把所有视图有机地合并成统一的概 念模型,这个最终的概念模型支持所有的应用。
第三节 概念结构设计 概念结构设计的策略主要分为自顶向下、自底向上、自内向 外和混合策略四种。 这些方法中最常用的是自底向上方法:首先设计局部概念模 式,然后综合局部概念模式成全局概念模式,最后对全局概念 模式进行评估和优化。
P2 P1 D2明细 D3账目 E2会 E1客 D1付款 打印账目 账务处理 单 户 计
第二节 需求分析 元数据是描述数据的数据,通常由数据结构的描述组成,主 要描述数据及其使用环境,例如数据精度、来源、产生时间、 使用范围、注解等。 数据字典是一种用户可以访问的、记录数据库和应用程序元 数据的集合,通常是用来解释数据表、数据字段等数据结构的 意义,数据字段的取值范围、数据值代表的意义等。 简而言之,数据字典是描述数据的信息集合,是系统中所有 数据的定义集合。
数据字典通常由数据项、数据结构、数据流、数据存储和处 理过程组成。

软件工程:理论与实践(第2版)

软件工程:理论与实践(第2版)

读书笔记
如果是初学者,不建议阅读此书,干巴巴得容易让人丧失兴趣,建议阅读《构建之法》。
目录分析
第1章软件与软 件工程
第2章软件过程
1.1软件 1.2软件危机 1.3软件工程 1.4软件开发方法 1.5软件工程工具 1.6 “小型网上书店系统”案例介绍 习题
2.1软件过程概述 2.2软件生命周期 2.3软件开发模型 2.4软件开发模型实例 习题
软件工程:理论与实践(第2 版)
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
第版
内容
第章
面向对象
过程
实例
面向对象
软件
软件
工程 软件
案例
理论
习题
过程
系统
实验
ห้องสมุดไป่ตู้
书店
工程
内容摘要
本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。本书共 分为12章,内容涉及软件与软件工程、软件过程、可行性研究与项目开发计划、结构化分析、结构化设计、面向 对象方法与UML、面向对象分析、软件体系结构与设计模式、面向对象设计、软件实现、软件测试、软件维护与 软件工程管理。本书理论与实践相结合,内容翔实,可操作性强。本书是高等院校计算机科学、软件工程及相关 专业“软件工程”课程的理想教材。
第6部分软件维护与软件工程管 理
12.1软件维护 12.2软件估算 12.3软件开发进度计划 12.4软件开发人员组织 12.5软件开发风险管理 12.6软件质量保证 12.7软件配置管理概述 12.8软件工程标准与软件文档 12.9软件过程能力成熟度模型

5_关系数据库设计

5_关系数据库设计

(2)数据流图(Data Flow Diagram,DFD)
数据流图从数据传递和加工的角度,来刻 画数据流从输入到输出的移动变换过程。
当系统比较复杂时,可以采用分层描述的方法。在处理功 能逐步分解的同时,它们所用的数据也逐级分解,形成若干层 次的数据流图。数据流图表达了数据和处理过程的关系。
(3)数据字典
需求分析阶段最后是编写系统分析报告,通常称为需求 规范说明书。需求规范说明书是对需求分析阶段的一个总结。 编写系统分析报告是一个不断反复、逐步深入与完善的过程, 系统分析报告应包括如下内容:
系统概况,系统的目标、范围、背景、历史和现状; 系统的原理和技术,对原系统的改善; 系统总体结构与子系统结构说明; 系统功能说明; 数据处理概要、工程体制和设计阶段划分; 系统方案及技术、经济、功能和操作上的可行性。
数据需求是指用户需要一个信息系统最终能够提供的所有数据, 通过分析制作数据流图。
3.确定处理需求 .
处理需求通常是指用户要求应用软件系统能够提供的 所有功能。根据业务需求以及数据需求可以进一步确定处 理需求。处理需求可用系统功能模块图表示。
【例5-3】 教务管理系统的功能模块图。 】
4.编写需求分析说明书 .
5.1.2数 据库设 计步骤
前四个步骤为数据库系统的分析与设计;后两个步骤 为数据库系统的实施、运行与维护。
1)需求分析:了解和分析用户的应用需求(包括信息需求和处理需 求),进行需求收集和分析,并以数据流图、数据字典等形式加以描 述。 2)概念设计:把需求分析阶段得到的用户需求进行综合、归纳和抽 象,形成一个独立于具体DBMS的概念数据模型。 3)逻辑设计:按照一组转换规则,将概念设计阶段产生的概念模型 转换为某个DBMS支持的逻辑数据模型。 4)物理设计:是为逻辑模型选取一个最适合应用环境的物理结构 (包括存取结构和存取方法)。 5)数据库实施:设计人员运用DBMS提供的数据库语言及其宿主语 言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程 序,组织数据入库,并进行试运行。 6)数据库运行与维护:数据库试运行后,即可投入正式运行。数据 库在运行期间应不断地对其进行评价、调整与修改。

第五章 IDEF方法

第五章  IDEF方法
度(或立场)来分析,会有完 全不同的需求与结果。所谓观点问题就是要明确从哪一角度去观察问 题或者站在什么人的立场上米分析问题。 一般来说,建议站在全局负责人的立场上来建模。比如对一个企
业的CIM系统,必须有明确的站在厂长(或经理)的位置上建模的观点,
所有不同层次的作者都要以全局的观点来进行建模工作,或者说就是 为厂长而建模。这样才能保证足从全企业的高度来揭示各部分之间的 相互联系和相互制约关系,而不会偏向某个部门的局部需求。
只有清楚了上述问题,才能说对所要理解或描述的某种活动或功能 足够了,IDEF0方法正是采用简单的图形符号和简洁的文字说明描述系统 在不同层次上的上述问题的。在该方法中,将系统功能称为活动,将表 示系统功能的图形称为活动图形,在活动图形中,用方框和箭头表示系 统的各种活动及其相互之间的关系。
IDEF0 方法是用结构化分析方法建立的图形模型。其基本图形是用 盒子(box)代表功能活动,用与之相连的箭头表示与活动关联的各种事物。
5.2.3 画法和做法的若干规定 5.2.3.1 箭头画法 箭头代表活动所关联的事物,它有两大类:一类称内部箭头,它的 两端分别连到图形内两个盒子上;另一类称边界箭头,它的两端中一 端是开的,表示由图形以外的活动所产生,或由图形以外的活动所使
用。在各种不同的工作情况下箭头可有下列各种画法:
(1)箭头代表的是事物或数据,因此可以“汇流”、“分流”或“共 用”。
其编号次序是i和o从上到下c和m从左524idef实例53ideflx方法的概述用idef方法建立的系统功能模型只反映了系统功能或处理的详细内容及其逻辑关系并没有详细说明系统内部所有信息的组织结构和相互关系而cimsmis是企业的集成化管理信息系统其处理的核心是企业内部的各种信息
第5章

软件工程 第5章软件详细设计

软件工程 第5章软件详细设计

第5章例题分析与解答作者:不详来源:2006年9月1日发表评论进入社区一、填空题1.结构化程序设计方法的要点是使用___三种基本控制_____结构,自顶向下、逐步求精地构造算法或程序。

2.为了产生结构化的流程图,应由三种基本控制结构顺序组合或__完全嵌套___而成。

3.结构化程序设计方法提倡开发人员的组织形式是___主程序组_____。

4.PAD图是一种由左向右展开的二维树型结构,图中的竖线为程序的____层次线____。

5.在Jackson方法中解决结构冲突的具体办法是引入__中间数据结构或中间文件______。

二、选择题1.详细设计与概要设计衔接的图形工具是( B )。

A.DFD图B.SC图C.PAD图D.程序流程图2.结构化程序设计主要强调的是( C)。

A.程序的效率B.程序的执行速度C.程序的易读性D.程序的规模3.详细设计的任务是确定每个模块的( A)。

A.算法B.功能C.调用关系D.输入输出数据4.Jackson方法实现从( A )导出(C )。

A.数据结构B.数据流图C.程序结构D.软件模块层次结构5.在软件详细设计过程中不采用的描述工具是( D )。

A.判定表B.IPO图C.PAD图D.DFD图三、应用题一个正文文件由若干个记录组成,每个记录是一个字符串。

要求统计每个记录中空格字符的个数及文件中空格字符的总个数。

要求输出数据格式是每复制一行字符串之后,另起一行印出上一行字符串空格字符的个数,最后一行印出空格字符总个数。

答案:一、填空题1.三种基本控制结构2.完整嵌套3.主程序员组4.层次线5.中间数据结构或中间文件二、选择题1.B2.C3.A4.AC5.D三、应用题图5-1图5-2<>第5章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.结构化程序设计2.PAD3.PDL4.结构冲突5.对应关系二、填空题1.结构化程序设计方法使用___三种基本控制结构___构造程序。

结构化方法

结构化方法
结构化方法
——传统的软件工程方法是传统的软件开发方法,也称为生命周期 方法学或结构化范型,它是由结构化分析、结构化设 计和结构化实现三部分有机组合而成的。 结构化方法的基本思想:把一个复杂问题的求解过程 分阶段进行,而且这种分解是自顶向下,逐层分解, 使得每个阶段处理的问题都控制在人们容易理解和处 理的范围内。 结构化方法强调开发方法的结构合理性和系统的结构 合理性。


软件生命周期的划分
3
结构化方法

结构化方法把软件生命周期的全过程依次划分为若干个阶 段,然后顺序完成每个阶段的任务,前一阶段任务的完成 是后一阶段工作的前提和基础;每个阶段又划分详细的工 作步骤,顺序作业。每个阶段和主要步骤都有明确详尽的 文档编制要求,各个阶段和各个步骤的向下转移都是通过 建立各自的软件文档和对关键阶段、步骤进行审核和控制 实现的。 结构化方法的优点



采用自顶向下功能分解的方法 强调逻辑功能而不是实现功能的具体方法 使用图形(主要有数据流图、数据字典、结构化语言、 判定表以及判定树等)进行系统分析并表达分析的结果。
结构化设计(Structured Design)

传统的软件工程方法学采用结构化设计技术完成软件 设计(概要设计和详细设计)工作。 所选教材第5、6章介绍结构化设计技术。 结构化设计技术的基本要点如下


软件系统由层次化结构的模块构成 模块式单入口和单出口的 构造和联结模块的基本准则是模块独立 用图(层次图、IPO图、结构图)来描述软件系统的结 构,并且使软件结构域问题结构尽可能一致
结构化实现(Structured Implementation)

软件实现包括编码和测试两个阶段。 所选教材第7章介绍结构化实现技术。 按照传统的软件工程方法学,编码是把软件设计的结 果翻译成用某种程序设计语言书写的程序。 测试是提高软件质量的重要手段。

软件工程案例教程答案

软件工程案例教程答案

1.下列所述不是软件特点的是(A)A.软件是有形的B.软件不存在磨损和消耗问题C.软件开发成本高D.软件没有明显的制作过程2.软件工程的出现主要是由于(C)A.程序设计方法学的影响B.其他工程学科的影响C.软件危机的出现D.计算机的发展3.以下(C)不是软件危机的表现形式A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差4.软件工程的目的是(C)A.建造大型的软件系统B.开发的软件可维护性差C.软泥吉安质量的保证D.研究软件开发的远离5.下列所述不是软件组成的是(D)A.程序B.数据C.界面D.文档6.下列对“计算机软件”描述正确的是(A)A.是计算机系统的组成部分B.不能作为商品参加交易C.是在计算机硬件设备生产过程中生产出来的D.之存在语计算机系统工作时7.软件工程的方法的产生源于软件危机,下列(D)是产生软件危机的内在原因A.软件的复杂性B.软件维护困难C软件成本太高. D.软件质量难保证8.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题A.软件危机B.质量保证C.开发效率D.生产工程化9.软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进A.项目管理B.成本核算C.人员培训D.工具开发10.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济二、填空题1.软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件开发技术、软件项目管理和软件质量管理。

2.螺旋式开发模型主要是针对风险比较大的项目而设计的3.由于软件产生的复杂性和高成本,使大型软件产生出了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。

4.增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。

软件工程及实践[窦万峰]第5章 软件详细设计

软件工程及实践[窦万峰]第5章 软件详细设计
第5章 软件详细设计
5 . 1 结构化详细设计 5 . 2 结构化设计工具 5 . 3 人机界面设计 5 . 4 数据库设计 5 . 5 面向对象精化设计 5.6 编 码
.
5.1 结构化详细设计
结构化程序设计的理念是在20世纪60年代由Dijkstra等人提出并加以完善的。 结构化的程序一般只需要用3种基本的逻辑结构就能实现,即顺序结构、选择结 构和循环结构,如图5-1所示。
.
5.3 人机界面设计
5.3.1 界面分析与设计 1.美学规则 在有关界面设计的著作中,Theo Mandel创造了3条黄金原则 (1)置用户于控制之下 (2)减少用户的记忆负担。 (3)保持界面一致。 2.人机界面分析 人机界面的设计工作应与软件系统的需求分析工作同步进行,主要包括如 下几个过程。 (1)通过界面和系统交互的最终用户分析。 (2)最终用户为完成工作要做的任务分析。 (3)确定界面的类型。 (4)任务处理的环境。
概要IPO图用于表达对一个系统,或对其中某一个子系统功能的概略表达, 指明在完成某一功能框规定的功能时需要哪些输入、哪些操作和哪些输出。图 5-8所示为表示销售/盘存系统第2层的对应H图中1.1.0框的概要IPO图。
.
5.2.4 HIPO图
在概要IPO图中,没有指明输入―处理―输出三者之间的关系,用它进行下 一步的设计是不可能的。所以需要使用详细IPO图用于指明上述三者之间的关系, 其图形与概要IPO图一样,但输入和输出最好用具体的介质和设备类型的图形表 示。图5-9所示为销售/盘存系统中对应H图中1.1.2框的详细IPO图。
.
5.2 结构化设计工具
5.2.1 程序流程图 程序流程图又称为“程序框图”,是Goldstine于1946年首先采用的。它是 历史最悠久,使用最广泛的描述软件设计的方法,能直观地描述过程的控制流 程,便于初学者掌握。其中较常用的一些符号如图5-2所示,方框表示一个处理 步骤,菱形代表一个逻辑条件,箭头表示控制流向。注意,程序流程图中使用 的箭头代表控制流,而不是数据流。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考生通知单
由于“正式成绩清单”中缺少“考生通知单”中的姓 名、通信地址等数据,这些数据也无法由加工2.3自己产 生,因此,加工2.3不满足数据守恒的条件

分解原则
• 分解应自然,概念上要合理、清晰。
• 上层可分解得快些,而下层应分解得慢些。 • 在不影响可读性的前提下,应适当多分解成几部分,以减少分解层数。



功能需求
◦ 1.对考生送来的报名单进行检查 ◦ 2.对合格的报名单编好准考证号后将准考证送给考生, 并将汇总后的考生名单送给阅卷站 ◦ 3.对阅卷站送来的成绩清单进行检查,并根据考试中心 制订的合格标准审定合格者 ◦ 4.制作考生通知单送给考生 ◦ 5.进行成绩分类统计(按地区、年龄、文化程度、职业、 考试级别等分类)和试题难度分析,产生统计分析表
数据流图的画法
5.1 结构化分析方法概述
5.2 数据流图
5.3 数据字典 5.4 加工逻辑说明 5.5 实例:供销管理系统的需求

发展历史
◦ 提出:20世纪60年代末到70年代初 ◦ 成熟:20世纪70年代末到80年代中期

一种面向数据流的传统软件开发方法 以数据流为中心、构建软件的分析模型和设计模型

结构化系统软件开发方法主要包括
◦ 结构化分析(Structured Analysis,SA) ◦ 结构化设计(Structured Design,SD)
◦ 结构化程序设计(Structured Programming)

核心思想:抽象与分解 (控制复杂性的两个基本手 段)
◦ 抽象:在每个抽象层次上忽略问题的内部复杂性,只关注 整个问题与外界的联系 ◦ 分解:将问题不断分解为较小的问题,直到每个最底层的 问题都足够简单为止

部分数据流的组成
◦ 报名单:地区+序号+姓名+文化程度+职业+考试级别+通信地 址
◦ 正式报名单:准考证号+报名单
◦ 准考证:地区+序号+姓名+准考证号+考试级别+考场 ◦ 考生名单:{准考证号+考试级别} 其中{w}表示w重复多次 ◦ 考生名册:正式报名单 ◦ 统计分析表:分类统计表+难度分析表 ◦ 考生通知单:准考证号+姓名+通信地址+考试级别+考试成绩+ 合格标志

核心思想:抽象与分解
◦ 抽象:从作为整体的软件系统开始(第一层),每一抽象层次 上只关注于系统的输入输出 ◦ 分解:将系统不断分解为子系统、模块……
X
3
4
1
2
随着分解层次的增 加,抽象的级别越 来越低,也越接近 问题的解(算法和数 据结构)
2.2 2.4
1.1
2.1
1.2
1.3
2.3

基本特征 :“数据流图”
注意:
新文件(首次出现的文件)至少应有一个加工为其写入记录,同 时至少存在另一个加工来读该文件的记录
从父图中继承下来的文件在子图中可能只对其进行读,或只 进行写

0层图
◦ 确定源和宿
0层图和其它子图中通常不必画出源和宿 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中
不合格报名单 考生通知单

注意
当数据处理可用一页纸明确表述时,或数据处理只有单一输入/输出数 据流时(出错处理不包括在内),就应停止对该数据处理的分解。 对数据流图中不再做分解的数据处理(即功能单元),必须做出详细的数 据处理说明,并且每个数据处理说明的编号必须与功能单元的编号一致。

分成多个级别,如初级程序员、程序员、高级程序 员、系统分析员等,凡满足一定条件的考生都可参 加某一级别的考试 考试的合格标准将根据每年的考试成绩由考试中心 确定 考试的阅卷由阅卷站进行,因此,阅卷工作不包含 在软件系统中

顶层图
◦ 确定源或宿:考生、阅卷站和考试中心
它们都既是源又是宿
◦ 顶层图唯一的加工:软件系统(考务处理系统) ◦ 确定数据流:系统的输入/输出信息
输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合 格标准(来自考试中心) 输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考 生通知书(送往考生)、统计分析表(送往考试中心)

需求分析是承上启下(衔接可行性分析与系统设计)的重要活动 在项目需求阶段发现并修复错误所花费的成本与维护阶段发现并修复 错误的成本比例可能达:1:200

需求工程是建立并使用完善的工程化方法,以较经济的手段获得准确 表达用户需求的软件需求规格说明的一个学科
需求工程的主要关注点:需求开发和需求管理 需求开发的四步:需求获取、需求建模与分析、需求文档化、需求评 审 需求管理主要包括:需求变更控制、需求版本控制、需求跟踪、需求 状态跟踪
同一个源或加工可以有多个数据流流向一个加工,如果它们不是 一起到达和一起加工的,那么可以将它们分成若干个数据流,例 如:
读取 银行卡信息 银行卡数据 密码
客户

0层图
◦ 确定文件
如果父图中该加工存在读写文件的数据流,则相应的文件和 数据流都应画在子图中 在分解子图中,如果需要保存某些中间数据以备后用,则可 以将这些数据组成一个新的文件

描述一个加工的多个数据流之间的关系
◦ 星号(*):表示数据流之间存在“与”关系
所有输入数据流同时存在时,才能进行加工处理 或加工处理的结果是同时产生所有输出数据流
◦ 加号(+):表示数据流之间存在“或”关系
至少存在一个输入数据流时才能进行加工处理 或加工处理的结果是至少产生一个输出数据流
◦ 异或(⊕):表示数据流之间存在“异或”(互斥)关系
必须存在且仅存在一个输入数据流时,才能进行加工处理 或加工处理的结果是产生且仅产生一个输出数据流

不可能将全部的加工和数据流放在一张图中,需要 按照问题的层次结构逐步进行分解,从简单到复杂 ,以分层的数据流图反映出这种关系。
体现了抽象和信息隐藏 分层DFD 图包括顶层DFD、中间层DFD 和底层 DFD
•子图的父图号就是父图中相应数据处 4)尽量简化加工间的联系
数据不守恒的实例
成绩清单 2.1 检查 成绩清单 2.5 分析 试题难度 难度分析表
错误成绩清单 正 确 成 绩 清 单 试题得分清单 2.4 分类 统计成绩 分类统计表
考生名册 正式成绩清单 2.3 制作 通知单
合格标准
2.2 审定 合格者
输入数据流
转换
输出数据流
数据流用带有数据流标识的箭头表示,表示系统处理的数 加工也称为数据处理或数据变换,是对数据进行处理的逻辑单元。 外部实体:数据源或终点 据对象和数据流动的方向。 动词短语:打印发票、计算总金额、验证订货单

数据流的方向可以是:
◦ 从一个加工流向另一个加工; ◦ 从加工流向数据存储(写)或数据存储流向加工(读); ◦ 从源点流向加工或从加工流向终点。

对数据流的表示有以下约定:
◦ 数据流至少有一个端点必须与数据处理符号连接。 ◦ 对流入或流出数据存储的数据流可以不标注名字。 ◦ 数据流不允许同名。 ◦ 两个数据处理之间可以有几股不同的数据流。 ◦ 数据流图描述的是数据流而不是控制流。
数据存储在数据流图中起保存数据的作用。 数据存储是计算机系统中的外部或者内部文件、文件的一 部分、数据库的元素或记录的一部分等,还可以是一个人 工系统中的表册、账单等。分层数据流图中,通常是局部 于某一分解层次的。数据存储可用名词或名词短语命名
1) 父图与子图平衡 2)局部数据存储 •子图中的编号为父图号和子数据处理
分解应自然,概念上要合理、清晰。 3)合理的编号 的编号组成。
• 上层可分解得快些(即分解成的子数据处理 个数多些),这是因为上层是综合性描述, 理的编号。 5)分解的程度 对可读性的影响小。而下层应分解得慢些。 • 在不影响可读性的前提下,应适当多分解 成几部分,以减少分解层数。

神奇的数字7加减2:人们在一段时间内的短期记忆 似乎限制在5~9件事情之内
--------George Miller

根据自顶向下逐层分解的思想将数据流图画成层次 结构

每个层次画在独立的数据流图中,加工个数可大致 控制在“7加减2”的范围中

由外向里,自顶向下,逐层细化,完善求精
◦ 步骤一:找外部实体,确定系统边界,确定数据源点和数 据终点。 ◦ 步骤二:从数据源出发,按照系统的逻辑需要,逐步绘制 出一系列逻辑加工框,直至数据终点。 ◦ 步骤三:对数据流图进行复审求精。

第四步:为目标系统的逻辑模型作补充

数据流图(Data Flow Diagram,DFD) 数据字典(Data Dictionary,DD)
结构化语言、判定表和判定树。
实体—关系图 、状态转换图。

数据字典:核心,包含了软件使用和产生所有 数据的描述 数据流图:功能建模,描述系统的输入数据流 如何经过一系列的加工变换逐步变换成系统的 输出数据流
额外的输出流(考虑系统的健壮性):不合格报名单(返回给考 生),错误成绩清单(返回给阅卷站)
◦ 顶层图通常没有文件

顶层图
不合格报名单 统计分析表 考务 处理系 统 考 生 名 单 成 绩 清 单 错 误 成 绩 清 单
考生
报名单
准考证 考生通知单
考试中心ቤተ መጻሕፍቲ ባይዱ
合格标准
阅卷站

0层图
◦ 确定加工:将父图中某加工分解成子加工 ◦ 根据功能分解来确定加工:将一个复杂的功能分解成若干 个较小的功能,较多应用于高层DFD中的分解 ◦ 根据业务处理流程确定加工:分析父图中待分解加工的业 务处理流程,业务流程中的每一步都可能是一个子加工 ◦ 特别注意:在业务流程中数据流发生变化或数据流的值发 生变化的地方,应该存在一个加工,例如:
相关文档
最新文档