《软件工程》课件_第1页
《软件工程》课件_第2页
《软件工程》课件_第3页
《软件工程》课件_第4页
《软件工程》课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程概论课程概述与学习目标1理解软件工程基本概念2掌握需求分析方法学习软件设计技术什么是软件工程?系统方法应用工程化方法开发软件学科体系包含方法、工具和过程实践活动软件产品的开发与维护软件工程的历史与发展11968年"软件工程"术语首次提出21970-80年代结构化方法兴起31990年代面向对象方法流行421世纪敏捷开发方法普及软件危机成本超支项目预算严重不足进度延迟无法按时交付成果质量不佳bug多,可靠性低维护困难系统结构混乱软件工程的基本原则过程清晰化定义明确的开发流程质量为先全过程质量控制文档充分性完整记录开发活动团队协作有效的沟通与合作软件生命周期模型12345需求分析确定系统功能设计架构与详细设计实现编码与单元测试测试验证软件质量维护修复与功能增强瀑布模型需求分析明确用户需求系统设计总体架构设计程序设计详细设计与接口编码转换为计算机代码测试发现并修复缺陷运行维护投入使用并维护增量模型1初始版本核心功能实现2第二增量次要功能添加3第三增量更多功能完善4最终产品全部功能完成增量模型将系统分解为多个增量构建,每个增量提供部分功能。螺旋模型确定目标制定计划1风险分析识别解决方案2开发验证实现与测试3规划下一阶段评审与决策4统一过程模型(UP)1初始阶段范围界定2细化阶段架构建立3构建阶段功能实现4交付阶段部署交付敏捷开发方法概述个体与交互重于过程和工具可工作软件重于详尽文档客户合作重于合同谈判响应变化重于遵循计划Scrum框架Sprint计划会确定冲刺目标与工作每日站会同步进度与障碍Sprint评审演示成果收集反馈Sprint回顾总结经验持续改进需求工程需求获取收集用户需求需求分析理解与建模需求规格说明形成需求文档需求验证确认需求正确性需求管理跟踪需求变更需求获取技术访谈与用户直接交流问卷调查收集大量用户意见现场观察了解实际工作流程头脑风暴集体创意产生需求分析与建模用例模型功能需求分析数据流模型数据处理分析数据模型数据结构分析用例建模元素含义参与者与系统交互的角色用例系统提供的功能关系参与者与用例的联系边界系统范围界定需求规格说明书1引言目的、范围和定义2总体描述产品前景与功能3具体需求详细功能与非功能需求4附录补充说明与图表软件设计概述1具体设计算法与数据结构2详细设计模块与接口规范3架构设计系统结构与组件软件架构设计模块划分系统功能分解接口定义模块间通信规范结构组织模块间关系确定质量属性性能、安全等考量常见软件架构风格不同架构风格适用于不同类型的系统,选择合适的架构风格至关重要。面向对象设计原则单一职责一个类只负责一项职责开放封闭对扩展开放,修改封闭里氏替换子类能替换父类位置依赖倒置依赖抽象而非具体UML图表概述类图序列图活动图用例图状态图其他图UML提供了多种图表类型,用于从不同角度描述系统。类图与对象图类图描述静态类结构及关系对象图展示特定时刻对象实例序列图与协作图序列图强调时间顺序的对象交互协作图强调对象结构关系的交互状态图与活动图状态图对象状态变化与转换活动图业务流程与算法步骤组件图与部署图组件图系统物理组件与依赖部署图系统部署到硬件环境设计模式概述问题情境反复出现的设计挑战1解决方案经过验证的设计经验2效果评估权衡利弊得失3适用场景何时使用该模式4创建型设计模式1单例模式确保类只有一个实例2工厂方法子类决定实例化哪个类3抽象工厂创建相关对象家族4建造者模式分步骤构建复杂对象5原型模式通过复制创建对象结构型设计模式适配器模式接口转换满足需求装饰器模式动态添加职责功能代理模式控制对对象的访问组合模式树形结构统一处理行为型设计模式观察者模式对象状态变化通知策略模式算法族可互换使用命令模式请求封装为对象状态模式状态改变行为变化软件实现1编码规范代码风格与命名约定2代码审查同行评审保证质量3集成策略将代码合并入系统4构建工具自动化编译与打包编码规范与代码审查编码规范一致的命名与格式注释与文档规则模块化与复杂度控制代码审查发现潜在缺陷确保遵循规范知识共享与学习版本控制创建分支独立开发新功能提交更改保存代码修改记录代码评审审查合并前的代码合并分支集成到主干分支发布版本标记正式发布点持续集成与持续交付代码提交开发人员提交代码1自动构建编译、测试自动化2部署测试部署到测试环境3持续反馈及时发现问题4软件测试概述1验收测试满足用户需求2系统测试整体功能验证3集成测试模块间接口测试4单元测试独立模块测试测试类型与测试级别不同类型的测试关注软件不同的质量属性。黑盒测试技术等价类划分将输入分为有效无效类边界值分析测试边界条件值决策表法条件组合测试法状态转换测试基于状态变化测试白盒测试技术语句覆盖执行所有语句分支覆盖测试所有分支路径覆盖执行所有可能路径条件覆盖测试所有条件取值单元测试测试框架JUnit、NUnit、PyTest等测试驱动开发先写测试后实现模拟对象依赖隔离测试集成测试自顶向下从主模块向子模块测试自底向上从底层模块向上测试三明治策略结合两种方法大爆炸策略所有模块一次集成系统测试1功能测试验证功能实现2性能测试测试响应时间与资源占用3安全测试验证安全机制有效性4可靠性测试测试系统稳定性验收测试1α测试开发环境用户测试2β测试真实环境用户测试3业务场景测试基于用例的端到端测试4合同验收符合合同规定功能测试用例设计要素描述标识符唯一的测试用例ID前置条件测试执行的初始状态输入步骤测试具体操作步骤期望结果正确执行后的结果实际结果测试执行后的结果通过/失败测试结果的判定测试计划与测试报告测试计划测试范围与策略资源分配与进度风险与应对措施测试报告测试执行结果缺陷统计分析质量评估结论软件维护原因修复错误,适应变化活动分析问题,修改代码挑战理解遗留代码,控制风险意义延长软件生命,保持价值软件维护类型纠错性维护适应性维护完善性维护预防性维护完善性维护(增加新功能)占据了软件维护工作的大部分。软件重构识别问题发现代码异味1选择技术确定重构方法2实施重构小步骤逐步改进3测试验证确保行为一致4软件项目管理范围管理界定项目边界1进度管理计划控制时间2成本管理预算与成本控制3质量管理确保符合要求4风险管理识别应对风险5项目范围管理需求收集了解客户期望范围定义明确包含排除内容工作分解将项目分解为工作包范围确认客户验收可交付成果范围控制管理范围变更请求项目进度管理项目进度管理工具帮助团队规划与跟踪项目时间线。项目成本管理成本估算预测项目所需资金成本预算分配资金到工作包成本控制监控成本变化挣值分析评估项目进度与成本项目质量管理质量规划制定质量标准与方法1质量保证审计与改进过程2质量控制检查与测试产品3质量改进持续改进质量4项目风险管理1风险识别找出潜在风险2风险分析评估影响与概率3风险应对制定应对策略4风险监控跟踪风险状态软件配置管理版本控制管理代码与文档版本变更控制审批与实施变更构建管理自动化构建与部署发布管理控制软件发布过程软件度量与估算LOC代码行数FP功能点CC圈复杂度DRE缺陷移除效率软件质量保证同行评审发现早期缺陷测试活动验证软件质量质量标准遵循最佳实践质量度量量化质量属性软件过程改进1CMMI5级优化级2CMMI4级量化管理级3C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论