1、第3章 软件开发工具的理论 基础,3.1软件开发过程的信息需求,图 3-1 软件开发过程中的信息流通状况,一、软件开发中涉及的信息主要有以下几个方面:,1)有关系统环境、现状及需求的信息。这类信息由用户提出,由分析人员采集,经过他的理解,成为需求分析及设计的依据。这些信息存储在计算机中。 2)有关软件功能设计与物理设计的各种信息。这类信息是由发分析人员(或设计人员)根据需求分析而形成的,它体现为设计方案。存储在计算机中。 3)软件成果本身,包括程序与文档。它是由程序员根据设计方案,依据某种计算机语言编制出来的。程序代码必然是在计算机里的,文档也常常以联机方式提供。 4)用户对系统的各种变更要求
2、,以及系统的各种变更的记录。这类信息是用户在使用过程中逐步形成的,由维护人员收集、整理,并且实施必要的修改。事实上,这类信息是对前三类信息的更新、修改或补充。实际上,前三类信息是在一个开发周期内而言的,而第四类信息是跨开发周期的。,二、以上四类信息涉及的信息管理工作有以下几个方面:,从上图可以看出,许多信息需要长期保存,因为它们并非只用一次,而是需要不断更新,不断被调用。这种存储工作并不是只起一个简单的存放作用,它包括一致性的检查与维护,包括方便迅速的查询与调用。(合理存储) 在许多环节上都要进行数据的转换或加工。这包括从手工形式向计算机方式的转换,也包括从计算机方式向手工方式的转换,有时也有
3、在计算机内部的不同形式的数据的转换。(正确转化) 此外,还有大量的人与人之间的信息交流。(顺畅流通)所以,可以说,软件开发工具正是为上述四类信息的合理存储、正确转化和顺畅流通提供帮助。,三、软件开发工具用到的理论和方法,1)认知科学中关于概念模式的概念与方法。 2)数据库技术的理论与方法。 3)编译技术的有关方法。 4)关于人机界面的理论与方法。 5)管理科学中关于项目管理与版本管理的理论与方法。 6)系统科学与系统工程中的有关理论与方法。,3.2 概念模式及其作用(考试的重点),1.定义:它指人们在认识事物过程中,对于某一事物或某一系统形成的、抽象的、一般化的框架。 2、概念模式的意义: 1
4、)概念模式是人们认识客观世界的一种方法、一种工具。 2)概念模式是人们在长期的实践活动中逐渐形成的。 3)概念模式总是在一定的理论、思想指导之下形成的,同时又不断地根据实际情况修正。 4)概念模式在认识中的作用十分重要,同时作为交流与表达工具也是十分重要的。 3.概念模式具有相对性,即面对各种不同的用途,必然会有不同形式的概念模式。而且,一般来说,它们是各有各的用处,不能互相代替,也无法一般的说哪个更好或更有利。 4.概念模式的特点:简单明了,易于理解。,软件开发中常用的七种概念模式,1、框图 人们在编写软件时最早使用的一种概念模式。它是用来描述程序执行的逻辑过程的。 基本步骤:处理、判断、输
5、入输出、起始或终结等几个基本功能,并用不同的记号加以表示。 适用范围:软件规模不太大时。(至今还在普遍的使用),框图及其图例,软件开发中常用的七种概念模式,2、结构图 在结构化程序设计中引入结构图,用以表示大型软件的层次结构,即模块结构。以模块调用的关系为线索,从宏观上使人一目了然地掌握软件的全过程。 用自上而下的连线表示调用关系。 基本程序调用方式有三种:顺序调用、选择调用、循环调用 优点:能够体现层次,由粗到细、自顶向下地描述程序。,结构图及其图例,a,软件开发中常用的七种概念模式,3、数据流程图 数据流程图面对的是一个系统的信息流程。用于描述某一业务处理系统的信息来源、存储、处理、去向的
6、全面情况。由于是描述全局的,常常需要用其它一些工具补充。 基本思想是把信息流看作一个组织或系统动作的线索,力图简明扼要地勾通画出全局。 适用于客观描述,而结构图则着重于软件模块之间的控制。 基本元素:外部实体(系统以外的信息来源或去向)、数据处理与数据存储。 箭头表明信息在它们之间的流动状况。,数据流程图及其图例,软件开发中常用的七种概念模式,4、实体关系图(E-R图) 实体关系图是一种用于描述静态数据结构的概念模式。 以实体、关系、属性三个基本概念概括数据的基本结构。广泛用于数据库的设计中,常常和数据流程图、结构图等互相配合使用。(前二者重点描述信息的处理与流通,而缺乏对静态数据结构的具体描
7、述方法。,实体关系图及其图例,软件开发中常用的七种概念模式,5、数据字典 数据字典(简称DD)也是一种描述数据内容的概念模式。它用表格的形式列出数据的基本属性及相互关系,作为人们对于数据的认识和了解,它的雏形是编写软件时的变量说明或标识符清单。 适于记录各种细节,所以常常与其它描述工具互相补充、配合使用。,数据字典,软件开发中常用的七种概念模式,6、时序网络 一种较为特殊的概念模式。 主要描述系统状态及其转换方式,因此常常用于一些实时控制方面的软件的功能。 基本概念是状态与转换。 状态:是指系统在运转中某一特定的形态或工作方式 转换:状态之间在一定条件下的相互变化。 它具有前面几种概念模式所没
8、有的、特殊的描述功能。,时序网络及其图例,软件开发中常用的七种概念模式,7、数学与逻辑模型 现在在物理、化学等许多学科,以至经济科学中,人们都常常用一些数学公式或逻辑表达式来描述客观系统的状态或运动规律,如著名的运动学公式、计量经济学模型等。 最大优点:严格、准确、可计算。 一般只能描述比较单纯、比较基础的功能。作为逻辑模型的表达方式,决策树和决策表也是经常使用的。,决策树和决策表,计算机模拟模型,利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,又以程序来表现客观系统中的某些规律或规则,在二者的基础上,计算机就可以高速运行,以便人们观察与预测客观系统的状况。 计算机模拟有其独到之
9、处,是一种不需要事先作更多理论假设的概念模式,已发展成为一个独特的分支。,3.3信息库及其一致性,信息库从原义上说无非是数据库,但它不同于Database或Data Warehouse。 1、数据库(Database)是指在文件系统基础上发展起来一种数据管理技术,它的重点在于合理地组织数据,体现出数据之间的逻辑关系,并尽可能地帮助用户检索,减少冗余。 2、数据仓库(Data Warehouse)的基本思想:现实中的大量原始数据与实际的应用是有相当距离的,为了能够切实为企业管理者提出对管理真正有用的信息,就要对信息或数据进行多次的加工或提炼,从而得出许多派生的或综合的数据。,3.3信息库及其一致
10、性,3、三个文档:系统说明书、设计方案、使用手册 传统的以文档形式交流带来的两个十分严重的问题 首先在信息传递中,误解与丢失十分严重。 另一个问题是由软件的修改与版本更新引起的。 4、信息库(Repository)是针对软件开发或信息系统开发中的大量信息管理工作提出来的。是一个包罗万象的,随着项目进展而不断修改与补充的数据集合。,3.3信息库及其一致性,3.3信息库及其一致性,信息库的数据结构是相当复杂的,而且会不断变化,保持一致性的任务变得十分复杂和艰巨。 一、应当存入信息库的内容:(理解掌握) (1)所述软件的工作环境、功能需求、性能要求,有关的各种信息来源的状况、用户的状况、硬件环境以及
11、在该领域中的作用等外部信息。 (2)需求分析阶段中收集的有关用户的各种信息,包括用户本身提供的和在调查研究中得到的。 (3)逻辑设计阶段的各种调查材料和由此生成的各种文档,包括调查记录、原始数据、报表及单证的样本、绘制的各种图以及最后生成的系统说明书。 (4)设计阶段的各种资料,包括所有的数据库与数据文件格式、数据字典、程序模块的要求、总体结构、各种接口及参数的传递方式以及最后形成的设计方案。,3.3信息库及其一致性,(5)编程阶段的所有成果,包括程序代码、框图、变量说明、测试情况(输入数据及输出结果)、验收报告、使用说明等。 (6)运行及使用情况的详细记录,包括每次使用的时间、状态、问题,特
12、别是有关错误及故障的记录情况。 (7)维护及修改的情况,包括修改的目标、责任人、过程、时间,修改前后的代码、文档以及修改后的结果、原系统的备份。 (8)项目管理的有关信息,包括人员变更、资金投入、进度计划及实施情况,还包括版本信息,即各次版本的备份、每个版本的推出日期和以前版本相比的变更说明等。,3.3信息库及其一致性,二、信息库应当具备的管理功能 由于信息库结构的特殊性,只有一般的数据库功能(增、删、改)是不够用的。 一方面,许多信息(如原始单证、报表样张等)不能存入计算机,计算机中只能有目录,这就需要把计算机内外的信息存储统一起来管理。 另一方面,除了规定复杂的内部结构以存放信息外,还需要
13、认真设计有关的界面,以便使用。 (因为信息库要面对分析人员、程序员和维护人员(一般不直接面对用户)等不同的对象,人们各有自己的权限和使用目标) 因此,信息库的特殊性决定了其功能的特色。,3.3信息库及其一致性,三、信息库如何保持一致性 信息库中的信息需要不断更新(这个更新不是撤换,信息库的内容一般不删除)。 如何保持信息库的一致性,是信息库研究中的核心问题。 关于信息库的研究目前还在进行之中,还没有形成公认的信息库的内容与格式的标准。,3.4人机界面及其管理,1、人机界面的重要性(不是问答题,可能是判断、填空或选择) “对于用户,界面就是系统本身”。 用户关心的主要问题就是:是否能够有效地使用
14、软件,而不是系统内部的算法或数据结构。(当然,并不是说这些问题不重要) 一个软件没有很好的界面设计就不能算是成功的。(人机界面的研究已经上升为一个专门的领域),3.4人机界面及其管理,2、人机界面的研究角度: 一种是从软件开发的角度讨论应当遵循的原则,这基本上沿着程序设计方法学的方向发展而来的。 另一种是归纳出人机界面的基本要求与基本操作,写出样例(或样板)及有关的函数与操作程序,从而大大减轻人们设计人机界面的工作负担,提高设计的质量。 这就是软件开发工具的思路。,3.4人机界面及其管理,3、用户界面(人机界面)的基本原则: (1)用户界面的主要功能是通信 一方面,人向机器输入时应当尽量采取自
15、然的方式。 另一方面机器向人传递的信息必须准确、不致引起误解或混乱。 另外,不要把内部的处理、加工与人机界面混在一起。(人机界面的程序只执行信息的传递任务,不做加工处理。) (2)界面必须始终一致。 (3)界面必须使用户随时掌握任务的进展状况。 (4)界面必须能提供帮助。 (5)宁可让程序多干,不可让用户多干。,3.4人机界面及其管理,4、人机界面设计中经常遇到的灵活性和一致性的权衡 (1)原则上对某一软件来说,用户的思维方式应当是一致的,操作与控制的方式也应当是一致的。(只有这样,才能减轻用户使用的困难) (2)另一方面是,用户是多种多样的,他们有各自的习惯与爱好,应当让他们有一定的灵活、自
16、由地选择某些功能的操作方式。 对这两方面的合理权衡是人机界面设计者的责任。,3.4人机界面及其一致性,IBM的AD/Cycle提供了应用系统及其开发过程的一个总框架,其基本结构如上图所示。 除了下方的硬件平台之外,包括三个方向的接口,程序员接口(CPI)、通信接口(CCS)、用户接口(CUA)。,3.4人机界面及其管理,5、人机交互手段有八个方面:(要记住) 键盘操作、屏幕滚动、菜单选择、帮助系统、鼠标操作、色彩应用、数据录入、信息显示。 在软件开发工具中,人机界面占有特别重要的地位,充分利用已有的成果无疑是一条捷径。,3.5项目管理与版本管理,一、项目管理 1、项目管理:本来是管理科学领域的
17、一项内容,指与固定的生产线上的日常生产管理不同的,具有更大的变动性、时间性的另一类管理任务。 2、与一般工厂的日常生产管理相比,项目管理的四个突出的特点: 第一,子任务多,关系复杂 第二,任务不可重复,形势不断变更 第三,协调组织的任务十分突出,资源浪费闲置的风险与合理地优化组合、提高效益的机会并存。 第四,信息处理工作的作用与意义更为突出。 这几个特点在软件开发工作中同样存在。对于软件来说,样品即产品。进度和质量对软件开发是最关键的问题。软件开发与工程项目一样没有“下一次“,它必须正确、按时地完成,它也是一旦做好就不用再做了。资源的浪费更是软件工作中十分常见的现象。,3.5项目管理与版本管理
18、,3、软件开发工作还有自己的不同于一般项目管理的特点: (1)一般工程项目没有版本更新的问题,但一个有生命力的软件产品(或应用系统)必然要经过若干次改进和更新才能形成。 (2)另外,对于大系统来说,各部分的一致性各程序与文档之间的一致性又带来一系列复杂的管理问题。 (在软件开发工具的理论基础中,项目管理和版本管理占据了十分重要的、不可忽视的地位。),3.5项目管理与版本管理,4、项目管理的基本目标(四点) 第一、使产品(或工程)的质量得到有效的控制。 第二、保证整个系统按预定的进度完成。 第三、有效地利用各种资源,尽可能使资源的闲置与浪费减少。 (最主要的资源是程序员的时间与能力) 第四、控制
19、与降低成本。 (成本的情况是项目管理状况综合的最终体现),3.5项目管理与版本管理,二、版本管理 1、版本管理的核心是保持两个一致性(也是版本管理的任务) (1)从时间上来说,它的主要关心点是系统的逐步完善。 (2)从系统各部分之间的关系来说,它要求局部与整体保持一致。 2、版本管理的具体方法包括: 规定长远的版本更新计划,制订版本有关的信息范围及收集、管理方法,在项目组内明确分工,在程序编写、测试、文档编写等工作中贯穿项目管理的思想及要求。用户的反馈信息是项目管理与版本管理的重要依据。,练习:,1、下列方法中,不属于软件开发工具概念模式的是()A、数据流程图 B、实体关系图C、关键路线图 D
20、、数据字典 2、在软件开发工具中,描述静态数据结构的概念模式是() 3、名词解释:数学与逻辑模型、计算机模拟模型、数据流程图 4、在软件开发工具的概念模式中,决策树属于的概念模式是()A、直观模型 B、计算机模拟模型C、时序网络 D、数学与逻辑模型 5、数据流程图的基本组成部分是()A、外部实体 B、实体属性C、数据存储 D、条件判断E、数据处理,练习“,6、时序网络主要描述的是系统()及其()方式。 7、软件开发工具的成果包括文档和(),通常是以()方式提供的。 8、在软件开发工具的概念模式中,不需要事先作更多理论假设的概念模式是()A、直观模型 B、计算机模拟模型C、时序网络D、数学与逻辑
21、模型 9、在软件开发工具中,数学与逻辑模型方法的特点是()A、严格 B、限制少C、准确 D、可计算 E、可视化 10、简述在软件开发过程中,信息流通的主要内容。,练习:,1、信息库研究的核心问题是()A、信息的共享性 B、信息的准确性C、信息的一致性 D、信息的安全性 2、在下列软件开发所涉及的信息中,属于跨越开发周期的是()A、有关系统环境、现状与需求的信息B、有关软件功能设计的各种信息C、有关用户对系统各种变更要求的信息D、有关包括程序与文档的软件成果信息,练习:,3、在信息库中,设计阶段的有关信息包括()A、数据文件格式 B、变量说明C、数据字典 D、总体结构 E、使用说明 4、信息库中
22、编程阶段成果包括()A、程序代码 B、变量说明C、进度计划 D、实施情况 E、输出结果 5、信息库的内容有()A、需求分析中收集的有关用户的信息B、逻辑设计阶段中的各种调查材料C、程序代码D、数据库与数据文件格式 E、数据库内容,练习:,6、目前实施项目管理的主要方法包括()A、计划评审技术B、棒状图 C、结构图 D、检查点方法 E、排队论 7、项目管理的基本目标是()A、有效地控制产品质量B、保证项目按预定进度完成C、激励员工D、有效地利用资源E、控制成本,练习:,8、在软件开发工具的SAA框架中,在硬件基础上提供的接口是CPI、CCS和()。 9、信息库中的内容一般(),当信息库中有新信息存入时,老信息添加()移入到历史信息中去。 10、模块调用的三种方式是顺序调用、()调用和(0调用。 11、简答题:与一般生产日常管理相比,项目管理的突出特点是什么? 12、简述软件开发工具中用户界面的主要原则。 13、试论述版本管理的核心问题。,