为什么这么说呢?我是学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年由日本日立公司发明以来,已经得到一定程度的推广。它用二维树形结构的图表示程序的控制流,将这种图转换为程序代码比较容易。

软件设计难道不是敲代码么相关推荐

  1. 从零开始,在pycharm中使用pyqt5和pyqt5-tools和QT Designer设计界面,不用敲代码

    从零开始,在pycharm中使用pyqt5和pyqt5-tools和QT Designer设计界面,不用敲代码 结果功能展示: 根据设计界面自动生成的python代码: from PyQt5 impo ...

  2. 软件7大设计原则(附案例所敲代码)

    目录 1 .开闭原则 2.单一职责原则 3.里氏替换原则 3.1 使用前 3.1.使用后 4.依赖倒转原则 4.1.使用前 4.2 .使用后 5.接口隔离原则 5.1.使用前 5.2.使用后 6.迪米 ...

  3. 软件开发者只要会敲代码就可以了?

    软件开发工程师的任务=敲代码,如果你是这么想的,那证明你还是太年轻了. 作者 | Eduards Sizovs 译者 | 弯月 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 在我开始做 ...

  4. 软件设计中,何为重构?

    前言: 我们做程序员这一行的哈,说白了就是用机器能识别的语言跟机器打交道,但是经常会出现的一种情况是,我们所写的代码只有自己和机器能看得懂,其他人看懂有一定的困难性,甚至有时候过了一段时间连自己都看不 ...

  5. 由学习《软件设计重构》所想到的代码review(二)

    前言 对于一个程序员来讲如何来最直接的来衡量他的技术能力和产出呢?我想最直观的作法是看他的代码编写能力,就拿我经常接触的一些程序员来看,他们买了很多技术重构类书籍,但是看完后代码编写能力并没有显著提高 ...

  6. 软件设计领域没有银弹,但代码大师MaxKanat-Alexander的建议绝对能给你带来启发...

    导读: 如何让简约设计始终贯穿在编程工作中,以及如何在编程工作中取得成功? 复杂的软件设计有哪些特征--如何构建杰出软件? 程序员为何会感到力不从心,应该如何持续改善? 成为明星程序员的秘密是什么? ...

  7. 程序员一定要会的软件项目管理评估方案,不做只会敲代码的码农!(建议收藏)

    软件项目管理是通过计划.组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程,是在软件开发过程中,对开发工作进行全方位评估的有效措施. 目录 软件项目管理 软件规模评估 一.代码行技 ...

  8. STC15单片机-整合代码,完成软件设计

    整合代码,完成软件设计 按产品思维开发,是先把模块的程序编写好,比如按键.串口,RS-485.WIFI等,这样就会有很多.c源文件和.h头文件,最后再按照程序流程图将功能组合在一起,就形成了一个完整的 ...

  9. 软件设计原则SOLID+组合聚合+迪米特原则(附代码讲解)

    SOLID是五大设计原则的首字母简写,最早出现于出自Robert Martin(罗伯特. 马丁)的<架构整洁之道>第三章设计原则.他们分别是 single Responsibility P ...

最新文章

  1. Linux USB 驱动开发(一)—— USB设备基础概念
  2. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)
  3. 在ISA 2006标准版上定制带宽和限制流量(测试)
  4. Flink+Hologres亿级用户实时UV精确去重最佳实践
  5. 如何在SAP C4C里使用ABSL消费第三方Restful API
  6. Elasticsearch嵌套查询
  7. 什么叫组网_家庭wifi,如何组网最合适
  8. 卸载Android虚拟机里的项目(cmd)
  9. pytorch的图像通道变换,torchvision.transforms.Compose,T.ToTensor
  10. bat中的[%~dp0]使用
  11. react typescript 父组件调用子组件
  12. Cinnamon Applet 入门
  13. 空间轨迹分析与应用(前言)Computing with Spatial Trajectories
  14. Android P 分屏显示
  15. ROS1/2 机器人编程实践汇总 kinetic/melodic/noetic foxy/galactic/humble
  16. 力扣 2090. 半径为 k 的子数组平均值
  17. 4转自 饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.25.97]
  18. 哈工大2018秋高级语言程序设计课程大作业
  19. 京东XDD机器人图文详细教程-优雅草科技老八
  20. NodeJs 学习资料

热门文章

  1. 原文 葛底斯堡宣言_葛底斯堡演说中英对照全文
  2. 春招2019华为实习生面试经历
  3. python日历教程_利用Python自动化生成逼格高的日历!简单又实用
  4. 4G DTU在电力远程自动抄表中的应用
  5. es文件管理连接ftp服务器,es文件连接ftp服务器
  6. ipad分屏功能怎么开启_Soul怎么设置阅后即焚 图片即焚功能开启方法
  7. 火山视窗opencv 火山配置opencv方法
  8. 三菱FX3U通讯(RTU)四台变频器的通讯程序
  9. 数据库难还是学java难,mysql数据库比java难吗,女生学数据库难吗
  10. JAVA毕业设计固定资产管理系统计算机源码+lw文档+系统+调试部署+数据库