SDLC的质量
我们在第1章“软件开发生命周期”部分介绍过SDLC 的各个阶段。在SDLC 中,最好将质量添加到软件中,包括在编写代码之前的软件规划过程也要考虑到质量。在 一个非常简单的例子中,假设我们需要对一个数据集进行分类以保留独特的观察结果。类似这样的功能性需求(但显然更加复杂)在软件项目中出现的频率是非常高的,而且大多数情况下,项目开始只介绍功能性目标。
但是行业和公司目标、其他规定和标准及总体的软件目标规定软件必须完成的操作及必须实现的程度。性能目标包括软件预期的运行方式,但是,性能目标在软件生命周期中会发生变化,初期目标和要求应该看作是潜在的软件性能需求。表2-1所示为软件规划过程中考虑加入性能时会与性能相关的问题。
表 2-1常见的目标和问题
性能目标 |
性能问题 |
可靠性、使用寿命 |
软件能运行一次、多次还是使用周期较长 |
可靠性、稳健性 |
如果出现故障,软件会带来风险吗 |
效率、运行效率 |
软件有资源限制或运行时间限制吗 |
可扩展性 |
输入的数据集有多大,可以不断扩大吗 |
续表
性能目标 |
性能问题 |
可移植性 |
软件能够在 SAS 的不同版本或在不同的操作系统中运行吗 |
复用性 |
软件的组件将来能重复利用吗 |
可测试性 |
软件应该以可测试的形式编写吗,例如,是否要使用一个正式的测试计划 |
只有清楚功能性和性能方面的问题,利益相关者才能真正地理解软件及其复杂性。一旦在规划阶段确定了软件真正的需求,接下来就可以讨论其他类似创建还是购买之类的问题。例如,编写(修改)SAS软件是将数据集分类还是从第三方销售商购买此功能?
正式设计阶段的另一个优点是能够重新定义和优先考虑项目的需求,即便是比较 小的软件项目,也仅需要 1 小时的时间进行讨论。在最初的场景中,最终的目标是通过分类识别独特的观察值。然而,SAS 指数无须对数据进行分类即可完成这一目标,因此,设计阶段可能会讨论提出的技术解决方案的优缺点。规划和设计阶段的区别在 于规划阶段注重需求,而设计和开发阶段关注解决方案和软件。因此,软件规划阶段 应确定和理解客户的需求和目标,但达成这些目标的具体的技术性方法会随着时间的 推移慢慢出现。