软件开发知识(下)

上传人:子 文档编号:51669984 上传时间:2018-08-15 格式:PPT 页数:98 大小:554KB
返回 下载 相关 举报
软件开发知识(下)_第1页
第1页 / 共98页
软件开发知识(下)_第2页
第2页 / 共98页
软件开发知识(下)_第3页
第3页 / 共98页
软件开发知识(下)_第4页
第4页 / 共98页
软件开发知识(下)_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《软件开发知识(下)》由会员分享,可在线阅读,更多相关《软件开发知识(下)(98页珍藏版)》请在金锄头文库上搜索。

1、n 随着计算机应用的日益普及和深化,软 件在计算机系统中所占比重不断增加。在 美国20世纪50年代软件投资只占20%,到 了80年代,软件投资已超过80%。软件规 模和复杂程度也在不断增加,包含数百万 行代码、耗资几十亿美元、花费几千人年 的劳动才能开发出来的大型软件,在70年 代就已不是什么新鲜事了,70年代末期美 国的“穿梭号”宇宙飞船的软件规模已达 到4000万行代码。n 沿用50年代计算机发展初期个人编写小 程序的传统方法,已不再适合现代大型软 件的开发,用传统方法开发出来的许多大 型软件甚至无法投入运行,造成大量人力 、物力、财力的浪费。计算机领域把大型 软件开发和维护过程中遇到的一

2、系列严重 问题称为“软件危机”(Software Crisis) 。 软件危机主要表现在以下几个方面:(1)软件开发成本和开发进度的估计往往很 不准确;(2)用户对“已完成”的软件系统不满意 的现象经常发生;(3)软件产品的质量往往不可靠;(4)软件没有适当的文档资料;(5)软件通常是不可维护的。 n 软件危机的出现表明,必须寻找新的技 术和方法来指导大型软件的开发。考虑到 机械、建筑等领域都经历过从手工方式演 变成严密、完整的工程科学的过程,人们 认为大型软件的出开发也应该向“工程化 ”方向发展,逐步发展成一门完整的工程 学科。1968年在北大西洋公约组织的一次 学术会议商首次提出“软件工程

3、”( Software Engineering)概念。实践表明, 软件工程方法和技术确实对大型软件的开 发产生了巨大影响。n 本节主要针对应用软件的开发介绍软件 工程方法。 6.2 软件工程n6.2.1 软件开发的复杂性n6.2.2 软件开发方法n6.2.3 系统分析n6.2.4 系统设计n6.2.5 系统实施n6.2.6 系统运行与维护6.2.1 软件开发的复杂性软件是先进的科学技术与现代管理相结 合的产物,开发高质量的应用软件,已经 成为现代企业、政府部门等各类组织提高 自身素质、实现组织目标的战略措施,但 软件的开发是一项复杂的系统工程。软件开发的复杂性主要体现在以下三个方 面:(1)开

4、发环境的复杂性现代企事业单位、政府部门等组织一般 说来结构复杂。软件开发通常涉及到组织 内部各级机构、管理人员及组织面临的外 部环境。软件开发者必须十分重视、深刻 理解组织面临的内、外环境及发展趋势, 考虑到管理体制、管理思想、管理方法和 管理手段的相互匹配,才能开发出高质量 的软件。 (2)用户需求的多样性软件的最终用户是各级各类管理人员, 满足这些用户的信息需求,支持他们的日 常管理及决策工作,是系统开发的直接目 的。然而,一个组织内部各类机构和管理 人员的信息需求不尽相同甚至相互矛盾, 一些用户提出的信息需求往往十分模糊。 用户需求在系统开发过程中经常发生变化 ,开发出的系统必须能够满足

5、不同用户的 信息需求。 (3)技术手段的综合性软件是当代利用先进技术解决社会经济 问题的范例之一。当代的先进技术成果, 如计算机硬件和软件技术、数据通信与网 络技术、数据采集与存储技术、多媒体技 术等,都是进行软件开发、实现各种功能 的技术手段。如何有效地掌握和综合使用 这些技术,是软件开发者面临的主要任务 之一。由此可知,软件的开发是复杂且困难 的。为了有效地完成软件的开发工作 ,理论指导和方法选择是非常必要的。6.2.2 软件开发方法软件的开发是一项复杂的系统工程,几 十年来,一些专家、学者及实际开发人员 提出了不少的方法,其中生命周期法、快 速原型法、面向对象法得到了广泛的应用 ,并取得

6、了较好的效果。一、生命周期法生命周期法就是将整个软件的开发过程 分解成若干个阶段,并对每个阶段的目标 、任务、方法作出规定,使整个软件的开 发过程具有合理的组织和科学的秩序。软 件的生命周期,可以分成四个主要阶段: 系统分析、系统设计、系统实施、系统运 行与维护。 n 软件是20世纪60年代中后期才开始崛起 的新领域,但是发展十分迅速。由于人们 缺乏开发较大规模软件的经验,发展初期 曾呈现较为混乱的状态。软件生命周期的 概念提出后,软件的开发开始“有章可循 ”。基于软件生命周期的结构化方法的出 现更是为成功开发大型软件提供了可靠的 保证。n 结构化的含义就是用一组规范的步骤、准 则和工具来完成

7、软件开发中各阶段的工作 。把整个软件开发过程分成若干个阶段, 每个阶段进行若干项活动,每项活动应用 一系列标准、规范、方法和技术,完成一 个或多个任务。有用于系统分析阶段的结 构化分析(Structured Analysis,简称SA) 、用于系统设计阶段的结构化设计( Structured Design,简称SD)、用于系统实 施阶段的结构化程序设计(Structured Programming,简称SP)等。 结构化方法主要遵循以下四条原则:(1)用户参与的原则:软件的用户是各级各类管理者,满足他 们在管理活动中的信息需求,是开发软件 的直接目的。由于系统本身和系统开发工 作的复杂性,用户

8、的确切需求不容易一次 表达清楚,随着系统开发工作的深入,用 户需求的表达和开发人员对用户需求的理 解才能逐步明确、深化和细化。这就要求软件的开发要积极引导用户参与 ,开发人员要充分考虑、理解用户的要求 ,使开发出的系统充分满足用户的功能需 求和使用方便性的要求。没有用户的积极 参与,往往是导致软件开发失败的重要原 因。 (2)先逻辑、后物理的原则结构化方法总结了以往软件开发成功的经 验和失败的教训,强调在进行技术设计和 实施之前,要先进行充分的调查、分析、 论证,进行逻辑方案的探索,弄清系统要 为用户解决哪些问题,即解决系统“做什 么”的问题,要尽量避免过早地进入物理 设计阶段。也就是说,在进

9、行系统开发时 ,要充分地进行系统分析,解决“做什么 ”的问题,然后再进入系统设计、系统实 施阶段,解决“如何做”的问题。 (3)自顶向下的原则在系统分析、系统设计、系统实施的各阶 段,结构化方法强调“自顶向下”的原则 ,即先把握系统的总体目标和功能,然后 逐级分解、逐步细化,将整个拟开发系统 分解成若干个项目,分期分批进行系统开 发,先实现某些子系统,然后再实现总的 目标和功能。遵循这个原则,可以将一个 复杂的问题分解成若干个比较简单的问题 分别加以解决,从而降低了解决问题的难 度。 (4)工作成果描述标准化原则结构化方法强调各阶段工作成果描述的标 准化。每一工作阶段的成果,必须用明确 的文字

10、和标准化的图形、表格完整、准确 地进行描述。这不仅作为一个阶段工作完 成的标志,也是下一阶段工作的主要依据 。工作成果描述的标准化,可以防止由于 描述的随意性造成开发者之间的误解而影 响开发工作,便于工作交流和各阶段的衔 接,便于今后对系统进行检查、修改、完 善与扩充。 二、快速原型法生命周期法强调自顶向下分阶段开发,在 进入实际的开发期之前必须预先对需求严 格定义。这样做的目的是为了提高系统开 发的成功率,与不重视需求分析的早期方 法相比是一个重大进步,并在实际系统开 发中取得了很好的效果。但是,实践也表 明,有些系统在开发出来之前很难仅仅依 靠分析就能确定出一套完整、一致、有效 的应用需求

11、,这种预先定义的方式更不能 适应用户需求不断变化的情况。快速原型 (Rapid Prototyping)法改变了这种自顶 向下的开发模式。 n 快速原型法的基本思想是以少量代价快速 地构造一个可执行的软件系统,使用户和 开发人员可以较快地确定需求。在初步了 解用户的基本要求后,开发人员先建立一 个他们认为符合用户要求的模型系统交付 用户检验,由于模型是可以执行的,所以 为用户提供了获得感性认识的机会。一般 来说,有了一个实际的系统,用户可以测 试具体实例,可以进一步明确地说明需求 。快速原型法的优点是明显的,因为阅读 书面的需求说明书远不如直接观察一个实 际系统那样有效。n 原型法对于用户需求

12、较难定义的系统非 常有效,特别适合于规模较小的软件。原 型法有助于开拓开发人员的想象力,便于 和用户交流。由于计算机专业知识、系统 开发知识的局限,有时用户所要求的并不 是他们想得到的,而他们真正想得到的又 不一定是所要求的。原型法就可以较好的 解决这一问题,如果用户不满意一个模型 ,就可以对这个模型进行修改,甚至重新 建立一个模型,直至用户和开发人员都满 意为止。n 目前,人们通常建立两种快速原型,一类 是需求规格原型(Rapid Specification Prototyping,简称RSP),另一类是渐进原 型(Rapid Cyclic Prototyping,简称RCP) 。RSP模型

13、反映了系统的某些方面,它可以 密切用户和开发人员的关系,促进相互理 解,有助于获得更完整、更精确的需求说 明书,待需求说明书确定之后,这个模型 就被舍弃,后面的开发工作仍按生命周期 法进行。RCP采用循序渐进的开发方式,对初始模型 作连续的精确化,将系统需具备的功能逐 步添加上去,直至实现系统的所有功能, 此时的模型也就发展为最终的软件系统了 。n 原型法的优点是有利于准确地定义出用 户需求,降低系统开发风险,适用于中小 规模系统的开发。缺点是要求有将用户需 求快速生成的工具和环境,这在一定程度 上限制了原型法的广泛应用。 三、面向对象法面向对象(Object Oriented,简称OO) 法

14、是针对面向过程提出的,是区别于传统 的结构化方法的一种新方法、新思路。它 将客观世界看成由许多不同种类的对象构 成,每一个对象都有自己的内部状态和内 在运行规律,不同对象的相互联系和作用 构成了完整的客观世界。面向对象法从分析组成系统的对象开始 ,是一种基于数据抽象的类的组合的自底 向上的开发方法,由四个基本步骤组成:(1)标识对象和定义类;(2)组织类间关系;(3)在类层中构造框架;(4)建立可复用的类库和系统总框架 。 面向对象法应用于软件生命周期的分析 、设计 和实施阶段,便有了面向对象分析 (Object Oriented Analysis ,简称OOA) 、面向对象设计(Object

15、 Oriented Design ,简称 OOD)、面向对象编程(Object Oriented Programming,简称 OOP)等面 向对象技术。面向对象法主要有以下四个特征:(1)对象是有关数据和操作的封装体,突 破了传统的将数据与操作分离的模式,较 好地实现了数据抽象。(2)面向对象法的继承性体现了概念分离 抽象。在对象继承结构上,下层对象继承 上层对象的特征(属性和操作),因而便 于软件系统的演化和功能扩充。 (3)面向对象法用消息将对象动态连接在 一起。与结构化方法中的模块调用不同, 面向对象法采用了灵活的消息传递方式, 便于在概念上体现并行和分布式结构。(4)面向对象法具有封

16、装性。对象将其实 现细节封装在它的内部,因此无论是对象 功能的完善扩充还是对象实现的修改,影 响仅限于该对象内部而不会对外界产生影 响,这就保证了软件系统的可复用性和可 维护性。OO法被认为是很有发展前景的一种 系统开发方法,但要想充分发挥OO所 具有的优越性,还有待于OO理论的进 一步完善和OO技术的实用化及OO开 发平台的支持。 n 生命周期法、快速原型法、面向对象法三 种方法既有区别又有联系,总的趋势是指 导人们对问题空间的认识和理解更接近于 现实世界,从而降低系统开发成本,提高 系统开发质量。软件开发方法的选择,既 与具体项目的规模、性质有关,又与开发 方法本身的成熟程度和开发人员对此方法 的理解深度有关.n 目前,就大多数应用软件开发来说,生命 周期法仍是最常用的一种方法。所以,本 书以生命周期法为背景来介绍软件的开发 过程。在生命周期法中,整个软件的开发 过程可以分成四个主要阶段:系统分析、 系统设计、系统实施、系统运行与维护。6.2.3 系统分析n 系统分析就是对组织的工作现状

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号