需求分析+概要设计+详细设计+数据库设计模.pdf
-
资源ID:76191793
资源大小:325.71KB
全文页数:50页
- 资源格式: PDF
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
需求分析+概要设计+详细设计+数据库设计模.pdf
I 附录 A 软件需求分析报告文档.1附录 B 软件概要设计报告文档.13 附录 C 软件详细设计报告文档.33 1 附录 A 软件需求分析报告文档1.引言.错误!未定义书签。1.1编写目的 .31.2项目风险 .31.3文档约定 .31.4预期读者和阅读建议.31.5产品范围 .41.6参考文献 .42.综合描述.42.1产品的状况 .42.2产品的功能 .52.3用户类和特性.52.4运行环境 .52.5设计和实现上的限制.52.6假设和约束(依赖).63.外部接口需求.63.1用户界面 .63.2硬件接口 .73.3软件接口 .73.4通讯接口 .84.系统功能需求.84.1说明和优先级.84.2激励响应序列.94.3输入输出数据.95.其它非功能需求.95.1性能需求 .95.2安全措施需求.105.3安全性需求 .105.4软件质量属性.105.5业务规则 .105.6用户文档 .106.词汇表.117.数据定义.118.分析模型.129.待定问题列表.122 3 1.简介1.1 编写目的此文档对 点菜系统 做了全面细致的用户需求分析,明确该软件应具有的功能、性能、界面,使系统分析人员、软件开发人员能明确用户的需求,并在此基础上进一步提出概要设计说明书和后续设计与开发。本说明书的预期读者为客户、后续开发人员、测试人员、项目管理人员等。1.2 项目风险具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:任务提出者;软件开发者;产品使用者。1.3 文档约定描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:正文风格;提示方式;重要符号;也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。1.4 预期读者和阅读建议列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:用户;开发人员;项目经理;营销人员;测试人员;文档编写入员。并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。4 1.5 产品范围说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。1.6 参考文献列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:本项目的合同书;上级机关有关本项目的批文;本项目已经批准的计划任务书;用户界面风格指导;开发本项目时所要用到的标淮;系统规格需求说明;使用实例文档;属于本项目的其它己发表文件;本软件产品需求分析报告中所引用的文件、资料;相关软件产品需求分析报告;为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:标题名称;作者或者合同签约者;文件编号或者版本号;发表日期或者签约日期;出版单位或者资料来源。2.综合描述这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。2.1 产品的状况描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:是否是产品系列中的下一成员;是否是成熟产品所改进的下一代产品;是否是现有应用软件的替代品(升级产品);是否是一个新型的、自主型的产品。如果该软件产品需求分析报告定义的软件系统是:5 大系统的一个组成部分;与其它系统和其它机构之间存在基本的相互关系。那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。2.2 产品的功能因为将在需求分析报告的第4 部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利读者理解本软件产品。为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。2.3 用户类和特性确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。2.4 运行环境描述了本软件的运行环境,一般包括:硬件平台;操作系统和版本;支撑环境(例如:数据库等)和版本;其它与该软件有关的软件组件;与该软件共存的应用程序。2.5 设计和实现上的限制确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:必须使用的特定技术、工具、编程语言和数据库;避免使用的特定技术、工具、编程语言和数据库;要求遵循的开发规范和标准例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设6 计符号表示和编码标准;企业策略的限制;政府法规的限制;工业标准的限制;硬件的限制例如,定时需求或存储器限制;数据转换格式标淮的限制。2.6 假设和约束(依赖)列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:计划使用的商业组件,或者其它软件中的某个部件;假定产品中某个用户界面将符合一个特殊的设计约定;有关本软件用户的若干假定(例如:假定用户会熟练使用SQL 语言。);有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。);有关本软件运行环境的一些问题;此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:工期约束;经费约束;人员约束;设备约束;地理位置约束;其它有关项目约束;3.外部接口需求通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。3.1 用户界面陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:将要采用的图形用户界面(GUl)标准或者产品系列的风格;7 有关屏幕布局或者解决方案的限制;将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:选单;标准按钮;导航链接;各种功能组件;消息栏;快捷键;各种显示格式的规定,可能包括:不同情况下文字的对齐方式;不同情况下数字的表现格式与对齐方式日期的表现方法与格式;计时方法与时间格式;等等。错误信息显示标准;对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。3.2 硬件接口描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:支持的硬件类型;软、硬件之间交流的数据;控制信息的性质;使用的通讯协议;3.3 软件接口描述该软件产品与其它外部组件的连接,这些外部组件必须明确它们的名称和版本号以资识别,可能的外部组件包括:操作系统;数据库;工具;函数库;集成的商业组件说明:这里所说的“集成的商业组件”,是指与系统集成的商业组件,而不是与软件产品集成的商业组件。例如:中间件、消息服务,等等。描述并且明确软件产品与软件组件之间交换数据或者消息的目的。描述所需要的服务,以及与内部组件通讯的性质。确定软件产品将与组件之间共享的数据。如果必须使用一种特殊的方法来实现数据共享机制,例如:在多用户系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。8 3.4 通讯接口描述与软件产品所使用的通讯功能相关的需求,包括:电子邮件;WEB 浏览器;网络通讯标准或者协议;数据交互用电子表格;必须定义相关的:消息格式;通讯安全或加密问题;数据传输速率;同步和异步通讯机制;4.系统功能需求需要进行详细的需求记录,详细列出与该系统功能相关的详细功能需求,并且,唯一地标识每一项需求。这是必须提交给用户的软件功能,使得用户可以使用所提供的功能执行服务或者使用所指定的使用实例执行任务。描述软件产品如何响应己知的出错条件、非法输入、非法动作。如果每一项功能需求都能用一项,也只需要用一项测试用例就能进行验证,那么就可以认为功能需求已经适当地进行描述了。如果某项功能需求找不到合适的测试用例,或者必须使用多项测试用例才能验证,那么该项功能需求的描述必然存在某些问题。功能需求是根据系统功能,即软件产品所提供的主要服务来组织的。可以通过使用实例、运行模式、用户类、对象类或者功能等级来组织这部分内容,也可以便用这些元素的组合。总而言之,必须选择一种是读者容易理解预期产品的组织方案。用简短的语句说明功能的名称,例如:“4.1 系统参数管理”。按照服务组织的顺序,逐条阐述系统功能。无论说明的是何种功能,都应该针对该系统功能重复叙述4.1 4.3 这三个部分。可以通过各种方式来组织这一部分内容,例如采用:使用实例、运行模式、用户类、对象类、功能等级等,也可以采用它们的组合。其最终目的是,让读者容易理解即将开发的软件产品。一般来说,每个使用实例都对应一个系统功能,因而按照使用实例来组织内容比较容易让用户理解。对应一些被共享的独立使用实例,可以定义一些公用系统功能。必须特别注意的是,在 2.2 节“产品的功能”中描述的全部需求,以及它们的规格说明;必须在某个系统功能描述中有所反映,而且不应重复。4.1 说明和优先级对该系统功能进行简短的说明,并且指出该系统功能的优先级是:高、中、还是低。需要的话,还可以包括对特定优先级部分的评价,例如:利益、损失、费用和风险,其相对优先等级可以从1(低)到 9(高)。9 4.2 激励响应序列列出输入激励(用户动作、来自外部设备的信号或者其它触发)并且定义针对这功能行为的系统响应序列,这些序列将与使用实例中相关的对话元素相对应。描述激励响应序列时,不仅需要描述基本过程,而且应该描述可选(扩充)过程,包括例外(引起任务不能顺序完成的情况称为例外)。疏忽了可选过程,有可能影响软件产品的功能;如果遗漏例外过程,则有可能会引发系统崩溃。如果采用流程图来描述激励响应序列,比较容易让用户理解。4.3 输入输出数据列出输入数据(用户输入、来自外部接口的输入或者其它输入)并且定义针对这些输入数据的处理(计算)方法,以及相应地输出数据,描述对应区别:输入数据和输出数据。当有大量数据需要描述时,也可以分类描述数据,并且注明各项数据的输入、输出属性。对于每一项数据,均需要描述:数据名称;实际含义;数据类型;数据格式;数据约束;对于复杂的处理方法,仅仅给出算法原理是不够的,必须描述详细的计算过程,并且列出每一步具体使用的实际算式;如果计算过程中涉及查表、判断、迭代等处理方法,应该给出处理依据和相关数据。如果计算方法很简单,也可以将其从略,不加描述。5.其它非功能需求在这里列举出所有非功能需求,主要包括可靠性、安全性、可维护性、可扩展性、可测试性等。5.1 性能需求阐述不同应用领域对软件产品性能的需求,并且说明提出需求的原理或者依据,以帮助开发人员做出合理的设计选择。尽可能详细地描述性能需求,如果需要,可以针对每个功能需求或者特征分别陈述其性能需求。在这里确定:相互合作的用户数量;系统支持的并发操作数量;响应时间;与实时系统的时间关系:容量需求存储器;磁盘空间;10 数据库中表的最大行数。5.2 安全措施需求详尽陈述与软件产品使用过程中可能发生的损失、破坏、危害相关的需求。定义必须采取的安全保护或动作,以及必须预防的潜在危险动作。明确软件产品必须遵从的安全标准、策略、或规则。5.3 安全性需求详尽陈述与系统安全性、完整性问题相关的需求,或者与个人隐私问题相关的需求。这些问题将会影响到软件产品的使用,和软件产品所创建或者使用的数据的保护。定义用户身份认证,或备授权需求。明确软件产品必须满足的安全性或者保密性策略。也可以通过称为完整性的质量属性来阐述这些需求。一个典型的软件系统安全需求范例如下:“每个用户在第一次登录后,必须更改他的系统预置登录密码,系统预置的登录密码不能重用。”5.4 软件质量属性详尽陈述对客户和开发人员至关重要的在软件产品其它方面表现出来的质量功能。这些功能必须是确定的、定量的、在需要时是可以验证的。至少也应该指明不同属性的相对侧重点,例如:易用性优于易学性,或者可移植性优于有效性。5.5 业务规则列举出有关软件产品的所有操作规则,例如:那些人在特定环境下可以进行何种操作。这些本身不是功能需求,但是他们可以暗示某些功能需求执行这些规则。一个业务规则的范例如下:“进行达到或者超过10,000,00 元人民币的储蓄业务时,必须通过附加的管理员认证。”列举业务规则时,可以根据规则的数量,选取合适的编目方式。5.6 用户文档列举出将与软件产品一同交付的用户文档,并且明确所有己知用户文档的交付格式或标准,例如:安装指南纸质文档,16 开本;用户手册纸质文档,16 开本;在线帮助电子文档,与软件产品一同分发、配置;使用教程电子文档,与软件产品一同分发、配置。11 6.词汇表列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士阅读软件产品需求分析报告,要求使用非软件专业或者非计算机专业的术语描述软件需求。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表并且加以准确定义。7.数据定义数据定义是一个定义了应用程序中使用的所有数据元素和结构的共享文档,其中对每个数据元素和结构都准确描述:含义、类型、数据大小、格式、计量单位、精度以及取值范围。数据定义的维护独立于软件需求规格说明,并且在软件产品开发和维护的任何阶段,均向风险承担者开放。如果为软件开发项目创建一个独立的数据定义,而不是为每一项特性描述有关的数据项,有利于避免冗余和不一致性。但是却不利于多人协同编写需求分析报告,容易遗漏数据,也不方便阅读。因此还是建议为每个特性描述有关的数据项,汇总数据项创建数据定义,再根据数据定义复核全部数据,使得它们的名称和含义完全一致。必须注意的是,为了避免二义性,在汇总数据项时应该根据数据项所代表的实际意义汇总,而不是根据数据项的名称汇总。在数据定义中,每个数据项除了有一个中文名称外,还应该为它取一个简短的英文名称,该英文名称应该符合命名规范,因为在软件开发时将沿用该英文名称。可以使用等号表示数据项,名称写在左边,定义写在右边。常见数据项的描述方式如下:原数据元素一个原数据元素是不可分解的,可以将一个数量值赋给它。定义原数据元素必须确定其含义、类型、数据大小、格式、计量单位、精度以及取值范围。采用以星号为界的一行注释文本,描述原数据元素的定义。选择项选择项是一种只可以取有限离散值的特殊原数据元素,描述时一一枚举这些值,并用方括号括起来写在原数据元素的定义前。在两项离散值之间,使用管道符分隔。组合项组合项是一个数据结构或者记录,其中包含了多个数据项。这些数据项可以是原数据元素,也可以是组合数据项,各数据项之间用加号连接。其中每个数据项都必须是数据定义中定义过的,结构中也可以包括其它结构,但是绝对不允许递归。如果数据结构中有可选项,使用圆括号把该项括起来。重复项重复项是组合项的一种特例,其中有一项将有多个实例出现在数据结构中,使用花括号把该项括起来。如果知道该项可能允许的范围,就按“最小值:最大值”的形式写在花括号前。12 8.分析模型这是一个可选部分,包括或涉及到相关的分析模型,例如:数据流程图;类图;状态转换图;实体-关系图。9.待定问题列表编辑一张在软件产品需求分析报告中待确定问题时的列表,把每一个表项都编上号,以便跟踪调查。13 附录 B 软件概要设计报告文档模板1.引言.151.1 编写目的 .151.2 项目风险 .151.3 预期读者和阅读建议.151.4 参考资料 .152.设计概述.162.1 限制和约束 .162.2 设计原则和设计要求.163.系统逻辑设计.173.1 系统组织设计.173.2 系统结构设计.173.2.1 系统特性表.183.2.2 系统特性结构图.193.3 系统接口设计.193.3.1 系统接口表.193.3.2 系统接口传输协议说明.203.4 系统完整性设计.204.系统出错处理设计.214.1 系统出错处理表.214.2 维护处理过程表.225.技术设计.235.1 系统开发技术说明表.235.2 开发技术应用说明.246.数据库设计.247.词汇表.248.进度计划.2414 15 1.引言引言是对这份软件系统概要设计报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。1.1 编写目的说明这份软件系统概要设计报告是基于哪份软件产品需求规格说明书编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统概要设计报告详尽说明了该软件产品的软件结构,包括数据库结构和出错处理,从而对该软件产品的结构的描述。如果这份软件系统概要设计报告只与整个系统的某一部分有关系,那么只定义软件系统概要设计报告中说明的那个部分或子系统。1.2 项目风险具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:任务提出者;软件开发者;产品使用者。1.3 预期读者和阅读建议列举本软件系统概要设计报告所针对的各种不同的预期读者,例如,可能的读者包括:用户;开发人员;项目经理;营销人员;测试人员;文档编写人员;等等。描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。1.4 参考资料列举编写软件产品概要设计报告时所用到的参考文献及资料,可能包括:本项目的合同书;上级机关有关本项目的批文;本项目已经批准的计划任务书;用户界面风格指导;16 开发本项目时所要用到的标准;系统规格需求说明;使用实例文档;属于本项目的其它已发表文件;本软件系统概要设计报告中所引用的文件、资料:相关软件系统概要设计报告:等等。为了方便读者查阅,所有参考资料应该按一定顺排列。如果可能,每份资料都应该给出:标题名称;作者或者合同签约者;文件编号或者版本号;发表日期或者签约日期;出版单位或者资料来源。2.设计概述本节描述现有开发条件和需要实现的目标,说明进行概要设计时应该遵循的设计原则和必须采用的设计方法。2.1 限制和约束简要描述起到限制和约束作用的各种可能存在的条件,例如:技术条件;资金状况;开发环境(包括:工具和平台);时间限制;等等。并且说明在上述条件下,应该实现的系统目标,2.2 设计原则和设计要求描述对本软件系统进行概要设计的原则,通常可以考虑以下几方面的内容:命名规则;模块独立性原则:边界设计原则;数据库设计规则;必须的安全措施;安全性和保密原则;系统灵活性要求;系统易操作性要求;系统可维护性要求;等等。17 3.系统逻辑设计本节内容主要根据软件产品需求规格说明书和软件产品数据字典建立系统的逻辑模型。此种模型暂时与系统的物理因素(例如:计算机、数据库管理系统)无关。它是系统需求与物理实现的中间结构,它的主要结果是建立:系统结构图、系统界面结构图、系统出错处理、以及系统开发技术说明。说明:如果进行系统设计时尚未编写软件数据字典:应首先参照附录B 说明,编写软件数据字典。在完成软件数据字典后,再进行系统设计。3.1 系统组织设计系统组织设计通过系统组织表描述本系统由哪些子系统(模块)组成,这些子系统与业务职能之间的关系,以及各个子系统的安装地点。系统组织表的格式如下:子系统编号英文名称中文名称业务职能安装地点备注其中:子系统编号给出本系统中指定子系统的顺序编号。如果本系统末划分为多个子系统,仅由一个运行模块组成;则本项内容仍需要描述,但是本表内容只有一行。说明:在一个系统中有可能安装若干个相同的子系统,在这种情况下,应该视为一个子系统,并且对多个安装地点分别进行描述。如果相同的子系统通过系统设置,实现的业务职能具有明显差异时,应该采用多行进行分别描述,并且在备注中说明其差异所在。子系统英文名称给出本子系统的英文名称,该名称是在应用软件中实际使用的可执行文件名称,必须能够说明该子系统的特点。若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。子系统中文名称给出本子系统的中文名称,该名称必须能够说明该子系统的特点。若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。业务职能描述该子系统完成的核心业务。安装地点描述该子系统实际安装的部门、或者某个具体地点。备注针对该子系统,需要说明的其它有关问题。3.2 系统结构设计本节将对系统特性作较为详细的描述,并给出系统特性结构图。18 3.2.1 系统特性表系统特性是系统中完成某项具体操作的基本单元,它由入口参数,出口参数以及处理过程三部分组成。系统特性可以具有操作界面,也可以没有操作界面;可以被其它操作界面、或者系统特性调用,也可以调用其它操作界面、非操作界面、或者系统特性;但是不允许递归调用(调用自己),包括间接递归调用。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统特性表进行描述。系统特性表的格式如下:子系统编号:子系统英文名称:子系统中文名称:特性编号系统特征英文名称系统特征中文名称操作功能调用对象被调用对象备注说明:其中子系统编号含义同上。子系统英文名称含义同上。子系统中文名称含义同上。特性编号整个系统所有特性的统一编号。系统特性英文名称系统特性的英文正式名称,将来用于软件开发中,必须符合命名规范。系统特性中文名称系统特性的中文正式名称,来源于需求规格说明书中,系统特性一节中的有关描述。操作功能是指该特性实际完成的操作说明。调用对象是指调用该系统特性的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。被调用对象是指被该系统特性调用的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。说明:某些较低层的系统特性,可能不存在被调用对象。备注描述与该系统特性有关的其它注意事项。说明描述与该系统特性表有关的其它注意事项。19 3.2.2 系统特性结构图系统特性结构图给出系统特性在逻辑层面上相互之间的关系,其主要依据来源于需求规格说明书中,系统特性一节中的有关描述。如果系统划分为多个子系统,应分别给出系统与子系统、以及各个子系统与系统特性的结构图。绘制系统与子系统结构图时,一般不需要描绘出系统特性,如果确有必要,尽可能只画出第一层系统特性。绘制子系统与系统特性结构图时,通常也不需要描绘出第二层系统特性,如果确有必要可以画出,但是尽可能不要画出第三层系统特性。3.3 系统接口设计系统接口是一种非可视的系统界面,在多数情况下,它对用户是透明的。本节将对系统接口作较为详细的描述,并给出接口说明清单。3.3.1 系统接口表接口作为系统的一种输入输出形式,分为网络接口、数据库接口、RS-232 串行通讯接口、IEEE485 串行总线接口、并行I/O 接口等等多种类型。对于一些为可视界面服务的接口,例如:打印机接口、显示器接口等,因为这类接口对应用软件是透明的,所以不在本节描述范围内。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统接口表进行描述。系统接口表的格式如下:子系统编号子系统英文名称子系统中文名称接口编号接口名称接口类型接口性质接口速率接口协议备注说明:其中:子系统编号含义同上。子系统英文名称含义同上。子系统中文名称含义同上。接口编号整个系统所有接口的统一编号。接口名称系统接口的正式名称,必须符合通常习惯。接口类型指出该接口所传输的数据在该模块中起到的作用。接口性质20 指出该接口在通讯中起到的作用,这里的作用可以是:输入;输出;双向。接口速率指出该接口的传输速率。如果该接口依赖于其它通讯方式,那么传输速率将不高于它所依赖的其它通讯方式的速率。接口协议给出该接口实际使用的通讯协议。相关对象给出直接使用本接口的系统对象,这里的系统对象,可以是操作界面,也可以是系统特性。备注描述与该系统接口有关的其它注意事项。说明描述与该系统接口表有关的其它注意事项。3.3.2 系统接口传输协议说明逐项详细描述系统接口表中所列出各个系统接口使用的传输协议,以及其它相关内容,例如:驱动程序、动态连接库、等等。3.4 系统完整性设计描述系统对象(数据元、数据类),所受到的逻辑约束关系。当系统由多个子系统(模块)组成时,每个子系统应分别使用一张系统完整性约束表进行描述。系统完整性约束表的格式如下:子系统编号子系统英文名称子系统中文名称约束编号完整性名称相对对象名约束表达式备注说明:其中:子系统编号含义同上。子系统英文名称含义同上。子系统中文名称含义同上。约束编号整个系统所有约束的统一编号。完整性名称系统完整性约束的正式名称,必须符合通常习惯。21 相对对象名完整性约束中的相关对象(数据元和数据类)。约束表达式用一阶逻辑表达式表达的约束方程式。备注描述与该系统完整性约束有关的其它注意事项。说明描述与该系统完整性约束表有关的其它注意事项。4.系统出错处理设计本节描述系统发生外界及内在错误时,所提供的错误信息及处理方法,它包括系统出错处理表及维护处理过程表。4.1 系统出错处理表本表给出有关出错处理的产生原因、提示信息、以及建议处理方法。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统出错处理表进行描述。系统出错处理表的格式如下:子系统编号:子系统英文名称:子系统中文名称:错误编号错误名称错误原因错误信息处理方式备注说明:其中:子系统编号含义同上。子系统英文名称含义同上。子系统中文名称含义同上。错误编号整个系统所有错误的统一编号。错误名称错误的正式名称,该名称应该是常用的,并且为人们所普遍接受的。错误原因对该错误产生原因的解释与说明。错误信息产生该错误时,向用户发出的提示信息。处理方式22 对该错误处理的一种建议,此项允许缺省。备注描述与该系统错误有关的其它注意事项。说明描述与该系统错误表有关的其它注意事项。4.2 维护处理过程表系统出错时,将调用维护处理过程对错误进行处理,有关维护处理过程的各项内容由维护处理过程表进行描述。当系统有多个子系统(模块)组成时,每个子系统分别使用一张维护处理过程表进行描述。维护处理过程表的格式如下:子系统编号:子系统英文名称:子系统中文名称:错误编号处理过程处理过程处理功能入口参数出口参数备注英文名称中文名称说明:其中:子系统编号含义同上。子系统英文名称含义同上。子系统中文名称含义同上。错误编号含义同上。处理过程英文名称系统维护处理过程的英文正式名称,将来用于软件开发中,必须符合命名规范。处理过程中文名称系统维护处理过程的中文正式名称,是系统维护处理过程英文名称的中文说明。处理功能描述本维护处理过程对错误的处理方式。由于一个维护处理过程有可能具有对多个错误进行处理的能力,因此该处理功能必须是针对本项错误编号的。入口参数进行本项错误处理时,赋给维护处理过程的入口参数。出口参数进行本项错误处理时,维护处理过程返回的出口参数。备注描述与该系统错误有关的其它注意事项。23 说明描述与该系统错误表有关的其它注意事项。5.技术设计系统技术设计描述系统各个特性实际使用的开发技术,以及具体开发技术使用时应该注意的事项。5.1 系统开发技术说明表本表描述系统各个特性开发时实际使用的具体技术,只有一些不太常用的技术需要在这里描述。一些常用技术,例如:通过数据库接口调用存储过程,则不必冗述。当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统开发技术说明表进行描述。系统开发技术说明表的格式如下:子系统编号:子系统英文名称:子系统中文名称:技术编号开发技术开发技术处理功能系统特性编号备注英文名称中文名称说明:其中:子系统编号含义同上。子系统英文名称含义同上。子系统中文名称含义同上。技术编号这个系统所使用各种技术的统一编号。开发技术英文名称该开发技术的英文正式名称,可以便用缩写。该名称应该是常用的,并且为人们所普遍接受的。开发技术中文名称该开发技术的中文正式名称,是该开发技术英文名称的中文说明。该名称应该是常用的,并且为人们所普遍接受的。处理功能描述本开发技术的处理目的。系统特性编号含义同上。由于一项开发技术可能在多处使用,因此针对一项开发技术,有可能存在多个系24 统特性编号,在此必须一一列出。备注描述与该系统开发技术相关的其它注意事项。说明描述与该系统开发技术说明表有关的其它注意事项。5.2 开发技术应用说明逐项详细描述系统开发技术说明表中所列出各项系统开发技术使用的技术要点,以及其它相关内容,例如:所需的服务、使用的动态连接库、调用的组件、等等。6.数据库设计如果该软件产品需要使用数据库,不论是使用数据库平台支撑的,还是采用由软件产品开发者自行定义的;都应该在完成软件产品需求分析报告后,开始进行软件产品详细设计之前,按照软件产品数据库设计说明文档模板完成数据库设计工作。7.词汇表列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原向)。为了便于非软件专业或者非计算机专业人士阅读软件系统概要设计报告,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。8.进度计划列出进度计划,包括各子系统、各子模块完成进度计划,人员配备计划等。25 附录 C 软件详细设计报告文档模板1.引言.271.1 编写目的 .271.2 项目风险 .271.3 文档约定 .271.4 预期读者和阅读建议.271.5 参考资料 .282.支撑环境.282.1 数据库管理系统.282.2 开发工具、中间件以及数据库接口.292.3 硬件环境 .292.4 网络环境 .302.5 多种支撑环境开发要点.303.部件详细设计.304.词汇表.315.部件表格式.326.界面表格式.3226 27 1.引言引言是对这份软件系统详细设计报告的概览,是为了帮助阅读者了解这份文档如何编写的,并且应该如何阅读、理解和解释这份文档。1.1 编写目的说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告、哪份软件产品概要设计报告和哪份软件产品数据库设计说明书(如果该软件产品需要数据库支持)编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统详细设计报告详尽说明了该软件产品的编码结构,从而对该软件产品的物理组成进行准确的描述。如果这份软件系统详细设计报告只与整个系统的某一部分有关系,那么只定义软件系统详细设计报告中说明的那个部分或子系统。1.2 项目风险具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:任务提出者;软件开发者;产品使用者。1.3 文档约定描述编写文档时所采用的标准(如果有标准的话),或者各种编写约定。编写约定应该包括:部件编号方式;界面编号方式;命名规范:等等。1.4 预期读者和阅读建议列举本软件系统详细设计报告所针对的各种不同的预期读者,例如,可能的读者包括:开发人员;项目经理;测试人员;文档编写人员;等等。描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。28 1.5 参考资料列举编写软件系统详细设计报告时所用到的参考文献及资料,可能包括:本项目的合同书;上级机关有关本项目的批文;本项目已经批准的计划任务书;用户界面风格指导;开发本项目时所要用到的标难;系统规格需求说明;使用实例文档;属于本项目的其它己发表文件;本软件系统详细设计报告中所引用的文件、资料;相关软件系统详细设计报告;等等。为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:标题名称;作者或者合同签约者;文件编号或者版本号;发表日期或者签约日期;出版单位或者资料来源。2.支撑环境2.1 数据库管理系统描述数据库管理系统、以及安装配置情况,需要描述的内容可能包括:产品名称以及发行厂商这里的产品名称指的是数据库发行厂商发布产品时公布的正式商品名称,不应该使用别名、简称、研发代号等非正式名称,以免混淆;同样的道理,发行厂商的名称也应该使用正式名称。版本号数据库管理系统的准确版本号,必须按产品的实际情况描述到最细节的版本号。补丁包版本号描述实际上将要使用的数据库管理系统补丁包的版本号,必须注意,在某些情况下该版本号不一定是最新的版本号。语言或代码集对于只支持一种语言或者一个代码集的数据库管理系统来说,该项描述不具意义。对于支持多种语言或者多个代码集的数据库管理系统来说,该项描述指的是实际使用的语言或者代码集。安装位置描述数据库管理系统的实际安装位置,应该分别对管理系统安缺位置和数据存放29 位置进行描述,应该指明服务器名和安装卷号(盘号)。对于分布式数据库,必须分别描述每一个数据库管理系统。配置参数描述数据库管理系统在实际安装时应该配置的各个参数,对于分布式数据库,必须分别描述每一个数据库管理系统的配置参数。等等同时参照南京市交通局信息化数据库建设规范。2.2 开发工具、中间件以及数据库接口描述所选用的工具软件和中间件的名称、版本号,以及开发工具与数据库或者中间件接口的情况。如果使用了多种开发工具、辅助开发工具、第三方软件部件、多种中间件、多种接口、等答应该逐项分别描述,并且说明每一项的适用范围。需要描述的内容可能包括:产品名称以及发行厂商同 2.1 中产品名称以及发行厂商。版本号同 2.1 中版本号。补丁包版本号同 2.1 中补丁包版本号。语言或代码集同 2.1 中语言或代码集。数据库接口名称描述数据库接口的名称,如果使用别名时,应同时描述使用的别名。数据库接口方式描述与数据库接口的方式,并说明该接口方式的特点;如果需要,还应该说明使用时的注意事项。数据库接口设置描述各种接口设置,包括:协议、端口号等等。同时参照南京市交通局信息化数据库建设规范。2.3 硬件环境描述所选用的硬件环境,各种机型,例如:服务器、工作站,应该分别描述。需要描述的内容可能包括:机型;主频;内存容量;磁盘容量;特殊部件;操作系统;使用位置;等等。30 2.4 网络环境描述可能影响应用软件访问数据库的各种网络环境,如果存在加密传输、VPN 链路等情况,也必须描述。对于结构复杂的网络,还应该提供网络拓扑图和数据流向示意图。需要描述的内容可能包括:网络结构;网络操作系统;网络带宽;路由组织;加密传输方式;VPN 链路连接方式;等等。2.5 多种支撑环境开发要点当软件产品将来可能遇到的多种运行环境时,应该分别按照3.1 节至 3.4 节的内容列表描述。如果软件产品各个子系统的运行环境不完全一样时,应该分子系统按照3.1 节至 3.4节的内容列表描述。遇到上述情况时,不仅