软件工程
2016-12-15 20:00:07 0 举报
AI智能生成
软件工程是一门涉及计算机科学、数学和工程学的跨学科领域,旨在创建和维护高质量的软件系统。它涵盖了从需求分析、设计、编码、测试到部署和维护的整个软件开发生命周期。软件工程师需要具备良好的编程技能、问题解决能力和团队合作精神,以便在不断变化的技术环境中开发出可靠、可扩展和用户友好的软件解决方案。此外,软件工程还关注提高开发过程的效率和质量,通过采用敏捷开发方法、自动化测试工具和持续集成技术等手段,以降低开发成本并确保项目按时完成。总之,软件工程是一门致力于创造创新、高效和可靠的软件产品的学科。
作者其他创作
大纲/内容
可行性研究
任务
对问题的定义,初步确定问题的规模和目标,问题定义后,要导出系统的逻辑模型。然后从系统的逻辑模型出发,选择若干供选择的主要系统方案。
解决
技术可行性研究
经济可行性研究
法律可行性研究
开发方案选择性研究
方法
系统流程图
符号
数据流图
符号
步骤
画系统的输入和输出
画系统内部(自顶向下、由外向内)
数据字典
符号
需求分析
目的
准确理解用户的要求,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约的过程。
原则
把复杂问题按功能分解细化
清晰表达和理解问题的数据域和功能域
建立模型
任务
问题明确定义
功能需求
性能需求
环境需求
界面需求
可靠性、安全性、可移植性和可维护性等方面需求
导出软件的逻辑模型
编写文档
需求说明书
用户手册
测试计划
开发计划
难点
需求易变性
问题复杂性
交流障碍
不完备性和不一致性
方法
实体-联系图 ER图
数据对象
数据对象可以是外部实体、事物、行为、事件、角色、单位、地点、结构等。
矩形表示
属性
圆角矩形表示
联系
菱形表示
1:1
1:N
M :N
状态转换图
层次图
详细设计
任务
方法
程序流程图
盒图
PAD图
判定表
判定树
软件质量
定义
度量
MeCabe
软件测试
测试方法
动态测试
黑盒测试
等价划分
边界值分析
错误推测
因果图
综合策略
白盒测试
逻辑覆盖
语句覆盖
使程序中每个语句至少执行一次
覆盖率弱
因为没有判定每个条件取不同值的情况
判定覆盖
每个语句至少执行一次
每个判定分支至少执行一次
条件覆盖
每个语句至少执行一次
每个条件都取可能的结果
判定\条件覆盖
使得每个条件都取到各种可能
条件组合覆盖
使每个表达式中条件的可能组合都至少出现一次
路径覆盖
使程序每条可能的路径都至少执行一次
静态测试
人工测试
辅助静态分析
测试过程
单元测试
模块接口
局部数据结构
重要执行路径
错误处理
边界条件
集成测试
自顶向下测试
自底向上测试
区别
确认测试
性能
需求确认
功能确认
调试(测试后工作)
简单调试
插入打印语句
运行部分程序
归纳法调试
分析程序有关数据:做了什么,做错了什么
组织数据
提出假设
证明假设
演绎法调试
列出所有可能的原因
排除不恰当假设
精化剩余假设
证明假设
回溯法
从问题地方开始沿着程序控制流回溯分析
软件维护
定义
改正错误或满足新需求
特点
结构化维护与非结构化(文档少)维护差别大
维护代价高
维护问题多
理解他人代码
没有文档
设计问题
维护过程
维护组织
维护报告
审核评价维护活动
软件危机
定义
表现
原因
解决
软件工程
定义
将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程
基本原理
分阶段生命周期计划严格管理
坚持进行阶段评审
实行严格产品控制(不应随便改变需求)
采用现代程序设计技术
结果应能清楚审查
开发人员少而精
承认不断改进软件工程实践的必要性
生命周期
问题定义
可行性研究
需求分析
总体设计
详细设计
编码和单元测试
综合测试
软件维护
生命周期模型
定义
指开发软件项目的总体过程思路。
模型
瀑布模型
将软件生命周期各活动规定为依线性顺序联接的若干阶段的模型
特点
阶段间具有顺序性和依赖性
推迟实现的观点
质量保证的观点
优点
严格按照生命周期各个阶段开发
降低软件复杂性
促进软件开发工程化
缺点
缺乏灵活性
无法解决需求不明确问题
原形模型
借助一些软件开发工具或环境尽可能快地构造一个实际系统的简化模型
特点
供开发人员和用户交流,便于准确获得用户需求
可以避免瀑布模型冗长的开发过程中看不见产品雏形
模型图
增量模型
模型图
螺旋模型
增加了风险分析的原型模型
模型图
喷泉模型
模型图
总体设计
定义
总体设计
软件系统结构设计
数据结构和数据库设计
网络系统设计
设计文档
评审
设计基本原理
模块化
抽象
逐步求精
信息隐藏和局部化
模块独立
耦合
数据耦合
低耦合
控制耦合
特征耦合
被调用模块只需参数的一部分的情况
公共环境耦合
两个或多个模块通过一个公共数据环境相互作用
内容耦合
一个模块访问另一个模块内部数据
原则
尽量使用数据耦合,少用控制耦合和特征耦合,限制公共耦合的范围,不用内容耦合
内聚
低内聚
偶然内聚
任务(代码)彼此关系松散
逻辑内聚
任务在逻辑上相同相似
时间内聚
任务在一段时间内执行
如初始化
中内聚
过程内聚
模块内处理元素是相关的,而且必须以特定次序执行
通信内聚
所有元素使用同一个数据结构
高内聚
顺序内聚
任务处理必须顺序执行
功能内聚
完成单一功能
面向对象
简介
什么是对象
将对象有效的集成在一起,这些对象将数据结构和行为集成在一起
设计原则
(同总体设计)
特点
(对象是具有某些特征的事物)
事物的静态特征用属性表示
事物的动态特征用服务,行为表示
对象的属性和服务结合一体,对外屏蔽其内部的细节(封装)
具有相同属性的对象归为一类,类是这些对象的抽象,对象是类的实例
继承 (一般-特殊结构)
组合 (整体-部分结构)
UML 统一建模语言
类图
关系
关联
普通关联
限定关联
聚集
共享聚集
部分方可以参与多个整体方的构成
组合聚集
泛化
普通泛化
继承
受限泛化
附加约束条件
依赖
B调用A
细化
用例图
描述的是外部行为者所理解的系统功能
元素
系统
行为者
用例与用例之间的关系
扩展
向一个用例中添加一些动作后构成另一个用例
使用
一个用例使用另一个用例
状态图
状态
初态 (1个、实心圆)
终态 (0或多个,同心圆)
中间状态 (圆角矩形)
事件
符号
0 条评论
下一页