第5章《软件工程》

合集下载

软件工程第五章课后题

软件工程第五章课后题

一、选择题
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章)
10
11
5.1.2 选取若干个合理的方案
至少选取低成本、中等成本和高成本三种方案。
每种方案准备四份资料:



系统流程图; 组成系统的物理元素清单; 成本/效益分析; 实现这个系统的进度计划。
12
5.1.3 推荐最佳方案
分析员应该综合分析对比各种合理方案的利
弊,推荐一个最佳的方案,并且为推荐的方 案制定详细的实现计划。
发出较高质量的软件系统。
7
第一部分:设计过程 第二部分:设计原理 第三部分:启发原则 第四部分:软件结构图 第五部分:面向数据流的设计方法
8
5.1 设 计 过 程
总体设计过程通常由两个主要阶段组成: 系统设计:确定系统的具体实现方案。 结构设计:确定软件结构。 9个步骤: ① 设想供选择的方案 ② 选取合理的方案 ③ 推荐最佳方案 ④ 功能分解 ⑤ 设计软件结构 ⑥ 设计数据库 ⑦ 制定测试计划 ⑧ 书写文档 ⑨ 审查和复审
和理解; 可以使软件容易测试和调试,因而有助于提高软 件的可靠性; 能够提高软件的可修改性; 有助于软件开发工程的组织管理。
32
模块化五条标准
模块可分解性
把问题分解为子问题 模块可组装性 可复用 模块可理解性 无需参考其他模块,易于构造和修改 模块连续性 微小修改只导致对个别模块 模块保护性 异常影响局限在模块内部


“隐蔽”意味着模块彼此间仅仅交换那些为了完成系统功能而 必须交换的信息。 “局部化”是指把一些关系密切的软件元素物理地放得彼此靠 近。局部化有助于实现信息隐蔽。


设计和确定模块时,使得一个模块内包含的信息(过程和 数据)对于不需要这些信息的模块来说,是不能访问的。 模块内部的数据与过程,应该对不需要了解这些数据与过 程的模块隐藏起来。只有那些为了完成软件的总体功能而 必需在模块间交换的信息,才允许在模块间进行传递。

软件工程概述-第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。
初始值:数据项的初始值,例如,为了操作简便, 软件定义借书日期的初始值默认为系统的当前日 期。

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

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

数据流程图
01
数据流程图表示 求解某一问题的 数据通路,同时 规定了处理的主 要阶段和所用的 各种数据媒体
程序流程图
02
程序流程图表示 程序中的操作顺 序
系统流程图
03
系统流程图表示 系统的操作控制 和数据流
程序网络图
04
程序网络图表示 程序激活路径和 程序与相关数据 流的相互作用
系统资源图
05
系统资源图表示 适用于一个问题 或一组问题求解 的数据单元和处 理单元的配置
5.1.3 PAD
01 PAD 的基本符号
OPTION
➢ 顺序结构 ➢ 条件结构 ➢ CASE 型多分支结构 ➢ 先检测循环条件的WHILE 型循环结构 ➢ 后检测循环条件的UNTIL 型循环结构 ➢ 语句标号 的特点
OPTION
用PAD 表示的程序从最左边的竖线的上端开始,自上而 下、自左向右执行 用PAD 设计的软件结构必然是结构化的程序结构
图1
图2
5.1.1 流程图
04 流程图的3 种基本结构
OPTION
流程图的3 种基本结构为顺序结构、条件 结构和循环结构,如图1所示,图中的C 是判 定条件。顺序结构如图(a)所示。条件结构 可分为两种,一种是IF...THEN...ELSE 型条件 结构,如图(b)所示;另一种是CASE 型多 分支结构,如图(c)所示。
应的应做的工作。
2 判定表中的符号
右上部用T 表示条件成立,用F表示条件不 成立,空白表示条件成立与否不影响。
右下部画× 表示在该列上面规定的条件下做 该行左边列出的那项工作,空白表示不做该 项工作。
5.1.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.结构化程序设计方法使用___三种基本控制结构___构造程序。

软件工程 第五章(总结和课后习题)

软件工程 第五章(总结和课后习题)
第五章 RUP
出:分析类[完成];4、对包进行分析: 输入:系统体系结构描述[分析]、分析 包[概述]输出:分析类[完成]。 � (18)创建系统的分析模型,一般应进 行体系结构分析、用况分析、类的分析 以及包的分析 4 项活动。 � (19)用况分析[分析]的目标:1、标识 那些在用况事件流执行中所需要的分析 类和对象;2、将用况的行为,分布到参 与交互的各个分析对象;3、捕获用况细 化上的特定需求。 � (20)用况分析[分析]开展的活动包括: 1、标识分析类,标识在细化一个用况中 所需要的实体类、控制类和边界类,给 出它们的名字、责任、属性和关系;2、 描述分析(类)对象之间的交互,通常 使用交互图来描述。 � (21)类的分析[分析]的目标:1、标识 并维护分析类的责任;2、基于它们在用 况细化中的角色,标识并维护分析类的 属性和关系;3、捕获分析类细化中的特 定需求。 � (22)类的分析[分析] 开展的活动包 括:1、标识责任;2、标识属性;3 标识 关联与聚合; � (23)需求分析模型对以后开发工作的 影响?1、对设计中子系统的影响。分析 包一般将影响设计子系统的结构;2、对 设计类的影响。分析包可以作为类设计 时的规格说明;3、对用况细化[设计]的 影响。用况细分[分析]对用况细化[设计] 有两方面影响,一个是它们有乃至于为 用况创建更精确的规格说明,另一个是 当对用况进行设计时,用况细化[分析] 可作为其输入。 (24)需求获取模型与需求分析模型之
第五章 RUP
[概述];输出:子系统[完成]、接口[完 成]。 � (29)用况的设计包括以下任务:1、标 识参与用况细化的设计类;2、标识参与 用况细化的子系统的接口。 � (30)类的设计包括以下任务:1、概括 描述设计类;2、标识操作;3、标识属 性;4、标识关联、聚合;5、标识泛化; 6、描述方法; � � � (31)RUP 设计的突出优点:P165 页 (32)RUP 的设计系统生成构件;对构件进行测试,进行 集成测试和连接;把可执行的构件映射 到部署模型。 � (34)RUP 实现包括以下活动:1、实现 模型;2、实现子系统;3、实现模型视 角下的体系结构描述;4、实现类; � � (35)RUP 测试包括内部测试、中间测试 和最终测试。 (36)RUP 测试的主要活动:1、计划测 试;2、设计测试;3、实现测试;4、执 行集成测试;5、执行系统测试;6、评 价测试。

软件工程 第5章--UML

软件工程 第5章--UML
10
UML的定义
UML定义有两个主要组成部分:语义和表示法。 语义用自然语言描述,表示法定义了UML的可 视化标准表示符号,这决定了UML是一种可视 化的建模语言。 在语义上,模型是元模型的实例。UML定义给 出了语法结构的精确定义。 使用UML时,要从不同的角度观察系统,为此 定义了概念“视图(View)‖。视图是对系统的模 型在某方面的投影,注重于系统的某个方面。
独立于过程
系统建模语言,独立于开发过程。
9

容易掌握使用 概念明确,建模表示法简洁明了,图形结 构清晰,容易掌握使用。 着重学习三个方面的主要内容: (1) UML的基本模型元素 (2) 组织模型元素的规则 (3) UML语言的公共机制 与程序设计语言的关系 用Java,C++ 等编程语言可实现一个系统。 一些CASE工具可以根据 UML所建立的系 统模型来产生Java、C++ 等代码框架。
31
UML事物 — 注释事物
11) Note(注释)
依附于一个元素或一组元素之上,对其进
行约束或解释的简单符号。没有语义影响。
See policy8-5-96.doc for details about these algorithms.
CashAccount presentValue()
32
15
UML定义 9 种图,表达UML中的 5 种视图,各 视图在静态和动态方面表示系统模型。
结构 视图 静态 方面
动态 方面
行为 视图 同左
实现 视图 构件图
环境 视图 部署图
同左
用例 视图 用例图
同左
类图 对象图
顺序图 同左 顺序图 合作图 (注重 合作图 状态图 进程、 状态图 活动图 线程) 活动图

(完整版)软件工程 第五章 面向对象的需求分析

(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。

它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。

面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。

20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。

20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。

UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。

本章首先介绍面向对象的主要概念和思想。

在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。

第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。

Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。

如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。

一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。

1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。

可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。

对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。

例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。

图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。

《软件工程实用教程》第5_章_面向对象的需求分析

《软件工程实用教程》第5_章_面向对象的需求分析

第5 章 面向對象的需求分析
5.2.2 封裝、繼承和多態
1.封裝 封裝是指把對象的外部特徵與內部實現細節分開,使 得一個對象的外部特徵對其他對象來說是可訪問的, 而它的內部細節對其他對象是隱蔽的。 對象具有封裝性的條件如下: (1) 有一個清楚的邊界,所有私有數據和操作的代碼都被 封裝在這個邊界內,從外面看不見更不能訪問; (2) 有確定的介面,這些介面描述這個對象和其他的對象 之間相互的作用; (3) 受保護的內部實現,這個實現給出了由軟體對象提供 的功能的細節,實現細節能在定義這個對象的類的外 面訪問。
第5 章面向對象的需求分析
通過在不同程度上運用抽象原則(忽略事物 之間的一些差異),可以得到較一般的類和 較特殊的類。特殊類繼承一般類的屬性和操 作,面向對象方法支持這種繼承關係的描述 與實現,從而簡化系統的構造過程及其文檔; 複雜對象可以用簡單的對象作為其構成部分 (稱為聚合); 對象之間通過消息進行通信,以實現對象之 間的動態聯繫; 通過關聯表達對象之間的靜態關係。
第5 章面向對象的需求分析
5.1.3 面向對象方法的優點 1. 與人們習慣的思維方法一致 2. 可使軟體系統結構更加穩定 3. 軟體具有更好的可複用性 4. 軟體更加便於維護與擴充
第5 章面向對象的需求分析
5.1.4 面向對象建模
用例模型:包含所有用例及其與用戶之間的關係; 對象模型:包含問題域涉及的類及其屬性和關係,其 作用是更詳細地提煉用例,將系統的行為初步分 配給提供行為的一組對象; 設計模型:將系統的靜態結構定義為子系統、類和介 面,並定義由子系統、類和介面之間的協作來實 現的用例; 實現模型:包含構件和類到構件的映射; 配置模型:定義電腦的物理節點和構件到這些節點的 映射; 測試模型:描述用於驗證用例的測試用例。

软件工程第五版课后习题答案第五章

软件工程第五版课后习题答案第五章

习题53(1)数据流图如下:对数据流图划分边界,如下所示:按照以上数据流图设计软件结构,如下所示:计算取款利息输入系统2.2打印存款单D1 2.1 记录存款信息 储户储户 打印利息清单 储户信息 存款单取款单 密码验证成功 1 3.23.1 计算取款利息输入系统 2.2打印存款单D1 2.1 记录存款信息 储户储户 打印利息清单 储户信息 存款单 取款单 密码验证成功 1 3.23.14(1)数据流图如下:(2)需求说明:功能需求:系统需要能查出教师的原有工资,计算出教师的现有工资,并打印相关信息。

数据需求:教师的原有工资信息,教师赡养的人数,教师的工龄行为需求:系统要能判断原有工资是否符合涨工资要求,要精确计算现有工资,要提供给用户调查信息的借口与界面。

(3)用a 算法的HIPO 图:储蓄系统输入用户信息核对密码录入清单处理用户请求记录存款信息计算取款利息输出相关清单打印存款单打印取款单教师档案办公室磁带 打印原有工资和新工资信息 提取原工资信息 计算新工资 办公室磁带 年工资大于等于$26000 年工资小于$26000用b 算法的HIPO 图:对于算法(a):优点:这样设置符合常规思路,容易让人理解 缺点:计算的次数较多。

检索效率低。

对于算法(b):优点:计算的次数较少,效率高缺点:该算法不易于理解。

涉及到排序算法的设计。

(4)所画的数据流图更符合a 算法。

5.答:需求分析:要实现三大功能,发牌;确定获胜方和牌型;模拟多次游戏,计算牌型的获胜和平局的概率。

教师工资系统提取工资信息1.0工资调整 2.0检索年工资少于$26000的教师2.1计算新工资 2.2储存新工资 2.3打印工资信息3.0教师工资系统提取工资信息1.0工资调整 2.0按年工资从低到高排序 2.1对符合要求的教师计算新工资2.2储存新工资 2.3打印工资信息3.0分析后,设计的HIPO图如下:流程图在下页:扑克牌模拟程序初始化各项数据1.0进行N次游戏2.0发两手牌2.1双方进行出牌2.2确定赢者和赢牌类型2.3计算每种类型牌赢或平局概率3.0控制流程图如下:。

软件工程-第5章

软件工程-第5章

变更控制
变更控制(Change Control)的目的并 不是控制变更的发生,而是对变更进行管理, 确保变更有序进行。对于软件开发项目来说, 发生变更的环节比较多,因此变更控制显得 格外重要。它回答:受控产品怎样变更?谁 控制变更?何时接受,恢复,验证变更?
变更控制的流程
5.2.5正式技术复审
基线与SCI的概念
5.2.3 版本控制
版本控制(Revision Control)是全面 实行软件配置管理的基础,是对系统不同版 本进行标识和跟踪的过程,所有置于配置库 中的元素都应自动予以版本的标识,并保证 版本命名的唯一性和状态的一致性。其目的 是便于对版本加以区分、检索、跟踪或回溯, 以区别各个版本之间的关系。
软件质量模型
Boehm质量模型 (1)软件的可使用性 (2)软件的可维护性 (3)软件的可移植性
2.McCall质量模型
ISO/IEC 9126标准
软件质量保证是一种活动
SQA 活动的主要内容
1.与SQA计划直接相关的工作 2.参与项目的阶段性评审和审计 3.对项目日常活动与规程的符合性进行检查 4.对配置管理工作的检查和审计 5.跟踪问题的解决情况 6.度量和报告机制
软件配置项的组成
软件配置项标识
•唯一性:目的在于避免出现重名,造成混 乱。 •可追溯性:使命名能够反映命名对象间的 关系。每个可用一组信息来唯一地标识它。
配置项的状态
基线的理解
IEEE定义基线如下:“已经通过正 式复审和批准的某规约或产品,它因此 可以作为进一步的基础,并且只能通过 正式的变化控制过程的改变。”
IEEE Std 1028-1988定义:评审是对 软件元素或者项目状态的一种评估手段,以 确定其是否与计划的结果保持一致,并使其 得到改进。

软件工第5章

软件工第5章

多分支
流程图连接
流程图符号加横线
《软件工程(第3版)》陆惠恩主编
5
4. 流程图的三种基本结构:
顺序(a)、选择(b、c)、循环(d、e)。
《软件工程(第3版)》陆惠恩主编
6
5.1.2 盒图 盒图是Nassi和Shneiderman提出的,又称N_S图。 1. 盒图的符号(请注意d、e的区别)
《软件工程(第2版)》陆惠恩主编
《软件工程(第3版)》陆惠恩主编
12
【例5.5 】用判定表表示旅游票价的优惠规定。

某旅行社根据旅游淡季、旺季 及是否团体订票,确定旅游票 价的折扣率。具体规定如下: 人数在20人以上的属团体,20 人以下的是散客。 每年的4-5月、7-8月、10月为 旅游旺季,其余为旅游淡季。 旅游旺季,团体票优惠5℅, 散客不优惠。 旅游淡季,团体票优惠30℅, 散客优惠20℅。 用判定表表示旅游订票的优惠 规定。
《软件工程(第3版)》陆惠恩主编
17
5.2 用户界面设计
5.2.1 用户界面设计问题
1. 系统响应时间 2. 用户帮助设施 3. 出错信息处理 4.命令交互
5.2.2 用户界面设计过程
用户界面设计是一个迭代的过程,一般步骤如下: 1.先设计和实现用户界面原型。 2.用户试用该原型,向设计者提出对界面的评价。 3.设计者根据用户的意见修改设计并实现下一级原型。 不断进行下去,直到用户满意为止。

《软件工程(第3版)》陆惠恩主编
15
CASE结构: CASE 条件 OF CASE(1) 处理1 CASE(2) 处理2 … CASE(n) 处理n 3.循环结构 (1)FOR循环结构: FOR i=1 TO n 循环体 END FOR (2)WHILE循环结构: WHILE 条件 循环体 ENDWHILE (3) REPEAT-UNTIL循环结构: REPEAT 循环体 UNTIL条件

软件工程第5章 详细设计

软件工程第5章 详细设计
17
详细设计的描述工具
(4) PDL( Program Design Language )
PDL与需求分析中采用的结构化语言统属于伪 码。伪码的结构分为内外两层,外语法应符合一般 程序设计语言常用的语法规则,而内层语法则用一 些简单的句子、短语(自然语言)。
18
详细设计的描述工具
PDL作为一种用于描述程序逻辑的语言,具有以下特点:
3
详细设计的描述方式
详细设计的描述方式分类:
1)图形描述:流程图、盒图、PAD图等 2)语言描述:PDL语言等 3)表格描述:判定表等
4
详细设计的描述工具
详细设计的描述工具:
下面介绍一些有代表性的详细设计工具: (1)程序流程图
程序流程图又称之为程序框图,它是软件开发者最熟悉的一种 算法表达工具。
ENDIF
21
详细设计的描述工具
3)多路选择结构
CASE OF <变量名>: WHEN <条件1> SELECT <语句或程序块> WHEN <条件2> SELECT <语句或程序块> …… WHEN <条件n> SELECT <语句或程序块>
DEFAULT: <语句或程序块> ENDCASE
22
A(m)>A(j)
j=j+1
T
m=j
F
A(m) ﹤-﹥A(i) i=i+1
PAD图的控制流程为自上而下、从左到右。
15
详细设计的描述工具
举例:
请使用PAD图描述下列程序的算法: 在数据A(0)~A(10)中求最大数。
16
详细设计的描述工具

软件工程 第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.结构化程序设计方法使用___三种基本控制结构___构造程序。

《软件工程》第5章 软件构造

《软件工程》第5章 软件构造

5.5 软件代码审查
为保证代码开发的质量,在编码完成后,进行 代码审查或称Review。
审查内容: 1. 程序的版式 2. 文件结构 3. 命名规则 4. 表达式与基本语句
5.6 软件复用
软件复用就是将已有的软件成分用于构造新的 软件系统,以达到提高软件系统的开发质量与效率, 降低开发成本的目的。
在面向对象语言中,类功能支持这种层次机制。 除了根结点外,每个类都有它的基类(base class)。 除 了 叶结 点 外 , 每 个类 都 有它 的 派生 类 (derived class)。一个派生类可以从它的基类那里继承所有 的数据和操作,并扩充自己的特殊数据和操作。
3. 多态性
所谓多态,是指一个名字(或符号)具有 多种含义。即相同的操作的消息发送给不同的 对象时,每个对象将根据自己所属类中定义的 操作去执行,产生不同的结果。
5
第五章
软件构造
软件的详细设计,完成了软件的过程性的描述, 接下来进入程序编码阶段。
软件构造(Software Construction)指通过 编码、验证、单元测试、集成测试和排错的组合, 创建一个可以工作的、有意义的软件。在本章中, 我们将聚焦在该领域当中的程序设计语言、设计、 编码和复用这几个话题,其余的将在后续章节中讨 论。
类型的能力选取 。 6. 软件开发人员的知识水平以及心理因素。要特别注
意选择语言时,尽量避免受外界的影响,盲目追求 高、新的语言。
5.2 程序设计方法
5.2.1 结构化程序设计 结构程序设计的概念最早是由E.W.Dijkstra提出来的。
结构化程序设计方法 (Structured Program), 即SP法是结构化开发方法的重要组成部分。
5.3.1 源程序文件 符号的命名。尽量用与实际意义相同或接近的标识 符命名。 源程序中的注释 注释可分为序言性注释和解释性注释。错误的注释 宁可不要。 源程序的书写格式

软件工程导论 第5章

软件工程导论 第5章

8. 书写文档 应该用正式的文档记录总体设计的结果, 应该用正式的文档记录总体设计的结果,在这个阶 段应该完成的文档通常有下述几种: 段应该完成的文档通常有下述几种: (1) 系统说明主要内容包括用系统流程图描绘的系 统构成方案,组成系统的物理元素清单,成本/效 统构成方案,组成系统的物理元素清单,成本 效 益分析;对最佳方案的概括描述,精化的数据流图, 益分析;对最佳方案的概括描述,精化的数据流图, 用层次图或结构图描绘的软件结构, 用层次图或结构图描绘的软件结构,用IPO图或其 图或其 他工具(例如 例如, 语言)简要描述的各个模块的算 他工具 例如,PDL语言 简要描述的各个模块的算 语言 模块间的接口关系,以及需求、 法,模块间的接口关系,以及需求、功能和模块三 者之间的交叉参照关系等等。 者之间的交叉参照关系等等。 (2) 用户手册根据总体设计阶段的结果,修改更正 用户手册根据总体设计阶段的结果, 在需求分析阶段产生的初步的用户手册。 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 测试计划包括测试策略,测试方案, 试结果,测试进度计划等等。 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果 9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。 角度进行复审。
总体设计过程首先寻找实现目标系统的各种不同的 方案, 方案,需求分析阶段得到的数据流图是设想各种可 能方案的基础。 能方案的基础。然后分析员从这些供选择的方案中 选取若干个合理的方案, 选取若干个合理的方案,为每个合理的方案都准备 一份系统流程图,列出组成系统的所有物理元素, 一份系统流程图,列出组成系统的所有物理元素, 进行成本/效益分析 效益分析, 进行成本 效益分析,并且制定实现这个方案的进 度计划。分析员应该综合分析比较这些合理的方案, 度计划。分析员应该综合分析比较这些合理的方案, 从中选出一个最佳方案向用户和使用部门负责人推 荐。如果用户和使用部门的负责人接受了推荐的方 案,分析员应该进一步为这个最佳方案设计软件结 通常,设计出初步的软件结构后还要多方改进, 构,通常,设计出初步的软件结构后还要多方改进, 从而得到更合理的结构,进行必要的数据库设计, 从而得到更合理的结构,进行必要的数据库设计, 确定测试要求并且制定测试计划。 确定测试要求并且制定测试计划。

软件工程导论课件第5章

软件工程导论课件第5章

4
主要工作
完成模块分解,确定系统的模块层次结构
文档 数据结构的描述部分
模块说明部分,包括模块结构以及每个模块的 功能说明
5
总体设计的过程
总体设计通常由系统设计和结构设计两个阶段组成。 系统设计阶段确定系统的具体实现方案,结构设计阶段确 定软件的结构。
实施总体设计的过程如下:
1.设想供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.数据库设计 7.制定测试计划 8.书写文档 9.审查和复审
27
(7)功能内聚 如果一个模块中的所有处理元素都完成一个, 而且仅完成一个功能 比如:一个模块只完成矩阵加法运算或只打印 输出一种特定的表格功能
对于一个模块而言,模块自身的内聚越 强,模块间的耦合就越小,模块所具有的独 立性就越好,可以说高内聚低耦合是我们进 行软件设计的一贯原则。
28
启发规则
12
9. 审查和复审
最后应该对总体设计的结果进行严格的技术 审查,在技术审查通过之后再由使用部门的负责人 从管理角度进行复审。
13
设计原理
模块
模块是数据说明、可执行语句等程序对象的 集合,它是单独命名的,可通过名字来进行访问。 例如:汇编语言中的子程序,Pascal语言中的过程, C语言中的函数等。
32
描绘软件结构的图形工具
在总体设计阶段,我们经常使用以下几种 图形工具: 层次图 HIPO图 结构图
33
(一)层次图
层次图中的每个方框代表一个模块,方框间 的连线表示调用关系,不同于层次方框图那样表示 组成关系。 例如:正文加工系统调用编辑模块,编辑模 块依需要调用添加、删除、插入、修改、合并、列 表模块。

软件工程 第5章

软件工程 第5章
① ② ③ ④ ⑤ ⑥ ⑦
弱耦合 ①非直接耦合 No Direct Coupling ②数据耦合 Data Coupling ③特征耦合 Stamp Coupling ④控制耦合 Control Coupling
中耦合
较强耦合
强耦合
⑤外部耦合 ⑥公共耦合 ⑦内容耦合
External Coupling Common Coupling Content Coupling
• ④控制耦合 • 控制耦合是中等强度的耦合。此时在模块间传递 的信息不是一般的数据,而是用作控制信号的开 关值或标志量(Flag)。
• ⑤外部耦合 • 若允许一组模块访问同一个全局变量,可称它们 为外部耦合。
有名公共区
A
B
……
• ⑥公共耦合 • 若允许一级模块访问同一个全局性数据结构,则 称之为公共耦合。 • ⑦内容耦合 • 最强的一类耦合称为内容耦合。如果一个模块可 以直接调用另一模块中的数据,或者允许一个模 块直接转移到另一模块中去。
3. 推荐最佳方案 分析员应该综合分析对比各种合理方案的利弊,推 荐一个最佳的方案,并且为推荐的方案制定详细的 实现计划。 用户和有关的技术专家应该认真审查分析员所推荐 的最佳系统,如果该系统确实符合用户的需要,并 且是在现有条件下完全能够实现的,则应该提请使 用部门负责人进一步审批。在使用部门的负责人也 接受了分析员所推荐的方案之后,将进入总体设计 过程的下一个重要阶段——结构设计。
• ①非直接耦合 • 若两个模块没有直接关系,它们之间的联系完全 是通过主程序的控制和调用来实现的,便称这两 个模块为非直接耦合,这样独立性最强。A 无块间联系来自BCD
• ②数据耦合 • 若一个模块访问另一个模块,且被访问模块的输 入和输出都是数据项参数,则称这两个模块之间 的联系为数据耦合。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工作产品规模和工作量的估计方法
序号 1 规模估计方法 功能点个数 工作量估计方法 N个功能点/人月 个功能点/ 工作量估计方法说明 一个人的月工作量, 一个人的月工作量,能完成的功能点个 数 2 性能点个数 N个性能点/人月 个性能点/ 一个人的月工作量, 一个人的月工作量,能完成的性能点个 数 3 4 5 代码行数 实体个数 需求个数( 需求个数(Use Case个数) Case个数) 个数 6 文档页数 N页文档/人月 页文档/ N行代码/人月 行代码/ N个实体/人月 个实体/ N个需求数/人月 个需求数/ 一个人的月工作量, 一个人的月工作量,能完成的代码行数 一个人的月工作量, 一个人的月工作量,能完成的实体个数 一个人的月工作量,能完成的Use 一个人的月工作量,能完成的Use case 个数 一个人的月工作量, 一个人的月工作量,能完成的文档页数
代码ห้องสมุดไป่ตู้法( 代码行法(LOC)和功能点法(PF)的比较 )和功能点法( )
FP功能点估算法常用在项目开始或项目需求基本明确时使用, FP功能点估算法常用在项目开始或项目需求基本明确时使用, 功能点估算法常用在项目开始或项目需求基本明确时使用 这时进行估算其结果的准确性比较高,假如这个时候使用LOC 这时进行估算其结果的准确性比较高,假如这个时候使用LOC 代码行估算法,则误差会比较大。 代码行估算法,则误差会比较大。 使用FP功能点估算法无需懂得软件使用何种开发技术。LOC代 使用FP功能点估算法无需懂得软件使用何种开发技术。LOC代 FP功能点估算法无需懂得软件使用何种开发技术 码行估算法与软件开发技术密切相关。 码行估算法与软件开发技术密切相关。 FP功能点法是从用户为角度进行估算,LOC代码行估算法则是 FP功能点法是从用户为角度进行估算,LOC代码行估算法则是 功能点法是从用户为角度进行估算 从开发者角度进行估算的。 从开发者角度进行估算的。 通过一些行业标准或企业自身度量的分析,FP功能点估算法 通过一些行业标准或企业自身度量的分析,FP功能点估算法 是可以转换为LOC代码行的。 是可以转换为LOC代码行的。 LOC代码行的
1.定义软件过程
根据生存周期模型,规定软件的开发阶段, 根据生存周期模型,规定软件的开发阶段,以 及每一阶段的工作步骤和文档标准等内容。 及每一阶段的工作步骤和文档标准等内容。 生存周期模型 项目类型 软件过程
2.进行软件估计
软件估计的内容和方法包括如下三个方面: 软件估计的内容和方法包括如下三个方面: (1)对软件工作产品的规模进行量化估计 2) (2)对软件工作产品成本的费用进行量化估计 (3)对关键计算机资源进行量化估计 )
方法1 方法1:希腊古都法(Delphi 法 )
无历史数据条件下,其步骤是: 无历史数据条件下,其步骤是: 协调人向各专家提供项目需求规格和估计表格; 1 、协调人向各专家提供项目需求规格和估计表格; 协调人召集小组会,专家讨论与规模相关的因素; 2 、协调人召集小组会,专家讨论与规模相关的因素; 专家匿名填写迭代估计表格; 3 、专家匿名填写迭代估计表格; 4 、协调人整理出一个估计,以迭代表形式返回专家; 协调人整理出一个估计,以迭代表形式返回专家; 协调人召集小组会,讨论较大的估计差异; 5 、协调人召集小组会,讨论较大的估计差异; 专家复查估计,在迭代表上提交另一个匿名估计; 6 、专家复查估计,在迭代表上提交另一个匿名估计; 直到最低估计和最高估计一致为止。 7 、重复 4-6 ,直到最低估计和最高估计一致为止。
比如有10000行旧代码,假定30%要重新设计,50%要重新 比如有10000行旧代码,假定30%要重新设计,50%要重新 10000行旧代码 30%要重新设计 编码,70%要重新测试,那么其等价的新代码行为: 编码,70%要重新测试,那么其等价的新代码行为: 要重新测试 [(30%+50%+70%)/3]× (新代码行 新代码行) [(30%+50%+70%)/3]×10000=5000 (新代码行) 意即: 意即:重用这 10000 代码相当于新编写 5000 代码行的 工作量。 工作量。
软件策划的时机
《用户需求报告》之后,《需求规格说明书》 用户需求报告》之后, 需求规格说明书》 之前
5.2
软件策划方法
经验数据加结构化方法的要点: 经验数据加结构化方法的要点: 粒度由粗到细的分解:自顶向下、逐步细化、 (1) 粒度由粗到细的分解:自顶向下、逐步细化、 逐项逐条逐日安排计划。 逐项逐条逐日安排计划。 (2) 粒度由细到粗的综合:自底向上、逐步归纳、 粒度由细到粗的综合:自底向上、逐步归纳、 逐日逐周逐月安排计划。 逐日逐周逐月安排计划。 同类项目经验数据类比法、 (3) 同类项目经验数据类比法、同行专家协商策 划法。 划法。
第5章 软件策划
了解: 了解: (1) (1)软件策划的概念 (2) (2)软件策划的步骤 (3) (3)软件策划的具体目标 (4) (4)软件策划的时机 (5) (5)定义软件过程 (6) (6)软件项目跟踪与监督 (7) (7)软件策划管理文档 理解: 理解: 风险的种类与化解风险的方法 掌握: 掌握: (1) (1)软件项目工作量和开发费用的估计方法 (2) 软件开发计划书》 (2)《软件开发计划书》的内容与编写方法
方法3 方法3:功能点估计法
通过研究需求来确定各种输入、输出、 通过研究需求来确定各种输入、输出、计算和数据库 需求的数量和特性。通常的步骤是: 需求的数量和特性。通常的步骤是: 计算输入、输出、查询、 1 、计算输入、输出、查询、主控文件和接口需求 的数目; 的数目; 2、将这些数据进行加权乘,得到总的功能点数; 将这些数据进行加权乘,得到总的功能点数; 3、估计每个功能点的规模,得出总的规模估计; 估计每个功能点的规模,得出总的规模估计; +25%、 4、估计者根据对复杂度的判断,总数可以用+25%、 估计者根据对复杂度的判断,总数可以用+25% 调整。 0、或-25% 调整。
5.1 软件策划概论
软件策划为软件开发者和管理者制定合理的工作计划, 软件策划为软件开发者和管理者制定合理的工作计划, 又为软件项目跟踪和监控提供考核依据。 又为软件项目跟踪和监控提供考核依据。 既做计划有出谋略。 既做计划有出谋略。 属于软件管理和软件决策的范畴, 属于软件管理和软件决策的范畴,是项目经理以上人 员的职责范围。 员的职责范围。
对代码行的估计方法
指所有的可执行的源代码行数。 LOC 指所有的可执行的源代码行数。1 LOC 的价值和人月代码 行数,体现软件组织的生产力。 行数,体现软件组织的生产力。 例如, 例如,统计发现某公司每一万行 C 语言源代码形成的源文件 为 250 K 。 某项目的源文件大小为 3.75 M ,则可估计该项目源代码大约 万行, 人月, 为 15 万行,该项目累计投入工作量为 240 人月,每人月费 包括人均工资,福利,办公费用公滩等), ),1 用为 10000 元(包括人均工资,福利,办公费用公滩等),1 的价值为: LOC 的价值为: (240×10000)/150000 = 16 元/1 LOC 240×10000) 项目的人月均代码行数为: 项目的人月均代码行数为: LOC/人月 人月。 150000/240=625 LOC/人月。 IT企业软件项目规模估计方法有以下四种: IT企业软件项目规模估计方法有以下四种: 企业软件项目规模估计方法有以下四种
策划阶段主要进行的活动
定义软件过程。就是根据选定的生命周期模型, 1. 定义软件过程。就是根据选定的生命周期模型,规定每一开发阶 段的工作步骤及文档标准。 段的工作步骤及文档标准。 进行软件估计。就是指对软件项目进行量化估计, 2. 进行软件估计。就是指对软件项目进行量化估计,并记录估计结 果的过程。 果的过程。 进行风险分析。就是对政策风险、技术风险、技能风险、 3. 进行风险分析。就是对政策风险、技术风险、技能风险、资源风 险等进行逐个分析与分解。 险等进行逐个分析与分解。 进行项目跟踪与监督。就是对策划阶段输出的软件开发计划, 4. 进行项目跟踪与监督。就是对策划阶段输出的软件开发计划,进 行动态跟踪与实时监督,一旦发现偏差,必须立即纠正。 行动态跟踪与实时监督,一旦发现偏差,必须立即纠正。 5. 完成软件开发计划书 。 使参与软件开发计划制定的组或个人意见统一。 6. 使参与软件开发计划制定的组或个人意见统一。
方法2 方法2:类比法
有历史数据条件下,其步骤是: 有历史数据条件下,其步骤是: 1.整理出历史项目功能点列表和实现每个功能点的代码行; 1.整理出历史项目功能点列表和实现每个功能点的代码行; 整理出历史项目功能点列表和实现每个功能点的代码行 2.标识出估计项目的功能点列表与历史项目功能点列表的差 2.标识出估计项目的功能点列表与历史项目功能点列表的差 异; 3.按照历史项目每个功能点的代码行,确定估计项目每个功 3.按照历史项目每个功能点的代码行, 按照历史项目每个功能点的代码行 能点的代码行; 能点的代码行; 4.通过步骤1 的循环,得出所有功能点的估计; 4.通过步骤1和3 的循环,得出所有功能点的估计; 通过步骤 5.产生总的规模估计。 5.产生总的规模估计。 产生总的规模估计
软件策划的输入/ 软件策划的输入/输出
策 《合同》/《立项建议书》 合同》 立项建议书》 《用户需求报告》 用户需求报告》 划 过 程 1)《软件开发计划书》 1)《软件开发计划书》 2)《质量保证计划》 2)《质量保证计划》 3)《配置管理计划》 3)《配置管理计划》 4)《里程碑及评审计划》 4)《里程碑及评审计划》
软件策划的目标
对三个软件估计已建立文档: (1) 对三个软件估计已建立文档: ──工作产品规模估计 ──工作产品规模估计 ──工作量及成本估计 ──工作量及成本估计 ──计算机资源估计; ──计算机资源估计; 计算机资源估计 软件项目活动和约定,是有计划的并巳建立文档。 (2) 软件项目活动和约定,是有计划的并巳建立文档。 受影响的组和个人,同意他们对软件项目的约定。 (3) 受影响的组和个人,同意他们对软件项目的约定。 受影响的组和个人有: 受影响的组和个人有: ──软件工程组(项目组) ──软件工程组(项目组) 软件工程组 ──软件估计组 ──软件估计组 ──系统测试组 ──系统测试组 ──质量保证组 ──质量保证组 ──配置管理组 ──配置管理组 ──合同管理组 ──合同管理组 ──文档支持组 ──文档支持组
相关文档
最新文档