为什么这么说呢?我是学Java的,不过有点井底之蛙 了。以前一直以为敲代码就是软件开发的全部。
了解了软件工程的知识才发现自己是一只在井底的青蛙。
学习软件工程的课程,首先可以帮助我们了解软件开发的流程,以及细节,甚至是全过程。
然而并不是我以为的那个样子。
软件工程导论中一般把软件的开发分为八个阶段:- 1.问题定义
- 2.可行性研究
- 3.需求分析
- 4.总体设计(概要设计)
- 5.详细设计
- 6.编码和单元测试
- 7.综合测试
- 8.软件维护
可以看到敲代码只是一个环节而已,除了敲代码之外真的还有很多。
对于不同规模的开发又有不同的细节再看一下软件工程的各个阶段所用到的图
系统流程图:
案例
数据流图
登录系统案例
ER图
E-R图为实体-联系(Entity-Relation)图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。 构成E-R图的基本要素是实体型、属性和联系,其表示方法为: · 实体型(Entity):用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。 · 属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。
· 联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。 比如老师给学生授课存在授课关系,学生选课存在选课关系。
如下图所示:是一个班级、学生、课程、教师之间的ER图:
PAD图
PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1974年由日本日立公司发明以来,已经得到一定程度的推广。它用二维树形结构的图表示程序的控制流,将这种图转换为程序代码比较容易。