软件架构设计及开发文档两篇_第1页
软件架构设计及开发文档两篇_第2页
软件架构设计及开发文档两篇_第3页
软件架构设计及开发文档两篇_第4页
软件架构设计及开发文档两篇_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、in软件架构设计及开发文档两篇篇一:软件架构设计文档文档简介帮助读者对本文档建立基本印象,并为阅读后续内容扫清障碍。文档目的文档目的,非项目目的。否则造成同一项目多个文档之间的内容重复,不利于 文档维护。本小节应指明文档针对的读者对象,最好列出各种读者角色,并说明 每种读者角色应该重点阅读的章节。文档范围文档的Scope,非项目的Scope。否则造成同一项目多个文档之间的内容重复, 不利于文档维护。定义、缩写词和缩略语集中列举文档中的定义、缩写词和缩略语。参考资料本项目经审核的计划书、合同、上级批文;本项目的其他已发表文件;本文档 引用的文件资料,如软件开发标准。具体而言,应包括参考资料的题目

2、(必须)、 编号、版本号(必须)、发表日期、发布方,必要时还可以说明如何使用这些资 料。架构描述方式为了让读者更好地理解架构文档,在本节应当说明文档涉及的架构视图,并指明为了描述设计决策用到了哪些图表和模型。 架构视图阅读指南 以多视图的方式来组织架构文档是大势所趋。ADMEMS推荐的是经过优化的5视图方法,如下图所示。面向控制流面向文件面向节点面向Table 或文件谡辑架构职责划分职责间协作5视图方法,如下图所示。面向控制流面向文件面向节点面向Table 或文件谡辑架构职责划分职责间协作面向对象或结构化数据架构7、 挡久敏据号丘 敬芹芦计格M运行架构、控制流 控制京拦农,程序挡;:程序单元组

3、织,物理架构杨毛点巨左盾1码图表与模型阅读指南对后续文档内容中所用到的建模语言(例如UML)、表格(例如目标-场景-决 策表)等进行说明。架构设计目标 功能、质量、约束,一个都不能少。关键功能对架构设计至关重要的功能,包括如下4类:核心功能、必做功能、高风险功 能、独特功能。所谓独特功能,指这个功能覆盖了上述3类功能没有涉及到的职 责。关键质量属性人之所以痛苦,很多时候是因为追求错误的东西。下图是ADMEMS方法确定关键质量的5大原则的整体思路图。业务需求和约束因素ADMEMS方法创造性地提出约束需求的4大类型,这是一种极为实用的分类方式。特别是业务需求对架构设计而言是一种约束的观点,解决了很

4、多架构师的现实困惑。下图标明了 4类约束在“需求层次-需求方面矩阵(又称ADMEMS矩阵)”中 的位置,可以帮助我们理解产生约束需求的根源。广义咖质量均束广义咖质量均束业务级需求业务环境业务级需求业务环境用户级需求开蛊级需求用户需求运行期质虽使用环境开览团队磨辎.隹 -r* .! n i ! 用户级需求开蛊级需求用户需求运行期质虽使用环境开览团队磨辎.隹 -r* .! n i ! _i_ 百.了 nJ X-构建环境技术环境维护架构设计原则投标时经常讲“架构设计原则”,但到了架构文档,这些着眼大局的考虑 却“丢了”。ADMEMS方法推荐的本文档模板,认为应当把它们“找回来”。 架构设计原则着重描

5、述重大的权衡取舍考虑。备选架构设计方案及被否原因在概念架构一级,对备选架构设计方案进行描述,并阐述它们未被采用的原因。 这有利于团队了解当前架构设计方案的来龙去脉,提高团队对当前架构设计方案 的认可度。架构设计对后续工作的限制(详设,部署等)架构设计不仅应该包含“指导”,也应该包含重要的“限制”。例如,一份只 是说明“性能和可扩展性都重要”的架构文档,实际上忽视了 “可扩展性和 性能之间存在的矛盾关系”。此时,最有效的办法就是在架构文档中明确说 明“任何提升可扩展性的架构设计和详细设计,都应通过架构团队的评审才能引 入,以确保性能目标不受重大影响”。逻辑架构视图关注点:此架构设计视图的关注点是

6、职责划分。注意:逻辑架构视图无疑是最重要的,但同时也应避免“架构二模块+接口” 等以偏概全的认识。参考:任何复杂系统的架构设计都不是一蹴而就的,所以架构师需要理性思维 过程的指导。针对逻辑架构设计这个关键环节,一线架构师实践指南一书给 出了2条建议:一是“以质疑驱动的螺旋思维”,二是相对分离地考虑“结构方 面的切分”和“行为方面的定义”。下图所示即为ADMEMS方法推荐的逻辑架构 设计理性思维过程。职责划分与职责确定内容:将系统切分成更小的单元,并明确这些单元的职责。具体而言,职责单 元可以是层、子系统、模块、关键类等。意义:一句话,职责划分不合理,功能和质量都会受到影响。也就是说,功能 需求

7、和质量需求无一不和职责划分相关:一方面,每个功能都是由一条职责协作 链完成的;另一方面,职责划分方式也影响着质量,于是需要职责模型针对特定 质量属性要求做出相应调整和优化。很多人认为架构设计就是职责划分的艺术, 虽略显片面,但足以表明职责划分的重要性。参考:基于对业界大量案例的研究,ADMEMS方法梳理出了 “模块划分的3种必 用手段”,如下图所示,更多内容可参考一线架构师实践指南一书。人的因素考虑淡定性原则*影响性原则接口设计与协作机制内容:本节描述接口的定义,以及协作的方式和规范。意义:恰恰是因为有了各模块之间“未来合作的契约”,分头开发各模块才有了基本保证。参考:ADMEMS方法推荐利用

8、“包-接口 ”图,来识别接口。下图为一个“包-接 口”图的示例。压缩豹技制解II.为控削压缩豹技制解II.为控削在看JK端包内容的控制接口Facade命令描述堆度展现 凹调很曰援冲接口智能缓抻机制内容缓.冲达“颊定如略世对HH-RI1进行尸I调对超出额;祥景的内容诃行智能压蜥实现房实现基字符序列的爪字、解牌算法1您不含元信忘的JI-:缩培果腰曰下图为参考:ADMEMS方法推荐使用序列图,建议少用、甚至杜绝使用协作图。下图为一个序列图的示例。Read again匹缩用帜冲 e掰冲I Wrlle() If| buffers 了 Read again匹缩用帜冲 e掰冲I Wrlle() If| bu

9、ffers 了 |iCalitKKk;如Process)outrun 潮ni缓冲区)Callback.:|重要设计包内容:对重要子系统的设计进行“灰盒”级描述。意义:“每个子系统在架构设计中都应保持黑盒子”的观点,过于理想化了。对于业务层、通用协作机制而言,经常需要在架构设计期间就引入“灰盒”级描述。参考:类图和灰盒包图,在本节中较多出现。下图为一灰盒包图示例。展现区M加冲嗔)调用clt m1调用clt m11WGanttChartlmpI周川来自第三方的小持图绘制包而小初点GanttChart开发架构视图关注点:此架构设计视图的关注点是程序单元组织。注意:此架构设计视图是必须的、不应“剪裁”

10、掉的。但实际情况却是,很多 架构师不关注开发架构视图,导致很多程序开发人员抱怨“架构师就知道高来高 去,架构对编程工作没什么指导性”。Project 划分内容:本节说明整个系统将划分成哪几个Project来开发,其中,Project指 开发环境所感知到的“工程”。意义:基本好处是,有利于开发的组织;而对一些大型的集成系统而言,由于 同时涉及了 Web应用、桌面应用、嵌入式应用等软件形态,所以此时Project 划分其实是不得不做的;最后,我们推荐核心代码应主动地切分到单独的 Project以进行独立的软件配置管理(SCM),以降低核心代码外泄的风险。 参考:Project划分必然是属于“架构设

11、计”的工作,严格来讲仅靠“需求分 析”划分的业务域(Business Area)直接映射到Project经常意味着工作内容 的遗漏。其实,业界不少有见地的专家已经认识到WBS(工作分解结构)做得太 早太草率危害很大,就与“Project划分不到位”不无关系。Project 1内容:对Project划分后的每个Project进行目录结构、程序单元组织、框架 与应用关系的说明。Project目录结构指导内容:关于该Project一级目录、二级目录等基本目录结构的约定。意义:为团队并行开发提供必要基础,让不同程序小组看到自己应该负责的程 序目录。参考:不要把所有程序目录的约定都定义得太细,否则这份架

12、构文档就要 天天更新了。程序单元组织内容:源码、程序库、框架、目标码等类型程序单元之间的编译依赖关系。 意义:或许有人认为这没什么技术含量,但架构设计本来就不是只关心技术含 量最高问题的。君不见,很多软件工程师跳槽到新的企业之后,竟然连一个能正 常编译源码的开发环境都建不起来一一其实,他们“不知道Project所依赖的 Library有哪些”是其中重要原因一一这本应在架构文档中给出明确描述的。 框架与应用之间的关系(可选)内容:框架(Framework)。意义:既然不适用Framework的开发越来越少了,既然程序员犯的很多错误都 和对Framework理解不到位有关,架构师就有责任明确说明F

13、ramework和待开发系统之间的关系。 参考:下图描述了 JGraph框架和待开发应用的关系。参考:下图描述了 Struts框架和待开发应用的关系。Siruts+i 架区Project 2内容:对Project划分后的每个Project进行目录结构、程序单元组织、框架 与应用关系的说明。Project n内容:对Project划分后的每个Project进行目录结构、程序单元组织、框架 与应用关系的说明。运行架构视图关注点:此架构设计视图的关注点是控制流组织。注意:进程和线程是广为人知的控制流实现技术,但在架构设计思维当中,对 于系统软件和嵌入式软件极为重要的中断服务程序也是控制流,这样利于架

14、构师 统一利用不同控制流手段设计并行和并发。 控制流组织 内容:控制流有哪些,每条控制流各是何种形式(例如进程、线程、中断服务 程序),哪些软件单元是控制流的起点,整条控制流中分别调用了哪些软件单元。 意义:这是对系统运行时结构的刻画,主要反映系统的动态结构。控制流的创建、销毁、通信内容:描述进程、线程和中断服务程序的创建和销毁,以及多条控制流之间的 通信关系的定义。意义:一旦引入了多条控制流,附加工作就产生了一一此时控制流的创建和销毁、以及控制流之间的通信关系往往是必须考虑的。加锁设计内容:系统中有多条控制流在同时运行的情况下,一个经典问题是多于一条控 制流可能会同时修改某些数据结构,而造成

15、数据的不一致。为此,架构师需要关 注加锁设计,合理引入临界区或同步机制。意义:加锁设计事关系统的正确性。值得注意的是,忽略加锁设计造成的问题 往往以“不易重现的Bug”的形式出现,困惑的程序员会对测试人员说,“你看 你报的Bug在我机器上根本就不存在呀”。参考:对通用组件、通用模块的设计而言,加锁设计应予以专门关注,思维要 点是研究未来通用模块的各种可能使用场景。物理架构视图关注点:此架构设计视图的关注点是物理节点(Node)分布,以及软件到硬件 的具体映射关系。注意:物理节点即可以是PC机或服务器,也可以是单片机、单板机或专用机, 从而物理架构视图既适用于描述企业信息系统,也适合于描述嵌入式

16、软件系统。物理拓扑 内容:一为硬件选型,二为硬件之间的拓扑连接关系。意义:对于分布式系统的设计,此节极为重要、而且是必须的。参考:下图是某企业级系统的物理拓扑图。I访问层|(Tiar) 1I I I i数据后 (TisrJ参考:下图是某嵌入式系统的物理拓扑图。jTfI访问层|(Tiar) 1I I I i数据后 (TisrJ参考:下图是某嵌入式系统的物理拓扑图。jTf/去I T作培管理WPC管理者PC-业务层I(Tier) !软件到硬件的映射内容:明确每个物理节点上有哪些(一到多个)软件的目标单元,并说明具体 的“映射方式”是安装、是部署、还是烧写、抑或是下载。意义:如果把此节漏了,就无法表明

17、本文档的主题一一软件系统一一和上述硬件、硬件拓扑的关系。参考:下图所示为设备调试系统中,软件到硬件的映射关系。此机调试机此机愤入部分taxthex愤入部分taxthex优化部署内容:为达降低成本、提高性能和可靠性等等目标,应特别关注的部署考虑。意义:物理架构设计的优劣,造成的成本差异和质量差异,可能是天壤之别。所以必须重视。参考:下图展示的,是ADMEMS方法重点推荐的“物理架构设计思维要点”,更多内容可参考一线架构师实践指南一书。架构师最缝目标投资与维护成 本合理特定性能目标 的满是思维要点计算和通信开销小凋少计算和通信时 内的硬&/CP架构师最缝目标投资与维护成 本合理特定性能目标 的满是

18、思维要点计算和通信开销小凋少计算和通信时 内的硬&/CP/ 网洛冲突设川为容-节点选择/分布沛扑.软件单元和数据单元的职责与分布cacne等设计经济性技术可行性易维护性性能持续可用性可伸缩性通信升销网络争用内序争用硬盘争用CFU争用数据争用计算开销软件单兀数据单元网络物理节点数据架构视图 关注点:此架构设计视图的关注点是持久化。具体而言,场景化可以借助扁平文件、关系数据库、实时数据库、Flash等方式中的一种或多种完成。注意:本视图单独归档时,请在此节注明其文档名称等信息。持久化机制的选择内容:如下持久化机制的一种或多种:扁平文件、关系数据库、实时数据库、Flash。意义:不要假设在你的系统中

19、,持久化只需一种机制;随着如今的系统变得越来越复杂,我们经常需要综合利用不同持久化机制。持久化存储方案内容:持久化数据的格式定义。意义:统一定义表、文件格式、Flash数据结构等内容。数据同步与复制策略内容:由于数据分布所引起的,包含数据分布、同步、复制等内容的重要设计决策。 意义:在数据分布的情况下,此节为必须。参考:在实际中,数据分布的策略绝大多数情况下不会超越下图所示的6种手段,更多内容可参考一线架构师实践指南一书。非复制方式复制方式非复制方式复制方式Centralized(集中)1JPartitioned(分区) k2/rSeparate=schema (独立模式),Subset(子集

20、),一Reorganized(重蛆) kJReplicated(复制)Schema相同Schema相同Schema不同关键质量属性的设计原理内容:因软件系统的不同,性能、安全性、可伸缩性、互操作性、可扩展性、可测试性、可重用性、可维护性等质量属性,都可以是本系统的关键质量属性。本文档的前面部分已经涉及了关键质量属性的设计决策,而本节更集中、更全面地描述这些架构设计决策,并且阐述“为什么”这么设计。意义:只描述架构设计决策本身,不利于读者理解“为什么”这么设计。而且,描述设计原理有利于在整个软件企业层面促进团队的架构设计能力。参考:关于描述“为什么”这么设计,目标场景-决策表是此方面的卓越工具。

21、下图为示例,更多内容可参考一线架构师实践指南一书。目标决策性能,客户端,重复请求Jtiffij Web服务器请求 数多负裁压;t*代理服务器客户端,重复请求贝回,贝回生成谡辑 重复执行Ttnil静态化客户请求,来自不同I凯 页面跨网络传 递慢内容分赏网络,客户端,大量请求图片资源,阮b服务器 JE力大客户端,大量请求图片资源? Web服务器 无法专门优化图片服务器,程序,大量申请数据:嗷宝W.玉力大程序,申请不同数据,DBMS馥存低效数据库拆分(环境:部署多个DBMS实例)程序,更新数据:数据复司尹甫大数据库读写分离篇二:软件开发文档范围本指南用于指导软件开发者为XX开发软件项目的过程,通过规

22、范软件项目承担 单位的开发过程达到提高软件质量,降低维护成本的目的。开发者应根据本指南 进行软件开发和编制软件开发文档。本指南是对软件项目承担单位的基本要求。 在本指南的附录A至E中提供了文档的编写模板供开发者参考,在进行具体软件 开发时,开发者可根据实际情况采编写,但必须提供双方约定的文档,文档中约 定的内容必须描述清楚。总体要求2.1总体功能要求网络应用环境以Internet/Intranet技术为核心。开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。软件系统的数据库应依照XX信息化数据库建设规范进行设计和建设。本指南中没有规定开发者采用何种具体的软件工程开发方法,开发者

23、可根据项目 具体特点、自身擅长来选择采用面向过程的方法、面向对象的方法或面向数据的 方法,但建议开发商使用面向对象软件工程的方法,如:采用目前被广泛使用的 RUP(Rational Unified Process )方法来进行分析、设计和开发。2.2软件开发平台要求开发者开发的软件必须能够在XX规定的软件平台上正常运行。目前软件平台为: 数据库管理系统:Oracle 9i以上版本中间件(应用服务器)系统:IBM WebSphereOA系统:Lotus Domino/Notes网络架构:完全支持TCP/IP协议开发工具或技术体系:为保证软件的上下兼容性,开发者应选择比较通用的开发工具的较新版本进

24、行开 发,如 Microsoft Visual Studio.Net,Borland Delphi, C+ Builder,或 J2EE(Java2 P1atform Enterprise Edition)等。2.3软件项目的开发实施过程管理要求2.3.1软件项目实施过程总体要求(一)开发者提交软件开发工作大纲,交通局组织专家组对工作大纲进行评审, 并提出整改意见。(二)通过评审后,开发者根据整改意见完善工作大纲,经过交通局认可后组织 项目组进行软件开发。软件开发工作按照需求分析、概要设计、详细设计、编码、 测试等几个阶段进行,在开发过程中,开发者需分阶段提交相关文档。(三)在软件开发工作完成

25、后,开发者应向交通局提交完整的软件文档,交通局 组织验收组对软件进行验收审查。2.3.2软件项目实施变更要求在开发过程中,需求或设计不可避免地需要发生变更,相关变更必须经过交通局 书面同意方可进行。在需求或设计发生变更时,需要对原有文档进行修改,并提 供完整的变更记录,以使变更处于可控制的状态。变更单如下表所示:表2-1变更单需求变更申请申请变更的需求文档输入名称,版本,日期等信息变更的内客及其理由评估需求变更将对项目造成的影响申请人签字变更申请的审批意见项目经理签字审批意见:签字日期客户签字(合同项目)审批意见:签字日期更改需求文档变更后的需求文档输入名称,版本,完成日期等信息更改人签字重新

26、评审需求文档评审意见需求评审小组签字签字日期变更结束项目经理签字签字日期2.3.3软件项目实施里程碑控制交通局将分四个阶段进行把关,召开专家审查会。(一)需求分析(结合原型进行审查)确认;(二)概要设计+数据库设计;(三)预验收(试运行后);(四)正式验收(推广使用后)。软件开发合同签订以后,项目承担单位即可组织项目组进行软件开发工作。软件开发必须 严格按照软件工程的要求进行。开发过程包括开发者的活动和任务。此过程由软 件需求分析、概要设计、详细设计、编码、测试、验收、鉴定等活动组成。3.1软件的需求分析3.1.1需求分析首先,开发者和交通局应共同对交通局的应用需求作充分的调研,提交完整的需

27、求分析 报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于 实现的设计限制、属 性、外部接口。应当避免把设计或项目需求写入需求分析 报告中。它必须说明由软件获得的 结果,而不是获得这些结果的手段。软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子; 用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的 精确和有效的方法。比如用统一建模语言(UML)来描述需求。编写需求分析报告的要求无歧义性对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用 时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。完整性需求分析报告应

28、该包括全部有意义的需求,无论是关系到功能的、性能的、设计 约束的、还是关系到外部接口方面的需求;对所有可能出现的输入数据的响应予 以定义,要对合法和非合法的输入值的响应做出规定;填写全部插图、表、图示 标记等;定义全部术语和度量单位。可验证性需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来 检查软件产品是否满足需求。一致性在需求分析报告中的各个需求的描述不能互相矛盾。可修改性需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需 求不能在需求分析报告中出现多次。可追踪性每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证 每一个需求。运行

29、和维护阶段的可使用性需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来 源和目的。3.1.2需求分析报告的编制者需求分析报告应由交通局和开发者双方共同完成。其中:交通局负责根据实际需 要提出希望软件实现的功能;软件开发者根据交通局提出的性能需求,结合软件 开发编写需求分析。3.1.3需求报告评审在软件需求分析工作完成后,软件开发者应向交通局提交软件需求分析报告。 交通局组织有关人员对需求进行评审,以决定软件需求是否完善和恰当。评审完 成后,就可以进入软件的设计阶段。3.1.4需求报告格式软件需求分析报告需按一定的格式进行编写,具体的软件需求分析报告 文档编写模板请见附录A。

30、3.2软件的概要设计3.2.1概要设计在交通局和开发者双方认可的需求分析报告基础上,开发者进行下一一步的 工作。首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要 对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块 划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软 件的详细设计提供基础。3.2.2编写概要设计的要求一致性概要设计的要求应该与需求分析报告所描述的需求一致。同时,概要设计的各项 要求之间也应该一致。合理性概要设计所提出的设计方法和标准应该是合理的、恰当的。可追踪性对概要设计所提出的各项要求应该可以得到它的清晰的源流,即在需求分

31、析报告 客户有明确的需求描述。可行性根据概要设计进行详细设计、操作和维护应该是可行的。3.2.3概要设计报告的编写者概要设计报告由开发者根据需求分析报告的要求进行编写。3.2.4概要设计和需求分析、详细设计之间的关系和区别需求分析不涉及具体的技术实现,而概要设计注重于从宏观上和框架上来描述 采用何种技术手段、方法来实现这些需求。详细设计相对概要设计更注重于微观 上和框架内的设计,是编码的依据。概要设计是指导详细设计的依据。3.2.5概要设计的评审在软件概要设计工作完成后,软件开发者应向交通提交软件系统概要设计报 告。在交通局对概要设计报告评审通过后,即可进入详细设计阶段。3.2.6概要设计格式

32、软件系统概要设计报告需按一定的格式进行编写,具体的软件系统概要设 计报告文档编写模板请见附录B。3.3软件的详细设计3.3.1详细设计在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描 述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需 要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便 进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够 详细,能够根据详细设计报告进行编码。3.3.2特例如果软件系统比较简单,层次较少,可以不必进行专门的详细设计,而和概要设 计结合起来。3.3.3详细设计的要求一致性详细设计的要

33、求应该与需求分析报告所描述的需求、与概要设计一致。同时,详 细设计的各项要求之间也应该是一致的。合理性详细设计所提出的设计方法和标准应该是合理的、恰当的。可追踪性对详细设计所提出的各项要求应该可以得到它的清晰的源流,即可在需求分析报 告、概要设计报告中有明确的需求描述。可行性根据详细设计进行编码、测试、操作和维护应该是可行的。3.3.4数据库设计如果软件产品需要使用到数据库,软件的详细设计应包括对数据库的设计。数据 库设计应在软件的需求分析、概要设计完成之后、详细设计的其它工作之前进行。 在进行数据库设计时,应当按照交通局制定的XX信息化数据库建设规范要 求进行。3.3.5详细设计的评审在软件

34、详细设计完成后,软件开发者应向交通局提交软件系统数据库设计报告 和软件系统详细设计报告。在交通局对软件系统数据库设计报告、软 件系统详细设计报告评审通过后,即可进入软件编码阶段。3.3.6详细设计格式软件系统详细设计报告、软件系统数据库设计报告需按一定的格式进行 编写,具体的软件系统详细设计报告文档编写模板和软件系统数据库设计 报告文档编写模板请见附录C、附录D。3.4软件的编码3.4.1软件编码在软件编码阶段,开发者根据软件系统详细设计报告中对数据结构、算法分 析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的 功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求

35、。3.4.2软件编码的要求模块化编码代码可读性可维护性模块接口标准化界面风格统一注释的应用3.4.3编码的评审为了尽早发现软件中的障碍,提高软件产品的质量,开发者在编码的过程中应该 强调代码评审工作。将代码评审报告作为文档的一部分,提交给交通局。3.4.4编程规范及要求为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。 主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、 编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热 键定义等。其中数据库部分应遵守XX信息化数据库建设规范的要求。在软件编码的同时应进行单元测试。3.5软件的测试3

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论