软件工程420页_第1页
软件工程420页_第2页
软件工程420页_第3页
软件工程420页_第4页
软件工程420页_第5页
已阅读5页,还剩414页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、11/7/202111/7/2021哈尔滨工业大学哈尔滨工业大学 韩静萍software engineering 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有了不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。微软凌小宁博士 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 我

2、最大的心得是,一个产品一定要找到能够真正适用的场合,不能只是为了技术而从事技术为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。微软张益肇博士 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 软件工程是计算机科学与技术专业的一门专业核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。课程的性质、目的与任务课程的性质、目的与任务 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/

3、2021 本课程比较全面、系统地介绍软件工程的概念、技术与方法。 主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容课程主要内容 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021学习本课程的基本要求学习本课程的基本要求 本课程是继程序设计课程之后,对提高学生软件开发能力

4、有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法论。 通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021章学时章学时章学时章学时123494132补充2421021442284122总学时 46=38(讲授)+8(课程设计)各 章 学 时 安 排 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生

5、期等方面的问题和基本概念传统工程新兴工程气象工程生物工程 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20211.1 软件的概念与特点软件的概念与特点1、软件softwaresoft+ware软制品(软体) 软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212、软件特点 软件是一种逻辑实体,而不是具体的物理实体 软件的生产与硬件不同 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线 哈尔滨工业大学哈尔滨工业

6、大学 韩静萍11/7/2021 软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%1950197019851995硬件硬件 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20213、软件的分类系统软件支撑软件应用软件 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021支撑软件 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 按开发软件所需的 人力、时间以及完成的 源代码行数。类别参加人数研制期限产品规模(源代码行数) 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 软件项目开发软件产品开发 哈尔滨工业大学哈尔滨工业大

7、学 韩静萍11/7/20211.2 软件工程的概念及范畴软件工程的概念及范畴 1、“软件工程”-software engineering 于1968年 nato 组织在德国召开的一次会议上提出 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 软件工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学 - 软件工程学的范畴 2、 软件工程学 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 wake up every day with a feeling of passion for the different technology

8、will make in peoples life.微软企业文化宗旨部分内容 每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021程序 3、软件的演变(即从传统软件开发到现代软件开发) 软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 80 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20211.3 软件生存周期软件生存周期把软件从产生、发展到成熟、直至衰亡为止(sw life cycle) 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021特点: 上一阶段的变换结果

9、是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 waterfall model) 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021原型模型(prototype model)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽快向用户提供原型, 开发原型系统时应尽量使用 能

10、缩短开发周期的语言和工 具。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 第二章第二章 问题的定义与可性行研究问题的定义与可性行研究 当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发 ,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。 所以在软件工程中把这一步称为 计划时期 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021开始问题定义可性行研究 可行否?项目实施计划终止项目的建议结束y计划时期的工作

11、流程图n 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021who 为谁设计,用户是谁?what 要解决哪些问题?why 为什么要解决这些问题 3w win ce1.0 有用的软件有用的软件 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212.1 现状调查和问题的定义现状调查和问题的定义 目的目的: :弄清楚用户要求计算机解决什么问题弄清楚用户要求计算机解决什么问题任务任务: :编写系统目标与规范说明书编写系统目标与规范说明书 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212.2 可行性研究与论证可行性研究与论证 1、经济可行性: 进行成本效益分析,评估项目的开发成本。基于计

12、算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是: :围绕着对系统开发的价值价值进行论证 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021举例:关于开发cad系统的软件开发成本及效益分析 1 2 3 4 5 年604020 0成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期 -成本及效益分析图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212、技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。 通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的

13、功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等 技术可行性分析方法- 数学模型和优化技术、概率和统计、排队论、控制论等方法。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212.3 可行性分析所需工具可行性分析所需工具 (系流程图与系统结构图)1、系统流程图: 是用来描述系统物理模型的一种传统工具。流程符号含 义流程符号含 义数据加工符号换页连接 输入/输出符号磁带符号连接点符号文档符号人工操作多文档符号 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/

14、2021流程符号含 义流程符号含 义显示器或终端机控制流符号磁盘机或数据库流程开始与结束 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 举例库存清单系统流程图库存清单程序库存清单程序定货报告定货报告事务事务定货信息定货信息结束结束报告生成程序报告生成程序零件库零件库 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021人工销售教材 流程图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021计算机售书系统流程图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212、系统结构图: 系统工程师用结构摸板开发的系统模型 - 结

15、构摸板 - 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021- 传输线的分类系统 3、系统结构环境图(acd-architecture context diagram) : acd 可用于描述实现系统与系统运行环境之间的信息边界。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021传输线分类系统条形码阅读器传输线分配站操作员分配站操作员分类机构主 机条形码线速指示器分路命令格式化报告数据查询查询及报告诊断数据- 传输线分类系统的 acd 图处理与控制功能区外部实体 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 acd 的层次结构abc 哈尔滨工业大学哈尔滨工业大学 韩静萍1

16、1/7/2021请画出学生成绩管理系统的 acd 图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 第第3 章章 软件需求分析软件需求分析 软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。 软件需求分析阶段要求用 需求规格说明书(srs) 来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。 本章将介绍需求分析的(面向数据流图分析方法、面向对象的分析方法)。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021

17、3.1 需求分析的任务需求分析的任务 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021某学校医疗费管理系统 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 1 1、医疗费管理系统每天医疗费管理系统每天记录记录当天报销的若干职工或职工子女的医当天报销的若干职工或职工子女的医 疗费的疗费的类别、金额类别、金额。 2 2、在当天下班前让系统在当天下班前让系统自动结帐自动结帐、统计当天报销的医疗费总额统计当天报销的医疗费总额,供,供 出纳员核对。出纳员核对。 3 3、每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金 额累计起

18、来,以便检查哪些职工已超额。额累计起来,以便检查哪些职工已超额。 4 4、系统还要配有适当的系统还要配有适当的查询功能查询功能。 5 5、年终结算后,下一年度开始时要对数据库文件进行初始化。年终结算后,下一年度开始时要对数据库文件进行初始化。 6 6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,当职工调离本单位,职工调如本单位或在本单位内部门间调动, 数据库文件应能及时得到修改。数据库文件应能及时得到修改。 请完成对上述系统的 需求分析用户对系统的要求 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔

19、滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021问题需求问题需求 1、建立目标系统逻辑模型的步骤 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021图形工具 数据流图 数据字典 2、建立目标系统逻辑模型的图形工具 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 - 学生购买教材的具体模型 -学生购买教材的 逻辑模型 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 完善目标系统并补充细节,的出目标系统的正式逻辑模型 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨

20、工业大学哈尔滨工业大学 韩静萍11/7/2021一、数据流图一、数据流图 3.2 面向数据流的方法面向数据流的方法 - - dfd(data flow diagram) 是用来描述系统逻辑模型的一种图形工具。是用来描述系统逻辑模型的一种图形工具。 数据流图从数据传递和加工的角度,以图形的方式数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。刻画数据流从输入到输出的移动变换过程。 dfd 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021-系统系统逻

21、辑逻辑模型模型 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021外部实体外部实体 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 f1书号书号单价单价数量数量 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 - - dfd 哈尔滨工业大学哈尔

22、滨工业大学 韩静萍11/7/2021dfd 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021请画出学生成绩管理系统的 dfd 图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021二、数据字典二、数据字典 - - dd(data dictionary) 数据字典的任务是数据字典的任务是: : 对于数据流图中出现的所有被对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解

23、释。每一个图形元素的名字都有一个确切的解释。dd 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/

24、2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021自然语言自然语言+ +结构化形式结构化形式结构化语言结构化语言选选择择结结构构如果如果 if 如果如果 则则 否则否则 情况情况1 情况情况n if then otherwise case 1 case n 循循环环结结构构对对 , 重复以下重复以下 直至直至 for each , repeat t

25、he following: until 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 例例1: 1: 请写出下列在请写出下列在 dfd dfd 图中给出的图中给出的 “统计晚婚职工统计晚婚职工” 的加工说明的加工说明 count late-marriageemployeeslate-marriage -count requestlate-marriage-list=list-count+name-listname-list=name 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 count late-marriage employees policy for each la

26、te-marriage-count request: repeat the following; access the staffs-record. if status is single, if sex is maie and age is over 30 or sex is female and age is over 26 write name to name-list. increment list-count. until there are no more staff-records. combine list-count and name-list. write up late-

27、marriage-list. 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 例例2: 2: 请为下列请为下列dfddfd中的中的“审查并开发票审查并开发票”加工点写加工点写 加工说明加工说明 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021把学生学号和姓名写到发票上把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号按购书单上学生的年级和系、专业与班号 检索检索“各班学生用书表各班学生用书表”文件,获得该生当年的书单文件,获得该生当年的书单 对对 购书单上的每一书号购书单上的每一书号 如果如果 书单上无此书号书单上无此书号 则则 把书号写到出错通知单上把书号写到出错通

28、知单上 否则否则 按书号检索按书号检索 “教材存量表教材存量表”文件,文件, 从而获得该书的单价与库存量从而获得该书的单价与库存量 如果如果 库存量库存量 购书单的数量购书单的数量 则则 将书号写到出错通知单上将书号写到出错通知单上 否则否则 将将书号、单价、数量、总价等项写入到发票上;书号、单价、数量、总价等项写入到发票上; 更新存书量,并写回更新存书量,并写回“教材存量表教材存量表” 文件;文件; 累计书费合计累计书费合计 把把书费合计写到发票上书费合计写到发票上对对每张购书单每张购书单 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚

29、正常分房正常分房优先分房优先分房不分房不分房分房加工逻辑分房加工逻辑判断表判断表采用表格的形式来表达采用表格的形式来表达具复杂判断的加工逻辑具复杂判断的加工逻辑1 1、一般职工婚后、一般职工婚后5 5年可参加分房年可参加分房 2 2、中级以上职称的职工婚后、中级以上职称的职工婚后3 3年年 可参加分房可参加分房 3 3、符合正常分房条件的职工,、符合正常分房条件的职工, 若再符合晚婚条件可优先分房若再符合晚婚条件可优先分房 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房123456说说 明明条条

30、件件婚婚 龄龄5年年3-5年年 5年年3-5 年年$500$500=$50060天天60天天e(p1)+e(p2)设: c(x) 为复杂程度函数 e(x) 为决定解决问题x x所需的工作量(时间)函数 c(p1)c(p2) e(p1)e(p2)c(p1+p2)c(p1)+c(p2) magical number seven,plus or minus two,some limits on our capacity for processing information the psychological review,1956 g.a. miller奇妙的数字 7+2,人类信息处理能力的限度 哈

31、尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021c(p1+p2)c(p1)+c(p2)e(p1+p2)e(p1)+e(p2)软件工程基本定理最小成本区m模块成本接口成本总成本软件开发工作量 模块数 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 每个模块的实现细节对于其他模块来说是隐藏的。 也就是说,模块中所包含的信息是不允许其他不需要 这些信息的模块使用的。 2、信息隐藏(information hiding)栈stack置空栈 makenull进栈 push退栈 pop 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20213、模块的独立性(module independenc

32、e) 模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。中其他模块的接口是简单的。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021(1)、内聚(cohesion)低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 偶然性内聚偶然性内聚 m store recn() to n read mastre file add 1 to x 。 。 abc 当模块内各部之间没有联系

33、,或者即使有联系,这种联系也很松散。则称这种模块为巧合内聚模块。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 逻辑性内聚逻辑性内聚 这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。 调用模块判定读一个记录写一个记录被调用模块 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021sxyzwabcdsxyzw abcd 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 信息性内聚信息性内聚 这种模块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。 符符 号号 表表 查找登录删除修改 哈尔滨工业大学哈

34、尔滨工业大学 韩静萍11/7/2021 功能性内聚功能性内聚 如果一个模块内所有成分都完成一个功能则称这样的模块为功能模块。 主控模块录入查询打印低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021(2)、耦合 耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接非直接耦合耦合数据数据耦合耦合标记标记耦合耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 公共耦合公共

35、耦合 允许一组模块访问同一全局性的数据结构。全局全局数据区数据区abcdefb、c、e 为公共耦合 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 控制耦合控制耦合 如果一个模块通过传送开关、标志、名字 等控制信息,明显地控制选择另一模块的功能 就是控制耦合。a 模块flagf1bf2fn 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 以上给出了 7种耦合类型,这只是从耦合 的机制上所做的分类,按耦合的强弱程度的排 列只是相对的关系。但它给设计人员在设计程 序结构时提供了一决策准则。实际上,开始时 两个模块之间的耦合不只是一种类型,而是多 种类型的混合。这就要求设计人员按照实

36、际情 况进行分析、比较和分析,逐步加以改进,以 提高模块的独立性。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20214.5 结构化设计方法结构化设计方法( (sd- structured design) ) 结构化设计方法是基于模块化、自顶向模块化、自顶向下细化、结构化程序设计下细化、结构化程序设计等程序设计技术基础发展起来的。 它所提供的方法和原则,主要是用来指导软件的概要设计。它还提供了一种 “结构图” 的描述工具,是专门用来描述软件的总体结构的。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 结构化设计属于面向数据流 的设计方法。 在软件的需求分析阶段,数据流是软件开发人

37、员考虑问题的出发点和基础。数据流从系统的输入端向输出端,则要经历一系列的变换或处理。用来表现这个过程的数据流(dfd),实际上就是软件系统的逻辑模型。 面向数据流的设计要解决的任务,就是在上述需求分析的基础上,将dfd图 映射(mapping)- 软件系统的结构。 换句话说,这类设计方法,允许把用 dfd图表示的系统逻辑模型,很方便地转换成对于软件结构的初始设计描述。 结构化设计方法中,软件的结构一律用 图来描述。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021结构化设计的目的 使程序的结构尽可能反映要解决的问题的结构结构化设计的任务 完成目标系统的系统结构图() 哈尔滨工业大学哈尔滨

38、工业大学 韩静萍11/7/2021目标系统的dfdsc 图 - structured chart 该图常用来表示系统的软件结构。利用它可以清楚地表达软件结构中模块间的层次调用关系和模块之间的联系。 sd目标系统的sc 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021asc 图中的主要内容图中的主要内容1、模块-在sc图中用矩形框表示,并用名字来标记它- 模块调用关系2、模块的调用关系和接口b调用模块调用模块a(查询学生)b(查找学生记录)数据信号控制信号学号查找成功信号- 模块间接口的表示 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021产生最佳解产生最佳解得到好的输入得到好的输入

39、计算最佳解计算最佳解输出结果输出结果读输入读输入编辑输入编辑输入好输入好输入解解原始输入原始输入编辑结果结果格式化结果格式化显示结果显示结果解格式化的解sc 图的一般格式图的一般格式 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20211、在系统结构图中的模块一、典型的系统一、典型的系统结构形式结构形式原子模块: 在系统结构图中通常是指不能再分割的底层模块 完全因子分解系统 如果一个软件系统,它的全部实际加工 (即数据计算或处理)都是由底层的原子模块来 完成,而其它所有非原子模块仅仅执行控制或 协调功能。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021传入模块aa传入模块 从下属模块

40、取得数据,进行某些处理,再将其结果 传给上级模块。在此,将它传送的数据流称为逻辑输入 数据流。 在系统结构图中有四种类型的模块:逻辑输入数据流成绩录入成绩录入 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021传出模块 从上级模块获得数据,进行某些处理,再将其结果 传给下属模块。在此,将它传送的数据流称为逻辑输出 数据流。 传出模块dd逻辑输出数据流成绩输出成绩输出 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021变换模块 也叫加工模块。它是从上级模块获得数据,进行 特定的处理,将其转换为其他形式,再传回上级模块 它所加工的数据流叫做变换数据流。 变换模块cb变换数据流 哈尔滨工业大

41、学哈尔滨工业大学 韩静萍11/7/2021协调模块 对所有下属模块进行协调和管理的模块。在一个 好的系统结构图中,协调模块应在较高层出现。协调模块yxyx 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212、典型的系统结构形式之一(变换型系统结构图)取得数据iaeo变换数据给出数据传入部分变换中心传出部分- 具有变换型数据流图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021主模块c变换成d取得c给出d取得bb变换成cd变换成e给出e取得aa变换成baabbbccdcded取得数据cd变换数据给出数据协调模块变换模块传出模块- 具有变换型系统结构图dfd-sc 哈尔滨工业大学哈尔滨

42、工业大学 韩静萍11/7/20213、典型的系统结构形式之二(事务型系统结构图)“事务” 引起、触发或启动某一动作或一串动作的任何数据、控制信号、事件或状态的变化。 由它接受一项事务,根据事务处理的特点和性质 选择分配一个适当的处理单元,然后给出结果。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021输入- 事务型 数据流图abcdefgh中心变换输出逻辑输入物理输入逻辑输出物理输出 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021abcdefghmt3逻辑输入逻辑输出cdcd,e,f- 事务型 数据流图(dfd)- 事务型 系统结构图(sc) 哈尔滨工业大学哈尔滨工业大学 韩静萍

43、11/7/2021事务中心输入已分析的作业内部表示的作业结果- 事务型系统结构(层次)图输出结果调度作业信息读入作业分析作业事务1事务2事务3事务4操作2操作3 操作4 操作5操作6操作1细节2细节3 细节4 细节5细节6细节1细节7结果 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021-简化的事务型系统结构图事务中心得到作业 作业结果输出结果分析 调度事务1事务2事务3 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021二、从二、从 dfd 图导出图导出 sc图的步骤图的步骤开 始细化修改srs中的dfd图判断dfd图的结构类型 是变换型吗?f事务分析变换分析完善sc 图t对最终的

44、sc 图进行评审结束 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20211、变换分析 -是将具有变换型的dfd图导出sc图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021在 图上标出逻辑输入、逻辑输出和变换中心的分界abdvrp变换中心变换中心c,e 逻辑输入w,u 逻辑输出- 具有变换型数据流图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021完成第第一级分解abvrpdemcmamtmec,ec,eu,wu,w变换中心变换中心顶层第一层第一级分解后的 sc 图协调模块yxyx 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021abvrpde第一级分解后的 sc 图(另

45、一种画法)mcma1me1c eu ma2qprme2e c,p pr r w,uw 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021完成第第二级分解abvrpdema变换中心变换中心对逻辑输入的分解cebadabdeccbaabcmaedde 逻辑输入模块的调用与执行过程 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021macebadabdecmaget cget ebtocatobdtoeaecreaddget bread ac,eabbbcde 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021abvrpdeme变换中心变换中心对输出的分解wuvvuwmtqpr ec,p

46、ru,w对变换中心加工的分解 prw,u 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021macbaedmtqpr从变换分析导出的初始 sc 图mewuvmcc, ew,uw,uc,e获得完整的 图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021运用变换分析方法建立系统的sc时需注意以下几点: 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021主模块主模块abca1a2a3a11a12a13 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性低非直接耦合数据耦合标记耦合控制耦合外部耦合公

47、共耦合内容耦合 高弱 强耦合性模块独立性 具有高内聚低耦合的模块才是模块独立性比较强的模块。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 具有高内聚低耦合的模块才是模块独立性比较强的模块。模块a模块d模块c模块b非直接耦合通过参数表通过参数表传递传递数据数据( (数据耦合数据耦合) )通过参数表通过参数表传递传递数据结构数据结构( (数据耦合数据耦合) ) 具有松散型 的耦合类型 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021请将上列给出的具有变换型的dfd图导出它的sc图a1a2b1c1c1p1p2 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20212、事务分析 -是

48、将具有事务型的dfd图导出sc图事务中心事务源 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021主模块给出h取得almna ghbecf d 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021发送部分书库保管员f2f1f5f6f7 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021发送部分- 采购子系统的 sc 图 - 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021三、软件模块结构的改进三、软件模块结构的改进一、模块功能的完善化 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 二、消除重复功能,改善软件结构。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021

49、物理输入相似部分相似模块的各种合并方案的示意图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 三、模块的作用范围应在控制范围之内。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 一个模块的作用范围,是指受这个模块中的判定所影响的模块 。 关于模块的作用范围/控制范围的关系示意图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 理想的情况,应该使判定的作用范围和判定所在模块的控制范围尽可能地吻合(即应使模块的作用范围尽可能地在控制范围之内)。对于一个理想 sc图中的模块设计, 所有受到一个判定影响的模块应该都从属

50、该判定所在的模块,最好位于作出判定的那个模块本身及它的直接下属模块。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021计算实发工资取得工资数据工人实发工资工人实发工资人员实发工资计时制工资额税收扣款薪金制工资额常规扣款编外人员 工资编外人员税款编外人员扣款 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 四、尽可能地减少高扇出结构,随着深度增大扇入。扇入:指模块的上级模块数。 (即共有多少个模块需要 调用这个模块)扇出:指模块调用其下属模块 数目。调用的下属模块数应控制在小于3-4个模块。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021pp1p2q1q2q3q 哈尔滨工业

51、大学哈尔滨工业大学 韩静萍11/7/2021 五、模块的大小要适中。50-100 模块的大小,可以用模块中所含语句的数量的多少来衡量。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 六、应设计出功能可预测的模块,但要避免过分受限制的模块。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021发送部分 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021发送部分请完成下列描述的dfd图,导出它的sc图 美国某大学共有美国某大学共有200200名教师,校方与工会刚刚签定一名教师,校方与工会刚刚签定一 项协议按照协议,所有年工资项协议按照协议,所有年工资=$26,000=$26,000

52、的教师工资将保的教师工资将保 持不变,年工资持不变,年工资$26,000$26,000的教师将增加工资,的教师将增加工资, 所增加的所增加的 工资数按下述方法计算:工资数按下述方法计算: 给每个由此教师所赡养的人给每个由此教师所赡养的人( (包括教师本人包括教师本人) ) 每年补每年补 助助$100$100,此外,教师满一年工龄的再多补助,此外,教师满一年工龄的再多补助$50$50,但是增,但是增 加后的年工资总额不能多于加后的年工资总额不能多于$26,000$26,000。 教师的工资档案储存在行政办公室的磁带上,教师的工资档案储存在行政办公室的磁带上, 档案档案 中有目前的年工资、赡养人数

53、、雇用日期等信息。中有目前的年工资、赡养人数、雇用日期等信息。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021发送部分请将上列给出的 dfd图导出它的sc图 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 第五章第五章 详细设计描述的工具详细设计描述的工具5.1 详细设计阶段的目的与任务 详细设计的目的 为软件结构图 (sc) 中的每一个模块确定采用的算法和模块内 数据结构,用某种选定的表达工具给出清 晰的描述。 详细设计阶段的主要任务 编写软件的 “详细设计说明书” c 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021需求分析需求分析问题定义问题定义可性行研究可性行研究

54、计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021详细设计阶段的主要任务为每一模块确定算法确定每一模块使用的数据结构确定模块的外部接口和用户界面为每一模块设计一组测试用例 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021描述工具程序流程图 图 图 伪代码5.2 详细设计阶段的描述工具 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021a1、顺序型一、程序流程图 b几个连续的加工依次序排列expfta b2、选择型 由某个判断式的取值决定选择两个加工中的一

55、个。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20213、当型循环型 当循环控制条件成立时,重复执行特定的加工。ft4、直到型循环型 重复执行特定的加工,直到循环控制条件成立时。 ft 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/20215、多情况选择型 列出多种加工情况,根据控制变量的取值,选择执行其一。ftttff 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021- 具有嵌套形式的程序流程图ftttff入口ftft=1=2=3 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 标准化程序流程图规定符号 起止端点 输入/输出 一般处理 准备或预处理 预定义处理 条件判断

56、循环上界 循环下界 文件或文档 外接 内接 流程线虚线 省略线 并行方式 注解或注释 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 流程符号的使用规则 1、循环符号的使用 循环名进入循环条件循环体 循环名 s=s+i s=0s=s+is=0,i=1i=i+1 循环体 - 循环流程符号的使用 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 2、判断有一个入口,但也允许有多个可选出口 a=b ab x=1 x=2 x=3 x=4 =1 =2 =3 =4 =5 - 多出口判断流程符号的使用 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 请利用程序流程图描述下列问题的程序结

57、构 某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。 设该模块为 查询模块。请设计该模块的 程序结构。具体要求: 1、应具有重复查询功能; 2、应具有数据检测功能; 3、请利用程序流程图描述该模块的算法。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 顺序型二、 图a b 选择型- nassi and shneideman bpfta apft p=1=2=n a1 a2 an do while(p) s do until (p) s 当型循环型 直到型循环型 多分支选择型 哈尔滨工业大学哈尔滨工业大学 韩静萍11/

58、7/2021零件号100011000210003100041000510006库存量100012508866920203450建立零件库 (s数组), i=0 输入零件号 x do while(x!=s0i)i+i+x=s0i) y n s0i输出 s1i 输入错误! 继续查询? y n 跳出循环 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021三、 图 直到型循环型a bab a while p suntil p s 当型循环型 顺序型 选择型a1 a2an 多分支选择型循环型- problem analysis diagram 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021s

59、17s22=0while num(1-1000) 输入 age s17+ s18+ s19+ s20+ s21+ s22+ while i(17-22) 输出 sibeginend 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021 请为学生成绩管理系统中的学生成绩统计模块设计程序结构。 要求: 1、统计各专业、各班级的高等数学平均分; 2、并将统计结果输出; 3、按平均成绩以班级为单位由高到低排序; 4、请利用pad图描述该模块的算法。 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021四、- program ddesign language是一种用于描述功能模块的算法设计和加工细节

60、的语言。称为设计程序用语言。它是一种伪代码(pseudo code) -关键词+自然语言 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021(1)、数据说明:格式: type as 其功能是定义数据的类型和作用域说明: 1. 变量名:是一个模块内部使用的变量或模块间共用 的全局变量名。 2. 限定词1 :标明数据类型 3. 限定词2 :标明该变量的作用域 type number as string length (12) 哈尔滨工业大学哈尔滨工业大学 韩静萍11/7/2021(2)、程序块: pdl的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。 begin end 哈尔滨工业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论