清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲

上传人:youn****329 文档编号:267508526 上传时间:2022-03-18 格式:PPT 页数:88 大小:479KB
返回 下载 相关 举报
清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲_第1页
第1页 / 共88页
清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲_第2页
第2页 / 共88页
清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲_第3页
第3页 / 共88页
清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲_第4页
第4页 / 共88页
清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲》由会员分享,可在线阅读,更多相关《清华大学郑人杰殷仁昆教授《软件工程讲义》-022教学提纲(88页珍藏版)》请在金锄头文库上搜索。

1、软件工程第二章 需求分析2.1 系统分析2.2 软件需求分析2.3 结构化分析方法2.4 快速原型化方法2.5 需求定义与评审1n软件工程2.1 系统分析基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。系统分析的目标1) 识别用户要求2) 评价系统的可行性,进行经济和技术分析3) 把功能分配给硬件、软件、人、数据库和其它系统元素4) 建立成本和进度限制5) 生成系统规格说明2n软件工程识别用户要求n分析员必须考虑以下问题:n识别希望的功能和性能范围; n确定系统的功能、性能、约束和接口;vv 功能和性能v 可靠性和质量v 总的系统目标v 成本与进度限制vv 制造需求v 市场与

2、竞争情况v 有效的技术v 将来可能的扩充3n软件工程5) 推荐可行的方案6) 编写可行性研究报告n成本估算 专家估算技术(Delphi技术) 成本估算模型(COCOMO)n效益估算 投资回收期 纯收入 投资回收率经济可行性 成本效益分析5n软件工程技术可行性 技术风险分析n技术解决方案的实用性使用的技术实用化程度技术解决方案合理程度n技术资源的可用性参与人员的工作基础基础硬件/软件的可用性软件工具实用性6n软件工程法律可行性 侵权和责任问题n专利法n著作权法n软件保护条例n用户类型:外行型熟练型专家型n操作习惯n使用单位的计算机使用情况n使用单位的规章制度用户操作可行性7n软件工程2.2 软件

3、需求分析n需求分析是一项软件工程活动,其目的是: 清楚地理解所要解决的问题,完整地获取用户要求; 刻划出软件的功能和性能; 指明软件与其他系统元素的接口; 建立软件必须满足的约束。1. 软件需求分析的目的 8n软件工程n需求分析是一项软件工程活动,它包括:1) 需求获取 刻划出软件的功能和性能; 指明软件与其他系统元素的接口; 建立软件必须满足的约束。2) 需求建模3)需求分析建立起来的模型为日后软件设计人员提供了可被翻译成数据、体系结构、接口和处理过程设计的模型。2. 需求分析的任务9n软件工程3) 需求规格说明需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。4) 需求评审 需

4、求分析研究的对象是用户的要求。 必须全面理解用户的各项要求,准确表达被接受的用户要求。 只有经过确切描述的软件需求才能成为软件设计的基础。 10n软件工程n软件开发是要实现目标系统的物理模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统 “做什么” 的问题。目标系统当前系统物理模型逻辑模型模型化抽象化物理模型逻辑模型具体化实例化理解需求导出怎么做做什么11n软件工程3、需求获取n需求获取是在问题及其最终解决方案之间架设桥梁的第一步。n需求获取的目的是清楚地理解所要解决的问题,完整地获得用户的需求。n获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解

5、。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。12n软件工程软件需求的层次1)业务需求 反映了组织或客户对系统、产品高层次的目标要求,它们一般在项目视图和范围文档中给予说明。2)用户需求 描述用户使用软件需要完成哪些任务,它们可通过使用实例图或脚本说明加以阐明。3)功能非功能需求 定义了开发者必须实现的软件功能,而非功能需求如表所示:13n软件工程14n软件工程需求获取过程n需求获取包括以下活动:1) 发现和分析问题 发现问题症结,并分析问题的原因/结果关系。2) 获取需求 根据对问题的理解定义需求。a) 使用调查研究方法收集信息;b) 遵循需求获取框架,按照三个

6、成分观察:即数据、过程和接口。3) 需求归档 以草稿形式归档调查结果。形式有用例、决策表、需求表等。15n软件工程需求获取技术的基本特征n好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重要的。n好的需求获取技术,应具有如下基本特征: 提供便于沟通的工具,如易于理解的语言和直观的图表; 提供定义系统边界(交互)的方法; 提供支持抽象的机制,如“分解”、“映射”等;16n软件工程 鼓励分析员使用面向问题的术语思考问题,编写文档; 为分析员提供多种可供选择的解决方案; 适应需求的变化。n适于以上特征的需求获取方法: 基于数据流图的结构化分析方法; 基于用例(use case)

7、的建模方法。n需求获取技术的关键点在于:a. 深入浅出 需求获取要尽可能全面、细致。17n软件工程获取的需求是个全集,系统真正实现的是个子集。分析时的调研内容并不都纳入到新系统中,目的在于以后的扩充。b. 以流程为主线 在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。流程描述有宏观,也有微观。既要强调总体的业务流程、全生存周期的业务流程,又要对流程细化,有分支的业务流程。18n软件工程需求获取应遵循的原则n抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则,在需求获取的过程中需遵循的三个原则:a. 分解:捕获问题空间的整

8、体 部分关系。如问题子问题分解;b. 抽象:捕获问题空间的一般化 特殊化关系。如问题的不同变型;c.投影:捕获问题空间的多维视图。即从不同角度考察。19n软件工程需求获取的步骤n软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。n下面9个步骤,针对信息系统的需求获取。1) 定义项目的视图和范围 包括组织结构图、各部门的岗位/角色列表。2) 确定用户类 包括人员/责任矩阵。3) 确定目标系统的业务工作流 包括物流、资金流、信息流,建立业务工作流模型。20n软件工程4) 运用需求获取技术开发反映主要业务规则的用例(或数据流图)并设置优先级。 5) 收集来自用户的质量特性信息和

9、其他非功能需求 将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能需求。6) 分类在用例(或数据流图)中涉及的数据 包括数据的组成和数据之间的关系。7) 详细拟订用例(或数据流图)的规格说明, 建立功能模型,并进行审查,用以澄清需求获取的参与者对需求的理解。21n软件工程8) 开发并评估界面原型 设想输入设备、输出设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。9) 从功能描述中开发概念测试用例 用测试用例来验证用例(或数据流图)、功能需求和原型。22n软件工程n需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在: 需求的不稳定性:在整

10、个软件生存周期内软件需求会随着时间的推移发生变化; 需求的不准确性:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。n需求获取只有通过有效的客户/开发者的合作才能成功。 23n软件工程针对信息系统的需求调研方法 调研用户的组织结构、岗位设置、职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。 调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。 对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求

11、的层次。24n软件工程 对与用户沟通的情况及时总结归纳,整理调研结果,初步构成需求基线。若基线符合要求,则需求获取完成。n需求调研的主要手段: 发调查表; 召开调查会; 向用户领域的专家个别咨询; 实地考察, 跟踪现场业务流程; 查阅与待开发系统有关的资料; 使用各种调查工具等。25n软件工程需求整理与表达的方法n采用穷举方法可以避免遗漏。n采用归纳方法,通过对各种情况进行综合分类可以使问题条理化。n采用抽象方法,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。n需求整理可以多种手段共用,如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位定义

12、、业务流程、处理规则、数据项、功能以及上述 5 个方面的关系。26n软件工程4. 需求建模n需求建模是为了分析需求,以确定项目的确切需求。n需求建模遵循三个原则: 划分:描述需求的整体部分关系; 抽象:描述需求的一般化特殊化关系; 投影:描述需求的多维视图;n定义系统模型要区分逻辑模型和物理模型。n常用模型有数据建模、功能建模和过程建模。27n软件工程常用的分析方法 面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 (JSD) 面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法 (OOA) 等28n软件工程n结构化分析方法最初只是着眼于数据流,自顶向下

13、,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。n扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体-关系图、数据流图和控制流图、状态-迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。2.3 结构化分析方法29n软件工程结构化分析的分析模型实体关系图状态迁移图数据流数据流图图数据对象描述加工规格说明数据字典控制规格说明30n软件工程1. 数据建模n数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。n在需求分析阶段描述数据对象和它们之间的关系,使用了E-R 图。n例如,在教学管理中,一个教师可以教授零门、

14、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象有学生、教师和课程。31n软件工程教学数据模型学号 姓名 专业 性别 学生职工号姓名专业职称年龄教师课程号 课程名 学分 学时 课程学号课程号成绩选课32n软件工程 实例的关联有三种:一对一 (1:1) ;一对多 (1:m) ;多对多 (n:m) 。 这种实例的关联称为“基数”,基数表明了“重复性”。教师学生教授基数:一位教师 基数:多位学生参与度:必须 参与度:可选33n软件工程XY一个X与一个Y相关联一个X与一个或多个Y相关联XY一个X与零个或一个Y相关联XY一个X与零个, 一个或多个Y相关联XY一个X与一个Y或Z相关联

15、XYZ一个X与一个Y与Z相关联XYZ34n软件工程2. 功能建模和数据流n最初,结构化分析方法仅讨论数据流建模,目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。外部实体外部实体外部实体外部实体目标系统输入信息输入信息输出信息输出信息顶层数据流图(上下文环境图)35n软件工程数据流图中的主要图形元素数据加工 (数据变换)数据源或数据潭 (外部实体)数据流数据存储文件或或36n软件工程分层的数据流图37n软件工程实例考务处理系统的功能(1) 对考生送来的报名单进行检查;(2) 对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3) 对阅卷站

16、送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4) 制作考生通知单 (含成绩及合格/不合格标志) 送给考生;(5) 按地区进行成绩分类统计和试题难度分析,产生统计分析表。38n软件工程顶层数据流图考生考务处理系统考试中心阅卷站不合格报名表报名表准考证考生通知单成绩单合格标准错误成绩单考生名单统计分析表39n软件工程 根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程及系统与外界的关系。 经过分析,考务业务处理的主要功能应当有登记报名单、统计成绩两个主要数据流。输入的源点和输出终点是考生、考试中心和阅卷站。 然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第 0 层数据流图。40n软件工程报名表准考证1登记报名表2统计成绩不合格报名表考生通知单成绩单统计分析表第0层数据流图考生名册合格标准考生名单错误成绩单41n软件工程第一层数据流图 (a)1.1 检查报名表报名表准考证1.2编准考证号码不合格报名表考生名册考生名单合格报名表1.3登记考生合格报名表42n软件工程第一层数据流图 (b)2.1检查成绩单2.2审定合格者考生名册

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号