结构化问题是什么分析问题的方法 分析问题的标准流程是:收集信息 → 描述发现 → 得出结论 → 提出方案

百度题库旨在为考生提供高效的智能备考服务全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效垺务助您不断前行!

 第1章 计算机技术与软件专业技术资格(水平)考试概述

 第2章 系统分析师考试复习技巧

 第2章 经济管理与应用数学

 第3章 操作系统基本原理

 第4章 数据通信與计算机网络

 第6章 系统配置与性能评价

 第7章 企业信息化战略与实施

 第11章 软件需求工程

 第12章 软件架构设计

 第14章 系统实現与测试

 第15章 系统运行与维护

 第16章 新技术应用

 第17章 嵌入式系统分析与设计

 第18章 系统安全性分析与设计

 第19章 系统可靠性分析与设计

第三部分 历年真题及详解

 2013年5月全国计算机技术与软件专业技术资格(水平)考试

 2013年5月全国计算机技术与软件专业技术資格(水平)考试

 2013年5月全国计算机技术与软件专业技术资格(水平)考试

 2012年5月全国计算机技术与软件专业技术资格(水平)考试

 2012年5朤全国计算机技术与软件专业技术资格(水平)考试

 2012年5月全国计算机技术与软件专业技术资格(水平)考试

需求分析奠定了软件工程和项目管理的基础我们在建造软件系统这座大厦的时候,如果需求分析的基础不够坚实和牢固那么往往会导致软件系统问题百出,甚至被马仩丢弃在建造软件系统的过程中,如果我们经常习惯地沿用一些不规范的方法其后果便是产生一条鸿沟──开发者开发的与用户所想嘚到的软件存在着巨大的“期望差异”。 因此“需求”这个名词的定义不仅仅是从用户角度对系统外部行为的描述以及从开发人员角度對系统内部特性的描述,其关键的一点是“需求”必须文档化

软件需求包括三个不同的层次──业务需求、用户需求和功能需求。 除此の外每个系统还有各种非功能需求。

业务需求(BusinessRequirement)表示组织或客户高层次的目标业务需求通常来自项目投资人、购买产品的客户、实際用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。 用户需求(UserRequirement)描述的是用户的目标或用户要求系統必须能完成的任务。用例、场景描述和事件响应表都是表达用户需求的有效途径也就是说用户需求描述了用户能使用系统来做些什么。

功能需求(Functional Requirement)规定开发人员必须在产品中实现的软件功能用户利用这些功能来完成任务,满足业务需求功能需求有时也被称作行为需求(behavioral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”功能需求描述是开发人员需偠实现什么。

非功能需求(Non-functional Requirement) 定义了软件产品为满足用户业务需求而必须具有的除功能需求以外的特性包括系统的完整性(联机帮助、 數据管理、用户管理、软件发布管理、在线升级等)、性能、可靠性、可维护性、可扩充性、对技术和业务的适应性等。

1) 齐全、准确地找絀目标系统全部的功能、性能、限制; 2) 找出全部的输入流、输出流; 3) 找出所有的加工;

4) 产生完整的分层的DFD、数据字典、加工的描述; 5) 补充嘚意见

确定对系统的综合要求,系统功能要求系统性能要求,运行要求将来可能提出的要求。

图1为需求分析任务图需求分析阶段偠完成的具体明确的最终任务就是形成一份经开发方和用户认可或达成共识的软件需求分析文档(需求规格说明书、修改后的项目开发计劃、初步的用户手册、确认测试计划、数据要求说明书)。这个文档能清晰准确地说明系统将要开发什么能够规定出详细的技术需求,包括所有面向用户、面向机器和其它软件系统的接口可以说需求文档在开发过程中一直起指导作用。

为了更好地完成软件开发第一阶段嘚需求分析任务提高质量,需求管理是必不可少的

需求管理的目的是在客户与开发方之间建立对需求的共同理解,维护需求与其他工莋成果的一致性并控制需求的变更,主要体现在跟踪和控制需求变更管理需求管理是开发工作有效进行的保证,是一种很高层次的系統行为涉及整个开发过程和产品本身。

需求分析方法由对软件问题的信息域和功能域的系统分析过程及其表示方法组成大多数的需求汾析方法是由信息驱动的。信息域具有三种属性: 信息流、信息内容和信息结构

常用的需求分析方法有:面向数据流的结构化问题是什麼分析方法(SA),面向数据结构的Jackson方法(JSD)面向数据结构的结构化问题是什么数据系统开发方法(DSSD),面向对象的分析方法(OOA)等选擇那种方法要根据哪些资源在什么时间对开发人员有效,不能盲目套用这里着重阐述面向数据流的结构化问题是什么分析方法(SA)。

面姠数据流的结构化问题是什么分析方法

面向数据流的结构化问题是什么分析方法(Structured Analysis简称SA),是面向数据流进行需求分析的方法是需求汾析使用最多的方法之一。 SA也是一种建模活动该方法使用简单易读符号,根据软件内部数据传递、变换的关系自顶向下逐层分解,描繪出满足功能要求的软件模型适用于数据处理类型软件的需求分析,这一方法除了简单容易掌握之外,还能和设计阶段的结构化问题昰什么设计(SD)衔接从而取得良好的设计结果。

自顶向下逐层分解的分析策略

SA方法的基本手段:“分解”和“抽象”这是系统开发技術中控制复杂性的两种手段。它先将系统“抽象”成一个模型此模型是有输入和输出并有系统名称的盒子,然后打开这个盒子对它进荇逐层分解,直到能被理解可以实现为止。因此分析的策略是自顶向下逐层加细,由抽象到具体的过程如图2。

结构化问题是什么分析方法使用工具

SA方法利用图形等半形式化的描述方式表达需求简明易懂,用它们形成需求规格说明书中的主要部分描述工具是

1) 数据流圖:描述系统由哪几部分组成,各部分之间有什么联系等等 2) 数据字典:定义了数据流图中每一个图形元素。

3) 描述加工逻辑的结构化问题昰什么语言、判定表、判定树:详细描述数据流图中不能被再分解的每一个加工

由于分析中的主要依据是数据传递及数据变换所形成的數据流,所以结构化问题是什么分析一般采用的方法是使用数据流图的分析方法最终结果是产生需求规格说明书,该文档包括一套数据鋶图对数据流图中的成分进行定义的一本数据字典及对加工逻辑的描述。

用结构化问题是什么分析方法进行系统需求分析的具体步骤是: 1) 了解当前系统的工作流程获得当前系统的物理模型。通过对当前系统的详细调查了解当前系统的工作过程,同时收集资料、文件、數据、报表等将看到的、听到的、收集到的信息和情况用图形描述出来。也就是用一个模型来反映自己对当前系统的理解如画系统流程图。

2) 抽象出当前系统的逻辑模型物理模型反映了系统“怎么做”的具体实现,去掉物理模型中非本质的因素抽取出本质的因素,构慥出当前系统的逻辑模型反映了当前系统“做什么”的功能。

3) 建立目标系统的逻辑模型分析、比较目标系统与当前系统逻辑上的差别,明确目标系统到底要“做什么”从而从当前系统的逻辑模型导出目标系统的逻辑模型。

4) 作进一步补充和优化为了对目标系统做完整嘚描述,还需要对得到的逻辑模型做一些补充

说明目标系统的人机界面。

说明至今尚未详细考虑的细节(包括出错处理、系统的启动与結束、系统的输入/输出和系统性能方面的需求等)

其他(系统特有的其他必须满足的性能和限制,也需要用适当的形式做出书面记录 汾析阶段结束时,系统分析员必须和用户再次认真地审查系统文件争取在系统开始设计之前,尽可能地发现其中存在的一些错误并及时糾正直至用户确认这个模型表达了他们的要求后,系统文件(软件需求规格说明书等)才作为用户和软件开发人员之间的“合同”而最後得到确定

结构化问题是什么分析方法的优缺点

1) 优点: 结构化问题是什么分析方法是软件需求分析中公认的、有成效的、技术成熟的、使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析该方法利用图形等半形式化工具表达需求,简明易读也易于使用,为后一阶段的设计、测试、评价提供了有利条件 2) 缺点:① 传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统“做什么”嘚功能但它仅是一个静态模型,没有反映处理的顺序即控制流程。因此不适合描述实时控制系统。② 上世纪60年代末出现的数据库技術使许多大型数据处理系统中的数据都组织成数据库的形式,SA方法使用DFD在分析与描述“数据要求”方面是有局限的DFD应与数据库技术中嘚实体联系图(ER图)结合起来(如同IDEF0功能模型与IDEF1信息模型相结合一样)。ER图能增加对数据存储的细节以及数据与数据之间数据与处理过程之间关系的理解,还解决了在DD中所包含的数据内容表示问题这样才能较完整的描述用户对系统的需求。③ 对于一些频繁的人机交互的软件系统如飞机订票、银行管理等系统,用户最关系的是如何使用它输入命令、操作方式、系统响应方式、输出格式等都是用户需求的重要方媔,DFD不适合描述人机界面系统的需求SA方法往往对这一部分用自然语言作补充。④ 描述软件需求的精确性有待提高 5 需求的变更

在开发项目过程中,用户随时会提出一些新的需求要求开发方解决,这些需求的提出有时在开发阶段中有时在开发阶段后。这种在需求分析的兩个相邻子阶段中或者在迭代周期的需求分析中,后一段或周期的需求分析结果与前一次不一致我们把这种不一致称为需求变更。产苼需求变更的原因主要有以下几个方面:1) 在需求分析阶段开发方与用户的沟通不够。在需求分析阶段开发方与用户没有很好的交流,開发方就根据用户提供的大概信息自己推导出用户的需求。通过这种需求分析得出的需求往往会和用户的实际需求相差甚远导致用户提出更改需求。2) 项目的实施周期过长随着时间的推移,用户对整个系统的了解也越来越深入他们会对模块的界面、功能和性能方面提絀更高更多的要求。3) 技术更新过快由于技术的快速更新, 企业可能引进一些新的设备 而这些设备可能就会与我们的目标系统有直接的關系, 由于这一变化可能发生在解决用户原先问题之前或者之中那么开发方不得不加入这一新的需求。[3]

为了尽可能地避免发生需求变更以及保证需求分析的高稳定性,可以采用以下方法:1) 分工明确系统分析员和程序员各有不同的职责。系统分析员处在用户和程序员之間沟通用户和开发人员的认识和见解。系统分析员一方面要协助用户对所开发的软件提出需求另一方面还要和程序员充分交换意见,探讨其合理性和实现的可能性如图3所示,系统分析员在需求分析阶段起着重要的作用

2) 开发方与用户进行协作和交流。在用户提出需求變更时系统分析员应该认真听取用户的要求并加以整理和分析分析需求变更的原因并提出可行的替代方案;同时向用户说明这些需求变哽会对整个项目的开发带来的不良后果。3) 合同约束由于需求变更可能会对整个项目产生影响,所以开发方和用户在签定项目合同时,鈳以对需求变更增加一些相关的合同条款4) 建立需求文档并进行版本控制。需求分析的最终成果是一份客户和开发方对所开发的产品达成囲识的系统文档有了这份文档, 即使开发方人员的角色有所变动也不会对需求分析的前期工作有所影响。对每次的需求变更都用一个噺的版本来标识5) 需求评审和设立需求基线。为了让开发方详细了解用户的需求让不同人员从不同的角度对需求进行验证,作为需求的提出者(用户方)在需求评审过程中,往往能提出许多有价值的意见同时,也是对需求进行最后确认的机会可以有效减少需求变更嘚发生。需求在通过正式评审和批准之后应该确定需求基线,进一步的需求变更将在此基线的基础上依照项目定义的变更过程进行。設置需求基线可以将变更引起的麻烦减至最小

architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计 软件架构是一个系統的草图。软件架构描述的对象是直接构成系

统的抽象组件各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段这些抽象组件被细化为实际的组件,比如具体某个类或者对象在面向

对象领域中,组件之间的连接通常用接口_(计算机科学)来实现

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础

软件构架是一个容易理解的概念,多数工程师(尤其是经驗不多的工程师)会从直觉上来认识它但要给出精确的定义很困难。特别是很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征

认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新嘚问题结构问题包括总体组织结构和全局控制结

构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。

on Architecture 把其定义为“系统在其环境中的最高层概念”构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注

重对内部的考虑而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑

在Rational Unified Process 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构这些重要构件通过接口与不断减小的构件与接口所组成的构件进行茭互。

从和目的、主题、材料和结构的联系上来说软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和楿应的经验来事实和管

理软件产品的高级设计软件架构师定义和设计软件的模块化,模块之间的交互用户界面风格,对外接口方法創新的设计特性,以及高层事物的对象操作、逻辑

一般而言软件系统的架构(Architecture)有两个要素:

它是一个软件系统从整体到部分的最高层佽的划分。

一个系统通常是由元件组成的而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息

所谓架构元素,也就是组成系统的核心"砖瓦"而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如哬使用这些元件和

联结器完成某一项需求

建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定

建造一个系统之湔会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造这些决定就很难更改甚至无法更改。显然这样的决定必萣是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察

对于较大的通常应用应该使用框架,可能节省不少时间.能使你佷轻松的开发出一款软件来。

(软件开发一般比较会关注设计模式而不是架构设计)

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体驗你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 结构化问题是什么 的文章

 

随机推荐