软件开发 订阅
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 展开全文
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
信息
中文名
软件开发
外文名
Software development
含    义
根据用户需求编写指定软件的行为
软件开发阶段划分
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
收起全文
精华内容
参与话题
问答
  • 软件开发文档

    万次阅读 2018-05-02 14:18:22
    2.2 软件开发平台要求 2.3 软件项目的开发实施过程管理要求 2.3.1 软件项目实施过程总体要求 2.3.2 软件项目实施变更要求 2.3.3 软件项目实施里程碑控制 3. 软件开发 3.1 软件的需求分析 3.1.1 需求...

    忘了转载谁的了,不好意思,找不到原来的地址了。

    1. 范围

    2. 总体要求

    2.1 总体功能要求

    2.2 软件开发平台要求

    2.3 软件项目的开发实施过程管理要求

    2.3.1 软件项目实施过程总体要求

    2.3.2 软件项目实施变更要求

    2.3.3 软件项目实施里程碑控制

    3. 软件开发

    3.1 软件的需求分析

    3.1.1 需求分析

    3.1.2 需求分析报告的编制者

    3.1.3 需求报告评审

    3.1.4 需求报告格式

    3.2 软件的概要设计

    3.2.1 概要设计

    3.2.2 编写概要设计的要求

    3.2.3 概要设计报告的编写者

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别

    3.2.5 概要设计的评审

    3.2.6 概要设计格式

    3.3 软件的详细设计

    3.3.1 详细设计

    3.3.2 特例

    3.3.3 详细设计的要求

    3.3.4 数据库设计

    3.3.5 详细设计的评审

    3.3.6 详细设计格式

    3.4 软件的编码

    3.4.1 软件编码

    3.4.2 软件编码的要求

    3.4.3 编码的评审

    3.4.4 编程规范及要求

    3.5 软件的测试

    3.5.1 软件测试

    3.5.2 测试计划

    3.6 软件的交付准备

    3.6.1 交付清单

    3.7 软件的鉴定验收

    3.7.1 软件的鉴定验收

    3.7.2 验收人员

    3.7.3 验收具体内容

    3.7.4 软件验收测试大纲

    3.8 培训

    3.8.1 系统应用培训

    3.8.2 系统管理的培训(可选)

    附录A  软件需求分析报告文档模板

    附录B  软件概要设计报告文档模板

    附录C  软件详细设计报告文档模板

    附录D  软件数据库设计报告文档模板

    附录E  软件测试(验收)大纲5

     

     

     

    1. 范围

    本指南用于指导软件开发者为南京市交通局开发软件项目的过程,通过规范软件项目承担单位的开发过程达到提高软件质量,降低维护成本的目的。开发者应根据本指南进行软件开发和编制软件开发文档。本指南是对软件项目承担单位的基本要求。在本指南的附录A至E中提供了文档的编写模板供开发者参考,在进行具体软件开发时,开发者可根据实际情况采编写,但必须提供双方约定的文档,文档中约定的内容必须描述清楚。

    2. 总体要求

    2.1 总体功能要求

    网络应用环境以Internet/Intranet技术为核心。

    开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。

    软件系统的数据库应依照《南京市交通局信息化数据库建设规范》进行设计和建设。

    本指南中没有规定开发者采用何种具体的软件工程开发方法,开发者可根据项目具体特点、自身擅长来选择采用面向过程的方法、面向对象的方法或面向数据的方法,但建议开发    商使用面向对象软件工程的方法,如:采用目前被广泛使用的RUP(Rational Unified Process)方法来进行分析、设计和开发。

    2.2 软件开发平台要求

    开发者开发的软件必须能够在南京市交通局规定的软件平台上正常运行。目前软件平台为:

    数据库管理系统:

    Oracle 9i以上版本

    中间件(应用服务器)系统:

    IBM WebSphere

    OA系统:

    Lotus Domino/Notes

    网络架构:

    完全支持TCP/IP协议

    开发工具或技术体系:

    为保证软件的上下兼容性,开发者应选择比较通用的开发工具的较新版本进行开发,如Microsoft Visual Studio.Net,Borland Delphi,C++ Builder, 或J2EE(Java2 P1atform Enterprise Edition)等。   

    2.3 软件项目的开发实施过程管理要求

    2.3.1 软件项目实施过程总体要求

                   (一)开发者提交软件开发工作大纲,交通局组织专家组对工作大纲进行评审,并提出整改意见。

                   (二)通过评审后,开发者根据整改意见完善工作大纲,经过交通局认可后组织项目组进行软件开发。软件开发工作按照需求分析、概要设计、详细设计、编码、测试等几个阶段进行,在开发过程中,开发者需分阶段提交相关文档。

                   (三)在软件开发工作完成后,开发者应向交通局提交完整的软件文档,交通局组织验收组对软件进行验收审查。

    2.3.2 软件项目实施变更要求

    在开发过程中,需求或设计不可避免地需要发生变更,相关变更必须经过交通局书面同  意方可进行。在需求或设计发生变更时,需要对原有文档进行修改,并提供完整的变更记录,  以使变更处于可控制的状态。变更单如下表所示:

    表 2-1 变更单

    需求变更申请

    申请变更的需求文档

            输入名称,版本,日期等信息

    变更的内客及其理由

                                       

    评估需求变更将对

    项目造成的影响

                                       

                                       

    申请人签字

                                        

    变更申请的审批意见

     

    项目经理签字

      审批意见:                       

     

                               签字   日期               

    客户签字

    (合同项目)

      审批意见:                      

     

                               签字   日期               

    更改需求文档

    变更后的

    需求文档

      输入名称,版本,完成日期等信息    

                                       

    更改人签字

                                       

    重新评审需求文档

     

    需求评审小组签字

     

      评审意见:                       

                                       

                               签字   日期               

    变更结束

    项目经理签字

                               签字   日期 

    2.3.3 软件项目实施里程碑控制

    交通局将分四个阶段进行把关,召开专家审查会。

                   (一) 需求分析(结合原型进行审查)确认;

                   (二) 概要设计+数据库设计;

                   (三) 预验收(试运行后);

                   (四) 正式验收(推广使用后)。

    3. 软件开发

    合同签订以后,项目承担单位即可组织项目组进行软件开发工作。软件开发必须严格按照软件工程的要求进行。开发过程包括开发者的活动和任务。此过程由软件需求分析、概要设计、详细设计、编码、测试、验收、鉴定等活动组成。

    3.1 软件的需求分析

    3.1.1 需求分析

    首先,开发者和交通局应共同对交通局的应用需求作充分的调研,提交完整的需求分析  报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属 性、外部接口。应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的  结果,而不是获得这些结果的手段。

    软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。

    编写需求分析报告的要求

    a.无歧义性

    对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。

    b.完整性

    需求分析报告应该包括全部有意义的需求,无论是关系到功能的、性能的、设计约束的、还是关系到外部接口方面的需求;对所有可能出现的输入数据的响应予以定义,要对合法和非合法的输入值的响应做出规定;填写全部插图、表、图示标记等;定义全部术语和度量单位。

    c.可验证性

    需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来检查软件产品是否满足需求。

    d.一致性

    在需求分析报告中的各个需求的描述不能互相矛盾。

    e.可修改性

    需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需求不能在需求分析报告中出现多次。

    f.可追踪性

    每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证每一个需求。

    g.运行和维护阶段的可使用性

    需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来源和目的。

    3.1.2 需求分析报告的编制者

    需求分析报告应由交通局和开发者双方共同完成。其中:交通局负责根据实际需要提出希望软件实现的功能;软件开发者根据交通局提出的性能需求,结合软件开发编写需求分析。

    3.1.3 需求报告评审

    在软件需求分析工作完成后,软件开发者应向交通局提交《软件需求分析报告》。交通局组织有关人员对需求进行评审,以决定软件需求是否完善和恰当。评审完成后,就可以进入软件的设计阶段。

    3.1.4 需求报告格式

    《软件需求分析报告》需按一定的格式进行编写,具体的《软件需求分析报告》文档编写模板请见附录A。

    3.2 软件的概要设计

    3.2.1 概要设计

    在交通局和开发者双方认可的《需求分析报告》基础上,开发者进行下——步的工作。    首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计    进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、    运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

    3.2.2 编写概要设计的要求

    a.一致性

    概要设计的要求应该与需求分析报告所描述的需求一致。同时,概要设计的各项要求之间也应该一致。

    b.合理性

    概要设计所提出的设计方法和标准应该是合理的、恰当的。

    c.可追踪性

    对概要设计所提出的各项要求应该可以得到它的清晰的源流,即在需求分析报告客户有明确的需求描述。

    d.可行性

    根据概要设计进行详细设计、操作和维护应该是可行的。

    3.2.3 概要设计报告的编写者

    概要设计报告由开发者根据需求分析报告的要求进行编写。

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别

     需求分析不涉及具体的技术实现,而概要设计注重于从宏观上和框架上来描述采用何种技术手段、方法来实现这些需求。详细设计相对概要设计更注重于微观上和框架内的设计,    是编码的依据。概要设计是指导详细设计的依据。

    3.2.5 概要设计的评审

    在软件概要设计工作完成后,软件开发者应向交通提交《软件系统概要设计报告》。在交通局对《概要设计报告》评审通过后,即可进入详细设计阶段。

    3.2.6 概要设计格式

    《软件系统概要设计报告》需按一定的格式进行编写,具体的《软件系统概要设计报    告》文档编写模板请见附录B。

    3.3 软件的详细设计

    3.3.1 详细设计

    在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实    现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证    软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

    3.3.2 特例

    如果软件系统比较简单,层次较少,可以不必进行专门的详细设计,而和概要设计结合起来。

    3.3.3 详细设计的要求

    a.一致性

    详细设计的要求应该与需求分析报告所描述的需求、与概要设计一致。同时,详细设计的各项要求之间也应该是一致的。

    b.合理性

    详细设计所提出的设计方法和标准应该是合理的、恰当的。

    c.可追踪性

    对详细设计所提出的各项要求应该可以得到它的清晰的源流,即可在需求分析报告、概要设计报告中有明确的需求描述。

    d.可行性

    根据详细设计进行编码、测试、操作和维护应该是可行的。

    3.3.4 数据库设计

    如果软件产品需要使用到数据库,软件的详细设计应包括对数据库的设计。数据库设计应在软件的需求分析、概要设计完成之后、详细设计的其它工作之前进行。在进行数据库设计时,应当按照交通局制定的《南京市交通局信息化数据库建设规范》要求进行。

    3.3.5 详细设计的评审

    在软件详细设计完成后,软件开发者应向交通局提交《软件系统数据库设计报告》和《软件系统详细设计报告》。在交通局对《软件系统数据库设计报告》、《软件系统详细设计报告》评审通过后,即可进入软件编码阶段。

    3.3.6 详细设计格式

    《软件系统详细设计报告》、《软件系统数据库设计报告》需按一定的格式进行编写,    具体的《软件系统详细设计报告》文档编写模板和《软件系统数据库设计报告》文档编写模    板请见附录C、附录D。

    3.4 软件的编码

    3.4.1 软件编码

    在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。

    3.4.2 软件编码的要求

    a.模块化编码

    b.代码可读性

    c.可维护性

    d.模块接口标准化

    e.界面风格统一

    e.注释的应用

    3.4.3 编码的评审

    为了尽早发现软件中的障碍,提高软件产品的质量,开发者在编码的过程中应该强调代码评审工作。将代码评审报告作为文档的一部分,提交给交通局。

    3.4.4 编程规范及要求

    为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。

    主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。

    其中数据库部分应遵守《南京市交通局信息化数据库建设规范》的要求。

    在软件编码的同时应进行单元测试。

    3.5 软件的测试

    3.5.1 软件测试

    为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表    现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时。测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。

    开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。

    3.5.2 测试计划

    在软件编码开始之前,开发者应向交通局提交《测试计划》,在软件交付时,开发者应向交通局提交《软件测试报告》,以确保开发者的软件得到了充分的测试。开发的软件必须经过充分的测试证明其符合设计要求、运行稳定、安全可用方可交付交通局。

    3.6 软件的交付准备

    3.6.1 交付清单

    在软件测试证明软件达到要求后,软件开发者应向交通局提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。

    《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。

    《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。

    3.7 软件的鉴定验收

    3.7.1 软件的鉴定验收

    在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。在开发者如期交付软件后,由交通局负责确定具体的鉴定验收日期。

    3.7.2 验收人员

    由交通局聘请具有一定的分析、设计、编程和软件测试经验的验收组长和其他专业人员组成。验收组设组长一名(可设有副组长),负责整个验收的计划、组织工作。

    3.7.3 验收具体内容

    验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

    合法性检查检查软件开发工具是否合法、使用的函数库、控件、组件是否有合法的发布许可。

    文档检查检查开发者提交的文档必须齐全,质量是否过关。需要开发者提供的文档包括:

    项目实施计划;

    详细技术方案;

    软件需求规格说明书(STP)(含数据字典);

    概要设计说明书(PDD);

    详细设计说明书(DDD)(含数据库设计说明书);

    软件测试计划(STP)(含测试用例);

    软件测试报告(STR);

    用户手册(SUM)(含操作、使用、维护、应急处理手册);

    源程序(SCL)(不可修改的电子文档);

    项目实施计划(PIP);

    项目开发总结(PDS);

    软件质量保证计划(SQAP);

    此外,验收组可以根据需要对其它文档(如软件配置计划、项目进展报表、阶段评审报    表等)进行检查。

    文档的质量根据完备性、正确性、简明性、可追踪性、自说明性、规范件等方面进行踪合评定。

    验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。

    3.7.4 软件验收测试大纲

    在软件进行鉴定验收前,开发者需按照一定的格式编写《软件验收测试大纲》,具体的格式请见附录E。

     

    3.8 培训

    3.8.1 系统应用培训

    主要培训内容包括:系统操作使用、业务管理流程。

    培训对象:应用操作人员。

    3.8.2 系统管理的培训(可选)

    主要培训内容包括:系统安装、调试、维护;系统管理。

    培训对象:系统管理人员。

    开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录A  软件需求分析报告文档模板

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 产品范围

    1.6 参考文献

    2. 综合描述

    2.1 产品的状况

    2.2 产品的功能

    2.3 用户类和特性

    2.4 运行环境

    2.5 设计和实现上的限制

    2.6 假设和约束(依赖)

    3. 外部接口需求

    3.1 用户界面

    3.2 硬件接口

    3.3 软件接口

    3.4 通讯接口

    4. 系统功能需求

    4.1 说明和优先级

    4.2 激励/响应序列

    4.3 输入/输出数据

    5. 其它非功能需求

    5.1 性能需求

    5.2 安全措施需求

    5.3 安全性需求

    5.4 软件质量属性

    5.5 业务规则

    5.6 用户文档

    6. 词汇表

    7. 数据定义

    8. 分析模型

    9. 待定问题列表

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件产品需求分析报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格,包括修正和(或)发行版本号,从而对该软件产品进行准确的定义。

    如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:

    ●  正文风格;

    ●  提示方式;

    ●  重要符号;

    也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。

    1.4 预期读者和阅读建议

    列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:

    ●  用户;

    ●  开发人员;

    ●  项目经理;

    ●  营销人员;

    ●  测试人员;

    ●  文档编写入员。

    并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 产品范围

    说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。

    描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。

    1.6 参考文献

    列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标淮;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它己发表文件;

    ●  本软件产品需求分析报告中所引用的文件、资料;

    ●  相关软件产品需求分析报告;

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 综合描述

    这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。

    2.1 产品的状况

    描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:

    ●  是否是产品系列中的下一成员;

    ●  是否是成熟产品所改进的下一代产品;

    ●  是否是现有应用软件的替代品(升级产品);

    ●  是否是一个新型的、自主型的产品。

    如果该软件产品需求分析报告定义的软件系统是:

    ●  大系统的一个组成部分;

    ●  与其它系统和其它机构之间存在基本的相互关系。

    那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。

    2.2 产品的功能

    因为将在需求分析报告的第4部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利读者理解本软件产品。

    为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。

    参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。

    2.3 用户类和特性

    确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。

    用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。

    2.4 运行环境

    描述了本软件的运行环境,一般包括:

    ●  硬件平台;

    ●  操作系统和版本;

    ●  支撑环境(例如:数据库等)和版本;

    ●  其它与该软件有关的软件组件;

    ●  与该软件共存的应用程序。

    2.5 设计和实现上的限制

    确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:

    ●  必须使用的特定技术、工具、编程语言和数据库;

    ●  避免使用的特定技术、工具、编程语言和数据库;

    ●  要求遵循的开发规范和标准

    例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准;

    ●  企业策略的限制;

    ●  政府法规的限制;

    ●  工业标准的限制;

    ●  硬件的限制

    例如,定时需求或存储器限制;

    ●  数据转换格式标淮的限制。

    2.6 假设和约束(依赖)

    列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:

    ●  计划使用的商业组件,或者其它软件中的某个部件;

    ●  假定产品中某个用户界面将符合一个特殊的设计约定;

    ●  有关本软件用户的若干假定(例如:假定用户会熟练使用SQL语言。);

    ●  有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。);

    ●  有关本软件运行环境的一些问题;

    此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:

    ●  工期约束;

    ●  经费约束;

    ●  人员约束;

    ●  设备约束;

    ●  地理位置约束;

    ●  其它有关项目约束;

    3. 外部接口需求

    通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。

    注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。

    3.1 用户界面

    陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:

    ●  将要采用的图形用户界面(GUl)标准或者产品系列的风格;

    ●  有关屏幕布局或者解决方案的限制;

    ●  将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:

    n  选单;

    n  标准按钮;

    n  导航链接;

    n  各种功能组件;

    n  消息栏;

    ●  快捷键;

    ●  各种显示格式的规定,可能包括:

    n  不同情况下文字的对齐方式;

    n  不同情况下数字的表现格式与对齐方式

    n  日期的表现方法与格式;

    n  计时方法与时间格式;

    n  等等。

    ●  错误信息显示标准;

    对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。

    如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。

    3.2 硬件接口

    描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:

    ●  支持的硬件类型;

    ●  软、硬件之间交流的数据;

    ●  控制信息的性质;

    ●  使用的通讯协议;

    3.3 软件接口

    描述该软件产品与其它外部组件的连接,这些外部组件必须明确它们的名称和版本号以资识别,可能的外部组件包括:

    ●  操作系统;

    ●  数据库;

    ●  工具;

    ●  函数库;

    ●  集成的商业组件

    说明:这里所说的“集成的商业组件”,是指与系统集成的商业组件,而不是与软件产品集成的商业组件。例如:中间件、消息服务,等等。

    描述并且明确软件产品与软件组件之间交换数据或者消息的目的。描述所需要的服务,以及与内部组件通讯的性质。确定软件产品将与组件之间共享的数据。如果必须使用一种特殊的方法来实现数据共享机制,例如:在多用户系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。

    3.4 通讯接口

    描述与软件产品所使用的通讯功能相关的需求,包括:

    ●  电子邮件;

    ●  WEB浏览器;

    ●  网络通讯标准或者协议;

    ●  数据交互用电子表格;

    必须定义相关的:

    ●  消息格式;

    ●  通讯安全或加密问题;

    ●  数据传输速率;

    ●  同步和异步通讯机制;

    4. 系统功能需求

    需要进行详细的需求记录,详细列出与该系统功能相关的详细功能需求,并且,唯一地标识每一项需求。这是必须提交给用户的软件功能,使得用户可以使用所提供的功能执行服务或者使用所指定的使用实例执行任务。描述软件产品如何响应己知的出错条件、非法输入、非法动作。

    如果每一项功能需求都能用一项,也只需要用一项测试用例就能进行验证,那么就可以认为功能需求已经适当地进行描述了。如果某项功能需求找不到合适的测试用例,或者必须使用多项测试用例才能验证,那么该项功能需求的描述必然存在某些问题。

    功能需求是根据系统功能,即软件产品所提供的主要服务来组织的。可以通过使用实例、运行模式、用户类、对象类或者功能等级来组织这部分内容,也可以便用这些元素的组合。总而言之,必须选择一种是读者容易理解预期产品的组织方案。

    用简短的语句说明功能的名称,例如:“4.1系统参数管理”。按照服务组织的顺序,逐条阐述系统功能。无论说明的是何种功能,都应该针对该系统功能重复叙述4.1~ 4.3这三个部分。

    可以通过各种方式来组织这一部分内容,例如采用:使用实例、运行模式、用户类、对象类、功能等级等,也可以采用它们的组合。其最终目的是,让读者容易理解即将开发的软件产品。一般来说,每个使用实例都对应一个系统功能,因而按照使用实例来组织内容比较容易让用户理解。

    对应一些被共享的独立使用实例,可以定义一些公用系统功能。

    必须特别注意的是,在2.2节“产品的功能”中描述的全部需求,以及它们的规格说明;必须在某个系统功能描述中有所反映,而且不应重复。

    4.1 说明和优先级

    对该系统功能进行简短的说明,并且指出该系统功能的优先级是:高、中、还是低。需要的话,还可以包括对特定优先级部分的评价,例如:利益、损失、费用和风险,其相对优先等级可以从1(低)到9(高)。

    4.2 激励/响应序列

    列出输入激励(用户动作、来自外部设备的信号或者其它触发)并且定义针对这——功能行为的系统响应序列,这些序列将与使用实例中相关的对话元素相对应。

    描述激励/响应序列时,不仅需要描述基本过程,而且应该描述可选(扩充)过程,包括例外(引起任务不能顺序完成的情况称为例外)。疏忽了可选过程,有可能影响软件产品的功能;如果遗漏例外过程,则有可能会引发系统崩溃。

    如果采用流程图来描述激励/响应序列,比较容易让用户理解。

    4.3 输入/输出数据

    列出输入数据(用户输入、来自外部接口的输入或者其它输入)并且定义针对这些输入数据的处理(计算)方法,以及相应地输出数据,描述对应区别:输入数据和输出数据。

    当有大量数据需要描述时,也可以分类描述数据,并且注明各项数据的输入、输出属性。

    对于每一项数据,均需要描述:

    ●  数据名称;

    ●  实际含义;

    ●  数据类型;

    ●  数据格式;

    ●  数据约束;

    对于复杂的处理方法,仅仅给出算法原理是不够的,必须描述详细的计算过程,并且列出每一步具体使用的实际算式;如果计算过程中涉及查表、判断、迭代等处理方法,应该给出处理依据和相关数据。如果计算方法很简单,也可以将其从略,不加描述。

    5. 其它非功能需求

    在这里列举出所有非功能需求,主要包括可靠性、安全性、可维护性、可扩展性、可测试性等。

    5.1 性能需求

    阐述不同应用领域对软件产品性能的需求,并且说明提出需求的原理或者依据,以帮助开发人员做出合理的设计选择。尽可能详细地描述性能需求,如果需要,可以针对每个功能需求或者特征分别陈述其性能需求。在这里确定:

    ●  相互合作的用户数量;

    ●  系统支持的并发操作数量;

    ●  响应时间;

    ●  与实时系统的时间关系:

    ●  容量需求

    n  存储器;

    n  磁盘空间;

    n  数据库中表的最大行数。

    5.2 安全措施需求

    详尽陈述与软件产品使用过程中可能发生的损失、破坏、危害相关的需求。定义必须采取的安全保护或动作,以及必须预防的潜在危险动作。明确软件产品必须遵从的安全标准、策略、或规则。

    5.3 安全性需求

    详尽陈述与系统安全性、完整性问题相关的需求,或者与个人隐私问题相关的需求。这些问题将会影响到软件产品的使用,和软件产品所创建或者使用的数据的保护。定义用户身份认证,或备授权需求。明确软件产品必须满足的安全性或者保密性策略。也可以通过称为完整性的质量属性来阐述这些需求。一个典型的软件系统安全需求范例如下:“每个用户在第一次登录后,必须更改他的系统预置登录密码,系统预置的登录密码不能重用。”

    5.4 软件质量属性

    详尽陈述对客户和开发人员至关重要的在软件产品其它方面表现出来的质量功能。这些功能必须是确定的、定量的、在需要时是可以验证的。至少也应该指明不同属性的相对侧重点,例如:易用性优于易学性,或者可移植性优于有效性。

    5.5 业务规则

    列举出有关软件产品的所有操作规则,例如:那些人在特定环境下可以进行何种操作。这些本身不是功能需求,但是他们可以暗示某些功能需求执行这些规则。一个业务规则的范例如下:“进行达到或者超过10,000,00元人民币的储蓄业务时,必须通过附加的管理员认证。”

    列举业务规则时,可以根据规则的数量,选取合适的编目方式。

    5.6 用户文档

    列举出将与软件产品一同交付的用户文档,并且明确所有己知用户文档的交付格式或标准,例如:

    ●  安装指南

    纸质文档,16开本;

    ●  用户手册

    纸质文档,16开本;

    ●  在线帮助

    ●  电子文档,与软件产品一同分发、配置;

    ●  使用教程电子文档,与软件产品一同分发、配置。

    6. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士阅读软件产品需求分析报告,要求使用非软件专业或者非计算机专业的术语描述软件需求。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表并且加以准确定义。

    7. 数据定义

    数据定义是一个定义了应用程序中使用的所有数据元素和结构的共享文档,其中对每个数据元素和结构都准确描述:含义、类型、数据大小、格式、计量单位、精度以及取值范围。数据定义的维护独立于软件需求规格说明,并且在软件产品开发和维护的任何阶段,均向风险承担者开放。

    如果为软件开发项目创建一个独立的数据定义,而不是为每一项特性描述有关的数据项,有利于避免冗余和不一致性。但是却不利于多人协同编写需求分析报告,容易遗漏数据,也不方便阅读。因此还是建议为每个特性描述有关的数据项,汇总数据项创建数据定义,再根据数据定义复核全部数据,使得它们的名称和含义完全一致。必须注意的是,为了避免二义性,在汇总数据项时应该根据数据项所代表的实际意义汇总,而不是根据数据项的名称汇总。

    在数据定义中,每个数据项除了有一个中文名称外,还应该为它取一个简短的英文名称,该英文名称应该符合命名规范,因为在软件开发时将沿用该英文名称。可以使用等号表示数据项,名称写在左边,定义写在右边。常见数据项的描述方式如下:

    ●  原数据元素

    一个原数据元素是不可分解的,可以将一个数量值赋给它。定义原数据元素必须确定其

    含义、类型、数据大小、格式、计量单位、精度以及取值范围。采用以星号为界的一行

    注释文本,描述原数据元素的定义。

    ●  选择项

    选择项是一种只可以取有限离散值的特殊原数据元素,描述时一一枚举这些值,并用方

    括号括起来写在原数据元素的定义前。在两项离散值之间,使用管道符分隔。

    ●  组合项

    组合项是一个数据结构或者记录,其中包含了多个数据项。这些数据项可以是原数据元

    素,也可以是组合数据项,各数据项之间用加号连接。其中每个数据项都必须是数据定

    义中定义过的,结构中也可以包括其它结构,但是绝对不允许递归。如果数据结构中有

    可选项,使用圆括号把该项括起来。

    ●  重复项

    重复项是组合项的一种特例,其中有一项将有多个实例出现在数据结构中,使用花括号

    把该项括起来。如果知道该项可能允许的范围,就按“最小值:最大值”的形式写在花

    括号前。

    8. 分析模型

    这是一个可选部分,包括或涉及到相关的分析模型,例如:

    ●  数据流程图;

    ●  类图;

    ●  状态转换图;

    ●  实体-关系图。

    9. 待定问题列表

    编辑一张在软件产品需求分析报告中待确定问题时的列表,把每一个表项都编上号,以便跟踪调查。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录B 软件概要设计报告文档模板

     

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 预期读者和阅读建议

    1.4 参考资料

    2. 设计概述

    2.1 限制和约束

    2.2 设计原则和设计要求

    3. 系统逻辑设计

    3.1 系统组织设计

    3.2 系统结构设计

    3.2.1 系统特性表

    3.2.2 系统特性结构图

    3.3 系统接口设计

    3.3.1 系统接口表

    3.3.2 系统接口传输协议说明

    3.4 系统完整性设计

    4. 系统出错处理设计

    4.1 系统出错处理表

    4.2 维护处理过程表

    5. 技术设计

    5.1 系统开发技术说明表

    5.2 开发技术应用说明

    6. 数据库设计

    7. 词汇表

    8. 进度计划

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件系统概要设计报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件系统概要设计报告是基于哪份软件产品需求规格说明书编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统概要设计报告详尽说明了该软件产品的软件结构,包括数据库结构和出错处理,从而对该软件产品的结构的描述。

    如果这份软件系统概要设计报告只与整个系统的某一部分有关系,那么只定义软件系统概要设计报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 预期读者和阅读建议

    列举本软件系统概要设计报告所针对的各种不同的预期读者,例如,可能的读者包括:

    ●  用户;

    ●  开发人员;

    ●  项目经理;

    ●  营销人员;

    ●  测试人员;

    ●  文档编写人员;

    ●  等等。

    描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.4 参考资料

    列举编写软件产品概要设计报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标准;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它已发表文件;

    ●  本软件系统概要设计报告中所引用的文件、资料:

    ●  相关软件系统概要设计报告:

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 设计概述

    本节描述现有开发条件和需要实现的目标,说明进行概要设计时应该遵循的设计原则和必须采用的设计方法。

    2.1 限制和约束

    简要描述起到限制和约束作用的各种可能存在的条件,例如:

    ●  技术条件;

    ●  资金状况;

    ●  开发环境(包括:工具和平台);

    ●  时间限制;

    ●  等等。

    并且说明在上述条件下,应该实现的系统目标,

    2.2 设计原则和设计要求

    描述对本软件系统进行概要设计的原则,通常可以考虑以下几方面的内容:

    ●  命名规则;

    ●  模块独立性原则:

    ●  边界设计原则;

    ●  数据库设计规则;

    ●  必须的安全措施;

    ●  安全性和保密原则;

    ●  系统灵活性要求;

    ●  系统易操作性要求;

    ●  系统可维护性要求;

    ●  等等。

    3. 系统逻辑设计

    本节内容主要根据软件产品需求规格说明书和软件产品数据字典建立系统的逻辑模型。此种模型暂时与系统的物理因素(例如:计算机、数据库管理系统)无关。它是系统需求与物理实现的中间结构,它的主要结果是建立:系统结构图、系统界面结构图、系统出错处理、以及系统开发技术说明。

    说明:如果进行系统设计时尚未编写软件数据字典:应首先参照附录B说明,编写软件数据字典。在完成软件数据字典后,再进行系统设计。

    3.1 系统组织设计

    系统组织设计通过系统组织表描述本系统由哪些子系统(模块)组成,这些子系统与业务职能之间的关系,以及各个子系统的安装地点。系统组织表的格式如下:

    子系统编号

    英文名称

    中文名称

    业务职能

    安装地点

    备注

     

     

     

     

     

     

    其中:

    ●  子系统编号

    给出本系统中指定子系统的顺序编号。如果本系统末划分为多个子系统,仅由一

    个运行模块组成;则本项内容仍需要描述,但是本表内容只有一行。

    说明:在一个系统中有可能安装若干个相同的子系统,在这种情况下,应该视为

    一个子系统,并且对多个安装地点分别进行描述。如果相同的子系统通过系统设

    置,实现的业务职能具有明显差异时,应该采用多行进行分别描述,并且在备注

    中说明其差异所在。

    ●  子系统英文名称

    给出本子系统的英文名称,该名称是在应用软件中实际使用的可执行文件名称,

    必须能够说明该子系统的特点。

    若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。

    ●  子系统中文名称

    给出本子系统的中文名称,该名称必须能够说明该子系统的特点。

    若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。

    ●  业务职能

    描述该子系统完成的核心业务。

    ●  安装地点

    描述该子系统实际安装的部门、或者某个具体地点。

    ●  备注

    针对该子系统,需要说明的其它有关问题。

    3.2 系统结构设计

    本节将对系统特性作较为详细的描述,并给出系统特性结构图。

    3.2.1 系统特性表

    系统特性是系统中完成某项具体操作的基本单元,它由入口参数,出口参数以及处理过程三部分组成。

    系统特性可以具有操作界面,也可以没有操作界面;可以被其它操作界面、或者系统特性调用,也可以调用其它操作界面、非操作界面、或者系统特性;但是不允许递归调用(调用自己),包括间接递归调用。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统特性表进行描述。系统特性表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    特性编号

    系统特征

    英文名称

    系统特征

    中文名称

    操作功能

    调用对象

    被调用

    对象

    备注

     

     

     

     

     

     

     

    说明:

    其中

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  特性编号

    整个系统所有特性的统一编号。

    ●  系统特性英文名称

    系统特性的英文正式名称,将来用于软件开发中,必须符合命名规范。

    ●  系统特性中文名称

    系统特性的中文正式名称,来源于需求规格说明书中,系统特性一节中的有关描

    述。

    ●  操作功能

    是指该特性实际完成的操作说明。

    ●  调用对象

    是指调用该系统特性的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。

    ●  被调用对象

    是指被该系统特性调用的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。

    说明:某些较低层的系统特性,可能不存在被调用对象。

    ●  备注

    描述与该系统特性有关的其它注意事项。

    ●  说明

    描述与该系统特性表有关的其它注意事项。

    3.2.2 系统特性结构图

    系统特性结构图给出系统特性在逻辑层面上相互之间的关系,其主要依据来源于需求规格说明书中,系统特性一节中的有关描述。

    如果系统划分为多个子系统,应分别给出系统与子系统、以及各个子系统与系统特性的结构图。

    绘制系统与子系统结构图时,一般不需要描绘出系统特性,如果确有必要,尽可能只画出第一层系统特性。绘制子系统与系统特性结构图时,通常也不需要描绘出第二层系统特性,如果确有必要可以画出,但是尽可能不要画出第三层系统特性。

    3.3 系统接口设计

    系统接口是一种非可视的系统界面,在多数情况下,它对用户是透明的。

    本节将对系统接口作较为详细的描述,并给出接口说明清单。

    3.3.1 系统接口表

    接口作为系统的一种输入/输出形式,分为网络接口、数据库接口、RS-232串行通讯接口、IEEE—485串行总线接口、并行I/O接口等等多种类型。

    对于一些为可视界面服务的接口,例如:打印机接口、显示器接口等,因为这类接口对应用软件是透明的,所以不在本节描述范围内。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统接口表进行描述。系统接口表的格式如下:

    子系统编号

    子系统英文名称

    子系统中文名称

    接口

    编号

    接口

    名称

    接口

    类型

    接口

    性质

    接口

    速率

    接口

    协议

    备注

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  接口编号

    整个系统所有接口的统一编号。

    ●  接口名称

    系统接口的正式名称,必须符合通常习惯。

    ●  接口类型

    指出该接口所传输的数据在该模块中起到的作用。

    ●  接口性质

    指出该接口在通讯中起到的作用,这里的作用可以是:

    n 输入;

    n 输出;

    n 双向。

    ●  接口速率

    指出该接口的传输速率。如果该接口依赖于其它通讯方式,那么传输速率将不高于它所依赖的其它通讯方式的速率。

    ●  接口协议

    给出该接口实际使用的通讯协议。

    ●  相关对象

    给出直接使用本接口的系统对象,这里的系统对象,可以是操作界面,也可以是系统特性。

    ●  备注

    描述与该系统接口有关的其它注意事项。

    ●  说明

    描述与该系统接口表有关的其它注意事项。

    3.3.2 系统接口传输协议说明

    逐项详细描述系统接口表中所列出各个系统接口使用的传输协议,以及其它相关内容,例如:驱动程序、动态连接库、等等。

    3.4 系统完整性设计

    描述系统对象(数据元、数据类),所受到的逻辑约束关系。

    当系统由多个子系统(模块)组成时,每个子系统应分别使用一张系统完整性约束表进行描述。系统完整性约束表的格式如下:

    子系统编号

    子系统英文名称

    子系统中文名称

    约束编号

    完整性名称

    相对对象名

    约束表达式

    备注

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  约束编号

    整个系统所有约束的统一编号。

    ●  完整性名称

    系统完整性约束的正式名称,必须符合通常习惯。

    ●  相对对象名

    完整性约束中的相关对象(数据元和数据类)。

    ●  约束表达式

    用一阶逻辑表达式表达的约束方程式。

    ●  备注

    描述与该系统完整性约束有关的其它注意事项。

    ●  说明

    描述与该系统完整性约束表有关的其它注意事项。

    4. 系统出错处理设计

    本节描述系统发生外界及内在错误时,所提供的错误信息及处理方法,它包括系统出错处理表及维护处理过程表。

    4.1 系统出错处理表

    本表给出有关出错处理的产生原因、提示信息、以及建议处理方法。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统出错处理表进行描述。系统出错处理表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    错误编号

    错误名称

    错误原因

    错误信息

    处理方式

    备注

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  错误编号

    整个系统所有错误的统一编号。

    ●  错误名称

    错误的正式名称,该名称应该是常用的,并且为人们所普遍接受的。

    ●  错误原因

    对该错误产生原因的解释与说明。

    ●  错误信息

    产生该错误时,向用户发出的提示信息。

    ●  处理方式

    对该错误处理的一种建议,此项允许缺省。

    ●  备注

    描述与该系统错误有关的其它注意事项。

    ●  说明

    描述与该系统错误表有关的其它注意事项。

    4.2 维护处理过程表

    系统出错时,将调用维护处理过程对错误进行处理,有关维护处理过程的各项内容由维护处理过程表进行描述。

    当系统有多个子系统(模块)组成时,每个子系统分别使用一张维护处理过程表进行描述。维护处理过程表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    错误编号

    处理过程

    处理过程

    处理功能

    入口参数

    出口参数

    备注

    英文名称

    中文名称

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  错误编号

    含义同上。

    ●  处理过程英文名称

    系统维护处理过程的英文正式名称,将来用于软件开发中,必须符合命名规范。

    ●  处理过程中文名称

    系统维护处理过程的中文正式名称,是系统维护处理过程英文名称的中文说明。

    ●  处理功能

    描述本维护处理过程对错误的处理方式。

    由于一个维护处理过程有可能具有对多个错误进行处理的能力,因此该处理功能

    必须是针对本项错误编号的。

    ●  入口参数

    进行本项错误处理时,赋给维护处理过程的入口参数。

    ●  出口参数

    进行本项错误处理时,维护处理过程返回的出口参数。

    ●  备注

    描述与该系统错误有关的其它注意事项。

    ●  说明

    描述与该系统错误表有关的其它注意事项。

    5. 技术设计

    系统技术设计描述系统各个特性实际使用的开发技术,以及具体开发技术使用时应该注意的事项。

    5.1 系统开发技术说明表

    本表描述系统各个特性开发时实际使用的具体技术,只有一些不太常用的技术需要在这里描述。一些常用技术,例如:通过数据库接口调用存储过程,则不必冗述。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统开发技术说明表进行描述。系统开发技术说明表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    技术编号

    开发技术

    开发技术

    处理功能

    系统特性编号

    备注

    英文名称

    中文名称

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  技术编号

    这个系统所使用各种技术的统一编号。

    ●  开发技术英文名称

    该开发技术的英文正式名称,可以便用缩写。

    该名称应该是常用的,并且为人们所普遍接受的。

    ●  开发技术中文名称

    该开发技术的中文正式名称,是该开发技术英文名称的中文说明。

    该名称应该是常用的,并且为人们所普遍接受的。

    ●  处理功能

    描述本开发技术的处理目的。

    ●  系统特性编号

    含义同上。

    由于一项开发技术可能在多处使用,因此针对一项开发技术,有可能存在多个系

    统特性编号,在此必须一一列出。

    ●  备注

    描述与该系统开发技术相关的其它注意事项。

    ●  说明

    描述与该系统开发技术说明表有关的其它注意事项。

    5.2 开发技术应用说明

    逐项详细描述系统开发技术说明表中所列出各项系统开发技术使用的技术要点,以及其它相关内容,例如:所需的服务、使用的动态连接库、调用的组件、等等。

    6. 数据库设计

    如果该软件产品需要使用数据库,不论是使用数据库平台支撑的,还是采用由软件产品开发者自行定义的;都应该在完成软件产品需求分析报告后,开始进行软件产品详细设计之前,按照软件产品数据库设计说明文档模板完成数据库设计工作。

    7. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原向)。为了便于非软件专业或者非计算机专业人士阅读软件系统概要设计报告,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    8. 进度计划

    列出进度计划,包括各子系统、各子模块完成进度计划,人员配备计划等。

     

     

     

     

     

     

     

     

     

    附录C   软件详细设计报告文档模板

     

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 参考资料

    2. 支撑环境

    2.1 数据库管理系统

    2.2 开发工具、中间件以及数据库接口

    2.3 硬件环境

    2.4 网络环境

    2.5 多种支撑环境开发要点

    3. 部件详细设计

    4. 词汇表

    5. 部件表格式

    6. 界面表格式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件系统详细设计报告的概览,是为了帮助阅读者了解这份文档如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告、哪份软件产品概要设计报告和哪份软件产品数据库设计说明书(如果该软件产品需要数据库支持)编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统详细设计报告详尽说明了该软件产品的编码结构,从而对该软件产品的物理组成进行准确的描述。

    如果这份软件系统详细设计报告只与整个系统的某一部分有关系,那么只定义软件系统详细设计报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的标准(如果有标准的话),或者各种编写约定。编写约定应该包括:

    ●  部件编号方式;

    ●  界面编号方式;

    ●  命名规范:

    ●  等等。

    1.4 预期读者和阅读建议

    列举本软件系统详细设计报告所针对的各种不同的预期读者,例如,可能的读者包括:

    ●  开发人员;

    ●  项目经理;

    ●  测试人员;

    ●  文档编写人员;

    ●  等等。

    描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 参考资料

    列举编写软件系统详细设计报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标难;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它己发表文件;

    ●  本软件系统详细设计报告中所引用的文件、资料;

    ●  相关软件系统详细设计报告;

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 支撑环境

    2.1 数据库管理系统

    描述数据库管理系统、以及安装配置情况,需要描述的内容可能包括:

    ●  产品名称以及发行厂商

    这里的产品名称指的是数据库发行厂商发布产品时公布的正式商品名称,不应该

    使用别名、简称、研发代号等非正式名称,以免混淆;同样的道理,发行厂商的

    名称也应该使用正式名称。

    ●  版本号

    数据库管理系统的准确版本号,必须按产品的实际情况描述到最细节的版本号。

    ●  补丁包版本号

    描述实际上将要使用的数据库管理系统补丁包的版本号,必须注意,在某些情况

    下该版本号不一定是最新的版本号。

    ●  语言或代码集

    对于只支持一种语言或者一个代码集的数据库管理系统来说,该项描述不具意

    义。对于支持多种语言或者多个代码集的数据库管理系统来说,该项描述指的是

    实际使用的语言或者代码集。

    ●  安装位置

    描述数据库管理系统的实际安装位置,应该分别对管理系统安缺位置和数据存放

    位置进行描述,应该指明服务器名和安装卷号(盘号)。对于分布式数据库,必须

    分别描述每一个数据库管理系统。

    ●  配置参数

    描述数据库管理系统在实际安装时应该配置的各个参数,对于分布式数据库,必

    须分别描述每一个数据库管理系统的配置参数。

    ●  等等

    同时参照《南京市交通局信息化数据库建设规范》。

     

    2.2 开发工具、中间件以及数据库接口

    描述所选用的工具软件和中间件的名称、版本号,以及开发工具与数据库或者中间件接口的情况。如果使用了多种开发工具、辅助开发工具、第三方软件部件、多种中间件、多种接口、等答应该逐项分别描述,并且说明每一项的适用范围。需要描述的内容可能包括:

    ●  产品名称以及发行厂商

    同2.1中产品名称以及发行厂商。

    ●  版本号

    同2.1中版本号。

    ●  补丁包版本号

    同2.1中补丁包版本号。

    ●  语言或代码集

    同2.1中语言或代码集。

    ●  数据库接口名称

    描述数据库接口的名称,如果使用别名时,应同时描述使用的别名。

    ●  数据库接口方式

    描述与数据库接口的方式,并说明该接口方式的特点;如果需要,还应该说明使

    用时的注意事项。

    ●  数据库接口设置

    描述各种接口设置,包括:协议、端口号等等。

    同时参照《南京市交通局信息化数据库建设规范》。

    2.3 硬件环境

    描述所选用的硬件环境,各种机型,例如:服务器、工作站,应该分别描述。需要描述的内容可能包括:

    ●  机型;

    ●  主频;

    ●  内存容量;

    ●  磁盘容量;

    ●  特殊部件;

    ●  操作系统;

    ●  使用位置;

    ●  等等。

    2.4 网络环境

    描述可能影响应用软件访问数据库的各种网络环境,如果存在加密传输、VPN链路等情况,也必须描述。对于结构复杂的网络,还应该提供网络拓扑图和数据流向示意图。需要描述的内容可能包括:

    ●  网络结构;

    ●  网络操作系统;

    ●  网络带宽;

    ●  路由组织;

    ●  加密传输方式;

    ●  VPN链路连接方式;

    ●  等等。

    2.5 多种支撑环境开发要点

    当软件产品将来可能遇到的多种运行环境时,应该分别按照3.1节至3.4节的内容列表描述。如果软件产品各个子系统的运行环境不完全一样时,应该分子系统按照3.1节至3.4节的内容列表描述。

    遇到上述情况时,不仅需要详细描述各种软件开发、调试、测试的环境,为了确实保证软件产品将来能够在各种可能的运行环境中正常运行,还需要对软件产品进行严格的配置管理。

    3. 部件详细设计

    这里所提及的软件部件,系指能够完成特定功能、相对独立的一些代码集合,它们可以是插件、组件、控件、函数、过程、子程序、动态连接库、等等。具体呈何种形态,取决于实际采用的开发工具和将要实现的软件结构。

    按照合适的顺序,逐个描述软件部件的详细情况。描述的顺序可以是按层次横向进行描述,也可以是按模块纵向进行描述,总之描述的方式必须有利于读者理解软件结构。

    每个部件采用一张软件部件表进行描述,软件部件表的格式见附表一,其中;

    ●  部件编号

    软件部件的统一顺序编号;对于实行配置管理的软件开发项目来说,该编号必须

    与该部件在配置管理中的编号相同。

    ●  部件名称

    软件部件的正式英文名称,该名称是程序中使用的实际名称,必须符合国家相关软件命名标准。

    ●  所属子系统

    指该部件所属的子系统;

    对于不分为多个子系统的软件来说,不必填写该栏。

    ●  部件调用者

    指调用该部件的部件(或界面参数)的编号和名称。

    ●  部件被调用者

    指被该部件所调用的部件的编号和名称。

    ●  部件入口参数

    指该部件入口数据类名称或者数据名称,以及对这些数据的描述;

    如果部件没有入口参数,该栏为空。

    ●  部件出口参数

    指该部件出口数据类名称或者数据名称,以及对这些数据的描述;

    如果部件没有出口参数,该栏为空。

    ●  算法

    指该部件的算法形式表示,如果很简单、或者不存在,也可以为空。

    ●  流程描述

    指该部件的处理流程的详细表示或描述。

    ●  部件表示形式

    指该部件完成开发后的最终表示形式,具体形式取决于开发工具和软件结构,表

    示形式可能是:

    n 插件、组件、控件,

    n 函数、过程、子程序,

    n 存储过程,

    n 动态连接库,

    n 等等。

    ●  运行环境

    描述该部件所适合的运行环境,即说明该部件是针对何种运行环境所开发的;

    可以直接描述运行环境,也可以描述运行环境的编号;

    对于实行配置管理的软件开发项目来说,该描述必须与该部件在配置管理中的描

    相同。

    ●  性能要求

    指开发该部件时必须满足的专门要求,这些要求可以是:

    n 精度

    n 灵活性

    n 响应时间

    n 可重用性

    n 等等。

    提出的要求一般不宜超过3项,以排列的先后顺序表示优先级。

     

    4. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士也能够在一定的范围内,读懂软件系统详细设计报告,要求尽可能使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    5. 部件表格式

    部件编号

     

    部件名称

     

    所属子系统

     

    部件调用者

     

    部件被调用者

     

    部件入口参数

     

    部件入口参数

     

    算法:

     

     

     

     

     

    流程描述:

     

     

     

     

     

     

    表示性能

     

    运行环境

     

    性能要求

     

     

     

    说明:如果软件不见使用一张表表述不完时,可以采用续表描述,但是必须注明是那张表的续表。

    6. 界面表格式

    界面编号

     

    部件名称

     

    界面性质

     

    界面介质

     

    表示形式:

     

     

     

     

     

     

     

     

     

    界面参数

       参数名

    内容

    说明

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    说明:如果软件不见使用一张表表述不完时,可以采用续表描述,但是必须注明是那张表的续表。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录D   软件数据库设计报告文档模板

                                         

    1. 引言

    1.1 编写目的

    1.2 项目来源

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 参考资料

    2. 数据库命名规则

    3. 数据库设计说明

    3.1 数据库逻辑设计

    3.2 数据库物理设计

    3.3 数据库分布

    3.4 基表设计

    3.5 视图设计

    3.6 索引设计

    3.7 完整性约束

    3.8 授权设计

    3.9 触发器设计

    3.10 存储过程设计

    3.11 数据复制设计

    4. 词汇表

    5. 历史数据处理

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份数据库设计说明书的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份数据库设计说明书是为哪份软件产品编写的,开发这个软件产品意义、作用以及最终要达到的意图。通过这份数据库设计说明书详尽准确地描述了该软件产品的数据库结构。如果这份数据库设计说明书只与整个系统的某一部分有关系,那么只定义数据库设计说明书中说明的那个部分或子系统。

    1.2 项目来源

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的各种排版约定。排版约定应该包括:

    ●  命名方法;

    ●  提示方式;

    ●  通配符号:

    ●  等等。

    1.4 预期读者和阅读建议

    列举本数据库设计说明书所针对的各种不同的预期读者,例如,可能包括:

    ●  开发人员;

    ●  项目经理;

    ●  测试人员;

    ●  文档编写人员。

    并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 参考资料

    列举编写需求规格说明书时所用到的参考文献及资料,可能包括;

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标准;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它已发表文件;

    ●  本数据库设计说明书中所引用的文件、资料;

    ●  相关软件产品数据库设计说明书;

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 数据库命名规则

    完整并且清楚的说明本数据库的命名规则,在《南京市交通局信息化数据库建设规范》中已经给出了一个完整的数据库命名规则,开发者应遵守执行,如果本数据库的命名规则与该规范不完全一致,应作出解释。

    3. 数据库设计说明

    3.1 数据库逻辑设计

    数据库设计人员根据《软件需求分析报告》,创建与数据库相关的实体关系图(E-R图)。如采用面对对象的分析和设计方法,则此处的实体相当于类。

    在此处,应给出逻辑设计的完整的E-R图。

    3.2 数据库物理设计

    在此处应给出完整的数据库物理结构E-R图。开发者应根据逻辑设计的结果,进行数据库的物理设计,并对表结构进行规范化处理(第一范式,第二范式,第三范式)。

    3.3 数据库分布

    数据库分布采用一张表格进行描述,其格式如下:

    数据库

    编号

    数据库

    管理系统

    名称

    数据库

    管理系统

    版本号

    数据库

    英文名称

    数据库

    中文名称

    数据库

    安装

    物理位置

     

     

     

     

     

     

    其中:

    ●  数据库编号

    给出本系统中指定数据库的顺序编号。

    若本系统中只有一个数据库,则本项内容不需要描述,本表内容也只有一行。

    说明: 在一个系统中可能安装若干个相同的或者不同的数据库管理系统,

    一个数据库管理系统也可能安装一个或者多个数据库。

    ●  数据库管理系统名称

    给出本系统中指定数据库管理系统的商品名称。

    若本系统中只有一种数据库管理系统,则本项内容不需要描述。

    ●  数据库管理系统版本号

    给出本系统中指定数据库管理系统的版本号。

    若本系统中只有一个版本的数据库管理系统,则本项内容不需要描述。

    ●  数据库英文名称

    给出本数据库的英文名称,该名称是在应用软件中实际使用的名称,必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  数据库中文名称

    给出本数据库的中文名称,该名称是本数据库英文名称的说明。

    ●  数据库安装物理位置

    给出本数据库安装的实际位置,必须描述清楚该位置是在那个物理设备的哪一

    个逻辑存储设备上,以及存储文件的名称。

    3.4 基表设计

    每个基表采用一张表格进行描述,其格式如下:

    数据库编号:

    基表编号:

    基表英文名称:

    基表中文名称:

    字段编号

    英文字段名

    中文字段名

    字段类型

    备注

     

     

     

     

     

    说明:

    其中

    ●  数据库编号

    含义同上。

    ●  基表编号

    给出本基表的顺序编号。

    ●  基表英文名称

    给出本基表的英文名称,该名称是在应用软件中实际使用的名称,必须符合命

    名规范。

    ●  基表中文名称

    给出本基表的中文名称,该名称是本基表英文名称的说明。

    ●  字段编号

    该基表中,各个字段的顺序编号。

    ●  英文字段名

    该基表中,各个字段的英文名称,该名称必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  中文字段名

    该基表中,各个字段的中文名称,该名称是英文字段名的说明。

    ●  字段类型

    该基表中,各个字段的类型;如果需要,在说明类型时,还需要说明字段长度。

    ●  备注

    该基表中,各个字段有关的限制性说明,需要描述的内容可能包括:

    n 值域;

    n 缺省值;

    n 空字段限制;

    n 显示格式与小数位数;

    n 有效性规则与约束;

    n 标题;

    n 等等

    ●  说明

    说明一些有关本表的、必须描述清楚的问题,需要描述的内容可能包括:

    n 主关键字;

    n 索引、排序方式和类型;

    n 触发器;

    n 数据复制;

    n 等等

    3.5 视图设计

    每个视图采用一张表格进行描述,其格式如下:

    数据库编号:

    视图编号:

    视图英文名称:

    视图中文名称:

    相关基表和视图:

    字段编号

    英文字段名

    中文字段名

    字段类型

    字段源

    备注

     

     

     

     

     

     

    说明:

    其中:

    ●  数据库编号

    含义同上。

    ●  视图编号

    给出本视图的顺序编号。

    ●  视图英文名称

    给出本视图的英文名称,该名称是在应用软件中实际使用的名称,必须符合

    命名规范。

    ●  视图中文名称

    给出本视图的中文名称,该名称是本视图英文名称的说明。

    ●  相关基表和视图

    列出建立该视图时,所用到的基表和视图。

    ●  字段编号

    该视图中,各个字段的顺序编号。

    ●  英文字段名

    该视图中,各个字段的英文名称,该名称必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  中文字段名

    该视图中,各个字段的中文名称,该名称是英文字段名的说明。

    ●  字段类型

    该视图中,各个字段的类型;如果需要,在说明类型时,还需要说明字段长度。

    ●  字段源

    该视图中,各个字段的来源,即该字段原来是那个表或者那个视图中的那个字

    段;在某些情况下,字段可能来自一个特定的表达式。

    ●  备注

    该视图中,各个字段有关的限制性说明,包括:

    n 值域;

    n 缺省值;

    n 空字段限制;

    n 显示格式与小数位数;

    n 有效性规则与约束;

    n 标题;

    n 等等。

    ●  说明

    说明一些有关本视图的、必须描述清楚的问题,需要描述的内容可能包括:

    n 索引;

    n 权限;

    n 等等

    3.6 索引设计

    每个数据库的所有采用一张表格进行描述,其格式如下:

    数据库编号:

    索引编号

    基表名称

    索引名称

    字段集名称

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  索引编号

    给出本项索引的顺序编号。

    ●  基表名称

    给出本项索引所在的基表名称。

    ●  索引名称

    给出本项索引的名称。

    ●  字段集名称

    给出本项索引所在的字段名称或者字段集名称。

    ●  备注

    描述有关本项索引中,其它需要说明的事项,例如:排序方式、等等。

    3.7 完整性约束

    每个数据库的完整性约束采用一张表格进行描述,其格式如下:

    数据库编号:

    索引编号

    基表名称

    索引名称

    字段集名称

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  约束编号

    给出本项完整性约束的顺序编号。

    ●  完整性约束名

    给出本项完整性约束的名称。

    ●  基表名

    给出本项完整性约束所在的基表名称。

    ●  字段名

    给出本项完整性约束所在的字段名称。

    ●  约束表达式

    给出本项完整性约束的逻辑表达式。

    ●  备注

    描述有关本项完整性约束中,其它需要说明的事项。

    3.8 授权设计

    每个数据库的授权采用一张表格进行描述,其格式如下:

     

    数据库编号:

    授权编号

    用户名称

    对象名称

    权限

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  授权编号

    给出本项授权的顺序编号。

    ●  用户名称

    给出本项授权的用户名称,这里的用户不一定是具体用户,也可以是用户组。

    ●  对象名称

    给出本项授权的对象名称,例如:基表、字段、等等。

    必须注意到,一个用户可能存在多项授权,应该逐项描述。

    ●  权限

    被授权用户在该对象上拥有的访问权限,例如:查询权、修改权、等等。

    ●  备注

    描述有关本项授权中,其它需要说明的事项。

    3.9 触发器设计

    ●  数据库编号

    含义同上。

    ●  触发器编号

    给出本触发器的顺序编号。

    ●  触发器英文名称

    给出本触发器的英文名称,必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  触发器中文名称

    给出本触发器的中文名称,该名称是本触发器英文名称的说明。

    ●  触发器条件

    给出该触发器产生触发的条件。

    ●  触发器结果

    给出该触发器被触发后所执行的动作内容。

    3.10 存储过程设计

    每个数据库的授权采用一张表格进行描述,其格式如下:

    数据库编号:

    存储过程编号:

    存储过程英文名称:

    存储过程中文名称:

    存储过程内容:

     

    说明:

     

    其中:

    ●  数据库编号

    含义同上。

    ●  存储过程编号

    给出本存储过程的顺序编号。

    ●  存储过程英文名称

    给出本存储过程的英文名称,该名称是在应用软件中实际使用的名称,必须符

    合命名规范。

    ●  存储过程中文名称

    给出本存储过程的中文名称,该名称是本存储过程英文名称的说明。

    ●  存储过程内容

    给出该存储过程算法或者描述详细内容,如果需要,应该辅以流程图说明。

    ●  说明

    描述本存储过程需要说明的一些事项。

    3.11 数据复制设计

    每项数据复制采用一张表格进行描述,其格式如下:

    数据复制编号:

    复制英文名称:

    复制中文名称:

    源数据库编号:

    目标数据库编号:

    复制说明:

    执行方式:

    源数据库名称

    目标数据库名称

    基表名称

    字段名称

    基表名称

    字段名称

     

     

     

     

    备注:

    其中:

    ●  数据复制编号

    给出本数据复制的顺序编哥

    ●  数据复制英文名称

    给出本数据复制的英文名称,该名称是在应用软件中实际使用的名称,必须符

    合命名规范。

    ●  数据复制中文名称

    给出本数据复制的中文名称,该名称是本数据复制英文名称的说明。

    ●  源数据库编号

    作为复制数据源的数据库编号,编号含义同上。

    ●  目标数据库编号

    作为复制目标的数据库编号,编号含义同上。

    ●  复制说明

    给出该复制的详细描述,如果需要,应该辅以示意图说明。

    ●  执行方式

    给出该复制的执行方式,描述时应该说明:

    ●  自动执行

    必须说明执行周期或者执行条件。

    ●  调用执行

    必须说明被那个模块调用,以及是手动调用,还是条件调用。

    ●  源数据库名称

    给出对应源数据库编号的源数据库名称。

    ●  目标数据库名称

    给出对应目标数据库编号的目标数据库名称。

    ●  基表名称

    分别给出源数据库和目标数据库中,进行对应复制的源基表名称和目标基表名

    事例。

    ●  字段名称

    分别给出源基表和目标基表中,进行对应复制的源字段名称和目标字段名称。

    ●  备注

    描述本复制中需要说明的一些特殊事项。

    4. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的

    外文原词)。为了便于非软件专业或者非计算机专业人士(例如:文档编写人员等等。)

    阅读数据库设计说明书,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    5. 历史数据处理

    严格说来,历史数据处理并不属于数据库设计范畴。但是对于大多数数据库来说,如果历史数据处理不当,少则数月、多则数年,最终将使数据库无法正常运行。这段时间的长短取决于数据库设计容量大小,以及数据流强度(即在单位时间内进入数据库的数据记录数量)高低。因此应该设计专门的归档数据库,并根据历史数据需要保存备查的时间长短,定期将历史数据转移到归档数据库中。

    设计归档数据库时,需要根据具体情况进行考虑,下面列出一些可能需要考虑的内容:

    ●  历史数据需要备查的时间长短。

    ●  数据转移周期的时间单位

    例如:日、周、旬、月、季、年、等等。

    ●  数据转移的方式

    例如:手动、自动、条件、等等。

    ●  历史数据保存的细节

    多数情况下,归档的历史数据并不需要保存全部细节,可以去掉部分细节,采

    用压缩归档处理的方法减少归档数据库的占用空间。

    注意:如果压缩数据时,去掉了不该去掉的细节,将是无可挽回的。

    ●  其它需要说明的问题

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录E   软件测试(验收)大纲

     

    1. 引言

    1.1 目的

    1.2 术语

    1.3 参照标准

    2. 测试日期安排

    3. 测试小组及成员

    4. 测试具体内容

    4.1 合法性检查

    4.2 软件文档检查

    4.2.1 必须提供检查的文档

    4.2.2 其他可能需要检查的文档

    4.2.3 由业主确定必须检查的其他文档

    4.2.4 文档质量的度量准则

    4.3 软件代码测试

    4.3.1 源代码一般性检查

    4.3.2 软件一致性检查

    4.4 软件系统测试

    4.4.1 界面(外观)测试

    4.4.2 可用性测试

    4.4.3 功能测试

    4.4.4 稳定性(强度)测试

    4.4.5 性能测试

    4.4.6 强壮性(恢复)测试

    4.4.7 逻辑性测试

    4.4.8 破坏性测试

    4.4.9 安全性测试

    5. 测试结果交付方式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    1.1 目的

    为了尽可能的找出软件的不足,提高软件的质量,促进软件的成功验收,专门制定了本大纲。其主要目的在于为所要进行的测试工作制定各种必要的准则和规范,以及在有关方面协议的基础上对测试工作进行合理组织与管理。

    1.2 术语

    本大纲所提及的术语,其定义遵照GB/T 11457标准。

    1.3 参照标准

    ●  GB/T 11457—1995

    软件工程术语

    ●  GB 8566—1995;

    信息技术软件生存期过程

    ●  OGB 8567—1988*

    计算机软件产品开发文件编制指南

    ●  GB 9385*

    计算机软件需求说明编制指南

    ●  GB 9386—1988*

    计算机软件测试文件编制指南

    ●  GB/T 12504—1990

    计算机软件质量保证计划规范

    ●  OGB/T 12505—1990

    计算机软件配置管理计划规范

    ●  OGB/T 14079—1993

    软件维护指南

    ●  OGB/T 14394—1993

    计算机软件可靠性和可维护性管理

    ●  GB/T 16680一1996

    软件文档管理指南

    ●  开发者企业规范

    软件开发者有关软件工程的规范

    ●  其它文件

    例如:合同书等,法律文件中的有关规定。

    说明:(1)应该遵循自顶而下、就严不就宽的原则,除非合同书等法律文件中另有规定。

         (2)标记(*)号的标准为推荐标准。

    2. 测试日期安排

    开发方如期交付软件的基础上,由业主审核确定具体日期安排。

    3. 测试小组及成员

    由业主聘请具有一定的分析、设计、编程和软件测试经验的测试组长和其他专业人员组成。测试组设组长一名(可设有副组长),负责整个测试的计划、组织工作。

    或委托具有国家认可测试资质的第三方进行测试。

    4. 测试具体内容

    测试内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

    4.1 合法性检查

    检查开发者在开发本软件时,使用的开发工具是否合法。对在编程中使用的一些非本单位自己开发的,也不是由开发工具提供的控件、组件、函数库等,检查其是否有合法的发布许可。

    4.2 软件文档检查

    4.2.1 必须提供检查的文档

    ●  项目实施计划;

    ●  详细技术方案;

    ●  软件需求规格说明书(STP)(含数据字典);

    ●  概要设计说明书(PDD);

    ●  详细设计说明书(DDD)(含数据库设计说明书);

    ●  软件测试计划(STP)(含测试用例);

    ●  软件测试报告(STR);

    ●  用户手册(SUM)(含操作、使用、维护、应急处理手册);

    ●  源程序(SCL)(不可修改的电子文档);

    ●  项目实施计划(PIP);

    ●  项目开发总结(PDS);

    ●  软件质量保证计划(SQAP);

    4.2.2 其他可能需要检查的文档

    ●  软件配置计划(SCMPP);

    ●  项目进展报表(PPR);

    ●  阶段评审报表(PRR);

    4.2.3 由业主确定必须检查的其他文档

    说明:如果业主认为4.1.1节和4.1.2节所列文档之外,还需要检查其它文档,则在此列出文档名称;如果业主认为不需要进行额外的文档检查,则本部分无内容。

    4.2.4 文档质量的度量准则

    文档是软件的重要组成都分,是软件生存周期各个不同阶段的产品描述。文档质量的度量准则就是要评审各阶段文档的合适性。主要有以下六条:

    ●  完备性

    开发方必须按照GB 8567(计算机软件产品开发文件编制指南)的规定编制相应的

    文档,以保证在开发阶段结束时其文档是齐全的。

    ●  正确性

    在软件开发各个阶段所编写的文档的内容,必须真实的反映阶段的工作且与该阶

    段的需求相一致。

    ●  简明性

    在软件开发各个阶段所编写的各种文档的语言表达应该清晰、准确简练,适合各

    种文档的特定读者。

    ●  可追踪性

    在软件开发各个阶段所编写的各种文档应该具有良好的可追踪性。文档的可追踪

    性包括横向可追踪性和纵向可追踪性两个方面。前者是指在不同的文档的相关内

    容之间相互检索的难易程序;后者是指确定同一文档某一内容在本文档范围中检

    索的难易程度。

    ●  自说明性

    在软件开发各个阶段所编写的各种文档应该具有较好的自说明性。文档的自说明

    性是指在软件开发各个阶段中,不同文档能够独立表达,该软件在其相应阶段的

    阶段成果的能力。

    ●  规范性

    在软件开发各个阶段所编写的各种文档应该具有良好的规范性。文档的规范性是

    指文档的封面、大纲、术语的含义以及图示符号等符合有关规范的规定。

    4.3 软件代码测试

    4.3.1 源代码一般性检查

    仅对系统关键模块的源代码进行抽查,检查模块代码编写的规范性,批注的准确性,是否存在潜在性错误,以及代码的可维护性。

    ●  命名规范检查

    检查源代码中的变量、函数、对象、过程等的命名是否符合约定规范,该规范可

    以由开发方在软件工程文档规范中单方面约定。

    ●  注释检查

    检查程序中的注释是否规范,注释量是否达到约定要求,例如:要求注释量达到

    30%左右。

    ●  接口检查

    检查数据库接口等外部接口是否符合要求,各程序模块使用的接口方式是否一

    致,特定的外部接口协议是否符合。

    ●  数据类型检查

    源代码中涉及的金额的常量、变量及数据集和数据库中涉及金额的数据类型是否

    采用货币类型,以防止在特定条件下产生较大的误差而影响统计结果。

    ●  限制性检查

    对一些程序中使用到的、具有使用限制的命令、事件、方法、过程、函数、对象、

    控件等进行检查。检查在长时间运行时,有无可能接近或者达到限制条件,

    这里考虑的系统运行时间可能长达数年。

    4.3.2 软件一致性检查

    ●  编译检查

    要求提交的源代码在其规定的编译环境中,能够重新编译无错误,并且能够完成

    相应的功能,从而确定移交的确实是正确的源代码。

    ●  安装/卸载检查

    在新系统上用交付的软件安装盘重新安装各个模块,并且通过运行这些软件模

    块,能否完成相应的功能,从而确定移交的确实是正确的软件安装盘。

    在安装后立即卸载所安装的模块,并且检查是否能够做到彻底卸载。

    ●  运行模块检查

    将新安装的软件模块与现场运行模块用软件工具抽样比较,确认交付的软件安装

    盘与现场运行软件一致。

    抽查数处现场运行模块用软件工具比较,确认现场运行软件一致。

    4.4 软件系统测试

    软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。

    进行软件系统测试工作时,具体的测试用例是由开发方提供,并由测试方和用户共同补充制定的。在开发方做完功能演示后,可以进行下列测试:

    ●  界面(外观)测试;

    ●  可用性测试;

    ●  功能测试;

    ●  稳定性(强度)测试;

    ●  性能测试;

    ●  强壮性(恢复)测试;

    ●  逻辑性测试;

    ●  破坏性测试;

    ●  安全性测试。

    说明:实际进行的测试内容有测试方法和业主根据具体情况共同确定,并非文中所列测试内容都必须进行测试。

    4.4.1 界面(外观)测试

    对照界面规范(在软件需求规格说明书中规定,或者由软件工程规范中给出)和界面表(在概要设计中给出),检查各界面设计是否规范,包括:界面风格、表现形式、组件用法、字体选择、字号选择、色彩搭配、日期表现、计时方法、时间格式、对齐方式等等,是否符合规范、是否协调一致、是否便于操作。

    4.4.2 可用性测试

    测试操作是否方便,用户界面是否友好等。测试系统是否有影响操作流程的界面Bug和功能Bug,纪录具体Bug的数量、出现频率和严重程度。

    4.4.3 功能测试

    检查数据在流程中各个阶段的准确性。对系统中每一模块利用实际数据运行,将其结果与同样数据环境下应该得出的结果相比较,或与软件需求规格说明书中要求的结果进行比较,如有偏差,则功能测试不能通过。

    检查软件需求规格说明书中描述的需求是否都得到满足;系统是否缺乏软件需求规格说明书中规定的重要功能;以及系统实际使用中不可缺少而软件需求规格说明书中没有规定的功能。

    如果存在遗产数据,应该检查遗产数据转换是否正确。

    4.4.4 稳定性(强度)测试

    测试系统的能力最高实际限度,即检查软件在一些超负荷情况下,功能实现的情况。例如:要求软件进行某一行为的大量重复、输入大量的数据或大数值数据、对数据库进行大量复杂的查询等。

    利用边界测试(最大值、最小值、N次循环)对系统进行模拟运行测试,观察其是否处于稳定状态。

    4.4.5 性能测试

    根据系统设计指标,或者对被测软件提出的性能指标,测试软件的运行性能,例如:传输连接最长时限、传输错误率、计算精度、记录精度、响应时限和恢复时限等。

    4.4.6 强壮性(恢复)测试

    采用人工的干扰使应用软件、平台软件或者系统硬件出错,中断正常使用,检测系统的恢复能力。进行强壮性测试时,应该参考性能测试相关的测试指标。

    4.4.7 逻辑性测试

    根据系统的功能逻辑图,测试软件是否按规定的逻辑路径运行,选择一些极限数据判断软件运行是否存在错误或非法路径,从而发现系统的逻辑错误或非法后门。

    4.4.8 破坏性测试

    输入错误的或非法的数据(类型),检查系统的报错纠错的能力及稳定性。并测试可连续使用多长时间而系统不崩溃。

    4.4.9 安全性测试

    验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰,安全测试时需要设计一些测试用例试图突破系统的安全保密措施,检验系统是否有安全保密的漏洞。

    说明:进行安全测试时,必须遵循相关的安全规定,并且有业主派员参加。

    5. 测试结果交付方式

    测试结束后,由测试组填写软件测试报告,并将测试报告与全部测试材料一并交给业主。具体交付方式,由业主和测试方双方协商确定。测试报告包括下列内容:

    ●  软件测试计划

    ●  软件测试日志

    ●  软件文档检查报告

    ●  软件代码测试报告

    ●  软件系统测试报告

    ●  测试总结报告

    ●  测试人员签字登记表1. 范围

    2. 总体要求

    2.1 总体功能要求

    2.2 软件开发平台要求

    2.3 软件项目的开发实施过程管理要求

    2.3.1 软件项目实施过程总体要求

    2.3.2 软件项目实施变更要求

    2.3.3 软件项目实施里程碑控制

    3. 软件开发

    3.1 软件的需求分析

    3.1.1 需求分析

    3.1.2 需求分析报告的编制者

    3.1.3 需求报告评审

    3.1.4 需求报告格式

    3.2 软件的概要设计

    3.2.1 概要设计

    3.2.2 编写概要设计的要求

    3.2.3 概要设计报告的编写者

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别

    3.2.5 概要设计的评审

    3.2.6 概要设计格式

    3.3 软件的详细设计

    3.3.1 详细设计

    3.3.2 特例

    3.3.3 详细设计的要求

    3.3.4 数据库设计

    3.3.5 详细设计的评审

    3.3.6 详细设计格式

    3.4 软件的编码

    3.4.1 软件编码

    3.4.2 软件编码的要求

    3.4.3 编码的评审

    3.4.4 编程规范及要求

    3.5 软件的测试

    3.5.1 软件测试

    3.5.2 测试计划

    3.6 软件的交付准备

    3.6.1 交付清单

    3.7 软件的鉴定验收

    3.7.1 软件的鉴定验收

    3.7.2 验收人员

    3.7.3 验收具体内容

    3.7.4 软件验收测试大纲

    3.8 培训

    3.8.1 系统应用培训

    3.8.2 系统管理的培训(可选)

    附录A  软件需求分析报告文档模板

    附录B  软件概要设计报告文档模板

    附录C  软件详细设计报告文档模板

    附录D  软件数据库设计报告文档模板

    附录E  软件测试(验收)大纲5

     

     

     

    1. 范围

    本指南用于指导软件开发者为南京市交通局开发软件项目的过程,通过规范软件项目承担单位的开发过程达到提高软件质量,降低维护成本的目的。开发者应根据本指南进行软件开发和编制软件开发文档。本指南是对软件项目承担单位的基本要求。在本指南的附录A至E中提供了文档的编写模板供开发者参考,在进行具体软件开发时,开发者可根据实际情况采编写,但必须提供双方约定的文档,文档中约定的内容必须描述清楚。

    2. 总体要求

    2.1 总体功能要求

    网络应用环境以Internet/Intranet技术为核心。

    开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。

    软件系统的数据库应依照《南京市交通局信息化数据库建设规范》进行设计和建设。

    本指南中没有规定开发者采用何种具体的软件工程开发方法,开发者可根据项目具体特点、自身擅长来选择采用面向过程的方法、面向对象的方法或面向数据的方法,但建议开发    商使用面向对象软件工程的方法,如:采用目前被广泛使用的RUP(Rational Unified Process)方法来进行分析、设计和开发。

    2.2 软件开发平台要求

    开发者开发的软件必须能够在南京市交通局规定的软件平台上正常运行。目前软件平台为:

    数据库管理系统:

    Oracle 9i以上版本

    中间件(应用服务器)系统:

    IBM WebSphere

    OA系统:

    Lotus Domino/Notes

    网络架构:

    完全支持TCP/IP协议

    开发工具或技术体系:

    为保证软件的上下兼容性,开发者应选择比较通用的开发工具的较新版本进行开发,如Microsoft Visual Studio.Net,Borland Delphi,C++ Builder, 或J2EE(Java2 P1atform Enterprise Edition)等。   

    2.3 软件项目的开发实施过程管理要求

    2.3.1 软件项目实施过程总体要求

                   (一)开发者提交软件开发工作大纲,交通局组织专家组对工作大纲进行评审,并提出整改意见。

                   (二)通过评审后,开发者根据整改意见完善工作大纲,经过交通局认可后组织项目组进行软件开发。软件开发工作按照需求分析、概要设计、详细设计、编码、测试等几个阶段进行,在开发过程中,开发者需分阶段提交相关文档。

                   (三)在软件开发工作完成后,开发者应向交通局提交完整的软件文档,交通局组织验收组对软件进行验收审查。

    2.3.2 软件项目实施变更要求

    在开发过程中,需求或设计不可避免地需要发生变更,相关变更必须经过交通局书面同  意方可进行。在需求或设计发生变更时,需要对原有文档进行修改,并提供完整的变更记录,  以使变更处于可控制的状态。变更单如下表所示:

    表 2-1 变更单

    需求变更申请

    申请变更的需求文档

            输入名称,版本,日期等信息

    变更的内客及其理由

                                       

    评估需求变更将对

    项目造成的影响

                                       

                                       

    申请人签字

                                        

    变更申请的审批意见

     

    项目经理签字

      审批意见:                       

     

                               签字   日期               

    客户签字

    (合同项目)

      审批意见:                      

     

                               签字   日期               

    更改需求文档

    变更后的

    需求文档

      输入名称,版本,完成日期等信息    

                                       

    更改人签字

                                       

    重新评审需求文档

     

    需求评审小组签字

     

      评审意见:                       

                                       

                               签字   日期               

    变更结束

    项目经理签字

                               签字   日期 

    2.3.3 软件项目实施里程碑控制

    交通局将分四个阶段进行把关,召开专家审查会。

                   (一) 需求分析(结合原型进行审查)确认;

                   (二) 概要设计+数据库设计;

                   (三) 预验收(试运行后);

                   (四) 正式验收(推广使用后)。

    3. 软件开发

    合同签订以后,项目承担单位即可组织项目组进行软件开发工作。软件开发必须严格按照软件工程的要求进行。开发过程包括开发者的活动和任务。此过程由软件需求分析、概要设计、详细设计、编码、测试、验收、鉴定等活动组成。

    3.1 软件的需求分析

    3.1.1 需求分析

    首先,开发者和交通局应共同对交通局的应用需求作充分的调研,提交完整的需求分析  报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属 性、外部接口。应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的  结果,而不是获得这些结果的手段。

    软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。

    编写需求分析报告的要求

    a.无歧义性

    对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。

    b.完整性

    需求分析报告应该包括全部有意义的需求,无论是关系到功能的、性能的、设计约束的、还是关系到外部接口方面的需求;对所有可能出现的输入数据的响应予以定义,要对合法和非合法的输入值的响应做出规定;填写全部插图、表、图示标记等;定义全部术语和度量单位。

    c.可验证性

    需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来检查软件产品是否满足需求。

    d.一致性

    在需求分析报告中的各个需求的描述不能互相矛盾。

    e.可修改性

    需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需求不能在需求分析报告中出现多次。

    f.可追踪性

    每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证每一个需求。

    g.运行和维护阶段的可使用性

    需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来源和目的。

    3.1.2 需求分析报告的编制者

    需求分析报告应由交通局和开发者双方共同完成。其中:交通局负责根据实际需要提出希望软件实现的功能;软件开发者根据交通局提出的性能需求,结合软件开发编写需求分析。

    3.1.3 需求报告评审

    在软件需求分析工作完成后,软件开发者应向交通局提交《软件需求分析报告》。交通局组织有关人员对需求进行评审,以决定软件需求是否完善和恰当。评审完成后,就可以进入软件的设计阶段。

    3.1.4 需求报告格式

    《软件需求分析报告》需按一定的格式进行编写,具体的《软件需求分析报告》文档编写模板请见附录A。

    3.2 软件的概要设计

    3.2.1 概要设计

    在交通局和开发者双方认可的《需求分析报告》基础上,开发者进行下——步的工作。    首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计    进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、    运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

    3.2.2 编写概要设计的要求

    a.一致性

    概要设计的要求应该与需求分析报告所描述的需求一致。同时,概要设计的各项要求之间也应该一致。

    b.合理性

    概要设计所提出的设计方法和标准应该是合理的、恰当的。

    c.可追踪性

    对概要设计所提出的各项要求应该可以得到它的清晰的源流,即在需求分析报告客户有明确的需求描述。

    d.可行性

    根据概要设计进行详细设计、操作和维护应该是可行的。

    3.2.3 概要设计报告的编写者

    概要设计报告由开发者根据需求分析报告的要求进行编写。

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别

     需求分析不涉及具体的技术实现,而概要设计注重于从宏观上和框架上来描述采用何种技术手段、方法来实现这些需求。详细设计相对概要设计更注重于微观上和框架内的设计,    是编码的依据。概要设计是指导详细设计的依据。

    3.2.5 概要设计的评审

    在软件概要设计工作完成后,软件开发者应向交通提交《软件系统概要设计报告》。在交通局对《概要设计报告》评审通过后,即可进入详细设计阶段。

    3.2.6 概要设计格式

    《软件系统概要设计报告》需按一定的格式进行编写,具体的《软件系统概要设计报    告》文档编写模板请见附录B。

    3.3 软件的详细设计

    3.3.1 详细设计

    在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实    现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证    软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

    3.3.2 特例

    如果软件系统比较简单,层次较少,可以不必进行专门的详细设计,而和概要设计结合起来。

    3.3.3 详细设计的要求

    a.一致性

    详细设计的要求应该与需求分析报告所描述的需求、与概要设计一致。同时,详细设计的各项要求之间也应该是一致的。

    b.合理性

    详细设计所提出的设计方法和标准应该是合理的、恰当的。

    c.可追踪性

    对详细设计所提出的各项要求应该可以得到它的清晰的源流,即可在需求分析报告、概要设计报告中有明确的需求描述。

    d.可行性

    根据详细设计进行编码、测试、操作和维护应该是可行的。

    3.3.4 数据库设计

    如果软件产品需要使用到数据库,软件的详细设计应包括对数据库的设计。数据库设计应在软件的需求分析、概要设计完成之后、详细设计的其它工作之前进行。在进行数据库设计时,应当按照交通局制定的《南京市交通局信息化数据库建设规范》要求进行。

    3.3.5 详细设计的评审

    在软件详细设计完成后,软件开发者应向交通局提交《软件系统数据库设计报告》和《软件系统详细设计报告》。在交通局对《软件系统数据库设计报告》、《软件系统详细设计报告》评审通过后,即可进入软件编码阶段。

    3.3.6 详细设计格式

    《软件系统详细设计报告》、《软件系统数据库设计报告》需按一定的格式进行编写,    具体的《软件系统详细设计报告》文档编写模板和《软件系统数据库设计报告》文档编写模    板请见附录C、附录D。

    3.4 软件的编码

    3.4.1 软件编码

    在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。

    3.4.2 软件编码的要求

    a.模块化编码

    b.代码可读性

    c.可维护性

    d.模块接口标准化

    e.界面风格统一

    e.注释的应用

    3.4.3 编码的评审

    为了尽早发现软件中的障碍,提高软件产品的质量,开发者在编码的过程中应该强调代码评审工作。将代码评审报告作为文档的一部分,提交给交通局。

    3.4.4 编程规范及要求

    为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。

    主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。

    其中数据库部分应遵守《南京市交通局信息化数据库建设规范》的要求。

    在软件编码的同时应进行单元测试。

    3.5 软件的测试

    3.5.1 软件测试

    为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表    现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时。测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。

    开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。

    3.5.2 测试计划

    在软件编码开始之前,开发者应向交通局提交《测试计划》,在软件交付时,开发者应向交通局提交《软件测试报告》,以确保开发者的软件得到了充分的测试。开发的软件必须经过充分的测试证明其符合设计要求、运行稳定、安全可用方可交付交通局。

    3.6 软件的交付准备

    3.6.1 交付清单

    在软件测试证明软件达到要求后,软件开发者应向交通局提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。

    《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。

    《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。

    3.7 软件的鉴定验收

    3.7.1 软件的鉴定验收

    在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。在开发者如期交付软件后,由交通局负责确定具体的鉴定验收日期。

    3.7.2 验收人员

    由交通局聘请具有一定的分析、设计、编程和软件测试经验的验收组长和其他专业人员组成。验收组设组长一名(可设有副组长),负责整个验收的计划、组织工作。

    3.7.3 验收具体内容

    验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

    合法性检查检查软件开发工具是否合法、使用的函数库、控件、组件是否有合法的发布许可。

    文档检查检查开发者提交的文档必须齐全,质量是否过关。需要开发者提供的文档包括:

    项目实施计划;

    详细技术方案;

    软件需求规格说明书(STP)(含数据字典);

    概要设计说明书(PDD);

    详细设计说明书(DDD)(含数据库设计说明书);

    软件测试计划(STP)(含测试用例);

    软件测试报告(STR);

    用户手册(SUM)(含操作、使用、维护、应急处理手册);

    源程序(SCL)(不可修改的电子文档);

    项目实施计划(PIP);

    项目开发总结(PDS);

    软件质量保证计划(SQAP);

    此外,验收组可以根据需要对其它文档(如软件配置计划、项目进展报表、阶段评审报    表等)进行检查。

    文档的质量根据完备性、正确性、简明性、可追踪性、自说明性、规范件等方面进行踪合评定。

    验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。

    3.7.4 软件验收测试大纲

    在软件进行鉴定验收前,开发者需按照一定的格式编写《软件验收测试大纲》,具体的格式请见附录E。

     

    3.8 培训

    3.8.1 系统应用培训

    主要培训内容包括:系统操作使用、业务管理流程。

    培训对象:应用操作人员。

    3.8.2 系统管理的培训(可选)

    主要培训内容包括:系统安装、调试、维护;系统管理。

    培训对象:系统管理人员。

    开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录A  软件需求分析报告文档模板

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 产品范围

    1.6 参考文献

    2. 综合描述

    2.1 产品的状况

    2.2 产品的功能

    2.3 用户类和特性

    2.4 运行环境

    2.5 设计和实现上的限制

    2.6 假设和约束(依赖)

    3. 外部接口需求

    3.1 用户界面

    3.2 硬件接口

    3.3 软件接口

    3.4 通讯接口

    4. 系统功能需求

    4.1 说明和优先级

    4.2 激励/响应序列

    4.3 输入/输出数据

    5. 其它非功能需求

    5.1 性能需求

    5.2 安全措施需求

    5.3 安全性需求

    5.4 软件质量属性

    5.5 业务规则

    5.6 用户文档

    6. 词汇表

    7. 数据定义

    8. 分析模型

    9. 待定问题列表

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件产品需求分析报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格,包括修正和(或)发行版本号,从而对该软件产品进行准确的定义。

    如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:

    ●  正文风格;

    ●  提示方式;

    ●  重要符号;

    也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。

    1.4 预期读者和阅读建议

    列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:

    ●  用户;

    ●  开发人员;

    ●  项目经理;

    ●  营销人员;

    ●  测试人员;

    ●  文档编写入员。

    并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 产品范围

    说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。

    描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。

    1.6 参考文献

    列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标淮;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它己发表文件;

    ●  本软件产品需求分析报告中所引用的文件、资料;

    ●  相关软件产品需求分析报告;

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 综合描述

    这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。

    2.1 产品的状况

    描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:

    ●  是否是产品系列中的下一成员;

    ●  是否是成熟产品所改进的下一代产品;

    ●  是否是现有应用软件的替代品(升级产品);

    ●  是否是一个新型的、自主型的产品。

    如果该软件产品需求分析报告定义的软件系统是:

    ●  大系统的一个组成部分;

    ●  与其它系统和其它机构之间存在基本的相互关系。

    那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。

    2.2 产品的功能

    因为将在需求分析报告的第4部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利读者理解本软件产品。

    为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。

    参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。

    2.3 用户类和特性

    确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。

    用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。

    2.4 运行环境

    描述了本软件的运行环境,一般包括:

    ●  硬件平台;

    ●  操作系统和版本;

    ●  支撑环境(例如:数据库等)和版本;

    ●  其它与该软件有关的软件组件;

    ●  与该软件共存的应用程序。

    2.5 设计和实现上的限制

    确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:

    ●  必须使用的特定技术、工具、编程语言和数据库;

    ●  避免使用的特定技术、工具、编程语言和数据库;

    ●  要求遵循的开发规范和标准

    例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准;

    ●  企业策略的限制;

    ●  政府法规的限制;

    ●  工业标准的限制;

    ●  硬件的限制

    例如,定时需求或存储器限制;

    ●  数据转换格式标淮的限制。

    2.6 假设和约束(依赖)

    列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:

    ●  计划使用的商业组件,或者其它软件中的某个部件;

    ●  假定产品中某个用户界面将符合一个特殊的设计约定;

    ●  有关本软件用户的若干假定(例如:假定用户会熟练使用SQL语言。);

    ●  有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。);

    ●  有关本软件运行环境的一些问题;

    此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:

    ●  工期约束;

    ●  经费约束;

    ●  人员约束;

    ●  设备约束;

    ●  地理位置约束;

    ●  其它有关项目约束;

    3. 外部接口需求

    通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。

    注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。

    3.1 用户界面

    陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:

    ●  将要采用的图形用户界面(GUl)标准或者产品系列的风格;

    ●  有关屏幕布局或者解决方案的限制;

    ●  将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:

    n  选单;

    n  标准按钮;

    n  导航链接;

    n  各种功能组件;

    n  消息栏;

    ●  快捷键;

    ●  各种显示格式的规定,可能包括:

    n  不同情况下文字的对齐方式;

    n  不同情况下数字的表现格式与对齐方式

    n  日期的表现方法与格式;

    n  计时方法与时间格式;

    n  等等。

    ●  错误信息显示标准;

    对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。

    如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。

    3.2 硬件接口

    描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:

    ●  支持的硬件类型;

    ●  软、硬件之间交流的数据;

    ●  控制信息的性质;

    ●  使用的通讯协议;

    3.3 软件接口

    描述该软件产品与其它外部组件的连接,这些外部组件必须明确它们的名称和版本号以资识别,可能的外部组件包括:

    ●  操作系统;

    ●  数据库;

    ●  工具;

    ●  函数库;

    ●  集成的商业组件

    说明:这里所说的“集成的商业组件”,是指与系统集成的商业组件,而不是与软件产品集成的商业组件。例如:中间件、消息服务,等等。

    描述并且明确软件产品与软件组件之间交换数据或者消息的目的。描述所需要的服务,以及与内部组件通讯的性质。确定软件产品将与组件之间共享的数据。如果必须使用一种特殊的方法来实现数据共享机制,例如:在多用户系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。

    3.4 通讯接口

    描述与软件产品所使用的通讯功能相关的需求,包括:

    ●  电子邮件;

    ●  WEB浏览器;

    ●  网络通讯标准或者协议;

    ●  数据交互用电子表格;

    必须定义相关的:

    ●  消息格式;

    ●  通讯安全或加密问题;

    ●  数据传输速率;

    ●  同步和异步通讯机制;

    4. 系统功能需求

    需要进行详细的需求记录,详细列出与该系统功能相关的详细功能需求,并且,唯一地标识每一项需求。这是必须提交给用户的软件功能,使得用户可以使用所提供的功能执行服务或者使用所指定的使用实例执行任务。描述软件产品如何响应己知的出错条件、非法输入、非法动作。

    如果每一项功能需求都能用一项,也只需要用一项测试用例就能进行验证,那么就可以认为功能需求已经适当地进行描述了。如果某项功能需求找不到合适的测试用例,或者必须使用多项测试用例才能验证,那么该项功能需求的描述必然存在某些问题。

    功能需求是根据系统功能,即软件产品所提供的主要服务来组织的。可以通过使用实例、运行模式、用户类、对象类或者功能等级来组织这部分内容,也可以便用这些元素的组合。总而言之,必须选择一种是读者容易理解预期产品的组织方案。

    用简短的语句说明功能的名称,例如:“4.1系统参数管理”。按照服务组织的顺序,逐条阐述系统功能。无论说明的是何种功能,都应该针对该系统功能重复叙述4.1~ 4.3这三个部分。

    可以通过各种方式来组织这一部分内容,例如采用:使用实例、运行模式、用户类、对象类、功能等级等,也可以采用它们的组合。其最终目的是,让读者容易理解即将开发的软件产品。一般来说,每个使用实例都对应一个系统功能,因而按照使用实例来组织内容比较容易让用户理解。

    对应一些被共享的独立使用实例,可以定义一些公用系统功能。

    必须特别注意的是,在2.2节“产品的功能”中描述的全部需求,以及它们的规格说明;必须在某个系统功能描述中有所反映,而且不应重复。

    4.1 说明和优先级

    对该系统功能进行简短的说明,并且指出该系统功能的优先级是:高、中、还是低。需要的话,还可以包括对特定优先级部分的评价,例如:利益、损失、费用和风险,其相对优先等级可以从1(低)到9(高)。

    4.2 激励/响应序列

    列出输入激励(用户动作、来自外部设备的信号或者其它触发)并且定义针对这——功能行为的系统响应序列,这些序列将与使用实例中相关的对话元素相对应。

    描述激励/响应序列时,不仅需要描述基本过程,而且应该描述可选(扩充)过程,包括例外(引起任务不能顺序完成的情况称为例外)。疏忽了可选过程,有可能影响软件产品的功能;如果遗漏例外过程,则有可能会引发系统崩溃。

    如果采用流程图来描述激励/响应序列,比较容易让用户理解。

    4.3 输入/输出数据

    列出输入数据(用户输入、来自外部接口的输入或者其它输入)并且定义针对这些输入数据的处理(计算)方法,以及相应地输出数据,描述对应区别:输入数据和输出数据。

    当有大量数据需要描述时,也可以分类描述数据,并且注明各项数据的输入、输出属性。

    对于每一项数据,均需要描述:

    ●  数据名称;

    ●  实际含义;

    ●  数据类型;

    ●  数据格式;

    ●  数据约束;

    对于复杂的处理方法,仅仅给出算法原理是不够的,必须描述详细的计算过程,并且列出每一步具体使用的实际算式;如果计算过程中涉及查表、判断、迭代等处理方法,应该给出处理依据和相关数据。如果计算方法很简单,也可以将其从略,不加描述。

    5. 其它非功能需求

    在这里列举出所有非功能需求,主要包括可靠性、安全性、可维护性、可扩展性、可测试性等。

    5.1 性能需求

    阐述不同应用领域对软件产品性能的需求,并且说明提出需求的原理或者依据,以帮助开发人员做出合理的设计选择。尽可能详细地描述性能需求,如果需要,可以针对每个功能需求或者特征分别陈述其性能需求。在这里确定:

    ●  相互合作的用户数量;

    ●  系统支持的并发操作数量;

    ●  响应时间;

    ●  与实时系统的时间关系:

    ●  容量需求

    n  存储器;

    n  磁盘空间;

    n  数据库中表的最大行数。

    5.2 安全措施需求

    详尽陈述与软件产品使用过程中可能发生的损失、破坏、危害相关的需求。定义必须采取的安全保护或动作,以及必须预防的潜在危险动作。明确软件产品必须遵从的安全标准、策略、或规则。

    5.3 安全性需求

    详尽陈述与系统安全性、完整性问题相关的需求,或者与个人隐私问题相关的需求。这些问题将会影响到软件产品的使用,和软件产品所创建或者使用的数据的保护。定义用户身份认证,或备授权需求。明确软件产品必须满足的安全性或者保密性策略。也可以通过称为完整性的质量属性来阐述这些需求。一个典型的软件系统安全需求范例如下:“每个用户在第一次登录后,必须更改他的系统预置登录密码,系统预置的登录密码不能重用。”

    5.4 软件质量属性

    详尽陈述对客户和开发人员至关重要的在软件产品其它方面表现出来的质量功能。这些功能必须是确定的、定量的、在需要时是可以验证的。至少也应该指明不同属性的相对侧重点,例如:易用性优于易学性,或者可移植性优于有效性。

    5.5 业务规则

    列举出有关软件产品的所有操作规则,例如:那些人在特定环境下可以进行何种操作。这些本身不是功能需求,但是他们可以暗示某些功能需求执行这些规则。一个业务规则的范例如下:“进行达到或者超过10,000,00元人民币的储蓄业务时,必须通过附加的管理员认证。”

    列举业务规则时,可以根据规则的数量,选取合适的编目方式。

    5.6 用户文档

    列举出将与软件产品一同交付的用户文档,并且明确所有己知用户文档的交付格式或标准,例如:

    ●  安装指南

    纸质文档,16开本;

    ●  用户手册

    纸质文档,16开本;

    ●  在线帮助

    ●  电子文档,与软件产品一同分发、配置;

    ●  使用教程电子文档,与软件产品一同分发、配置。

    6. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士阅读软件产品需求分析报告,要求使用非软件专业或者非计算机专业的术语描述软件需求。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表并且加以准确定义。

    7. 数据定义

    数据定义是一个定义了应用程序中使用的所有数据元素和结构的共享文档,其中对每个数据元素和结构都准确描述:含义、类型、数据大小、格式、计量单位、精度以及取值范围。数据定义的维护独立于软件需求规格说明,并且在软件产品开发和维护的任何阶段,均向风险承担者开放。

    如果为软件开发项目创建一个独立的数据定义,而不是为每一项特性描述有关的数据项,有利于避免冗余和不一致性。但是却不利于多人协同编写需求分析报告,容易遗漏数据,也不方便阅读。因此还是建议为每个特性描述有关的数据项,汇总数据项创建数据定义,再根据数据定义复核全部数据,使得它们的名称和含义完全一致。必须注意的是,为了避免二义性,在汇总数据项时应该根据数据项所代表的实际意义汇总,而不是根据数据项的名称汇总。

    在数据定义中,每个数据项除了有一个中文名称外,还应该为它取一个简短的英文名称,该英文名称应该符合命名规范,因为在软件开发时将沿用该英文名称。可以使用等号表示数据项,名称写在左边,定义写在右边。常见数据项的描述方式如下:

    ●  原数据元素

    一个原数据元素是不可分解的,可以将一个数量值赋给它。定义原数据元素必须确定其

    含义、类型、数据大小、格式、计量单位、精度以及取值范围。采用以星号为界的一行

    注释文本,描述原数据元素的定义。

    ●  选择项

    选择项是一种只可以取有限离散值的特殊原数据元素,描述时一一枚举这些值,并用方

    括号括起来写在原数据元素的定义前。在两项离散值之间,使用管道符分隔。

    ●  组合项

    组合项是一个数据结构或者记录,其中包含了多个数据项。这些数据项可以是原数据元

    素,也可以是组合数据项,各数据项之间用加号连接。其中每个数据项都必须是数据定

    义中定义过的,结构中也可以包括其它结构,但是绝对不允许递归。如果数据结构中有

    可选项,使用圆括号把该项括起来。

    ●  重复项

    重复项是组合项的一种特例,其中有一项将有多个实例出现在数据结构中,使用花括号

    把该项括起来。如果知道该项可能允许的范围,就按“最小值:最大值”的形式写在花

    括号前。

    8. 分析模型

    这是一个可选部分,包括或涉及到相关的分析模型,例如:

    ●  数据流程图;

    ●  类图;

    ●  状态转换图;

    ●  实体-关系图。

    9. 待定问题列表

    编辑一张在软件产品需求分析报告中待确定问题时的列表,把每一个表项都编上号,以便跟踪调查。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录B 软件概要设计报告文档模板

     

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 预期读者和阅读建议

    1.4 参考资料

    2. 设计概述

    2.1 限制和约束

    2.2 设计原则和设计要求

    3. 系统逻辑设计

    3.1 系统组织设计

    3.2 系统结构设计

    3.2.1 系统特性表

    3.2.2 系统特性结构图

    3.3 系统接口设计

    3.3.1 系统接口表

    3.3.2 系统接口传输协议说明

    3.4 系统完整性设计

    4. 系统出错处理设计

    4.1 系统出错处理表

    4.2 维护处理过程表

    5. 技术设计

    5.1 系统开发技术说明表

    5.2 开发技术应用说明

    6. 数据库设计

    7. 词汇表

    8. 进度计划

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件系统概要设计报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件系统概要设计报告是基于哪份软件产品需求规格说明书编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统概要设计报告详尽说明了该软件产品的软件结构,包括数据库结构和出错处理,从而对该软件产品的结构的描述。

    如果这份软件系统概要设计报告只与整个系统的某一部分有关系,那么只定义软件系统概要设计报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 预期读者和阅读建议

    列举本软件系统概要设计报告所针对的各种不同的预期读者,例如,可能的读者包括:

    ●  用户;

    ●  开发人员;

    ●  项目经理;

    ●  营销人员;

    ●  测试人员;

    ●  文档编写人员;

    ●  等等。

    描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.4 参考资料

    列举编写软件产品概要设计报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标准;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它已发表文件;

    ●  本软件系统概要设计报告中所引用的文件、资料:

    ●  相关软件系统概要设计报告:

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 设计概述

    本节描述现有开发条件和需要实现的目标,说明进行概要设计时应该遵循的设计原则和必须采用的设计方法。

    2.1 限制和约束

    简要描述起到限制和约束作用的各种可能存在的条件,例如:

    ●  技术条件;

    ●  资金状况;

    ●  开发环境(包括:工具和平台);

    ●  时间限制;

    ●  等等。

    并且说明在上述条件下,应该实现的系统目标,

    2.2 设计原则和设计要求

    描述对本软件系统进行概要设计的原则,通常可以考虑以下几方面的内容:

    ●  命名规则;

    ●  模块独立性原则:

    ●  边界设计原则;

    ●  数据库设计规则;

    ●  必须的安全措施;

    ●  安全性和保密原则;

    ●  系统灵活性要求;

    ●  系统易操作性要求;

    ●  系统可维护性要求;

    ●  等等。

    3. 系统逻辑设计

    本节内容主要根据软件产品需求规格说明书和软件产品数据字典建立系统的逻辑模型。此种模型暂时与系统的物理因素(例如:计算机、数据库管理系统)无关。它是系统需求与物理实现的中间结构,它的主要结果是建立:系统结构图、系统界面结构图、系统出错处理、以及系统开发技术说明。

    说明:如果进行系统设计时尚未编写软件数据字典:应首先参照附录B说明,编写软件数据字典。在完成软件数据字典后,再进行系统设计。

    3.1 系统组织设计

    系统组织设计通过系统组织表描述本系统由哪些子系统(模块)组成,这些子系统与业务职能之间的关系,以及各个子系统的安装地点。系统组织表的格式如下:

    子系统编号

    英文名称

    中文名称

    业务职能

    安装地点

    备注

     

     

     

     

     

     

    其中:

    ●  子系统编号

    给出本系统中指定子系统的顺序编号。如果本系统末划分为多个子系统,仅由一

    个运行模块组成;则本项内容仍需要描述,但是本表内容只有一行。

    说明:在一个系统中有可能安装若干个相同的子系统,在这种情况下,应该视为

    一个子系统,并且对多个安装地点分别进行描述。如果相同的子系统通过系统设

    置,实现的业务职能具有明显差异时,应该采用多行进行分别描述,并且在备注

    中说明其差异所在。

    ●  子系统英文名称

    给出本子系统的英文名称,该名称是在应用软件中实际使用的可执行文件名称,

    必须能够说明该子系统的特点。

    若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。

    ●  子系统中文名称

    给出本子系统的中文名称,该名称必须能够说明该子系统的特点。

    若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。

    ●  业务职能

    描述该子系统完成的核心业务。

    ●  安装地点

    描述该子系统实际安装的部门、或者某个具体地点。

    ●  备注

    针对该子系统,需要说明的其它有关问题。

    3.2 系统结构设计

    本节将对系统特性作较为详细的描述,并给出系统特性结构图。

    3.2.1 系统特性表

    系统特性是系统中完成某项具体操作的基本单元,它由入口参数,出口参数以及处理过程三部分组成。

    系统特性可以具有操作界面,也可以没有操作界面;可以被其它操作界面、或者系统特性调用,也可以调用其它操作界面、非操作界面、或者系统特性;但是不允许递归调用(调用自己),包括间接递归调用。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统特性表进行描述。系统特性表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    特性编号

    系统特征

    英文名称

    系统特征

    中文名称

    操作功能

    调用对象

    被调用

    对象

    备注

     

     

     

     

     

     

     

    说明:

    其中

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  特性编号

    整个系统所有特性的统一编号。

    ●  系统特性英文名称

    系统特性的英文正式名称,将来用于软件开发中,必须符合命名规范。

    ●  系统特性中文名称

    系统特性的中文正式名称,来源于需求规格说明书中,系统特性一节中的有关描

    述。

    ●  操作功能

    是指该特性实际完成的操作说明。

    ●  调用对象

    是指调用该系统特性的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。

    ●  被调用对象

    是指被该系统特性调用的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。

    说明:某些较低层的系统特性,可能不存在被调用对象。

    ●  备注

    描述与该系统特性有关的其它注意事项。

    ●  说明

    描述与该系统特性表有关的其它注意事项。

    3.2.2 系统特性结构图

    系统特性结构图给出系统特性在逻辑层面上相互之间的关系,其主要依据来源于需求规格说明书中,系统特性一节中的有关描述。

    如果系统划分为多个子系统,应分别给出系统与子系统、以及各个子系统与系统特性的结构图。

    绘制系统与子系统结构图时,一般不需要描绘出系统特性,如果确有必要,尽可能只画出第一层系统特性。绘制子系统与系统特性结构图时,通常也不需要描绘出第二层系统特性,如果确有必要可以画出,但是尽可能不要画出第三层系统特性。

    3.3 系统接口设计

    系统接口是一种非可视的系统界面,在多数情况下,它对用户是透明的。

    本节将对系统接口作较为详细的描述,并给出接口说明清单。

    3.3.1 系统接口表

    接口作为系统的一种输入/输出形式,分为网络接口、数据库接口、RS-232串行通讯接口、IEEE—485串行总线接口、并行I/O接口等等多种类型。

    对于一些为可视界面服务的接口,例如:打印机接口、显示器接口等,因为这类接口对应用软件是透明的,所以不在本节描述范围内。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统接口表进行描述。系统接口表的格式如下:

    子系统编号

    子系统英文名称

    子系统中文名称

    接口

    编号

    接口

    名称

    接口

    类型

    接口

    性质

    接口

    速率

    接口

    协议

    备注

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  接口编号

    整个系统所有接口的统一编号。

    ●  接口名称

    系统接口的正式名称,必须符合通常习惯。

    ●  接口类型

    指出该接口所传输的数据在该模块中起到的作用。

    ●  接口性质

    指出该接口在通讯中起到的作用,这里的作用可以是:

    n 输入;

    n 输出;

    n 双向。

    ●  接口速率

    指出该接口的传输速率。如果该接口依赖于其它通讯方式,那么传输速率将不高于它所依赖的其它通讯方式的速率。

    ●  接口协议

    给出该接口实际使用的通讯协议。

    ●  相关对象

    给出直接使用本接口的系统对象,这里的系统对象,可以是操作界面,也可以是系统特性。

    ●  备注

    描述与该系统接口有关的其它注意事项。

    ●  说明

    描述与该系统接口表有关的其它注意事项。

    3.3.2 系统接口传输协议说明

    逐项详细描述系统接口表中所列出各个系统接口使用的传输协议,以及其它相关内容,例如:驱动程序、动态连接库、等等。

    3.4 系统完整性设计

    描述系统对象(数据元、数据类),所受到的逻辑约束关系。

    当系统由多个子系统(模块)组成时,每个子系统应分别使用一张系统完整性约束表进行描述。系统完整性约束表的格式如下:

    子系统编号

    子系统英文名称

    子系统中文名称

    约束编号

    完整性名称

    相对对象名

    约束表达式

    备注

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  约束编号

    整个系统所有约束的统一编号。

    ●  完整性名称

    系统完整性约束的正式名称,必须符合通常习惯。

    ●  相对对象名

    完整性约束中的相关对象(数据元和数据类)。

    ●  约束表达式

    用一阶逻辑表达式表达的约束方程式。

    ●  备注

    描述与该系统完整性约束有关的其它注意事项。

    ●  说明

    描述与该系统完整性约束表有关的其它注意事项。

    4. 系统出错处理设计

    本节描述系统发生外界及内在错误时,所提供的错误信息及处理方法,它包括系统出错处理表及维护处理过程表。

    4.1 系统出错处理表

    本表给出有关出错处理的产生原因、提示信息、以及建议处理方法。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统出错处理表进行描述。系统出错处理表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    错误编号

    错误名称

    错误原因

    错误信息

    处理方式

    备注

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  错误编号

    整个系统所有错误的统一编号。

    ●  错误名称

    错误的正式名称,该名称应该是常用的,并且为人们所普遍接受的。

    ●  错误原因

    对该错误产生原因的解释与说明。

    ●  错误信息

    产生该错误时,向用户发出的提示信息。

    ●  处理方式

    对该错误处理的一种建议,此项允许缺省。

    ●  备注

    描述与该系统错误有关的其它注意事项。

    ●  说明

    描述与该系统错误表有关的其它注意事项。

    4.2 维护处理过程表

    系统出错时,将调用维护处理过程对错误进行处理,有关维护处理过程的各项内容由维护处理过程表进行描述。

    当系统有多个子系统(模块)组成时,每个子系统分别使用一张维护处理过程表进行描述。维护处理过程表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    错误编号

    处理过程

    处理过程

    处理功能

    入口参数

    出口参数

    备注

    英文名称

    中文名称

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  错误编号

    含义同上。

    ●  处理过程英文名称

    系统维护处理过程的英文正式名称,将来用于软件开发中,必须符合命名规范。

    ●  处理过程中文名称

    系统维护处理过程的中文正式名称,是系统维护处理过程英文名称的中文说明。

    ●  处理功能

    描述本维护处理过程对错误的处理方式。

    由于一个维护处理过程有可能具有对多个错误进行处理的能力,因此该处理功能

    必须是针对本项错误编号的。

    ●  入口参数

    进行本项错误处理时,赋给维护处理过程的入口参数。

    ●  出口参数

    进行本项错误处理时,维护处理过程返回的出口参数。

    ●  备注

    描述与该系统错误有关的其它注意事项。

    ●  说明

    描述与该系统错误表有关的其它注意事项。

    5. 技术设计

    系统技术设计描述系统各个特性实际使用的开发技术,以及具体开发技术使用时应该注意的事项。

    5.1 系统开发技术说明表

    本表描述系统各个特性开发时实际使用的具体技术,只有一些不太常用的技术需要在这里描述。一些常用技术,例如:通过数据库接口调用存储过程,则不必冗述。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统开发技术说明表进行描述。系统开发技术说明表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    技术编号

    开发技术

    开发技术

    处理功能

    系统特性编号

    备注

    英文名称

    中文名称

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  技术编号

    这个系统所使用各种技术的统一编号。

    ●  开发技术英文名称

    该开发技术的英文正式名称,可以便用缩写。

    该名称应该是常用的,并且为人们所普遍接受的。

    ●  开发技术中文名称

    该开发技术的中文正式名称,是该开发技术英文名称的中文说明。

    该名称应该是常用的,并且为人们所普遍接受的。

    ●  处理功能

    描述本开发技术的处理目的。

    ●  系统特性编号

    含义同上。

    由于一项开发技术可能在多处使用,因此针对一项开发技术,有可能存在多个系

    统特性编号,在此必须一一列出。

    ●  备注

    描述与该系统开发技术相关的其它注意事项。

    ●  说明

    描述与该系统开发技术说明表有关的其它注意事项。

    5.2 开发技术应用说明

    逐项详细描述系统开发技术说明表中所列出各项系统开发技术使用的技术要点,以及其它相关内容,例如:所需的服务、使用的动态连接库、调用的组件、等等。

    6. 数据库设计

    如果该软件产品需要使用数据库,不论是使用数据库平台支撑的,还是采用由软件产品开发者自行定义的;都应该在完成软件产品需求分析报告后,开始进行软件产品详细设计之前,按照软件产品数据库设计说明文档模板完成数据库设计工作。

    7. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原向)。为了便于非软件专业或者非计算机专业人士阅读软件系统概要设计报告,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    8. 进度计划

    列出进度计划,包括各子系统、各子模块完成进度计划,人员配备计划等。

     

     

     

     

     

     

     

     

     

    附录C   软件详细设计报告文档模板

     

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 参考资料

    2. 支撑环境

    2.1 数据库管理系统

    2.2 开发工具、中间件以及数据库接口

    2.3 硬件环境

    2.4 网络环境

    2.5 多种支撑环境开发要点

    3. 部件详细设计

    4. 词汇表

    5. 部件表格式

    6. 界面表格式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件系统详细设计报告的概览,是为了帮助阅读者了解这份文档如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告、哪份软件产品概要设计报告和哪份软件产品数据库设计说明书(如果该软件产品需要数据库支持)编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统详细设计报告详尽说明了该软件产品的编码结构,从而对该软件产品的物理组成进行准确的描述。

    如果这份软件系统详细设计报告只与整个系统的某一部分有关系,那么只定义软件系统详细设计报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的标准(如果有标准的话),或者各种编写约定。编写约定应该包括:

    ●  部件编号方式;

    ●  界面编号方式;

    ●  命名规范:

    ●  等等。

    1.4 预期读者和阅读建议

    列举本软件系统详细设计报告所针对的各种不同的预期读者,例如,可能的读者包括:

    ●  开发人员;

    ●  项目经理;

    ●  测试人员;

    ●  文档编写人员;

    ●  等等。

    描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 参考资料

    列举编写软件系统详细设计报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标难;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它己发表文件;

    ●  本软件系统详细设计报告中所引用的文件、资料;

    ●  相关软件系统详细设计报告;

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 支撑环境

    2.1 数据库管理系统

    描述数据库管理系统、以及安装配置情况,需要描述的内容可能包括:

    ●  产品名称以及发行厂商

    这里的产品名称指的是数据库发行厂商发布产品时公布的正式商品名称,不应该

    使用别名、简称、研发代号等非正式名称,以免混淆;同样的道理,发行厂商的

    名称也应该使用正式名称。

    ●  版本号

    数据库管理系统的准确版本号,必须按产品的实际情况描述到最细节的版本号。

    ●  补丁包版本号

    描述实际上将要使用的数据库管理系统补丁包的版本号,必须注意,在某些情况

    下该版本号不一定是最新的版本号。

    ●  语言或代码集

    对于只支持一种语言或者一个代码集的数据库管理系统来说,该项描述不具意

    义。对于支持多种语言或者多个代码集的数据库管理系统来说,该项描述指的是

    实际使用的语言或者代码集。

    ●  安装位置

    描述数据库管理系统的实际安装位置,应该分别对管理系统安缺位置和数据存放

    位置进行描述,应该指明服务器名和安装卷号(盘号)。对于分布式数据库,必须

    分别描述每一个数据库管理系统。

    ●  配置参数

    描述数据库管理系统在实际安装时应该配置的各个参数,对于分布式数据库,必

    须分别描述每一个数据库管理系统的配置参数。

    ●  等等

    同时参照《南京市交通局信息化数据库建设规范》。

     

    2.2 开发工具、中间件以及数据库接口

    描述所选用的工具软件和中间件的名称、版本号,以及开发工具与数据库或者中间件接口的情况。如果使用了多种开发工具、辅助开发工具、第三方软件部件、多种中间件、多种接口、等答应该逐项分别描述,并且说明每一项的适用范围。需要描述的内容可能包括:

    ●  产品名称以及发行厂商

    同2.1中产品名称以及发行厂商。

    ●  版本号

    同2.1中版本号。

    ●  补丁包版本号

    同2.1中补丁包版本号。

    ●  语言或代码集

    同2.1中语言或代码集。

    ●  数据库接口名称

    描述数据库接口的名称,如果使用别名时,应同时描述使用的别名。

    ●  数据库接口方式

    描述与数据库接口的方式,并说明该接口方式的特点;如果需要,还应该说明使

    用时的注意事项。

    ●  数据库接口设置

    描述各种接口设置,包括:协议、端口号等等。

    同时参照《南京市交通局信息化数据库建设规范》。

    2.3 硬件环境

    描述所选用的硬件环境,各种机型,例如:服务器、工作站,应该分别描述。需要描述的内容可能包括:

    ●  机型;

    ●  主频;

    ●  内存容量;

    ●  磁盘容量;

    ●  特殊部件;

    ●  操作系统;

    ●  使用位置;

    ●  等等。

    2.4 网络环境

    描述可能影响应用软件访问数据库的各种网络环境,如果存在加密传输、VPN链路等情况,也必须描述。对于结构复杂的网络,还应该提供网络拓扑图和数据流向示意图。需要描述的内容可能包括:

    ●  网络结构;

    ●  网络操作系统;

    ●  网络带宽;

    ●  路由组织;

    ●  加密传输方式;

    ●  VPN链路连接方式;

    ●  等等。

    2.5 多种支撑环境开发要点

    当软件产品将来可能遇到的多种运行环境时,应该分别按照3.1节至3.4节的内容列表描述。如果软件产品各个子系统的运行环境不完全一样时,应该分子系统按照3.1节至3.4节的内容列表描述。

    遇到上述情况时,不仅需要详细描述各种软件开发、调试、测试的环境,为了确实保证软件产品将来能够在各种可能的运行环境中正常运行,还需要对软件产品进行严格的配置管理。

    3. 部件详细设计

    这里所提及的软件部件,系指能够完成特定功能、相对独立的一些代码集合,它们可以是插件、组件、控件、函数、过程、子程序、动态连接库、等等。具体呈何种形态,取决于实际采用的开发工具和将要实现的软件结构。

    按照合适的顺序,逐个描述软件部件的详细情况。描述的顺序可以是按层次横向进行描述,也可以是按模块纵向进行描述,总之描述的方式必须有利于读者理解软件结构。

    每个部件采用一张软件部件表进行描述,软件部件表的格式见附表一,其中;

    ●  部件编号

    软件部件的统一顺序编号;对于实行配置管理的软件开发项目来说,该编号必须

    与该部件在配置管理中的编号相同。

    ●  部件名称

    软件部件的正式英文名称,该名称是程序中使用的实际名称,必须符合国家相关软件命名标准。

    ●  所属子系统

    指该部件所属的子系统;

    对于不分为多个子系统的软件来说,不必填写该栏。

    ●  部件调用者

    指调用该部件的部件(或界面参数)的编号和名称。

    ●  部件被调用者

    指被该部件所调用的部件的编号和名称。

    ●  部件入口参数

    指该部件入口数据类名称或者数据名称,以及对这些数据的描述;

    如果部件没有入口参数,该栏为空。

    ●  部件出口参数

    指该部件出口数据类名称或者数据名称,以及对这些数据的描述;

    如果部件没有出口参数,该栏为空。

    ●  算法

    指该部件的算法形式表示,如果很简单、或者不存在,也可以为空。

    ●  流程描述

    指该部件的处理流程的详细表示或描述。

    ●  部件表示形式

    指该部件完成开发后的最终表示形式,具体形式取决于开发工具和软件结构,表

    示形式可能是:

    n 插件、组件、控件,

    n 函数、过程、子程序,

    n 存储过程,

    n 动态连接库,

    n 等等。

    ●  运行环境

    描述该部件所适合的运行环境,即说明该部件是针对何种运行环境所开发的;

    可以直接描述运行环境,也可以描述运行环境的编号;

    对于实行配置管理的软件开发项目来说,该描述必须与该部件在配置管理中的描

    相同。

    ●  性能要求

    指开发该部件时必须满足的专门要求,这些要求可以是:

    n 精度

    n 灵活性

    n 响应时间

    n 可重用性

    n 等等。

    提出的要求一般不宜超过3项,以排列的先后顺序表示优先级。

     

    4. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士也能够在一定的范围内,读懂软件系统详细设计报告,要求尽可能使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    5. 部件表格式

    部件编号

     

    部件名称

     

    所属子系统

     

    部件调用者

     

    部件被调用者

     

    部件入口参数

     

    部件入口参数

     

    算法:

     

     

     

     

     

    流程描述:

     

     

     

     

     

     

    表示性能

     

    运行环境

     

    性能要求

     

     

     

    说明:如果软件不见使用一张表表述不完时,可以采用续表描述,但是必须注明是那张表的续表。

    6. 界面表格式

    界面编号

     

    部件名称

     

    界面性质

     

    界面介质

     

    表示形式:

     

     

     

     

     

     

     

     

     

    界面参数

       参数名

    内容

    说明

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    说明:如果软件不见使用一张表表述不完时,可以采用续表描述,但是必须注明是那张表的续表。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录D   软件数据库设计报告文档模板

                                         

    1. 引言

    1.1 编写目的

    1.2 项目来源

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 参考资料

    2. 数据库命名规则

    3. 数据库设计说明

    3.1 数据库逻辑设计

    3.2 数据库物理设计

    3.3 数据库分布

    3.4 基表设计

    3.5 视图设计

    3.6 索引设计

    3.7 完整性约束

    3.8 授权设计

    3.9 触发器设计

    3.10 存储过程设计

    3.11 数据复制设计

    4. 词汇表

    5. 历史数据处理

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份数据库设计说明书的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份数据库设计说明书是为哪份软件产品编写的,开发这个软件产品意义、作用以及最终要达到的意图。通过这份数据库设计说明书详尽准确地描述了该软件产品的数据库结构。如果这份数据库设计说明书只与整个系统的某一部分有关系,那么只定义数据库设计说明书中说明的那个部分或子系统。

    1.2 项目来源

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的各种排版约定。排版约定应该包括:

    ●  命名方法;

    ●  提示方式;

    ●  通配符号:

    ●  等等。

    1.4 预期读者和阅读建议

    列举本数据库设计说明书所针对的各种不同的预期读者,例如,可能包括:

    ●  开发人员;

    ●  项目经理;

    ●  测试人员;

    ●  文档编写人员。

    并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 参考资料

    列举编写需求规格说明书时所用到的参考文献及资料,可能包括;

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标准;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它已发表文件;

    ●  本数据库设计说明书中所引用的文件、资料;

    ●  相关软件产品数据库设计说明书;

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 数据库命名规则

    完整并且清楚的说明本数据库的命名规则,在《南京市交通局信息化数据库建设规范》中已经给出了一个完整的数据库命名规则,开发者应遵守执行,如果本数据库的命名规则与该规范不完全一致,应作出解释。

    3. 数据库设计说明

    3.1 数据库逻辑设计

    数据库设计人员根据《软件需求分析报告》,创建与数据库相关的实体关系图(E-R图)。如采用面对对象的分析和设计方法,则此处的实体相当于类。

    在此处,应给出逻辑设计的完整的E-R图。

    3.2 数据库物理设计

    在此处应给出完整的数据库物理结构E-R图。开发者应根据逻辑设计的结果,进行数据库的物理设计,并对表结构进行规范化处理(第一范式,第二范式,第三范式)。

    3.3 数据库分布

    数据库分布采用一张表格进行描述,其格式如下:

    数据库

    编号

    数据库

    管理系统

    名称

    数据库

    管理系统

    版本号

    数据库

    英文名称

    数据库

    中文名称

    数据库

    安装

    物理位置

     

     

     

     

     

     

    其中:

    ●  数据库编号

    给出本系统中指定数据库的顺序编号。

    若本系统中只有一个数据库,则本项内容不需要描述,本表内容也只有一行。

    说明: 在一个系统中可能安装若干个相同的或者不同的数据库管理系统,

    一个数据库管理系统也可能安装一个或者多个数据库。

    ●  数据库管理系统名称

    给出本系统中指定数据库管理系统的商品名称。

    若本系统中只有一种数据库管理系统,则本项内容不需要描述。

    ●  数据库管理系统版本号

    给出本系统中指定数据库管理系统的版本号。

    若本系统中只有一个版本的数据库管理系统,则本项内容不需要描述。

    ●  数据库英文名称

    给出本数据库的英文名称,该名称是在应用软件中实际使用的名称,必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  数据库中文名称

    给出本数据库的中文名称,该名称是本数据库英文名称的说明。

    ●  数据库安装物理位置

    给出本数据库安装的实际位置,必须描述清楚该位置是在那个物理设备的哪一

    个逻辑存储设备上,以及存储文件的名称。

    3.4 基表设计

    每个基表采用一张表格进行描述,其格式如下:

    数据库编号:

    基表编号:

    基表英文名称:

    基表中文名称:

    字段编号

    英文字段名

    中文字段名

    字段类型

    备注

     

     

     

     

     

    说明:

    其中

    ●  数据库编号

    含义同上。

    ●  基表编号

    给出本基表的顺序编号。

    ●  基表英文名称

    给出本基表的英文名称,该名称是在应用软件中实际使用的名称,必须符合命

    名规范。

    ●  基表中文名称

    给出本基表的中文名称,该名称是本基表英文名称的说明。

    ●  字段编号

    该基表中,各个字段的顺序编号。

    ●  英文字段名

    该基表中,各个字段的英文名称,该名称必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  中文字段名

    该基表中,各个字段的中文名称,该名称是英文字段名的说明。

    ●  字段类型

    该基表中,各个字段的类型;如果需要,在说明类型时,还需要说明字段长度。

    ●  备注

    该基表中,各个字段有关的限制性说明,需要描述的内容可能包括:

    n 值域;

    n 缺省值;

    n 空字段限制;

    n 显示格式与小数位数;

    n 有效性规则与约束;

    n 标题;

    n 等等

    ●  说明

    说明一些有关本表的、必须描述清楚的问题,需要描述的内容可能包括:

    n 主关键字;

    n 索引、排序方式和类型;

    n 触发器;

    n 数据复制;

    n 等等

    3.5 视图设计

    每个视图采用一张表格进行描述,其格式如下:

    数据库编号:

    视图编号:

    视图英文名称:

    视图中文名称:

    相关基表和视图:

    字段编号

    英文字段名

    中文字段名

    字段类型

    字段源

    备注

     

     

     

     

     

     

    说明:

    其中:

    ●  数据库编号

    含义同上。

    ●  视图编号

    给出本视图的顺序编号。

    ●  视图英文名称

    给出本视图的英文名称,该名称是在应用软件中实际使用的名称,必须符合

    命名规范。

    ●  视图中文名称

    给出本视图的中文名称,该名称是本视图英文名称的说明。

    ●  相关基表和视图

    列出建立该视图时,所用到的基表和视图。

    ●  字段编号

    该视图中,各个字段的顺序编号。

    ●  英文字段名

    该视图中,各个字段的英文名称,该名称必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  中文字段名

    该视图中,各个字段的中文名称,该名称是英文字段名的说明。

    ●  字段类型

    该视图中,各个字段的类型;如果需要,在说明类型时,还需要说明字段长度。

    ●  字段源

    该视图中,各个字段的来源,即该字段原来是那个表或者那个视图中的那个字

    段;在某些情况下,字段可能来自一个特定的表达式。

    ●  备注

    该视图中,各个字段有关的限制性说明,包括:

    n 值域;

    n 缺省值;

    n 空字段限制;

    n 显示格式与小数位数;

    n 有效性规则与约束;

    n 标题;

    n 等等。

    ●  说明

    说明一些有关本视图的、必须描述清楚的问题,需要描述的内容可能包括:

    n 索引;

    n 权限;

    n 等等

    3.6 索引设计

    每个数据库的所有采用一张表格进行描述,其格式如下:

    数据库编号:

    索引编号

    基表名称

    索引名称

    字段集名称

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  索引编号

    给出本项索引的顺序编号。

    ●  基表名称

    给出本项索引所在的基表名称。

    ●  索引名称

    给出本项索引的名称。

    ●  字段集名称

    给出本项索引所在的字段名称或者字段集名称。

    ●  备注

    描述有关本项索引中,其它需要说明的事项,例如:排序方式、等等。

    3.7 完整性约束

    每个数据库的完整性约束采用一张表格进行描述,其格式如下:

    数据库编号:

    索引编号

    基表名称

    索引名称

    字段集名称

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  约束编号

    给出本项完整性约束的顺序编号。

    ●  完整性约束名

    给出本项完整性约束的名称。

    ●  基表名

    给出本项完整性约束所在的基表名称。

    ●  字段名

    给出本项完整性约束所在的字段名称。

    ●  约束表达式

    给出本项完整性约束的逻辑表达式。

    ●  备注

    描述有关本项完整性约束中,其它需要说明的事项。

    3.8 授权设计

    每个数据库的授权采用一张表格进行描述,其格式如下:

     

    数据库编号:

    授权编号

    用户名称

    对象名称

    权限

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  授权编号

    给出本项授权的顺序编号。

    ●  用户名称

    给出本项授权的用户名称,这里的用户不一定是具体用户,也可以是用户组。

    ●  对象名称

    给出本项授权的对象名称,例如:基表、字段、等等。

    必须注意到,一个用户可能存在多项授权,应该逐项描述。

    ●  权限

    被授权用户在该对象上拥有的访问权限,例如:查询权、修改权、等等。

    ●  备注

    描述有关本项授权中,其它需要说明的事项。

    3.9 触发器设计

    ●  数据库编号

    含义同上。

    ●  触发器编号

    给出本触发器的顺序编号。

    ●  触发器英文名称

    给出本触发器的英文名称,必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  触发器中文名称

    给出本触发器的中文名称,该名称是本触发器英文名称的说明。

    ●  触发器条件

    给出该触发器产生触发的条件。

    ●  触发器结果

    给出该触发器被触发后所执行的动作内容。

    3.10 存储过程设计

    每个数据库的授权采用一张表格进行描述,其格式如下:

    数据库编号:

    存储过程编号:

    存储过程英文名称:

    存储过程中文名称:

    存储过程内容:

     

    说明:

     

    其中:

    ●  数据库编号

    含义同上。

    ●  存储过程编号

    给出本存储过程的顺序编号。

    ●  存储过程英文名称

    给出本存储过程的英文名称,该名称是在应用软件中实际使用的名称,必须符

    合命名规范。

    ●  存储过程中文名称

    给出本存储过程的中文名称,该名称是本存储过程英文名称的说明。

    ●  存储过程内容

    给出该存储过程算法或者描述详细内容,如果需要,应该辅以流程图说明。

    ●  说明

    描述本存储过程需要说明的一些事项。

    3.11 数据复制设计

    每项数据复制采用一张表格进行描述,其格式如下:

    数据复制编号:

    复制英文名称:

    复制中文名称:

    源数据库编号:

    目标数据库编号:

    复制说明:

    执行方式:

    源数据库名称

    目标数据库名称

    基表名称

    字段名称

    基表名称

    字段名称

     

     

     

     

    备注:

    其中:

    ●  数据复制编号

    给出本数据复制的顺序编哥

    ●  数据复制英文名称

    给出本数据复制的英文名称,该名称是在应用软件中实际使用的名称,必须符

    合命名规范。

    ●  数据复制中文名称

    给出本数据复制的中文名称,该名称是本数据复制英文名称的说明。

    ●  源数据库编号

    作为复制数据源的数据库编号,编号含义同上。

    ●  目标数据库编号

    作为复制目标的数据库编号,编号含义同上。

    ●  复制说明

    给出该复制的详细描述,如果需要,应该辅以示意图说明。

    ●  执行方式

    给出该复制的执行方式,描述时应该说明:

    ●  自动执行

    必须说明执行周期或者执行条件。

    ●  调用执行

    必须说明被那个模块调用,以及是手动调用,还是条件调用。

    ●  源数据库名称

    给出对应源数据库编号的源数据库名称。

    ●  目标数据库名称

    给出对应目标数据库编号的目标数据库名称。

    ●  基表名称

    分别给出源数据库和目标数据库中,进行对应复制的源基表名称和目标基表名

    事例。

    ●  字段名称

    分别给出源基表和目标基表中,进行对应复制的源字段名称和目标字段名称。

    ●  备注

    描述本复制中需要说明的一些特殊事项。

    4. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的

    外文原词)。为了便于非软件专业或者非计算机专业人士(例如:文档编写人员等等。)

    阅读数据库设计说明书,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    5. 历史数据处理

    严格说来,历史数据处理并不属于数据库设计范畴。但是对于大多数数据库来说,如果历史数据处理不当,少则数月、多则数年,最终将使数据库无法正常运行。这段时间的长短取决于数据库设计容量大小,以及数据流强度(即在单位时间内进入数据库的数据记录数量)高低。因此应该设计专门的归档数据库,并根据历史数据需要保存备查的时间长短,定期将历史数据转移到归档数据库中。

    设计归档数据库时,需要根据具体情况进行考虑,下面列出一些可能需要考虑的内容:

    ●  历史数据需要备查的时间长短。

    ●  数据转移周期的时间单位

    例如:日、周、旬、月、季、年、等等。

    ●  数据转移的方式

    例如:手动、自动、条件、等等。

    ●  历史数据保存的细节

    多数情况下,归档的历史数据并不需要保存全部细节,可以去掉部分细节,采

    用压缩归档处理的方法减少归档数据库的占用空间。

    注意:如果压缩数据时,去掉了不该去掉的细节,将是无可挽回的。

    ●  其它需要说明的问题

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录E   软件测试(验收)大纲

     

    1. 引言

    1.1 目的

    1.2 术语

    1.3 参照标准

    2. 测试日期安排

    3. 测试小组及成员

    4. 测试具体内容

    4.1 合法性检查

    4.2 软件文档检查

    4.2.1 必须提供检查的文档

    4.2.2 其他可能需要检查的文档

    4.2.3 由业主确定必须检查的其他文档

    4.2.4 文档质量的度量准则

    4.3 软件代码测试

    4.3.1 源代码一般性检查

    4.3.2 软件一致性检查

    4.4 软件系统测试

    4.4.1 界面(外观)测试

    4.4.2 可用性测试

    4.4.3 功能测试

    4.4.4 稳定性(强度)测试

    4.4.5 性能测试

    4.4.6 强壮性(恢复)测试

    4.4.7 逻辑性测试

    4.4.8 破坏性测试

    4.4.9 安全性测试

    5. 测试结果交付方式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    1.1 目的

    为了尽可能的找出软件的不足,提高软件的质量,促进软件的成功验收,专门制定了本大纲。其主要目的在于为所要进行的测试工作制定各种必要的准则和规范,以及在有关方面协议的基础上对测试工作进行合理组织与管理。

    1.2 术语

    本大纲所提及的术语,其定义遵照GB/T 11457标准。

    1.3 参照标准

    ●  GB/T 11457—1995

    软件工程术语

    ●  GB 8566—1995;

    信息技术软件生存期过程

    ●  OGB 8567—1988*

    计算机软件产品开发文件编制指南

    ●  GB 9385*

    计算机软件需求说明编制指南

    ●  GB 9386—1988*

    计算机软件测试文件编制指南

    ●  GB/T 12504—1990

    计算机软件质量保证计划规范

    ●  OGB/T 12505—1990

    计算机软件配置管理计划规范

    ●  OGB/T 14079—1993

    软件维护指南

    ●  OGB/T 14394—1993

    计算机软件可靠性和可维护性管理

    ●  GB/T 16680一1996

    软件文档管理指南

    ●  开发者企业规范

    软件开发者有关软件工程的规范

    ●  其它文件

    例如:合同书等,法律文件中的有关规定。

    说明:(1)应该遵循自顶而下、就严不就宽的原则,除非合同书等法律文件中另有规定。

         (2)标记(*)号的标准为推荐标准。

    2. 测试日期安排

    开发方如期交付软件的基础上,由业主审核确定具体日期安排。

    3. 测试小组及成员

    由业主聘请具有一定的分析、设计、编程和软件测试经验的测试组长和其他专业人员组成。测试组设组长一名(可设有副组长),负责整个测试的计划、组织工作。

    或委托具有国家认可测试资质的第三方进行测试。

    4. 测试具体内容

    测试内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

    4.1 合法性检查

    检查开发者在开发本软件时,使用的开发工具是否合法。对在编程中使用的一些非本单位自己开发的,也不是由开发工具提供的控件、组件、函数库等,检查其是否有合法的发布许可。

    4.2 软件文档检查

    4.2.1 必须提供检查的文档

    ●  项目实施计划;

    ●  详细技术方案;

    ●  软件需求规格说明书(STP)(含数据字典);

    ●  概要设计说明书(PDD);

    ●  详细设计说明书(DDD)(含数据库设计说明书);

    ●  软件测试计划(STP)(含测试用例);

    ●  软件测试报告(STR);

    ●  用户手册(SUM)(含操作、使用、维护、应急处理手册);

    ●  源程序(SCL)(不可修改的电子文档);

    ●  项目实施计划(PIP);

    ●  项目开发总结(PDS);

    ●  软件质量保证计划(SQAP);

    4.2.2 其他可能需要检查的文档

    ●  软件配置计划(SCMPP);

    ●  项目进展报表(PPR);

    ●  阶段评审报表(PRR);

    4.2.3 由业主确定必须检查的其他文档

    说明:如果业主认为4.1.1节和4.1.2节所列文档之外,还需要检查其它文档,则在此列出文档名称;如果业主认为不需要进行额外的文档检查,则本部分无内容。

    4.2.4 文档质量的度量准则

    文档是软件的重要组成都分,是软件生存周期各个不同阶段的产品描述。文档质量的度量准则就是要评审各阶段文档的合适性。主要有以下六条:

    ●  完备性

    开发方必须按照GB 8567(计算机软件产品开发文件编制指南)的规定编制相应的

    文档,以保证在开发阶段结束时其文档是齐全的。

    ●  正确性

    在软件开发各个阶段所编写的文档的内容,必须真实的反映阶段的工作且与该阶

    段的需求相一致。

    ●  简明性

    在软件开发各个阶段所编写的各种文档的语言表达应该清晰、准确简练,适合各

    种文档的特定读者。

    ●  可追踪性

    在软件开发各个阶段所编写的各种文档应该具有良好的可追踪性。文档的可追踪

    性包括横向可追踪性和纵向可追踪性两个方面。前者是指在不同的文档的相关内

    容之间相互检索的难易程序;后者是指确定同一文档某一内容在本文档范围中检

    索的难易程度。

    ●  自说明性

    在软件开发各个阶段所编写的各种文档应该具有较好的自说明性。文档的自说明

    性是指在软件开发各个阶段中,不同文档能够独立表达,该软件在其相应阶段的

    阶段成果的能力。

    ●  规范性

    在软件开发各个阶段所编写的各种文档应该具有良好的规范性。文档的规范性是

    指文档的封面、大纲、术语的含义以及图示符号等符合有关规范的规定。

    4.3 软件代码测试

    4.3.1 源代码一般性检查

    仅对系统关键模块的源代码进行抽查,检查模块代码编写的规范性,批注的准确性,是否存在潜在性错误,以及代码的可维护性。

    ●  命名规范检查

    检查源代码中的变量、函数、对象、过程等的命名是否符合约定规范,该规范可

    以由开发方在软件工程文档规范中单方面约定。

    ●  注释检查

    检查程序中的注释是否规范,注释量是否达到约定要求,例如:要求注释量达到

    30%左右。

    ●  接口检查

    检查数据库接口等外部接口是否符合要求,各程序模块使用的接口方式是否一

    致,特定的外部接口协议是否符合。

    ●  数据类型检查

    源代码中涉及的金额的常量、变量及数据集和数据库中涉及金额的数据类型是否

    采用货币类型,以防止在特定条件下产生较大的误差而影响统计结果。

    ●  限制性检查

    对一些程序中使用到的、具有使用限制的命令、事件、方法、过程、函数、对象、

    控件等进行检查。检查在长时间运行时,有无可能接近或者达到限制条件,

    这里考虑的系统运行时间可能长达数年。

    4.3.2 软件一致性检查

    ●  编译检查

    要求提交的源代码在其规定的编译环境中,能够重新编译无错误,并且能够完成

    相应的功能,从而确定移交的确实是正确的源代码。

    ●  安装/卸载检查

    在新系统上用交付的软件安装盘重新安装各个模块,并且通过运行这些软件模

    块,能否完成相应的功能,从而确定移交的确实是正确的软件安装盘。

    在安装后立即卸载所安装的模块,并且检查是否能够做到彻底卸载。

    ●  运行模块检查

    将新安装的软件模块与现场运行模块用软件工具抽样比较,确认交付的软件安装

    盘与现场运行软件一致。

    抽查数处现场运行模块用软件工具比较,确认现场运行软件一致。

    4.4 软件系统测试

    软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。

    进行软件系统测试工作时,具体的测试用例是由开发方提供,并由测试方和用户共同补充制定的。在开发方做完功能演示后,可以进行下列测试:

    ●  界面(外观)测试;

    ●  可用性测试;

    ●  功能测试;

    ●  稳定性(强度)测试;

    ●  性能测试;

    ●  强壮性(恢复)测试;

    ●  逻辑性测试;

    ●  破坏性测试;

    ●  安全性测试。

    说明:实际进行的测试内容有测试方法和业主根据具体情况共同确定,并非文中所列测试内容都必须进行测试。

    4.4.1 界面(外观)测试

    对照界面规范(在软件需求规格说明书中规定,或者由软件工程规范中给出)和界面表(在概要设计中给出),检查各界面设计是否规范,包括:界面风格、表现形式、组件用法、字体选择、字号选择、色彩搭配、日期表现、计时方法、时间格式、对齐方式等等,是否符合规范、是否协调一致、是否便于操作。

    4.4.2 可用性测试

    测试操作是否方便,用户界面是否友好等。测试系统是否有影响操作流程的界面Bug和功能Bug,纪录具体Bug的数量、出现频率和严重程度。

    4.4.3 功能测试

    检查数据在流程中各个阶段的准确性。对系统中每一模块利用实际数据运行,将其结果与同样数据环境下应该得出的结果相比较,或与软件需求规格说明书中要求的结果进行比较,如有偏差,则功能测试不能通过。

    检查软件需求规格说明书中描述的需求是否都得到满足;系统是否缺乏软件需求规格说明书中规定的重要功能;以及系统实际使用中不可缺少而软件需求规格说明书中没有规定的功能。

    如果存在遗产数据,应该检查遗产数据转换是否正确。

    4.4.4 稳定性(强度)测试

    测试系统的能力最高实际限度,即检查软件在一些超负荷情况下,功能实现的情况。例如:要求软件进行某一行为的大量重复、输入大量的数据或大数值数据、对数据库进行大量复杂的查询等。

    利用边界测试(最大值、最小值、N次循环)对系统进行模拟运行测试,观察其是否处于稳定状态。

    4.4.5 性能测试

    根据系统设计指标,或者对被测软件提出的性能指标,测试软件的运行性能,例如:传输连接最长时限、传输错误率、计算精度、记录精度、响应时限和恢复时限等。

    4.4.6 强壮性(恢复)测试

    采用人工的干扰使应用软件、平台软件或者系统硬件出错,中断正常使用,检测系统的恢复能力。进行强壮性测试时,应该参考性能测试相关的测试指标。

    4.4.7 逻辑性测试

    根据系统的功能逻辑图,测试软件是否按规定的逻辑路径运行,选择一些极限数据判断软件运行是否存在错误或非法路径,从而发现系统的逻辑错误或非法后门。

    4.4.8 破坏性测试

    输入错误的或非法的数据(类型),检查系统的报错纠错的能力及稳定性。并测试可连续使用多长时间而系统不崩溃。

    4.4.9 安全性测试

    验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰,安全测试时需要设计一些测试用例试图突破系统的安全保密措施,检验系统是否有安全保密的漏洞。

    说明:进行安全测试时,必须遵循相关的安全规定,并且有业主派员参加。

    5. 测试结果交付方式

    测试结束后,由测试组填写软件测试报告,并将测试报告与全部测试材料一并交给业主。具体交付方式,由业主和测试方双方协商确定。测试报告包括下列内容:

    ●  软件测试计划

    ●  软件测试日志

    ●  软件文档检查报告

    ●  软件代码测试报告

    ●  软件系统测试报告

    ●  测试总结报告

    ●  测试人员签字登记表

    展开全文
  • 软件开发模式之敏捷开发(scrum)

    万次阅读 多人点赞 2018-08-08 19:18:20
    简介 这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发... 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。 在敏捷开发中,软件项目在构建初期被...

    简介

    这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发和xp敏捷开发,人人都在谈论敏捷开发。那什么才是敏捷开发呢?

    目录

    1. 什么是敏捷开发?
    2. 传统的开发模式和敏捷开发模式的对比?
    3. 敏捷开发scrum的实施。

    什么是敏捷开发

    敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

    在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

    传统的开发模式和敏捷开发模式的对比

    瀑布模型:
    这里写图片描述
    优点:
    1. 为项目提供了按阶段划分的检查点。
    2. 当前一阶段完成后,您只需要去关注后续阶段.
    3. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

    缺点:
    1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
    2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
    3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
    4. 瀑布模型的突出缺点是不适应用户需求的变化。

    敏捷模型:
    这里写图片描述
    优点:

    1. 敏捷开发的高适应性,以人为本的特性。
    2. 更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

    缺点:

    1. 由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

    敏捷开发scrum的实施

    Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,相当于大家像打橄榄球一样迅速、富有战斗激情。而Scrum就是这样的一个开发流程。

    Scrum开发流程中的三大角色
    – 产品负责人(Product Owner)

    主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

    – 流程管理员(Scrum Master)

    主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

    –开发团队(Scrum Team)

    主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

    scrum开发流程图

    这里写图片描述

    1、我们首先需要确定一个Product Backlog(产品需求列表),这个是由PO负责的(如图(一));

    2、有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;

    3、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);

    4、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图)(如图(二)和如图(三));

    5、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本。

    6、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品。

    7、最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中;

    如图(一):
    这里写图片描述

    如图(二):
    这里写图片描述

    如图(三):
    这里写图片描述

    如图(四):
    这里写图片描述

    敏捷开发管理工具:teambition
    teambition

    参考

    敏捷开发之Scrum扫盲篇
    百度百科
    敏捷开发 模型讲解

    展开全文
  • 以前对软件很陌生,在我转产品之前,虽然我混迹IT行业,做过实施和售前,也跟研发打过交道,但我一直都不知道一个软件是怎么开发出来的。...所以本文面向的对象是,适合和我当初一样对软件开发一无所知...

    以前对软件很陌生,在我转产品之前,虽然我混迹IT行业,做过实施和售前,也跟研发打过交道,但我一直都不知道一个软件是怎么开发出来的。直面客户,扛着压力,在对程序一无所知的情况下,很容易产生一些想法:为什么产品的结果是这样?为什么产品开发的速度不能再快一点?为什么程序员经常加班?他们都在忙些什么?测试是不是就是每天忙着点点程序看会不会报错?

    所以本文面向的对象是,适合和我当初一样对软件开发一无所知的IT从业者(或者有兴趣者),另外也欢迎我的程序员小伙伴和测试小伙伴,因为你们也懂这个过程,所以我们可以作更多探讨,这个过程中我们可能会发现大家对同一件事的理解并不一致,也许经过碰撞,我们能共创智慧的果实。

    进入IT行业这么久,你真的了解整个软件开发的流程?看完就懂了!

    一、开发流程图

    为使流程更清晰,本图省略了各环节的评审,如有更好的表现形式,欢迎提出建议。

    进入IT行业这么久,你真的了解整个软件开发的流程?看完就懂了!

    开发流程图

    二、过程产物及要求

    本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。

    进入IT行业这么久,你真的了解整个软件开发的流程?看完就懂了!

    开发过程产物

    三、过程说明

    (一)项目启动

    1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。

    2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。

    3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。

    4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。

    5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。

    (二)需求阶段

    1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。

    2、产品经理面向整个团队,进行需求的讲解。

    3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。

    4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。

    (三)设计阶段

    1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。

    2、研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。

    3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。

    (四)开发阶段

    1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。

    2、编码过程一般还需进行服务端和移动端的联调等。

    3、完成编码后需要进行功能评审。

    (五)测试阶段

    1、测试工程师按阶段设计《测试实例》,未通过的流程测试提交至Jira,分配给相应的开发人员调整。

    2、研发工程师根据测试结果修改代码,完成后提交测试,测试通过后完成。

    3、测试工程师编写《测试结果报告》,包括功能测试结果、压力测试结果等。

    4、测试工程师编写系统各端口的《操作手册》、维护手册等。

    (六)系统上线

    与客户或者上级达成一致后,系统进行试运行,稳定后上线。

    最后,以上内容仅限于我所在公司,不代表绝对专业意见,不知道其他行业的IT小伙伴和我们是否一样呢,欢迎大家一起交流。

    原文链接:

    https://blog.csdn.net/pingdouble/article/details/78497262

    展开全文
  • 软件开发文档模板

    万次阅读 多人点赞 2018-08-13 15:55:49
    2.2 软件开发平台要求 2.3 软件项目的开发实施过程管理要求 2.3.1 软件项目实施过程总体要求 2.3.2 软件项目实施变更要求 2.3.3 软件项目实施里程碑控制 3. 软件开发 3.1 软件的需求分析 3.1.1 需求...

     

    目录

    1. 范围

    2. 总体要求

    2.1 总体功能要求

    2.2 软件开发平台要求

    2.3 软件项目的开发实施过程管理要求

    2.3.1 软件项目实施过程总体要求

    2.3.2 软件项目实施变更要求

    2.3.3 软件项目实施里程碑控制

    3. 软件开发

    3.1 软件的需求分析

    3.1.1 需求分析

    3.1.2 需求分析报告的编制者

    3.1.3 需求报告评审

    3.1.4 需求报告格式

    3.2 软件的概要设计

    3.2.1 概要设计

    3.2.2 编写概要设计的要求

    3.2.3 概要设计报告的编写者

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别

    3.2.5 概要设计的评审

    3.2.6 概要设计格式

    3.3 软件的详细设计

    3.3.1 详细设计

    3.3.2 特例

    3.3.3 详细设计的要求

    3.3.4 数据库设计

    3.3.5 详细设计的评审

    3.3.6 详细设计格式

    3.4 软件的编码

    3.4.1 软件编码

    3.4.2 软件编码的要求

    3.4.3 编码的评审

    3.4.4 编程规范及要求

    3.5 软件的测试

    3.5.1 软件测试

    3.5.2 测试计划

    3.6 软件的交付准备

    3.6.1 交付清单

    3.7 软件的鉴定验收

    3.7.1 软件的鉴定验收

    3.7.2 验收人员

    3.7.3 验收具体内容

    3.7.4 软件验收测试大纲

    3.8 培训

    3.8.1 系统应用培训

    3.8.2 系统管理的培训(可选)

    附录A  软件需求分析报告文档模板

    附录B  软件概要设计报告文档模板

    附录C  软件详细设计报告文档模板

    附录D  软件数据库设计报告文档模板

    附录E  软件测试(验收)大纲5

     

     

     

    1. 范围

    本指南用于指导软件开发者为南京市交通局开发软件项目的过程,通过规范软件项目承担单位的开发过程达到提高软件质量,降低维护成本的目的。开发者应根据本指南进行软件开发和编制软件开发文档。本指南是对软件项目承担单位的基本要求。在本指南的附录AE中提供了文档的编写模板供开发者参考,在进行具体软件开发时,开发者可根据实际情况采编写,但必须提供双方约定的文档,文档中约定的内容必须描述清楚。

    2. 总体要求

    2.1 总体功能要求

    网络应用环境以Internet/Intranet技术为核心。

    开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。

    软件系统的数据库应依照《南京市交通局信息化数据库建设规范》进行设计和建设。

    本指南中没有规定开发者采用何种具体的软件工程开发方法,开发者可根据项目具体特点、自身擅长来选择采用面向过程的方法、面向对象的方法或面向数据的方法,但建议开发    商使用面向对象软件工程的方法,如:采用目前被广泛使用的RUP(Rational Unified Process)方法来进行分析、设计和开发。

    2.2 软件开发平台要求

    开发者开发的软件必须能够在南京市交通局规定的软件平台上正常运行。目前软件平台为:

    数据库管理系统:

    Oracle 9i以上版本

    中间件(应用服务器)系统:

    IBM WebSphere

    OA系统:

    Lotus Domino/Notes

    网络架构:

    完全支持TCP/IP协议

    开发工具或技术体系:

    为保证软件的上下兼容性,开发者应选择比较通用的开发工具的较新版本进行开发,如Microsoft Visual Studio.NetBorland DelphiC++ Builder, J2EE(Java2 P1atform Enterprise Edition)等。   

    2.3 软件项目的开发实施过程管理要求

    2.3.1 软件项目实施过程总体要求

                   (一)开发者提交软件开发工作大纲,交通局组织专家组对工作大纲进行评审,并提出整改意见。

                   (二)通过评审后,开发者根据整改意见完善工作大纲,经过交通局认可后组织项目组进行软件开发。软件开发工作按照需求分析、概要设计、详细设计、编码、测试等几个阶段进行,在开发过程中,开发者需分阶段提交相关文档。

                   (三)在软件开发工作完成后,开发者应向交通局提交完整的软件文档,交通局组织验收组对软件进行验收审查。

    2.3.2 软件项目实施变更要求

    在开发过程中,需求或设计不可避免地需要发生变更,相关变更必须经过交通局书面同  意方可进行。在需求或设计发生变更时,需要对原有文档进行修改,并提供完整的变更记录,  以使变更处于可控制的状态。变更单如下表所示:

     2-1 变更单

    需求变更申请

    申请变更的需求文档

            输入名称,版本,日期等信息

    变更的内客及其理由

                                       

    评估需求变更将对

    项目造成的影响

                                       

                                       

    申请人签字

                                        

    变更申请的审批意见

     

    项目经理签字

      审批意见:                       

     

                               签字   日期               

    客户签字

    (合同项目)

      审批意见:                      

     

                               签字   日期               

    更改需求文档

    变更后的

    需求文档

      输入名称,版本,完成日期等信息    

                                       

    更改人签字

                                       

    重新评审需求文档

     

    需求评审小组签字

     

      评审意见:                       

                                       

                               签字   日期               

    变更结束

    项目经理签字

                               签字   日期 

    2.3.3 软件项目实施里程碑控制

    交通局将分四个阶段进行把关,召开专家审查会。

                   (一) 需求分析(结合原型进行审查)确认;

                   (二) 概要设计+数据库设计;

                   (三) 预验收(试运行后);

                   (四) 正式验收(推广使用后)。

    3. 软件开发

    合同签订以后,项目承担单位即可组织项目组进行软件开发工作。软件开发必须严格按照软件工程的要求进行。开发过程包括开发者的活动和任务。此过程由软件需求分析、概要设计、详细设计、编码、测试、验收、鉴定等活动组成。

    3.1 软件的需求分析

    3.1.1 需求分析

    首先,开发者和交通局应共同对交通局的应用需求作充分的调研,提交完整的需求分析  报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属 性、外部接口。应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的  结果,而不是获得这些结果的手段。

    软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。

    编写需求分析报告的要求

    a.无歧义性

    对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。

    b.完整性

    需求分析报告应该包括全部有意义的需求,无论是关系到功能的、性能的、设计约束的、还是关系到外部接口方面的需求;对所有可能出现的输入数据的响应予以定义,要对合法和非合法的输入值的响应做出规定;填写全部插图、表、图示标记等;定义全部术语和度量单位。

    c.可验证性

    需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来检查软件产品是否满足需求。

    d.一致性

    在需求分析报告中的各个需求的描述不能互相矛盾。

    e.可修改性

    需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需求不能在需求分析报告中出现多次。

    f.可追踪性

    每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证每一个需求。

    g.运行和维护阶段的可使用性

    需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来源和目的。

    3.1.2 需求分析报告的编制者

    需求分析报告应由交通局和开发者双方共同完成。其中:交通局负责根据实际需要提出希望软件实现的功能;软件开发者根据交通局提出的性能需求,结合软件开发编写需求分析。

    3.1.3 需求报告评审

    在软件需求分析工作完成后,软件开发者应向交通局提交《软件需求分析报告》。交通局组织有关人员对需求进行评审,以决定软件需求是否完善和恰当。评审完成后,就可以进入软件的设计阶段。

    3.1.4 需求报告格式

    《软件需求分析报告》需按一定的格式进行编写,具体的《软件需求分析报告》文档编写模板请见附录A

    3.2 软件的概要设计

    3.2.1 概要设计

    在交通局和开发者双方认可的《需求分析报告》基础上,开发者进行下——步的工作。    首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计    进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、    运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

    3.2.2 编写概要设计的要求

    a.一致性

    概要设计的要求应该与需求分析报告所描述的需求一致。同时,概要设计的各项要求之间也应该一致。

    b.合理性

    概要设计所提出的设计方法和标准应该是合理的、恰当的。

    c.可追踪性

    对概要设计所提出的各项要求应该可以得到它的清晰的源流,即在需求分析报告客户有明确的需求描述。

    d.可行性

    根据概要设计进行详细设计、操作和维护应该是可行的。

    3.2.3 概要设计报告的编写者

    概要设计报告由开发者根据需求分析报告的要求进行编写。

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别

     需求分析不涉及具体的技术实现,而概要设计注重于从宏观上和框架上来描述采用何种技术手段、方法来实现这些需求。详细设计相对概要设计更注重于微观上和框架内的设计,    是编码的依据。概要设计是指导详细设计的依据。

    3.2.5 概要设计的评审

    在软件概要设计工作完成后,软件开发者应向交通提交《软件系统概要设计报告》。在交通局对《概要设计报告》评审通过后,即可进入详细设计阶段。

    3.2.6 概要设计格式

    《软件系统概要设计报告》需按一定的格式进行编写,具体的《软件系统概要设计报    告》文档编写模板请见附录B

    3.3 软件的详细设计

    3.3.1 详细设计

    在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实    现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证    软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

    3.3.2 特例

    如果软件系统比较简单,层次较少,可以不必进行专门的详细设计,而和概要设计结合起来。

    3.3.3 详细设计的要求

    a.一致性

    详细设计的要求应该与需求分析报告所描述的需求、与概要设计一致。同时,详细设计的各项要求之间也应该是一致的。

    b.合理性

    详细设计所提出的设计方法和标准应该是合理的、恰当的。

    c.可追踪性

    对详细设计所提出的各项要求应该可以得到它的清晰的源流,即可在需求分析报告、概要设计报告中有明确的需求描述。

    d.可行性

    根据详细设计进行编码、测试、操作和维护应该是可行的。

    3.3.4 数据库设计

    如果软件产品需要使用到数据库,软件的详细设计应包括对数据库的设计。数据库设计应在软件的需求分析、概要设计完成之后、详细设计的其它工作之前进行。在进行数据库设计时,应当按照交通局制定的《南京市交通局信息化数据库建设规范》要求进行。

    3.3.5 详细设计的评审

    在软件详细设计完成后,软件开发者应向交通局提交《软件系统数据库设计报告》和《软件系统详细设计报告》。在交通局对《软件系统数据库设计报告》、《软件系统详细设计报告》评审通过后,即可进入软件编码阶段。

    3.3.6 详细设计格式

    《软件系统详细设计报告》、《软件系统数据库设计报告》需按一定的格式进行编写,    具体的《软件系统详细设计报告》文档编写模板和《软件系统数据库设计报告》文档编写模    板请见附录C、附录D

    3.4 软件的编码

    3.4.1 软件编码

    在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。

    3.4.2 软件编码的要求

    a.模块化编码

    b.代码可读性

    c.可维护性

    d.模块接口标准化

    e.界面风格统一

    e.注释的应用

    3.4.3 编码的评审

    为了尽早发现软件中的障碍,提高软件产品的质量,开发者在编码的过程中应该强调代码评审工作。将代码评审报告作为文档的一部分,提交给交通局。

    3.4.4 编程规范及要求

    为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。

    主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。

    其中数据库部分应遵守《南京市交通局信息化数据库建设规范》的要求。

    在软件编码的同时应进行单元测试。

    3.5 软件的测试

    3.5.1 软件测试

    为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表    现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时。测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。

    开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。

    3.5.2 测试计划

    在软件编码开始之前,开发者应向交通局提交《测试计划》,在软件交付时,开发者应向交通局提交《软件测试报告》,以确保开发者的软件得到了充分的测试。开发的软件必须经过充分的测试证明其符合设计要求、运行稳定、安全可用方可交付交通局。

    3.6 软件的交付准备

    3.6.1 交付清单

    在软件测试证明软件达到要求后,软件开发者应向交通局提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。

    《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。

    《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。

    3.7 软件的鉴定验收

    3.7.1 软件的鉴定验收

    在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。在开发者如期交付软件后,由交通局负责确定具体的鉴定验收日期。

    3.7.2 验收人员

    由交通局聘请具有一定的分析、设计、编程和软件测试经验的验收组长和其他专业人员组成。验收组设组长一名(可设有副组长),负责整个验收的计划、组织工作。

    3.7.3 验收具体内容

    验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

    合法性检查检查软件开发工具是否合法、使用的函数库、控件、组件是否有合法的发布许可。

    文档检查检查开发者提交的文档必须齐全,质量是否过关。需要开发者提供的文档包括:

    项目实施计划;

    详细技术方案;

    软件需求规格说明书(STP)(含数据字典)

    概要设计说明书(PDD)

    详细设计说明书(DDD)(含数据库设计说明书)

    软件测试计划(STP)(含测试用例)

    软件测试报告(STR)

    用户手册(SUM)(含操作、使用、维护、应急处理手册)

    源程序(SCL)(不可修改的电子文档)

    项目实施计划(PIP)

    项目开发总结(PDS)

    软件质量保证计划(SQAP)

    此外,验收组可以根据需要对其它文档(如软件配置计划、项目进展报表、阶段评审报    表等)进行检查。

    文档的质量根据完备性、正确性、简明性、可追踪性、自说明性、规范件等方面进行踪合评定。

    验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。

    3.7.4 软件验收测试大纲

    在软件进行鉴定验收前,开发者需按照一定的格式编写《软件验收测试大纲》,具体的格式请见附录E

     

    3.8 培训

    3.8.1 系统应用培训

    主要培训内容包括:系统操作使用、业务管理流程。

    培训对象:应用操作人员。

    3.8.2 系统管理的培训(可选)

    主要培训内容包括:系统安装、调试、维护;系统管理。

    培训对象:系统管理人员。

    开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录 软件需求分析报告文档模板

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 产品范围

    1.6 参考文献

    2. 综合描述

    2.1 产品的状况

    2.2 产品的功能

    2.3 用户类和特性

    2.4 运行环境

    2.5 设计和实现上的限制

    2.6 假设和约束(依赖)

    3. 外部接口需求

    3.1 户界面

    3.2 硬件接口

    3.3 软件接口

    3.4 通讯接口

    4. 系统功能需求

    4.1 说明和优先级

    4.2 激励/响应序列

    4.3 输入/输出数据

    5. 其它非功能需求

    5.1 性能需求

    5.2 安全措施需求

    5.3 安全性需求

    5.4 软件质量属性

    5.5 业务规则

    5.6 用户文档

    6. 词汇表

    7. 数据定义

    8. 分析模型

    9. 待定问题列表

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件产品需求分析报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格,包括修正和()发行版本号,从而对该软件产品进行准确的定义。

    如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:

    ●  正文风格;

    ●  提示方式;

    ●  重要符号;

    也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。

    1.4 预期读者和阅读建议

    列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:

    ●  用户;

    ●  开发人员;

    ●  项目经理;

    ●  营销人员;

    ●  测试人员;

    ●  文档编写入员。

    并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 产品范围

    说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。

    描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。

    1.6 参考文献

    列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标淮;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它己发表文件;

    ●  本软件产品需求分析报告中所引用的文件、资料;

    ●  相关软件产品需求分析报告;

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 综合描述

    这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。

    2.1 产品的状况

    描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:

    ●  是否是产品系列中的下一成员;

    ●  是否是成熟产品所改进的下一代产品;

    ●  是否是现有应用软件的替代品(升级产品)

    ●  是否是一个新型的、自主型的产品。

    如果该软件产品需求分析报告定义的软件系统是:

    ●  大系统的一个组成部分;

    ●  与其它系统和其它机构之间存在基本的相互关系。

    那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。

    2.2 产品的功能

    因为将在需求分析报告的第4部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利读者理解本软件产品。

    为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。

    参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。

    2.3 用户类和特性

    确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。

    用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。

    2.4 运行环境

    描述了本软件的运行环境,一般包括:

    ●  硬件平台;

    ●  操作系统和版本;

    ●  支撑环境(例如:数据库等)和版本;

    ●  其它与该软件有关的软件组件;

    ●  与该软件共存的应用程序。

    2.5 设计和实现上的限制

    确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:

    ●  必须使用的特定技术、工具、编程语言和数据库;

    ●  避免使用的特定技术、工具、编程语言和数据库;

    ●  要求遵循的开发规范和标准

    例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准;

    ●  企业策略的限制;

    ●  政府法规的限制;

    ●  工业标准的限制;

    ●  硬件的限制

    例如,定时需求或存储器限制;

    ●  数据转换格式标淮的限制。

    2.6 假设和约束(依赖)

    列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:

    ●  计划使用的商业组件,或者其它软件中的某个部件;

    ●  假定产品中某个用户界面将符合一个特殊的设计约定;

    ●  有关本软件用户的若干假定(例如:假定用户会熟练使用SQL语言。)

    ●  有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。)

    ●  有关本软件运行环境的一些问题;

    此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:

    ●  工期约束;

    ●  经费约束;

    ●  人员约束;

    ●  设备约束;

    ●  地理位置约束;

    ●  其它有关项目约束;

    3. 外部接口需求

    通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。

    注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。

    3.1 用户界面

    陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:

    ●  将要采用的图形用户界面(GUl)标准或者产品系列的风格;

    ●  有关屏幕布局或者解决方案的限制;

    ●  将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:

    n  选单;

    n  标准按钮;

    n  导航链接;

    n  各种功能组件;

    n  消息栏;

    ●  快捷键;

    ●  各种显示格式的规定,可能包括:

    n  不同情况下文字的对齐方式;

    n  不同情况下数字的表现格式与对齐方式

    n  日期的表现方法与格式;

    n  计时方法与时间格式;

    n  等等。

    ●  错误信息显示标准;

    对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。

    如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。

    3.2 硬件接口

    描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:

    ●  支持的硬件类型;

    ●  软、硬件之间交流的数据;

    ●  控制信息的性质;

    ●  使用的通讯协议;

    3.3 软件接口

    描述该软件产品与其它外部组件的连接,这些外部组件必须明确它们的名称和版本号以资识别,可能的外部组件包括:

    ●  操作系统;

    ●  数据库;

    ●  工具;

    ●  函数库;

    ●  集成的商业组件

    说明:这里所说的“集成的商业组件”,是指与系统集成的商业组件,而不是与软件产品集成的商业组件。例如:中间件、消息服务,等等。

    描述并且明确软件产品与软件组件之间交换数据或者消息的目的。描述所需要的服务,以及与内部组件通讯的性质。确定软件产品将与组件之间共享的数据。如果必须使用一种特殊的方法来实现数据共享机制,例如:在多用户系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。

    3.4 通讯接口

    描述与软件产品所使用的通讯功能相关的需求,包括:

    ●  电子邮件;

    ●  WEB浏览器;

    ●  网络通讯标准或者协议;

    ●  数据交互用电子表格;

    必须定义相关的:

    ●  消息格式;

    ●  通讯安全或加密问题;

    ●  数据传输速率;

    ●  同步和异步通讯机制;

    4. 系统功能需求

    需要进行详细的需求记录,详细列出与该系统功能相关的详细功能需求,并且,唯一地标识每一项需求。这是必须提交给用户的软件功能,使得用户可以使用所提供的功能执行服务或者使用所指定的使用实例执行任务。描述软件产品如何响应己知的出错条件、非法输入、非法动作。

    如果每一项功能需求都能用一项,也只需要用一项测试用例就能进行验证,那么就可以认为功能需求已经适当地进行描述了。如果某项功能需求找不到合适的测试用例,或者必须使用多项测试用例才能验证,那么该项功能需求的描述必然存在某些问题。

    功能需求是根据系统功能,即软件产品所提供的主要服务来组织的。可以通过使用实例、运行模式、用户类、对象类或者功能等级来组织这部分内容,也可以便用这些元素的组合。总而言之,必须选择一种是读者容易理解预期产品的组织方案。

    用简短的语句说明功能的名称,例如:“4.1系统参数管理”。按照服务组织的顺序,逐条阐述系统功能。无论说明的是何种功能,都应该针对该系统功能重复叙述4.1~ 4.3这三个部分。

    可以通过各种方式来组织这一部分内容,例如采用:使用实例、运行模式、用户类、对象类、功能等级等,也可以采用它们的组合。其最终目的是,让读者容易理解即将开发的软件产品。一般来说,每个使用实例都对应一个系统功能,因而按照使用实例来组织内容比较容易让用户理解。

    对应一些被共享的独立使用实例,可以定义一些公用系统功能。

    必须特别注意的是,在2.2节“产品的功能”中描述的全部需求,以及它们的规格说明;必须在某个系统功能描述中有所反映,而且不应重复。

    4.1 说明和优先级

    对该系统功能进行简短的说明,并且指出该系统功能的优先级是:高、中、还是低。需要的话,还可以包括对特定优先级部分的评价,例如:利益、损失、费用和风险,其相对优先等级可以从1()9()

    4.2 激励/响应序列

    列出输入激励(用户动作、来自外部设备的信号或者其它触发)并且定义针对这——功能行为的系统响应序列,这些序列将与使用实例中相关的对话元素相对应。

    描述激励/响应序列时,不仅需要描述基本过程,而且应该描述可选(扩充)过程,包括例外(引起任务不能顺序完成的情况称为例外)。疏忽了可选过程,有可能影响软件产品的功能;如果遗漏例外过程,则有可能会引发系统崩溃。

    如果采用流程图来描述激励/响应序列,比较容易让用户理解。

    4.3 输入/输出数据

    列出输入数据(用户输入、来自外部接口的输入或者其它输入)并且定义针对这些输入数据的处理(计算)方法,以及相应地输出数据,描述对应区别:输入数据和输出数据。

    当有大量数据需要描述时,也可以分类描述数据,并且注明各项数据的输入、输出属性。

    对于每一项数据,均需要描述:

    ●  数据名称;

    ●  实际含义;

    ●  数据类型;

    ●  数据格式;

    ●  数据约束;

    对于复杂的处理方法,仅仅给出算法原理是不够的,必须描述详细的计算过程,并且列出每一步具体使用的实际算式;如果计算过程中涉及查表、判断、迭代等处理方法,应该给出处理依据和相关数据。如果计算方法很简单,也可以将其从略,不加描述。

    5. 其它非功能需求

    在这里列举出所有非功能需求,主要包括可靠性、安全性、可维护性、可扩展性、可测试性等。

    5.1 性能需求

    阐述不同应用领域对软件产品性能的需求,并且说明提出需求的原理或者依据,以帮助开发人员做出合理的设计选择。尽可能详细地描述性能需求,如果需要,可以针对每个功能需求或者特征分别陈述其性能需求。在这里确定:

    ●  相互合作的用户数量;

    ●  系统支持的并发操作数量;

    ●  响应时间;

    ●  与实时系统的时间关系:

    ●  容量需求

    n  存储器;

    n  磁盘空间;

    n  数据库中表的最大行数。

    5.2 安全措施需求

    详尽陈述与软件产品使用过程中可能发生的损失、破坏、危害相关的需求。定义必须采取的安全保护或动作,以及必须预防的潜在危险动作。明确软件产品必须遵从的安全标准、策略、或规则。

    5.3 安全性需求

    详尽陈述与系统安全性、完整性问题相关的需求,或者与个人隐私问题相关的需求。这些问题将会影响到软件产品的使用,和软件产品所创建或者使用的数据的保护。定义用户身份认证,或备授权需求。明确软件产品必须满足的安全性或者保密性策略。也可以通过称为完整性的质量属性来阐述这些需求。一个典型的软件系统安全需求范例如下:“每个用户在第一次登录后,必须更改他的系统预置登录密码,系统预置的登录密码不能重用。”

    5.4 软件质量属性

    详尽陈述对客户和开发人员至关重要的在软件产品其它方面表现出来的质量功能。这些功能必须是确定的、定量的、在需要时是可以验证的。至少也应该指明不同属性的相对侧重点,例如:易用性优于易学性,或者可移植性优于有效性。

    5.5 业务规则

    列举出有关软件产品的所有操作规则,例如:那些人在特定环境下可以进行何种操作。这些本身不是功能需求,但是他们可以暗示某些功能需求执行这些规则。一个业务规则的范例如下:“进行达到或者超过1000000元人民币的储蓄业务时,必须通过附加的管理员认证。”

    列举业务规则时,可以根据规则的数量,选取合适的编目方式。

    5.6 用户文档

    列举出将与软件产品一同交付的用户文档,并且明确所有己知用户文档的交付格式或标准,例如:

    ●  安装指南

    纸质文档,16开本;

    ●  用户手册

    纸质文档,16开本;

    ●  在线帮助

    ●  电子文档,与软件产品一同分发、配置;

    ●  使用教程电子文档,与软件产品一同分发、配置。

    6. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士阅读软件产品需求分析报告,要求使用非软件专业或者非计算机专业的术语描述软件需求。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表并且加以准确定义。

    7. 数据定义

    数据定义是一个定义了应用程序中使用的所有数据元素和结构的共享文档,其中对每个数据元素和结构都准确描述:含义、类型、数据大小、格式、计量单位、精度以及取值范围。数据定义的维护独立于软件需求规格说明,并且在软件产品开发和维护的任何阶段,均向风险承担者开放。

    如果为软件开发项目创建一个独立的数据定义,而不是为每一项特性描述有关的数据项,有利于避免冗余和不一致性。但是却不利于多人协同编写需求分析报告,容易遗漏数据,也不方便阅读。因此还是建议为每个特性描述有关的数据项,汇总数据项创建数据定义,再根据数据定义复核全部数据,使得它们的名称和含义完全一致。必须注意的是,为了避免二义性,在汇总数据项时应该根据数据项所代表的实际意义汇总,而不是根据数据项的名称汇总。

    在数据定义中,每个数据项除了有一个中文名称外,还应该为它取一个简短的英文名称,该英文名称应该符合命名规范,因为在软件开发时将沿用该英文名称。可以使用等号表示数据项,名称写在左边,定义写在右边。常见数据项的描述方式如下:

    ●  原数据元素

    一个原数据元素是不可分解的,可以将一个数量值赋给它。定义原数据元素必须确定其

    含义、类型、数据大小、格式、计量单位、精度以及取值范围。采用以星号为界的一行

    注释文本,描述原数据元素的定义。

    ●  选择项

    选择项是一种只可以取有限离散值的特殊原数据元素,描述时一一枚举这些值,并用方

    括号括起来写在原数据元素的定义前。在两项离散值之间,使用管道符分隔。

    ●  组合项

    组合项是一个数据结构或者记录,其中包含了多个数据项。这些数据项可以是原数据元

    素,也可以是组合数据项,各数据项之间用加号连接。其中每个数据项都必须是数据定

    义中定义过的,结构中也可以包括其它结构,但是绝对不允许递归。如果数据结构中有

    可选项,使用圆括号把该项括起来。

    ●  重复项

    重复项是组合项的一种特例,其中有一项将有多个实例出现在数据结构中,使用花括号

    把该项括起来。如果知道该项可能允许的范围,就按“最小值:最大值”的形式写在花

    括号前。

    8. 分析模型

    这是一个可选部分,包括或涉及到相关的分析模型,例如:

    ●  数据流程图;

    ●  类图;

    ●  状态转换图;

    ●  实体-关系图。

    9. 待定问题列表

    编辑一张在软件产品需求分析报告中待确定问题时的列表,把每一个表项都编上号,以便跟踪调查。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录B 软件概要设计报告文档模板

     

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 预期读者和阅读建议

    1.4 参考资料

    2. 设计概述

    2.1 限制和约束

    2.2 设计原则和设计要求

    3. 系统逻辑设计

    3.1 系统组织设计

    3.2 系统结构设计

    3.2.1 系统特性表

    3.2.2 系统特性结构图

    3.3 系统接口设计

    3.3.1 系统接口表

    3.3.2 系统接口传输协议说明

    3.4 系统完整性设计

    4. 系统出错处理设计

    4.1 系统出错处理表

    4.2 维护处理过程表

    5. 技术设计

    5.1 系统开发技术说明表

    5.2 开发技术应用说明

    6. 数据库设计

    7. 词汇表

    8. 进度计划

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件系统概要设计报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件系统概要设计报告是基于哪份软件产品需求规格说明书编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统概要设计报告详尽说明了该软件产品的软件结构,包括数据库结构和出错处理,从而对该软件产品的结构的描述。

    如果这份软件系统概要设计报告只与整个系统的某一部分有关系,那么只定义软件系统概要设计报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 预期读者和阅读建议

    列举本软件系统概要设计报告所针对的各种不同的预期读者,例如,可能的读者包括:

    ●  用户;

    ●  开发人员;

    ●  项目经理;

    ●  营销人员;

    ●  测试人员;

    ●  文档编写人员;

    ●  等等。

    描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.4 参考资料

    列举编写软件产品概要设计报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标准;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它已发表文件;

    ●  本软件系统概要设计报告中所引用的文件、资料:

    ●  相关软件系统概要设计报告:

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 设计概述

    本节描述现有开发条件和需要实现的目标,说明进行概要设计时应该遵循的设计原则和必须采用的设计方法。

    2.1 限制和约束

    简要描述起到限制和约束作用的各种可能存在的条件,例如:

    ●  技术条件;

    ●  资金状况;

    ●  开发环境(包括:工具和平台)

    ●  时间限制;

    ●  等等。

    并且说明在上述条件下,应该实现的系统目标,

    2.2 设计原则和设计要求

    描述对本软件系统进行概要设计的原则,通常可以考虑以下几方面的内容:

    ●  命名规则;

    ●  模块独立性原则:

    ●  边界设计原则;

    ●  数据库设计规则;

    ●  必须的安全措施;

    ●  安全性和保密原则;

    ●  系统灵活性要求;

    ●  系统易操作性要求;

    ●  系统可维护性要求;

    ●  等等。

    3. 系统逻辑设计

    本节内容主要根据软件产品需求规格说明书和软件产品数据字典建立系统的逻辑模型。此种模型暂时与系统的物理因素(例如:计算机、数据库管理系统)无关。它是系统需求与物理实现的中间结构,它的主要结果是建立:系统结构图、系统界面结构图、系统出错处理、以及系统开发技术说明。

    说明:如果进行系统设计时尚未编写软件数据字典:应首先参照附录B说明,编写软件数据字典。在完成软件数据字典后,再进行系统设计。

    3.1 系统组织设计

    系统组织设计通过系统组织表描述本系统由哪些子系统(模块)组成,这些子系统与业务职能之间的关系,以及各个子系统的安装地点。系统组织表的格式如下:

    子系统编号

    英文名称

    中文名称

    业务职能

    安装地点

    备注

     

     

     

     

     

     

    其中:

    ●  子系统编号

    给出本系统中指定子系统的顺序编号。如果本系统末划分为多个子系统,仅由一

    个运行模块组成;则本项内容仍需要描述,但是本表内容只有一行。

    说明:在一个系统中有可能安装若干个相同的子系统,在这种情况下,应该视为

    一个子系统,并且对多个安装地点分别进行描述。如果相同的子系统通过系统设

    置,实现的业务职能具有明显差异时,应该采用多行进行分别描述,并且在备注

    中说明其差异所在。

    ●  子系统英文名称

    给出本子系统的英文名称,该名称是在应用软件中实际使用的可执行文件名称,

    必须能够说明该子系统的特点。

    若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。

    ●  子系统中文名称

    给出本子系统的中文名称,该名称必须能够说明该子系统的特点。

    若本系统中只有一个子系统,则本项内容仍需要描述,但是本表内容只有一行。

    ●  业务职能

    描述该子系统完成的核心业务。

    ●  安装地点

    描述该子系统实际安装的部门、或者某个具体地点。

    ●  备注

    针对该子系统,需要说明的其它有关问题。

    3.2 系统结构设计

    本节将对系统特性作较为详细的描述,并给出系统特性结构图。

    3.2.1 系统特性表

    系统特性是系统中完成某项具体操作的基本单元,它由入口参数,出口参数以及处理过程三部分组成。

    系统特性可以具有操作界面,也可以没有操作界面;可以被其它操作界面、或者系统特性调用,也可以调用其它操作界面、非操作界面、或者系统特性;但是不允许递归调用(调用自己),包括间接递归调用。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统特性表进行描述。系统特性表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    特性编号

    系统特征

    英文名称

    系统特征

    中文名称

    操作功能

    调用对象

    被调用

    对象

    备注

     

     

     

     

     

     

     

    说明:

    其中

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  特性编号

    整个系统所有特性的统一编号。

    ●  系统特性英文名称

    系统特性的英文正式名称,将来用于软件开发中,必须符合命名规范。

    ●  系统特性中文名称

    系统特性的中文正式名称,来源于需求规格说明书中,系统特性一节中的有关描

    述。

    ●  操作功能

    是指该特性实际完成的操作说明。

    ●  调用对象

    是指调用该系统特性的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。

    ●  被调用对象

    是指被该系统特性调用的系统对象,这里的系统对象可以是系统特性、也可以是操作界面。

    说明:某些较低层的系统特性,可能不存在被调用对象。

    ●  备注

    描述与该系统特性有关的其它注意事项。

    ●  说明

    描述与该系统特性表有关的其它注意事项。

    3.2.2 系统特性结构图

    系统特性结构图给出系统特性在逻辑层面上相互之间的关系,其主要依据来源于需求规格说明书中,系统特性一节中的有关描述。

    如果系统划分为多个子系统,应分别给出系统与子系统、以及各个子系统与系统特性的结构图。

    绘制系统与子系统结构图时,一般不需要描绘出系统特性,如果确有必要,尽可能只画出第一层系统特性。绘制子系统与系统特性结构图时,通常也不需要描绘出第二层系统特性,如果确有必要可以画出,但是尽可能不要画出第三层系统特性。

    3.3 系统接口设计

    系统接口是一种非可视的系统界面,在多数情况下,它对用户是透明的。

    本节将对系统接口作较为详细的描述,并给出接口说明清单。

    3.3.1 系统接口表

    接口作为系统的一种输入/输出形式,分为网络接口、数据库接口、RS-232串行通讯接口、IEEE485串行总线接口、并行I/O接口等等多种类型。

    对于一些为可视界面服务的接口,例如:打印机接口、显示器接口等,因为这类接口对应用软件是透明的,所以不在本节描述范围内。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统接口表进行描述。系统接口表的格式如下:

    子系统编号

    子系统英文名称

    子系统中文名称

    接口

    编号

    接口

    名称

    接口

    类型

    接口

    性质

    接口

    速率

    接口

    协议

    备注

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  接口编号

    整个系统所有接口的统一编号。

    ●  接口名称

    系统接口的正式名称,必须符合通常习惯。

    ●  接口类型

    指出该接口所传输的数据在该模块中起到的作用。

    ●  接口性质

    指出该接口在通讯中起到的作用,这里的作用可以是:

    输入;

    输出;

    双向。

    ●  接口速率

    指出该接口的传输速率。如果该接口依赖于其它通讯方式,那么传输速率将不高于它所依赖的其它通讯方式的速率。

    ●  接口协议

    给出该接口实际使用的通讯协议。

    ●  相关对象

    给出直接使用本接口的系统对象,这里的系统对象,可以是操作界面,也可以是系统特性。

    ●  备注

    描述与该系统接口有关的其它注意事项。

    ●  说明

    描述与该系统接口表有关的其它注意事项。

    3.3.2 系统接口传输协议说明

    逐项详细描述系统接口表中所列出各个系统接口使用的传输协议,以及其它相关内容,例如:驱动程序、动态连接库、等等。

    3.4 系统完整性设计

    描述系统对象(数据元、数据类),所受到的逻辑约束关系。

    当系统由多个子系统(模块)组成时,每个子系统应分别使用一张系统完整性约束表进行描述。系统完整性约束表的格式如下:

    子系统编号

    子系统英文名称

    子系统中文名称

    约束编号

    完整性名称

    相对对象名

    约束表达式

    备注

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  约束编号

    整个系统所有约束的统一编号。

    ●  完整性名称

    系统完整性约束的正式名称,必须符合通常习惯。

    ●  相对对象名

    完整性约束中的相关对象(数据元和数据类)

    ●  约束表达式

    用一阶逻辑表达式表达的约束方程式。

    ●  备注

    描述与该系统完整性约束有关的其它注意事项。

    ●  说明

    描述与该系统完整性约束表有关的其它注意事项。

    4. 系统出错处理设计

    本节描述系统发生外界及内在错误时,所提供的错误信息及处理方法,它包括系统出错处理表及维护处理过程表。

    4.1 系统出错处理表

    本表给出有关出错处理的产生原因、提示信息、以及建议处理方法。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统出错处理表进行描述。系统出错处理表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    错误编号

    错误名称

    错误原因

    错误信息

    处理方式

    备注

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  错误编号

    整个系统所有错误的统一编号。

    ●  错误名称

    错误的正式名称,该名称应该是常用的,并且为人们所普遍接受的。

    ●  错误原因

    对该错误产生原因的解释与说明。

    ●  错误信息

    产生该错误时,向用户发出的提示信息。

    ●  处理方式

    对该错误处理的一种建议,此项允许缺省。

    ●  备注

    描述与该系统错误有关的其它注意事项。

    ●  说明

    描述与该系统错误表有关的其它注意事项。

    4.2 维护处理过程表

    系统出错时,将调用维护处理过程对错误进行处理,有关维护处理过程的各项内容由维护处理过程表进行描述。

    当系统有多个子系统(模块)组成时,每个子系统分别使用一张维护处理过程表进行描述。维护处理过程表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    错误编号

    处理过程

    处理过程

    处理功能

    入口参数

    出口参数

    备注

    英文名称

    中文名称

     

     

     

     

     

     

     

    说明:

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  错误编号

    含义同上。

    ●  处理过程英文名称

    系统维护处理过程的英文正式名称,将来用于软件开发中,必须符合命名规范。

    ●  处理过程中文名称

    系统维护处理过程的中文正式名称,是系统维护处理过程英文名称的中文说明。

    ●  处理功能

    描述本维护处理过程对错误的处理方式。

    由于一个维护处理过程有可能具有对多个错误进行处理的能力,因此该处理功能

    必须是针对本项错误编号的。

    ●  入口参数

    进行本项错误处理时,赋给维护处理过程的入口参数。

    ●  出口参数

    进行本项错误处理时,维护处理过程返回的出口参数。

    ●  备注

    描述与该系统错误有关的其它注意事项。

    ●  说明

    描述与该系统错误表有关的其它注意事项。

    5. 技术设计

    系统技术设计描述系统各个特性实际使用的开发技术,以及具体开发技术使用时应该注意的事项。

    5.1 系统开发技术说明表

    本表描述系统各个特性开发时实际使用的具体技术,只有一些不太常用的技术需要在这里描述。一些常用技术,例如:通过数据库接口调用存储过程,则不必冗述。

    当系统由多个子系统(模块)组成时,每个子系统分别使用一张系统开发技术说明表进行描述。系统开发技术说明表的格式如下:

    子系统编号:

    子系统英文名称:

    子系统中文名称:

    技术编号

    开发技术

    开发技术

    处理功能

    系统特性编号

    备注

    英文名称

    中文名称

     

     

     

     

     

     

     

    说明:

                 

    其中:

    ●  子系统编号

    含义同上。

    ●  子系统英文名称

    含义同上。

    ●  子系统中文名称

    含义同上。

    ●  技术编号

    这个系统所使用各种技术的统一编号。

    ●  开发技术英文名称

    该开发技术的英文正式名称,可以便用缩写。

    该名称应该是常用的,并且为人们所普遍接受的。

    ●  开发技术中文名称

    该开发技术的中文正式名称,是该开发技术英文名称的中文说明。

    该名称应该是常用的,并且为人们所普遍接受的。

    ●  处理功能

    描述本开发技术的处理目的。

    ●  系统特性编号

    含义同上。

    由于一项开发技术可能在多处使用,因此针对一项开发技术,有可能存在多个系

    统特性编号,在此必须一一列出。

    ●  备注

    描述与该系统开发技术相关的其它注意事项。

    ●  说明

    描述与该系统开发技术说明表有关的其它注意事项。

    5.2 开发技术应用说明

    逐项详细描述系统开发技术说明表中所列出各项系统开发技术使用的技术要点,以及其它相关内容,例如:所需的服务、使用的动态连接库、调用的组件、等等。

    6. 数据库设计

    如果该软件产品需要使用数据库,不论是使用数据库平台支撑的,还是采用由软件产品开发者自行定义的;都应该在完成软件产品需求分析报告后,开始进行软件产品详细设计之前,按照软件产品数据库设计说明文档模板完成数据库设计工作。

    7. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原向)。为了便于非软件专业或者非计算机专业人士阅读软件系统概要设计报告,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    8. 进度计划

    列出进度计划,包括各子系统、各子模块完成进度计划,人员配备计划等。

     

     

     

     

     

     

     

     

     

    附录C   软件详细设计报告文档模板

     

    1. 引言

    1.1 编写目的

    1.2 项目风险

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 参考资料

    2. 支撑环境

    2.1 数据库管理系统

    2.2 开发工具、中间件以及数据库接口

    2.3 硬件环境

    2.4 网络环境

    2.5 多种支撑环境开发要点

    3. 部件详细设计

    4. 词汇表

    5. 部件表格式

    6. 界面表格式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份软件系统详细设计报告的概览,是为了帮助阅读者了解这份文档如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告、哪份软件产品概要设计报告和哪份软件产品数据库设计说明书(如果该软件产品需要数据库支持)编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统详细设计报告详尽说明了该软件产品的编码结构,从而对该软件产品的物理组成进行准确的描述。

    如果这份软件系统详细设计报告只与整个系统的某一部分有关系,那么只定义软件系统详细设计报告中说明的那个部分或子系统。

    1.2 项目风险

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的标准(如果有标准的话),或者各种编写约定。编写约定应该包括:

    ●  部件编号方式;

    ●  界面编号方式;

    ●  命名规范:

    ●  等等。

    1.4 预期读者和阅读建议

    列举本软件系统详细设计报告所针对的各种不同的预期读者,例如,可能的读者包括:

    ●  开发人员;

    ●  项目经理;

    ●  测试人员;

    ●  文档编写人员;

    ●  等等。

    描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 参考资料

    列举编写软件系统详细设计报告时所用到的参考文献及资料,可能包括:

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标难;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它己发表文件;

    ●  本软件系统详细设计报告中所引用的文件、资料;

    ●  相关软件系统详细设计报告;

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 支撑环境

    2.1 数据库管理系统

    描述数据库管理系统、以及安装配置情况,需要描述的内容可能包括:

    ●  产品名称以及发行厂商

    这里的产品名称指的是数据库发行厂商发布产品时公布的正式商品名称,不应该

    使用别名、简称、研发代号等非正式名称,以免混淆;同样的道理,发行厂商的

    名称也应该使用正式名称。

    ●  版本号

    数据库管理系统的准确版本号,必须按产品的实际情况描述到最细节的版本号。

    ●  补丁包版本号

    描述实际上将要使用的数据库管理系统补丁包的版本号,必须注意,在某些情况

    下该版本号不一定是最新的版本号。

    ●  语言或代码集

    对于只支持一种语言或者一个代码集的数据库管理系统来说,该项描述不具意

    义。对于支持多种语言或者多个代码集的数据库管理系统来说,该项描述指的是

    实际使用的语言或者代码集。

    ●  安装位置

    描述数据库管理系统的实际安装位置,应该分别对管理系统安缺位置和数据存放

    位置进行描述,应该指明服务器名和安装卷号(盘号)。对于分布式数据库,必须

    分别描述每一个数据库管理系统。

    ●  配置参数

    描述数据库管理系统在实际安装时应该配置的各个参数,对于分布式数据库,必

    须分别描述每一个数据库管理系统的配置参数。

    ●  等等

    同时参照《南京市交通局信息化数据库建设规范》。

     

    2.2 开发工具、中间件以及数据库接口

    描述所选用的工具软件和中间件的名称、版本号,以及开发工具与数据库或者中间件接口的情况。如果使用了多种开发工具、辅助开发工具、第三方软件部件、多种中间件、多种接口、等答应该逐项分别描述,并且说明每一项的适用范围。需要描述的内容可能包括:

    ●  产品名称以及发行厂商

    2.1中产品名称以及发行厂商。

    ●  版本号

    2.1中版本号。

    ●  补丁包版本号

    2.1中补丁包版本号。

    ●  语言或代码集

    2.1中语言或代码集。

    ●  数据库接口名称

    描述数据库接口的名称,如果使用别名时,应同时描述使用的别名。

    ●  数据库接口方式

    描述与数据库接口的方式,并说明该接口方式的特点;如果需要,还应该说明使

    用时的注意事项。

    ●  数据库接口设置

    描述各种接口设置,包括:协议、端口号等等。

    同时参照《南京市交通局信息化数据库建设规范》。

    2.3 硬件环境

    描述所选用的硬件环境,各种机型,例如:服务器、工作站,应该分别描述。需要描述的内容可能包括:

    ●  机型;

    ●  主频;

    ●  内存容量;

    ●  磁盘容量;

    ●  特殊部件;

    ●  操作系统;

    ●  使用位置;

    ●  等等。

    2.4 网络环境

    描述可能影响应用软件访问数据库的各种网络环境,如果存在加密传输、VPN链路等情况,也必须描述。对于结构复杂的网络,还应该提供网络拓扑图和数据流向示意图。需要描述的内容可能包括:

    ●  网络结构;

    ●  网络操作系统;

    ●  网络带宽;

    ●  路由组织;

    ●  加密传输方式;

    ●  VPN链路连接方式;

    ●  等等。

    2.5 多种支撑环境开发要点

    当软件产品将来可能遇到的多种运行环境时,应该分别按照3.1节至3.4节的内容列表描述。如果软件产品各个子系统的运行环境不完全一样时,应该分子系统按照3.1节至3.4节的内容列表描述。

    遇到上述情况时,不仅需要详细描述各种软件开发、调试、测试的环境,为了确实保证软件产品将来能够在各种可能的运行环境中正常运行,还需要对软件产品进行严格的配置管理。

    3. 部件详细设计

    这里所提及的软件部件,系指能够完成特定功能、相对独立的一些代码集合,它们可以是插件、组件、控件、函数、过程、子程序、动态连接库、等等。具体呈何种形态,取决于实际采用的开发工具和将要实现的软件结构。

    按照合适的顺序,逐个描述软件部件的详细情况。描述的顺序可以是按层次横向进行描述,也可以是按模块纵向进行描述,总之描述的方式必须有利于读者理解软件结构。

    每个部件采用一张软件部件表进行描述,软件部件表的格式见附表一,其中;

    ●  部件编号

    软件部件的统一顺序编号;对于实行配置管理的软件开发项目来说,该编号必须

    与该部件在配置管理中的编号相同。

    ●  部件名称

    软件部件的正式英文名称,该名称是程序中使用的实际名称,必须符合国家相关软件命名标准。

    ●  所属子系统

    指该部件所属的子系统;

    对于不分为多个子系统的软件来说,不必填写该栏。

    ●  部件调用者

    指调用该部件的部件(或界面参数)的编号和名称。

    ●  部件被调用者

    指被该部件所调用的部件的编号和名称。

    ●  部件入口参数

    指该部件入口数据类名称或者数据名称,以及对这些数据的描述;

    如果部件没有入口参数,该栏为空。

    ●  部件出口参数

    指该部件出口数据类名称或者数据名称,以及对这些数据的描述;

    如果部件没有出口参数,该栏为空。

    ●  算法

    指该部件的算法形式表示,如果很简单、或者不存在,也可以为空。

    ●  流程描述

    指该部件的处理流程的详细表示或描述。

    ●  部件表示形式

    指该部件完成开发后的最终表示形式,具体形式取决于开发工具和软件结构,表

    示形式可能是:

    插件、组件、控件,

    函数、过程、子程序,

    存储过程,

    动态连接库,

    等等。

    ●  运行环境

    描述该部件所适合的运行环境,即说明该部件是针对何种运行环境所开发的;

    可以直接描述运行环境,也可以描述运行环境的编号;

    对于实行配置管理的软件开发项目来说,该描述必须与该部件在配置管理中的描

    相同。

    ●  性能要求

    指开发该部件时必须满足的专门要求,这些要求可以是:

    精度

    灵活性

    响应时间

    可重用性

    等等。

    提出的要求一般不宜超过3项,以排列的先后顺序表示优先级。

     

    4. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士也能够在一定的范围内,读懂软件系统详细设计报告,要求尽可能使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    5. 部件表格式

    部件编号

     

    部件名称

     

    所属子系统

     

    部件调用者

     

    部件被调用者

     

    部件入口参数

     

    部件入口参数

     

    算法:

     

     

     

     

     

    流程描述:

     

     

     

     

     

     

    表示性能

     

    运行环境

     

    性能要求

     

     

     

    说明:如果软件不见使用一张表表述不完时,可以采用续表描述,但是必须注明是那张表的续表。

    6. 界面表格式

    界面编号

     

    部件名称

     

    界面性质

     

    界面介质

     

    表示形式:

     

     

     

     

     

     

     

     

     

    界面参数

       参数名

    内容

    说明

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    说明:如果软件不见使用一张表表述不完时,可以采用续表描述,但是必须注明是那张表的续表。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录  软件数据库设计报告文档模板

                                         

    1. 引言

    1.1 编写目的

    1.2 项目来源

    1.3 文档约定

    1.4 预期读者和阅读建议

    1.5 参考资料

    2. 数据库命名规则

    3. 数据库设计说明

    3.1 数据库逻辑设计

    3.2 数据库物理设计

    3.3 数据库分布

    3.4 基表设计

    3.5 视图设计

    3.6 索引设计

    3.7 完整性约束

    3.8 授权设计

    3.9 触发器设计

    3.10 存储过程设计

    3.11 数据复制设计

    4. 词汇表

    5. 历史数据处理

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    引言是对这份数据库设计说明书的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

    1.1 编写目的

    说明这份数据库设计说明书是为哪份软件产品编写的,开发这个软件产品意义、作用以及最终要达到的意图。通过这份数据库设计说明书详尽准确地描述了该软件产品的数据库结构。如果这份数据库设计说明书只与整个系统的某一部分有关系,那么只定义数据库设计说明书中说明的那个部分或子系统。

    1.2 项目来源

    具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

    ●  任务提出者;

    ●  软件开发者;

    ●  产品使用者。

    1.3 文档约定

    描述编写文档时所采用的各种排版约定。排版约定应该包括:

    ●  命名方法;

    ●  提示方式;

    ●  通配符号:

    ●  等等。

    1.4 预期读者和阅读建议

    列举本数据库设计说明书所针对的各种不同的预期读者,例如,可能包括:

    ●  开发人员;

    ●  项目经理;

    ●  测试人员;

    ●  文档编写人员。

    并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

    1.5 参考资料

    列举编写需求规格说明书时所用到的参考文献及资料,可能包括;

    ●  本项目的合同书;

    ●  上级机关有关本项目的批文;

    ●  本项目已经批准的计划任务书;

    ●  用户界面风格指导;

    ●  开发本项目时所要用到的标准;

    ●  系统规格需求说明;

    ●  使用实例文档;

    ●  属于本项目的其它已发表文件;

    ●  本数据库设计说明书中所引用的文件、资料;

    ●  相关软件产品数据库设计说明书;

    ●  等等。

    为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

    ●  标题名称;

    ●  作者或者合同签约者;

    ●  文件编号或者版本号;

    ●  发表日期或者签约日期;

    ●  出版单位或者资料来源。

    2. 数据库命名规则

    完整并且清楚的说明本数据库的命名规则,在《南京市交通局信息化数据库建设规范》中已经给出了一个完整的数据库命名规则,开发者应遵守执行,如果本数据库的命名规则与该规范不完全一致,应作出解释。

    3. 数据库设计说明

    3.1 数据库逻辑设计

    数据库设计人员根据《软件需求分析报告》,创建与数据库相关的实体关系图(E-R)。如采用面对对象的分析和设计方法,则此处的实体相当于类。

    在此处,应给出逻辑设计的完整的E-R图。

    3.2 数据库物理设计

    在此处应给出完整的数据库物理结构E-R图。开发者应根据逻辑设计的结果,进行数据库的物理设计,并对表结构进行规范化处理(第一范式,第二范式,第三范式)

    3.3 数据库分布

    数据库分布采用一张表格进行描述,其格式如下:

    数据库

    编号

    数据库

    管理系统

    名称

    数据库

    管理系统

    版本号

    数据库

    英文名称

    数据库

    中文名称

    数据库

    安装

    物理位置

     

     

     

     

     

     

    其中:

    ●  数据库编号

    给出本系统中指定数据库的顺序编号。

    若本系统中只有一个数据库,则本项内容不需要描述,本表内容也只有一行。

    说明: 在一个系统中可能安装若干个相同的或者不同的数据库管理系统,

    一个数据库管理系统也可能安装一个或者多个数据库。

    ●  数据库管理系统名称

    给出本系统中指定数据库管理系统的商品名称。

    若本系统中只有一种数据库管理系统,则本项内容不需要描述。

    ●  数据库管理系统版本号

    给出本系统中指定数据库管理系统的版本号。

    若本系统中只有一个版本的数据库管理系统,则本项内容不需要描述。

    ●  数据库英文名称

    给出本数据库的英文名称,该名称是在应用软件中实际使用的名称,必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  数据库中文名称

    给出本数据库的中文名称,该名称是本数据库英文名称的说明。

    ●  数据库安装物理位置

    给出本数据库安装的实际位置,必须描述清楚该位置是在那个物理设备的哪一

    个逻辑存储设备上,以及存储文件的名称。

    3.4 基表设计

    每个基表采用一张表格进行描述,其格式如下:

    数据库编号:

    基表编号:

    基表英文名称:

    基表中文名称:

    字段编号

    英文字段名

    中文字段名

    字段类型

    备注

     

     

     

     

     

    说明:

    其中

    ●  数据库编号

    含义同上。

    ●  基表编号

    给出本基表的顺序编号。

    ●  基表英文名称

    给出本基表的英文名称,该名称是在应用软件中实际使用的名称,必须符合命

    名规范。

    ●  基表中文名称

    给出本基表的中文名称,该名称是本基表英文名称的说明。

    ●  字段编号

    该基表中,各个字段的顺序编号。

    ●  英文字段名

    该基表中,各个字段的英文名称,该名称必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  中文字段名

    该基表中,各个字段的中文名称,该名称是英文字段名的说明。

    ●  字段类型

    该基表中,各个字段的类型;如果需要,在说明类型时,还需要说明字段长度。

    ●  备注

    该基表中,各个字段有关的限制性说明,需要描述的内容可能包括:

    值域;

    缺省值;

    空字段限制;

    显示格式与小数位数;

    有效性规则与约束;

    标题;

    等等

    ●  说明

    说明一些有关本表的、必须描述清楚的问题,需要描述的内容可能包括:

    主关键字;

    索引、排序方式和类型;

    触发器;

    数据复制;

    等等

    3.5 视图设计

    每个视图采用一张表格进行描述,其格式如下:

    数据库编号:

    视图编号:

    视图英文名称:

    视图中文名称:

    相关基表和视图:

    字段编号

    英文字段名

    中文字段名

    字段类型

    字段源

    备注

     

     

     

     

     

     

    说明:

    其中:

    ●  数据库编号

    含义同上。

    ●  视图编号

    给出本视图的顺序编号。

    ●  视图英文名称

    给出本视图的英文名称,该名称是在应用软件中实际使用的名称,必须符合

    命名规范。

    ●  视图中文名称

    给出本视图的中文名称,该名称是本视图英文名称的说明。

    ●  相关基表和视图

    列出建立该视图时,所用到的基表和视图。

    ●  字段编号

    该视图中,各个字段的顺序编号。

    ●  英文字段名

    该视图中,各个字段的英文名称,该名称必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  中文字段名

    该视图中,各个字段的中文名称,该名称是英文字段名的说明。

    ●  字段类型

    该视图中,各个字段的类型;如果需要,在说明类型时,还需要说明字段长度。

    ●  字段源

    该视图中,各个字段的来源,即该字段原来是那个表或者那个视图中的那个字

    段;在某些情况下,字段可能来自一个特定的表达式。

    ●  备注

    该视图中,各个字段有关的限制性说明,包括:

    值域;

    缺省值;

    空字段限制;

    显示格式与小数位数;

    有效性规则与约束;

    标题;

    等等。

    ●  说明

    说明一些有关本视图的、必须描述清楚的问题,需要描述的内容可能包括:

    索引;

    权限;

    等等

    3.6 索引设计

    每个数据库的所有采用一张表格进行描述,其格式如下:

    数据库编号:

    索引编号

    基表名称

    索引名称

    字段集名称

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  索引编号

    给出本项索引的顺序编号。

    ●  基表名称

    给出本项索引所在的基表名称。

    ●  索引名称

    给出本项索引的名称。

    ●  字段集名称

    给出本项索引所在的字段名称或者字段集名称。

    ●  备注

    描述有关本项索引中,其它需要说明的事项,例如:排序方式、等等。

    3.7 完整性约束

    每个数据库的完整性约束采用一张表格进行描述,其格式如下:

    数据库编号:

    索引编号

    基表名称

    索引名称

    字段集名称

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  约束编号

    给出本项完整性约束的顺序编号。

    ●  完整性约束名

    给出本项完整性约束的名称。

    ●  基表名

    给出本项完整性约束所在的基表名称。

    ●  字段名

    给出本项完整性约束所在的字段名称。

    ●  约束表达式

    给出本项完整性约束的逻辑表达式。

    ●  备注

    描述有关本项完整性约束中,其它需要说明的事项。

    3.8 授权设计

    每个数据库的授权采用一张表格进行描述,其格式如下:

     

    数据库编号:

    授权编号

    用户名称

    对象名称

    权限

    备注

     

     

     

     

     

    其中:

    ●  数据库编号

    含义同上。

    ●  授权编号

    给出本项授权的顺序编号。

    ●  用户名称

    给出本项授权的用户名称,这里的用户不一定是具体用户,也可以是用户组。

    ●  对象名称

    给出本项授权的对象名称,例如:基表、字段、等等。

    必须注意到,一个用户可能存在多项授权,应该逐项描述。

    ●  权限

    被授权用户在该对象上拥有的访问权限,例如:查询权、修改权、等等。

    ●  备注

    描述有关本项授权中,其它需要说明的事项。

    3.9 触发器设计

    ●  数据库编号

    含义同上。

    ●  触发器编号

    给出本触发器的顺序编号。

    ●  触发器英文名称

    给出本触发器的英文名称,必须符合《南京市交通局信息化数据库建设规范》中相关命名规范。

    ●  触发器中文名称

    给出本触发器的中文名称,该名称是本触发器英文名称的说明。

    ●  触发器条件

    给出该触发器产生触发的条件。

    ●  触发器结果

    给出该触发器被触发后所执行的动作内容。

    3.10 存储过程设计

    每个数据库的授权采用一张表格进行描述,其格式如下:

    数据库编号:

    存储过程编号:

    存储过程英文名称:

    存储过程中文名称:

    存储过程内容:

     

    说明:

     

    其中:

    ●  数据库编号

    含义同上。

    ●  存储过程编号

    给出本存储过程的顺序编号。

    ●  存储过程英文名称

    给出本存储过程的英文名称,该名称是在应用软件中实际使用的名称,必须符

    合命名规范。

    ●  存储过程中文名称

    给出本存储过程的中文名称,该名称是本存储过程英文名称的说明。

    ●  存储过程内容

    给出该存储过程算法或者描述详细内容,如果需要,应该辅以流程图说明。

    ●  说明

    描述本存储过程需要说明的一些事项。

    3.11 数据复制设计

    每项数据复制采用一张表格进行描述,其格式如下:

    数据复制编号:

    复制英文名称:

    复制中文名称:

    源数据库编号:

    目标数据库编号:

    复制说明:

    执行方式:

    源数据库名称

    目标数据库名称

    基表名称

    字段名称

    基表名称

    字段名称

     

     

     

     

    备注:

    其中:

    ●  数据复制编号

    给出本数据复制的顺序编哥

    ●  数据复制英文名称

    给出本数据复制的英文名称,该名称是在应用软件中实际使用的名称,必须符

    合命名规范。

    ●  数据复制中文名称

    给出本数据复制的中文名称,该名称是本数据复制英文名称的说明。

    ●  源数据库编号

    作为复制数据源的数据库编号,编号含义同上。

    ●  目标数据库编号

    作为复制目标的数据库编号,编号含义同上。

    ●  复制说明

    给出该复制的详细描述,如果需要,应该辅以示意图说明。

    ●  执行方式

    给出该复制的执行方式,描述时应该说明:

    ●  自动执行

    必须说明执行周期或者执行条件。

    ●  调用执行

    必须说明被那个模块调用,以及是手动调用,还是条件调用。

    ●  源数据库名称

    给出对应源数据库编号的源数据库名称。

    ●  目标数据库名称

    给出对应目标数据库编号的目标数据库名称。

    ●  基表名称

    分别给出源数据库和目标数据库中,进行对应复制的源基表名称和目标基表名

    事例。

    ●  字段名称

    分别给出源基表和目标基表中,进行对应复制的源字段名称和目标字段名称。

    ●  备注

    描述本复制中需要说明的一些特殊事项。

    4. 词汇表

    列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的

    外文原词)。为了便于非软件专业或者非计算机专业人士(例如:文档编写人员等等。)

    阅读数据库设计说明书,要求使用非软件专业或者非计算机专业的术语进行描述。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表,并且加以准确定义。

    5. 历史数据处理

    严格说来,历史数据处理并不属于数据库设计范畴。但是对于大多数数据库来说,如果历史数据处理不当,少则数月、多则数年,最终将使数据库无法正常运行。这段时间的长短取决于数据库设计容量大小,以及数据流强度(即在单位时间内进入数据库的数据记录数量)高低。因此应该设计专门的归档数据库,并根据历史数据需要保存备查的时间长短,定期将历史数据转移到归档数据库中。

    设计归档数据库时,需要根据具体情况进行考虑,下面列出一些可能需要考虑的内容:

    ●  历史数据需要备查的时间长短。

    ●  数据转移周期的时间单位

    例如:日、周、旬、月、季、年、等等。

    ●  数据转移的方式

    例如:手动、自动、条件、等等。

    ●  历史数据保存的细节

    多数情况下,归档的历史数据并不需要保存全部细节,可以去掉部分细节,采

    用压缩归档处理的方法减少归档数据库的占用空间。

    注意:如果压缩数据时,去掉了不该去掉的细节,将是无可挽回的。

    ●  其它需要说明的问题

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录  软件测试(验收)大纲

     

    1. 引言

    1.1 目的

    1.2 术语

    1.3 参照标准

    2. 测试日期安排

    3. 测试小组及成员

    4. 测试具体内容

    4.1 合法性检查

    4.2 软件文档检查

    4.2.1 必须提供检查的文档

    4.2.2 其他可能需要检查的文档

    4.2.3 由业主确定必须检查的其他文档

    4.2.4 文档质量的度量准则

    4.3 软件代码测试

    4.3.1 源代码一般性检查

    4.3.2 软件一致性检查

    4.4 软件系统测试

    4.4.1 界面(外观)测试

    4.4.2 可用性测试

    4.4.3 功能测试

    4.4.4 稳定性(强度)测试

    4.4.5 性能测试

    4.4.6 强壮性(恢复)测试

    4.4.7 逻辑性测试

    4.4.8 破坏性测试

    4.4.9 安全性测试

    5. 测试结果交付方式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. 引言

    1.1 目的

    为了尽可能的找出软件的不足,提高软件的质量,促进软件的成功验收,专门制定了本大纲。其主要目的在于为所要进行的测试工作制定各种必要的准则和规范,以及在有关方面协议的基础上对测试工作进行合理组织与管理。

    1.2 术语

    本大纲所提及的术语,其定义遵照GB/T 11457标准。

    1.3 参照标准

    ●  GB/T 114571995

    软件工程术语

    ●  GB 85661995

    信息技术软件生存期过程

    ●  OGB 8567—1988*

    计算机软件产品开发文件编制指南

    ●  GB 9385*

    计算机软件需求说明编制指南

    ●  GB 93861988*

    计算机软件测试文件编制指南

    ●  GB/T 125041990

    计算机软件质量保证计划规范

    ●  OGB/T 125051990

    计算机软件配置管理计划规范

    ●  OGB/T 140791993

    软件维护指南

    ●  OGB/T 143941993

    计算机软件可靠性和可维护性管理

    ●  GB/T 166801996

    软件文档管理指南

    ●  开发者企业规范

    软件开发者有关软件工程的规范

    ●  其它文件

    例如:合同书等,法律文件中的有关规定。

    说明:(1)应该遵循自顶而下、就严不就宽的原则,除非合同书等法律文件中另有规定。

         (2)标记(*)号的标准为推荐标准。

    2. 测试日期安排

    开发方如期交付软件的基础上,由业主审核确定具体日期安排。

    3. 测试小组及成员

    由业主聘请具有一定的分析、设计、编程和软件测试经验的测试组长和其他专业人员组成。测试组设组长一名(可设有副组长),负责整个测试的计划、组织工作。

    或委托具有国家认可测试资质的第三方进行测试。

    4. 测试具体内容

    测试内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

    4.1 合法性检查

    检查开发者在开发本软件时,使用的开发工具是否合法。对在编程中使用的一些非本单位自己开发的,也不是由开发工具提供的控件、组件、函数库等,检查其是否有合法的发布许可。

    4.2 软件文档检查

    4.2.1 必须提供检查的文档

    ●  项目实施计划;

    ●  详细技术方案;

    ●  软件需求规格说明书(STP)(含数据字典)

    ●  概要设计说明书(PDD)

    ●  详细设计说明书(DDD)(含数据库设计说明书)

    ●  软件测试计划(STP)(含测试用例)

    ●  软件测试报告(STR)

    ●  用户手册(SUM)(含操作、使用、维护、应急处理手册)

    ●  源程序(SCL)(不可修改的电子文档)

    ●  项目实施计划(PIP)

    ●  项目开发总结(PDS)

    ●  软件质量保证计划(SQAP)

    4.2.2 其他可能需要检查的文档

    ●  软件配置计划(SCMPP)

    ●  项目进展报表(PPR)

    ●  阶段评审报表(PRR)

    4.2.3 由业主确定必须检查的其他文档

    说明:如果业主认为4.1.1节和4.1.2节所列文档之外,还需要检查其它文档,则在此列出文档名称;如果业主认为不需要进行额外的文档检查,则本部分无内容。

    4.2.4 文档质量的度量准则

    文档是软件的重要组成都分,是软件生存周期各个不同阶段的产品描述。文档质量的度量准则就是要评审各阶段文档的合适性。主要有以下六条:

    ●  完备性

    开发方必须按照GB 8567(计算机软件产品开发文件编制指南)的规定编制相应的

    文档,以保证在开发阶段结束时其文档是齐全的。

    ●  正确性

    在软件开发各个阶段所编写的文档的内容,必须真实的反映阶段的工作且与该阶

    段的需求相一致。

    ●  简明性

    在软件开发各个阶段所编写的各种文档的语言表达应该清晰、准确简练,适合各

    种文档的特定读者。

    ●  可追踪性

    在软件开发各个阶段所编写的各种文档应该具有良好的可追踪性。文档的可追踪

    性包括横向可追踪性和纵向可追踪性两个方面。前者是指在不同的文档的相关内

    容之间相互检索的难易程序;后者是指确定同一文档某一内容在本文档范围中检

    索的难易程度。

    ●  自说明性

    在软件开发各个阶段所编写的各种文档应该具有较好的自说明性。文档的自说明

    性是指在软件开发各个阶段中,不同文档能够独立表达,该软件在其相应阶段的

    阶段成果的能力。

    ●  规范性

    在软件开发各个阶段所编写的各种文档应该具有良好的规范性。文档的规范性是

    指文档的封面、大纲、术语的含义以及图示符号等符合有关规范的规定。

    4.3 软件代码测试

    4.3.1 源代码一般性检查

    仅对系统关键模块的源代码进行抽查,检查模块代码编写的规范性,批注的准确性,是否存在潜在性错误,以及代码的可维护性。

    ●  命名规范检查

    检查源代码中的变量、函数、对象、过程等的命名是否符合约定规范,该规范可

    以由开发方在软件工程文档规范中单方面约定。

    ●  注释检查

    检查程序中的注释是否规范,注释量是否达到约定要求,例如:要求注释量达到

    30%左右。

    ●  接口检查

    检查数据库接口等外部接口是否符合要求,各程序模块使用的接口方式是否一

    致,特定的外部接口协议是否符合。

    ●  数据类型检查

    源代码中涉及的金额的常量、变量及数据集和数据库中涉及金额的数据类型是否

    采用货币类型,以防止在特定条件下产生较大的误差而影响统计结果。

    ●  限制性检查

    对一些程序中使用到的、具有使用限制的命令、事件、方法、过程、函数、对象、

    控件等进行检查。检查在长时间运行时,有无可能接近或者达到限制条件,

    这里考虑的系统运行时间可能长达数年。

    4.3.2 软件一致性检查

    ●  编译检查

    要求提交的源代码在其规定的编译环境中,能够重新编译无错误,并且能够完成

    相应的功能,从而确定移交的确实是正确的源代码。

    ●  安装/卸载检查

    在新系统上用交付的软件安装盘重新安装各个模块,并且通过运行这些软件模

    块,能否完成相应的功能,从而确定移交的确实是正确的软件安装盘。

    在安装后立即卸载所安装的模块,并且检查是否能够做到彻底卸载。

    ●  运行模块检查

    将新安装的软件模块与现场运行模块用软件工具抽样比较,确认交付的软件安装

    盘与现场运行软件一致。

    抽查数处现场运行模块用软件工具比较,确认现场运行软件一致。

    4.4 软件系统测试

    软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。

    进行软件系统测试工作时,具体的测试用例是由开发方提供,并由测试方和用户共同补充制定的。在开发方做完功能演示后,可以进行下列测试:

    ●  界面(外观)测试;

    ●  可用性测试;

    ●  功能测试;

    ●  稳定性(强度)测试;

    ●  性能测试;

    ●  强壮性(恢复)测试;

    ●  逻辑性测试;

    ●  破坏性测试;

    ●  安全性测试。

    说明:实际进行的测试内容有测试方法和业主根据具体情况共同确定,并非文中所列测试内容都必须进行测试。

    4.4.1 界面(外观)测试

    对照界面规范(在软件需求规格说明书中规定,或者由软件工程规范中给出)和界面表(在概要设计中给出),检查各界面设计是否规范,包括:界面风格、表现形式、组件用法、字体选择、字号选择、色彩搭配、日期表现、计时方法、时间格式、对齐方式等等,是否符合规范、是否协调一致、是否便于操作。

    4.4.2 可用性测试

    测试操作是否方便,用户界面是否友好等。测试系统是否有影响操作流程的界面Bug和功能Bug,纪录具体Bug的数量、出现频率和严重程度。

    4.4.3 功能测试

    检查数据在流程中各个阶段的准确性。对系统中每一模块利用实际数据运行,将其结果与同样数据环境下应该得出的结果相比较,或与软件需求规格说明书中要求的结果进行比较,如有偏差,则功能测试不能通过。

    检查软件需求规格说明书中描述的需求是否都得到满足;系统是否缺乏软件需求规格说明书中规定的重要功能;以及系统实际使用中不可缺少而软件需求规格说明书中没有规定的功能。

    如果存在遗产数据,应该检查遗产数据转换是否正确。

    4.4.4 稳定性(强度)测试

    测试系统的能力最高实际限度,即检查软件在一些超负荷情况下,功能实现的情况。例如:要求软件进行某一行为的大量重复、输入大量的数据或大数值数据、对数据库进行大量复杂的查询等。

    利用边界测试(最大值、最小值、N次循环)对系统进行模拟运行测试,观察其是否处于稳定状态。

    4.4.5 性能测试

    根据系统设计指标,或者对被测软件提出的性能指标,测试软件的运行性能,例如:传输连接最长时限、传输错误率、计算精度、记录精度、响应时限和恢复时限等。

    4.4.6 强壮性(恢复)测试

    采用人工的干扰使应用软件、平台软件或者系统硬件出错,中断正常使用,检测系统的恢复能力。进行强壮性测试时,应该参考性能测试相关的测试指标。

    4.4.7 逻辑性测试

    根据系统的功能逻辑图,测试软件是否按规定的逻辑路径运行,选择一些极限数据判断软件运行是否存在错误或非法路径,从而发现系统的逻辑错误或非法后门。

    4.4.8 破坏性测试

    输入错误的或非法的数据(类型),检查系统的报错纠错的能力及稳定性。并测试可连续使用多长时间而系统不崩溃。

    4.4.9 安全性测试

    验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰,安全测试时需要设计一些测试用例试图突破系统的安全保密措施,检验系统是否有安全保密的漏洞。

    说明:进行安全测试时,必须遵循相关的安全规定,并且有业主派员参加。

    5. 测试结果交付方式

    测试结束后,由测试组填写软件测试报告,并将测试报告与全部测试材料一并交给业主。具体交付方式,由业主和测试方双方协商确定。测试报告包括下列内容:

    ●  软件测试计划

    ●  软件测试日志

    ●  软件文档检查报告

    ●  软件代码测试报告

    ●  软件系统测试报告

    ●  测试总结报告

    ●  测试人员签字登记表

     

    本文系转载:http://www.cnblogs.com/lishanlei/p/9467407.html,在此表示感谢!

    展开全文
  • 软件开发中常见的开发模型

    千次阅读 2018-04-26 17:04:13
    软件开发模型是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,...
  • 软件开发常见的开发方向

    千次阅读 2019-05-11 16:01:58
    说起软件开发,现在是无人不知,无人不晓。好多人可能以为软件开发就是做一样工作的,其实不然,软件开发也分很多种类型,很多方向。做为一个过来人,简单介绍一些常见的开发方向。 1.桌面程序:Java、C++、C#、VB、...
  • 国家标准软件开发文档模板

    千次下载 热门讨论 2009-12-02 09:51:47
    国家标准软件开发文档模板,包括:操作手册(GB8567——88)、测试分析报告(GB8567——88)、测试计划(GB8567——88)、概要设计说明书(GB8567——88)、开发进度月报(GB8567——88)、可行性研究报告(GB8567...
  • 软件开发流程

    千次阅读 2018-07-08 23:00:18
    https://blog.csdn.net/ithomer/article/details/5674292一、 软件开发简介 软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序...
  • 软件开发合同模板范本

    万次阅读 2018-08-23 10:17:48
    其它《软件开发合同模板范本》下载链接: https://download.csdn.net/download/daqiang012/10621400 合同编号:_________甲方(委托人):_________ 法定住址:_________ 法定代表人:_________ 职务:________...
  • 嵌入式软件开发流程

    万次阅读 2018-05-06 20:16:33
    根据使用的开发工具套件不同,软件开发流程会有差异,但主要步骤大致相同。对于使用宿主机(PC)的集成化开发环境,软件开发流程一般包括创建项目、添加文件、编译连接、下载调试等步骤,如下图所示。 图1:...
  • 软件开发方法 软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 结构化方法 结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。结构化分析...
  • 工控上位机软件开发

    千次阅读 2019-05-28 09:12:22
    工控上位机软件开发全流程自研-上位机软件开发-工业级控制系统一、上位机软件开发底层设计二、上下位机通信的安全性三、上位机软件接收与存储研发四、数据清洗与图形展示研发五、上位机软件发送指令与回调六、上位机...
  • 软件开发工作总结

    万次阅读 2016-05-16 21:49:20
    软件开发工作总结  1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很...
  • 敏捷软件开发scrum介绍

    千次阅读 2018-08-31 20:30:54
    敏捷软件开发最近几年越来越火。跟传统软件开发相比有什么优点呢。今天我们就来聊一聊。 首先我们来看下什么叫做敏捷。 敏捷软件开发过程 软件开发过程是指设计软件开发过程中涉及的一系列活动,指导开发组一步...
  • 项目管理进阶–软件开发项目中的团队组成项目经理 项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往。总而言之,就是尽量使项目团队一直集中于正确的目标。项目经理还要建立一套工作方法,以确保项目...
  • 软件开发书籍推荐

    万次阅读 2017-08-30 09:01:05
    软件开发书籍推荐学而不码则罔,码而不学则殆。针对软件开发(语言C++、Java、Python,平台:Android),推荐一份能修炼内功提高编程素养的书单。 难度等级1~5:1级最容易,5级最难 重点推荐:《代码大全2》+《重构...
  • 软件开发环境简介

    千次阅读 2019-05-26 11:24:00
    软件开发环境SDE(Software Development Environment)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用程序的工程化开发和维护而使用的一组软件。在实际软件开发过程中一般包含三个阶段:开发—>测试—&...
  • 机器人软件开发平台

    千次阅读 2019-09-14 01:13:01
    分类: LINUX ... 本文对目前现役实用机器人的软件开发平台进行整体的评测。其中的主要内容是根据本人对这些平台的实际使用经验编写的。 什么是机器人软件开发平台? 所谓的“机器...
  • 软件开发模型

    千次阅读 2016-04-30 17:06:12
    简介软件开发模型(Software Development Model)是指软件开发的流程该怎么走,指导项目该如何进行,怎么进行能高效率、高质量、低风险、低成本等,明确主要活动和任务,针对具体的项目和环境进行调整,使用合适的管理...
  • 软件开发计划书(是 一个完整的项目开发文档)

    千次下载 热门讨论 2007-01-09 16:30:12
    软件开发计划书 ..............1.任务申请.doc ..............2.可行性与计划阶段--可行性研究报告.doc ..............2.可行性与计划阶段--项目开发计划.doc ..............3.需求分析阶段--数据要求说明书...
  • 软件测试与软件开发比较?

    千次阅读 2017-07-04 17:17:33
    在给学员做入学评估和沟通过程中,包括在网络上很多人都在问如下相关的问题:做软件测试好,还是做软件开发好?学软件测试好,还是学软件开发好?软件测试和软件开发有什么样的区别和联系?在职业转行的过程中,如何...
  • 什么是软件开发

    千次阅读 2017-09-30 16:38:30
    有一个销售的同事在会议上说,你们软件开发人员真好,坐在电脑前打打代码就可以完成工作了。还有一些对软件开发不懂的老板说,你们软件开发不就是写几行代码就可以了吗。可见,没有深入软件开发的了解,永远都是这么...
  • 软件开发入门自学指南

    万次阅读 多人点赞 2019-03-25 20:16:24
    每天都看到很多对编程感兴趣的人在问是不是可以自学软件开发,或者应该怎么自学 编程才能入门。在这篇文章里,我将尝试重现一个初学者在学习计算机编程时可能会 碰到的问题,并尽量提供相应的解决思路,希望对初学者...
  • 2.3软件测试与软件开发的关系

    千次阅读 2018-05-19 16:22:26
    软件测试与软件开发的关系:测试活动在开发之后测试与开发同步进行,最后再进行总的测试没有开发就没有测试不同的软件开发模型中,测试所处位置不同瀑布模型与测试活动测试是在软件开发之后进行的活动螺旋模型与测试...
  • 软件开发环境说明

    千次阅读 2017-07-31 22:05:08
    软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持...
  • 软件工程:软件开发生命周期 (SDLC)

    万次阅读 2019-02-11 17:28:30
    软件构建的基本概念之一 - 软件开发生命周期模型。或者只是SDLC模型。SDLC - 是一个连续的过程,从决定启动项目的那一刻开始,并在它完全从开发中移除的那一刻结束。没有一个单一的SDLC模型。它们分为主要组,每组都...
  • 软件开发过程文档

    千次下载 热门讨论 2008-04-14 07:51:39
    包含所有软件开发的文档模板,具体如下: 测试用例编写规范.doc 概要设计说明书编写规范.doc 计算机源代码编写规范.doc 开发大纲.doc 配置管理规范.doc 配置管理计划编写规范.doc 软件测试计划...
  • 软件开发的常用开发模式

    千次阅读 2016-04-27 21:47:21
    简单描述几种主要的软件开发模式:瀑布开发、迭代式开发、Time Boxed 定时开发、Continuous Flow 持续工作流。和它们的主要特点和缺点
  • 软件开发进度表

    万次阅读 2018-04-13 15:10:22
    对于软件开发的基本流程,往往需要计划开发进度,这里找到一份不错的进度表,进行软件开发时可以参考此表进行项目规划 软件开发进度表 阶段主要工作应完成的文档计划起始时间计划终止时间实际起始时间实际终止时间...
  • 嵌入式软件开发

    万人学习 2017-02-09 20:01:59
    课程主要讲解一些在开发中需要知道的常识,以及一些常见的开发平台,开发中应当注意的事项以及一些实战技巧,这些全部均来源于我的CSDN博客发表的内容。

空空如也

1 2 3 4 5 ... 20
收藏数 395,005
精华内容 158,002
关键字:

软件开发