软件工程重点

上传人:新** 文档编号:559621741 上传时间:2024-02-04 格式:DOC 页数:18 大小:296.50KB
返回 下载 相关 举报
软件工程重点_第1页
第1页 / 共18页
软件工程重点_第2页
第2页 / 共18页
软件工程重点_第3页
第3页 / 共18页
软件工程重点_第4页
第4页 / 共18页
软件工程重点_第5页
第5页 / 共18页
点击查看更多>>
资源描述

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

1、第一章*1、软件危机是指在计算机软件的(开发)和(维护过程)中遇到的一系列严重问题。2、软件危机主要的典型表现: (1)对软件开发成本和进度的估计不准确 (2)用户对“已完成的”软件系统不满意的现象经常发生 (3)软件产品的质量往往靠不住 (4)软件常常是不可维护的 (5)软件通常没有适当的文档资料 (6)软件成本在计算机系统总成本中所占的比例逐年上升 (7)软件开发生产率提高的速度,既跟不上硬件发展的速度,也远远跟不上计算机应用 迅速普及深入的趋势3、软件危机产生的原因原因一:软件本身的特点原因二:软件开发与维护的方法不正确4、消除软件危机的途径(1)对计算机软件应当有一个正确的认识;(2)

2、应当有组织、有计划、通过严格的管理手段进行软件的开发;(3)及时总结软件开发的成功技术和方法并加以推广;(4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。*5、什么是软件工程?软件工程是研究软件生产的一门学科。它采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以达到经济地开发出高质量的软件并有效的维护它的目的。6、软件工程的基本原理 (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚的审

3、查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性第二章*1、软件生命周期分为哪几个阶段? 软件生命周期由软件定义、软件开发和运行维护3个时期组成。软件定义包括:问题定义、可行性研究、需求分析。软件开发包括:概要设计、详细设计、编码和单元测试、综合测试 或 设计与实现*2、各阶段应该完成的基本任务及提交什么文档 (1)问题定义:确定要解决的问题是什么。 问题定义的书面报告 (2)可行性研究:确定是否有解决办法。 可行性研究报告 (3)需求分析:为了解决问题,目标系统必须做什么。 需求分析规格说明书 (4)概要设计:确定如何解决这些问题。 概要设计说明书 (5)详细设计:

4、确定如何具体实现这个系统。 详细设计说明书 (6)编码:写出正确的,容易理解、容易维护的程序模块。 源程序文档 (7)测试:通过各种类型的测试使软件达到预期的要求。 软件测试报告 (8)软件维护:通过各种必要的维护活动使系统持久的满足用户的需求。软件维护报告*3、瀑布模型:瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干 阶段工作,形如瀑布流水,最终得到软件产品。 快速原型模型:快速原型模型第一步是快速建立一个能反映用户主要需求的原型系统, 让用户在计算机上试用它,用户试用后提出修改意见,开发人员按照用 户的意见快速的修改原型系统,然后再请用户使用.直到开发出客户 满意的软件产品

5、。增量模型:把软件产品作为一系列的增量构建来设计,编码,集成和测试。螺旋模型:将瀑布模型和快速原型模型结合起来,将软件过程划分为若干个开发回线, 每一个回线表示开发过程的一个阶段。喷泉模型:喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对 象的开发方法。(1) 瀑布模型的优缺点: 瀑布模型的优点可以强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。瀑布模型的缺点在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完

6、整。作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。瀑布模型适用的场合瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。(2) 快速原型模型适用的场合 原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。(3) 增量模型的优点 能在较短时间内向用户

7、提交可完成部分工作的产品。逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。增量模型的缺点在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出 的产品。此外,必须把软件的体系结构设计的便于按照这种方式进行扩充,向现有 产品中加入新构件的过程必须简单、方便,这就意味着需要更精心的设计。(4)螺旋模型的优点对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。减少了过多测试或测试不足所带来的风险。在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。螺旋模型的缺点如果

8、每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间。使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。螺旋模型适用的场合支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。(5)喷泉模型的优点 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束 后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开 发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件 开发过程。 喷泉模型的缺点 由于喷泉模型在各个开发阶段是重叠的,因此在开发

9、过程中需要大量的开发人员, 因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大, 尤其是面对可能随时加入各种信息、需求与资料的情况。 *4、喷泉模型是典型的面向对象生命周期模型。 采用瀑布模型或快速原型模型开发软件时,目标都是一次就把一个满足需求的产品提交 给用户。 增量模型则与之相反,它分批地逐步向用户提交产品,每次提交一个满足用户需求子集 的可运行的产品5、Rational统一过程(RUP)是由Rational软件公司推出的一个软件开发过程框架。6、极限编程:把好的开发实践运用到极致。7、能力成熟度模型(CMM):有助于软件开发组织建立一个有规律的、成熟的软件过程。第三

10、章*1、数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中 所经受的变换。 数据流图 描绘系统的逻辑模型,是结构化系统分析的主要工具。 顶层DFD确定系统边界。*2、数据字典:所有与数据流图相关的数据元素的有组织的列表,并且包含了对这些数据与 元素的精确、严格的定义,从而使得用户和系统分析员双方对输入、输出、 存储的成分甚至中间计算结果有共同的理解。3、 分析模型包括:数据模型、功能模型、行为模型。 分析模型的核心是“数据字典”,它描述软件使用或产生的所有数据对象。4、 创建“数据流图”的两个目的:(1)指出当数据在软件系统中移动时怎么被变换 (2)描绘变换数据流

11、的功能和子功能。5、56页计算及习题1、2、5第四章*1、模块是由边界元素限定的相邻的程序元素(如数据说明,可执行的语句)的序列,而且 有一个总体标识符来代表它。2、67页 图4.23、 抽象:抽出事物的本质特性而暂时不考虑它们的细节。4、 逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。5、 信息隐藏:每个模块的实施细节对于其他模块来说是隐蔽的。*6、耦合:对一个软件结构内不同模块之间互连程度的度量。内聚:一个模块内各个元素彼此结合的紧密程度的度量。7、 按内聚性由弱到强排列,内聚可分为:偶然内聚、逻辑内聚、时间内聚、过程内聚、 通信内聚、顺序内聚及功能内聚。 按耦合性由高到

12、低排列,耦合可分为:内容耦合、公共耦合、外部耦合、控制耦合、 标记耦合、数据耦合以及非直接耦合。 一个设计良好的软件系统应具有高内聚、低耦合的特征。 在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。8、 启发规则 (1)改进软件结构提高模块独立性 (2)模块规模应该适中 (3)深度、宽度、扇出和扇入都应适当 (4)模块的作用域应该在控制域之内 (5)力争降低模块接口的复杂程度 (6)设计单入单出口的模块 (7)模块功能应该可以预测*9、表示软件结构的图形工具包括:层次图、HIPO图、结构图。10、 变换流:由输入、变换(或处理)、输出三部分组成。事物流:某个加工将

13、它的输入流分离成许多发散的数据流,形成许多加工路径,并根据 输入选择其中一个路径来执行。*11、4.9节会画图 习题 11、13第五章1、 编码包括:选择程序设计语言、编码风格。2、 测试是为了发现程序中的错误而执行程序的过程 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案 成功的测试是发现了迄今为止尚未发现的错误的测试*3、测试:为了发现软件中的错误而执行程序的过程*4、白盒测试:白盒法测试把测试对象看作一个透明的盒子,也就是了解程序内部结构和处 理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行 测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状 态是否一致。 黑盒测试:黑盒测试法把被测试对象看成是一个黑盒子,完全不考虑程序的内部结构和 处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否 满足功能要求。5、 测试发现的错误中的80%很可能是由程序中20%的模块造成的。*6、逻辑覆盖是设计白盒测试方案的一种技术。 测试方案包括具体的测试目的(如要测试的具体功能),应该输入测试数据和预期的输出 结果。*7、 白盒法有下列几种覆盖标准(

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

当前位置:首页 > 建筑/环境 > 施工组织

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