软件功能设计

来源:互联网 发布:淘宝开专卖店 编辑:程序博客网 时间:2024/05/16 16:17

         软件功能设计:

         针对软件中某一具体的功能,所进行的设计。包括:这个功能的实现方式,实现的基本结构,类的组成,职责划分等,是软件设计中最最重要的基本功。

         功能设计在整个软件设计中的层次:

         软件设计的层次很多,不同的软件设计过程有不同的划分层次,大致可分为:架构设计,api/spi设计,数据库设计,功能设计,类设计,方法设计。

         从难度上说:公共类库》公共框架》基础平台/框架》应用(产品》项目)

        功能设计在整个软件设计中的地位:

        功能设计从属于详细设计,是整个系统功能实现的基石。

        功能设计与设计模式的关系:

        功能设计通常会综合应用多种设计模式,是各种设计思想的具体体现的载体。由于功能千变万化,因而要有较高的设计技巧和功力,才能设计出正确的,易用的,灵活的,         扩 展性高的,高性能实现。

        设计模式是业界公认的,优秀的设计经验和设计理念,理解、掌握、融会贯通、并能熟练变形应用设计模式,对于功能设计是由极大的帮助的。

        功能设计与详细设计的关系:

        功能设计只是详细设计中的一部分,详细设计还包括很多其他的设计,比如:流程设计、对api/spi的完善和细化,对数据库设计的完善和细化,对多个功能交互的控制,事         务 的规划,权限/安全的规划,例外的控制。。。很多很多

         功能设计要考虑的东西/评价标准:

        这个业界没有统一的标准,而且不同类型、不同业务的系统考虑的东西并不完全一样,但还是有一些通常要考虑的东西:

        “正确性”,易用性,可扩展性,复杂性(易理解,开发难度等),易维护,安全,性能,可重用,可测试。。。

         软件设计的实战方法---经验总结

         1,基本的功能实现方式,并进行细化;

         2,分析每个步骤,每个细节中,哪些是可变的,哪些是不可变得。通常分析3个部分:数据的输入,具体实现,数据产出;

         3,分析这个细节功能和其他步骤的关系,比如:顺序,平行,依赖等,已确定这些职责的粒度和分离方式,从而考虑他们之间的组合方式,也需要分离这些组合方式的变           与不变

          4,根据前面分析的结果,进行相应的类,方法的设计、进行职责的划分,并通过合适的方式把他们组织起来。

                  通常这个时候,就会融合进一个或多个设计模式的应用。当然也可能是没有现成的设计模式,需要自己来灵动的组织和实现。

          5,按照前面讲述的评价标准,进行系统的思考和调整,以形成最终的设计方案。


       关于软件设计的一些思考:


       设计的基本技巧:发现和封装变化,进行抽象和封装,实现高内聚和低耦合。

       设计是危险的平衡艺术,尽可能的找到最佳平衡点。

       没有完美的设计,设计总是在不断的演变中

      设计是没有标准答案的,只要能更好的实现功能,更好的满足那些评价标准,就是好东西。

     不要过度设计不等于不设计,而是更要精巧设计。

     关于重构的思考:在设计角度讲,重构是打补丁的思想。

     关于敏捷的思考:

     设计是否增加了复杂度:

     设计是否增加了软件成本:好的设计是会降低软件成本的。

    

   

        




        

       

        

         


原创粉丝点击