软件工程复习知识点和例题

上传人:简****9 文档编号:110553415 上传时间:2019-10-30 格式:DOC 页数:15 大小:482KB
返回 下载 相关 举报
软件工程复习知识点和例题_第1页
第1页 / 共15页
软件工程复习知识点和例题_第2页
第2页 / 共15页
软件工程复习知识点和例题_第3页
第3页 / 共15页
软件工程复习知识点和例题_第4页
第4页 / 共15页
软件工程复习知识点和例题_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《软件工程复习知识点和例题》由会员分享,可在线阅读,更多相关《软件工程复习知识点和例题(15页珍藏版)》请在金锄头文库上搜索。

1、1. 软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。内容:软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护不断膨胀的已有软件。具体地说,软件危机主要有以下一些典型表现:(1) 对软件开发成本和进度的估计常常很不准确;(2) 用户对“已完成的”软件系统不满意的现象经常发生;(3) 软件产品的质量往往靠不住;(4) 软件常常是不可维护的;(5) 软件通常没有适当的文档资料;(6) 软件成本在计算机系统总成本中所占的比例逐年上升;(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;

2、原因:在软件开发和维护的过程中存在这么多严重问题:一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关。(1) 软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。(2) 软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序的规模的增加而呈指数上升。(3) 目前相当多的软件专业人员对软件开发和维护还有不少糊涂概念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。(4) 对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。2. 软件工程的定义,基本原理;定义:软件工程是指导计算机

3、软件开发和维护的一门工程学科。基本原理:软件工程的7条基本原理:(1) 用分阶段的生命周期计划严格管理(2) 坚持进行阶段评审(3) 实行严格的产品控制(4) 采用现代程序设计技术(5) 结果应能清楚地审查(6) 开发小组的人员应该少而精(7) 承认不断改进软件工程实践的必要性3. 软降工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。面向对象方法学具有

4、下述4个要点。(1) 把对象作为融合了数据及在数据上的操作行为的统一的软件构件。(2) 把所有对象都划分成类。(3) 按照父类(基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。(4) 对象彼此间仅能通过发送消息互相联系。对象是数据处理的主体,必须向它发消息请求它执行它的某个操作以处理它的数据,而不是从外界直接对它的数据进行处理。也就是说,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。4. 软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个阶段。具体内容:软件生命周期由软件定义、软

5、件开发和运行维护(软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。软件生命周期每个阶段的任务:(1) 问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”(2) 可行性研究:这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决方法。(3) 需求分析:准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。这个阶段的一项重要任务是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书。(4) 总体设计:这个阶

6、段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。 首先,应该设计出实现目标系统的几种可能方案。推荐最佳方案,并制定实现最佳方案的详细计划。如果用户接受所推荐的方案,则应该进一步完成另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。(5) 详细设计:把总体设计阶段给出的解法具体化,也就是回答关键问题:“应该怎样具体地实现这个系统?”这个阶段的任务不是编写程序,而是设计出程序的详细规格说明。详细设计也称为模块设计,这个阶段将详细的设计每个模块,确定实现模块功能所需要的算法和数据结构。(6) 编码和单元测试:这个阶段的关键任务是写

7、出正确的容易理解、容易维护的程序模块。(7) 综合测试:这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测试是集成测试和验收测试。(8) 软件维护:维护阶段的任务是通过各种必要的维护活动使系统持久地满足用户的需求。通常有4类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。根据完成任务的性质,把软件生命周期划分为8个阶段。5. 理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模

8、型、螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的。优点:(1)可强迫开发人员采用的规范的方法(结构化技术);(2)严格地规定了每个阶段必须提交的文档;(3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:瀑布模型是由文档驱动的(1) 开发过程一般不可逆,否则代价太大(2) 实际的项目开发过程很难严格按照模型进行(3) 客户往往很难清楚地给出所有需求,而该模型却要求如此。(4) 软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。不带反

9、馈环优点:软件产品的开发基本上是线性顺序进行的。(1) 可以得到比较良好的需求定义,容易适应需求的变化;(2) 有利于开发与培训的同步(3) 开发费用低、开发周期短且对用户更友好;缺点:(1) 客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新;增量模型也称为渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。优点:在较短时间内可以向用户提交可完成部分工作的产品,逐步增加产品功能可以使用户有比较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。(1) 人员分配灵活,刚开始不用投入大量资源。(2

10、) 如果核心产品很受欢迎,则可增加人力实现下一增量。(3) 可先发布部分功能给客户,对客户起到镇定剂的作用。缺点:(1) 并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构(2) 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程失去整体性。螺旋模型的基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一种简便方法是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。优点:(1) 设计上的灵活性,可以在项目的每个阶段进行变更;(2) 以笑得分段来构建大型系统,使成本计算变得简单容易;(3) 客户始终

11、参与每个阶段的开发,保证项目不偏离正确的方向一击项目的可控性;(4) 随着项目的推进,客户始终掌握项目的最新信息,从而他能够和管理层有效地交互。缺点:(1) 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标示风险,势必造成重大损失;(2) 过多的迭代次数会增加开发成本,延迟提交时间。喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各阶段可以相互重叠和多次反复,而且项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,还可以落在底部。6. 了解可行性研究中的任务和过程;任务:(1) 首先需要进一步

12、分析和澄清问题定义。(2) 在澄清问题定义之后,分析员应该导出系统的逻辑模型。(3) 从逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。(4) 对每种解法都应该仔细研究它的可行性。(技术可行性、经济可行性、操作可行性)过程:(1) 复查系统规模和目标;(2) 研究目前正在使用的系统;(3) 导出新系统的高层逻辑模型;(4) 进一步定义问题;(5) 导出和评价供选择的解法;(6) 推荐行动方针;(7) 草拟开发计划(8) 书写文档提交审查;7. 掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图;概念:系统流程图是概括描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒

13、子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。P408. 掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图;概念:数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图是系统逻辑功能的图形表示。做什么,不考虑如何实现。P429. 掌握数据字典的内容、方法、用途和实现;内容:数据字典由4类元素定义组成。(1) 数据流;(2) 数据流分量(即数据元素);(3) 数据存储;(4) 处理;定义数据的方法:数据字典中的定义就是对数

14、据自顶向下的分解。由数据元素组成数据的方式只有下述3种基本类型:顺序 选择 重复用途:作为分析阶段的工具。实现:P4910. 了解成本/效益分析方法;成本/效益分析的第一步是估计成本、运行费用和新系统将带来的经济效益。运行费用取决于系统的操作费用(操作人员数,工作时间,消耗物资等)和维护费用。生命周期5年。P5111. 了解需求分析过程中任务是什么.(1) 确定对系统的综合要求(功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求)(2) 分析系统的数据要求(3) 导出系统的逻辑模型(4) 修正系统开发计划12. 理解面向数据流自顶向下逐步求精的方

15、法和意义;结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。方法:为了达到这个目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素。意义:(1) 对数据流图细化之后得到一组新的数据流图,不同的系统元素之间的关系变得更清楚了。(2) 对这组新数据流图的分析追踪可能产生新的问题,这些问题的答案可能又在数据字典中增加一些新条目,并且可能导致新的或精化的算法描述。(3) 随着分析过程的进展,经过提问和解答的反复循环,分析员越来越深入具体地定义目标系统,最终得到对系统数据和功能要求的满意了解。13. 理解分析及建模的意义,需求分析中应该建立哪三种模型?有哪些工具来帮助建立这些模型?意义:为了开发出复杂的软件系统,系统分析员应该从不同的角度抽象出目标系统的特性,使用精确的表示方法构件系统的模型,验证模型是否满足用户对目标系统的特性,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。三个模型:数据模

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

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

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