软件工程
来源:互联网 发布:sql select语句 例题 编辑:程序博客网 时间:2024/06/07 14:31
软件工程,其实也没什么可学的。说来说去,就一点,就是制定一个开发软件的规范,大家一块来执行它。
流程:
1先是可行性研究。
可行性研究:经济可行性,技术可行性,操作可行性,法律可行性,时间可行性。
可行性研究通过了,说明这个软件可以做,并且可以盈利,再进行下一项。否则,这个项目直接宣告结束。
2.需求分析
这点非常重要,因为需求如有错误,直接导致软件制作出来就是错的。而且那时候就很难再改动了。所以,需求分析重中之重。
3.概要设计
这个就和打仗一样,先从宏观上去掌控整个软件,具有战略意义。
4.详细设计
开始具体到接口,算法,模块功能等
5界面设计
界面要美观简洁,符合用户使用习惯。
6数据库设计
具体有几张表,表里有哪些字段,字段长度,有无特殊规则,都写清楚。
7.测试计划
测试主要分为黑白盒测试,测试用例要求能最大覆盖各个逻辑的走向。
8测试分析
根据测试结果来分析系统的问题。
9.开发总结
总结开发这个项目中遇到的问题,以及如何解决的这些问题。总结经验,为下一次开发积累实战经验。
10操作手册
具体讲了如何操作这个软件
11用户手册
用户使用说明书,跟操作手册差不多,更详细些。
具体的小知识点:
1、软件独立性指标:耦合(相反),内聚(对应)
耦合越低,模块独立性越强;内聚越高,模块独立性越强)(高内聚低耦合)
1) 耦合:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内部耦合
结论:尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不用内部耦合
(2)内聚:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,巧合内聚
结论:尽量使用功能内聚。
2、软件模块结构的改进:
(1)模块功能的完善化
(2)消除重复功能,改善软件结构
(3)模块的作用范围应在控制范围之内
(4)尽可能减少高扇出结构,随着深度增大扇入
(5)避免或减少使用病态联接
(6)模块的大小要适中
(7)设计功能可预测的模块,但要避免过分受限制的模块
(8)软件包应满足设计约束和可移植性
3、度量程序复杂性的方法
(1)代码行度量法
(2)McCabe度量法
4、程序编码总原则
(1)先求正确后求快
(2)先求清晰后求快
(3)求快不忘保持程序正确
(4)保持程序整洁以求快
(5)不要因效率而牺牲清晰
5、软件测试
概念: 软件测试是对软件计划,软件设计,软件编码进行查错和纠错的活动
目标:
(1)测试是为了发现程序中的错误而执行程序的过程
(2)一个好的测试用例在于能发现至今未发现的错误
(3)一个成功的测试是发现了至今未发现的错误的测试
原则:
(1) 测试前要认定被测试软件有错,不要认为软件没有错
(2)要预先确定被测试软件的测试结构
(3)要尽量避免测试自己编写的程序
(4)测试要兼顾合理输入和不合理输入数据
(5)测试要以软件需求规格说明书为标准
(6)要明确找到的新错与已找到的旧错成正比
(7)测试是相对的,不能穷尽所有的测试,要根据人力物力安排测试,并选择好测试用例与测试方法
(8)测试用例留作测试报告与以后的反复测试用,重新验证纠错的程序是否有错
(9) 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件,测试用例应由测试输入数据和对应的预期输出结果这俩部分组成
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程
- 软件工程!!
- 软件工程
- 软件工程
- 软件工程
- MySQL Explain Type列
- 机器学习基石-06-3-Bounding Function- Inductive
- redis之数据结构
- 链表
- Spring Cloud学习-服务注册与发现
- 软件工程
- 综述论文:当前深度神经网络模型压缩和加速方法速览
- JavaWeb之注册、登录、访问
- jmeter测试工具应用场景【测试帮日记公开课】
- 使用eval转换json对象时为什么外边加括号?
- SPI 的DMA接收
- HDU1495 非常可乐
- LintCode解题记录 动态规划专题 Part1 17.11.4
- 关于仿射矩阵的推导过程