软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。
质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。
生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。
质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。
从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。
从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。
质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。
软件工程的主要环节有:人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护等
常见的软件工程模型有:线性模型(图1.2),渐增式模型(图1.3),螺旋模型,快速原型模型,形式化描述模型等等。
软件开发的基本策略
人们都有自己的世界观和方法论,能自然而然地运用于生活和工作中。
同样,程序员脑子里的软件工程观念会无形地支配其怎么去做事情。
软件工程三十年的发展,已经积累了相当多的方法,但这些方法不是严密的理论。
实践人员不应该教条地套用方法,更重要的是学会“选择合适的方法”和“产生新方法”。
有谋略才会有好的战术。
软件开发中的三种基本策略:“复用”、“分而治之”、“优化——折衷”。
复用
将具有一定集成度并可以重复使用的软件组成单元称为软构件(Software Component)。
软件复用可以表述为:构造新的软件系统可以不必每次从零做起,直接使用已有的软构件,
即可组装(或加以合理修改)成新的系统。复用方法合理化并简化了软件开发过程,
减少了总的开发工作量与维护代价,既降低了软件的成本又提高了生产率。
另一方面,由于软构件是经过反复使用验证的,自身具有较高的质量。
因此由软构件组成的新系统也具有较高的质量。
分而治之