软件工程课程第3次课传统方法学•即结构化的软件工程方法学,按照软件生命周期,分为•1结构化分析•2结构化设计•3结构化实现结构化分析其实就是对用户提出的初步需求反复多次求精细化,以得到对目标系统完整,准确,具体的要求.也可以理解为一种建立模型的活动,通常建立以下三种模型数据模型功能模型行为模型与用户沟通的技术•1访谈•正式访谈:由系统分析员预先准备好问题,会议按实现约定的议程开展•非正式访谈:开放性的问题,允许用户自由发挥,随心所欲地交谈•发放调查表:可以收集更准确认真的回答,并且根据调查情况针对性的选择用户进行访谈•情景分析:给出目标系统的一个特定情景,观察用户的反馈•用处•类似于某中产品演示,便于用户理解,进一步揭露一些目前还不知道的需求•通过勾画目标系统在工作上带来的便利,可以调动用户的积极性简易的应用规格说明技术•上面说的访问方法往往和用户之间区分”你们,我们”,不能象一个团队那样同心协力识别和精化需求•简易的应用规格说明技术是一种面向团队的需求收集方法,提倡用户与开发者密切合作,共同识别问题,提出解决方案要素,指定基本需求和指出不同的解决方法•基本准则•在中立地点举行双方会议•制定会议规则•指出议事日程•由一个中立的”协调人”来主持会议•使用双方都能理解的图表,工作单软件原型•建立可以快速修改的软件原型与用户沟通分析建模与规格说明•分析模型的结构数据字典•描述整个软件使用或者产生的所有数据对象•它是分析模型的核心实体-关系图•描绘数据对象之间的关系•用于数据建模•图中出现的每个数据对象的属性可以在”数据对象描述”中说明数据流图•用于指出当数据在软件系统中移动的时候怎样被变换•描绘变换数据流的功能和子功能•是功能建模的基础•在”处理规格说明”中给出对出现在数据流图中各个功能的描述状态转换图•指明作为外部事件结果的系统行为•描绘了各种状态和在不同状态之间转换的方式•是行为建模的基础•在”控制规格说明”中包含了有关软件控制的附加信息软件需求规格说明•需求分析除了创建分析模型以外,还要写出”软件需求规格说明”•”软件需求规格说明”是需求分析阶段的最终成果一份标准的”软件需求规格说明”规范•需求规格说明书规范需求分析应交付的主要文档是需求规格说明。软件需求规格说明作为分析结果,它是软件开发、软件验收和管理的依据。因此,必须特别重视,不能有一点错误或不当,否则将来可能要付出很大代价。•1引言1.1编写目的•阐明开发本软件的目的•说明编写本软件说明书的目的•指明软件需求说明书所预期的读者1.2项目背景•标识待开发软件产品的名称、代码•列出本项目的任务提出者、项目负责人、系统分析员、系统设计员、程序设计员、程序员、资料员以及与本项目开展工作直接有关的人员和用户•说明该软件产品与其它有关软件产品的相互关系1.3术语说明列出本文档中所用到的专门术语的定义和英文缩写词的原文。1.4参考资料列举编写软件需求规格说明时所参考的资料,包括项目经核准的计划任务书、合同、引用的标准和规范、项目开发计划、需求规格说明、使用实例文档,以及相关产品的软件需求规格说明。在这里应该给出详细的信息,包括标题、作者、版本号、发表日期、出版单位或资料来源。•2项目概述2.1待开发软件的一般描述描述待开发软件的背景,所应达到的目标,以及市场前景等。2.2待开发软件的功能简述待开发软件所具有的主要功能。为了帮助每个读者易于理解,可以使用列表或图形的方法进行描述。使用图形表示,可以采用:•顶层数据流图•UseCase图•系统流程图•层次方框图2.3用户特征描述最终用户应具有的受教育水平、工作经验及技术专长。2.4运行环境描述软件的运行环境,包括硬件平台、硬件要求、操作系统和版本,以及其他的软件或与其共存的应用程序等。2.5条件与限制给出影响开发人员在设计软件时的约束条款,例如:•必须使用或避免使用的特定技术、工具、编程语言和数据库•硬件限制•所要求的开发规范或标准•见教材p30实体-关系图•例子•例子•例子•例子数据流图•例子•数据流图(DataFlowDiagram)简称DFD,它是一种描述“分解”的图示工具。它用直观的图形清晰地描绘了系统的逻辑模型,图中没有任何具体的物理元素,只是描述数据在系统中的流动和处理的情况,具有直观、形象、容易理解的优点。•数据流图有4种基本符号:•数据源点或终点(用正方形表示);•文件(用直线段表示)•加工(用圆表示)•数据流(用箭头表示)。••图2.6是一个定货系统的数据流图。图中,数据的源点是:仓库管理员,数据的终点是:采购员。加工有两个:处理事务和产生报表,其编号分别为:加工l、加工2、文件也有两个:库存清单和定货信息。用箭头来表示的都是数据流,数据流可以由加工流向加工、加工流向文件或从文件流向加工,也可以由数据的源点/终点流向加工或由加工流向数据的源点/终点。一般说来,除了流向文件或由文件流向加工的数据流可不必命名外(因文件命名已非常明确了),每个数据流都必须有一个合适的名字。在图2.6中,事务、定货报表都是数据流名。•例子•命名•1为数据流(或数据存储)命名•2为处理命名状态转换图•例子•书p39•例子练习•P551-5