您好,欢迎访问三七文档
第一章1什么是软件?(指令,数据文档)*·软件是设计开发的,而不是传统意义上的生产制造的。·软件不会“磨损”。·虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。2软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。3Hooker的一般原则1:存在价值2:保持简洁3:保持愿景4:关注使用者5:面向未来6:计划复用7:认真思考4软件工程的层次图包括工具、方法、过程、质量关注点第二章1通用框架活动有哪些?沟通,策划,建模,构建,部署2通用过程模型有(瀑布模型、原型模型、螺旋模型、增量模型、喷泉模型、统一过程)3瀑布模型的优点:1设置里程碑明确每阶段任务与目标;2为每个阶段制定开发计划,进行成本预算,组织人员开发;3通过阶段评审,将开发过程纳入正轨;4强迫开发人员用规范方法。瀑布模型的缺点:1缺乏灵活性,不适应用户需求。2开始的小错误被逐级放大,易导致软件产品报废;3返回上一级的开发需要高昂代价;4随着软件规模和复杂性的增加,软件产品成功率大幅下降。4螺旋模型优缺点优点1支持用户需求的动态变化。有良好的可扩充性,可修改性和可维护性,每次维护过程只是沿螺旋模型继续多走一两个周期。2易于用户和开发人员共同理解需求,可作为继续开发的基础,方便了用户参与所有关键决策。3.方便了项目管理人员及时调整管理决策,可降低开发风险。4支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。缺点1若每次迭代的效率不高,使迭代次数过多,会增加成本并推迟提交时间;2使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。第三章1敏捷软件开发的宣言•个体和交互胜过过程和工具•可以工作的软件胜过面面俱到的文档•响应变化胜过遵循计划•客户合作胜过合同谈判核心理念:适应和以人为本2敏捷开发敏捷开发(AgileDevelopment)是一种以人为核心、迭代、循序渐进的开发方法。子项目特征-各个子项目的成果都经过测试-具备集成和可运行的特征-小项目相互联系3XP的“Spike解决方案”(在某个故事设计中碰到困难时立即建立此部分设计的可执行原型,实现并评估设计型,从而在真正的实现开始时降低风险,并对可能存在设计问题的故事确认其最初的估计)4敏捷过程模型有(ScrumXPFDD敏捷建模)第四章1需求工程的任务有(起始、获取、细化、协商、规格说明、确认、需求管理)2质量功能部署有(常规需求、期望需求、兴奋需求)3需求模型的元素有1基于场景的元素功能说明——处理软件功能的描述用例——描述“参与者”和系统之间的交互作用2基于类的元素由场景暗示3行为元素状态图4面向数据流元素数据流图第五章1需求分析的元素有(基于场景的模型,类模型,行为模型,流模型)2基于类的模型的元素包括(类和对象、属性、操作、CRC模型、协作图和包。)3什么是CRC?CRC模型实际上是表示类的标准索引卡的集合。这些卡片分为三部分,顶部写类名,卡片主体左侧部分列出类的职责,右侧部分列出类的协作者第六章1软件设计宣言是良好的软件设计应该展示:坚固:程序应该展示不含任何妨碍其功能的缺陷。适用:程序应该符合开发的目标。愉悦:使用程序的体验应是愉快的2从技术角度,软件设计有(接口设计、构建设计、体系结构设计、数据设计)第七章1软件体系结构风格1以数据为中心的体系结构2数据流体系结构3调用和返回体系结构4面向对象体系结构5层次体结构2体系结构设计的过程1.收集场景。2.引出需求、约束和环境描述。3.描述那些已经被选择用于解决场景和需求的体系结构风格/模式。•模块视图•过程视图•数据流视图4.通过单独地考虑每个属性来评估质量属性。5.针对特定的体系结构风格,确定质量属性对各种体系结构属性的敏感性。6.使用第5步进行的敏感性分析鉴定候选体系结构(在第3步开发的)。第八章1什么是构件?构建是计算机软件中的一个模块化的构造块2构件的基本设计原则有哪些?基本设计原则1开闭原则(OCP)2Liskov替换原则(LSP)。3依赖倒置原则(DIP)。4接口分离原则(ISP)。5发布复用等价性原则(REP)。6共同封装原则(CCP)。7共同复用原则(CRP).。基本设计原则(续)8REP9CCP10CRP共同复用原则第九章1软件测试策略有哪些?(系统测试、确认测试、集成测试、单元测试)2什么是集成测试策略?(集成测试是构建软件体系结果的系统化技术,同时也是进行一些旨在发现与接口相关的错误的测试,其目标是利用已通过单元测试的构建建立设计中描述的程序结构)第十章1什么是白盒测试?白盒测试方法有哪些?也被称为玻璃盒测试或结构化测试,一种测试用例设计方法,利用作为构件级设计的一部分所描述的控制结构来生成测试用例1基本路径测试2控制结构测试2什么是黑盒测试?黑盒测试方法有哪些?也称行为测试或功能测试,侧重软件的功能需求。使软件工程师能设计出可以测试程序所有功能需求的输入条件集。黑盒测试并不是白盒测试的替代品,是作为发现其他类型错误的辅助方法。1等价类划分2边界值分析3基于模型的测试第十一章1什么是软件质量?在一定程度上应用有效的软件过程,创造有用的产品,为生产者和使用者提供明显的价值。2什么是软件质量困境?1如果生产了一个存在严重质量问题的软件系统,你将受到损失,因为没有想起购买。2另一方面,如果你花费无限的时间、极大的工作量和高额的资金来开发一个绝对完美的软件,那么完成该软件将花费很长的时间,生产成本是及其高昂的,以至于破产。3要么错过了市场机会,要么几乎耗尽所有的资源。4所以企业界的人们努力达到奇妙的中间状态:一方面,产品要足够好,不会立即被抛弃,比如在评估期;另一方面,又不是那么完美,不需要花费太长时间和太多成本。
本文标题:软件工程(1)
链接地址:https://www.777doc.com/doc-6838826 .html