需求分析(传统结构化方法)

合集下载

论述结构化系统开发方法的五个阶段

论述结构化系统开发方法的五个阶段

论述结构化系统开发方法的五个阶段结构化系统开发方法(SSADM)是一种经典的软件开发方法,它将系统的开发分为五个不同的阶段,包括可行性研究、需求分析、逻辑设计、物理设计和实施阶段。

下面是对这五个阶段的论述:1. 可行性研究阶段:在这个阶段,项目的可行性进行评估,包括技术、经济和组织等方面。

重要目标是确定项目是否值得进行以及项目的成功可能性。

这一阶段中需要收集和分析信息,制定初步的项目计划和预算,并进行风险评估。

2. 需求分析阶段:在这个阶段,对系统的需求进行详细的分析和描述。

需求分析的目标是确定用户的业务需求以及系统所需的功能、数据和性能。

通过与用户的沟通和交流,系统需求被记录下来并进行详细的说明,以便在后续阶段进行进一步的开发工作。

3. 逻辑设计阶段:在这个阶段,根据需求分析阶段的结果,进行系统的逻辑设计。

逻辑设计关注系统中各个组件的功能和交互关系。

这个阶段中,可能使用各种图形工具来描述系统的流程、数据流和数据结构。

逻辑设计的结果是一个详细的系统规格说明书,包含了系统的功能、流程、数据结构和接口等方面的描述。

4. 物理设计阶段:在这个阶段,通过对逻辑设计的进一步细化,确定系统的物理实现方案。

物理设计阶段关注系统的硬件、软件和网络等方面的细节。

在这个阶段,可能需要决定系统的架构、数据库设计、界面设计和安全策略等。

物理设计的结果是一个详细的系统设计文档,用于指导开发人员实施系统。

5. 实施阶段:在这个阶段,根据物理设计阶段的结果,开始编码、测试和部署系统。

开发人员根据系统设计文档进行编码,并进行单元测试、集成测试和系统测试等工作。

当系统通过测试后,可以将其部署到用户环境中。

还可以进行用户培训、文档编制和维护计划的制定等工作。

这五个阶段构成了SSADM方法的基本流程,每个阶段都有明确的目标和活动,可以确保系统的良好开发和交付。

在实际项目中,这些阶段可能会有一定的交叠和迭代,以适应需求的变化和反馈的调整。

结构化需求分析方法

结构化需求分析方法

结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。

结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。

结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

它适合于分析大型的数据处理系统,特别是企事业管理系统。

SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

结构化分析方法的基本思想是“分解”和“抽象”。

分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。

图4 是自顶向下逐层分解的示意图。

顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。

2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。

这样的表达与当前系统完全对应,因此用户容易理解。

⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。

软件工程概论5 :需求分析-结构化方法-带习题

软件工程概论5 :需求分析-结构化方法-带习题
• 数据词典与数据流图配合,能清楚地表 达数据处理的要求
• 词条描述 :对于在数据流图中每一个 被命名的图形元素,均加以定义,其内 容有:名字,编号,描述,定义,其它 等
(1)数据流词条描述
• 数据流名: • 说明:简要介绍作用即它产生的原因和结
果 • 数据流来源:来自何方 • 数据流去向:去向何处 • 数据流组成:数据结构 • 数据量流通量:数据量,流通量
(2)数据元素词条描述
• 数据元素名: • 类型:数字(离散值,连续值),文字(编码
类型)
• 长度: • 取值范围: • 相关的数据元素及数据结构:
(3)数据文件词条描述
• 数据文件名: • 简述:存放的是什么数据 • 输入数据: • 输出数据: • 数据文件组成:数据结构 • 存储方式:顺序,直接 • 存取频率:
• 需求分析的任务就是借助于当前系统的 逻辑模型导出目标系统的逻辑模型,解 决目标系统的 “做什么” 的问题。
• 通常软件开发项目是要实现目标系统的 物理模型
• 目标系统的具体物理模型是由它的逻辑 模型经实例化,即具体到某个业务领域 而得到的
需求分析的过程
(1) 问题识别
从系统的角度来理解和确认软件软件范围 确定对目标系统的综合要求,即软件的需求 提出这些需求实现条件,以及需求应达到的标准
• IF_THEN_ELSE • CASE_OF • WHILE_DO • REPEAT_UNTIL等组成。
• 是一种介于自然语言和形式化语言之间 的语言
• 语言的正文用基本控制结构进行分割, 加工中的操作用自然语言短语来表示
• 其基本控制结构有三种:
– 简单陈述句结构:避免复合语句; – 重复结构:WHILE_DO 或
• 存折=户名+所号+帐号+开户日+性质+(印 密)+1{存取行}50

软件工程案例_结构化方法的需求分析

软件工程案例_结构化方法的需求分析

案例—结构化方法的需求分析一、约定1.假定校园卡只对学生发行。

2.校园卡本身不保存除“卡号”以外的信息,卡号由系统按照序列号自动生成。

3.假定使用校园卡的场合只有食堂、商店及图书馆,而且,不允许透支消费。

4.系统功能从简,包括:不考虑校园卡的加密问题,不考虑诸如修改密码、挂失等配套功能,与特约商户按照POS机号逐日汇总后对帐,等等。

二、软件功能1.校园卡发行2.帐户管理2.1、充值2.2、取款2.3、注销2.4、查询帐户收支记录3.刷卡消费4.身份验证5.统计报表5.1、打印收支情况统计表5.2、打印特约商户对帐表三、数据流图1.顶层(图1)学习提示:▲顶层数据流图的基本意图是什么?2.第1层(图2)学习提示:▲自顶向下、逐层细化原则的运用▲下层数据流图的边界与上层数据流图保持一致▲关于数据存储▲关于数据字典3.第2层(图3、图4)学习提示:▲对数据流图的细化到什么程度为止。

四、数据字典1.数据流与数据存储的数据结构学习提示:▲规范描述每种数据流、每种数据存储的数据元素构成。

▲用词的规范,语法与语义的一致,同一数据结构(或数据元素)使用同一名称、不同数据结构(或元素)使用不同的名称。

2.数据元素对上述数据结构中出现每个数据项,逐个作出定义。

本案例省略具体内容,只对如下数据元素作出说明。

学习提示:▲哪些内容属于“数据元素”。

▲对于数据元素,需要定义哪些内容。

▲关于“元数据”的概念▲数据分析要求清楚描述每种业务单据之间的关联每个数据元素值的“来龙去脉”五、功能说明以“功能2.2—取款”为例说明▲功能简介(略)▲录入数据:取款单▲界面原型(略)▲前置条件《校园卡基本档案》存在与《取款单》中“卡号”相对应的记录。

▲对录入数据的约束规则●该档案记录的“密码”与《取款单》输入值一致。

●该档案记录的“当前状态”为“正常”。

●该档案记录的“帐户余额”值大于或者等于《取款单》的“取款金额”。

▲系统处理●新增《存取款记录》。

软件工程概述-第5章 结构化需求分析

软件工程概述-第5章 结构化需求分析

实体 属性 联系
用矩形表示,矩形内写 明实体名
用椭圆形表示,并用无 向边将其与对应实体连 接起来
用菱形表示,并用无向 边分别与有关实体连接 起来,同时在无向边旁 标上联系的类型。
E-R 图表示图示 例 2-1 中的例子
练习
例:简单的学生选课系统:
(1)学生 属性有学号,姓名, 性别,年龄,所在系
x
1.1
1.2
1.3
1
3
2
2.1 2.3
2.2
1.1 1.3
目录
1
5.1结构化分析
2
5.2数据流图
3
5.3数据字典
4
5.4 实体关系图
5
5.5 状态转换图
数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数据 流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出 所需的加工处理过程。
(2)课程 属性有课程号,课程 名称,先修课程号,学分
实体之间的联系:
一个学生可同时选修多门 课程,而一门课程可以同时被 若干学生选修。用成绩来表示 某个学生学习某门课程的成绩 。
分解:对于一个复杂的系统,为了将复杂性降 低到可以掌握的程度,可以把大问题分解成若 干小问题,然后分别解决。
抽象:分解可以分层进行,即先考虑问题最本 质的属性,暂把细节略去,以后再逐层添加细 节,直至涉及到最详细的内容,这种用最本质 的属性表示一个系统的方法就是“抽象”
结构化分析
结构化分析方法基本思想 “分解”和“抽象”
取值范围:数据项的取值范围,例如,职工年龄 的取值范围定义为18至60岁,表示为18..60。
初始值:数据项的初始值,例如,为了操作简便, 软件定义借书日期的初始值默认为系统的当前日 期。

结构化需求分析方法

结构化需求分析方法

结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。

结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。

结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

它适合于分析大型的数据处理系统,特别是企事业管理系统。

SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

结构化分析方法的基本思想是“分解”和“抽象”。

分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。

图4 是自顶向下逐层分解的示意图。

顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。

2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。

这样的表达与当前系统完全对应,因此用户容易理解。

⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。

结构化分析方法

结构化分析方法

结构化分析方法结构化分析方法一、需求分析与需求分析方法需求阶段是软件开发的关键阶段。

需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。

需求分析阶段的工作(四方面):◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。

◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。

◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。

◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。

1、需求获取的目的清楚地理解所要解决的问题、完整地获取用户需求。

2、需求获取的内容用户需求分类:(1)功能性需求定义了系统做什么(描述系统必须支持的功能和过程)。

(2)非功能性需求(技术需求)定义了系统工作时的特性(描述操作环境和性能目标)。

3、需求分析的步骤4、需求分析过程示意(1)通过对现实环境的调查,获得当前系统的物理模型。

(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。

(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。

5、需求分析的方法结构化分析(传统建模方法)、面向对象分析。

二、结构化分析方法1、结构化分析方法(Structure Analysis---SA)(1)定义是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

(2)结构化分析的主要步骤通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。

2、结构化分析方法使用的常用工具(1)数据流图(DFD—Data Flow Diagram )①作用从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。

需求分析(传统结构化方法)

需求分析(传统结构化方法)

2。

2需求分析需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。

2.2.1需求分析的目的与意义需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。

有效的需求分析通常都具有一定的难度.需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。

此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。

2。

2.2需求分析的步骤2-3所示。

需求涉及的方面:在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。

在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。

在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。

在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。

1。

获取需求,识别问题开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。

开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求.遗漏需求是最难修订的需求错误。

获取需求是需求分析的基础.为了能有效地获取需求,开发人员应该采取科学的需求获取方法。

在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。

问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。

通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。

采用这种方法时,调查问卷的设计很重要。

一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例.开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法.但是,对开放式问题进行汇总和分析的工作会比较复杂。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.2需求分析需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。

2.2.1需求分析的目的与意义需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。

有效的需求分析通常都具有一定的难度。

需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。

此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。

2.2.2需求分析的步骤2-3所示。

需求涉及的方面:在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。

在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。

在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。

在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。

1. 获取需求,识别问题开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。

开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。

遗漏需求是最难修订的需求错误。

获取需求是需求分析的基础。

为了能有效地获取需求,开发人员应该采取科学的需求获取方法。

在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。

问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。

通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。

采用这种方法时,调查问卷的设计很重要。

一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。

开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法。

但是,对开放式问题进行汇总和分析的工作会比较复杂。

封闭式问题的答案是预先设定的,用户从若干答案中进行选择。

封闭式问题便于对问卷信息进行归纳与整理,但是会限制用户的思维。

访谈通过开发人员与特定的用户代表进行座谈,进而了解到用户的意见,是最直接的需求获取方法。

为了使访谈有效,在进行访谈之前,开发人员要首先确定访谈的目的,进而准备一个问题列表,预先准备好希望通过访谈解决的问题。

在访谈的过程中,开发人员要注意态度诚恳,并保持虚心求教的姿态,同时还要对重点问题进行深入的讨论。

由于被访谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启发。

当然,进行详细的记录也是访谈过程中必不可少的工作。

访谈完成后,开发人员要对访谈的收获进行总结,澄清已解决的和有待进一步解决的问题。

关注用户的行为而不是他们的言语。

为了深入地了解用户需求,有时候开发人员还会以用户的身份直接参与到现有系统的使用过程中,在亲身实践的基础上,更直接地体会现有系统的弊端以及新系统应该解决的问题,这种需求获取方法就是实地操作。

通过实地操作得到的信息会更加准确和真实,但是这种方法会比较费时间。

当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。

原型系统就是目标系统的一个可操作的模型。

在初步获取需求后,开发人员会快速地开发一个原型系统。

通过对原型系统进行模拟操作,开发人员能及时获得用户的意见,从而对需求进行明确。

利用原型系统获取需求的方法的示意图如图2-4所示。

2. 分析需求,建立目标系统的逻辑模型在获得需求后,开发人员应该对问题进行分析抽象,并在此基础上从高层建立目标系统的逻辑模型。

模型是对事物高层次的抽象,通常由一组符号和组织这些符号的规则组成。

常用的模型图有数据流图、E-R图、用例图和状态转换图等,不同的模型从不同的角度或不同的侧重点描述目标系统。

绘制模型图的过程,既是开发人员进行逻辑思考的过程,也是开发人员更进一步认识目标系统的过程。

3. 将需求文档化获得需求后要将其描述出来,即将需求文档化。

对于大型的软件系统,需求阶段一般会输出三个文档:系统定义文档(用户需求报告);系统需求文档(系统需求规格说明书);软件需求文档(软件需求规格说明书)。

对于简单的软件系统而言,需求阶段只需要输出软件需求文档(即软件需求规格说明书)就可以了。

软件需求规格说明书主要描述软件的需求,从开发人员的角度对目标系统的业务模型、功能模型和数据模型等内容进行描述。

作为后续的软件设计和测试的重要依据,需求阶段的输出文档应该具有清晰性、无二义性和准确性,并且能够全面和确切地描述用户需求。

4. 需求验证需求验证是对需求分析的成果进行评估和验证的过程。

为了确保需求分析的正确性、一致性、完整性和有效性,提高软件开发的效率,为后续的软件开发做好准备,需求验证的工作非常必要。

在需求验证的过程中,可以对需求阶段的输出文档进行多种检查,比如,一致性检查、完整性检查和有效性检查等。

同时,需求评审也是在这个阶段进行的。

2.3 结构化需求分析的方法结构化需求分析是20世纪70年代由Yourdon、Constaintine及DeMarco提出的一种面向数据流的需求分析方法。

它基于"分解"和"抽象"的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。

"分解"是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决。

图2-5演示了对目标系统X进行自顶向下逐层分解的示意图。

能,而最底层是对每个模块实现方法的细节性描述。

可见,在逐层分解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分解自顶向下进行,才逐渐考虑越来越具体的细节。

这种用最本质的属性表示一个软件系统的方法就是"抽象"。

抽象是一种人类处理复杂问题的基本方法。

分解和抽象是结构化需求分析的基本指导思想。

在结构化需求分析的过程中,通常还需要借助数据流程图、数据字典、E-R图、结构化语言、判定表、判定树等工具。

接下来我们介绍数据流图、数据字典和E-R图的相关知识。

2.4结构化需求分析的工具2.4.1数据流图数据流图(Data Flow Diagram,DFD)是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。

数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。

结构化需求分析采用的是"自顶向下,由外到内,逐层分解"的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。

顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。

底层的数据流图是对系统某个部分的精细描述。

数据流图的目的是在用户和系统开发人员之间提供语义的桥梁。

--Kenneth Kozar按照Gane-Sarson法,在绘制数据流图的过程中,主要用到了4个基本符号,如表2-1所示。

表2-1数据流图的基本符号1 SA 法概述SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

结构化分析方法的基本思想是“分解”和“抽象”。

分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。

图4 是自顶向下逐层分解的示意图。

顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。

2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。

这样的表达与当前系统完全对应,因此用户容易理解。

⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。

⑶建立目标系统的逻辑模型;分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD 图)。

⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。

3.SA 法的描述工具⑴分层的数据流图⑵数据词典⑶描述加工逻辑的结构化语言、判定表或判定树。

2 数据流图数据流图(Data Flow Diagram,简称DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

1.数据流图的图符数据流图有以下4 种基本图形符号:箭头表示数据流,圆或椭圆表示加工。

双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。

⑴数据流是数据在系统内传播的路径,由一组成固定的数据项组成。

除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。

数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。

⑵加工也称为数据处理,它对数据流进行某些操作或变换。

每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。

在分层的数据流图中,加工还应有编号。

⑶数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。

流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。

⑷数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。

一般只出现在数据流图的顶层图中。

还有一些辅助的图例:例1:画出图书预定系统的DFD 图。

现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾客还是老顾客,是否有信誉。

经过验证的正确订单,暂存放在待处理的订单文件中。

对订单进行成批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社。

相关文档
最新文档