版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,1,目录,1.1开发流程简介 1.2软件文档的分类与要求 1.3需求说明书的编写 1.4概要设计说明书的编写 1.5详细设计说明书的编写 1.6数据库设计说明书的编写 1.7测试,.,2,由于软件应用范围及规模的不断扩大,复杂度的不断增加,现代软件的开发大都采用了软件工程的方法。软件工程活动主要包括需求、设计、实现、确认及支持等活动。 需求活动包括问题分析和需求分析。 问题分析是要从用户处获取需求定义,又称软件需求规约。 需求分析是要生成软件的功能规约。 设计活动一般包括概要设计和详细设计。 概要设计是要建立整个软件的体系结构,包括子系统、模块及相关层次的说明、每一模块的接口定义。 详细设
2、计是要产生程序员可用的模块说明,包括每一模块中的数据结构说明及加工描述。 实现活动是把设计结果转换为可执行的程序代码。 确认活动贯穿于整个开发过程,实现完成后的确认,如测试,以保证最终产品满足用户的要求。 支持活动包括修改和完善。 伴随以上活动,还有管理过程、支持过程、培训过程等。,1.1开发流程简介,.,3,GB8567中规定,软件生命周期分为7个阶段: 可行性研究和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护。 大部分企业将软件生存周期划分为5个阶段: 需求分析、设计、编码、测试、维护。 1.1.1软件开发过程模型 软件开发方法是具体软件开发活动中应用的技术。 软件开发过程
3、模型是指开发软件项目的总体过程思路。 最传统最早的软件开发模型是瀑布模型,随着软件工程技术的不断发展,在软件开发实践中,还出现了许多新的或改进的软件开发过程模型和方法。目前较常见的有:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、面向对象方法学等。 图1-1显示了一个典型Web软件项目的工作流程。,.,4,.,5,在实际操作中,可能是几种方法灵活地结合。但无论如何,应该依据一定的软件开发方法作为过程主线,辅助结合其他方法。 瀑布模型是将软件生存周期中的各项活动规定为依线性顺序连接若干阶段的模型。 下面所讨论的是采用瀑布模型进行项目的开发。它主要包括开发和确认两个过程。 1)开发过程是严格的
4、下导式过程,各个阶段具有顺序性和依赖性,前一阶段的输出是后一阶段的输入,每个阶段工作的完成需要审查确认。 2)确认过程是严格的追溯式过程,后一阶段出现了问题要通过前一阶段的重新确认来解决。所以问题发现得越晚解决问题的难度就越大。 瀑布模型适合软件需求非常明确、设计方案确定、对编码环境熟悉等对所有阶段都有较大把握的软件开发活动。 表1-1显示的是采用瀑布模型进行软件开发的各个阶段和确认目标。,.,6,.,7,.,8,.,9,1.1.2实现过程 按照瀑布模型的开发思想,Web软件的开发实现过程可以分为以下几个基本阶段。 1需求分析阶段 主要采用软件需求的相关理论和方法,指定软件的性能需求、功能需求
5、和界面需求等,并制定相应的需求文档。 2设计阶段 在完成软件的需求分析之后,即进入设计阶段。这一过程分为概要设计阶段和详细设计阶段。 在概要设计阶段主要明确软件的功能模块划分、后台数据库的框架设计等。 在详细设计阶段则要设计详细的数据库表结构,完成各个功能模块的具体实现对象,并规范各个对象之间的接口等。 在设计阶段完成之后,需要编写完整的设计文档。 3编码阶段 在完成整个软件的设计之后,接下来即可开始具体的编码阶段。包括实现完整的后台数据库结构、各个功能模块和对象的代码等。由于软件的各个功能模块之间的关联一般不是很紧密,所以在具体编码阶段,可以采用逐个功能实现的方式。,.,10,4测试阶段 在
6、编码阶段,开发人员就应该对其开发的基本功能模块和对象进行基本的测试,从而保证单个功能模块的正确性,这样可以极大地减少测试阶段的工作量。在测试阶段则主要是针对整个软件的应用逻辑进行测试,如果条件允许的话,应该尽可能的对每一个工作路径进行测试。另外,应该对系统的安全性设计进行专门的测试,这对于一个商务软件而言是至关重要的。 5软件发布阶段 在完成所有的文档编写、代码开发和系统测试之后,即完成了整个软件的开发过程。最后就可以将开发完成的软件移出开发环境,并将其发布到应用环境中。这个过程一般包括数据库的发布和配置,程序代码的打包、发布和配置及发布后的系统测试。与测试阶段的测试工作不同,这里的测试不再是
7、对整个系统的应用逻辑进行测试,而是按照软件的功能分类,测试各个功能能否正常使用。 图1-2显示了Web软件详细的开发流程。,.,11,.,12,在软件开发过程中,为什么要编写开发文档呢?当一个项目建立之后,如果没有完善的开发计划,这个项目80%会以失败告终。因为在开发的过程当中,用户有可能会提出这样或那样的额外要求。所以我们要在开发之前,由系统分析员做出详细的系统分析,指示出开发进度、困难等问题,并对相关的业务联系等问题做一个相对全面的分析。 1.2.1软件文档的分类 在项目开发过程中,应该按要求编写好13种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性及可追溯性。要求的13种文
8、档如下。 1可行性分析报告 说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能的实施方案,说明并论证所选定实施方案的理由。,1.2软件文档的分类与要求,.,13,2项目开发计划 为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。 3软件需求说明书(软件规格说明书) 对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维
9、护系统数据文件做好准备。 4概要设计说明书 该说明书是概要设计阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。 5详细设计说明书 着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。 6用户操作手册 本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方面的具体细节。,.,14,7测试计划 为做好集成测试和验收测试,需为如何组织测试制订实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则及测试结果允许的
10、偏差范围等。 8测试分析报告 测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。 9开发进度月报 该月报为软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法及下个月的打算等。 10项目开发总结报告 软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。 11软件维护手册 主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明及维护过程的说明,以便于软件的维护。,.,15,12软件问题
11、报告 指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。 13软件修改报告 软件产品投入运行以后,发现了需对其进行修正、更改等问题,应对存在的问题、修改的考虑及修改的影响做出详细的描述,提交审批。 下面将介绍当前软件公司中比较常用的几种文档:需求说明书、概要设计说明书、详细设计说明书、数据库设计说明书。 1.2.2软件文档的质量要求 软件文档的标准是:清楚、完整、一致、可测试,此外还有其他的标准,如可跟踪的、可修改的等。 1清楚 目前大多数的文档分析采用的仍然是自然语言。自然语言对文档分析最大的弊病就是它的二义性。所以我们不得不对文档分析所采用的语言做某些限
12、制。通俗地说,文档分析中的描述要让大家看上去像是刚学习写作的小孩子写的就对了,千万不要采用疑问句、修饰这些华丽的表达方式。注意不要使用计算机术语。文档分析最重要的是和客户沟通,可是客户多半不是计算机的专业人士,如果在文档分析中使用了术语,就会造成客户理解上的困难。,.,16,2完整 文档的完整性是非常重要的。可是令人遗憾的是,遗漏文档经常发生,不仅仅是自己的问题,更多的问题发生在客户那里,他们不知道该做些什么。要做到文档的完整性是很艰难的一件事情,它涉及到文档分析过程的各方各面,贯穿了整个过程,从最初的计划制定到最后的文档评审。 3一致 一致性也是一个比较大的概念,很难用几句话讲清楚。简单说,
13、就是用户文档必须和业务文档一致,功能文档必须和用户文档一致。 4可测试 一个项目的测试应该从什么时候开始呢?实际上测试是从文档分析过程就开始了。 什么是可测试呢?“我们要用新的系统完成报表自动化处理”,这个文档是可测试的吗?当然不是,报表包括哪些?自动化处理的标准是什么?这些在文档中都没有说明。因此这项文档是无法测试的,就是不具有可测试性。之前的文档的几项标准都是为了保证文档的可测试性的。只有系统的所有文档是可以被测试的,才能够保证软件始终围绕着客户的需要,保证软件系统是成功的。,.,17,软件项目中40%60%的问题都是在需求分析阶段埋下的“祸根”。在那些基本的项目功能上采用一些不合规范的方
14、法,这样导致的后果便是一条鸿沟(期望差异),即开发者开发的与客户所想得到的软件存在着巨大期望差异。 1.3.1需求说明书编写的目的 需求分析的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。 需求分析的任务并不是如何去编制程序,做具体的工作,而是确定系统必须完成哪些工作,实现哪些功能,也就是对目标系统提出完整、准确、具体、清晰的要求。,1.3需求说明书的编写,.,18,1.3.2需求分析的任务和步骤 在进行需求分析时,我们一般采用结构化分析的方法,即人们常用的SA方法。
15、就是面向数据流自顶向下逐步求精进行需求分析的方法。 1调查研究。 2分析与综合。 在该步骤应注意下述2条原则。 (1)在分层细化时必须保持信息连续性,也就是说细化前后对应功能的输入/输出数据必须相同。 (2)当进一步细化涉及如何具体地实现一个功能时,也就是当把一个功能进一步分解成子功能后,井将考虑为了完成这些子功能而写出其程序代码时,就不应该再分解了。 1.3.3确定需求的方法 为了能够使抽象的业务需求变成具体的需求报告书,通常需要一定的方法和技巧来确定需求。 大多数的需求分析方法是由数据作为驱动的,数据域具有3种属性:数据流、数据内容和数据结构。通常,一种需求分析方法总要利用一种或几种属性。
16、,.,19,1.3.4需求说明书的主要内容及示例 需求说明书主要内容应该包括以下几个方面: 1引言 2任务概述 3数据描述 4功能要求 5性能需求 6运行需求 7其他要求 8附录,.,20,一般来说,一个需求说明书的内容多少和项目的大小成正比,下面以某个科研项目管理系统的部分功能为例,说明如何编写需求说明书。 科研项目管理系统用户需求报告 1编写目的 本文档是针对科研项目管理系统从总体设计、设备配置等方面所做的说明。 本文档的编写目的是: (1)对科研项目管理系统的总体架构设计进行描述 (2)对科研项目管理系统的业务流程做详细、准确的描述,为系统概要设计及编码提供指导。 2项目提出原因 (略)
17、 3系统功能 本系统的使用可以将工作的部分流程通过计算机的办公自动化处理,能够极大地提高办公的效率和准确程度。另外,可以便捷地统计和分析各种所需资料,方便相应政策的调整等。 该系统作为科研项目管理系统,实现网络处理功能。系统采用先进的应用体系结构和开发模式,提高系统的可扩展性、可维护性和交互性。该系统相对独立,接口实现简单、安全,可操作性强。,.,21,4项目名称 科研项目管理系统。 5项目提出者 (略) 6项目承接者 (略) 7系统结构图,.,22,8需求描述 8.1总要求 以校园网为基础,实现对科研人员、科研项目、科研经费、科研成果、成果奖励、成果应用与转化、专利申请、科研工作量计算及其统
18、计报表、上报年表的网络化信息管理。 8.1.1进口 要求实现基于校园网的各二级单位录入进口、上传,科技处录入进口、导入接口。 8.1.2汇总 要求实现各二级单位通过校园网将录入的各类结果传送到科技处,并实现科技处验收、统计、汇总到总库的功能。 8.1.3输出 要求实现: (1)生成各类统计报表; (2)能够与国家教委的全国高校科技统计系统和人文管理系统网络版接口,能够实现校内数据库直接转入到这两个系统中。,.,23,8.2主要功能结构 主要功能结构有6大模块:科研人员管理、纵向课题管理、横向课题管理、科研成果管理、统计报表生成和工作量计算。 8.2.1科研人员管理模块 包含2个模块 (1)专家
19、基本信息 (2)专家其他信息 8.2.2纵向项目管理模块 包含3个模块。 (1)项目计划管理 (2)基地管理 (3)项目经费管理,.,24,8.2.3横向项目管理模块 包括项目管理、项目经费两个模块。 (1)项目管理 包括项目基本信息申报,项目鉴定、验收管理,项目经费管理。 1)项目基本信息 2)项目查询 3)项目统计 4)项目验收、鉴定管理 (2)项目经费管理 项目经费基本信息和提成基本信息: 1)项目经费基本信息 2)提成基本信息 3)项目经费查询与统计 8.2.4科研成果管理模块 成果类型:论文著作专利验收、鉴定的项目。 (1)论文 (2)著作 (3)专利 (4)各类获奖成果,.,25,
20、8.2.5统计报表管理模块 能够进行多角度检索,生成各类统计报表: 按完成人、完成单位、时间、学科、基地、成果类型(如按项目、成果、经费等)进行统计并生成报表。并能够与国家教委2个统计系统接口。 (1)科研项目统计与报表 (2)课题经费统计与报表 (3)科研成果统计与报表 (4)交叉综合报表 8.2.6工作量计算模块 能够进行个人、单位、不同时间段、不同类型的各种工作量计算,包含科研当量的计算和科研奖励的计算,并生成报表。 9支持信息 9.1支持软件 本软件开发是使用Microsoft IE5.0以上浏览器运行。 9.2设备 (略) 9.3文档 本系统相关的文档(略),.,26,在软件需求分析
21、阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书做了描述,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。 1.4.1概要设计的目的 在理解了系统需求说明书的基础上,开发者对系统所需实现的功能、性能及其操作配合方面进行了详细的分析和设计,并依此为项目进行了概要设计,编写了本文档,其目的在于: 1准确无误地用计算机处理过程来表达用户的各项要求,以此作为详细设计的纲领性文件。 2考核系统总体质量
22、的重要技术文档。 3作为软件设计的第一阶段,日后的设计均在此基础之上进行。,1.4概要设计说明书的编写,.,27,1.4.2概要设计的任务和步骤 一般步骤如下。 1设计系统方案。 2选取一组合理的方案。 3推荐最佳实施方案。 4功能分解。 5软件结构设计。 6数据库设计、文件结构的设计。 7制定测试计划。 8编写概要设计文档。 9审查与复审概要设计文档。,.,28,1.4.3软件设计的原则 1有关概念 (1)模块化 模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名而且可通过名称来访问,例如,过程、函数、子程序、宏等都可作为模块。 (2)抽象与逐步求精 软件工程过程的每一步都是对软
23、件解法的抽象层次的一次精化。逐步求精与抽象是紧密相关的。 (3)信息隐蔽和局部化 (4)模块独立性 模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,和软件系统中其他的模块接口简单。,.,29,2软件设计的原则 软件概要设计包括模块构成的程序结构和输入输出数据结构。其目标是产生一个模块化的程序结构,并明确模块间的控制关系,以及定义界面、说明程序的数据,进一步调整程序结构和数据结构。软件设计的原则如下: (1)改进软件设计、提高软件质量。 (2)显著改进软件结构提高模块独立性。 (3)模块规模应该适中。 (4)适当选择深度、宽度、扇出和扇入。 (5)模块的作用域应该在控制域之内。 (6)
24、力争降低模块接口的复杂程度。 (7)设计单入口单出口的模块。 (8)模块功能应该可以预测。,.,30,1.4.4概要设计文档的主要内容 在概要设计阶段,设计人员完成的主要文档是概要设计说明书,它主要规定软件的结构。 概要设计说明书的主要内容包括以下几个方面: 1引言 2任务概述 3总体设计 4接口设计 5数据结构设计 6运行设计 7出错处理设计 8安全保密设计 9维护设计,.,31,1.4.5概要设计说明书示例 下面以某个科研项目管理系统的部分功能为例,说明如何编写概要设计说明书。 科研管理系统概要设计说明书 1引言 科研管理系统的设计总则是按照原型化和生命周期法相结合的方法进行设计的,总设计
25、周期为三个周期,具体参见科研管理任务分解表。因此,系统设计过程所提交的文档也遵循了自顶向下,逐步细化的原则,需求分析与设计一般局限于系统的总结构和各个功能模块的顶层功能与设计,概要设计较之需求分析与设计有进一步的细化,并提供了数据库结构的初步设计和部分重要的运行界面的设计;详细设计应是概要设计更进一步的细化,应定义到小的过程的设计。 2说明书编写目的 (略) 3所开发的项目背景 (略) 4需要用到的参考资料 (略),.,32,5总体设计 5.1系统逻辑结构图,根据工作需要,对软件运行模式有以下要求:各个功能模块可以相互独立运行,并将结果自动存入相关的表中。,.,33,5.2科研人员管理模块 (
26、1)MODEL1(科研人员管理模块)功能描述与分解,.,34,(以下子模块略),.,35,MODEL1(科研人员管理模块)数据流图和模块关系图 数据流图,.,36,模块关系图,.,37,MODEL1(科研人员管理模块)相关数据表汇总,MODEL2纵向项目管理模块 MODEL2(纵向项目管理模块)功能描述与分解 (写法与以上类似,略),.,38,6接口设计 6.1外部接口 包括用户界面、软件接口与硬件接口。 以项目研发管理系统为例: (1)因为采用B/S模式开发系统,所以用户使用IE浏览器进行浏览操作。 (2)软件接口为人事部门数据库及外高校同类系统数据库接口。 (3)硬件接口暂时无。 6.2内
27、部接口 模块之间的接口 7系统出错处理设计 出错使用特定的出错处理模块进行操作。,.,39,详细设计文档是针对软件工程系统从总体设计、设备配置等方面所做的说明。 1.5.1详细设计的目的 详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。 这一阶段的主要任务如下: 1为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。 2确定每一模块使用的数据结构。 3确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。 4要为每一个模块设计出
28、一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分。,1.5详细设计说明书的编写,.,40,1.5.2详细设计应注意的问题 详细设计时,需要注意以下一些问题。 1由于详细设计的蓝图是给别人看的,所以模块的逻辑描述要清晰易读、正确可靠。 2采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。其基本内容归纳为以下几点: (1)程序语言中应尽量少用GOTO语句,以确保程序结构的独立性。 (2)使用单入口单出口的控制结构;确保程序的静态结构与动态执行情况相一致。保证程序易理解。 (3)程序的控制结构一般
29、采用顺序、选择、循环三种结构来构成,确保结构简单。 (4)用自顶向下逐步求精方法完成程序设计。结构化程序设计的缺点是存储容量和运行时间均增加10%20%,但易读易维护。 (5)经典的控制结构为顺序、IF THEN ELSE分支、DOWHILE循环。扩展的还有多分支CASE、DOUNTIL循环结构、固定次数循环DOWHILE。 3选择恰当描述工具来描述各模块算法,.,41,1.5.3如何编写详细设计说明书 一份详细设计说明书由以下几个部分组成。 1引言 2程序系统的结构 用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。 3程序1(标识符)设计说明 下面逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。 对于于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块所对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。 给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如:是常驻内存还是非常驻内存?是否子程序?是可重入的还是不可重入的?有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 高中信息技术数据与计算之数据安全的量子安全直接通信课件
- 2026年及未来5年市场数据中国分红寿险行业市场深度分析及投资战略规划报告
- 2026年春季火灾防控工作要点
- 农产品质量安全检测技术与标准化流程
- 2025 高中信息技术数据与计算之 Python 的计算机视觉图像生成模型优化课件
- 2026年西甜瓜高效遗传转化体系建设实务
- 2026年多次刮擦自修复后雾度值仅0.6%的光学级自修复材料技术突破
- 2026年通信导航监视功能融合模组研发技术规范
- 2026年OLED有机发光材料国产化率不足5%的替代空间
- 2026年项目业主碳资产管理体系建设操作实务
- 小儿药液外渗的预防及护理
- DB32-T 4787-2024 城镇户外广告和店招标牌设施设置技术标准
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- 2024年厦门航空有限公司招聘笔试参考题库含答案解析
- 林城镇卫生院安全生产制度
- 南京航空航天大学“天目启航”学生自由探索项目申请书
- EIM Starter Unit 6 This is delicious单元知识听写单
- 陕西铜川声威特种水泥有限公司2500t-d新型干法特种水泥熟料技改生产线项目环评报告
- GB/T 4062-2013三氧化二锑
- GB/T 26746-2011矿物棉喷涂绝热层
- GB 30616-2020食品安全国家标准食品用香精
评论
0/150
提交评论