您的位置: 首页 >> 新闻中心 >> 计算机 >> 软件开发
怎样从需求转换到设计和编码
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
正辰培训 微软软件测试工程师电话预约西直门教学区¥4704
新 科 海 软件测试工程师就业班电话预约海淀长远天地¥6280
北师大IT 软件工程与测试实战班电话预约北京师范大学¥1800
北师大IT 高级网络工程师就业班电话预约北京师范大学¥13000
金 同 方 网络工程师就业周末班电话预约人大总部¥7000
  需求和设计之间存在差别,但应尽量使你的规格说明的具体实现无倾向性。理想情况是:

  在设计上的考虑不应该歪曲对预期系统的描述。需求开发和规格说明应该强调对预期系统外部行为的理解和描述。让设计者和开发者参与需求审查以判断需求是否可以作为设计的基础。

  不同的软件设计方法常常都会满足最终需求,而设计方法会随着性能、有效性、健壮性以及所采用的技术上的不同而变化。如果你直接从需求规格说明跳到编码阶段,你所设计的软件将会是空中阁楼,其可能的结果只能是结统的最有效的方法。考虑一下其它的设计方案将有助于确保开发人员遵从所提出的设计约束或遵从与设计有关的质量属性规格说明。

  曾经参与一项项目,进行了完整的需求分析,建立了详细描述模拟摄像系统行为的8个变换过程的数据流程图。经过大量的需求分析后,我们并没有直接进行源代码的编写工作。而是以数据流程图为表示方法,创建了一个设计模型。我们立刻意识到模型中有三个步骤使用了相同的计算算法,另外三个使用不同的方程集,而剩下的两个步骤共享三分之一集合。

  分析模型代表了用户和开发小组对我们正在解决的问题的理解,而设计模型则描绘了我们应该如何构造系统。通过设计期间的仔细思考,我们把核心问题简化了60%,把8个复杂的计算集合减少到3个。如果我们在需求分析之后立刻进行编码,那么在构造阶段必定会出现代码重复。但是,由于及早发现了可简化问题,节省了许多时间和金钱。设计上的返工比编码返工可能要效率高一些。

  以需求为基础,反复设计将产生优良成果。当你得到更多的信息或额外的思想时,用不同的方法进行设计可以精细化你最初的概念。设计上的失误将导致软件系统难以维护和扩充,最终会导致不能满足客户在性能和可靠性上的目标。在把需求转化为设计时你所花的时间将是对建立高质量、健壮性产品的关键的投资。

  在设计产品时,产品的需求和质量属性决定了所采用的合适的构造方法。研究和评审所提出的体系结构是另一种解释需求的方法且会使需求更加明确。与原型法类似,这是一种自下而上的需求分析方法。两种方法都围绕着这样一种思维过程:“如果我正确理解需求,那么这种方法可以满足这种需求。既然我手中有一个最初的体系结构(或原型),它是否有助于我更好地理解需求呢?”

  在你可以开始实现各个部分需求前,不必为整个产品进行完整、详细的设计。然而,在你进行编码前,必须设计好每个部分。设计规划将有益于大难度项目(有许多内部组件接口和交互作用的系统和开发人员无经验的项目)。然而,下面介绍的步骤将有益于所有的项目:

  ◆ 应该为在维护过程中起支撑作用的子系统和软件组件建立一个坚固的体系结构。
  ◆ 明确需要创建的对象类或功能模块,定义他们的接口、功能范围以及与其它代码单元的协作。
  ◆ 根据强内聚、松耦合和信息隐藏的良好设计原则定义每个代码单元的预期功能。
  ◆ 确保你的设计满足了所有的功能需求并且不包括任何不必要的功能。

  当开发者把需求转化为设计和代码时,他们将会遇到不确定和混淆的地方。理想情况下,开发者可沿着发生的问题回溯至客户并获得解决方案。如果不能马上解决问题,那么开发者所做出的任何假设,猜想或解释都要编写成文档记录下来,并由客户代表评审。如果遇到许多诸如此类的问题,那么就说明开发者在实现需求之前,这些需求还不十分清晰或具体。在这种情况下,最好安排一两个开发人员对剩余的需求进行评审后才能使开发工作继续进行。

下一篇:面向对象的几个重要概念

  ◆OOP的主要特征:
  抽象(abstract)
  封装(encapsulation)
  继承(inheritance)
  多态(polymorphism)
  关联(association)
  聚合(aggregation)
  组合(composition)
  内聚与耦合(cohesion & coupling)

  单个类型 抽象Abstract 封装encapsulation
  层次结构 继承inheritance  多态polymorphism
  类型之间 关联association  聚合aggregation  组合composition
  编程准则:内聚与藕合 cohesion &...[查看详情]

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:谈用例驱动可能出现的问题及解决方法
下一篇:面向对象的几个重要概念
 相关新闻
·使用struts+spring+hibernate组装web应用·软件体系结构与软件架构解析
·新一代的功能点规模估算方法:COSMIC-FFP[1]·新一代的功能点规模估算方法:COSMIC-FFP[2]
·有关管理客户需求的一点见解·ScottAmbler谈如何编好的软件模型
·为什么要进行需求管理?·如何提高软件企业的核心竞争力
·影响软件开发效率的12大杀手·企业管理软件的需求描述方法
·失衡的中国软件职业结构·CMMI5在项目中的精简应用
·软件测试演义-究竟什么是软件测试?·功能测试自动化的投入和产出
·看软件测试过程的持续改进·面向对象的几个重要概念
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·软件测试新手的修炼之路
·Smarty简体中文参考手册
·Struts中文手册
·Struts快速学习指南
·ultradev动态网页制作教程
·UML工具箱
·《设计模式》中文版
·学友Flash伴侣 1.11
·阿须图像水印(AssureMark)V2.0
·超级语霸
相关试题
·2008年云南公务员考试专业试卷之科技环保
·2008年云南公务员考试试卷之教育文化类专
·2008年云南公务员考试试卷参考答案之科技
·2008年云南公务员考试试卷参考答案之教育
·2008年公务员考试科教管理类专业试卷参考
·2008年公务员考试科教管理类专业试卷(云
·2007年全国CPA考试试卷及答案解析之《会
·2007年CPA试卷及答案解析之《财务成本管
·2008年注会考前模拟试题之《财务成本管理
·2007年全国CPA《税法》考试试卷及答案解
相关热贴
·如何改QQ IP地址!
·恰当选择软件测试自动化方案
·ADO.NET学习总结
·.net操纵xml文件类(c#)
·Log4net教程
·VPN技术详解
·高手必读 网络端口安全防护技巧放送
·访问XP共享出现的问题解决办法
·Web2.0时代,RSS你会用了吗?(技术实现总
·.NET下正则表达式应用的四个示例