软件工程第三章.doc
《软件工程第三章.doc》由会员分享,可在线阅读,更多相关《软件工程第三章.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.1 需求分析的任务3.1.1 需求分析的概念 开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约(需求规格说明)的过程。需求分析虽处于软件开发过程的初期阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中的所处的地位愈加突出,从而也愈加困难。 1.需求分析的难点 (1)问题的复杂性。用户需求所涉及的因素很多,如系统功能和运行环境。 (2)交流障碍。需求分析涉及人员较多,分别具备不同的背景知识,处于不同的出发点,造成了相互之间交流的困难。 (3)不
2、完备性和不一致性。用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除其矛盾,形成完备及一致的定义。 (4)需求易变性。用户需求的变动往往会影响到需求分析,导致系统的不一致性和不完备性。 2.需求分析的基本原则 (1)必须能够表达和理解问题的数据域和功能域。数据域包括数据流、数据内容和数据结构,而功能域反映数据域三方面的控制信息。 (2)可以把一个复杂问题按功能进行分解并可逐层细化。 (3) 建模。建立模型可以帮助分析人员更好地理解软件系统的信息、功能、行为,这些模型也是软件设计的基础。3.1.2 需求分析的基本任务 1.问题识别 (1) 功能需求:明确所开发的软件必
3、须具备什么样的功能。 (2) 性能需求:明确待开发的软件的技术性能指标。 (3) 环境需求:明确软件运行时所需要的软、硬件的要求。 (4) 用户界面需求:明确人机交互方式、输入输出数据格式。 2. 分析与综合,导出软件的逻辑模型 分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。 3. 编写文档 (1) 编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。 (2) 编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用
4、户使用的观点考虑软件。 (3) 编写确认测试计划,作为今后确认和验收的依据。 (4) 修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。3.2 结构化分析方法 结构化分析(Structured Analysis,简称SA),是面向数据流进行需求分析的方法。SA也是一种建模活动,该方法使用简单易读符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。3.2.1 自顶向下逐层分解的分析策略 面对一个复杂的问题,分析人员不可能一开始就考虑到问题的所有方面以及全部细节,采用的策
5、略往往是分解,把一个复杂的问题划分成若干小问题,然后再分别解决,将问题的复杂性降低到人可以掌握的程度。3.2.2 描述工具 SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。描述工具是: (1)数据流图:描述系统由哪几部分组成,各部分之间有什么联系等等。 (2)数据字典:定义了数据流图中每一个图形元素。 (3)描述加工逻辑的结构化语言、判定表、判定树:详细描述数据流图中不能被再分解的每一个加工。3.2.3 SA分析步骤 SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。描述工具是: (1)了解当前系统的工作流程,获
6、得当前系统的物理模型。通过对当前系统的详细调查,了解当前系统的工作过程,同时收集资料、文件、数据、报表等,将看到的、听到的、收集到的信息和情况用图形描述出来。也就是用一个模型来反映自己对当前系统的理解,如画系统流程图。 (2)抽象出当前系统的逻辑模型。物理模型反映了系统“怎么做”的具体实现,去掉物理模型中非本质的因素,抽取出本质的因素,构造出当前系统的逻辑模型,反映了当前系统“做什么”的功能。 (3)建立目标系统的逻辑模型。分析、比较目标系统与当前系统逻辑上的差别,明确目标系统到底要“做什么”,从而从当前系统的逻辑模型导出目标系统的逻辑模型。 (4)作进一步补充和优化。为了对目标系统做完整的描
7、述,还需要对得到的逻辑模型做一些补充。3.3 数据流图(DFD) 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。下图是一个飞机机票预订系统的数据流图,它反映的功能是: 旅行社把预订机票的旅客信息 (姓名、年龄、单位、身份证号码、旅行时间、目的地等)输入机票预订系统。系统为旅客安排航班,打印出取票通知单(附有应交的账款)。旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。 3.3.1 基本图形符号数据流图有四种基本图形符号: :箭头,表示数据流;
8、:圆或椭圆,表示加工; = :双杠,表示数据存储; :方框,表示数据的源点或终点。 (1) 数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。 (2)加工(又称为数据处理)。对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应编号。 (3)数据存储(又称为文件),指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。 (4)数据源
9、点或终点,是本软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。一般只出现在数据流图的顶层图。3.3.2画数据流图的步骤 (1)首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。下图为飞机机票预订系统的顶层图。 (2)画系统内部,即画下层数据流图。不再分解的加工称为基本加工。一般将层号从0开始编号,采用自顶向下,由外向内的原则。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。例如,在上面
10、的机票预订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储联系起来,0层数据流图如图3-4。 (3)注意事项。 命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。 画数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。 一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。 每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。 编号。如果一张数据流图中的某个加工分解成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第三
限制150内