现在的位置: 首页 > 综合 > 正文

项目系列08-软件概要设计

2014年09月05日 ⁄ 综合 ⁄ 共 1206字 ⁄ 字号 评论关闭
提问:
    概要设计需要解决哪些问题?设计详细到何种程度为止?



尝试回答:
    概要设计是软件文档中无法省略的一个。它的主要职责是将需求规格说明书中问题
域的需求限制,使用计算机能够方便实现的一些实体加以实现。实体可以是子系统,或
者模块。需求的映射,不仅仅在于各个实体的外部接口上,而且也表现在接口与接口之
间的关联上。

    概要设计可以认为,就是接口设计。它使用接口定义了一个个实体的外部功能描述
。

    在进行概要设计时,很容易忽略掉的一个非常重要的部分,就是用户接口设计。也
即UI设计。在某些公司,为了和用户讨论问题的方便。UI设计会隶属于需求规格文档中
。但是这里的UI设计侧重的是另一个方面。

    对于UI这一层而言,它实际上是一层膜。对外显现为各种用户可操作的界面元素,
及其功能描述。对内,在概要设计这一层,就表现为对之前表述的那些已经定义好的实
体的外部接口的调用。用这种调用关系和逻辑来支持UI的用户接口。

    UI对于概要设计而言,位置位于顶层。类似系统总装模块。如果在文档中忽视这一
模块,在实际构建代码时,就会做一些无用功,或者作出一些需要经过很多修改才能使
用的模块和子系统。

    对于概要设计而言,另一个需要注意的因素是,需要为整个系统安排出几个里程碑
设置。系统不可能持续N个月后,一次性拿出一个成品。相对粗糙,实现有限功能的原
型系统需要尽快创建,提交给需求分析师,供他们与用户一起进行评析。以防止出现因
为理解问题出现的偏差。用户本身的需求可能也并不完备,这些原型系统也可以供他们
进一步提炼、精化需求用。(当然他们的意见此时都必须经过系统变更程序,才能影响
到软件设计师,继而影响到项目实际的实施人员)

    数据库设计,重要的算法设计,也需要在这个阶段完成。不过形如:

    IModule_XXX
    {
        Fun_xxx(param1, param......);
        
        Fun_xxx(param1, param......);

        Fun_xxx(param1, param......);

        Fun_xxx(param1, param......);
    };

    这样的接口说明文档,是概要设计说明书中,最重要的部分。



阐发:
    如果不做软件的外包处理,系统实施至概要设计阶段结束,已经可以进入编码阶段
了。当然,必不可少地,编码人员会对既有设计提出改进意见。有些地方甚至要做很大
的调整。

    在编码阶段需要修改概要设计时,建议每一次修改,都需要创建“文档变更”任务
并在任务中详细描述原因和修改动作概述。这些资料汇集起来,就可以为今后的概要设
计师设计新的系统,提供第一手资料。

    所有的工作,都是一个不断尝试,获得反馈,然后修正错误继续迭代的过程。我很
怀疑,如果一个人足够用心地记录各种失误,不断总结教训,尝试改进的办法,并积极
实验,即使不借助任何外在的输入,设计师也可以达到自我完善的境地。这可能就是所
谓的“经验”吧。

    相关资料,仍然可以查阅需求规格中提到的那份军标。如果没有记错的话,对应的
核心文档应该是SDD.

抱歉!评论已关闭.