大连理工大学软件工程期末考试复习
一、软件工程概述
- 软件工程主要包括哪些内容?
软件工程体系
开发过程
软件需求
软件设计
软件构造
软件测试
软件维护
支持过程
软件配置管理
软件工程过程
软件工程工具和方法
软件度量
1.统一建模语言UML构成:
–用例图,表示系统和使用者或其它外部系统之间的交互,有助于将需求映射到系统。
–活动图,表示系统中顺序/并行结构
–类图,用于表示类&接口之间的关系
–对象图,用于表示类途中定义的类的对象实例
–时序图,用于表示重要对象之间的互动顺序
–状态图,用于表示整个生命周期中单个对象状态
–组件图(通信图,状态图),表示系统内重要组件和彼此交互的接口
–组织结构图(交互概况图,组件图,包图),表示类/组件内部
–部署图,表示系统如何部署到真实世界的图
2.软件开发方法:
面向对象优于传统方法的根本原因是什么?
-原理:面向对象是对现实世界中事物的稳定抽象
-特点:面向对象概念和表示方法的一致性,降低复杂性,增加可理解性,促进软件重用
二、软件开发过程
1.软件开发各阶段活动任务
1)可行性分析与开发计划(技术可行性,经济可行性,社会可行性)
2)需求分析:对需求变更管理;包括功能性需求和非功能性需求;输出需求规格说明书文档
3)软件设计:包括概要设计和详细设计
4)程序编码
5)软件测试:流程{单元测试->集成测试->系统测试};测试方法{黑盒,白盒}
6)软件维护:改正性维护,适应性维护,完善性维护,预防性维护
2.软件开发生命周期模型
1) 瀑布模型{文档驱动,推迟实现,质量保证}
2) 快速原型模型{用户&开发者的桥梁}
3) 喷泉模型{迭代,无缝,线性过程}–迭代是OO开发过程中主要特征
4) SCRUM{Scrum注重过程,XP注重实践}
- Devops:
横向打通架构,开发,管理,运维等部分,让大家的运行环境一致
纵向打通开发的各个阶段(全生命周期),实现跨工具链的自动化
三、需求分析
-
用户需求和系统需求
客户为主导定制的需求文档是用户业务需求
开发者为主导定制打需求文档是系统需求
=>系统需求是对用户需求的细化和完善;
=>系统需求阅读对象是开发者,用户需求阅读对象是委托方/客户
=>系统需求是用户需求的开始,用户需求要得到委托方确认 -
涉众
和系统目标相关的一切人和物,有最终用户,投资者,业务提出者,业务管理者,业务执行者,第三方,开发方 -
系统目标&系统功能确定
涉众提供系统目标,系统目标影响对涉众的取舍。目标定义是软件开发的纲领,用户需求只有和目标进行关联,才有实际意义。
- 用例图:
表示系统和使用者或其它外部系统之间的交互,