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