在软件开发中,需求分析阶段产生的主要文档是软件需求规格说明书。
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。
软件开发开发平台:
软件开发平台源于繁琐的实践开发过程中。开发人员在实践中将常用的函数、类、抽象、接口等进行总结、封装,成为了可以重复使用的“中间件”,而随着“中间件”的成熟和通用,功能更强大、更能满足企业级客户需求的——软件开发平台应运而生。
平台是一段时间内科研成果的汇聚,也是阶段性平台期的标志,为行业进入新的研发领域提供了基础。由于平台对企业核心竞争力的提升非常明显,目前国内的管理软件市场,软件开发平台的应用已经成为一种趋势。
由于开发环境、开发人员、功能定位、行业背景等的不同,不同品牌的平台存在较大差别。
很多企业已经建立了许多庞大的计算机管理系统,而且将不断地推出新的系统。满足经营的需求须不断维护、改造计算机系统,但同时又要不影响现行生产,所以必须建立一整套机制来评价、控制和完成对系统的维护。在软件维护过程中,提出程序与文档合一的概念在软件开发的同时建立动态文档。
程序与文档合一概念的提出
一、目前软件的状况
程序与文档的形式分离,不仅是用各自独立的形式存放,而且使用不同的工具在不同的时间里书写和检索。维护程序时不能方便地得到文档的帮助,不能同步修改文档。
程序与文档的内容分离,由于程序与文档采用不同的描述,既有计算机语言也有自然语言。维护过程中不能及时、一致地更新文档或程序,使文档不能准确地描述程序而几乎成为废纸甚至带来负面价值。
软件开发与维护的分离,绝大多数软件在设计、开发时不太考虑以后可能的修改,加大了软件维护的难度,而且使维护容易引入新的错误。
这些分离也表现在设计、开发的不同阶段的文档之间的不相容性,例如:需求分析说明书是纸上的东西,在概要设计阶段不能很好地继承、利用需求分析说明书,设计、编制概要设计时必须从零开始,需要重新分析、理解需求分析,这种思维上的脱节,不仅延缓开发进度、加重设计人员的负担,而且由于理解上的不同导致不同阶段描述的对象有许多不相容情况。这些分离使得文档在系统的设计、开发、维护中的作用下降,这也是很多软件人员不愿意编写文档的主要原因。
二、程序与文档合一的概念提出
怎样才是好的文档系统呢?应当具备以下属性:
1 能够准确地描述软件、并且简单易懂;
2 能够迅速错误定位、影响分析、修正设计;
3 能够提高软件维护质量;
4 能够方便程序修改时理解程序。
为此提出了程序与文档合一的概念。这概念使软件成为真正意义上的软件:程序+文档,程序就是文档,文档集成在程序中。它要求在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文档的支持;它要求软件人员在设计、开发过程中要考虑维护问题、文档问题;它要求程序与文档存储在同一位置、同一系统中;它要求使用相同工具进行程序与文档的书写、检索;它要求在编写和维护程序的同时形成文档,在书写文档时编写、维护程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统的维护阶段,它贯穿软件的生命周期。
动态文档系统是建立在程序与文档合一的概念基础上的、文档与程序一致的、简单易懂的联机文档系统。它包括构件说明与数据描述、对构件与构件之间、构件与数据之间的关系进行的描述。动态文档系统是提高了文档的可用性、易用性和连贯性,使文档更加有效,是解决维护问题的有效途径。
动态文档系统问题分析
需要解决的问题是:软件文档的内容划分与获取、文档的存储与维护、文档的检索、软件文档的生成打印。
一、软件文档的内容划分成:语义文档、结构文档、过程文档
语义文档是对软件的功能、概念、总体设计、流程、规约等用自然语言的描述,是软件人员根据规范在使用CASE工具编写并填入程序的文档,它也是为更全面的解释文档而灵活加入的额外信息。
结构文档是在软件设计工具、开发环境中对象的属性、构件间接口、构件间引用关系、软件的结构等的描述。利用词法、语法分析程序对整个系统的对象、构件进行识别、分析,获取上述描述并形成表格文件。
过程文档是对软件的设计、编码、维护过程中形成的过程描述和程序注释,如设计目的、设计人、时间等说明,利用开发环境对软件人员在设计、开发、维护过程中 *** 作的记录形成 *** 作跟踪。
二、程序与文档的统一存储与维护
根据程序与文档合一的概念和文档从程序中提取的要求,文档必须存放在程序中,甚至文档固有的源代码中。结构如此的程序源代码的存储必须采用一种新技术—对象仓储(Repository)技术,而不能采用流式文件,这样才能使程序与文档既结合又分离。程序与文档结合在一个对象仓储中,结合在统一的开发环境中;结合在修改代码时可以同时修改文档、修改文档时可以同时人工检查和修改程序,并在多次文档生成而不会丢失手工输入的文档。程序与文档应当分别存放在对象仓储中的不同表或不同的字段中,在编译与运行时分离。
三、文档的检索
对单个对象、构件文档的检索方式是若于文档存放在一个对象仓储中,它可以随源代码一起检索和维护。这种检索给分析和维护单个构件、对象提供文档支持。建立多种视图、编写程序对整个系统进行文档的检索和获取,完成对整个系统的分析,对整个系统进行实时文档支持。这将在例子中较详细的描述。
四、软件文档的生成打印
编写程序检索和获取整个系统的文档,按照国家软件标准的文档式样建立文档模板并将按模板生成文档和利用文字处理软件强大的功能进行创建、编辑文档并打印。
根据上述分析,文档分布和获取对开发环境提出了要求:开发环境应该是设计工具、开发工具的集成,应该基于CASE技术、对象仓储技术、构件技术、OLE技术。基于CASE技术的开发环境;设计、开发、维护过程中形成的文档并植入程序代码中,使文档成为程序的一部分。基于对象仓储技术的开发环境,将文档与程序统一存储在对象仓储中方便检索。基于构件技术的开发环境,便于识别、获取构件,分析、形成结构文档和过程文档。基于OLE等技术使文档可以很好地利用Word等文档处理软件。
动态文档系统的一个应用实例
广州电信科技开发有限公司自行设计、开发的名为九七系统的庞大的电信管理计算机系统自1997年投产验收后,将长期用于生产,维护工作非常重要和紧迫。这为动态文档系统提供了需求和试验场所。在长期维护的过程中,体会到好文档的重要性并提出了程序文档合一的概念,这为动态文档系统提供了理论基础。九七系统是使用Uniface开发环境。这种开发环境采用了CASE技术、对象仓储技术、构件技术,这为动态文档系统提供了技术支撑。
一、广州电信动态文档系统的建立步骤
1 理解Uniface、Oracle工具的开发环境,规划语义文档在各级对象中存放的表与字段,并根据工具的特性制定填写的规则。
2 寻找结构文档、过程文档在Uniface、Oracle工具中存放的表与字段。
3 在设计、开发和维护软件的过程中对这些表或字段按照规则进行填写。
4 建立一整套模板使文档结构与信息源建立映像,包括:数据字典模板、设计文档模板、结构文档模板、开发过程文档模板等。
5 将这些模板组装成文档系统,并使它独立于开发目标系统。
广州电信动态文档系统的组成可以分为文档查询、维护记录查询、文档生成。
文档查询不仅包括构件说明与数据描述,而且包括对构件与数据之间的关系的描述,是实时的联机文档查询系统。维护记录查询是对软件维护过程中的各个环节进程进行记录与追踪,用于规范维护工作。它包括问题报告、问题分析、错误定位、维护设计、维护执行、确认测试、维护评审、维护提交、问题跟踪等。文档生成则是根据需要实时生成软件设计说明书。
二、程序与文档合一概念与动态文档系统的意义
广州电信动态文档系统的基本任务是辅助错误定位、维护影响分析、记录维护进程、生成文档。使用Uniface的开发环境开发的,可以安装在用Uniface开发的不同的应用系统中。该系统已经在九七计费系统的维护中发挥重要作用。
它推崇的程序与文档合一的概念,提出文档就是程序,程序就是文档的思路,文档融合在程序中的构思并已实现,这一概念指导了软件人员进行有效地工作。合一的概念贯穿了设计、开发、维护整个软件周期,保证了文档之间的继承性和一致性,在设计、开发每一阶段是继承前阶段的程序和文档的结果。这样极大地消除了程序与文档、文档与文档之间的不一致性,加快了软件设计进度,提高了软件开发、维护的质量。它是软件工程在具体应用中的一种尝试,它从程序文档合一的角度出发,进一步规范软件设计、开发、维护。程序文档合一的概念为软件开发环境发展提供了一种思路;设计更好的对象仓储来满足开发、维护人员对程序文档合一的概念的需求。
动态文档系统的局限与发展
广州电信动态文档系统有很大的局限性,只能用于Uniface或Oracle开发的系统中。目前的广州电信动态文档系统的构件的识别与获取主要依赖开发工具提供的构件和构件的特征进行识别的。这种动态文档系统难以在一些3GL工具—未使用对象仓储技术、构件技术开发的软件—中实现程序与文档的合一与分离。大型软件系统的环境是复杂的,往往采用了多种开发环境,如何对其他开发环境进行支持还要进行技术探讨和实践上的摸索。
另一个局限问题是目前的动态文档系统描述的是程序文档,其主要在编码、维护的过程中进行建设,系统进入维护阶段使用。如何使动态文档系统不仅对软件维护阶段进行支持,而且对软件的设计、开发阶段进行更多的支持?一种可能的解决途径是将软件复用技术拓宽到包括文档复用,包括程序复用、程序文档复用和设计文档复用,而且将动态文档系统建立在基于这种软件复用系统之上。
业务分析师的首要职责是获取、分析、记录和验证项目干系人的需要。业务分析师在客户和开发干系人人之间架起沟通的桥梁。
业务分析师是一种项目角色,而不是一定是个头衔。业务分析师还有一些别名,例如需求分析师、系统分析师、需求工程师、需求经理、应用分析师、业务系统分析师、IT业务分析师或者简单称为分析师。
一、业务分析师的职责
1、定义业务需求,出具一份愿景和范围文档
2、规划需求方法,分析师要制定获取、分析、记录、验证和管理需求方面的计划
3、确定项目干系人和用户类别
4、获取需求,积极主动的分析师能够熟练使用各类信息收集技巧,帮助用户阐明自己需要哪些系统功能,满足其业务目标。
5、分析需求
6、记录需求,分析师在记录需求时要做到结构清晰,有条理,能够清楚描述将用于解决客户痛点的解决方案。
6、沟通需求
7、主导需求验证
8、帮助推动需求优先级排序
9、管理需求
二、业务分析师需具备的技巧
1、倾听技巧
2、访谈提问技巧
3、才思敏捷
4、分析技巧,高效率的业务分析师要有高、低两级抽象思维能力。
5、系统思考的技巧,全局观。
6、学习技巧,能够快速吸收新的需求方法或者应用领域内的新知识。
7、引导技巧,能够引导需求讨论和获取研讨会
8、领导力技巧
9、观察技巧
10、沟通技巧
11、组织技巧,将信息碎片构建成一个整体
12、建模技巧
13、人际技巧,分析师必须有能力让彼此有竞争关系的利益相关人以团队身份协同工作。
13、创造性
三、业务分析师需具备的知识
业务、行业和组织方面的知识是高效率业务分析师最宝贵的财富。
软件需求文档格式的标准写法\x0d\1.引言\x0d\ \x0d\1.1 编写目的\x0d\ \x0d\· 阐明开发本软件的目的;\x0d\ \x0d\1.2 项目背景\x0d\ \x0d\· 标识待开发软件产品的名称、代码;\x0d\ \x0d\· 列出本项目的任务提出者、项目负责人、系统分析员、系统设计员、程序设计员、程序员、资料员以及与本项目开展工作直接有关的人员和用户;\x0d\ \x0d\· 说明该软件产品与其他有关软件产品的相互关系。\x0d\ \x0d\1.3 术语说明\x0d\ \x0d\列出本文档中所用到的专门术语的定义和英文缩写词的原文。\x0d\ \x0d\1.4 参考资料(可有可无)\x0d\ \x0d\ 列举编写软件需求规格说明时所参考的资料,包括项目经核准的计划任务书、合\x0d\ \x0d\同、引用的标准和规范、项目开发计划、需求规格说明、使用实例文档,以及相关产品\x0d\ \x0d\的软件需求规格说明。\x0d\ \x0d\ 在这里应该给出详细的信息,包括标题、作者、版本号、发表日期、出版单位或资\x0d\ \x0d\料来源。\x0d\ \x0d\2.项目概述\x0d\ \x0d\ 2.1 待开发软件的一般描述\x0d\ \x0d\ 描述待开发软件的背景,所应达到的目标,以及市场前景等。\x0d\ \x0d\ 2.2 待开发软件的功能\x0d\ \x0d\ 简述待开发软件所具有的主要功能。为了帮助每个读者易于理解,可以使用列表或\x0d\ \x0d\图形的方法进行描述。使用图形表示,可以采用:\x0d\ \x0d\ · 顶层数据流图;\x0d\ \x0d\ · 用例UseCase图;\x0d\ \x0d\ · 系统流程图;\x0d\ \x0d\ · 层次方框图。\x0d\ \x0d\ 2.3 用户特征和水平(是哪类人使用)\x0d\ \x0d\ 描述最终用户应具有的受教育水平、工作经验及技术专长。\x0d\ \x0d\ 2.4 运行环境\x0d\ \x0d\ 描述软件的运行环境,包括硬件平台、硬件要求、 *** 作系统和版本,以及其他的软\x0d\ \x0d\件或与其共存的应用程序等。\x0d\ \x0d\ 2.5 条件与限制\x0d\ \x0d\ 给出影响开发人员在设计软件时的约束条款,例如:\x0d\ \x0d\ · 必须使用或避免使用的特定技术、工具、编程语言和数据库;\x0d\ \x0d\ · 硬件限制;\x0d\ \x0d\ · 所要求的开发规范或标准。\x0d\ \x0d\3.功能需求\x0d\ \x0d\ 3.1 功能划分\x0d\ \x0d\ 列举出所开发的软件能实现的全部功能,可采用文字、图表或数学公式等多种方法\x0d\ \x0d\进行描述。\x0d\ \x0d\3.2 功能描述\x0d\ \x0d\对各个功能进行详细的描述。\x0d\ \x0d\4.外部接口需求\x0d\ \x0d\4.1 用户界面\x0d\ \x0d\对用户希望该软件所具有的界面特征进行描述。以下是可能要包括的一些特征:\x0d\ \x0d\· 将要采用的图形用户界面标准或产品系列的风格;\x0d\ \x0d\· 屏幕布局;\x0d\ \x0d\· 菜单布局;\x0d\ \x0d\· 输入输出格式;\x0d\ \x0d\· 错误信息显示格式;\x0d\ \x0d\建议采用RAD开发工具, 比如Visio,构造用户界面。\x0d\ \x0d\4.2 硬件接口\x0d\ \x0d\ 描述系统中软件产品和硬件设备每一接口的特征,以及硬件接口支持的设备、软件与硬件接口之间,以及硬件接口与支持设备之间的约定,包括交流的数据和控制信息的性质以及所使用的通信协议。\x0d\ \x0d\4.3 软件接口\x0d\ \x0d\ 描述该软件产品与其有关软件的接口关系,并指出这些外部软件或组件的名字和版本号。比如运行在什么 *** 作系统上,访问何种类型的数据库,使用什么数据库连接组件,和什么商业软件共享数据等。\x0d\ \x0d\4.4 通信接口\x0d\ \x0d\ 描述和本软件产品相关的各种通信需求,包括电子邮件、Web浏览器、网络通信协议等。\x0d\ \x0d\4.5 故障处理\x0d\ \x0d\ 对可能的软件、硬件故障以及对各项性能而言所产生的后果进行处理。\x0d\ \x0d\5.性能需求\x0d\ \x0d\5.1 数据精确度\x0d\ \x0d\输出结果的精度。\x0d\ \x0d\ 5.2 时间特性\x0d\ \x0d\ 时间特性可包括如下几方面\x0d\ \x0d\ ·响应时间;\x0d\ \x0d\ ·更新处理时间;\x0d\ \x0d\ ·数据转换与传输时间;\x0d\ \x0d\ ·运行时间等。\x0d\ \x0d\ 5.3 适应性\x0d\ \x0d\ 在 *** 作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,软件的适应能力。\x0d\ \x0d\6.其他需求\x0d\ \x0d\列出在本文的其他部分未出现的需求。如果不需要增加其他需求,可省略这一部分。\x0d\ \x0d\7.数据描述\x0d\ \x0d\ 7.1 静态数据\x0d\ \x0d\ 7.2 动态数据\x0d\ \x0d\包括输入数据和输出数据。\x0d\ \x0d\ 7.3 数据库描述\x0d\ \x0d\ 给出使用数据库的名称和类型。\x0d\ \x0d\ 7.4 数据字典\x0d\ \x0d\对于数据流图、层次方框图中出现的所有图形元素在数据字典中都要作为一个词条加以定义,使得每一个图形元素都有唯一的一个清晰明确的解释。\x0d\ \x0d\数据字典中所有的定义必须是严密的、精确的,不可有二意性。\x0d\ \x0d\ 7.5 数据采集\x0d\ \x0d\ ·列出提供输入数据的机构、设备和人员\x0d\ \x0d\ ·列出数据输入的手段、介质和设备;\x0d\ \x0d\ ·列出数据生成的方法、介质和设备。\x0d\ \x0d\8.附录\x0d\ \x0d\ 包括分析模型,待定问题图表等。
以上就是关于在软件开发中,需求分析阶段产生的主要文档是全部的内容,包括:在软件开发中,需求分析阶段产生的主要文档是、寻找一篇软件文档需求分析的文章,要英汉对照。各位大虾请速度帮忙谢谢啊。。。。、《软件需求》-业务分析师(BA)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)