到此,软工视频算是了解了个大概了,就以此篇文章作为在CSDN上正式写博的一个开篇吧。
一、宏观导图:
导图思路:由于视频中的内容丰富,思维跳跃性强,我从软件开发过程的角度进行了一个简单的总结。首先是全局概览,了解软件工程的产生和发展,贯穿软件开发始终的项目管理,以及软件过程即软件的生存周期。然后,分别从需求分析、设计、验证的角度归纳,开发的过程无非就是讲到了两种软件工程方法:结构化的开发和面向对象的开发。注意:其中验证这个环节在视频中是质量与质量管理,主要讲的是质量与软件测试。
二、窥细节
1、需求分析
话说是软件项目中最难,也是非常重要的一个阶段。原因有以下三类,第一,客户需求表达不清;第二,需求经常变动;第三,分析人员或者客户在相互理解上存在误区。
任务和目的:确定系统“做什么”
准则:
(1)对于用的每个需求要知道为什么?并判断其理由是否充足
(2)关注做什么而不是怎么做
(3)分析隐含需求
层次:
(1)业务需求 (2)系统需求 (3)用户需求
过程:(需求管理贯穿始终)
2、设计
作为开发阶段的第一步,其实就是应用各种技术和原理来定义一个程序或系统的物理实现过程。逻辑性很强!
目标:
(1)易维护易升级
(2)可移植性强
(3)适应性强
任务:明确系统或程序怎么做的问题?
过程:第一步,总体结构设计;第二步,详细设计;第三步,产生系统设计说明书(概要设计、详细设计)。
原则:
(1)模块化
(2)抽象与逐步取精
(3)信息隐蔽与局部化
(4)模块独立:内聚性、耦合性
3、验证
(这在视频中属于质量与质量保证章节的内容,主要是讲软件测试)
目标:找错误
原则:
(1)测试无法证明程序的正确性
(2)精心准备测试用例
(3)第三方执行
(4)分步骤进行
过程:(产生测试说明书)
单元测——集成测——确认测(有效性)——系统测
4、两种软件工程开发方法
(1)结构化:(现有开发方法中最成熟、应用最广)
思想特点:自顶向下、逐层分解。
内容:分析、设计、实现、测试、维护
优点:易于将复杂问题简单化,然后各个击破。
缺点:硬性的将数据和处理数据的操作割裂开来,不符合人类认识现实世界的规律,也难以更加清晰地描述现实问题。
(2)面向对象:(以数据或信息为主线,将数据和行为结合,以解决结构化方法存在的问题!
思想特点:抽象、封装、继承、多态与重载。
内容:分析、设计、实现、测试、维护
优点:
(1)与人类思维方式一致,有利于分析理解问题域和系统任务,方便与用户交流。
(2)保持了概念与模型表示的一致性,有利于开发的迭代进行
(3)稳定性强、可维护性好!
(4)复用性强,具有普适性
缺点:理论体系比较复杂,想要深入掌握并不轻松。
当然除了视频中讲到的这两种,还有一种原型化开发方法也是比较常用的。要问哪个更好,我觉得没有更好一说,只有更合适一说。这个得根据实际情况出发选择合适的开发方法。比如:在开发复杂的大型的、动态的系统来说,面向对象更合适些;在中小型的系统开发中,结构化可能更加便捷些;在需求不明确时,原型化更合适。
小结:通过自己的分类,更加清晰了整个软工视频的宏观内容架构。对于一些细节并没有做过多的阐述,在第二阶段的织网中将逐步完善!敬请期待!