徐工院林茂linmao_cn@164.com软件工程与项目管理《软件工程与项目管理》2复习提问软件生命周期包含那几个阶段和步骤?软件可行性分析的四个方面?《软件工程与项目管理》34.1需求分析概述1、确定待开发软件的功能、性能、数据、界面等要求。由用户和分析人员双方共同来理解系统的需求,并将共同理解形成一份文件——软件需求说明书。有几种原因使需求分析变得困难:(1)客户说不清楚需求(2)需求自身经常变动(3)分析人员或客户理解有误《软件工程与项目管理》44.1需求分析概述2、需求分析的四个层次:业务需求、用户需求、功能需求、非功能需求《软件工程与项目管理》5需求分析的具体任务是:1、确定软件系统的综合要求1)系统的界面要求2)系统的功能要求3)系统的性能要求4)系统的安全性、保密性和可靠性方面的要求5)系统的运行要求、异常处理要求2、分析软件系统的数据要求3、导出系统的逻辑模型——流程图4、修改项目开发计划5、如有必要,开发一个原型系统——模块、类库6、编写需求分析说明书第一组第二组第三组第四组案例练习要求:请设计一个整数的运算器。可行性分析:1、经济可行性——纯利润200元。2、技术可行性——使用C++和PhotoShopCS。3、操作可行性——详细的用户使用说明。初步开发计划:1、前期查找资料,调研1人。2、分析阶段2人。3、实现阶段1人。4、开发时间:10个工作日。《软件工程与项目管理》64.2需求分析的目标和任务目标:深入描述软件的功能和性能,确定软件设计的约束和接口细节,定义软件的其他有效性需求。对象:用户需求任务:确定系统必须完成哪些工作,实现哪些功能,对目标系统提出完整、准确、具体、清晰的要求。《软件工程与项目管理》74.3需求分析的原则与获取方法1、需求分析原则:清楚表达和理解数据域与功能域自顶向下、逐层分解,不断细化给出逻辑视图和物理视图《软件工程与项目管理》84.3需求分析的原则与获取方法2、需求获取方法:访谈、问卷调查、情景分析、实地考察、构造原型《软件工程与项目管理》94.4需求分析的过程返回节目录需求分析阶段的工作由4部分组成:问题的识别、分析与综合、制定规格、说明和评审。(1)问题的识别(当前系统分析)(2)分析与综合(当前系统——目标系统)(3)编制需求分析阶段的文档(4)需求分析评审《软件工程与项目管理》10常用的分析方法有:面向数据流的结构化分析方法(SA);面向数据结构的JACKSON方法(JSD)、结构化数据系统开发方法(DSSD);面向对象的分析方法(OOA)。《软件工程与项目管理》114.5结构化分析方法结构化分析方法简称SA方法,是一种面向数据流的需求分析方法,适用于分析大型数据处理系统,特别是企事业管理方面的系统。由于该方法的简单实用,现已得到广泛的使用。《软件工程与项目管理》12结构化分析方法的核心思想是:自顶向下、逐层逐步求精。结构化分析的常用工具:数据流图(DFD)数据词典(DD)实体——联系图(E—R图)《软件工程与项目管理》131、数据流图数据流图基本符号箭头:表示数据流,必须有箭头,一般要有命名。圆或者椭圆:表示数据加工或数据处理,应有加工名,分层还要有编号。双杠:表示数据存储,必须命名。方框:表示数据流的起点和终点,必须有名称。《软件工程与项目管理》142.例子某装配厂使用一台小型计算机来处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由仓库中的CRT终端输入到计算机中;系统中的库存清单程序对该事务进行处理,更新存储在磁盘上的库存清单主文件,并把必要的定货信息写到磁带上。最后,每天由报告生成程序读一次磁带,并打印出定货报告。《软件工程与项目管理》15顶层数据流图1层数据流图《软件工程与项目管理》162层数据流图注意问题:1、逐层分解,逐步细化。2、父图与子图、加工编号3、命名要具体详细《软件工程与项目管理》17划分自动边界,确定系统的不同方案根据自动边界,确定本系统为批处理系统。《软件工程与项目管理》18根据自动边界,确定本系统为实时处理系统。《软件工程与项目管理》19例题:画出银行的取款系统的数据流图。系统分析:系统的起点和终点都是用户。加工(处理):完成取款的功能。数据流是取款单、存折和现金。顶层数据流图储户储户取款系统取款单存折存折现金《软件工程与项目管理》20进一步系统分析:取款系统可以分为,资格审查(与银行的帐卡对比查询)、系统登录和付款。1层数据流图《软件工程与项目管理》214.5.3数据词典所谓数据词典就是关于数据的信息集合也就是对数据流图中包含的所有元素的定义的集合。它为数据流图中的每个数据流、文件加工、以及组成数据流或文件的数据项作出说明。其中对加工的描述称为“小说明”,也可称为“加工逻辑说明”。因此,数据词典详细地描述了数据的组成情况和加工规程。《软件工程与项目管理》22数据流图和数据词典共同构成系统的逻辑模型,为系统提供规格说明。它们两者结合在一起才能构成“软件需求说明书”,完整地描述一个系统。1.词典条目词典条目的类型主要有:数据流条目、数据项条目、数据结构、数据存储、加工逻辑和外部实体等。《软件工程与项目管理》23A数据流条目编号:xq-001数据流名称:学生课程表数据流来源:教务处数据流去向:各个班长课程={课程名十教员十教材十课程表}《软件工程与项目管理》24[例3]某系统的“查询”数据流条目描述为:《软件工程与项目管理》25B数据项条目数据项条目给出某个数据单项的定义(不可再分的数据项),这通常是该数据项的值类型、允许值等。[例6]数据项“存期”可取1或3或5或8等几个值,则词典条目“存期”可写成:存期=[1|3|5|8][例7]帐号《软件工程与项目管理》26C数据结构(文件条目)文件条目给出某个文件的定义,文件的定义通常也是列出其记录的组成数据项。此外,文件条目还可以指出文件的组织方式,如按序号递增次序排列等。《软件工程与项目管理》27考试成绩《软件工程与项目管理》28D加工逻辑在数据流图中,有些加工分解成一张子图,这张加工的逻辑反映在这张子图中。对那些不再分解的加工,我们称之为基本加工,对于它们可以用小说明进一步描述这个加工在什么条件下做什么事。《软件工程与项目管理》29《软件工程与项目管理》30加工逻辑是最基本的部分,它描述了输入数据流/文件,输出数据流/文件之间的逻辑关系。常用的加工逻辑描述方法有三种;结构化语言、判定表、判定树。1)结构化语言结构化语言没有严格的语法,它的结构通常可分为内外二层。外层可以有多层,相互嵌套,并且有严格的语法,如结构化英语的外层可以是if—then—else,for—do,while—do,set,cope,case等结构,而内层的语法比较灵活,可以接近于自然语言的描述。《软件工程与项目管理》31《软件工程与项目管理》32《软件工程与项目管理》332.词典管理词典管理主要是把词典条目按某种格式组织后存储在词典中,并提供排序、查找、统计等功能。如果数据流条目中包含了来源和去向,文件条目中包含了读文件和写文件,我们还可以检查数据词典与数据流图的一致性。《软件工程与项目管理》34作业课本71页一、选择题二、简答题2《软件工程与项目管理》354.6需求分析的结果及其描述一、需求分析结果描述1、层次方框图——描述数据的层次结构2、warnnier图——描述数据的层次结构3、IPO图——输入、处理、输出图二、需求分析规格说明书《软件工程与项目管理》36需求分析评审1、技术评审需求分析正确性分析所用技术分析目前人员素质分析2、行政复审需求分析开发计划是否准确可行人员、资金、开发进度和开发环境。《软件工程与项目管理》37需求分析的任务是:1、确定用户要求未来系统必须做什么,也就是应该确定系统必须具备的功能和性能;2、确定系统所要求的运行环境;3、还应该根据对目标系统的更深入更具体的认识,修正目标系统的开发计划;并且要预测系统的发展前景。方法:结构化分析法。常用工具:数据流图、数据词典。小结《软件工程与项目管理》38案例分析1、请写出功能2、画出数据流图顶层、1层。3、写出数据词典数据流、数据项、数据结构、加工逻辑说明《软件工程与项目管理》39需求分析说明书文档格式:1、引言编写目的背景说明术语定义参考资料《软件工程与项目管理》40需求分析说明书文档格式:2、项目概述项目目的运行环境条件限制——系统流程图,开发规范。《软件工程与项目管理》41需求分析说明书文档格式:3、功能需求功能划分功能描述——数据流图4、数据描述数据结构——动态、静态、数据库表数据词典数据采集《软件工程与项目管理》42需求分析说明书文档格式:5、性能需求数据精确度时间特性适应性6、运行需求接口——用户、软件、硬件故障处理《软件工程与项目管理》43需求分析说明书文档格式:7、其他需求可使用性保密性可维护性可移植性