软件开发的需求分析说明书模板怎么去做及对应的模板

 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
软件开发需求分析的20条法则
下载积分:1000
内容提示:
文档格式:DOCX|
浏览次数:0|
上传日期: 18:46:01|
文档星级:
该用户还上传了这些文档
软件开发需求分析的20条法则.DOCX
官方公共微信软件开发的需求分析怎么去做及对应的模板_百度知道
软件开发的需求分析怎么去做及对应的模板
学习bootstrap 吧
其他类似问题
按默认排序
其他1条回答
你需要的话可以给你,有相应模板,我只写过需求分析报告,再详谈细节,再沟通流程先了解软件的用途
需求分析的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁linxi1117 的BLOG
用户名:linxi1117
文章数:14
评论数:22
访问量:67902
注册日期:
[匿名]&script&alert..:
[匿名]qiang:
[匿名]&script&alert..:
51CTO推荐博文
软件需求分析文档模版(转载自国家计算机标准和文件模板)
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
&
软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。
&
需求分析可分为需求提出、需求描述及需求评审三个阶段。
&
需求提出主要集中于描述系统目的。需求提出和分析仅仅集中在使用者对系统的观点上。用户、开发人员和用户确定一个问题领域,并定义一个描述该问题的系统。这样的定义称作系统规格说明,并且它在用户和开发人员之间充当合同。
&
在问题分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。
&
在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。
&
软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。编制软件需求说明书的内容要求如下:1 引言1.1编写目的  说明编写这份软件需求说明书的目的,指出预期的读者。1.2背景   说明:   a.待开发的软件系统的名称;  b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;  C.该软件系统同其他系统或其他机构的基本的相互来往关系。 1.3定义  列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料   列出用得着的参考资料,如:  a.本项目的经核准的计划任务书或合同、上级机关的批文;  b.属于本项目的其他已发表的文件;  c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2 任务概述 2.1目标   叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|2.2用户的特点   列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束2.3假定和约束  列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。3 需求规定 3.1对功能的规定  用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。 3.2对性能的规定3.2.1精度   说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。3.2.2时间特性要求   说明对于该软件的时间特性要求,如对:  a.响应时间;  b.更新处理时间;  c.数据的转换和传送时间;  d.解题时间; 等的要求。3.2.3灵活性   说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:  a.操作方式上的变化;  b.运行环境的变化;   c.同其他软件的接口的变化;  d.精度和有效时限的变化;   e.计划的变化或改进。   对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。3.3输人输出要求  解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。3.4数据管理能力要求   说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。 3.5故障处理要求  列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。3.6其他专门要求  如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。 4 运行环境规定 4.1设备   列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:  a.处理器型号及内存容量;  b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;  c.输入及输出设备的型号和数量,联机或脱机;   d.数据通信设备的型号和数量;  e.功能键及其他专用硬件4.2支持软件   列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。4.3 接口  说明该软件同其他软件之间的接口、数据通信协议等。4.4控制   说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
了这篇文章
类别:未分类┆阅读(0)┆评论(0)
20:44:04 20:44:35 15:15:56格式:doc&&&
贡献者:Gapawatha
上传时间: 12:30
此文档归属以下专题
暂无相关专题
-------------
新增文件夹...
(多个标签用逗号分隔)
&软件项目技术需求分析(模板)
分享到:&&
下载本文档需要登录,并付出相应积分。()
文件大小:49.5KB
所需积分:& 2
&2006-, All rights reserved.考点3.1 需求分析和设计方法_第3章 系统开发和运行基础知识_华初网
所在位置:
第3章 系统开发和运行基础知识考点3.1 需求分析和设计方法
考什么?一、软件工程概述1.软件危机(1)主要表现:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件成本不断提高;软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。总之,可以将软件危机归结为成本、质量和生产率等问题。(2)产生原因:一方面是由于软件本身存在着复杂性;另一方面与软件开发所使用的方法和技术相关。2.软件工程(1)为了消除软件危机,通过认真研究解决软件危机的方法,人们认识到软件工程是使计算机软件走向科学的途径,逐渐形成了软件工程的概念,并开辟工程学的新兴领域,即软件工程学。(2)软件工程的3个要素: 方法:完成软件工程项目的技术手段; 工具:支持软件的开发、管理、文档生成; 过程:支持软件开发的各个环节的控制、管理。3.软件生命周期软件生存周期:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。(1)计划阶段:确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。软件计划的主要内容包括所采用的软件生命周期模型、开发人员的组织、系统解决方案、管理的目标与级别、所用的技术与工具,以及开发的进度、预算和资源分配。(2)分析阶段:分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明书和初步的用户手册。通过评审需求规格说明书,确保对用户需求达到共同的理解与认识。软件需求规格说明书明确地描述了软件的功能,列出软件必须满足的所有约束条件,并定义软件的输入和输出接口。(3)设计阶段:决定软件怎么做,设计人员依据软件需求规格说明书,确定软件的体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。(4)实现阶段:将所设计的各个模块编写成计算机可接受的程序代码与相关的文档,也就是实现源程序以及合适的注释。(5)测试阶段:在设计测试用例的基础上,测试软件的各个组成模块。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足软件需求规格说明书。(6)运行维护阶段:是软件过程的一个组成部分,应当在软件的设计和实现阶段充分考虑软件的可维护性。维护阶段需要测试是否正确地实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。4.软件开发模型(1)瀑布模型:将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。其优点是:可以规范化过程,有利于评审;缺点在于:过于理想,缺乏灵活性,容易产生需求偏差。(2)快速原型模型:第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。(3)演化模型:也是一种原型化开发,但与快速原型模型不同的是,快速原型模型在获取真实需求后,将抛弃原型。而演化模型则不然,它将在快速开发一个原型的基础上,逐步演化成最终的软件。(4)增量模型:软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。也就是说增量模型有利于快速开发软件。(5)螺旋模型:综合了瀑布模型和演化模型的优点,还增加了风险分析,特别适合于大型复杂的系统。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对风险进行识别和分析,螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。(6)喷泉模型:对软件复用和生存期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。“喷泉”一词本身体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。所谓无间隙是指在开发活动,即分析、设计和编码之间不存在明显的边界。5.软件开发方法(1)结构化软件开发方法(SASD):也称为面向功能的软件开发方法或面向数据流的软件开发方法。首先用结构化分析(SA)方法对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软件结构(变换型和事务型),使软件开发的成功率大大提高。结构化软件开发方法是采用结构化技术来完成软件的开发的各项任务,它把软件生命周期划分成若干个阶段,依次地完成每个阶段的任务,它与瀑布模型有很好的结合度,是与其最相适应的软件开发方法。(2)面向数据结构的软件开发方法:从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,从而可得到完整的程序结构图。有Jackson方法和Warnier方法。(3)面向对象的软件开发方法:随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(Object Modelling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。(4)基于构件化的开发方法:用预先建立的构件和模板,像“搭积木”一样进行建造。二、需求分析(1)任务:①确定软件系统的功能需求和非功能需求;②分析软件系统的数据要求;③导出系统的逻辑模型;④修正项目开发计划;⑤如有必要,可以开发一个原型。(2)主要工作:①需求获取――确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。②需求分析和综合――对问题进行分析,然后在此基础上整合出解决方案。③编写需求规格说明书――对已确定的需求进行文档化描述,该文档通常称“软件需求规格说明书”。④需求评审――评审需求分析的正确性、完整性和清晰性。(3)软件需求规格说明书:需求分析阶段的最后成果,是软件开发的重要文档之一。其作用有三:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。软件需求规格说明书的内容主要包括:概述、数据描述、功能描述、性能描述、参考文献、附录等。三、结构化分析方法结构化分析方法(Structured Analysis,SA)是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。SA方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明。1.数据流图(Data Flow Diagram,DFD)数据流图用来描述数据流从输入到输出的变换流程。它以图形的方式描绘数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能,所以是一种功能模型。DFD的基本元素如图3-1所示。(1)数据流:由一组固定成分的数据组成,表示数据的流向。(2)加工:描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。(3)数据存储:用来表示暂时存储的数据,每个数据存储都有一个名字。(4)外部实体:是指存在于软件系统之外的人员或组织。2.数据字典数据流图仅描述了系统的“分解”,但没有对图中各成分进行说明。数据词典就是用来定义数据流图中的各个成分的含义的。数据字典有4类条目,包括:数据流、数据项、数据存储和基本加工。3.加工逻辑的描述用来说明DFD中的数据加工的加工细节,表达“做什么”,而不是“怎样做”。描述工具有结构化语言、判定表和判定树。四.软件设计从技术角度上,软件设计分成体系结构设计、数据设计、接口设计、过程设计4方面的工作。从管理角度上,软件设计分为概要设计、详细设计两个阶段。1.软件设计的基本原理(1)模块化:将一个待开发的软件分解成若干个小的简单的部分――模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题“分而治之”的原则,模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。(2)抽象化:抽象是一种设计技术,抽出事物本质的共同特性而暂不考虑它的细节。(3)信息隐蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理,可以提高软件的可修改性、可测试性和可移植性。(4)模块独立:每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量度量标准有两个:模块间的耦合和模块的内聚度。模块独立性强必须做到高内聚低耦合。 耦合:模块之间联系的紧密程度,耦合度越高则模块的独立性越差。耦合度从低到高的次序依次是:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。 内聚:指模块内部各元素之间联系的紧密程度,内聚度越低模块的独立性越差。内聚度从低到高依次是:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。2.软件结构设计的优化原则 改进软件结构提高模块独立性,提高模块的内聚度,降低模块间的耦合度; 模块规则不应过大,最好编写在一页纸内(不超过60行语句),模块规模过小,接口复杂; 深度、宽度、扇出和扇入应适中; 模块的作用域应该在控制域之内; 力争降低模块接口的复杂程度; 设计单入口、单出口的模块; 模块功能应该可以预测。3.结构化设计方法结构化设计方法(SD)是一种面向数据流的设计方法,它可以与SA方法链接。(1)信息流的类型在需求分析阶段,用SA方法产生了数据流图。面向数据流的设计能方便地将DFD转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信息流大体上可以分为两种类型,一种是变换流,另一种是事务流。 变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式,离开系统。 事务流:当信息沿输入通路到达一个处理,这个处理根据输入数据的类型从若干个动作序列中选择出一个来执行。在一个事务流中,事务中心接收数据,分析每个事务以确定它的类型,根据事务类型选取一条活动通路。(2)设计过程① 精化DFD;② 确定DFD类型;③ 分解上层模块,设计中下层模块结构;④ 根据优化准则对软件结构求精;⑤ 描述模块功能、接口及全局数据结构;⑥ 复查,如果有错,转向②修改完善,否则进入详细设计阶段。4.软件详细设计详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。(1)结构化程序设计方法结构化程序设计的基本要点是: 采用自顶向下、逐步求精的程序设计方法; 使用顺序、选择、重复三种基本控制结构构造程序; 主程序员组的组织形式。(2)处理过程设计处理过程设计的关键是用一种合适的表达方法来描述每个模块的执行过程。这种表示方法应该简明、精确,并因此能直接导出用编程语言表示的程序。 程序流程图:流程图即程序框图,是历史最久、流行最广的一种图形表示方法。程序流程图包括3种基本成分:加工步骤,用方框表示;逻辑条件,用菱形表示;控制流,用箭头表示。图形表示的优点是直观、形象、容易理解,缺点是表示控制的箭头过于灵活,以及只描述执行过程而不能描述有关数据。 盒图(NS图):在NS图中,每个处理步骤用一个盒子表示,盒子可以嵌套。盒子只能从上头进入,从下头走出,除此之外别无其他出入口,所以盒图限制了随意的控制转移,保证了程序的良好结构。 形式语言:用来描述模块具体算法的非正式而比较灵活的语言。形式语言的优点是接近自然语言,所以易于理解;其次,它可以作为注释嵌套在程序中成为内部文档,提高程序的自我描述性;第三,因为是语言形式,易于被计算机处理,可用行编辑程序或字处理系统对形式语言进行编辑修改。 决策树:决策树是一种图形工具,适合于描述加工中具有多个策略、每个策略和若干条件有关的逻辑功能。 决策表:决策表是一种图形工具,呈表形。决策表将比较复杂的决策问题简洁地描述出来。(3)面向数据结构设计――Jackson方法面向数据结构设计是以数据结构作为设计的基础,它根据输入输出数据结构导出程序的结构,适用于规模不大的数据处理系统,Jackson方法是一种典型的面向数据结构的设计方法。Jackson图如图3-2所示。(4)用户界面设计用户界面设计是系统与用户之间的接口,也是控制和选择信息输入输出的主要途径。用户界面设计应坚持友好、简便、实用、易于操作的原则。界面设计包括菜单方式、会话方式、操作提示方式,以及操作权限管理方式等。五、面向对象分析与设计1.面向对象设计基本概念(1)对象:一组属性以及这组属性上的专用操作的封装体,通常由对象名、属性和操作这3个部分组成。属性表示该对象的状态,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装目的是使对象的定义和实现分开。(2)类:一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(Instance)。(3)继承:在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类可以有多个子类,这些子类都是父类的特例。父类描述了这些子类的公共属性的操作,子类中还可以定义它自己的属性和操作。一个子类只有唯一的一个父类,这种继承称为单一继承。一个子类有多个父类,可以从多个父类中继承特性,这种继承称为多重继承。(4)消息:对象间通信的手段、一个对象通过向另一对象发送消息来请求其服务。消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。消息只告诉接收对象需要完成什么操作,但并不能指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法来完成所需的操作。(5)多态性:同一个操作作用不同的对象可以有不同的解释,产生不同的执行结果。(6)继承性是面向对象程序设计语言不同于其他语言的主要特点,是否建立了丰富的类库是衡量一个面向对象程序设计语言成熟与否的重要标志之一。(7)在面向对象的软件工程中,一个组件(component)包含了一些协作的类的集合。2.面向对象分析与设计的基本概念面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统。面向对象分析(Object-Oriented Analysis,OOA)的目标是建立待开发软件系统的模型,面向对象设计(Object-Oriented Design,OOD)的目标是定义系统构造蓝图,设计分析模型和实现相应源代码,在目标代码环境中这种源代码可被执行。统一建模语言(UML)是面向对象软件的标准化建模语言。UML由3个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的一些公共机制。UML的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具代表性的成分的抽象,关系把事物结合在一起,图聚集了相关的事物。 事物:包括结构事物、行为事物、分组事物和注释事物。 关系:包括依赖、关联、泛化和实现。 图:包括类图、对象图、用例图、序列图、协作图、状态图、活动图、构件图和部署图。怎么考【试题3-1】 2009 年11 月真题5面向对象开发方法的基本思想是尽可能按照人类认识客观世界的方法来分析和解决问题, (5) 方法不属于面向对象方法。A.Booch B.Coad C.OMT D.Jackson解 析:20世纪80年代以后相继出现了多种面向对象分析和设计的方法,较为流行的有:Booch方法、Coad和Yourdon方法、Jocobson方法等。对象建模技术(OMT)是由J. Rumbaugh等人提出的一种面向对象开发方法,OMT定义了三种模型来描述系统,它们分别是对象模型、动态模型和功能模型。Jackson是面向数据结构的设计方法,不属于面向对象方法。【答 案:(5)D】【试题3-2】 2008 年5 月真题4(4) 是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。A. 结构化开发方法 B. Jackson系统开发方法 C. Booch方法 D. UML(统一建模语言)解 析:软件开发方法主要有结构化开发方法、面向数据结构的软件开发方法和面向对象的软件开发方法。结构化开发方法,也称为面向功能的软件开发方法或面向数据流的软件开发方法,是应用较为广泛的一种软件开发方法。Jackson系统开发方法是一种典型的面向数据结构的分析和设计方法。Booch方法是一种面向对象的软件开发方法。UML是20世纪90年代出现的的一种建模标准语言,是目前可视化建模语言事实上的工业标准。【答 案:(4) A】【试题3-3】 2008 年5 月真题5采用UML进行软件设计时,可用 (5) 关系表示两类事物之间存在的特殊/一般关系,用聚焦关系表示事物之间存在的整体/部分关系。A. 依赖 B. 聚焦 C. 泛化 D. 实现解 析:UML的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具代表性的成分的抽象,关系把事物结合在一起,图聚集了相关的事物。关系包括依赖、关联、泛化和实现。泛化关系是一种一般/特殊关系,利用这种关系,子类可以共享父类的结构和行为。【答 案:(5)C】【试题3-4】 2008 年5 月真题7下列叙述中错误的是 (7) 。A. 面向对象程序设计语言可支持过程化的程序设计B. 给定算法的时间复杂性与实现该算法所采用的程序设计语言无关C. 与汇编语言相比,采用脚本语言编程可获得更高的运行效率D. 面向对象程序设计语言不支持对一个对象的成员变量进行直接访问解 析:脚本语言是介于HTML和C++、Java等编程语言之间的程序设计语言。它是一种解释性语言,一般需要解释器才能运行。汇编语言是符号化的机器语言,一般情况下,用汇编语言编写的程序比高级语言效率更高。【答 案:(7)C】【试题3-5】 2007 年11 月真题6内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求 (6) 。A. 高内聚,高耦合 B. 高内聚,低耦合 C. 低内聚,高耦合 D. 低内聚,低耦合解 析:衡量模块独立度的标准是其耦合性和内聚性。耦合性是指软件系统结构中各模块间相互联系的紧密程度的一种度量,模块之间的联系聚合越紧密,其耦合性就越强,模块的独立性就越差。内聚性是一个模块内各个元素彼此结合的紧密程度的度量,一个模块内各个元素的联系越紧密,其内聚性就越高,模块的独立性就越好。因此提高内聚性,降低模块之间的耦合性是模块设计应该遵循的最重要的两个原则。【答 案:(6)B】【试题3-6】 2007 年5 月真题5结构化开发方法中,数据流图是 (5) 阶段产生的成果。A. 需求分析 B. 总体设计 C. 详细设计 D. 程序编码解 析:数据流图是结构化分析方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。而结构化分析是一种面向数据流的需求分析方法,可见数据流图是需求分析阶段产生的结果。【答 案:(5)A】【试题3-7】 2007 年5 月真题6关于原型化开发方法的叙述中,不正确的是 (6) 。A. 原型化方法适用于需求不明确的软件开发B. 在开发过程中,可以废弃不用早期构造的软件原型C. 原型化方法可以直接开发出最终产品D. 原型化方法利于确认各项系统服务的可用性解 析:通常,原型是指模拟某种产品的原始模型。在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。使用原型的原型化方法特别适用于需求不确定性较高的软件系统的开发。它的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的可执行的模型,满足用户的基本要求,这就是系统界面原型。让用户计算机上实际运行这个用户界面原型,在试用的过程中得到亲身感受和受到启发,做出反应和评价,提出同意什么和不同意什么。然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,逐步减少分析和通信中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高了最终产品的质量。【答 案:(6) C】【试题3-8】 2007 年5 月真题8CMM模型将软件过程的成熟度分为5个等级。在 (8) 使用定量分析来不断地改进和管理软件过程A. 优化级 B. 管理级 C. 定义级 D. 可重复级解 析:CMM将软件过程改进的进化步骤组织成5个成熟度等级:初始级、可重复级、定义级、管理级和优化级。这5个成熟度等级定义了一个有序的尺度,用来测量一个组织的软件过程成熟度和评价其软件过程能力,为不断改进过程奠定了循序渐进的基础。初始级对软件过程几乎没有明确定义的步骤,杂乱无章;可重复级建立了基本的项目管理过程来跟踪成本、进度和机能;在定义级,管理和工程的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准化过程;管理级对软件过程与产品质量建立了定量的质量目标,制定了软件过程和产品质量的详细的度量标准。优化级加强了定量分析,不断持续地改进软件过程。【答 案:(8) A】【试题3-9】 2006 年11 月真题5~6常用的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。其中(5)适用于需求明确或很少变更的项目, (6)主要用来描述面向对象的软件开发过程。(5)A. 瀑布模型 B. 演化模型 C. 螺旋模型 D. 喷泉模型(6)A. 瀑布模型 B. 演化模型 C. 螺旋模型 D. 喷泉模型解 析:瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品。但是瀑布模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。所以瀑布模型适用于需求明确,且很少发生较大变化的项目。演化模型主要针对事先不能完整定义需求的软件开发。用户先给出待开发系统的核心需求,并当用户看到核心需求实现后,有效地给出反馈,以支持系统的最终设计和实现。螺旋模型是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。喷泉模型主要用于描述面向对象的开发过程,体现了软件创建所固有的迭代和无间隙的特征。除此还有原型法、V-模型。原型法比较适合于用户需求不清、业务理论不确定、需求经常变化的情况。V-模型就是每个开发阶段都进行验证,状似V型。【答 案:(5)A (6)D】【试题3-10】 2006 年5 月真题4渐增式开发方法有利于 (4) 。A.获取软件需求 B.快速开发软件 C.大型团队开发 D.商业软件开发解 析:渐增模型又叫增量模型,该模型把软件作为一系列的增量构件来设计、编码、集成、测试。其特点就是可在短时间内提交部分产品,答案选A。【答 案:(4) A】【试题3-11】 2006 年5 月真题7~8(7) 是面向对象程序设计语言不同于其他语言的主要特点,是否建立了丰富的 (8) 是衡量一个面向对象程序设计语言成熟与否的重要标志之一。(7)A.继承性 B.消息传递 C.多态性 D.静态联编(8)A.函数库 B.类库 C.类型库 D.方法库解 析:继承性是面向对象程序设计语言不同于其他语言的主要特点,(7)的答案选A。类库是一种预先定义的程序库,可以由开发人员自己扩充,它是以程序模块的形式,按照类层次把一组类的定义和实现组织在一起。通常这一组类预先提供的是一些低层功能,如输入输出例程、图形操作原语、基本数据结构等。因此它是体现一个面向对象程序设计语言成熟与否的重要标志之一,(8)的答案选B。【答 案:(7)A (8)B】【试题3-12】 2006 年5 月真题10在面向对象的软件工程中,一个组件(component)包含了 (10) 。A.所有的属性和操作 B.各个类的实例C.每个演员(device or user)的作用 D.一些协作的类的集合解 析:在面向对象的软件工程中,类可以用预先开发的源代码来实现,这些源代码就称之为组件(component),从而简化了面象对象环境的产生,答案选D。【答 案:(10) D】【试题3-13】在下列说法中, (1) 是造成软件危机的主要原因。① 用户使用不当 ② 软件本身特点③ 硬件不可靠 ④ 对软件的错误认识⑤ 缺乏好的开发方法和手段 ⑥ 开发效率低A.①③⑥ B.①②④ C.③⑤⑥ D.②⑤⑥解 析:软件危机的出现促使人们去寻找产生软件危机的内在原因,归结为两个重要方面:一方面是由于软件本身存在着复杂性;另一方面与软件开发所使用的方法和技术相关。由此可见软件本身特点、缺乏好的开发方法和手段、开发效率低都是造成软件危机的主要原因,答案选D。【答 案:(1)D】【试题3-14】软件的生命周期可分为软件定义、软件开发和软件运行维护三个阶段。下列选项中,不属于软件开发阶段的工作的是 (1) 。A.维护 B.概要设计 C.详细设计 D.测试解 析:软件的生命周期可分为软件定义、软件开发和软件运行维护三个阶段。其中软件定义阶段的主要工作有问题定义、可行性研究和需求分析等;软件开发阶段的主要工作有概要设计、详细设计、实现(程序设计)和测试等;软件运行维护阶段的主要工作有运行和维护。所以选项A不属于软件开发阶段的工作,它属于软件运行维护阶段的工作。【答 案:(1)A】【试题3-15】下述任务中,不属于软件工程需求分析阶段的是 (1) 。A.分析软件系统的数据要求 B.确定软件系统的功能需求C.确定软件系统的性能要求 D.确定软件系统的运行平台解 析:在需求分析阶段主要任务包括:确定软件系统的功能需求和非功能需求、分析软件系统的数据要求、导出系统的逻辑模型、修正项目开发计划、开发一个原型(如有必要)。由此可见,选项A、B、C都是软件工程需求分析阶段的任务。选项D确定软件系统的运行平台不是需求分析阶段的任务,为答案。【答 案:(1)D】【试题3-16】在表示多个数据流与加工之间关系的符号中,下列符号分别表示 (1) 和 (2)(1)A.若A,则((B或C)或(B与C)) B.若A或B,则CC.若A与B,则C D.若A,则(B或C)但非(B与C)(2)A.若A,则((B或C)或(B与C)) B.若A或B,则CC.若A与B,则C D.若A,则(B或C)但非(B与C)解 析:在图3-1(a)中,数据流A流入加工,数据流B、C是向外发散流出。这种情况表示若流入A,则可能只流出B,或只流出C,或同时流出B和C。因此(1)的答案选A。在图3-2(b)中,数据流A和B是内聚式的流入加工,流出数据流C。这种情况表示若流入数据流A和B,则流出数据流C。因此(2)的答案选C。【答 案:(1)A (2)C】【试题3-17】在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法 (1) 。A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.判定树和判定表解 析:在结构化分析中,数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是对数据流图中出现的被命名的图形元素的确切解释。其中对加工的描述称为“小说明”,也称为“加工逻辑说明”,它描述了输入数据流、输入文件与输出数据流、输出文件之间的逻辑关系。常用的加工逻辑描述方法有结构化语言、判定树和判定表。答案选C。【答 案:(1)C】【试题3-18】在面向数据流的设计方法中,一般把数据流图中的数据流划分为 (1) 两种。A.数据流和事务流 B.变换流和数据流C.变换流和事务流 D.控制流和事务流解 析:数据流图中的数据流大体上可分两种类型,一种是变换流,另一种是事务流。变换流是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过交换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当信息沿输入通路到达一个处理中心,这个处理中心根据输入数据的类型从若干个动作序列中选择出一个执行,这类数据流归为特殊的一类,称为事务流。在一个事务流中,事务中心接收数据,分析每个事务以确定它的类型,根据事务类型选择一条活动通路。【答 案:(1)C】【试题3-19】软件设计包括四个既独立又相互联系的活动,分别为 (1) 、 (2) 、数据设计和过程设计。(1)A.用户手册设计 B.语言设计 C.体系结构设计 D.文档设计(2)A.文档设计 B.程序设计 C.实用性设计 D.接口设计解 析:软件设计从管理角度分为概要设计、详细设计两个阶段,但从技术上可分成体系结构设计、数据设计、接口设计、过程设计4方面的工作,(1)和(2)的答案分别选C和D。【答 案:(1)C(2)D】【试题3-20】关于程序模块优化的启发式规则有若干条,以下规则中不符合优化原则的是 (1) 。如果一个模块调用下层模块时传递一个数据结构,则这种耦合属于 (2) 。(1)A.通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性B.提高上层模块的扇出,减少模块调用的层次C.将模块的作用范围限制在模块的控制范围之内D.降低模块之间接口的复杂性,避免“病态连接”(2)A.简单耦合 B.直接耦合 C.标记耦合 D.控制耦合解 析:扇出是指一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。所以(1)中选项B不符合“深度、宽度、扇出和扇入应适中”原则,而选项A、C、D都符合启发式规则。一个数据结构的一部分借助于模块接口被传递是标记耦合,因此(2)的答案选C。【答 案:(1)B(2)C】【试题3-21】系统中模块的 (l) 不仅意味着作用于系统的小变动将导致行为上的小变化,也意味着规格说明的小变动将影响到一小部分模块。A.可分解性 B.保护性 C.可理解性 D.连续性解 析:在考虑模块化时,有一个重要问题:如何定义给定大小的一个合适模块?Meyer定义了五个标准:可分解性、保护性、可理解性、连续性、可组装性。模块可分解性是指如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案。模块的保护性是指如果模块内出现异常情况,并且它的影响限制在模块内部,则错误引起的副作用就会被最小化。模块可理解性是指如果一个模块可以作为一个独立的单位(不用参考其他模块)被理解,那么它就易于构造和修改。模块连续性是指在程序中进行小的修改的能力以及使这些修改在仅仅一个或很少的几个模块中发生对应修改下的反应,则修改引起的副作用就会被最小化。模块可组装性是指如果一种设计方法使现存的(可复用的)设计构件能被组装成新系统,它就能提供一种不一切从头开始的模块化解决方案。由于本题涉及到系统的小变动与规格说明的小变动将带来什么结果,根据题意应选D。【答 案:(1)D】【试题3-22】概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是 (1) 。A.把软件划分成模块 B.确定模块之间的调用关系C.确定各个模块的功能 D.设计每个模块的伪代码解 析:软件结构设计的主要任务是划分成模块的层次结构、确定每个模块的功能、确定模块间的调用关系、确定模块间的接口、评估模块划分的质量及导出模块结构的规则,因此选项A、B、C都属于概要设计范畴。选项D中,设计每个模块的伪代码是详细设计的内容。【答 案:(1)D】【试题3-23】软件设计的主要任务是设计软件的构造、过程和模块,其中软件结构设计的主要任务是要确定 (1) 。A.模块间的操作细节 B.模块间的相似性C.模块间的组成关系 D.模块间的具体功能解 析:软件设计可以分为概要设计和详细设计。其中概要设计的任务是确定软件系统的结构、划分成模块的层次结构、确定每个模块的功能、确定模块间的调用关系、确定模块间的接口、评估模块划分的质量及导出模块结构的规则。简单地说,软件结构设计的主要任务是要确定模块间的组成关系,答案选C。【答 案:(1)C】【试题3-24】在下列工具中,在软件详细设计过程中不采用的是 (1) 。A.判定表 B.N-S图 C.PDL D.DFD图解 析:软件详细设计过程常用三类工具:图形、表格和语言。其中图形工具有结构化流程图、盒图(N-S图)和问题分析图(PAD)三种;判定表是表格工具,它用来表示复杂的条件组合与应做的动作之间的对应关系;PDL是过程设计语言的缩写,也称程序描述语言,用于描述模块算法设计和处理细节的语言。因此选项A、B、C三种都可以在软件详细设计过程中使用。而DFD是数据流图,是以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,它是结构化需求分析的工具,不能在详细设计过程中使用,答案选D。【答 案:(1)D】【试题3-25】下面关于面向对象方法中消息的叙述,不正确的是 (1) 。A.键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C.应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同解 析:消息是对象间互相联系的手段,消息刺激接收对象产生某种行为,通过操作的执行来完成相应行为,例如键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息。应用程序与应用程序、操作系统与应用程序之间都可以互相发送消息,所以选项B所描述是错误的。【答 案:(1)B】【试题3-26】在UML提供的图中, (1) 用于描述系统与外部系统及用户之间的交互; (2) 用于按时间顺序描述对象间的交互。(1)A.用例图 B.类图 C.对象图 D.部署图(2)A.网络图 B.状态图 C.协作图 D.序列图解 析:UML提供了9种不同的模型图来对系统建模。用例图:以图形化的方式描述系统与外部系统及用户的交互。类图:描述系统的对象结构,它们显示构成系统的对象类以及这些对象类之间的关系。对象图:类似于类图,但并不描述对象类,它们对实际的对象实例建模。序列图:以图形化的方式描述了在一个用例或操作执行过程中对象如何通过消息互相交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。协作图:类似于序列图,但重点不是消息的时间顺序。它以一种网络格式表现对象之间的交互。状态图:用于对一个特定对象的动态行为建模,说明了一个对象的生命周期,以及引起对象从一个状态向另一个状态转换的事件。活动图:用于以图形化的方式描述一个业务过程或者一个用例的活动的顺序流。构件图:用来以图形化的方式描述系统的物理结构,它可以用来显示程序代码如何分解成模块。部署图:描述系统中硬件和软件的物理架构,它描述构成系统架构的软件构件、处理器和设备。【答 案:(1)A (2)D】
-----

我要回帖

更多关于 需求分析文档模板 的文章

 

随机推荐