首先附图一张:
对于软件工程的全局有了个大概的了解,先说一下软件工程的目标:提高软件的质量与生产率,最终实现软件的工业化生产。那么在对软件工程这篇文档的主要环节来简单看一下:人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护。我的思维导图主要就是从这些方面出发,进行描画的。那我就在这把自己所想的重点描述一下。
主要就是线性模型也叫作瀑布模型,看一下由主要环节所表现出来的线性模型图:
那么线性模型是什么呢?瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。简单来说就是将复杂问题简单化。而渐增式模型实质就是分段的线性模型,螺旋模型则是连接的弯曲了的线性模型。
基本策略有什么呢?主要就是三个:复用、分而治之、优化-折衷复用就是站在巨人的肩膀上学习,复用是指“利用现成的东西”,文人称之为“拿来主义”。分而治之就是把一个复杂的问题分解成若干个简单的问题,然后逐个解决。但是需要考虑的问题就是分解的问题是否能够化为程序?所有的程序能够集合成一个大程序?这个大程序能够解决当初的那个复杂的问题?优化-折衷中的优化是指软件的各个质量因素,优化工作不是可有可无的事情,而是必须要做的事情。把优化工作当成一种责任。当不能够是所有的目标都得到优化时,就需要“折衷”策略。折衷策略是指通过协调各个质量因素,实现整体质量的最优。
在文档中,对于可行性分析是要决定“做还是不做”;需求分析是要决定“做什么,不做什么”。
看看影响可行性分析的因素有什么?经济、技术、社会环境和人。
经济可行性分析主要包括:“成本——收益”分析和“短期——长远利益”分析。对于“成本——收益”分析和“短期——长远利益”分析作者又是以一种幽默的语言来分别从用户和自己的角度分析,感兴趣的可以去看看。
技术:在给定的时间内能否实现需求说明中的功能、软件的质量如何?软件的生产率如何?简单的表述为:做的了吗?做得好吗?做得快吗?
社会环境:市场与政策。
市场又分为未成熟的市场、成熟的市场和将要消亡的市场。
而在文档中呢,作者给人分为四类:人物,人才,人手,人渣。如果一个软件公司里上述四类人齐全了, 那么最好的分工是让“人物” 当领导,“人才”做第一线的开发人员,“ 人手”做行政人员,“人渣”负责行贿。
这就是对于软件工程思想这篇文档的简单总结,不过还有很多没有写到,接下来会在软件工程视频中重复的学习到,总结继续。