软件设计规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计规范

第一章概述

一、前言

软件设计是把需求转化为软件系统的最重要的环节,一般会包含以下几大部分:体系结构设计、界面设计、数据结构和算法设计、数据库设计、接口设计、安全设计等。软件设计的优

劣在根本上决定了软件系统的质量。但是,由于各种历史原因,软件设计在开发中的重要性

没有得到合理的体现。很多软件的设计工作都是有名无实,设计文档更是五花八门,几乎完

全依赖于设计人员个人的设计水平与经验。很多设计文档几乎没有使用价值,开发人员都是

直接看需求。这样,最终软件的质量完全依赖于开发人员。开发人员水平好,软件质量就高。开发人员水平差,软件质量就差。为了解决这一问题,制定一份软件设计规范,就成为最好

的选择。

从目前的现状出发,本规范对软件设计过程、设计方法、设计工具以及设计要做到的程度

进行了规定。同时,特别对逻辑设计进行了详细规定,物理设计在本阶段暂不做要求。

二、适用范围

本规范适用于开发部所负责的项目,其它部门的项目可进行参考。对于Dotnet技术类项目,

必须全部符合本规范。对于Dephi技术类项目,可以进行取舍。

对于完全新建项目,必须全部符合本规范,对于在旧系统之上进行扩展的项目,可以对本

规范进行取舍,对于维护类项目,可以不按本规范进行。

由于项目的特殊原因,可以对设计过程进行取舍,但不得降低所执行设计过程的规范要求。

一旦设计过程确认后,必须严格执行设计规范。此规范的符合,是评审通过的唯一依据。未

通过设计评审的项目,可以继续进行后续工作,但评审委员会不再对此项目的软件质量负责。

三、名词解释

逻辑设计:这是微软对软件设计工作的一种划分方式。是指在需求的基础上,从业务逻辑

和当前用户应用环境中抽象出系统对象的组成结构、流程和各个部分相互关系,另外还要

设计数据库的逻辑结构和界面的逻辑关系。逻辑设计是将用户业务语言转化为项目组语言

的关键。在逻辑设计中的对象只是抽象的系统对象,而不是物理实现中采用的类、组件、

模块和页面。

物理设计:这是微软对软件设计工作的一种划分方式。是指在逻辑设计的基础上,从系统

的逻辑对象、数据实体和界面逻辑关系中进一步整理和细化得到的设计方案。物理设计将

确定系统采用的技术方案,平台,并明确实际开发的组件、数据库表、窗口以及页面等,

并考虑到实现的可能性和最终系统的性能。

系统:是由相互作用和相互依赖的若干组成部分结合成的、具有特定功能的有机整体。系

统具有三个基本特征。第一,系统是由若干元素组成的;第二,这些元素相互作用、互相

依赖;第三,由于元素间的相互作用,使系统作为一个整体具有特定的功能。一个管理软

件系统一般会包含界面、算法、数据库等内容。

第二章软件设计过程

一、设计阶段划分

软件设计分为架构设计、逻辑设计、物理设计三个阶段,其中逻辑设计和物理设计分别又分为系统设计和组件设计两个阶段。组件设计分为三部分:界面设计、业务算法设计、数据库设计。

开发部的软件使用统一的软件架构,故架构设计不是每一个项目必须要做的,在此不对架构设计进行规范。对于在统一的软件架构中没有包含的部分,各项目组可自行增加。

软件设计过程可用下图来说明:

二、过程裁减

在项目开发过程中,可能由于各种原因需要对设计过程进行裁减。一般情况下,对于Dotnet技术类项目,必须全部采用本过程。对于Dephi技术类项目,可以进行取舍。对于完全新建项目,必须全部采用本过程;对于在旧系统之上进行扩展的项目,可以不进行架构设计和物理设计;对于维护类项目,可以不采用本过程。

由于项目的特殊原因,需要违反以上原则对设计过程进行裁减时,必须在设计工作开始前得到开发部经理的认可。

第三章软件设计方法

开发部的软件设计主要使用两种设计方法:自顶向下的设计方法和面向对象的设计方法。对于Dephi技术类项目,在得到开发部经理同意的情况下,可以采用结构化的软件设计方法。在个别情况特殊的项目中,可以采用自底向上的设计方法,但必须得到开发部经理的认可。

在使用面向对象的方法进行设计时,必须使用UML 语言。在设计中,应尽可能的使用设计模式,以求得最好的性价平衡。

以上两种设计方法目前都已为一种工业标准,其详细情况可参见相关资料,下面仅做一个简单介绍。

一、自顶向下的软件设计方法

自顶向下的软件设计方法从整体系统角度着重考虑设计环节,由上而下有机地将系统分化为

多个子系统、再将子系统分化成多个组件,直至分化出明确的类及其公共接口,然后开始编码。此方法在设计前需要明确需求,在设计阶段可以不断验证实现设计的可行性。经过验证的、良好的设计可以有效管理复杂度,降低自底向上设计方法中在后期“推倒重建”的风险,能让整个开发团队同步进行,适用于总体需求明确,开发任务复杂庞大的项目。

二、面向对象的软件设计方法

面向对象的设计方法是一种工程化规范,它是一种解决软件问题的设计范式,一种抽象的

范式。使用这种设计范式,我们可以用对象来表现问题领域的实体,每个对象都有相应的

状态和行为。

面向对象设计的核心思想是面向自然的设计,即通过识别和表达出系统中对象、对象间的关系、对象的状态迁移等关键因素,软件设计达到自然的、正确的描述目标系统的目的,这种

自然的设计忠实反映了目标系统中的对象和他们之间的关系以及他们之间的交互过程,是自

然系统到软件系统的自然的映射。

在过去的十多年里,面向对象方法对软件行业起到了极大的推动作用。在可以预测的将来,

它仍将是软件设计的主要方法。

第四章逻辑设计

一、系统设计

此处的系统设计是确指的系统级的设计,它以系统做为主要设计对象,关注系统可由哪些

子系统或模块构成,这些子系统或模块之间的关系如何,系统与其它系统之间的接口有哪些,接口之间如何进行通信。

系统设计的要求如下:

1、系统如何使用公司的统一架构,在架构不满足的情况下,如何进行扩充。

2、系统可以分为几个模块,各个模块之间关系如何,模块是如何通信的。

3、每个模块的外部接口是什么,接口的参数是什么,返回值是什么。参数与返回值必须明

确定义,不能有二义性。

4、如果系统较为庞大,可将系统分为子系统。必须明确定义各个子系统之间的关系,子系

统的设计要求同系统的设计要求。

5、系统与其它系统的接口有哪些,接口的参数是什么,返回值是什么。参数与返回值必须

明确定义,不能有二义性。

6、系统设计前,必须编写软件功能规格说明书,以明确功能需求。也可在UML中使用用

例图来描述软件功能。

相关文档
最新文档