清华大学殷仁昆教授讲授《软件工程》讲义ppt课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《清华大学殷仁昆教授讲授《软件工程》讲义ppt课件.ppt》由会员分享,可在线阅读,更多相关《清华大学殷仁昆教授讲授《软件工程》讲义ppt课件.ppt(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程1 1软件工程软件工程第二章第二章 需求分析需求分析2.1 2.1 系统分析系统分析2.2 2.2 软件需求分析软件需求分析2.3 2.3 结构化分析方法结构化分析方法2.4 2.4 快速原型化方法快速原型化方法2.5 2.5 需求定义与评审需求定义与评审软件工程软件工程2 22.1 2.1 系统分析系统分析基于计算机的系统的系统元素包括硬件、软件、基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。人、数据库、文档和过程。系统分析的目标系统分析的目标1) 识别用户要求识别用户要求2) 评价系统的可行性,进行经济和技术分析评价系统的可行性,进行经济和技术分析3)
2、把功能分配给硬件、软件、人、数据库和其把功能分配给硬件、软件、人、数据库和其它系统元素它系统元素4) 建立成本和进度限制建立成本和进度限制5) 生成系统规格说明生成系统规格说明软件工程软件工程3 3识别用户要求识别用户要求n分析员必须考虑以下问题:分析员必须考虑以下问题:n识别希望的功能和性能范围识别希望的功能和性能范围; ; n确定系统的功能、性能、约束和接口确定系统的功能、性能、约束和接口; ;功能功能和和性能性能v 可靠性可靠性和和质量质量v 总的系统目标总的系统目标v 成本成本与与进度限制进度限制制造需求制造需求v 市场与竞争情况市场与竞争情况v 有效的技术有效的技术v 将来可能的扩充
3、将来可能的扩充软件工程软件工程4 4可行性研究可行性研究n可行性研究可行性研究v从经济可行性、技术可行性、法律可行性和从经济可行性、技术可行性、法律可行性和用户操作可行性等方面评价系统是否值得做,用户操作可行性等方面评价系统是否值得做,是否能做。是否能做。可行性研究的步骤可行性研究的步骤 1) 确定项目的规模和目标确定项目的规模和目标 2) 研究当前正在运行的系统研究当前正在运行的系统 3) 建立新系统的高层逻辑模型建立新系统的高层逻辑模型 4) 导出和评价各种方案导出和评价各种方案软件工程软件工程5 55) 推荐可行的方案推荐可行的方案6) 编写可行性研究报告编写可行性研究报告n成本估算成本
4、估算 专家估算技术(专家估算技术(Delphi技术)技术) 成本估算模型(成本估算模型(COCOMO)n效益估算效益估算 投资回收期投资回收期 纯收入纯收入 投资回收率投资回收率经济可行性经济可行性 成本成本效益分析效益分析软件工程软件工程6 6技术可行性技术可行性 技术风险分析技术风险分析n技术解决方案的实用性技术解决方案的实用性使用的技术实用化程度使用的技术实用化程度技术解决方案合理程度技术解决方案合理程度n技术资源的可用性技术资源的可用性参与人员的工作基础参与人员的工作基础基础硬件基础硬件/软件的可用性软件的可用性软件工具实用性软件工具实用性软件工程软件工程7 7法律可行性法律可行性 侵
5、权和责任问题侵权和责任问题n专利法专利法n著作权法著作权法n软件保护条例软件保护条例n用户类型:用户类型:外行型熟练型专家型外行型熟练型专家型n操作习惯操作习惯n使用单位的计算机使用情况使用单位的计算机使用情况n使用单位的规章制度使用单位的规章制度用户操作可行性用户操作可行性软件工程软件工程8 82.2 2.2 软件需求分析软件需求分析n需求分析是一项软件工程活动,其目的是:需求分析是一项软件工程活动,其目的是: 清楚地理解所要解决的问题,完整地获取用清楚地理解所要解决的问题,完整地获取用户要求;户要求; 刻划出软件的功能和性能;刻划出软件的功能和性能; 指明软件与其他系统元素的接口;指明软件
6、与其他系统元素的接口; 建立软件必须满足的约束。建立软件必须满足的约束。1. 1. 软件需求分析的目的软件需求分析的目的 软件工程软件工程9 9n需求分析是一项软件工程活动,它包括:需求分析是一项软件工程活动,它包括:1) 需求获取需求获取 刻划出软件的刻划出软件的功能功能和和性能性能; 指明软件与其他系统元素的指明软件与其他系统元素的接口接口; 建立软件必须满足的建立软件必须满足的约束约束。2) 需求建模需求建模需求分析建立起来的模型为日后软件设计需求分析建立起来的模型为日后软件设计人员提供了可被翻译成人员提供了可被翻译成数据数据、体系结构体系结构、接口接口和和处理过程处理过程设计的模型。设
7、计的模型。2. 2. 需求分析的任务需求分析的任务软件工程软件工程10103) 需求规格说明需求规格说明需求规格说明为开发人员和用户提供软件需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。开发完成时质量评价的依据。4) 需求评审需求评审 需求分析研究的对象是需求分析研究的对象是用户的要求用户的要求。 必须必须全面理解全面理解用户的各项要求,用户的各项要求,准确表准确表达达被接受的用户要求。被接受的用户要求。 只有经过确切描述的软件需求才能成为只有经过确切描述的软件需求才能成为软件设计的基础。软件设计的基础。 软件工程软件工程11 11n软件开发是要实现软件开发是要实现目标系统的物
8、理模型目标系统的物理模型。需求。需求分析的任务就是借助于分析的任务就是借助于当前系统的逻辑模型导当前系统的逻辑模型导出目标系统的逻辑模型出目标系统的逻辑模型,解决目标系统,解决目标系统 “ “做做什么什么” ” 的问题。的问题。目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化模型化抽象化抽象化物理模型物理模型逻辑模型逻辑模型具体化具体化实例化实例化理理解解需需求求导导出出怎么做怎么做做什么做什么软件工程软件工程12123 3、需求获取、需求获取n需求获取是在问题及其最终解决方案之间架设需求获取是在问题及其最终解决方案之间架设桥梁的第一步。桥梁的第一步。n需求获取的目的是清
9、楚地理解所要解决的问题,需求获取的目的是清楚地理解所要解决的问题,完整地获得用户的需求。完整地获得用户的需求。n获取需求的一个必不可少的结果是对项目中描获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需分析者、开发者和客户就能探索出描述这些需求的多种解决方案。求的多种解决方案。软件工程软件工程1313软件需求的层次软件需求的层次1)业务需求业务需求 反映了组织或客户对系统、产品反映了组织或客户对系统、产品高层次的目标要求,它们一般在项目视图和高层次的目标要求,它们一般在项目视图和范围文
10、档中给予说明。范围文档中给予说明。2)用户需求用户需求 描述用户使用软件需要完成哪些描述用户使用软件需要完成哪些任务,它们可通过使用实例图或脚本说明加任务,它们可通过使用实例图或脚本说明加以阐明。以阐明。3)功能功能非功能需求非功能需求 定义了开发者必须实现定义了开发者必须实现的软件功能,而非功能需求如表所示的软件功能,而非功能需求如表所示:软件工程软件工程1414 性性能能要要求求 实实时时性性; 其其他他时时间间要要求求, 如如响响应应时时间间、 处处理理时时间间、包包传传送送时时间间等等; 资资源源配配置置要要求求; 精精确确度度、处处理理量量等等要要求求 可可靠靠性性要要求求 有有效效
11、性性; 数数据据完完整整性性 安安全全保保密密要要求求 安安全全性性; 保保密密性性 运运行行要要求求 使使用用频频度度、 运运行行期期限限; 控控制制方方式式; 对对操操作作员员要要求求 产产品品要要求求 物物理理要要求求 系系统统的的规规模模等等 开开发发类类型型 实实用用性性开开发发或或试试验验性性开开发发 项项目目估估算算 开开发发工工作作量量估估计计 开开发发方方法法 质质量量控控制制标标准准; 里里程程碑碑和和评评审审; 验验收收标标准准 优优先先顺顺序序 权权衡衡各各种种质质量量目目标标要要求求,排排定定优优先先实实现现次次序序 过过程程要要求求 可可维维护护性性 可可理理解解性
12、性、可可测测试试性性、可可修修改改性性、可可移移植植性性 软件工程软件工程1515需求获取过程需求获取过程n需求获取包括以下活动:需求获取包括以下活动:1) 发现和分析问题发现和分析问题 发现问题症结,并分析问发现问题症结,并分析问题的原因题的原因/结果关系。结果关系。2) 获取获取需求需求 根据对问题的理解定义需求。根据对问题的理解定义需求。a) 使用调查研究方法收集信息;使用调查研究方法收集信息;b) 遵循需求获取框架,按照三个成分观察:遵循需求获取框架,按照三个成分观察:即即数据数据、过程过程和和接口接口。3) 需求归档需求归档 以草稿形式归档调查结果。形式以草稿形式归档调查结果。形式有
13、用例、决策表、需求表等。有用例、决策表、需求表等。软件工程软件工程1616需求获取技术的基本特征需求获取技术的基本特征n好的需求获取技术,对于规范需求获取活动,好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重要的。高效准确地获取需求定义,是十分重要的。n好的需求获取技术,应具有如下基本特征:好的需求获取技术,应具有如下基本特征: 提供便于沟通的工具,如易于理解的语言提供便于沟通的工具,如易于理解的语言和直观的图表;和直观的图表; 提供定义系统边界(交互)的方法;提供定义系统边界(交互)的方法; 提供支持抽象的机制,如提供支持抽象的机制,如“分解分解”、“映映射射”等;等
14、;软件工程软件工程1717 鼓励分析员使用面向问题的术语思考问题,鼓励分析员使用面向问题的术语思考问题,编写文档;编写文档; 为分析员提供多种可供选择的解决方案;为分析员提供多种可供选择的解决方案; 适应需求的变化。适应需求的变化。n适于以上特征的需求获取方法:适于以上特征的需求获取方法: 基于数据流图的结构化分析方法;基于数据流图的结构化分析方法; 基于用例(基于用例(use case)的建模方法。)的建模方法。n需求获取技术的关键点在于:需求获取技术的关键点在于:a. 深入浅出深入浅出 需求获取要尽可能全面、细致。需求获取要尽可能全面、细致。软件工程软件工程1818获取的需求是个获取的需求
15、是个全集全集,系统真正实现的是,系统真正实现的是个个子集子集。分析时的调研内容并不都纳入到。分析时的调研内容并不都纳入到新系统中,目的在于以后的扩充。新系统中,目的在于以后的扩充。b. 以流程为主线以流程为主线 在与用户交流的过程中,应该用流程将所在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。理规则等。这样便于交流沟通。流程描述有宏观,也有微观。既要强调总流程描述有宏观,也有微观。既要强调总体的业务流程、全生存周期的业务流程,体的业务流程、全生存周期的业务流程,又要对流程细化,有分支的业务流程。又要对流程
16、细化,有分支的业务流程。软件工程软件工程1919需求获取应遵循的原则需求获取应遵循的原则n抽象和分解是在人们认识世界和改造世界的长抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则,在需求期实践中总结出来的行之有效的原则,在需求获取的过程中需遵循的三个原则:获取的过程中需遵循的三个原则:a. 分解分解:捕获问题空间的:捕获问题空间的整体整体 部分关系部分关系。如问题子问题分解;如问题子问题分解;b. 抽象抽象:捕获问题空间的:捕获问题空间的一般化一般化 特殊化关特殊化关系系。如问题的不同变型;。如问题的不同变型;c.投影投影:捕获问题空间的:捕获问题空间的多维视图多维视图
17、。即从不。即从不同角度考察。同角度考察。软件工程软件工程2020需求获取的步骤需求获取的步骤n软件开发项目和组织文化的不同,对于需求开软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。发没有一个简单的、公式化的途径。n下面下面9个步骤,针对信息系统的需求获取。个步骤,针对信息系统的需求获取。1) 定义项目的视图和范围定义项目的视图和范围 包括组织结构图、包括组织结构图、各部门的岗位各部门的岗位/角色列表。角色列表。2) 确定用户类确定用户类 包括人员包括人员/责任矩阵。责任矩阵。3) 确定目标系统的业务工作流确定目标系统的业务工作流 包括物流、资包括物流、资金流、信息流,
18、建立业务工作流模型。金流、信息流,建立业务工作流模型。软件工程软件工程21214) 运用需求获取技术运用需求获取技术开发反映主要业务规则的开发反映主要业务规则的用例(或数据流图)用例(或数据流图)并设置优先级。并设置优先级。 5) 收集来自用户的收集来自用户的质量特性信息和其他非功能质量特性信息和其他非功能需求需求 将性能、安全性、可靠性等需求和其将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能需求。他设计约束结合业务规则,形成功能需求。6) 分类在用例(或数据流图)中涉及的数据分类在用例(或数据流图)中涉及的数据 包括数据的组成和数据之间的关系。包括数据的组成和数据之间的关系
19、。7) 详细拟订用例(或数据流图)的规格说明,详细拟订用例(或数据流图)的规格说明, 建立功能模型,并进行审查,用以澄清需求建立功能模型,并进行审查,用以澄清需求获取的参与者对需求的理解。获取的参与者对需求的理解。软件工程软件工程22228) 开发并评估界面原型开发并评估界面原型 设想输入设备、输出设想输入设备、输出设备、显示风格、显示方式、输出格式等,设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。建立接口规范和信息流传输规则。9) 从功能描述中开发概念测试用例从功能描述中开发概念测试用例 用测试用用测试用例来验证用例(或数据流图)、功能需求和例来验证用例(或数据流图)、
20、功能需求和原型。原型。软件工程软件工程2323n需求获取可能是软件开发中最困难、最关键、需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在:最易出错及最需要交流的方面。表现在: 需求的不稳定性需求的不稳定性:在整个软件生存周期内:在整个软件生存周期内软件需求会随着时间的推移发生变化;软件需求会随着时间的推移发生变化; 需求的不准确性需求的不准确性:用户和开发人员的认识:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。提高,一开始不可能设想得面面俱到。n需求获取只有通过有效的客户需求获取只有通过
21、有效的客户/开发者的合作开发者的合作才能成功。才能成功。 软件工程软件工程2424针对信息系统的需求调研方法针对信息系统的需求调研方法 调研调研用户的组织结构用户的组织结构、岗位设置岗位设置、职责定义职责定义,从功能上区分有多少个子系统,划分系统的从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。大致范围,明确系统的目标。 调研每个子系统的调研每个子系统的工作流程工作流程、功能与处理规功能与处理规则则,收集原始信息资料,用数据流来表示物,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。流、资金流、信息流三者的关系。 对调研内容事先准备,针对不同管理层次的对调研内容
22、事先准备,针对不同管理层次的用户询问不同的问题,列出用户询问不同的问题,列出问题清单问题清单。将操。将操作层、管理层、决策层的需求既联系又区分作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层次。开来,形成一个需求的层次。软件工程软件工程2525 对与用户沟通的情况及时总结归纳,整理对与用户沟通的情况及时总结归纳,整理调调研结果研结果,初步构成,初步构成需求基线需求基线。若基线符合要。若基线符合要求,则需求获取完成。求,则需求获取完成。n需求调研的主要手段:需求调研的主要手段: 发调查表;发调查表; 召开调查会;召开调查会; 向用户领域的专家个别咨询;向用户领域的专家个别咨询; 实地
23、考察,实地考察, 跟踪现场业务流程;跟踪现场业务流程; 查阅与待开发系统有关的资料;查阅与待开发系统有关的资料; 使用各种调查工具等。使用各种调查工具等。软件工程软件工程2626需求整理与表达的方法需求整理与表达的方法n采用采用穷举方法穷举方法可以避免遗漏。可以避免遗漏。n采用采用归纳方法归纳方法,通过对各种情况进行综合分类,通过对各种情况进行综合分类可以使问题条理化。可以使问题条理化。n采用采用抽象方法抽象方法,可以发现问题的实质,抓住问,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。题的主要矛盾,忽略其次要矛盾。n需求整理可以多种手段共用,如组织结构图、需求整理可以多种手段共用,
24、如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以定义、业务流程、处理规则、数据项、功能以及及上述上述 5 个方面个方面的关系。的关系。软件工程软件工程27274. 4. 需求建模需求建模n需求建模是为了分析需求,以确定项目的确切需求建模是为了分析需求,以确定项目的确切需求。需求。n需求建模遵循三个原则:需求建模遵循三个原则: 划分划分:描述需求的整体:描述需求的整体部分关系;部分关系; 抽象抽象:描述需求的一般化:描述需求的一般化
25、特殊化关系;特殊化关系; 投影投影:描述需求的多维视图;:描述需求的多维视图;n定义系统模型要区分逻辑模型和物理模型。定义系统模型要区分逻辑模型和物理模型。n常用模型有常用模型有数据建模数据建模、功能建模功能建模和和过程建模过程建模。软件工程软件工程2828常用的分析方法常用的分析方法 面向数据流的结构化分析方法面向数据流的结构化分析方法 (SA) 面向数据结构的面向数据结构的Jackson方法方法 (JSD) 面向数据结构的结构化数据系统开发方法面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法面向对象的分析方法 (OOA) 等等软件工程软件工程2929n结构化分析方法最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 清华大学 殷仁昆 教授 讲授 讲义 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内