福州大学14年软件工程复习材料归纳1-8章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章软件和软件工程
1. 定义软件:(1).指令的集合,通过执行这些指令可以满足预期的
特征、功能和性能需求(2).数据结构,使得程序可以合理利用信息(3).软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用
2. 软硬件不同的特性:(1).软件是设计开发的,而不是传统意义上
生产制造的(2).软件不会磨损(3).虽然整个工业向着基于构建的构造模式发展,然而大多数软件仍是根据实际的顾客定制的
3. 软件应用领域:系统软件,应用软件,工程、科学软件,嵌入式
软件,产品线软件,Web应用软件,人工智能软件
4. 遗留软件原因:在几十年前开发,它们不断被修改以满足上也需
要和计算平台的变化。这类系统的繁衍使得大型机构十分头疼,因为它们的维护代价高昂且系统演化风险较高。
5. 遗留软件演化原因:(1).软件需要进行适应性调整,从而可以满
足新的计算环境或者技术需求(2).软件必须升级以满足新的商业需求(3).软件必须扩展使之具有与更多新的系统和数据库互操作能力 (4).软件构架必须进行改建使之能适应多样化的网络环境6. 软件工程定义:(1).将系统化的、规范的、可量化的方法应用于
软件的开发、运行和维护,即将工程的方法应用于软件(2).在(1)中所述方法的研究
7. 软件过程是一种层次化的技术。根基:质量关注点;框架:过
程;解决方法:方法;支持:工具
8. 软件过程框架活动:工作产品构建时所执行的一系列活动动作任
务的集合:1.沟通 2.策划3.建模 4.构建 5.部署(可迭代应用)9. 利益相关者:可在项目成功中分享利益的人,包括业务经理、最
终用户、软件工程师、支持人员等
10. 软件工程实践的精髓:理解问题(沟通和分析),计划解决方案
(建模和软件设计),实施计划(代码生成),检查结果(测试和质量保证)。
11. 软件工程整体时间原则:存在价值,保持简洁,保持愿景,关注
使用者,面向未来,计划复用,认真思考
第2章软件过程
1. 过程模式:描述了软件工程工作中遇到的过程相关的问题、明
确了问题环境并给出了针对该问题的一种或集中可证明的解决方案。即提供了一个模板
2. 几种惯用过程模型:
a)
瀑
布
模型:经典生命周期,提出一种系统的顺序的软件开发方法,从用户需求规格说明开始,通过计划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持(以及V模型)
缺点:1.实际项目很少遵守瀑布模型提出的顺序 2.客户难以描述清楚需求 3.发布等待时间长
b) 增量过程模型:随着时间的推移,增量模型在每个阶段运用线性序列。每个线性序列以一种演化过程流声场增量类似的方法生产出一个软件的可交付增量。
优点:人员需求少,规避技术风险等
c) 演化过程模型:随着时间推移演化,是迭代的过程模型
i. 原型开发:开始于沟通,与利益相关者会晤,定义软件整
体目标,明确抑制需求,迅速策划一个原型开发迭代并进
行建模(快速设计)。之后由利益相关者反馈后细化需求
不断调整。
优点:快速产生可执行的程序
缺点:1.利益相关者未察觉到软件粗糙往往陷入失败2.使用这种手段使得不完美的选择成为系统组成部分
避免:所有利益相关者必须承认原型是为定义需求服务的,实际的软件系统是以质量为第一目标开发的
ii. 螺旋模型:结合了原型的迭代性质和瀑布模型的系统性和可控性特点,具有快速开发越来越完善软件版本的潜力。
适用:开发大型系统和软件的理想方法。
优点:降低风险,能在风险变为问题之前化解风险
去欸但:以来大量的风险评估专家来保证成功
d) 协同开发模型:允许软件团队表述任何模型中的迭代和并发元素
适用:所有类型的软件开发,提供精确的项目当前状态图。
3. UML统一建模语言,包含了大量用于面向对象系统建模和开发
的符号。
4. 统一过程:
a) 起始阶段:客户沟通和策划活动
b) 细化阶段:沟通和通用过程模型的建模活动
c) 构建阶段:与通用软件过程中的郭建活动相同
d) 转换阶段:包括通用构建活动的后期阶段以及通用部署活动的第一部分。软件提交给最终用户进行Beta测试。
e) 生产阶段:与通用过程的部署活动一致
第3章敏捷开发
1. 敏捷:鼓励能使沟通更便利的团队结构和协作态度,强调可运
行软件的快速交付而不那么看重中间产品。
2. 极限编程(XP)五个要素:沟通、简明、反馈、鼓励和尊重
3. 极限编程过程:策划,设计,编码,测试
4. 工业极限编程(IXP) 六个新实践:准备评估、项目社区、项目承
租、测试驱动管理、回顾、持续学习
5. 对XP的批评意见:需求易变,矛盾的客户需求,需求的非正规
表示,正规设计的缺乏
6. 其他敏捷模型
a) 自适应软件开发ASD:思考->协作->学习(循环)->发布
b) Scrum:需求、分析、设计、演化、交付
c) 动态系统开发、Crystal、特征驱动开发、精益软件开发、敏捷建模、敏捷统一过程
第4章理解需求
1. 需求工程:致力于不断理解需求的大量任务和技术。从软件过
程的角度来看,需求工程是一个软件工程动作,开始于沟通活动并持续到建模活动。必须适应于过程、项目、产品和人员工作的需要
2. 质量功能部署:将客户要求转换成软件技术需求的质量管理技