计算机软件技术基础-课件 19ch12(1)-SE_第1页
计算机软件技术基础-课件 19ch12(1)-SE_第2页
计算机软件技术基础-课件 19ch12(1)-SE_第3页
计算机软件技术基础-课件 19ch12(1)-SE_第4页
计算机软件技术基础-课件 19ch12(1)-SE_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

需求分析问题定义可性行研究计划时期概要设计详细设计编码测试开发时期运行与维护运行时期当前位置:软件的生命周期第12章需求分析和软件设计12.1

需求分析12.2软件设计12.1

需求分析要求

1.熟悉软件需求分析的目的、任务、基本过程(步骤)。

2.掌握需求分析的方法:数据流图、数据字典和简明算法的描述。

3.掌握基于数据流图的结构化分析的方法。

4.了解需求规格说明书和需求评审的主要内容学习要点: 数据流图、数据字典、结构化需求分析的方法学习内容12.1.1

需求分析概述12.1.2数据流图12.1.3数据字典12.1.1

需求分析概述1.

需求分析的任务2.需求分析的步骤3.结构化分析方法什么是软件需求(用户)对软件产品的期望:待开发软件系统的功能、性能、设计约束和其它要求1.

需求分析的任务1.

需求分析的任务☆基本任务—确定系统必须“做什么?”的问题

仍然回答“What”,而不是“How”, 但更细致、精确(合同的拟定)软件开发人员要进行细致的调查分析,准确地理解用户的要求。(理解和表达)

在理解用户的需求后,借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。

写出软件的需求规格说明书(SRS:SoftwareRequirementSpecification),准确、具体地表达用户的要求。1.

需求分析的任务需求分析的重要性

构建软件系统最艰难的一个部分是准确地决定要构建什么,没有其它的概念性工作像建立详细的技术需求这样困难,包括所有对人的界面、对机器的接口以及对其它软件系统的接口。没有其它部分像它这样,如果做错了,会对最终系统造成如此大的损害。没有其它部分在后期比它更难以调整。(Brooks《人月神话》)1.

需求分析的任务需求分析的重要性软件开发的基础和前提(计划时期和开发时期之间的桥梁)。需求规格说明书为用户和开发人员提供协商讨论的基础,作为软件设计、实现、测试和维护的依据。避免或者尽早剔除早期的错误。软件生命周期中,一个错误发现得越晚,修复错误的费用越高1.

需求分析的任务需求分析的复杂性和面临的困难需求易变性(用户不清楚他们需要系统做什么/不知道真正的需求/过分夸大需求)问题的复杂性(涉及因素较多:运行环境、系统功能;应用领域)交流障碍(分析人员、用户、专家)需求被误解。软件工程师听到客户的要求,但他们所听到的不是客户所应当说的。不完备性和不一致性(当时提供的需求与后来的需求发生冲突)因此必须使用系统的方法、借助于一系列行之有效的技术和工具进行软件需求分析2.需求分析的步骤需求分析过程示意图(1)需求获取(2)需求提炼(3)需求描述需求获取方法分析建模软件需求规格说明书(4)需求验证复审、验证2.需求分析的步骤(1)需求获取1)确定对系统的综合需求

①系统功能需求--划分出系统所有功能②系统性能需求--达到各项技术指标③系统运行需求--系统运行时所处的环境的需求

环境:系统软件数据库外存储器数据通讯接口④将来可能提出的需求

2)分析系统的数据需求①由信息流归纳抽象出数据元素组成、数据的逻辑关系、数据字典的格式、数据模型②结构化方式表示:输入—处理—输出用户需求例子-图书馆管理系统功能需求:办理读者借书证,…性能需求:查询操作延迟时间不超过1秒钟,…设计约束:前台运行在WindowsOS下,…其它要求:开发时间6个月,…2.需求分析的步骤(2)需求提炼:分析建模

在明确目标系统要“做什么”基础上,导出用数据流图和数据字典等描述目标系统的逻辑模型。软件开发项目是要实现目标系统的物理模型。确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。目标系统的物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的。逻辑模型忽视机制和细节,只描述系统要完成的功能和要处理的数据建立系统模型的工作流程2.需求分析的步骤(3)需求描述:编写“软件需求规格说明书”需求规格说明书作用:·软件设计基础

·测试和验收的依据1)特征:

①唯一性(无二义性)②完整性③一致性④可修改性

“软件需求规格说明书”(*)2)内容:

①引言——目的、背景… ②概述——目标、用户特点…

③数据描述:·数据流图·数据字典·接口说明

④需求说明:

·功能描述——软件具体的功能要求

·性能描述——包括软件的处理速度响应时间、精度等

⑤运行需求:·用户界面·硬件·软件·故障处理

其它——如安全保密、可维护性、可移植性2.需求分析的步骤(4)需求验证:复审、验证软件需求分析的正确性多方人员(专家、分析人员、开发人员、用户)一起对需求分析结果进行复核和评审,对功能的正确性、完整性和清晰性,以及其他需求给予评价。正确性:每项要求都必须准确地反映用户要完成的任务。完整性:

不遗漏任何必要的需求;

清楚、完整地描述每一项需求。一致性、必要性、无歧义性、可验证性…2.需求分析的步骤*需求获取的常用方法(1)建立联合分析小组

:建立一个由用户、系统分析员和领域专家参加的联合分析小组。加强联系促进交流增进合作*需求获取的常用方法(2)客户访谈:深入现场和用户方的各层业务人员进行多次交流。(3)问题分析与确认:一般需要2~5个来回。*快速原型法在需求分析中的应用传统软件开发存在的问题需求分析员与用户之间没有一种直观交流媒介用户需求不断变化

如何适应这样一种变化如何更为直观地评价用户需求快速原型方法利用软件开发模型中快速原型的思想通过构建用户需求的原型来分析和描述用户需求*快速原型法在需求分析中的应用*采用快速原型法定义需求的步骤:生成一个简化的需求规格说明;确定原型的软件结构、用户界面和数据结构等;快速生成可运行的软件原型并进行测试、改进;交给用户评估并征求用户的修改意见;重复上述过程,直到原型得到用户的认可。结构化软件开发方法

(StructedSoftwareDevelopment)结构化分析(SA,StructedAnalysis):最经典的面向数据流的需求分析方法,适用于分析大型数据处理系统结构化设计(SD,StructedDesign):结构化编程(SP,StructedProgramming):3.结构分析方法(SA)基本思想——“分解”和“抽象”分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。特点:以数据流分析作为需求分析的出发点,任何信息处理过程均看成是将输入数据变换成所要求的输出信息的装置。用数据流图来帮助人们理解问题、分析问题。用数据字典精确定义数据流图中每个元素(数据流)的成分。用结构化语言、判定表和判定树对数据流图中的每个加工进行描述。12.1.2数据流图

(DFD-DataFlowDiagram)1.数据流图的定义和作用2.数据流图的符号3.数据流图的基本成分4.数据流图的画法5.数据流图与其它流程图的差别1.数据流图的定义和作用数据流图(DFD,DataFlowDiagram)是描述系统逻辑模型的一种图形工具。它以图形的方式表达系统中的信息变换和传递的过程。

作用:

是需求分析的主要工具。

作为软件开发和维护各阶段信息交流的工具。

以图中不同加工逻辑指导物理系统设计。软件模型图说明:a、数据流图是结构化系统分析的主要工具。b、它表示了系统内部信息的流向,并表示了系统的逻辑处理功能,是一种功能模型。2.数据流图的符号四种基本符号:圆框—代表数据的变换/加工

方框—表示数据流的源点和终点

箭头—代表数据流,表示数据路径和流向

双杠(或单杠)—表示数据文件、数据库、数据存储注意:每一个图形符号都必须标上名字。名字:加工名数据流名文件名源点/终点名

数据流图例子:机票销售系统3.数据流图的基本成分

⑴数据流:是沿箭头方向传递数据的通道,它具有名字和流向;(流动的数据)方向规定:

·加工→加工·加工←→文件

·源点→加工·加工→终点

说明:在同一张数据流图上不能出现重名的数据流。数据流名⑵加工处理--是对数据流执行某种操作或变换。说明:

通常用一祈使短语表示

就是要完成什么功能

每个加工有一个加工名3.数据流图的基本成分加工名⑶文件--按照某种规则组织起来,长度不限的数据(静止的)。3.数据流图的基本成分文件名说明:-文件:静止的数据指向文件的数据流:写入文件或查询文件流出文件的数据流:读取文件或得到查询结果注:由于文件的内容顾名思义,因而对文件的存取数据流不一定要用名字标记。

⑷源点和终点(统称为“外部实体”)——都对应于外部实体。表示要处理数据的输入来源或处理结果要送往何处。不需要用软件的形式设计和实现具体表现为人员、外设、传感器等3.数据流图的基本成分源点/终点名4.数据流图的画法基本原则:“自外向内,自顶向下,逐层细化,完善求精”

(1)

单层数据流图

步骤:

1)提取四种成分

①找出源点和终点②找出主要加工③找出数据流

④找出文件

2)画系统的输入、输出数据流

单层数据流图的画法3)画数据流图的内部,将系统的输入、输出用一连串加工连接起来

①画加工——表达用户期望的全部工作

②找出数据流——了解每一数据流的组成和加工,设法与系统的输入/输出数据流联系起来。③画文件——同一文件可以在多处画出4)为数据流命名5)为加工命名说明:①绘数据流图时,只考虑数据流的静态关系,而不考虑其动态关系;②只考虑常规状态,而不考虑其异常状态;③动态关系和异常状态一般在设计阶段解决。(2)分层数据流图--数据流图的画法数据流图的分层思想

为了表达复杂系统的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。分层的基本思想是“自顶向下、逐步求精”

做法:

从系统的基本模型(把整个系统看成一个加工)开始,逐层对系统进行分解,直到所有的加工都足够简单,不必再分解为止。通常把这种不需要再分解的加工称为“基本加工”

X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶层中间层底层先全局后局部,先整体后细节,先抽象后具体.0图1图2图1.1图2.1图2.2图分层的数据流图分层的数据流图在多层数据流图中,顶层数据流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。底层数据流图是指其加工不需再做分解的数据流图,它处在最底层。中间层数据流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。分层数据流图举例举例:某单位工资管理系统第一步:画顶层图; 任何系统的顶层数据流图都只有一个,用于反映目标系统所要实现的功能及与外部环境的接口。 顶层数据流图中只有一个大的加工(代表整个系统),数据的源点和终点对应系统的外部实体,表明了系统输入数据的来源和输出数据的去向。顶层(0层)DFD图--工资管理系统人事部门后勤部门出勤表业绩表水电扣款表职工银行工资条1计算工资实发工资表3工资转存2打印工资清单工资存款清单工资清单F3分层数据流图举例第二步:画第一层数据流图;把工资计算系统可划分为计算工资、打印工资清单和工资转存三个加工。第一层DFD图--工资管理系统计算工资完成单位职工工资计算,生成工资清单的功能打印工资清单完成工资条的打印功能工资转存完成生成职工工资存款清单并将其发送到银行的功能人事部门出勤表业绩表1.1计算奖金和缺勤扣款奖金发放表1.2计算应发工资

应发工资表1.3计算所得税1.4计算实发工资实发工资表水电扣款表后勤部门所得税扣款缺勤扣款表工资清单F3(a)(b)工资计算实发工资表3.1查找职工银行工资账号实发工资账号3.2生成工资存款清单工资存款清单银行职工个人工资账号清单F4(a)“计算工资”子数据流图;(b)“工资转存”子数据流图分层数据流图举例第三步:继续分解,得到第二层数据流图;

第二层DFD--工资管理系统

对分解得到的加工进行编号,以反映出它与上层数据流图之间的关系。如对第一层数据流图中的计算工资分解得到的数据流图中的加工的编号分别为1.1~1.4。“计算奖金和缺勤扣款”子数据流图;“计算应发工资”子数据流图分层数据流图举例第三层DFD--工资管理系统分层数据流图举例

从分层数据流图看出:·顶层——描绘了系统的外貌。·底层——提供了细节。·中间层——给出了从抽象到具体的逐步过渡。⑵分层数据流图(DFD)的优点

·便于实现:避免一次引入过多细节,有利于控制问题的复杂度·便于使用:使用户中的不同业务人员可各自选择与本身有关的图形

⑶画分层DFD的指导原则①注意父图和子图的平衡

在分层图中,上层图是下层图的父图,下层图是上层图的子图。任何一个子图与其父图上的一个加工对应。

平衡——指父图和子图的输入数据流和输出数据流应分别保持一致,即信息的连续性必须保持。平衡!父图与子图的平衡不平衡!分层DFD的指导原则②区分局部文件和局部外部项

在下层DFD中可能出现父图中没有的文件和外部项,称为局部文件和局部外部项。一般: 底层DFD—画出全部文件;中间层DFD—画出处于加工之间的接口文件。③掌握分解的速度

每一加工每次可分为2-4个加工,最多不要超出7个。(避免饼形或细长形软件结构)分层DFD的指导原则④遵守加工编号规则加工编号规则:·顶层加工不编号;·第一层的加工编为1,2,3,……,n号;·第二层加工编为1.1,1.2,…,1.n号;

各层DFD的编号规则:·顶层DFD图无图号·第一层编为"图0"·第二层编为"图1","图2",……"图n";·第三层编为"图1.1","图1.2",……,"图1.n"…

概括:·子图的编号即为父图相应加工的编号

·子图中加工的编号由子图号、小数点、局部号构成

分层DFD的指导原则⑤适当的命名—使数据流图便于理解,其他:数据守恒:—每一个加工既有输入数据流又有输出数据流。5.数据流图与其它流程图

的差别系统流程图--表达信息在系统各部件之间的流动情况(数据流、物流、资金流等)。程序流程图--对信息进行加工处理的控制过程(存在先后、时序等限制)。软件结构图—模块间的控制关系、调用关系等。数据流图--描绘信息在系统中变换和传递的情况,不包含任何具体的物理元素。

描述物理模型--系统流程图描述逻辑模型--数据流图注:设计时只考虑系统必须完成的基本逻辑功能。

结构分析方法(SA)基本思想——“分解”和“抽象”分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。特点:以数据流分析作为需求分析的出发点,任何信息处理过程均看成是将输入数据变换成所要求的输出信息的装置。用数据流图来帮助人们理解问题、分析问题。用数据字典精确定义数据流图中每个元素(数据流)的成分。用结构化语言、判定表和判定树对数据流图中的每个加工进行描述。Review父图与子图的平衡平衡!12.1.3数据字典

(DDDataDictionary)1.数据字典的定义和用途2.数据字典的内容3.加工逻辑描述工具1.数据字典的定义和用途数据字典--是关于数据信息的集合,也是对数据流图中出现的的各个元素(数据流、加工、文件)进行完整的定义和说明的集合。用途:

·提供关于数据的描述信息;

·保持数据在系统中的一致性;

·对数据流图(DFD)起注解作用;

·可避免因理解不同而造成混乱。逻辑模型:

·数据流图(DFD)

·数据字典(DD)

共同构成系统的规格说明背景:分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据字典”对图中的元素作出解释。2.数据字典的内容

·

数据流·

数据项

·

数据存储文件·

基本加工

⑴数据流条目

--严格定义组成数据流的数据项。数据流名:说明:简要介绍作用,即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构处理特点(使用频率、数据量等)四种基本条目:示例1:发票数据流名称:发票别

名:购书发票来

源:加工1.2

处:加工1.3、1.4

成:学号+姓名+{书号+单价+数量+总价}

+书费合计

发票(数据流名)=学号(数据项)+姓名(数据项)

+{书号+单价+数量+总价}+书费合计常用符号的描述符号 含义 举例=被定义为+

x=a+b“...”基本数据元素

x=“a”[...,...]或[...|...]或

x=[a,b],x=[a|b]{...}或m{...}n

重复

x={a},x=3{a}8(...)可选

x=(a)+b.. 连结符

x=1..9⑵数据项条目

--给出某个数据单项的定义。

说明:通常指数据项(是不可再分解的数据单位)的。

定义内容:数据项名:值类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:2.数据字典的内容示例1:年级数据元素名:年级别

名:无取值及含义:F――freshman,一年级M――sophomore,二年级J――junior,三年级S――senior,四年级备

注:F/M/J/S可分别用1、2、3、4代替⑶数据存储文件条目

--说明文件的组成数据及组织方式。

数据存储名称:流入、流出数据流:数据存储的组成:数据结构简述:存放的是什么数据数据存储的组织:2.数据字典的内容示例1:各班学生用书表文件名:各班学生用书表描

述:记载一个班在一学年中需用的教材组

成:{系编号+专业和班编号+年级+{书号}}

组织方式:按系、专业和班编号从小到大排列

系编号={数字}2例:01,03,12

专业和班编号={数字}4例:9981

年级=[1/2/3/4]

书号={字母}+{数字}例:ENG1,ENG2,MATH11⑷基本加工条目

--对基本加工进行精确描述,即进行加工说明。

基本加工:是指数据流图中不再分解的加工。加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:策略,简述加工程序,加工顺序2.数据字典的内容示例1

加工名:开发票

编号:1.2

输入数据流:有效购书单

输出数据流:发票加工逻辑:(使用专用工具表达)⑷基本加工条目

加工逻辑说明的描述方式有三种工具:

·结构化语言(StructuredEnglish)

·判定表(DecisionTable)

·判定树(DecisionTree)2.数据字典的内容3.加工逻辑描述工具常用的有结构化语言、判定表、判定树等。(1)结构化语言结构化语言--自然语言+结构化形式结构化程序设计语言中的三种控制结构(顺序、选择、重复),作为加工说明的外部框架。结构化语言—示例例1:商店业务处理系统中“检查发货单”IF

发货单金额超过$500THEN

IF

欠款超过了60天THEN

在偿还欠款前不予批准

ELSE(欠款未超期)发批准书,发货单

ENDIFELSE

(发货单金额未超过$500)

IF欠款超过60天THEN

发批准书,发货单及赊欠报告

ELSE

(欠款未超期)发批准书,发货单

ENDIFENDIF例2加工名:核实订票处理(MHGP3200MD)编号:3.2激活条件:收到取订票信息加工逻辑:1读订票旅客信息文件

2搜索文件中是否有与输入信息姓名及身份证相符的项

IF

有THEN

判断余项是否与文件中信息相符

IF

是THEN

输出已订票信息

ELSE输出未订票信息

ELSE输出未订票信息执行频率:实时(2)判定表

判定表--采用表格化的形式,描述在各种条件下的处理,适于表达含有复杂判断(组合条件的判断)的加工逻辑。

例如:对商店每天的营业额所收税率营业额X(¥)1000≤X<50005000≤X<10000X≥10000税率5%8%10%判定表的优缺点优点: 判定表能够把不同条件下系统应完成哪些操作,表达得清楚、准确,一目了然。缺点: 用判定表描述循环比较困难。说明:

判定表可和结构化语言结合起来使用。(3)判定树判定树--以由左向右水平放置的树形式描述加工逻辑。说明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论