软件工程教案复习李梁省公共课一等奖全国赛课获奖课件.pptx
-
资源ID:97765851
资源大小:361.18KB
全文页数:65页
- 资源格式: PPTX
下载积分:8金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
软件工程教案复习李梁省公共课一等奖全国赛课获奖课件.pptx
1软件工程复习 重庆理工大学计算机科学与工程学院 李梁 第第1页页2课程关键点l第第1-31-3章章 软件工程概、软件过程及软件开发模型软件工程概、软件过程及软件开发模型l软件、程序、数据、文档含义软件、程序、数据、文档含义l软件危机及其表现、处理方法软件危机及其表现、处理方法l软件工程定义与关键思想软件工程定义与关键思想l软件工程基本原理与标准软件工程基本原理与标准l软件工程基本范型软件工程基本范型l软件过程及软件过程模型软件过程及软件过程模型l软件工程生命周期概念以及它各个阶段内容,各阶段软件工程生命周期概念以及它各个阶段内容,各阶段主要任务主要任务 l软件工程主要开发模型:软件工程主要开发模型:瀑布模式、瀑布模式、增量模型增量模型、螺旋、螺旋模型、面向对象过程模型模型、面向对象过程模型第第2页页3课程关键点l第第5 5章章 软件需求分析软件需求分析l软件需求软件需求分析概念、主要过程与步骤、软件需求类分析概念、主要过程与步骤、软件需求类型型l软件处理方案:目标、性能指标评价、处理方式、软件处理方案:目标、性能指标评价、处理方式、可行性分析。可行性分析。l开启分析过程:开启分析过程:确认利益相关者确认利益相关者、识别视点识别视点、协同协同工作工作、首次提问首次提问l主要需求获取技术:主要需求获取技术:会谈、调查表、场景描述、会谈、调查表、场景描述、l主要需求描述技术:主要需求描述技术:流程图和用例图流程图和用例图第第3页页4课程关键点l第第6 6章章 结构化分析建模结构化分析建模l分析模型概述分析模型概述l结构化分析模型概念结构化分析模型概念l SA概念和概念和SA法主要模型(功效、数据、行为)法主要模型(功效、数据、行为)l掌握数据流程图基本画法,会画数据流程图掌握数据流程图基本画法,会画数据流程图l掌握数据字典书写格式,会编写数据字典掌握数据字典书写格式,会编写数据字典l对已明确需求软件,会设计其主要数据流程图,编写主对已明确需求软件,会设计其主要数据流程图,编写主要数据字典要数据字典l掌握决议树、决议表绘制,熟悉结构式语言表示法;掌握决议树、决议表绘制,熟悉结构式语言表示法;l掌握掌握IPO图画法图画法第第4页页5课程关键点l第第8-98-9章章 结构化软件设计结构化软件设计l系统设计(概要设计、过程设计)任务和步骤(过程)系统设计(概要设计、过程设计)任务和步骤(过程)l设计标准:抽象、自顶向下逐步求精、模块化、信息隐藏、设计标准:抽象、自顶向下逐步求精、模块化、信息隐藏、重构概念重构概念l常见模块独立性度量标准:耦合(常见模块独立性度量标准:耦合(7 7种)和内聚(种)和内聚(7 7种)种)l软件模块结构中基本术语和启发式设计策略:软件模块结构中基本术语和启发式设计策略:深度、宽度、深度、宽度、扇出、扇入、调用、判断调用、数据信息、控制信息扇出、扇入、调用、判断调用、数据信息、控制信息l掌握概要设计(总体设计)绘制工具:层次图和掌握概要设计(总体设计)绘制工具:层次图和HIPOHIPO图、图、软件结构图软件结构图l掌握掌握SDSD法设计过程与步骤法设计过程与步骤l会区分变换型、事务型数据流图,并掌握对应映射方法会区分变换型、事务型数据流图,并掌握对应映射方法l会使用会使用SDSD法将法将DFDDFD转映射成模块结构图转映射成模块结构图l了解对模块结构图启发式设计策略了解对模块结构图启发式设计策略第第5页页6课程关键点l第第8-98-9章章 结构化软件设计结构化软件设计l知道详细设计(过程设计)内容、过程及步骤知道详细设计(过程设计)内容、过程及步骤l界面设计步骤与基本准则界面设计步骤与基本准则l会使用常见过程设计工具:程序流程图、会使用常见过程设计工具:程序流程图、NSNS表、判定表、表、判定表、过程设计语言过程设计语言l了解编码语言分类,选择设计语言要考虑原因了解编码语言分类,选择设计语言要考虑原因l知道常见编程语言和工具(知道常见编程语言和工具(C/SC/S和和B/SB/S)l知道常见数据库产品知道常见数据库产品l知道常见软件知道常见软件CASECASE工具工具l知道开发规范及编码格调主要内容知道开发规范及编码格调主要内容l知道结构化程序设计三种基本控制结构知道结构化程序设计三种基本控制结构 第第6页页7课程关键点l第第7 7、10-1110-11章章 面向对象分析与设计面向对象分析与设计l面向对象方法学概念、特点,与面向过程开发方法区分;面向对象方法学概念、特点,与面向过程开发方法区分;l面向对象分析设计步骤、过程面向对象分析设计步骤、过程l清楚对象、类、实例、消息、属性、方法(服务)、继承、清楚对象、类、实例、消息、属性、方法(服务)、继承、消息、主题概念消息、主题概念l知道知道OMTOMT对象建模技术对象、动态与功效三大模型对象建模技术对象、动态与功效三大模型l知道知道UMLUML主要模型(用户、结构、行为、实现、环境)及组主要模型(用户、结构、行为、实现、环境)及组成主要图形(对象类图、次序图、状态图)画法和事务成主要图形(对象类图、次序图、状态图)画法和事务(类、属性、服务、主要关联、多重性、角色、包、泛化、(类、属性、服务、主要关联、多重性、角色、包、泛化、聚集、关联类、用例、事件、状态、消息)聚集、关联类、用例、事件、状态、消息)l对已明确需求描述,会设计其面向对象模型(用例图、活对已明确需求描述,会设计其面向对象模型(用例图、活动图、对象类图、行为脚本、次序图、状态图)动图、对象类图、行为脚本、次序图、状态图)第第7页页8课程关键点l面向对象分析设计技术面向对象分析设计技术l知道对象、类、实例、属性、行为、继承、消息、包知道对象、类、实例、属性、行为、继承、消息、包概念概念l知道面向对象需求分析过程知道面向对象需求分析过程l知道知道UMLUML概念和概念和UMLUML基本模型基本模型l对已明确需求系统,会设计其面向对象模型及动态模对已明确需求系统,会设计其面向对象模型及动态模型(用例图、活动图、类图、次序图、状态图)型(用例图、活动图、类图、次序图、状态图)第第8页页9课程关键点l第第11-1211-12章章 软件实现软件实现l知道软件测试目标、标准、标准和测试步骤知道软件测试目标、标准、标准和测试步骤l知道黑盒法与白盒法测试技术知道黑盒法与白盒法测试技术l知道单元、集成、确认、系统测试主要内容,在开发过程知道单元、集成、确认、系统测试主要内容,在开发过程中位置和使用主要技术(注意驱动、桩模块概念)中位置和使用主要技术(注意驱动、桩模块概念)l会设计黑合测试中等价类划分、边值测试测试实例会设计黑合测试中等价类划分、边值测试测试实例l知道一些主要专题测试(如知道一些主要专题测试(如测试、测试、测试、可靠性测试、测试、可靠性测试、性能测试、恢复测试)性能测试、恢复测试)l测试用例设计目标测试用例设计目标及编制方法及编制方法l了解软件维护概念、任务及软件维护分类了解软件维护概念、任务及软件维护分类第第9页页10重点技术l需求调查:业务流程图、用例图、活动图需求调查:业务流程图、用例图、活动图lSASA法:分层法:分层DFDDFD图、数据字典编制(描述)、判断表、图、数据字典编制(描述)、判断表、判断树判断树lSDSD法:软件结构图、法:软件结构图、HIPOHIPO图、图、DFDDFD映射方法:变换分析映射方法:变换分析与事务分析与事务分析lOOOO:对象模型(对象类图)、动态模型(行为脚本、:对象模型(对象类图)、动态模型(行为脚本、状态图、次序图)、功效模型(状态图、次序图)、功效模型(DFDDFD)l测试:等价类划分、边值分析设计测试用例测试:等价类划分、边值分析设计测试用例l注意:案例方案文档(图书、注意:案例方案文档(图书、ATMATM、POSPOS、短信、出卷)、短信、出卷)第第10页页11l软件软件是计算机系统中与硬件相互依存另一部分,是计算机系统中与硬件相互依存另一部分,它是包含它是包含程序,数据及其相关文档完整集合。程序,数据及其相关文档完整集合。l程序程序是按事先设计功效和性能要求执行指令序列是按事先设计功效和性能要求执行指令序列l数据数据是使程序能正常操纵信息数据结构是使程序能正常操纵信息数据结构l文档文档是与程序开发,维护和使用相关图文材料是与程序开发,维护和使用相关图文材料l软件软件=程序程序+文档文档l软件危机概念:软件危机概念:软件危机是指在计算机软件开发和维护软件危机是指在计算机软件开发和维护过程中所碰到一系列严重问题。即包含两方面问题:过程中所碰到一系列严重问题。即包含两方面问题:怎样怎样开发软件、怎样维护软件开发软件、怎样维护软件软件及软件危机09:04:35第第11页页12软件工程基本概念软件工程软件工程软件工程软件工程:是以工程化思想进行软件开发,以生产高质量和高是以工程化思想进行软件开发,以生产高质量和高效率软件。效率软件。教材定义教材定义关键观点:把软件看作是一个工程产品。关键观点:把软件看作是一个工程产品。Fritz Bauer定义:定义:软件工程是为了经济地取得能够在实际机器软件工程是为了经济地取得能够在实际机器上有效运行可靠软件而建立和使用一系列完善上有效运行可靠软件而建立和使用一系列完善工程化标准。工程化标准。软件工程基本原理:推迟实现观点、逐步求精观点、分解与抽软件工程基本原理:推迟实现观点、逐步求精观点、分解与抽象观点、信息隐蔽观点、质量确保观点象观点、信息隐蔽观点、质量确保观点软件过程软件过程是为了开发出软件产品,或者是为了完成软件工程项是为了开发出软件产品,或者是为了完成软件工程项目而需要完成相关目而需要完成相关软件工程活动。软件工程活动。通常使用通常使用生命周期模型生命周期模型简练简练地描述软件过程地描述软件过程软件过程模型:软件过程模型:就是把软件生命周期中各项开发活动流程用一就是把软件生命周期中各项开发活动流程用一个合理框架个合理框架(开发模型开发模型)来规范描述。来规范描述。09:04:35第第12页页13阶段阶段关键问题关键问题结束标准(任务)结束标准(任务)问题定义问题定义问题是什么?问题是什么?l关于规模和目标汇报书关于规模和目标汇报书可行性研究可行性研究是否可行?是否可行?l系统高层逻辑模型;系统高层逻辑模型;l数据流图;成本数据流图;成本/效益分析效益分析需求分析需求分析系统必须做什么?系统必须做什么?l系统逻辑模型;数据流图;系统逻辑模型;数据流图;l数据字典,算法描述数据字典,算法描述 概要设计概要设计l任何处理问题?任何处理问题?系统流程图;成本系统流程图;成本/效益分析效益分析层次图和结构图层次图和结构图详细设计详细设计l怎样详细实现怎样详细实现HIPOHIPO或或PDLPDL编码和单元编码和单元测试测试l正确程序模块正确程序模块源程序清单;单元测试方案和源程序清单;单元测试方案和结果结果测试测试l符合要求软件符合要求软件l综合测试方案和结果;综合测试方案和结果;l完整一致软件配置完整一致软件配置运行、维护运行、维护持久地满足用户需要持久地满足用户需要l完整准确维护统计完整准确维护统计09:04:35第第13页页14CMM(Capability Maturity Model):是用于评价软件机构软是用于评价软件机构软件过程能力成熟度模型。件过程能力成熟度模型。是指对过程计划或定义水平、过程是指对过程计划或定义水平、过程是指对过程计划或定义水平、过程是指对过程计划或定义水平、过程实施水平、过程管理和控制水平、过程改进潜力等指标综合实施水平、过程管理和控制水平、过程改进潜力等指标综合实施水平、过程管理和控制水平、过程改进潜力等指标综合实施水平、过程管理和控制水平、过程改进潜力等指标综合评价评价评价评价思想思想:管理软件过程方法不妥引发问题,造成新软件技术利:管理软件过程方法不妥引发问题,造成新软件技术利用并不会自动提升软件生产率和质量。用并不会自动提升软件生产率和质量。关键关键:CMM为软件企业过程能力提供一个为软件企业过程能力提供一个阶梯式改进框架阶梯式改进框架阶梯式改进框架阶梯式改进框架,它基于过去全部软件工程过程改进结果,吸收以往软件工程它基于过去全部软件工程过程改进结果,吸收以往软件工程经验教训,提供一个基于过程改进框架。经验教训,提供一个基于过程改进框架。CMMI I(Capability Maturity Model Integration):即能力成熟:即能力成熟度模型度模型集成集成,是,是CMM模型最新版本。模型最新版本。能力成熟度模型-CMM09:04:36第第14页页15为企业发展要求过程成熟级别,分为为企业发展要求过程成熟级别,分为5级:级:p初始级初始级(Initial):普通企业皆含有):普通企业皆含有p可重复级可重复级(Repeatable):成功经验能够重复):成功经验能够重复p已定义级已定义级(Defined):一套完整企业过程,人员自觉):一套完整企业过程,人员自觉恪守(培训)恪守(培训)p已管理级(已管理级(Managed、已控制):过程、已控制):过程&产品可度量和产品可度量和控制控制p优化级(优化级(Optimizing):过程连续改进):过程连续改进作用:作用:从无序到有序、从特殊到普通、从定性管理到定量从无序到有序、从特殊到普通、从定性管理到定量管理、最终到达动态优化。管理、最终到达动态优化。能力成熟度模型-CMM09:04:36第第15页页16l瀑布模型提供了软件开发基本框架。瀑布模型提供了软件开发基本框架。l瀑布模型将软件生命周期划分为软件计划、需求分析和定瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段个阶段,要求了它们自上而下、相互衔接固定次序,如同,要求了它们自上而下、相互衔接固定次序,如同瀑布流水逐层下落而得名瀑布流水逐层下落而得名l它是一个软件开发架构,开发过程是经过一系列阶段次序它是一个软件开发架构,开发过程是经过一系列阶段次序展开。展开。l每个阶段都会产生循环反馈每个阶段都会产生循环反馈l各个阶段产生文档是维护软件产品时必不可少,没有文档各个阶段产生文档是维护软件产品时必不可少,没有文档软件几乎是不可能维护。软件几乎是不可能维护。l瀑布模型特点:次序性和依赖性、推迟实现、质量确保观瀑布模型特点:次序性和依赖性、推迟实现、质量确保观点、是一个线性模型、强调文档作用。点、是一个线性模型、强调文档作用。瀑布模型09:04:36第第16页页17阶段目标阶段目标关键问题关键问题l主要活动主要活动l阶段结果阶段结果问题定义问题定义l发觉事实,并描发觉事实,并描述问题是什么述问题是什么?l事实事实问题:发觉和研究系统问题:发觉和研究系统面临问题面临问题l项目提议书项目提议书可行性分析可行性分析l明确问题是否值明确问题是否值得做?回答是否得做?回答是否能够做?能够做?l问题问题提议:系统初步调查与提议:系统初步调查与分析分析l可行性分析汇可行性分析汇报报项目立项项目立项l处理项目标立项处理项目标立项问题问题l提议提议项目:编制初步需求和项目:编制初步需求和立项审批表;立项评审立项审批表;立项评审项目立项书项目立项书项目计划项目计划l处理项目标控制处理项目标控制问题问题项目项目计划:编制项目计划;评审与修订项计划:编制项目计划;评审与修订项目计划目计划项目计划书项目计划书需求分析需求分析回答系统做什么?明确回答系统做什么?明确系统不能做什么?系统不能做什么?问题问题需求:需求详细调查;问题转化与需需求:需求详细调查;问题转化与需求描述;需求评审;需求分析求描述;需求评审;需求分析l系统分析汇报系统分析汇报总体设计总体设计l处理框架性怎样处理框架性怎样做问题?做问题?需求需求软件架构:需求转化与设计;设计评软件架构:需求转化与设计;设计评审与修改;补充调研审与修改;补充调研l概要设计汇报概要设计汇报详细设计详细设计l回答详细细节怎回答详细细节怎么做问题么做问题软件架构软件架构软件结构:需求分析与研究;设软件结构:需求分析与研究;设计评审与修改;补充调研计评审与修改;补充调研l详细设计汇报详细设计汇报编码编码l回答详细做问题回答详细做问题软件结构软件结构程序代码:编码、单元测试,硬程序代码:编码、单元测试,硬件安装与测试,系统集成件安装与测试,系统集成源程序清单源程序清单l测试与测试与公布公布评价做怎样评价做怎样l代码代码软件:系统测试;系统软件:系统测试;系统安装与测试;系统公布;系统安装与测试;系统公布;系统培训;系统切换培训;系统切换l系统测试汇报系统测试汇报l用户手册用户手册运行与维护运行与维护l持久地满足用户持久地满足用户需要,尽可能延需要,尽可能延长系统生命力长系统生命力l软件软件答案:结构系统之前发答案:结构系统之前发觉问题答案,处理问题觉问题答案,处理问题l系统运行日志系统运行日志l项目验收汇报项目验收汇报l系统总结汇报系统总结汇报瀑布模型瀑布模型软件开发各阶段任务表软件开发各阶段任务表第第17页页18面向对象是一个程序设计方法,或者说它是一个程序设计面向对象是一个程序设计方法,或者说它是一个程序设计范型。范型。基本思想是使用对象,类,继承,封装,消息等基本概念基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。来进行程序设计。面向对象要素:面向对象要素:p抽象:强调实体本质、内在属性,忽略一些无关紧要属抽象:强调实体本质、内在属性,忽略一些无关紧要属性。类实现了对象数据(即状态)和行为抽象,是对象性。类实现了对象数据(即状态)和行为抽象,是对象共性抽象。共性抽象。p封装性:指全部软件部件内部都有明确范围以及清楚外封装性:指全部软件部件内部都有明确范围以及清楚外部边界。部边界。p共享性:共享性:面向对象特征:对象惟一性;分类性;继承性;多态性面向对象特征:对象惟一性;分类性;继承性;多态性(多形性)。(多形性)。面向对象过程模型09:04:36第第18页页19自行开发方式自行开发方式是一个完全依靠是一个完全依靠用户本身开发用户本身开发力量,由用户单力量,由用户单位本身员工组位本身员工组成项目组,依据成项目组,依据用户单位特点用户单位特点来开发软件系统来开发软件系统软件系统开发方式软件系统开发方式联合开发方式联合开发方式是由用户单位与是由用户单位与用户单位外单用户单位外单位共同组成系统位共同组成系统开发小组,针对开发小组,针对企业详细情况企业详细情况和要求,共同完和要求,共同完成系统开发任务成系统开发任务外包开发方式外包开发方式是一个是一个“交钥匙交钥匙”工程开发方式,工程开发方式,即承包方依据用即承包方依据用户单位提出开发户单位提出开发要求,提出软件要求,提出软件系统大致框架和系统大致框架和开发所需费用等,开发所需费用等,当双方签署协议当双方签署协议后,将系统开发后,将系统开发任务全部外包给任务全部外包给专业软件开发单专业软件开发单位。位。含有不一样功含有不一样功效效信息系统作为信息系统作为一个商品越来越一个商品越来越多,用户单位可多,用户单位可以象购置其它物以象购置其它物品一样,到市场品一样,到市场购置所需要软件购置所需要软件系统,这就是系统,这就是采取购置方式采取购置方式自行开发自行开发联合开发联合开发外包外包购置购置第第19页页20自行开发自行开发联合开发联合开发外包外包l购置购置系统分析与设计系统分析与设计能力要求能力要求非常需要非常需要非常需要非常需要不太需要不太需要不需要不需要编程能力要求编程能力要求非常需要非常需要不太需要不太需要不太需要不太需要不需要不需要l系统可维护性系统可维护性l轻易轻易l轻易轻易比较困难比较困难困难困难l程序可维护性程序可维护性l轻易轻易相当困难相当困难相当困难相当困难困难困难开开发发费费用用用于单位外用于单位外部部小小大大大大小小用于单位内用于单位内部部大大中等中等小小小小开发风险开发风险大大比较大比较大比较大比较大小小几个开发方式比较几个开发方式比较第第20页页21可行性研究可行性研究l可行性研究任务:可行性研究任务:用最小代价在尽可能短时间内确定问题是否用最小代价在尽可能短时间内确定问题是否能够处理。可行性研究目标能够处理。可行性研究目标不是处理问题不是处理问题,而是而是确定问题是否确定问题是否值得处理值得处理。l l经济可行性、技术可行性、操作可行性研究系统是否可行经济可行性、技术可行性、操作可行性研究系统是否可行经济可行性、技术可行性、操作可行性研究系统是否可行经济可行性、技术可行性、操作可行性研究系统是否可行l可行性研究输入是系统一个框架描述和高层逻辑模型可行性研究输入是系统一个框架描述和高层逻辑模型l输出是一份需求开发评价汇报,对需求工程和系统开发是否输出是一份需求开发评价汇报,对需求工程和系统开发是否值得做详细提议和意见。值得做详细提议和意见。l三个问题:三个问题:系统是否符合机构总体要求?系统是否符合机构总体要求?系统是否可在现有技术条件、预算和时间限制内完成?系统是否可在现有技术条件、预算和时间限制内完成?系统能否把已存在其它系统集成?系统能否把已存在其它系统集成?09:04:36第第21页页22设定优先级设定优先级l l设定基本标准设定基本标准设定基本标准设定基本标准:时间投入、成本投入和取得效益:时间投入、成本投入和取得效益(包含无形社会包含无形社会性效益性效益)是最主要三个考评指标。是最主要三个考评指标。l设定优先级原因设定优先级原因目标系统能降低成本?何时、何地、怎样降低?花费代价怎么样目标系统能降低成本?何时、何地、怎样降低?花费代价怎么样目标系统能增加收入?何时、何地、怎样增加?花费代价怎么样目标系统能增加收入?何时、何地、怎样增加?花费代价怎么样目标系统能产生更多信息或更多结果吗?目标系统能产生更多信息或更多结果吗?目标系统能为客户和企业自己提供更加好服务?目标系统能为客户和企业自己提供更加好服务?目标系统能在合理时间内完成吗?目标系统能为企业提供多长服目标系统能在合理时间内完成吗?目标系统能为企业提供多长服务期限?务期限?具备必要人力、财力、技术、管理和资金资源吗?具备必要人力、财力、技术、管理和资金资源吗?l注意事项注意事项系统分析员尽可能采取有形方式评价系统系统分析员尽可能采取有形方式评价系统无形成本无形成本/效益是影响设定级别主要原因效益是影响设定级别主要原因设定优先级是一个综合权衡过程,设定优先级是一个综合权衡过程,没有绝正确、只有相正确没有绝正确、只有相正确没有绝正确、只有相正确没有绝正确、只有相正确。仁者见刃,智者见智仁者见刃,智者见智仁者见刃,智者见智仁者见刃,智者见智可行性研究可行性研究09:04:36第第22页页23l l软件需求软件需求软件需求软件需求:就是指用户对自己目标系统在功效、行为、性能就是指用户对自己目标系统在功效、行为、性能和约束等方面和约束等方面期望期望期望期望。在实际操作过程中,软件需求会跨越多。在实际操作过程中,软件需求会跨越多阶段,同时含有重复性阶段,同时含有重复性。基础性基础性基础性基础性:需求分析是在可行性研究阶段基础上进行,需要仔需求分析是在可行性研究阶段基础上进行,需要仔细研究可行性阶段提出细研究可行性阶段提出甲乙双方需求甲乙双方需求并深入详细化。并深入详细化。主要性主要性主要性主要性:软件项目中软件项目中40%60%问题问题都是在需求分析都是在需求分析阶阶段埋段埋下下“祸祸根根”。因。因为为采取一些不合采取一些不合规规范方法,造成开发者开发与范方法,造成开发者开发与用户所想得到软件存在着巨大期望差异。软件需求分析基本用户所想得到软件存在着巨大期望差异。软件需求分析基本任务是任务是准确准确地回答地回答“做什么做什么做什么做什么?”。需求分析是系统分析与软。需求分析是系统分析与软件设计之间件设计之间主要桥梁主要桥梁。软件需求09:04:36第第23页页24l功效需求:功效需求:描述系统预期提供功效或服务。描述系统预期提供功效或服务。l对系统应提供服务对系统应提供服务l怎样对输入做出反应怎样对输入做出反应l系统在特定条件下行为系统在特定条件下行为l非功效需求:非功效需求:指那些不直接与系统详细功效相关一类需求。指那些不直接与系统详细功效相关一类需求。通常划分为:通常划分为:l产品需求:产产品需求:产品行为需求。品行为需求。l机构需求:机构需求:客户、开发者所在机构政策和要求需求。客户、开发者所在机构政策和要求需求。l外部需求:外部需求:系统外部原因和开发过程总和。系统外部原因和开发过程总和。l领域需求:领域需求:源于系统应用领域需求。比如,信用卡安全登陆源于系统应用领域需求。比如,信用卡安全登陆密码隐藏需求密码隐藏需求等。等。领域需求经常影响到系统可用性,是基本应用问题。领域需求经常影响到系统可用性,是基本应用问题。基于功效软件需求分类基于功效软件需求分类完整完整一致一致准确准确要要 求求软件需求类型09:04:36第第24页页25l业务需求业务需求反应组织机构或客户对系统、产品概括性要求,反应组织机构或客户对系统、产品概括性要求,包含所要到达业务目标,由项目视图与范围文档说明。包含所要到达业务目标,由项目视图与范围文档说明。l用户需求用户需求描述用户使用系统而要完成各种任务,由用例描述用户使用系统而要完成各种任务,由用例(use case)文档或方案脚本说明。文档或方案脚本说明。l功效需求功效需求定义开发人员必须实现软件功效,源于用户需定义开发人员必须实现软件功效,源于用户需求,是软件需求说明书中主要组成部分求,是软件需求说明书中主要组成部分。基于层次软件需求分类09:04:36第第25页页26l需求分析主要是了解客户需求分析主要是了解客户需要什么需要什么、做什么做什么,分析要求、评,分析要求、评价可行性、协商合理方案、无歧义地详细说明方案、确认规价可行性、协商合理方案、无歧义地详细说明方案、确认规格说明、管理需求,并将这些需求转化为可行系统。格说明、管理需求,并将这些需求转化为可行系统。l需求分析过程包含需求分析过程包含初步沟通初步沟通导出需求导出需求分析和精化分析和精化可行性研究可行性研究协商与沟通协商与沟通规格说明规格说明需求验证需求验证变更管理变更管理需求分析过程09:04:36第第26页页27确定利益相关者确定利益相关者l利益相关者是指直接或间接从正在开发系统中获益人,或者与利益相关者是指直接或间接从正在开发系统中获益人,或者与正开发系统有利益关系人,所以也称关联人员,按照利益大致正开发系统有利益关系人,所以也称关联人员,按照利益大致分为分为6 6类:全部者、用户、系统设计师、系统结构师、系统分析类:全部者、用户、系统设计师、系统结构师、系统分析师、软硬件供给商和咨询顾问师、软硬件供给商和咨询顾问l软件开发团体人员组成:作为商品化软件开发团体,其人员组软件开发团体人员组成:作为商品化软件开发团体,其人员组成是以上述前成是以上述前5 5类人员为主;作为非商品化软件开发团体,以第类人员为主;作为非商品化软件开发团体,以第2 25 5种人员为主,此时,用户经常就代表了全部者利益。对于种人员为主,此时,用户经常就代表了全部者利益。对于第第6 6类人员,通常不会纳入开发团体。类人员,通常不会纳入开发团体。开启分析过程开启分析过程09:04:36第第27页页28软件关联人员关注点软件关联人员关注点l因为利益不一样,关联人员出发点和关注点也就不一样因为利益不一样,关联人员出发点和关注点也就不一样全部者:关注软件范围,如用途、目标、任务、远景、成本和全部者:关注软件范围,如用途、目标、任务、远景、成本和收益等;收益等;用户:关注软件需求,如软件是干什么,怎么干,效果会怎么用户:关注软件需求,如软件是干什么,怎么干,效果会怎么样?样?系统设计员:关注软件详细设计内容,怎样使用信息技术实现系统设计员:关注软件详细设计内容,怎样使用信息技术实现软件?经常,系统设计人员也是系统结构人员;软件?经常,系统设计人员也是系统结构人员;系统结构员:关注软件结构,软件实际技术实现?怎样测试软系统结构员:关注软件结构,软件实际技术实现?怎样测试软件?怎样公布软件?件?怎样公布软件?系统分析员:关注软件开发工作顺利进行,沟通团体中技术人系统分析员:关注软件开发工作顺利进行,沟通团体中技术人员与非技术人员,推进团体开发工作;员与非技术人员,推进团体开发工作;软硬件供给商和咨询顾问:关注信息技术选型、价格、技术要软硬件供给商和咨询顾问:关注信息技术选型、价格、技术要求、交货时间、售后服务和系统架构等。求、交货时间、售后服务和系统架构等。开启分析过程开启分析过程09:04:36第第28页页29识别视点识别视点视点:指软件关联人员从不一样视角对待该系统。比如,超视点:指软件关联人员从不一样视角对待该系统。比如,超市市POS机收银员关心准确、快速生成一次销售,且没有支付机收银员关心准确、快速生成一次销售,且没有支付错误;超市售货员关注销售业绩和分成;大学生关注课程作错误;超市售货员关注销售业绩和分成;大学生关注课程作用、学分、成绩和收费等等。用、学分、成绩和收费等等。问题:软件关联人员视点、信息都可能存在不一致、甚至矛问题:软件关联人员视点、信息都可能存在不一致、甚至矛盾地方,软件开发技术人员工作重点就是识别、分析视点中盾地方,软件开发技术人员工作重点就是识别、分析视点中包括信息类型、需求属性等。比如,超市包括信息类型、需求属性等。比如,超市POS机系统就需要机系统就需要制订严格操作流程,如款清帐明、人清日结、高层管理退货制订严格操作流程,如款清帐明、人清日结、高层管理退货退款等退款等开启分析过程开启分析过程09:04:36第第29页页30实例分析:出卷系统实例分析:出卷系统l利益相关者:利益相关者:l教师:关注怎样出一份合理试卷,并能依据样式打印与输教师:关注怎样出一份合理试卷,并能依据样式打印与输出。出。l学生:关注怎样经过生成一些模拟试题,并在线学习和检学生:关注怎样经过生成一些模拟试题,并在线学习和检验学习结果。验学习结果。l题库维护人员:关注试题添加、更新和删除等工作。题库维护人员:关注试题添加、更新和删除等工作。l视点:视点:教师关注自动出卷、手工出卷、试卷编辑和试卷输出。教师关注自动出卷、手工出卷、试卷编辑和试卷输出。学生关注随时抽卷、联络试卷和评价分析。学生关注随时抽卷、联络试卷和评价分析。题库维护人员关注试题管理。题库维护人员关注试题管理。非形式化需求分析技术非形式化需求分析技术09:04:36第第30页页31非形式化需求分析技术非形式化需求分析技术l图书馆系统共利益者与视点有:图书馆系统共利益者与视点有:图书流通管理:负责图书借还工作。图书流通管理:负责图书借还工作。用户:希望快速得到借书,还书服务,能够续借、预用户:希望快速得到借书,还书服务,能够续借、预约图书,以及查询个人和图书信息。约图书,以及查询个人和图书信息。编目管理员:负责图书管理、用户管理和处理罚金等。编目管理员:负责图书管理、用户管理和处理罚金等。09:04:36第第31页页32会谈会谈正式会谈:提出一些可自由回答问题。正式会谈:提出一些可自由回答问题。非正式会谈:提出一些事先准备好议题。非正式会谈:提出一些事先准备好议题。情景分析:需求分析从对场景评论中得到信息,然后情景分析:需求分析从对场景评论中得到信息,然后再将其以形式化方式表示出来。再将其以形式化方式表示出来。调查表调查表l制订调查表制订调查表l分析分析l建立原型建立原型l界面界面l执行过程执行过程非形式化需求分析技术非形式化需求分析技术09:04:37第第32页页33场景分析场景分析l分析员与项目相关人员共同识别出情景,并捕捉这些情景分析员与项目相关人员共同识别出情景,并捕捉这些情景细节。细节。l把细节加入到一个纲要需求描述中时,情景尤其有用。把细节加入到一个纲要需求描述中时,情景尤其有用。l情景是对交互实例片断描述,每个情景可能包含一个或多情景是对交互实例片断描述,每个情景可能包含一个或多个交互,它们能在不一样细节层次上提供不一样类型情景个交互,它们能在不一样细节层次上提供不一样类型情景信息。信息。l情景开始于一个框架,在导出过程中,细节被逐步增加,情景开始于一个框架,在导出过程中,细节被逐步增加,直到产生交互一个完整描述。直到产生交互一个完整描述。非形式化需求分析技术非形式化需求分析技术09:04:37第第33页页34一个情景可能包含以下内容:一个情景可能包含以下内容:在情景开始部分有一个系统状态描述;在情景开始部分有一个系统状态描述;一个关于标准事件流描述;一个关于标准事件流描述;一个关于哪儿会犯错,以及怎样处理错误描述;一个关于哪儿会犯错,以及怎样处理错误描述;相关其它可能在同一时间进行活动信息;相关其它可能在同一时间进行活动信息;在情景完成后系统状态描述。在情景完成后系统状态描述。非形式化需求分析技术非形式化需求分析技术09:04:37第第34页页35l结构化分析结构化分析(SA,Structured Analysis)方法是)方法是20世纪世纪70年年代,由代,由E.Yourdon等人提倡一个适合用于大型数据处理系统、等人提倡一个适合用于大型数据处理系统、面向数据流需求分析方法面向数据流需求分析方法。l结构化分析方法是一个结构化分析方法是一个传统系统建模技术传统系统建模技术,其过程是创建描述,其过程是创建描述信息内容和信息内容和数据流模型数据流模型,依据,依据功效功效和和行为行为对系统进行划分,并对系统进行划分,并描述必须建立系统要素。描述必须建立系统要素。l结构化分析将系统结构化分析将系统自顶向下逐层分解自顶向下逐层分解,到达表示系统目标,它,到达表示系统目标,它采取采取一组一组过程模型过程模型图形化地描述一个系统图形化地描述一个系统逻辑模型逻辑模型。l结构化需求分析指导性标准结构化需求分析指导性标准:了解问题了解问题、开发模型开发模型、描述需求描述需求、建立系统模型建立系统模型、确定需求优先级确定需求优先级、验证需求验证需求l结构化分析方法是一个建模技术结构化分析方法是一个建模技术l基于计算机系统是数据流和一系列转换组成基于计算机系统是数据流和一系列转换组成l在模型关键是在模型关键是数据词典数据词典,它描述了全部在目标系统中使用和生,它描述了全部在目标系统中使用和生成数据对象。围绕着这个关键有三种图:成数据对象。围绕着这个关键有三种图:ERDERD、DFDDFD、STDSTD结构化分析概述09:04:37第第35页页36结构化分析模型l分析模型分析模型目标目标是为基于计算机系统提供必须信息、功效和行为域是为基于计算机系统提供必须信息、功效和行为域说明。说明。l模型模型是对系统某个方面抽象,抛弃了是对系统某个方面抽象,抛弃了详细细节详细细节,对系统中最突出,对系统中最突出特征作简化特征作简化。l分析模型全部元素都能够直接映射到分析模型全部元素都能够直接映射到设计模型设计模型l结构化分析模型组成结构化分析模型组成l数据建模和对象描述数据建模和对象描述l功效建模和数据流图功效建模和数据流图l基本加工逻辑说明基本加工逻辑说明l行为建模(时序图)行为建模(时序图)l数据词典数据词典09:04:37第第36页页37面向数据流建模l面向数据流建模是结构化需求分析方法之一面向数据流建模是结构化需求分析方法之一l采取自顶向下逐层分解,描绘满足用户要求软件模型(数据模采取自顶向下逐层分解,描绘满足用户要求软件模型(数据模型、功效模型、行为模型)型、功效模型、行为模型)l表示:表示:数据流图:描述系统处理过程数据流图:描述系统处理过程数据字典:模型中数据信息集合数据字典:模型中数据信息集合状态转换图:描述系统对内部或外部事件响应行为模型状态转换图:描述系统对内部或外部事件响应行为模型09:04:37第第37页页38l软件设计阶段基本目标是结构系统软件设计阶段基本目标是结构系统“怎么做怎么做”模型描述。模型描述。l