软件工程概述

上传人:鲁** 文档编号:486708634 上传时间:2023-10-21 格式:DOC 页数:99 大小:4.96MB
返回 下载 相关 举报
软件工程概述_第1页
第1页 / 共99页
软件工程概述_第2页
第2页 / 共99页
软件工程概述_第3页
第3页 / 共99页
软件工程概述_第4页
第4页 / 共99页
软件工程概述_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《软件工程概述》由会员分享,可在线阅读,更多相关《软件工程概述(99页珍藏版)》请在金锄头文库上搜索。

1、软件工程概述例题分析【例1】软件是计算机系统中与硬件相互依存的另一部分,它是包括(A) 、 (B) 及(C) 的完整集合。其中,(A) 是按事先设计的功能和性能要求执行的指令序列。(B) 是使程序能够正确操纵信息的数据结构。(C) 是与程序开发、维护和使用有关的图文材料。供选择的答案:AC.软件 程序 代码硬件 文档 外设 数据图表答案: A. ,B. ,C.分析: 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、 数据及相关文档的完整集合。 其中,程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能够正确操纵信息的数据结构。 文档是与程序开发、 维护和使用有关的图文材料。

2、需要注意的是,程序与算法在含义上有不同:算法的每一条指令必须是最基本的、必须通过有限步做完,而程序没有这个要求。【例 2】开发软件时对提高软件开发人员工作效率至关重要的是( A) 。软件工程中描述生存周期的瀑布模型一般包括计划、(B ) 、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(C) 和 (D )两步。供选择的答案:A 程序开发环境 操作系统的资源管理功能 程序人员数量计算机的并行处理能力B 需求分析 需求调查 可行性分析问题定义C、 D 方案设计 代码设计 概要设计数据设计 运行设计 详细设计 故障处理设计软件体系结构设计答案: A. ,B. ,C. ,D.分析

3、:有合适的程序开发环境可以提供有用的工具,大大提高开发人员的工作效率。软件工程中描述软件生存周期的瀑布模型一般包括计划、需求分析、设计、编码、测试和运行维护等六个阶段。需求分析完成对软件产品在功能、性能、用户接口、运行环境、可靠性、安全性、开发资源、开发进度、开发成本等方面的需求定义。问题定义、可行性分析、需求调查都可能是需求分析中要做的一部分工作。软件设计在管理上划分为概要设计与详细设计两个步骤。概要设计的目标是建立软件的体系结构,完成全局数据结构设计,同时进行处理方式设计、运行配置设计、出错处理设计、故障恢复设计等。 详细设计是对每一个模块的操作的控制流程和局部数据结构进行设计。3()内。

4、【例 】从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的有人将软件的发展过程划分为4 个阶段:第一阶段( 1950 1950 年代末)称为“程序设计的原始时期”,这时既没有 (A) ,也没有( B) ,程序员只能用机器指令编写程序。第二阶段( 1950 年代末 1960 年代末)称为“基本软件期”。出现了 (A ) ,并逐渐普及。随着 (B ) 的发展,编译技术也有较大的发展。第三阶段( 1960 年代末 1970 年代中期)称为“程序设计方法时代” 。这一时期,与硬件费用下降相反, 软件开发费急剧上升。 人们提出了 ( C ) 和 ( D ) 等程序设计方法,设法降低软件的开发

5、费用。第四阶段( 1970 年代中期现在)称为“软件工程时期”。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如(E) 、 (F) 、编码、单元测试、综合测试、 (G) 及其整体有关的各种管理技术。供选择的答案:AD:汇编语言 操作系统 虚拟存储器概念 高级语言 结构式程序设计 数据库概念 固件 模块化程序设计EG:使用和维护 兼容性的确认 完整性的确认 设计 需求定义 图象处理答案: A. ,B. ,C. ,D. ,E. ,F. ,G. 。注意, C 与 D 的答案顺序可互换。分析:在软件发展的早期,汇编语言和高级语言尚未出现,人们只能用机器指令来编写程序。为了好读,

6、有的指令系统可以用八进制代码书写。 其后, 由于汇编语言的出现,人们摆脱了繁重的地址分配等工作, 可以用符号编程。 随着高级语言的出现和普及, 人们用近似于自然语言的语句编写程序, 大大减轻了程序员的负担。 高级语言的处理, 从解释执行到编译执行,处理效率和存储利用率不断提高。结构化程序设计和模块化程序设计是科学家为解决软件危机,借用其它领域的技术改进程序设计方法而提出来的。 由于这些技术的使用, 提高了程序的可读性、 局部性、 抽象性、清晰性、简单性、确定性、一致性等,降低了程序开发的费用。后来发展到软件工程阶段,明确地划分了软件开发阶段, 规范了软件开发过程, 明确了各个阶段的任务以及应交

7、付的成果和里程碑,使得软件开发逐步达到工程化和标准化。习题【 1-1】软件工程过程有哪几个基本过程活动?试说明之。【 1-2】试说明“软件生存周期”的概念。【 1-3】试论述瀑布模型软件开发方法的基本过程。【 1-4】软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。【 1-5】软件工程学的基本原则有哪些?试说明之。16为改正它所付出的代价就越大。对否?【- 】有人说: 软件开发时, 一个错误发现得越晚,请解释你的回答。习题解答【1-1】软件工程过程的基本过程活动有4 步:P (Plan) : 软件规格说明。规定软件的功能及其运行的限制;D (Do) : 软件开发。产

8、生满足规格说明的软件;C (Check) : 软件确认。确认软件能够完成客户提出的要求;A (Action): 软件演进。 为满足客户的变更要求,软件必须在使用的过程中演进。【 1-2】软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存周期。它主要分为6 个阶段: 软件项目计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运行维护。(1) 软件项目计划 :在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统

9、元素。可以用以下两种方式中的一种对需求进行分析和定义。一种是正式的信息域分析, 可用于建立信息流和信息结构的模型, 然后逐渐扩充这些模型成为软件的规格说明。 另一种是软件原型化方法,建立软件原型,并由用户进行评价,从而确定软件需求。即(3) 软件设计 :软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始, 建立程序的模块结构,定义接口并建立数据结构。 此外,要使用一些设计准则来判断软件的质量。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。(4)程序编码:在设计完成之后,用一种适当的程序设计语言或CASE 工具生成

10、源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。(5) 软件测试 :单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段, 同时测试其功能和接口。 确认测试检查所有的需求是否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。(6) 软件维护 :为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。【 1-3】瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次

11、序,如同瀑布流水, 逐级下落。 然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈线性图式。实际情况是,每项开发活动均应具有以下特征:(1) 从上一项活动接受本项活动的工作对象,做为输入;(2) 利用这一输入实施本项活动应完成的内容;(3) 给出本项活动的工作成果,做为输出传给下一项活动;(4) 对本项活动实施的工作进行评审。若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工。【 1-4】软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、 软件系统需求分析、 数据结构、 系统总体

12、结构的设计、 算法过程的设计、 编码、测试以及维护等。 软件工程方法常采用某一种特殊的语言或图形的表达方法及一套质量保证标准。软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具, 已经能够支持上述的软件工程方法。 特别地, 已经有人把诸多的软件工具集成起来, 使得一种工具产生的信息可以为其它的工具所使用, 这样建立起一种被称之为计算机辅助软件工程 (CASE) 的软件开发支撑系统。 CASE 将各种软件工具、 开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。 过程定义了方法使用的顺序、 要求交付的文档资料、 为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。【1-5】在软件开发过程中必须遵循下列软件工程原则。抽象 : 采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。信息隐蔽 : 遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的数据。模块化 : 按模块划分系统的体系结构,使得各模块间有良好的接口

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

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