软件工程

来源:互联网 发布: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) 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件,测试用例应由测试输入数据和对应的预期输出结果这俩部分组成

 

 

原创粉丝点击