1、2022-11-11哈尔滨工业大学哈尔滨工业大学 韩静萍Software Engineering 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但是为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。微软凌小宁博士 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 我最大的心得是
2、,一个产品一定要找到能够真正适用的场合,不能只是为了技术而从事技术为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。微软张益肇博士 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 软件工程是计算机科学与技术专业的一门专业核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。课程的性质、目的与任务课程的性质、目的与任务 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11
3、 本课程比较全面、系统地介绍软件工程的概念、技术与方法。主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法、软件测试技术等。通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容课程主要内容 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11学习本课程的基本要求学习本课程的基本要求 本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用
4、的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法论。通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11章学时章学时章学时章学时123494132补充2421021442284122总学时 46=38(讲授)+8(课程设计)各 章 学 时 安 排 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的
5、问题和基本概念传统工程新兴工程气象工程生物工程 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-111.1 软件的概念与特点软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112、软件特点 软件是一种逻辑实体,而不是具体的物理实体 软件的生产与硬件不同 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线 哈尔滨工业大学哈尔滨工业大学 韩静萍
6、2022-11-11 软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%1950197019851995硬件硬件 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-113、软件的分类系统软件支撑软件应用软件 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11支撑软件 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 按开发软件所需的 人力、时间以及完成的 源代码行数。类别参加人数研制期限产品规模(源代码行数)哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 软件项目开发软件产品开发 哈尔滨工业大学哈尔滨工业大学
7、韩静萍2022-11-111.2 软件工程的概念及范畴软件工程的概念及范畴 1、“软件工程”-Software Engineering 于1968年 NATO 组织在德国召开的一次会议上提出 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 软件工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学-软件工程学的范畴 2、软件工程学 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 Wake up every day with a feeling of passion for the different technology wi
8、ll make in peoples Life.微软企业文化宗旨部分内容 每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11程序 3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 80 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-111.3 软件生存周期软件生存周期把软件从产生、发展到成熟、直至衰亡为止(SW life cycle)哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11特点:上一阶段的变换结果 是下一
9、阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 Waterfall Model)哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11原型模型(Prototype Model)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽快向用户提供原型,开发原型系统时应尽量使用 能缩短开发
10、周期的语言和工 具。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 第二章第二章 问题的定义与可性行研究问题的定义与可性行研究 当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为 计划时期 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11开始问题定义可性行研究 可行否?项目实施计划终止项目的建议结束Y计划时期的工作流程图N
11、哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11Who 为谁设计,用户是谁?What 要解决哪些问题?Why 为什么要解决这些问题 3W Win CE1.0 有用的软件有用的软件 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112.1 现状调查和问题的定义现状调查和问题的定义 目的目的:弄清楚用户要求计算机解决什么问题弄清楚用户要求计算机解决什么问题任务任务:编写系统目标与规范说明书编写系统目标与规范说明书系统目标与规范说明书系统目标与规范说明书1 1、项目:教材销售系统、项目:教材销售系统2 2、问题:人工销售教材手续繁琐,容易出错、问题:人工销售教材手续繁琐,容易出错3 3
12、、项目目标:建立一个高效率、无差错的计算机教材销售系统、项目目标:建立一个高效率、无差错的计算机教材销售系统4 4、项目范围:利用现有的计算机,软件开发费用不得超过、项目范围:利用现有的计算机,软件开发费用不得超过20002000元元5 5、初步想法:建议在系统中增加对缺书的统计与采购功能、初步想法:建议在系统中增加对缺书的统计与采购功能6 6、可性行研究:建议进行大约、可性行研究:建议进行大约1010天的可性行研究,且研究费用不超过天的可性行研究,且研究费用不超过500500元元 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112.2 可行性研究与论证可行性研究与论证 1、经济可行性
13、:进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是:围绕着对系统开发的价值价值进行论证 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11举例:关于开发CAD系统的软件开发成本及效益分析 1 2 3 4 5 年604020 0成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期-成本及效益分析图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112、技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。通过技术可行性的分析,将为新
14、系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等 技术可行性分析方法-数学模型和优化技术、概率和统计、排队论、控制论等方法。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112.3 可行性分析所需工具可行性分析所需工具(系流程图与系统结构图)1、系统流程图:是用来描述系统物理模型的一种传统工具。流程符号含 义流程符号含 义数据加工符号换页连接 输入/输出符号磁带符号连接点符号文档符号人工操作多文档符号 哈尔滨工
15、业大学哈尔滨工业大学 韩静萍2022-11-11流程符号含 义流程符号含 义显示器或终端机控制流符号磁盘机或数据库流程开始与结束 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 举例库存清单系统流程图库存清单程序库存清单程序定货报告定货报告事务事务定货信息定货信息结束结束报告生成程序报告生成程序零件库零件库 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11人工销售教材 流程图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11计算机售书系统流程图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 设某城市招干考试成绩统计系统。设某城市招干考试成绩统计系统。考生分
16、三个专业,不同专业考试科目不同:考生分三个专业,不同专业考试科目不同:法律专业法律专业-考政治、语文、法律考政治、语文、法律 行政专业行政专业-考政治、语文、行政考政治、语文、行政 财经专业财经专业-考政治、语文、财经学考政治、语文、财经学 每个考生在报名时登记姓名、地址、年龄和报考专业。报每个考生在报名时登记姓名、地址、年龄和报考专业。报 名后招干办公室根据专业考生专业及地址在市区或郊区来编排名后招干办公室根据专业考生专业及地址在市区或郊区来编排 准考证号码和考场。考生参加考试后,输入每个考生的各门课准考证号码和考场。考生参加考试后,输入每个考生的各门课 程的成绩,并统计出每个考生三门课程的
17、总成绩。按准考证号程的成绩,并统计出每个考生三门课程的总成绩。按准考证号 的顺序打印出考生考试成绩单,分发给每个考生。各专业分别的顺序打印出考生考试成绩单,分发给每个考生。各专业分别 将考生按成绩总分从高到低的次序排序,以便决定录取名单。将考生按成绩总分从高到低的次序排序,以便决定录取名单。请画出由下列文字描述的系统流程图请画出由下列文字描述的系统流程图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112、系统结构图:系统工程师用结构摸板开发的系统模型-结构摸板-哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11-传输线的分类系统 3、系统结构环境图(ACD-Architectu
18、re Context Diagram):ACD 可用于描述实现系统与系统运行环境之间的信息边界。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11传输线分类系统条形码阅读器传输线分配站操作员分配站操作员分类机构主 机条形码线速指示器分路命令格式化报告数据查询查询及报告诊断数据-传输线分类系统的 ACD 图处理与控制功能区外部实体 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 ACD 的层次结构ABC 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11请画出学生成绩管理系统的 ACD 图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 第第3 章章 软件需求分析
19、软件需求分析 软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。软件需求分析阶段要求用 需求规格说明书(SRS)来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。本章将介绍需求分析的(面向数据流图分析方法、面向对象的分析方法)。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-113.1 需求分析的任务需求分析的任务 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11某学校医疗费管理系统 哈尔滨工业大学哈尔滨工业大
20、学 韩静萍2022-11-11 1 1、医疗费管理系统每天医疗费管理系统每天记录记录当天报销的若干职工或职工子女的医当天报销的若干职工或职工子女的医 疗费的疗费的类别、金额类别、金额。2 2、在当天下班前让系统在当天下班前让系统自动结帐自动结帐、统计当天报销的医疗费总额统计当天报销的医疗费总额,供,供 出纳员核对。出纳员核对。3 3、每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金 额累计起来,以便检查哪些职工已超额。额累计起来,以便检查哪些职工已超额。4 4、系统还要配有适当的系统还要配有适当的查询功能查询功能。5 5、年终结算
21、后,下一年度开始时要对数据库文件进行初始化。年终结算后,下一年度开始时要对数据库文件进行初始化。6 6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,当职工调离本单位,职工调如本单位或在本单位内部门间调动,数据库文件应能及时得到修改。数据库文件应能及时得到修改。请完成对上述系统的 需求分析用户对系统的要求 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11
22、-11问题需求问题需求 1、建立目标系统逻辑模型的步骤 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11图形工具 数据流图 数据字典 2、建立目标系统逻辑模型的图形工具 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 -学生购买教材的具体模型 -学生购买教材的 逻辑模型 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 完善目标系统并补充细节,的出目标系统的正式逻辑模型 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11一、数据流图一、数据流图 3.2 面向数据流的方法面向数据流的方法 -DFD(Data
23、 Flow Diagram)是用来描述系统逻辑模型的一种图形工具。是用来描述系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。刻画数据流从输入到输出的移动变换过程。DFD 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11-系统系统逻辑逻辑模型模型 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工
24、业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11外部实体外部实体 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 F1书号书号单价单价数量数量 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11-DFD 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11DFD 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大
25、学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11请画出学生成绩管理系统的 DFD 图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11二、数据字典二、数据字典 -DD(Data Dictionary)数据字典的任务是数据字典的任务是:对于数据流图中出现的所有被对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。每一个图形元素的名字都有一个确切的解释。DD 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大
26、学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-
27、11-11 描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11自然语言自然语言+结构化形式结构化形式结构化语言结构化语言选选择择结结构构如果如果 If 如果如果 则则 否则否则 情况情况1 情况情况n If then Otherwise case 1 case n 循循环环结结构构对对 ,重复以下重复以下 直至直至 For each ,Repeat the following:Until 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 例例1:1:请写出下
28、列在请写出下列在 DFD DFD 图中给出的图中给出的 “统计晚婚职工统计晚婚职工”的加工说明的加工说明 Count Late-MarriageEmployeesLate-Marriage-Count RequestLate-Marriage-List=List-Count+Name-ListName-List=Name 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 Count Late-Marriage Employees Policy For each Late-Marriage-Count request:Repeat the following;Access the sta
29、ffs-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-Marriage-List.哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 例例2:2:请为下列请为下列DFDDFD中的中的“审
30、查并开发票审查并开发票”加工点写加工点写 加工说明加工说明 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11把学生学号和姓名写到发票上把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号按购书单上学生的年级和系、专业与班号 检索检索“各班学生用书表各班学生用书表”文件,获得该生当年的书单文件,获得该生当年的书单 对对 购书单上的每一书号购书单上的每一书号 如果如果 书单上无此书号书单上无此书号 则则 把书号写到出错通知单上把书号写到出错通知单上 否则否则 按书号检索按书号检索 “教材存量表教材存量表”文件,文件,从而获得该书的单价与库存量从而获得该书的单价与库存量 如果如果
31、库存量库存量 购书单的数量购书单的数量 则则 将书号写到出错通知单上将书号写到出错通知单上 否则否则 将将书号、单价、数量、总价等项写入到发票上;书号、单价、数量、总价等项写入到发票上;更新存书量,并写回更新存书量,并写回“教材存量表教材存量表”文件;文件;累计书费合计累计书费合计 把把书费合计写到发票上书费合计写到发票上对对每张购书单每张购书单 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房分房加工逻辑分房加工逻辑判断表判断表采用表格的形式来表达采用表格的形式来表达具复杂判断的加工逻辑具复杂
32、判断的加工逻辑1 1、一般职工婚后、一般职工婚后5 5年可参加分房年可参加分房 2 2、中级以上职称的职工婚后、中级以上职称的职工婚后3 3年年 可参加分房可参加分房 3 3、符合正常分房条件的职工,、符合正常分房条件的职工,若再符合晚婚条件可优先分房若再符合晚婚条件可优先分房 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房123456说说 明明条条件件婚婚 龄龄5年年3-5年年 5年年3-5 年年$500$500=$50060天天60天天E(P1)+E(P2)设:C(x)为复杂程度函数 E(
33、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,人类信息处理能力的限度 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)软件工程基本定理最小成本区M
34、模块成本接口成本总成本软件开发工作量 模块数 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 每个模块的实现细节对于其他模块来说是隐藏的。也就是说,模块中所包含的信息是不允许其他不需要 这些信息的模块使用的。2、信息隐藏(information hiding)栈stack置空栈 makenull进栈 push退栈 pop 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-113、模块的独立性(module independence)模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统
35、中其他模块的接口是简单的。中其他模块的接口是简单的。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11(1)、内聚(Cohesion)低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 偶然性内聚偶然性内聚 M STORE RECN()TO N READ MASTRE FILE ADD 1 TO X 。ABC 当模块内各部之间没有联系,或者即使有联系,这种联系也很松散。则称这种模块为巧合内聚模块。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 逻辑性内聚逻辑性内聚 这种模块是把几种功能
36、组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。调用模块判定读一个记录写一个记录被调用模块 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11SXYZWABCDSXYZW ABCD 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 信息性内聚信息性内聚 这种模块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。符符 号号 表表 查找登录删除修改 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 功能性内聚功能性内聚 如果一个模块内所有成分都完成一个功能则称这样的模块为功能模块。主控模块录入查询打印低功能内聚信息内聚
37、通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11(2)、耦合 耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接非直接耦合耦合数据数据耦合耦合标记标记耦合耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 公共耦合公共耦合 允许一组模块访问同一全局性的数据结构。全局全局数据区数据区ABCDEFB、C、E 为公共耦合 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 控
38、制耦合控制耦合 如果一个模块通过传送开关、标志、名字 等控制信息,明显地控制选择另一模块的功能 就是控制耦合。A 模块flagf1Bf2fn 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 以上给出了 7种耦合类型,这只是从耦合 的机制上所做的分类,按耦合的强弱程度的排 列只是相对的关系。但它给设计人员在设计程 序结构时提供了一决策准则。实际上,开始时 两个模块之间的耦合不只是一种类型,而是多 种类型的混合。这就要求设计人员按照实际情 况进行分析、比较和分析,逐步加以改进,以 提高模块的独立性。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-114.5 结构化设计方法结构化设计方
39、法(SD-Structured Design)结构化设计方法是基于模块化、自顶向模块化、自顶向下细化、结构化程序设计下细化、结构化程序设计等程序设计技术基础发展起来的。它所提供的方法和原则,主要是用来指导软件的概要设计。它还提供了一种“结构图”的描述工具,是专门用来描述软件的总体结构的。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 结构化设计属于面向数据流 的设计方法。在软件的需求分析阶段,数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端,则要经历一系列的变换或处理。用来表现这个过程的数据流(DFD),实际上就是软件系统的逻辑模型。面向数据流的设计要解决的任
40、务,就是在上述需求分析的基础上,将DFD图 映射(Mapping)-软件系统的结构。换句话说,这类设计方法,允许把用 DFD图表示的系统逻辑模型,很方便地转换成对于软件结构的初始设计描述。结构化设计方法中,软件的结构一律用 图来描述。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11结构化设计的目的 使程序的结构尽可能反映要解决的问题的结构结构化设计的任务 完成目标系统的系统结构图()哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11目标系统的DFDSC 图-Structured Chart 该图常用来表示系统的软件结构。利用它可以清楚地表达软件结构中模块间的层次调用关系和模块之间
41、的联系。SD目标系统的SC 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11ASC 图中的主要内容图中的主要内容1、模块-在SC图中用矩形框表示,并用名字来标记它-模块调用关系2、模块的调用关系和接口B调用模块调用模块A(查询学生)B(查找学生记录)数据信号控制信号学号查找成功信号-模块间接口的表示 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11产生最佳解产生最佳解得到好的输入得到好的输入计算最佳解计算最佳解输出结果输出结果读输入读输入编辑输入编辑输入好输入好输入解解原始输入原始输入编辑结果结果格式化结果格式化显示结果显示结果解格式化的解SC 图的一般格式图的一般格式 哈尔滨
42、工业大学哈尔滨工业大学 韩静萍2022-11-111、在系统结构图中的模块一、典型的系统一、典型的系统结构形式结构形式原子模块:在系统结构图中通常是指不能再分割的底层模块 完全因子分解系统 如果一个软件系统,它的全部实际加工(即数据计算或处理)都是由底层的原子模块来 完成,而其它所有非原子模块仅仅执行控制或 协调功能。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11传入模块AA传入模块 从下属模块取得数据,进行某些处理,再将其结果 传给上级模块。在此,将它传送的数据流称为逻辑输入 数据流。在系统结构图中有四种类型的模块:逻辑输入数据流成绩录入成绩录入 哈尔滨工业大学哈尔滨工业大学 韩静
43、萍2022-11-11传出模块 从上级模块获得数据,进行某些处理,再将其结果 传给下属模块。在此,将它传送的数据流称为逻辑输出 数据流。传出模块DD逻辑输出数据流成绩输出成绩输出 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11变换模块 也叫加工模块。它是从上级模块获得数据,进行 特定的处理,将其转换为其他形式,再传回上级模块 它所加工的数据流叫做变换数据流。变换模块CB变换数据流 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11协调模块 对所有下属模块进行协调和管理的模块。在一个 好的系统结构图中,协调模块应在较高层出现。协调模块YXYX 哈尔滨工业大学哈尔滨工业大学 韩静萍
44、2022-11-112、典型的系统结构形式之一(变换型系统结构图)取得数据iaeo变换数据给出数据传入部分变换中心传出部分-具有变换型数据流图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11主模块C变换成D取得C给出D取得BB变换成CD变换成E给出E取得AA变换成BAABBBCCDCDED取得数据CD变换数据给出数据协调模块变换模块传出模块-具有变换型系统结构图DFD-SC 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-113、典型的系统结构形式之二(事务型系统结构图)“事务”引起、触发或启动某一动作或一串动作的任何数据、控制信号、事件或状态的变化。由它接受一项事务,根据事务处
45、理的特点和性质 选择分配一个适当的处理单元,然后给出结果。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11输入-事务型 数据流图ABCDEFGH中心变换输出逻辑输入物理输入逻辑输出物理输出 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11ABCDEFGHMT3逻辑输入逻辑输出CDCD,E,F-事务型 数据流图(DFD)-事务型 系统结构图(SC)哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11事务中心输入已分析的作业内部表示的作业结果-事务型系统结构(层次)图输出结果调度作业信息读入作业分析作业事务1事务2事务3事务4操作2操作3 操作4 操作5操作6操作1细节2细节3
46、 细节4 细节5细节6细节1细节7结果 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11-简化的事务型系统结构图事务中心得到作业 作业结果输出结果分析 调度事务1事务2事务3 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11二、从二、从 DFD 图导出图导出 SC图的步骤图的步骤开 始细化修改SRS中的DFD图判断DFD图的结构类型 是变换型吗?F事务分析变换分析完善SC 图T对最终的SC 图进行评审结束 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-111、变换分析-是将具有变换型的DFD图导出SC图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11在 图上标出
47、逻辑输入、逻辑输出和变换中心的分界abdvrp变换中心变换中心c,e 逻辑输入w,u 逻辑输出-具有变换型数据流图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11完成第第一级分解abvrpdeMcMAMTMEC,eC,eU,wU,w变换中心变换中心顶层第一层第一级分解后的 SC 图协调模块YXYX 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11abvrpde第一级分解后的 SC 图(另一种画法)McMA1ME1C eU MA2QPRME2e c,p pr r w,uw 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11完成第第二级分解abvrpdeMA变换中心变换中心
48、对逻辑输入的分解CEBADabdeccbaABCMAEDde 逻辑输入模块的调用与执行过程 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11MACEBADabdecMAGet CGet EBtoCAtoBDtoEaecReadDGet BRead Ac,eabbbcde 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11abvrpdeME变换中心变换中心对输出的分解WUVvuwMTQPR eC,prU,w对变换中心加工的分解 prw,u 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11MACBAEDMTQPR从变换分析导出的初始 SC 图MEWUVMCc,eW,uW,uC
49、,e获得完整的 图 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11运用变换分析方法建立系统的SC时需注意以下几点:哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11主模块主模块ABCA1A2A3A11A12A13 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性低非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性 具有高内聚低耦合的模块才是模块独立性比较强的模块。哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11 具有高内聚低耦合的模块才是模块独
50、立性比较强的模块。模块A模块D模块C模块B非直接耦合通过参数表通过参数表传递传递数据数据(数据耦合数据耦合)通过参数表通过参数表传递传递数据结构数据结构(数据耦合数据耦合)具有松散型 的耦合类型 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11请将上列给出的具有变换型的DFD图导出它的SC图a1a2b1c1c1p1P2 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-112、事务分析-是将具有事务型的DFD图导出SC图事务中心事务源 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-11-11主模块给出H取得ALMNA GHBECF D 哈尔滨工业大学哈尔滨工业大学 韩静萍2022-1