软件产品的开发,功能点对项目早期的规模估计很有帮助。
(4)任何时候都可采用无礼估计法。无礼估计法类似于体育比赛中的跳水、体操、花样游泳、花样滑冰等项目的评判打分方法。它对各个项目活动的完成时间,按三种不同情况估计:
? ? ?
一个产品的期望规模。
一个产品的最低可能估计。 一个产品的最高可能估计。
可由这三个估计,得到一个产品期望规模和标准偏差。
习 题 6
6.1 业务模型、功能模型、数据模型各是什么含义?三者之间有什么关系?
功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。
业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。
数据模型是描述系统工作前的数据来自何处,工作中的数据存到什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。
功能模型和业务模型是在需求分析时建模,是两个基本点。数据模型是一个中心,在设计时建模。功能模型和业务模型给数据模型提供数据与维护数据,数据模型支持功能模型和业务模型的正常运行。
通常,数据模型建模用PowerDesigner,ER Win或Oracle Designer工具实现;功能模型用功能点列表(或用况图)表示;业务模型用自然语言加上流程图(或顺序图)表示。
信息系统的业务模型就是系统的操作流程和业务规则,功能模型就是系统的功能菜单和用户界面,数据模型就是系统的数据结构和数据字典。
6.2 说明数据库与数据库管理系统的差别。
数据库管理系统DBMS是一个系统软件,它是专门管理用户的数据的。数据库是一个应用软件,它是用户数据的存放地方,专门支持用户软件的运行的。
6.3 你是怎样通俗地理解数据库设计范式理论的?
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解。
第二范式:2NF是对记录的唯一性约束,要求记录有唯一标识,即实体的唯一性。进一步讲,在数据库设计时,作为唯一性标志的主键,最好是一个字段,而不是组合字段,这就是主键的原子性。现在的关系数据库管理系统,都提供唯一标识ID类型的字段,就是为了实现主键的原子性。
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
其他更高级的范式:BCF,4NF,5NF等各级范式,研究的内容是解决实体本身的原子性问题,只要实体本身不可再分解了,即实体原子化了,就从根本上符合了BCF,4NF,5NF范式的要求。由此可见:“只要实现了属性、主键、实体三者的原子化,就从根本上符合了各级范式的要求”。这就是范式理论的实质!数据库设计规范化理论的实质,就是引导并帮助设计人员实现“实体、属性、主键的原子化”。
6.4 什么是原始数据?什么是原始单据?什么是信息源?三者之间有何关系? 原始数据是要采集并录入的数据,是软件系统中未加工处理的数据。 记录原始数据的单据,称为原始单据。
产生原始数据的地点,称为信息源。即信息源产生的数据,称为原始数据。
由此可见,原始数据、原始单据、信息源,这三个东西,是站在三个不同角度,描述同一个东西。
6.5 什么是实体?它与原始单据有什么关系?
实体或实体集是一组相关元数据的集合。一般而言,实体来源于原始单据,即实体蕴涵于原始单据之中。
6.6 基本表、代码表、中间表、临时表,它们有何异同? 数据库是表的集合,表由字段组成,表中存放着记录。由于记录的数据可以是原始数据、信息代码数据、统计数据和临时数据4种,所以又可将表划分为基本表、代码表、中间表和临时表4种。
存放原始数据的表,称为基本表。
存放信息代码数据的表,称为代码表。
存放统计数据的表,称为中间表(又称为查询表)。 存放临时数据的表,称为临时表。
6.7 为什么说:“只有基本表对应的实体才是真正的实体,才能出现在E-R图上。中间表、临时表不对应实体,因此也不应出现在E-R图上。代码表很简单,在E-R图上可省略”? 因为基本表中的信息,是信息源产生的信息。只有信息源产生的信息,才是客观存在的实体的信息,所以只有基本表对应的实体才是真正的实体,才能出现在E-R图上。 因为中间表、临时表不是存放原始信息的表,而是存放查询信息或临时信息的表,所以中间表、临时表不对应实体,因此也不应出现在E-R图上。
因为代码表很简单,在E-R图上可省略。如果不加以省略,就会显得E-R图复杂繁琐,使人得不到要领。
6.8 数据库设计的基本模式有哪些?
站在IT企业的数据库开发角度上讲,数据库设计的核心设计模式只有两个:一个是“第三者插足”模式,另一个是“行变列”模式。
6.9 显式与隐式的“第三者插足”模式,它们之间有何异同?
当两个实体之间存在多对多关系时,必须在它们之间插入第三个实体,以化解这种多对多关系。由于插入的实体,可能是强实体,也可能是弱实体,所以“第三者插足”模式,又分为“强实体插足”模式和“弱实体插足”模式两种。
所谓强实体插足模式,就是不需要增加一个新实体,已有的“明细实体”就能够扮演“第
三者”的角色。该模式的详细情况,将在6.4节中介绍,本节只介绍“弱实体插足”模式。 所谓弱实体插足模式,就是要公开增加一个新的弱实体,使其扮演“第三者”的角色。该模式是一种最常见、最抽象、最难发现的数据库设计模式。它的特点是:由于两个多对多关系实体之间的关联实体,没有独立的业务处理需求,因而不存在实实在在的关联实体,所以需要另外增加第三个抽象的实体,作为它们之间的关联实体。这个抽象的关联实体,实质上就是一个复杂关系,称为弱实体。该弱实体,就是原来两个多对多关系实体之间笛卡儿积的子集。该设计模式,被称为“弱实体插足”模式。
显式与隐式的“第三者插足”模式,都是为了解决实体之间的多对多问题。
6.10 “列变行”模式的实质是什么?
数据库设计中“列变行”模式的实质,是解决实体本身的原子化问题。也就是说,是解决数据库设计符合BCF,4NF,5NF的问题。
6.11 请说明“第三者插足”模式和“列变行”模式之间的关系。
“第三者插足”模式是为了解决关系的原子化问题。这里的关系原子化,是指表之间的关系都是一对多关系。“列变行”模式之间,都是为了解决实体本身的原子化问题。也就是说,是解决数据库设计符合BCF,4NF,5NF的问题。
“第三者插足”模式和“列变行”模式,是进行规范化数据库设计的两只手,我们要两手抓,两手都是硬。
6.12 请说明三个模型思想的优缺点。
三个模型建模思想的优点是简单、直观、通俗、易懂、易学、易用,非常适合于关系数据库管理系统(RDBMS)支持的信息系统。在这三个模型的支持下,运用强大的面向对象编程语言,以及软件组织内部的业务基础平台、类库、构件库等财富,软件开发在技术上就能顺利实现。
事实上,不管是系统软件还是应用软件开发,都有一个建模问题,而且三个模型的建模思想,也适用于系统软件建模。
“三个模型”既是一种软件建模思想,又是一种建模方法,它不但告诉人们应该在什么时候、用什么方法、去建立什么模型,而且告诉人们这三个模型之间的关系,以及如何用这三个模型去解决实际问题。“用例图、时序图、活动图和类图”等UML图形,只是实现“功能模型、业务模型和数据模型”的工具而已。
三个模型的建模,目前只能覆盖需求分析和设计两个阶段,不能覆盖整个软件生存周期。业务模型和功能模型主要适合在软件需求阶段建模,数据模型主要适合在软件设计阶段建模。当然,这三个模型对软件实现、软件测试两个阶段,也具有重要指导意义。例如,功能模型中的三个列表,既是软件实现和软件测试的出发点,又是它们的归宿。
6.13 请说明数据库设计的步骤与方法。 数据库设计的10个步骤是:
设计步骤 第1步 第2步 第3步 清一切不确定的问题 从原始单据出发,划分出各个实体,给实体命名,初步分配属性,标识出主键或外键,理清实体之间的关系 进行数据库概念数据模型CDM设计,画出实体关系图ERD,定义完整性约束 设 计 内 容 将原始单据分类整理,理清原始单据与输出报表之间的数据转换关系及算法,澄第4步 第5步 第6步 第7步 第8步 第9步 第10步
进行数据库物理数据模型PDM设计,将概念数据模型CDM转换为物理数据模型PDM 在待定的数据库管理系统上定义表空间,实现物理建表与建索引 定义触发器与存储过程 定义视图,说明数据库与应用程序之间的关系 数据库加载与测试:向基表中追加记录,对数据库的功能、性能进行全面测试 数据库性能优化:从数据库系统的参数配置、数据库设计的反规范化过程的两个方面,对数据库的性能进行优化 数据库设计评审:从数据库的整体功能与性能两个方面,请同行专家评审评价
习 题 7
7.1 软件设计的输入与输出是什么?
对于签订合同的项目,软件设计的输入是《用户需求报告》/《需求规格说明书》,输出是《概要设计说明书》和《详细设计说明书》。
对于立项的项目,软件设计的输入是《需求规格说明书》,输出是《概要设计说明书》和《详细设计说明书》。
7.2 为什么说“软件设计以面向元数据为主,以面向功能和面向对象为辅。而软件的编程实现则以面向对象为主,以面向元数据和面向功能为辅”?
软件设计注重宏观上框架的设计,软件实现注重微观上和框架内的设计。根据“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”的实施理论,软件设计主要方法以面向数据为主,以面向功能和面向对象为辅,重点设计数据的存储方式、加工处理方式和传输方式。而软件编程实现的主要方法则以面向对象为主,以面向数据和面向功能为辅,因为面向对象是当今的流行编程方法,它具有可复用、好维护的特性。
7.3 《概要设计说明书》和《详细设计说明书》有何区别? 《概要设计说明书》,一是要覆盖《需求规格说明书》的全部内容,二是要作为指导详细设计的依据。它注重框架上的设计,它是软件系统的总体结构设计、全局数据库(包括数据结构)设计、外部接口设计、功能部件分配设计、部件之间的内部接口设计,它要覆盖需求规格说明书中的功能点列表、性能点列表、接口列表。 《详细设计说明书》,一是要覆盖概要设计说明书的全部内容,二是要作为指导程序设计的依据,它注重微观上和框架内的设计,它是各子系统的公用部件实现设计、专用部件实现设计、存储过程实现设计、触发器实现设计、外部接口实现设计、部门角色授权设计和其他详细设计等。
两者的设计者不同,在一般情况下,《概要设计说明书》是由系统设计师负责,《详细设计说明书》则由高级程序员负责。
7.4 怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?
软件概要设计用以描述系统最顶层的结构和组织形式,表示出软件系统各个组成部分的功能及其互相之间的接口关系,所以概要设计是系统总体结构设计或系统架构设计。
7.5 怎么理解“软件详细设计是子系统和模块实现设计”?
软件详细设计用于详细描述每个部件的内部结构,用以指导程序人员编写代码,便于每个部件能够得以顺利实现。当这些部件都实现了之后,将它们组装起来就实现了子系统或模块。
7.6 请用面向过程详细设计中的程序流程图,描述求1?2???N2221?2??N(N≥1),以及求
。
2??N(N≥1)(1)使用程序流程图,描述求1?
Begin 输入 N; F = 0;M = 1; YF = F + sqrt(M ); M = M + 1;
M < N
N
Print F ;
End
(2)使用程序流程图,描述求1?2
Begin
输入 N;
F = 0;M = 1; YF = F + M*M ; M = M + 1;
M < N
N
Print F ; End
2。
2???N2。
137.7 请用面向过程详细设计中的程序设计语言PDL和PAD图两种方法,来描述求?2???N(N≥1)。
33(1)程序设计语言PDL:
读入N
置S的值为0,置I的值为1 当I <= N时,执行:
使S =S+I*I*I 使 I= I + 1 打印 S (2)PAD图:
read N; S=0; I=1; S=S+I*I*I
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实用软件工程第3版习题解答V1.2(4)在线全文阅读。
相关推荐: