2023年软件工程期末复习要点归纳总结.docx
《2023年软件工程期末复习要点归纳总结.docx》由会员分享,可在线阅读,更多相关《2023年软件工程期末复习要点归纳总结.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 软件工程学概论1、软件危机产生的因素软件自身的特点:难于维护、逻辑复杂软件开发与维护的方法不对的:忽略需求分析重要性、轻视软件维护课本表述:1、 软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、 软件不同于一般程序,它的一个显著特点是规模庞大,并且程序的复杂性将规模的增长而呈现指数上升。3、 软件自身特有的特点的确给开发和维护带了一些客观困难4、 软件开发与维护有关的许多错误结识与做法有关(忽略需求分析,轻视软件维护)5、 对用户规定没有完整准确的结识就匆忙开始着手编写程序6、 在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:
2、(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:项目延期比比皆是由于进度问题而取消的软件项目较常见只有一小部分的项目可以按期完毕(4)、维护十分困难:软件维护的多样性软件维护的复杂性软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把通过时间考验而证明对的的管理技术和当前可以得到的最佳的技术方法结合起来,以经济地开发
3、出高质量的软件并有效地维护它,这就是软件工程。(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运营的软件。(2)、把系统的、规范的、可度量的方法应用于软件开发、运营和维护的过程,也就是把工程应用于软件.研究中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。他借鉴传统工程的原理、方法,以提高质量,减少成本为目的。5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景
4、的人替此外一种文化背景的人发明产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应当少而精7、认可不断改善软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期(1)、概念:软件生命周期由软件定义、软件开发和运营维护(也成软件维护)3个时期组成。(2)、内容:1、 问题定义回答“要解决的问题是什么?“,写出关于问题性质、工程目的和工程规模的书面报告2、 可行性分析回答”对于问题是否有行得通的解决办法?“,即探索问题是否值得去解,是否有可行的办法3、 需求分析拟定”
5、为了解决这个问题,目的系统必须做什么“,拟定目的系统必须具有哪些功能,得到需求规格说明书。4、 总体设计回答”概括地说,应当如何实现目的系统?“,拟定程序由哪些模块组成以及模间的关系5、 具体设计回答”应当如何具体地实现这个系统呢?”,拟定实现模块功能所需要的算法与数据结构6、 编码和单元测试写出对的的容易理解、容易维护的程序模块,然后仔细测试每个模块7、 综合测试通过各种类型的测试(及相应的调试)是软件达成预定规定8、 软件维护通过各种必要活动是系统持久地满足用户需求8、生命周期模型(1)、瀑布模型传统瀑布模型特点:1、 阶段间具有顺序性与依赖性2、 推迟实现的观点3、 质量保证的观点瀑布模
6、型优点:1、 可逼迫开发人员使用规范的方法(例如:结构化技术);2、 严格规定每个阶段必须提交的文档;3、 规定每个阶段交出的所有产品都必须通过验证。缺陷:1、“瀑布模型是由文档驱动的”成为重要缺陷合用范围:适合于用户需求明确、完整、无重大变化的软件项目开发。(2)、快速原型模型合用范围:用户不能给出完整、准确的需求说明,或者开发者不能拟定算法的有效性、操作系统的适应性或人机交互的形式等情况。(3)、增量模型特点:1、反复的应用瀑布模型的基本成分和原型模型的迭代特性,每一个线型过程产生一个“增量”的发布或提交,该增量均是一个可运营的产品。 2、 初期的版本实现用户的基本需求,并提供应用户评估的
7、平台。优点:1、 在较短时间内向用户提交可完毕部分工作的产品;2、 逐步增长产品功能可以使用户有较富余的时间学习和适应新产品,从而减少一个全新的软件也许给客户组织带来的冲击;缺陷:1、 软件体系结构必须是开放的;2、 开发人员既要把软件系统看作整体。又要当作可独立的构件,互相矛盾;3、 多个构件并行开发,具有无法集成的风险。(4)、螺旋模型基本思想:使用原型或其他方法来减少风险。合用范围:合用于内部开发大规模软件项目。优点:1、对可选方案和约束条件的强调有助于已有软件的重用,也有助于把软件质量作为软件发的一个重要目的2、减少了过多测试或测试局限性3、维护和开发之间并没有本质区别缺陷:1、 风险
8、驱动,需要相称丰富的风险评估经验和专门知识,否则风险更大2、 随着迭代次数的增长,工作量加大,软件开发成本增长(5)、喷泉模型特点:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,重要用于采用对象技术的软件开发项目。该模型认为软件开发过程自下而上周期的各阶段是互相迭代和无间隙的特性。(6)、Rational统一过程RUP反复一系列周期,每个周期由一个交付给用户的产品结束。每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流(需求、分析、设计、实现、测试)分别迭代。第二章 可行性研究1、 概念(目的)用最小的代价在尽也许短的时间内拟定问题是否可以解决,不是解决问题,而是
9、拟定问题是否值得去解决。2、 可行性研究任务了解客户的规定及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。即对软件开发以后的行动方针提出建议。3、 研究内容(1) 技术可行性 使用现有的技术能实现这个系统吗?(2) 经济可行性这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性系统的操作方式在这个用户组织内行得通吗?(4) 法律可行性新系统开发是否会侵犯法藤、集体或国家利益?4、 数据字典 (1)、内容1、数据流2、数据流分量(即数据元素)3、数据存储4、解决(2)、作用对于数据流图中出现的所有被命名的图形元素在字典中作为
10、一个词条加以定义,使得每一个图形元素都有一个确切的定义。第三章 需求分析1、 需求分析的任务(1) 拟定对系统的综合规定(2) 分析系统的数据规定(3) 导出系统的逻辑模型(4) 修正系统的开发环节2、 获取需求的方法(1) 访谈(2) 面向数据流自顶向下(3) 简易的应用规模说明技术(4) 快速建立软件模型3、 实体-关系图(P63)、层次方框图(P68)和IPO图(P69)4、 结构化分析模型数据流图:描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,是建立功能模型的基础实体-联系图:描绘数据对象及数据对象之间的关系,用于建立数据模型。状态转换图:指明了作为外部事
11、件结果的系统行为。描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。是行为建模的基础第四章 总体设计1、 模块独立性与耦合性(P97)(1) 模块化把程序划提成独立命名且可独立访问的模块,每个模块完毕一个子功能,把这些模块集成起来构成一个整体,可以完毕指定的功能满足用户的需求模块化的优点:1. 使软件结构清楚,容易设计也容易阅读与理解2. 容易测试与调试,提高可靠性3. 提高软件的可修改性4. 有助于软件开发工程的组织管理(2) 模块独立的重要性有效的模块化(即具有独立的模块)的软件比较容易开发出来独立的模块比较容易测试和维护(3) 耦合衡量不同模块彼此间互相依赖(连接)的紧密
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 软件工程 期末 复习 要点 归纳 总结
限制150内