学习能力体现在能尽快接受新的知识,顺应变化,学为所用。上《软件工程导论》这 门课,我的收获大概如下:
我们为什么需要软件工程呢?上面已经给出了一些原因。专业点讲,软件工程最终是 为了实现“软件制造业”的社会化 , 工业化大生产 , 提高其劳动生产效率。只有如此 , 软件业 才能实现社会化 , 工业化大生产 , 才能“做大做强” 。没有管理的设计是失败和混乱的设计, 没有设计指导的编程是无序的忙碌的。 根据开发的软件的规模, 应该适当程度的运用软件工 程化的思想,需要灵活, 毕竟我们开发的软件大多数是中小型的, 大型的并不多见 (我是这 么认为的) 。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率, 工作成果更稳定。
其实开发软件,就像是解决一个逻辑问题。想想自己平时是怎样写程序的。首先是要 有一个想法, 即我写的这个程序是要干什么的; 然后就是对要实现的核心功能大概构思一种 或多种实现方法, 并从中选出一种自认为是较好的; 接下来就是将涉及的各种主要或次要功 能分成各个模块;最后就是分模块来编码和 DEBUG 。在我看来,除了第一步外,其余的步骤 应该是一个循环的过程。 在编码的过程中, 你总是需要不断地回过头来修改原先的模块设计, 甚至最初选定的实现算法。
具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。在进 行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。
1. 可行性分析就是关于当前项目能不能干的分析结果。
2. 项目描述这是在决定立项以后,对当前项目的一份扼要说明。
3. 需求分析就是对客户要求的功能的定义。
4. 软件设计这就是对程序的每一个模块的详细设计的说明文档。
5. 开发日志我一直都认为这是文档中最有趣的部分。 开发日志相当于编码阶段的文档, 它的形式可以很随意, 主要是记录一些在写程序时突然萌发的灵感, 或对代码的一些微小的 修改,或对程序结构的一些微小变动等,还要对上述这些修改变动作些说明。
6. 测试分析 用于指出程序存在或潜在的缺陷和错误,以及程序性能的数字描述。