1、易自考 易自考同学 roro 是丫头 提供1.1 软件开发工具的由来,1. 软件开发工具的范围定义: 在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的软件。 (P1)2. 计算机语言的发展阶段:第一代:机器语言;第二代汇编语言;第三代:高级程序设计语言;第四代:非过程化语言(P2)3. 非过程化语言的思想:人们希望机器能自动地完成更多的工作,包括自动安排某些工作顺序,二做到只要给机器下达需要做什么的命令,由机器自己去安排执行的顺序。 (P3)4. 通用软件的弱点:1。由许多工作是通用软件不能完成的
2、;2。某些工作只能表现表面的形式,不能反映其逻辑内涵;3。难于保持一致性的困难。P45. IBM 的 AD/Cycle 失败的原因(两个):1。拘泥于集中式的处理思路;2。背离了开放性的大趋势1.2 件开发工具的概念1. 软件开发工具的概念要点:(继承性与创新)a 它似在高级程序设计语言(第三代)之后,软件技术进一步发展的产物;b 它的目的是在人们开发软件过程中给予人们各种不同方面、程度的支持或帮助c 支持软件开发的全过程,而不是仅限于编码或其它的特定工作阶段。P52. 硬件和软件的关系:硬件是躯体,软件是灵魂。3. 软件的特性:软件是看不见,莫不着的但是发挥重要作用的事先编好的指令系列。软件
3、是用户与硬件之间的桥梁。软件包括程序和文档两个不可缺少的组成部分。4. 软件开发的发展里程(四个):就是四个阶段5. 软件开发工具学(也即软件开发工具)和软件开发方法学的区别:前者着重于实际应用和工具开发;后者着重于方法论的研究;后者是前者的理论基础1.3 软件开发工具的功能和性能1. 软件开发过程(阶段、成果)第一阶段:出始要求的提出 成果:软件功能说明书第二阶段:总体设计 成果:系统的总体设计文件及各个模块的设计任务书第三阶段:程序的编写和文档的编写(实现阶段)第四阶段:测试或调试阶段 包括:模块的调试和整个软件的联调(P1011)2. 软件开发工具的功能:(做什么)a 认识与描述客观系统
4、;b 储存和管理开发过程中的信息;c 代码的编写或生成;d 文档的编制和生成;e 软件项目管理(P1112)3. 软件开发的性能:(做到什么程度)a 表达能力或描述能力;b 保持信息一致性的能力;c 使用方便程度;d 工具可靠程度;e 对硬件和软件环境要求(P13)1.4 软件开发工具的类别1. 按工作阶段划分:a 设计工具(第四代语言和帮助人们进行测试的工具) ;b 分析工具(支持需求分析)c 计划工具2. 按集成程度划分:a 专用的 b 集成化的软件(软件工作环境)3. 按硬件和软件的关系划分:a 依赖于特定的计算机或特定的软件*大多是审计工具;b 独立于硬件和其他的软件1.5 开发软件的
5、研究和应用1. 应用软件的开发队伍: a 计算机专业出生的技术人员;b 来个各个应用领域非计算机专业的人两类人是软件开发工具产生和发展的动力易自考 易自考同学 roro 是丫头 提供2.1 软件开发中的困难1.两类基本问题:1819a 用户对软件功能的理解和程序员对软件功能的理解之间的转换b 人很机器之间交流和协调的问题。2. 大型软件开发的困难:20a 一致性的保持成为十分困难的问题; b 测试的困难大大增加; c 工作进度难以控制;d 文档和代码的协调十分困难; e 版本更新带来的困难;3. 困难产生的原因:21a 大系统的复杂性; b 具有主动性的个人之间的组织与协调本身;c 各个应用领
6、域的差别; d 时间因素,变化因素;2.2 软件开发方法的发展1. 软件开发过程中的角色和任务:2223角色: 任务:用户 提出要求、验收、使用、要求修改项目负责人 分析需求、向程序员分配任务、验收程序员的工作成果(代码和文档) 、对这个软件进行联调程序员 编写程序和文档、调试自己的程序、向项目负责人提交成果计算机 无2. 结构化程序中程序的结构:23三种基本模块:处理单元;循环机制;二分决策机制3. 模块划分要求:23a 模块功能在逻辑上尽可能的单一华、明确化,模块和任务一一对应(凝聚性)b 模块之间的联系及相互影响应该尽量少,尽量避免逻辑耦合、而仅限于数据耦合耦合:各种联系及相互影响c 模
7、块的规模应当足够小,易于调试;4. 结构化程序的基本思想:24a 限制甚至不用 GOTO 语句,绝对禁止超越模块边界的 GOTO 语句b 子程序尽可能做到只有一个入口、一个出口c 程序设计应当尽量明确、清晰,包括适当的注释,书写格式体现层次结构,变量名称尽量具有逻辑意义d 程序编写的同时完成文档编辑,不拖时5. 软件工程的基本思想:25 6. 面向对象程序设计的基本思想:26(4 点)向用户靠近a 封装性客观世界的任何事务都是对象又一些静态属性b 对象之间抽象与具体、群体与个体、整体与部分的几个关系c 遗传性大的对象的属性成为子类的属性d 对象之间可以护送消息,可以时参数或者对象开始的某个操作
8、7. 即插即用的程序设计思想:27 一部分人专门生产软件组件,而另外的人设计整个软件的结构并把软件组件插入这个结构,以便迅速完成大型软件研制8. 可视化程序设计技术手段:28 a 指点与卡嗒;b 删剪与粘贴;c 拖拉与扔下2.3 软件开发过程的管理1. 好的软件标准:29a 正确地实现所要求的功能,准确地给出预定的输出结果;b 用户界面友好,符合实际用户的使用习惯和知识水平;c 具有足够的速度,能在用户要求的时间内处理出结果;d 具有足够的可靠性,能在各种环境下保持正常的工作;2. 好的单个程序员的标准:29-30易自考 易自考同学 roro 是丫头 提供a 有程序设计的基本知识与技能;b 解
9、应用领域;c 悉开发环境3. 好的项目组中的程序员:30(1)保证严格地在本模块范围内操作,决不要使用可能干扰其它模块的命令或函数;(2)严格按总体设计的要求和理解去传递参数值,决不要随意修改其内容或含义;(3)在对公用的文件或数据库进行存取时,决不能擅自改变;(4)在使用标识符时,尽量使用易于看出逻辑含义的名称。(5)严格按照统一的要求编写文档;(6)尽量保持程序风格的一致。4. 好的项目组的标准(CCM 模型)30a 有严格成文的工作规范和文档标准;b 人员有严格的分工;c 每个项目有详细的时间计划表,并得到严格执行3.1 软件开发过程的信息需求1. 软件开发过程中的四类信息和人员:323
10、3a 有关系统环境、现状及需求的信息。 (用户) ;b 有关软件的功能设计与物理设计的各种信息。 (分析人员)c 软件成果本身,包括程序与文档。 (程序人员) ;d 用户对系统和各种变更要求,及系统的各种变更记录。 (维护人员)2. 四类信息的管理工作:33a 许多信息需要长期保存;b 许多环节上都要进行数据的转换或加工;c 大量的人与人之间的信息交流。所以可以说,软件开发工具正是为对上述四类信息的合理存储、正确转化和顺畅流通提供帮助。3. 软件开发工具用到的理论和方法 3334a 认知科学中关于概念模式的概念与方法;b 数据库技术的理论与方法;c 编译技术的有关方法;d 关于人机界面的理论与
11、方法;e 管理科学中关于项目管理与版本管理的理论与方法;f 系统科学与系统工程中的有关理论与方法。3.2 概念模式及其作用(考试的重点)1. 概念模式的概念和性质:34定义:是指人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般化的概念框架。概念模式具有相对性,即面对各种不同的用途,必然会有不同形式的概念模式。它们各有各有用处,不能互相代替,也无法说哪个更好或更有力。概念模式的特点:简单明了,易于理解。2. 常用的九种概念模型的概念和特点:3539 框图:用来描述程序执行的逻辑过程的。基本步骤:处理、判断、输入输出、起始或终止等几个基本功能。适用范围:当软件规模不太大的时候(最早使用
12、至今还在普遍地使用) 结构图:它的基本图例为模块,以模块的调用关系为线索,用连线表示调用关系,并注明传递参数。调用方式:顺序调用、选择调用、循环调用 优点:能够体现层次,由粗到细、自顶向下地描述程序。 数据流程图:数据流程图面对的是一个系统的信息流程。用于描述某一业务处理系统的信息来源、存储、去向的全面情况。基本思想是把信息流看作一个组织或系统动作的线索,力图简明扼要地勾通画出全局。适用于客观描述,而结构图则着重于软件模块之间的控制。基本元素:外部实体(系统以外的信息来源或去向) 、数据处理与数据存储。箭头表明信息在它们之间的流动状况。 实体关系图:实体关系图是一种用于描述静态数据结构的概念模
13、式。以实体、关系、属性三个基本概念概括数据的基本结构。广泛用于数据库的设计中,常常和数据流程图、结构图等互相配合使用。 数据字典:它用表格的形式列出数据的基本属性及相互关系。 时序网络:主要描述系统状态及其转换方式,因此常常用于一些实时控制方面的软件的功能。基本概念是状态与转换。状态:是指系统在运转中茉一特定的运行态势或工作方式。转换:状态之间在一定条件下的相互变化。 数学与逻辑模型: 一般只能描述比较单纯、基础的功能。*作为逻辑的表达方式,决策树和决策表也是经常使用的。 计算机模拟模型:利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,又以程序来表现客观系统中的某些规律或规则,计
14、算机则在设定好的环境、按定好的规则高速运行,以便人们观察与预测客观系统的状况。 直观模型:用可视化的图标、图像、图表,甚至随手画的素描等元素描述心中的系统。3.3 信息库及其一致性:1. 数据库、数据仓库、信息库的概念区别 40易自考 易自考同学 roro 是丫头 提供信息库:是一个包罗万象的,随着开发项目进展而不断修改与补充的信息集合。数据库:是在文件系统基础上发展起来的一种管理技术,重点在于合理地组织数据,减少冗余;数据仓库:是为了使数据更接近实用,对数据进行多次加工或提炼,得出许多派生或综合的数据。区别与特点:它在规模上不一定像数据仓库那么大,分析提炼的要求也与数据仓库不同,但数据结构复
15、杂,不断变化,分析的要求也不同,还需要保持一致性,需要供分析人员、程序员、用户、维护售货员等多种人员使用。2. 信息库的内容(多选题做准备)4142a 软件工作环境、功能需求、性能要求、有关状况等外部信息; b 需求分析阶段中收集的各种信息;c 逻辑设计阶段获得的资料和文档; d 设计阶段的各种资料; e 实现阶段获得的成果;f 运行及使用情况的记录; g 维护及修改的情况; h 项目管理的有关信息。3. 信息库研究的核心问题:42 如何保持信息库的一致性,是信息库研究中的核心问题一是因为信息在传递过程中,误解和丢失现象十分严重;二是软件的修改和版本更新时,大量的工作要重复去做。3.4 人机界
16、面及其管理1. 用户界面的设计原则:43a 输入尽量自然,输出必须准确; b 界面必须始终一致; c 界面必须使用户随时掌握任务的进展善;d 界面必须提供帮助; d 宁可让程序多做,不可让用户多干。2. 在人机界面中如何处理一致性和灵活性的矛盾:43a 原则上对某一软件来说,用户的思维方式应当是一致的,操作与控制的方式也应当是一致的。b 另一方面是,用户是多种多样的,应当让他们有一定的灵活、自由地选择某些功能的操作方式。对这两方面的合理权衡是人机界面设计者的责任。3. SAA 系统框架的三个方面的接口:a 对程序员的接口 CPI;b 对其他计算机系统的机接口 CCS;c 对用户的接口 CUA4
17、. CUA 的八个技术手段:44 键盘操作、屏幕滚动、菜单选择、帮助系统、鼠标操作、色彩应用、数据录入、信息显示3.5 项目管理和版本管理1. 项目管理和日常生活管理的四个突出的特点:45 并发存在,对于软件来说,样品即产品。a 子任务多,关系复杂; b 任务不可重复,形势不断变更;c 协调组织的任务十分突出; d 信息处理工作的作用与意义更为突出。2. 软件工作和一般的管理工作的不同特点:45a 一般工程项目没有版本更新的问题; b 对于大系统,一致性又带来系统复杂的管理问题。3. 项目管理的基本目标:46a 使产品的质量得到有效的控制;b 保证整个系统按预定的进度完成;c 尽可能使资源的闲
18、置与浪费减少(最主要的资源是程序员的时间与能力) ;d 控制与降低成本。 (成本的情况是项目管理状况综合的最终体现)4. 版本管理的核心问题:46是保持两个一致性(也是版本管理的任务)a 从时间上来说关心点是系统的逐步完善; b 从系统各部分之间的关系来说要求局与整体保持一致。4.1 基本功能与一般结构1. 软件开发工具的功能(多选题)4849a 提供描述软件善及其开发过程的概念模式,以协助软件开发人员认识软件工作的环境与要求、合理地组织与管理软件开发的工作过程;b 提供存储和管理有关信息的机制与手段;c 帮助使用者编制、生成及修改各种文档;d 帮助使用者编写程序代码;e 对于历史信息进行跨生
19、命周期的管理,把项目运行与版本更新的有关信息科学地管理起来。2. 一般结构:4950中心位置的是总控部分和人机界面 。 系统中和个重要部分是 信息库及其管理最主要的两个信息出口:代码生成 与文档生成 另一个技术要求是 项目管理和版本管理4.2 总控部分和人机界面 SAA 一般应用软件的结构1. SAA 对 CPI 的 6 个接口:51 过程化语言;非过程化语言;生成器;数据库查询;对话显示;通信服务2. SAA 对 CCS 的 6 个接口:52 面向对象的结构;数据流;应用服务;作业管理;网络管理;数据安全控制3. AD/CYCLE 的工作阶段和各阶段的任务:5253需求分析分阶段任务是建立模
20、型。建立起软件所处领域或环境的模型(企业模型) ;建立起软件所要处理信息的静易自考 易自考同学 roro 是丫头 提供态模型,即数据环境。建立起信息流通的模型,即信息的来源、去向、存储及处理的逻辑过程。分析设计阶段完成系统的总体设计 编码阶段 实际的程序代码的产生点测试阶段对已经完成的各个模块或子系统进行试算、调整,以便最终形成完整的软件。运行维护阶段组织和管理软件的日常运行,收集运行中的状态信息及出现的问题并及时地进行局部的修改与完善。4. 软件开发工具在技术上的三个原则:53 面向使用者;保证信息的准确传递;保证系统的开放性4.3 信息库及其管理1. 信息库的内容:5455 四大类信息系统
21、状况;设计成果;运行状况;项目版本信息第一类关于软件应用的领域与环境的;第二类设计成果,包括逻辑设计与物理设计的成果。主要包括:数据流程图、数据字典、系统结构图、数据库逻辑设计、各模块的设 计要求以及由此形成的设计文档。第三类运行状况与测试的记录。第四类有关项目管理与版本管理的信息。2. 信息库的组织方式和演变过程:55集中存储 与模块化的要求相冲突 分散存储 各部分之间的一致性无从保证逻辑上统一和物理上分散 数据库与模块都实现了模块化,既保持了一致生,又保持了灵活性3. 历史信息的处理方法:5657 困难 历史信息数量大,占用存储设备多 方法 采用脱机备份的方法困难 历史信息格式不一致,难以
22、有效利用 方法 加强标准化、稳定数据结构只能使这个问题得到一定程度的解决4.4 文档的生成和代码的生成1. 代码生成的三个来源(依据):582. 输出代码的两种情况的比较:59 (后者不如前者应用的多)某种高级程序设计语言的代码,优点是使用者可以在这个基础上进一步修改加工,缺点是功能较死、效率不高某种机器环境下可运行的机器指令,优点是可以直接运行,缺点是这种机器代码一般是无法直接修改的,对机器的硬软件环境的依赖很大。3. 文档生成的类型:59 三大类: 文章 、 表格 、 图形4.5 项目管理和版本管理1. 区别核心问题和关键问题:59项目管理与版本管理的 核心 问题:跨生命周期的信息管理问题
23、。项目管理与版本管理的 关键 问题:历史信息的处理。5.1 购置与开发的权衡:63在项目比较大时间持续比较长的情况下,使用工具可以使工作的组织管理比较规范,信息管理与检索方便,部分做到信息与知识的重用与共享。但软件开发工具比较昂贵,而且一体化的开发工具还不多,作用与可靠程度不如人意。自己开发的软件开发工具目标明确,符合需要,而且可进一步升级。从长远看,软件开发工具越来越多得到应用,自行开发的工具会减少。(考虑因素:所开发软件的性质与要求;开发人员对支持工作与支持程度的实际需要;工作环境;人员的因素。 )5.2 软件开发工具的选择与购置1. 购置的方法和步骤:65方法 明确购买软件开发工具的目的
24、与要求;明确购买软件工具的环境条件与制约条件;市场调查;对于可供选择的各种工具进行综合比较;进行测试和检验;正式签约购置;安装与试用。2. 明确的目的与要求:65为哪个软件开发项目而使用工具,为一个项目还是为一批项目,为哪一种类型的项目而购置在哪个工作阶段使用工具,在一个生命周期内使用,还是准备长期开发、不断更新版本工具将供哪些人员使用,这些人是否有使用经验,对于使用工具的态度、期望、可塑性如何工具将在怎样的软件、硬件环境下运行3. 调查市场:64开发工具的功能;这些工具的性能;这些工具所使用或依据的开发方法或开发理论是什么,与自己的方法理论是否易自考 易自考同学 roro 是丫头 提供一致;
25、这些工具运行环境是什么; 这些工具的文档资料是否齐全; 使用时的学习、掌握是否简单易行;这些工具的服务、培训条件如何;价格5.3 软件开发工具的使用使用的组织管理工作:66制定严格的使用制度;记录使用的详细过程;培训使用人员;经常进行审讯与评价工作5.4 软件开发工具的开发自行研制开发要注意的问题:6768要从实际出发,设定现实的、有限的目标;要坚持短小实用、逐步积累,避免期望过高、贪大求全;要注意文档的齐全与资料的积累。6.1 软件开发工具的现状1. 国内国外情况相比较:81国外发展状况:80 年代中期,专项的、支持某一工作环节的专用工具大量涌现目前真正一体化的,又能应用于各种平台上的工具尚
26、不多我国软件产业,当务之急应是在力普及软件工程及方法学的知识,提高软件开发工作的水平,这才能使软件开发工具的应用具有实践的基础2. XML 和 HTML 的比较:78HTML 描述的是如何显示 WEB 页中的数据,XML 描述的则是数据的本身HTML 的标记是有限的,规定好的,XML 是的标记是无限的可以自己创建HTML 可以让我们设置字体,XML 则是说明标记中的文本数据表示的是什么含义3. XML 的本质和文件必须满足的两点:79 组织良好和有效6.2 软件开发工具的发展趋势四个化以简答形式记忆:8182 智能化、网络化、一体化、标准化智能化就是在软件开发工具的研究与使用中引用人工智能、神经网络等技术,使得软件开发工具对于不确定的信息、模糊信息具有更强的处理能力。网络的应用是计算机应用领域中的一个重要方向。一体化的趋势早在 80 年代后期已经十分明显。困难不在技术上的问题,而在于对软件开发过程与相关信息的认识深度标准化的问题是由软件部件、组合软件的想法引起的。