《软件工程》教案.doc

上传人:韩长文 文档编号:5017207 上传时间:2020-01-28 格式:DOC 页数:98 大小:4.35MB
返回 下载 相关 举报
《软件工程》教案.doc_第1页
第1页 / 共98页
《软件工程》教案.doc_第2页
第2页 / 共98页
《软件工程》教案.doc_第3页
第3页 / 共98页
《软件工程》教案.doc_第4页
第4页 / 共98页
《软件工程》教案.doc_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《《软件工程》教案.doc》由会员分享,可在线阅读,更多相关《《软件工程》教案.doc(98页珍藏版)》请在三一文库上搜索。

1、软件工程软件工程教案教案 (本(本 科)科) 主讲:主讲:* 杭州杭州电电子工子工业业学院学院 计计算机算机软软件教研室件教研室 E-mail:* 20202020 年年 1 1 月月 目录目录 第一章第一章软件工程概述软件工程概述.4 1.1软件的概念、特点及分类4 1.2软件危机5 1.3软件工程7 1.4小结12 第二章第二章系统分析系统分析.13 2.1系统分析(项目计划)13 2.2问题定义13 2.3可行性研究14 2.4小结19 2.5补充实例19 第三章第三章需求分析需求分析.22 3.1需求分析概述22 3.2结构化分析方法24 3.3验证软件需求28 3.4小结28 3.5

2、补充知识28 3.6补充实例31 第四章第四章软件设计概述软件设计概述.35 4.1软件设计概述35 4.2软件设计的策略35 4.3概要设计40 4.4结构化系统设计42 4.5小结52 4.6补充实例52 第五章第五章详细设计详细设计.53 5.1详细设计概述53 5.2结构化程序设计54 5.3详细设计的描述工具55 5.4其它的软件设计方法(面向数据结构的设计方法)60 5.5程序复杂度的定量度量61 5.6小结63 5.7补充实例63 第六章第六章编码编码.67 6.1编码的目的67 6.2编码的风格67 6.3程序设计语言69 6.4小结70 6.5补充实例70 第七章第七章测试测

3、试.71 第八章第八章维护维护.75 第九章第九章面向对象分析与设计面向对象分析与设计.76 第十章第十章软件质量保证软件质量保证.77 第十一章第十一章软件项目计划与管理软件项目计划与管理.78 第十二章第十二章79 第十三章第十三章80 第十四章第十四章81 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 4 页(共 98 页) 第一章第一章软件工程概述软件工程概述 引论: 随着计算机的普及与深化,软件数量急剧膨胀,同时软件成本也在逐年 上升,质量得不到可靠的保证。软件开发的生产率也远远跟不上普及计 算机应用的要求。由此产生了“软件危机” 。软件工程正是在

4、此情况下产 生的一门新兴学科。 学习软件工程,锻炼思维能力及解决问题的能力。 学习软件工程,努力成为软件界的“白领” 。 1.1软件的概念、特点及分类 一 软件的定义: 软件是计算机系统中与硬件相互依存的另一部分,它包括程序、 数据及相关文档的完整集合。其中,程序是按事先设计的功能和性 能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构; 文档是与程序开发、维护和使用有关的图文材料。 二 软件的特点: 1. 软件是一种逻辑实体,而不是具体的物理实体。 2. 软件的生产与硬件不同。 (无明显的制造过,存在软件产品的保护 问题。 ) 3. 在软件的运行和使用期间,没有硬件那样的机械磨损、老

5、化等问题。 4. 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着 不同程度的依赖性。 5. 软件的开发至今尚未完全摆脱手工艺的开发方式。 6. 软件是复杂的。 (软件复杂性来源于它所反映的实际问题的复杂性。 ) 7. 软件成本相当昂贵。 (定制产品、手工开发.成本高) 8. 相当多的软件工作涉及到社会问题。 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 5 页(共 98 页) 三 软件的分类: 1. 按软件功能划分: 1) 系统软件:使计算机系统各个部件、相关软件和数据协调、高 效的工作的软件。 (如:操作系统,数据库管理系统, 设备驱动程序等)

6、 2) 支撑软件:协助用户开发软件的工具性软件。 (如:文本编辑程 序,集成开发工具,图形软件包等) 3) 应用软件:在特定领域内开发为特定目的服务的一类软件。 2. 按软件规模划分: 微型1 人14 周 0.5K 小型1 人16 月 12K 中型25 人12 年 550K 大型520 人23 年 50100K 甚大型1001000 人45 年 1M 极大型20005000 人510 年 1M10M 微型1 人14 周 0.5K 3. 按软件的工作方式划分: 1) 实时处理软件:在事件或数据产生时,立即予以处理,并及时 反馈信号。 2) 分时软件:允许每个联机用户同时使用计算机。 3) 交互时

7、软件:能实现人通信的软件。 4) 批处理软件:把一组输入作业或一批数据以成批处理的方式一 次运行,按顺序逐个处理完的软件。 4. 按软件服务对象的范围划分: 1) 项目软件 2) 产品软件 1.2软件危机 一 软件危机: 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 6 页(共 98 页) 指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1. 软件危机包含的问题: 1) 如何开发软件,以满足对软件日益增长的需求。 (提高生产率) 2) 如何维护数量不断膨胀的已有软件 2. 软件危机的表现形式: 1) 对软件开发的成本和进度的估计常常不准确。 导致:

8、成本提高,工程延期,影响信誉。 权益之计:损害软件质量,又会引起用户不满。 2) 用户对“以完成”的软件系统不满意的现象经常发生。 原因:对用户需求不确切,缺少沟通,仓促上阵,闭门造车。 导致:不符合用户要求。 3) 软件产品质量往往靠不住。 原因:软件可靠性和质量保证未认真执行。 导致:软件质量问题。 4) 软件常常是不可维护的。 原因:程序结构固定、死板、变更困难、错误、难以改正,无 法增加新的功能和适应新的环境。 5) 软件通常没有适当的文档资料。 项目负责人:用以控制整体状态,把握工程进度; 开发者:用以相互交流; 维护人员:维护的依据。 6) 软件成本在计算机系统中成本所占比例率上升

9、。 微电子技术的进步和自动化程度的不断提高,导致硬件成本 下降; 软件需要手工劳动,且大规模和数量不断的扩大,导致软件 成本上升。 7) 软件开发生产率提高的速度,远远跟不上计算机普及、深入的 趁势。 “供不应求” ,无法充分利用硬件。 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 7 页(共 98 页) 二 软件危机产生的原因: 1. 与软件自身的特点有关: 逻辑实体、手工开发、复杂度高、成本昂贵。 2. 与开发、维护方法不正确有关: 忽视用户需求,轻视软件维护。 三 解决软件危机的途径: 1. 技术措施:方法和工具 2. 组织管理措施:从管理角度进行审查

10、、控制。 软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软 件的一门新兴学科。 1.3软件工程 一 软件工程: 是采用工程的概念、原理、技术和方法来指导软件开发和维护 的工程学科。 1. 软件工程的基本原理:(七条) 是确保软件产品质量和开发效率的原理的最小的完备的集合。 1) 用分阶段的生命周期计划严格管理。 2) 坚持进行阶段评审。 进行相应的质量保证、尽早发现错误。 3) 实行严格的产品控制。 实行基准配置(给过阶段评审后的软件配置成分,包括文档、 程序等)管理,涉及对基准配置的参数,必须按严格规程审批。 4) 采用现代的程序设计技术。 如:结构化分析与设计、面向对象的分析

11、与设计。 5) 结果应能清楚地审查。 规定开发组织的责任和产品标准,提高软件开发过程的可见性。 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 8 页(共 98 页) 6) 开发小组的人员应该少而精。 开发小组人员的素质和数量是影响产品质量和开发效率的重要 因素。 7) 承认不断改进软件工程实践的必要性。 积极采纳新技术,不断总结经验。 2. 软件工程的三要素:方法、工具和过程。 1) 方法:“如何做” ,常采用某种特殊的语言或图形的表达方法及 一套质量保证标准。 2) 工具:为方法提供的软件支撑环境。 (计算机辅助软件工程 CASE) 3) 过程:将方法和工

12、具综合起来以达到合理、及时地进行计算机 软件开发的目的。 3. 软件工程项目的基本目标: 1) 付出较低的开发成本。 2) 达到要求的软件功能。 3) 取得较好的软件性能。 4) 开发的软件易于移植。 5) 需要较低的维护费用。 6) 能按时完成开发工作,及时交付使用。 4. 软件工程的原则: 1) 抽象 2) 信息隐藏 3) 模块化 4) 局部化 5) 一致性 6) 完全性 7) 可验证性 二 软件工程的传统途径: 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 9 页(共 98 页) 1. 软件工程的传统途径:生命周期方法学 从时间角度对软件开发和维护的复

13、杂问题进行分解,划分为若 干个阶段,每个阶段有相对独立的任务,是在阶段结束时进行技术 审查和管理复审,最后产生相应的文档资料。 2. 软件生命周期的划分: 1) 三个时期: 软件定义:确定工程总目标:可行性、采用的策略,需求完 成的功能,需要的资源和成本,工程进度表。 包括:问题定义,可行性研究,需求分析。 软件开发:具体设计和实现。 包括:概要设计、详细设计(系统设计) ,编码 和单元测试、综合测试(系统实现) 软件维护:使软件持久地满足用户需要。 改正错误,适应新环境,满足新需求。 2) 八个阶段: 问题定义:“要解决的问题是什么?” 提出关于问题性质、工程目标和规模的全面报告。 可行性研

14、究:“对上一个阶段所确定的问题有行的通解决办 法吗?” 研究问题的范围,进行成本/效率分析,探索问题 是否值得解和如何解。 需求分析:“为了解决问题,目标系统必须做到什么?” 确定目标系统所应具备的功能,建立系统逻辑模 型(数据流图、数据字典、简要算法) 概要设计:概括地谈,应该如何解决问题 提出几种设计方案:低成本,中等成本,高成本 (“十全十美” ) ,确定解决系统的方案和目标系 统需要那些程序,设计软件的结构,确定程序模 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 10 页(共 98 页) 块及模块间关系(层次图或结构图) 。 详细设计:应该怎样具体

15、地实现系统 把解决具体化,设计出程序的详细规格说明 (HIPO 图或 PDL 语言) 编码和单元测试:编写程序模块的实现代码,并对其进行测 试。 综合测试:通过各种类型的测试使软件达到预定要求。 集成测试:根据设计的软件结构,将单元模块按某种策 略装配起来进行联合测试。 验收测试:由用户根据需求规格说明书对目标系统进行 整体验收。 软件维护:通过各种必要的维护活动使系统持久满足用户需 要。 改正性维护(21%) 适应性维护(25%) 完善性维护(50%) 预防性维护(4%) 3) 目的和实质: 控制开发工作的复杂性,通过有限的确定步骤,把用户需 求从抽象的逻辑概念转化为具体的物理实现。 3.

16、软件生存期模型:瀑布模型,演化模型,螺旋模型,喷泉模型,智 能模型。 1) 瀑布模型:系统的生命周期方法学用瀑布模型来进行模拟。 各阶段间具有顺序性和依赖性 前阶段结束后阶段开始。 前阶段输出文档后阶段输入文档。 推迟实现的观点:设置系统分析与设计、推迟物理实现。 质量保证的观点: 每个阶段必须完成规定的文档 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 11 页(共 98 页) 每个阶段结束前要对文档评审,以便尽早发现问题,改 正错误。 2) 演化模型:(原型模型) 能够克服瀑布模型的缺点、适当的减少由于软件需求不明确而 给开发工作带来的风险。 3) 螺旋

17、模型: 将瀑布模型与演化模型结合起来,并且加入两种模型都忽略了 的风险分析,以弥补两者的不足。 螺旋模型沿着螺旋线旋转,在笛卡儿坐标的四个象限上分别表 达四个方面的活动: 制定计划:确定软件目标,选定实施方案,弄清项目开发的 限制条件。 风险分析:分析所选方案,考虑如何识别和取消风险。 实施工程:实施软件开发。 客户评估:评价开发工作,提出修正意见。 4) 喷泉模型: “喷泉”一词体现了迭代和无间隙特性。系统某个部分常常 重复工作多次,相关功能在每次迭代中随之加入演进的系统, 无间隙是指在开发活动,即分析、设计和编码之间不存在明 显的边界。 支持软件复用,支持面向对象的开发方法。 5) 智能模

18、型:基于知识的软件开发模型 智能模型综合了其他模型,并把专家系统结合在一起。该模型 应用于基于规则的系统,采用规约和推理机制,帮助软件人员 完成开发工作,并使维护在系统规格说明一级完成。 三 技术审查和管理复审: 1. 技术审查: 保证软件质量,控制错误的积累和放大,以降低软件成本。 技术审查的标准和方法:从前导和后续,两个阶段进行考虑。 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 12 页(共 98 页) 前导:提出解法。 后续:实现解法。 步骤: 准备 简要介绍情况 阅读被审查文档 开审查会 返工 复查 2. 管理复审: 对工程项目的成本、经费、投资回

19、收前景,项目进度等经济因 素,从管理角度进行审查。 1.4小结 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 13 页(共 98 页) 第二章第二章系统分析系统分析 2.1系统分析(项目计划) 一 两个阶段: 问题定义 可行性研究 二 目标: 1. 识别用户要求 2. 评价系统的可行性 3. 进行经济分析和技术分析 4. 把功能分配给硬件、软件、人、数据库和其它系统元素 5. 建立成本和进度限制 6. 生成系统规格说明,形成所有后续工程的基础 2.2问题定义 一 目的: 弄清用户需要计算机解决的问题根本所在,以及项目所需的经 费和资源的文档。 二 主要任务:

20、 是在向用户调查的基础上,编写一个叫做系统目标与范围说 明书的文档。这个说明经用户同意后,就作为下一步可行性分 析的依据。 三 文档:系统目标与范围说明书 1. 项目名称 2. 问题说明:当前工作中存在的问题 3. 项目目标:用户对新系统的目标 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 14 页(共 98 页) 4. 项目范围:指出解决这一项目所需的投资范围 5. 初步想法:对系统功能提出一些初步设想 6. 可行性研究计划:对可行性研究的时间、费用进行估算 2.3可行性研究 一 可行性研究 1. 目的: 用最少的代价,在尽可能短的时间内弄清所定义的项目是

21、不是 可能实现和值得进行。 (不是解决问题,而是确定问题是否可能解 决和值得去解) 2. 实质: 是进行一次大大简化了的系统分析和设计的过程,即在较高层 次上以较抽象的方式进行的系统分析和设计的过程。 3. 研究问题解法的可行性: 技术可行性:使用现有技术能实现这个系统吗? 经济可行性:这个系统的经济效益能超过它的开发成本吗? 操作可行性:系统的操作方式在这个用户组织内行得通吗? 4. 根本任务:对以后的行动方针提出建议 5. 步骤: 1) 复查系统规模和目标 改正含糊或不正确的叙述,清晰的描述目标系统的一切限制和 约束,确保正在解决的问题,确实是要求解决的问题。 2) 研究目前正在使用的系统

22、 了解现有系统的功能,阅读文档资料和使用手册,确定目标系 统必须完成的基本功能,并解决现有系统中存在的问题。 3) 导出新系统的高层逻辑模型 设计过程:现有物理系统现有系统逻辑模型目标系统逻 辑模型新物理系统 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 15 页(共 98 页) 4) 重新定义问题 重新复查问题定义,工程规模和目标 5) 导出和评价供选择的解法 技术可行性,经济可行性,操作可行性。 6) 推荐行动方针 是否值得开发,选择最好的解法,说明理由。 7) 草拟开发计划 开发计划:工程进度表,开发人员,各种资源,使用时间,系 统生命周期各阶段成本。

23、 8) 书写文档并提交审查 二 成本/效益分析: 通过估计开发成本,运行费用和经济效益,从而达到从经济角 度分析开发一个特定的新系统是否划算,帮助使用部门负责人正确 的做出是否投资这项工程开发的决定。 1. 成本估计: 软件开发成本主要表现为人力消耗: 人力消耗平均工资开发费用 成本估计技术: 代码行技术:源代码行数每行代码平均成本开发成本 任务分解技术:按开发阶段划分任务 (每个相对独立的开发任务的)成本累加和=开发成本 自动估计成本技术:软件工具。 2. 运行费用: 系统操作费用(操作员人数,工作时间,消耗的物资等) 维护费用。 3. 经济效益: 因使用新系统增加的收入 可以节省的运行费用

24、 4. 度量效益的方法: 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 16 页(共 98 页) 1) 货币的时间价值: 设年利率为 i i,现已存入 P P 元,则 n n 年后所得: F FP*(1P*(1i)ni)n,即为 P P 元钱在 n n 年后的价值。反之,若 n n 年后 能收入 F F 元,则其在现在的价值为:P PF F(1(1i)i)n n。 2) 投资回收期: 是使累计的经济效益等于最初的投资所需要的时间,是衡 量一个开发工程价值的经济指标。投资回收期越短,就能越快 获得利润,所以工程就越值得投资。 3) 纯收入: 是在整个生存期之内

25、系统的累计经济效益(折合成现在植) 与投资之差。 4) 投资回收率: 设 P P 为现在的投资的投资额,FiFi 为第 i i 年底的效益 (i i1 1,2 2,n n) ,n n 为系统的使用寿命,j j 为投资回收率。 则 (P(1(P(1j)j)F1)(1F1)(1j)j)F2)(1F2)(1j)j)FnFn0 0 即 P PF1F1(1(1j)j)F2F2(1(1j)j)2 2FnFn(1(1j)j)n n。 三 技术分析: 评价系统概念的技术价值,同时收集有关性能,可靠性,可维 护性及生产率方面的信息。 1. 目的: 对系统的技术可行性进行评估,指明为完成系统的功能和性能 需要什么

26、技术?需要哪些新材料、方法、算法或者过程?有什么开 发风险?这些技术问题对成本的影响如何? 2. 方法: 模型化方法(数学模型、物理模型) 优化技术 概率和统计 排队论 控制论等。 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 17 页(共 98 页) 四 系统结构的模型化:系统流程图 1. 系统流程图: 是用来描述系统物理模型的一种传统工具,基本思想是用图形 符号、黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、 表格、人工过程等) ,它所表达的是信息在系统各部件之间的流动 情况,而不是对信息进行加工处理的控制过程。 2. 描述符号:(书:P25)

27、1) 基本符号:(如表 2.1) 符号名称说明 处理能改变数据值或数据位置的加工或部件,例如: 程序、处理机、人工加工等 输入/输出表示输入或输出(或既输入又输出) ,是一个 广义的不指明具体设备的符号 连接指出转到图的另一部分或从图的另一部分转来, 通常在同一页上 换页连接指出转到另一页图上或由另一页图转来 数据流用来连接其他符号,指明数据流动方向 表表 2.12.1 2) 系统符号:(如表 2.2) 符号名称说明 穿孔卡片表示穿孔卡片输入或输出,也可表示一个穿孔 卡片文件 文档通常表示打印输出,也可表示用打印终端输入 数据 磁带磁带输入/输出,或表示一个磁带文件 联机存储表示任何种类的联机

28、存储,包括磁盘、磁鼓、 软盘和海量存储器件等 磁盘磁盘输入/输出,也可表示存储在磁盘上的文 件或数据库 磁鼓磁鼓输入/输出,也可表示存储在磁鼓上的文 件或数据库 显示CRT 终端或类似的显示部件,可用于输入或输 出,也可既输入又输出 人工输入人工输入数据的脱机处理,例如:填写表格等 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 18 页(共 98 页) 人工操作人工完成的处理,例如:会计在工资支票上签 名 辅助操作使用设备进行的脱机操作 通信链路通过远程通信线路或链路传送数据 表表 2.22.2 3. 实例:(书:P25-26) 五 文档: 1. 可行性分析

29、报告: 1) 系统概述: 当前现有系统分析:系统描述及存在问题 目标系统分析:系统功能和性能描述。 (物理模型:系统流 程图) 当前系统与目标系统比较:目标系统的优越性。 2) 可行性分析: 技术可行性 经济可行性 操作可行性。 3) 结论意见: 可着手组织开发 须待若干条件(如资源、人力、设备等)具备后才能开发 需对开发目标进行修改 不能进行或不必进行(如技术不成熟、经济上不合算等) 其它 2. 项目开发计划: 1) 系统概述: 包括项目目标,主要功能,系统特点,以及关于开发工作的安 排。 2) 系统资源: 包括开发和运行该软件系统所需要的各种资源。如:硬件、软 软件工程教案 - 本科 杭州

30、电子工业学院 软件学院 计算机软件教研室 穆海伦 第 19 页(共 98 页) 件、人员、组织、机构等。 3) 费用预算:分阶段的人员费用,机时费用及其它费用。 4) 进度安排:各阶段起止时间,完成文档及验证方式。 5) 要交付的产品清单 2.4小结 2.5补充实例 一 库存清单系统: 1. 系统说明: 某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数 量以及每种零件的库存量临界值等记录在库存清单主文件中。当仓 库中零件数量有变化时,应该及时修改库存清单主文件,如果那种 零件的库存量少于它的库存量临界值,则应该报告给采购部门以便 订货,规定每天向采购部门送一次订货报告。 该装配厂使用一台

31、小型计算机处理更新库存清单主文件和产生 定货报告的任务。零件库存量的每一次变化称为一个事务,由放在 仓库中的 CRT 终端输入到计算机中;系统中的库存清单程序对事务 进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的订 货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且 打印出定货报告。 2. 系统流程图:(如图 2.5.1 所示) 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 20 页(共 98 页) 库存清单程序 事务 库存清单 主文件 定货 信息 报告生成程序 定货报告 图2.5.1 库存清单系统的系统流程图 二 教材购销系统: 1. 系

32、统说明: 在教材的销售过程中,首先学生拿着购书申请到会计处审查并 开具购书发票,然后到出纳处交款,并开具领书单,学生拿着领书 单到书库领书;在开具购书发票的过程中,若教材存量不够,则需 要进行缺书统计,然后书库根据缺书情况去采购缺书,并通知学生 补购教材。 2. 系统流程图:(如图 2.5.2 所示) 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 21 页(共 98 页) 审查并开发票 购书单 各班学生 用书表 发 票 图2.5.2 教材购销系统的系统流程图 教材 存量表 学 生 缺书登记 补购通知 缺书单发票收讫 领书单 书 库 缺书统计 开领书单 采购

33、缺书 发 书 收书费 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 22 页(共 98 页) 第三章第三章需求分析需求分析 3.1需求分析概述 一 需求分析的任务: 1. 基本任务:回答“系统必须做什么”?确定目标系统功能和性能。 2. 具体任务: 1) 确定对系统的综合要求:功能要求;性能要求;运行要求;将 来可能提出的要求。 2) 分析系统的数据要求:E-R 图(概念模型) 。 3) 导出系统的逻辑模型:数据流图,数据字典,加工处理说明书 等。 4) 修正系统开发计划。 5) 开发原型系统:使用户对目标系统有一个更直接、更具体的概 念,从而能更准确提出用

34、户需求。 (关键的困难在于成本) 二 需求分析的过程: 1. 问题识别:确定软件的需求。 1) 功能 2) 性能 3) 环境 4) 可靠性 5) 安全保密 6) 界面 7) 资源 8) 成本进度 9) 目标 2. 分析与综合: 从数据流和数据结构出发,逐步细化软件功能,找出各元素之 间的联系,接口特性和设计上的限制,给出目标系统的详细逻辑模 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 23 页(共 98 页) 型。 3. 编制需求分析文档:需求规格说明书 1) 任务概述:系统目标,运行环境,条件与限制 2) 数据描述: 概念模型:E-R 图 逻辑模型:数据

35、流图 数据定义:数据字典,加工说明 数据库描述:名称和类型 3) 功能描述:软件功能要求 4) 性能描述:软件性能要求(处理速度、响应时间、安全限制等) 。 5) 运行描述:用户界面、硬件接口、软件接口、故障处理等。 6) 质量保证:阐明软件在交付使用前需要进行的功能测试和性能 测试,并且规定源程序和文档遵守的各种标准。 4. 技术审查和管理复审。 三 需求分析的原则: 1. 必须能够表达和理解问题的数据域和功能域 1) 数据域:数据流,数据内容和数据结构。 2) 功能域:加工变换。 2. 必须按自顶向下,逐层分解的方式对问题进行分解和不断细化。 3. 要给出系统的逻辑视图和物理视图。 1)

36、逻辑视图:给出软件要达到的功能和要处理的数据之间的关系。 2) 物理视图:给出处理功能和数据结构的实际表示形式。 四 需求分析的方法: 1. 需求分析方法: 是由对软件的数据域和功能域的系统分析过程及其表示方法组成。 包括:面向数据流,面向数据结构。 2. 不同的需求分析方法具有的共性: 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 24 页(共 98 页) 1) 支持数据域分析的机制: 所有方法都直接或间接地涉及到数据流,数据内容或数据结构 等数据域的属性。 2) 功能表示的方法: 一般用数据变换或加工来表示。 3) 接口的定义: 是数据表示和功能表示的直

37、接产物。 (功能间的接口数据流) 4) 问题分解的机制以及对抽象的支持: 在不同抽象层次上表示数据域和功能域,以逐层细化的手段建 立分层结构。 5) 逻辑视图和物理视图: 6) 系统抽象模型: 是对现实世界中存在的有关实体和活动的抽象和精化。 3.2结构化分析方法 一 结构化分析方法: 是面向数据流进行需求分析的方法,是用抽象模型的概念,按 软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满 足功能要求的所有可实现的软件为止。 二 数据流图: 1. 数据流图(DFD): 是软件系统逻辑模型的一种图形表示,是从数据传递和加工的 角度,以图形的方式刻画数据流从输入到输出的移动变换过程的工

38、具。 2. 组成符号:(书:P24) 1) 基本符号:(如表 3.1) 符号说明 数据的源点/终点 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 25 页(共 98 页) 变换数据的处理 数据存储 数据流 表表 3.13.1 2) 附加符号:(如表 3.2) 符号说明 T A A B B C C * 数据 A 和数据 B 同时输入才能变换成数据 C T B B C C A A * 数据 A 变换成 B 和 C T A A B B C C + 数据 A 或 B,或 A 和 B 同时输入变换成 C T B B C C A A + 数据 A 变换成 B 或 C,或

39、 B 和 C T A A B B C C 只有数据 A 或只有数据 B(但不能 A、B 同时) 输入时变换成 C T B B C C A A 数据 A 变换成 B 或 C,但不能变换成 B 和 C 表表 3.23.2 3. 性质: 1) 数据流图中的箭头仅能表示在系统中流动的数据,而不是物质 流 2) 数据流图与程序流程图不同,它不能表示程序的控制结构。 (如: 选择或循环) 3) 数据流图表现的范围具有很大的灵活性,可以画分层 DFD 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 26 页(共 98 页) 4. 分层 DFD:由顶向下,逐层分解,逐步细化。

40、 1) 优点: 便于实现:逐层细化,有利于控制问题的复杂度。 便于使用:使用户中的不同业务人员只选择与自身有关的图 形,不必阅读全图。 2) 画分层 DFD 的指导原则: 第一层 DFD 应当是基本系统模型 注意父图和子图的平衡,维护信息的连续性 区分局部文件和局部外部项 掌握分解的速度,上快下慢 遵守加工编号原则 5. 举例:(书:P2527) 三 数据字典: 1. 数据字典: 是关于数据的信息的集合,是对 DFD 中的所有元素定义的集合。 2. 组成符号:(如表 3.3) 符号含义说明 被定义为 与例:x=a+b,表示 x 由 a 和 b 组成 ,或|或例:x=a,b,x=a|b,表示 x

41、 由 a 或由 b 组成 重复例:x=a,表示 x 由 0 个或多个 a 组成 mn 重复例:x=3a8,表示 x 中至少出现 3 次 a,至多出现 8 次 a () 可选例:x=(a),表示 a 可在 x 中出现, 也可以不出现 “” 基本数据元素例:x=“a” ,表示 x 为取值为 a 的 数据元素 连接符例:x=19,表示 x 可取 1 到 9 中 的任一值 表表 3.33.3 3. 内容:名称,别名,编号,分类,描述,定义,位置等 1) 数据流的描述: 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 27 页(共 98 页) 数据流名:数据流名: 说明

42、:简要介绍作用,即它产生的原因和结果 来源:来自何方 去向:去向何处 组成:数据结构 备注: 2) 数据元素(数据项)的描述: 数据元素名:数据元素名: 类型:数值,文字, 长度: 取值范围: 相关的数据元素及数据结构: 备注: 3) 数据存储(数据文件)的描述: 数据文件名:数据文件名: 简述:存放的是什么数据 组成:数据结构 存储方式:排列顺序,关键码等 备注: 4) 数据源(终)点描述: 名称:外部实体名名称:外部实体名 简要描述:什么外部实体 有关数据流: 四 加工说明: 1. 加工说明: 是对 DFD 中的加工所做的描述,包括:输入数据、加工逻辑、 输出数据等。 2. 内容: 加工名

43、称 加工编号 输入数据流 输出数据流 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 28 页(共 98 页) 加工逻辑 执行次数 3. 加工逻辑: 阐明把输入数据转换为输出数据的策略,是加工说明的主体, 在需求分析阶段,仅需要指出要加工“做什么” 。而不是“怎样去 做” ,描述方法:结构话语言,判定表,判定树。 1) 结构化语言(PDL): 又称过程设计语言,伪码;它是一种介于自然语言与程序 设计语言之间的语言,即具有结构化程序的清晰易读的优点, 又具有自然语言的灵活性,不受程序设计语言那样严格的语法 约束。 2) 判定表: 采用表格化的形式,适于表达含有复

44、杂判断的加工逻辑。 实例:(书:P86) 3) 判定树: 是判定表的图形表示,其适用场合与判定表相同。 实例:(书:P87) 3.3验证软件需求 一致性:所有需求必须一致,不能互相矛盾。 完整性:需求必须完整,包含用户需要的所有功能和性能。 现实性:指定需求用现有的软、硬件技术基本上可以实现。 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。 3.4小结 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 29 页(共 98 页) 3.5补充知识 概念模型 1. 数据模型的表示 现实世界 用户 认识 抽象 信息世界 概念模型 机器世界 支持的数据模型

45、图3-5 数据模型的表示 2. 概念模型的表示方法: 实体联系方法(Entity-Relationship):E-R 图 3. E-R 图: 1) 主要概念: 实体:客观存在并相互区分的事物 属性:实体所具有的某一特性 联系:现实世界的事物之间的联系在信息世界的反映 一对一联系:(1:1) 一对多联系:(1:n) 多对多联系:(m:n) 2) 符号表示: 用长方形表示实体型,在框内写上实体名。 用椭圆形表示实体的属性,并用无向边把实体与其属性 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 30 页(共 98 页) 连接起来。 用菱形表示实体间的联系,菱形框内

46、写上联系名。用无 向边把菱形分别与有关实体相连接,在无向边旁标上联 系的类型。若实体之间的联系也具有属性,则把属性和 菱形也用无向边连接上。 3) 实体联系类型符号表示: 图3-6 实体联系的表示 实体型A 联系名 实体型B 1 1 1 1 实体型A 联系名 实体型B 1 1 N N 实体型A 联系名 实体型B M M N N 课程 讲授 教员 1 1 M M 参考书 N N 供应商 供应 项目 M M N N 零件 P P 4) 特点: 两个实体型间允许多种联系 多个实体型间可以有一个联系 一个实体型可以和自身联系 E-R 图与具体的 DBMS 无关,是概念模型中最常用的一种 5) 举例:用

47、 E-R 图表示某个工厂的物资管理的概念模型 涉及的实体: 仓库:仓库号,仓库面积,电话号码 零件:零件号,名称,规格,单价,描述 供应商:供应商号,名称,地址,电话号码,帐号 项目:项目号,预算,开工日期 职工:职工号,姓名,年龄,职称 实体间的联系: 一个仓库可以存放多种零件,一种零件可以存放在多 个仓库中 软件工程教案 - 本科 杭州电子工业学院 软件学院 计算机软件教研室 穆海伦 第 31 页(共 98 页) 一个仓库有多个职工当仓库保管员,一个职工只能在 一个仓库工作 职工之间具有领导和被领导关系,即仓库主任领导若 干保管员 E-R 图表示: 供应商仓库职工 项目零件 供应库存 工作 领导 m m n n p p m m n n 1 1n n 1 1 n n 供应量库存量 职称 供应商号 姓名 地址帐号 电话号码 仓库号面积电话号码职工

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1