您的位置:首页 > 其它

软件设计——开始设计前的准备

2016-06-13 17:31 393 查看
最近在看<<程序员必读之软件架构>> 这本书 ,主要是想规范一下自己开发软件的流程 这本书看了三分之一了 发现对于自己来说 看这本书还是有点早的,对于我一个还没毕业经验不是很丰富的程序员来说 里面大多讲的东西距离我还有一段距离,但是其中设计软件这一部分对于我来说还是正合适的 我就先在这里 总结一下 这一部分所学的东西吧 不总结我怕我回过头就忘记了 哈哈

对于软件设计来说 有很多东西是需要我们在编码之前就需要考虑好的,当然现在敏捷很流行,然而敏捷也需要提前对软件架构的思考,不能盲目就开始开发 在开发之前通常要考虑好以下几个要点:

1.功能需求

也就是你的软件需要满足的目标 在开发之前你必须详细了解用户的的需求 如果你对用户的需求还没有做到高层次的理解,请不要开始开发,可能有些团队在对需求还没有理解之前就开始开发,他们称之为敏捷,但是这会导致未来出现很多问题。 特性和用户故事清单即使粗糙短小 也是必不可少的 因为需求驱动架构

2.质量属性

质量属性是非功能属性的代表,它反映了服务等级,如性能、可伸缩性、可用性、安全性等一系列要求 这些一般是技术方面的 对最终的架构产生巨大影响 如果事先不先想好这些属性 在后来 开发中向已有的代码中添加这些属性是很困难并且很耗时间的

关于质量属性(非功能性需求)的详细介绍

3.约束

我们生活在有约束的世界中,资源不是无限的,因此我们需要提前考虑好被约束的部分,也就是能做什么 不能做什么 比如时间和预算的约束、技术约束、人员约束、组织约束

约束的详细介绍

4.原则

原则和约束不同,约束是强加给我们的,而原则是我们为了保证代码的一致性和清晰度而自发引入的 比如说一些代码编写的规范,自动化测试的使用等

5.理解影响

任何时候当你开始为一个新的软件系统工作或者扩展已有的系统时,在高层次上理解需求、约束和原则都是至关重要的。简言之,这些是你开始设计的所需的基本水平

了解这些东西能够帮助减少你的困惑

比如不了解金融风险系统相关的性能(比如计算复杂度)、可伸缩性、安全性和审计等需求,就开始为其设计解决方案 设计的方案肯定是不合目标的

早点理解它们,将会有助于避免将来昂贵的返工。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: