Alan Davis ( 1994 )是最早提出软件工程基础原则的权威之一。他关于软件工程15
项原则的文章实际上包含30 项原则。他后来出版了一本名为《20 l Principles of Software
Development 》的著作。在这里,我们只介绍Davis 所认为的其中15 项“最重要的原则” 。
I. 质量放在首位: 提供质量差的产品是目光短浅的质量有许多定义,对不同的人意味
着不同的含义。例如,对于开发人员来说,这可能意味着“优雅的设计
可能意昧着“良好的响应时间” 。无论如何,必须将质量视为第一个需求。
2. 高质量的软件是可能的: 可以建立高质量的大型软件系统,虽然它可能需要很高的
戚本。
3. 尽早向客户提供产品:在需求阶段完全理解和获取用户需求是非常回难的。因此,给
用户一个产品原型并让他们先用起来会更为有效。然后收集反馈信息,并进行产品的全面
开发。
4. 在编写需求之前确定问题:在软件工程师急于提供解决方案之前,请确保问题得到很
好的理解。然后探索可能的解决方案和各种替代方案ι
S . 许估可选设计方案:在理解并就需求达成一致后,探索各种设计架构和相关算法。确
保所选择的设计和算法能最好地满足需求目标。
6 . 使用适当的过程模型: 由于没有适用于所有项目的通用过程模型,每个项目必须根据
企业文化、项目情况、用户期望、需求的变动性和经验资源等参数选择最适合项忖的过程。
7 . 在不同阶段使用不同的语言:在软件开发的所有阶段,没有一种单一的语言是最佳
的。因此,要为软件开发的不同阶段选择最佳的方法和语言。从一个阶段转向另一个阶段的
困难并不一定要通过在所有阶段使用同一种语言来解决。
8 . 最小化智力差距:如果能最小化真实问题与该问题计算机解决方案之间的距离. 则创
建解决方案将会更为容易。也就是说,软件解决方案的结构需要尽可能接近现实世界的问题
结构。
9. 将技术直于工具之前:在使用工具之前,需要很好地理解技术。否则,这个工具就会
促使我们执行错误的事情n [ill
10. 在使之史快之前,请确保其正确性:有必要先使软件正确执行,然后再进行改进。
不要在初始编码阶段担心对执行速度或代码的优化。
门.检查代码: IBM 的Mike Fagan 首先提出,检查是一种能够比测试更好地发现错误的
方法。一些早期应用的数据显示,这减少了50%~90% 的测试时间。
12. 好的管理比好的技术更重要:即使拥有有限的资獗,一个好的管理者也可以获得显
著的成果。即使最好的技术也不能弥补糟糕的管理,因为好的管理者可以激励人,而技术
不行。
13. 人是成功的关键:软件是一个劳动密集型产业,具有经验、天赋和适当动力的人
才是关键。正确的人可以克服许多过程、方法或工具巾的缺点。没有什么可以替代高质量
人才。
14 . 勿盲目跟风:谨慎地采用t具、过程和方法,不要因为别人在做或使用它而跟风。
在做出重大承诺之前先做一些实验。
1 5. 承担责任:如果你开发了这个系统.你有责任把它做好。将失败或问题归咎于其他
人、进度计划或是过程都是不负责任的。
在Davis 原则清单的基础l二. Walker Royce ( 1998 )在他的书中提出了一套更现代的原
则。Walker Royce 的现代软件管理十大原则如下:
I. 基于架构优先的方法建立过程。
2. 建立一个迭代过程,以通过比过程尽早解决风险。[ill
3. 强调基于组件的开发,以减少编码工作量。
4. 应该建立变更管理来处理迭代过程。
5. 增强迭代开发过程环境(称为双向工程),以通过自动化工具在多个制品上频繁地进
行多次变更。
6 . 使用基于模型和计算机可处理的符 来进行设计。
7 建立质量控制和项目进度评估的客观过程,包括评估所有中间制品。
8. 为能够更早地评估中间制Ji!1 .使用基于演示的方法,将其转换为用户场景的可执行
演示。
9. 计划增量式发布多个版本,每个版本由一组使用场景组成,并在细节上逐步演化。
10. 建立一个可配置的过程, 因为没有一个过程适合所有的软件开发
Anthony Wasserman ( 1996 )认为,尽管软件行业正在发生变化,但是有8 个软件工程
概念相对保持稳定。因此,以下基本概念构成了软件工程学科的基础:
· 抽象化
· 分析、设计的方法和表示法
· 用户界面原型
· 模块化和架构
· 复用
· 生命周期和过程
· 度量
· 工具和集成环境
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!