软件工程全课件

PPT
  • 阅读 61 次
  • 下载 0 次
  • 页数 419 页
  • 大小 5.724 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档50.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件工程全课件
可在后台配置第一页与第二页中间广告代码
软件工程全课件
可在后台配置第二页与第三页中间广告代码
软件工程全课件
可在后台配置第三页与第四页中间广告代码
软件工程全课件
软件工程全课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 419
  • 收藏
  • 违规举报
  • © 版权认领
下载文档50.00 元 加入VIP免费下载
文本内容

【文档说明】软件工程全课件.ppt,共(419)页,5.724 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45043.html

以下为本文档部分文字说明:

软件工程全ppt课件哈尔滨工业大学韩静萍哈尔滨工业大学韩静萍哈尔滨工业大学韩静萍哈尔滨工业大学韩静萍2022/11/24本课程比较全面、系统地介绍软件工程的概念、技术与方法。主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法

、软件测试技术等。通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过

程,从而使学生掌握软件开发的基本技能。课程主要内容哈尔滨工业大学韩静萍2022/11/24学习本课程的基本要求本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设

计方法论。通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。哈尔滨工业大学韩静萍2022/11/24章学时章学时章学时章学时123494132补充2421021442284122总学时46=38(讲授)+8(课程设计)各章学时安排哈尔滨工业大学韩静萍2022/11/

24第一章软件工程概述水利工程建筑工程机械工程……软件工程本章将对软件的地位和作用、软件的特点、软件的发展、软件的危机以及软件工程学科的形成、软件生期等方面的问题和基本概念传统工程新兴工程气象工程生物工程哈尔滨工业大学韩静萍2022/11/241.

1软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。哈尔滨工业大学韩静萍2022/11/242、软件特点.软件是一种逻辑实体,而不是具体的物理实体.软件的生产与硬

件不同.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线哈尔滨工业大学韩静萍2022/11/24.软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软

件技术硬、软件成本比例的变化年份成本%软件1950197019852019硬件哈尔滨工业大学韩静萍2022/11/243、软件的分类1、按软件的功能进行划分系统软件支撑软件应用软件哈尔滨工业大学韩静萍2022/11/24支撑软件一般类型:文本编辑程序文本格式化

程序支持需求分析:PSL/PSA问题描述语言关系数据库管理系统支持设计:图形软件包结构化流程图绘图程序支持测试:静态分析器测试覆盖检验程序支持实现:编辑程序连接编辑程序支持管理:标准检验程序库管理程序哈尔滨工业大学韩静萍2022/11/242、

按软件的规模进行划分按开发软件所需的人力、时间以及完成的源代码行数。类别参加人数研制期限产品规模(源代码行数)微型小型中型大型甚大型极大型112-55-20100-10002000-50001-4周1-6周1-2年2-3年4-5年5-10年约500行约2000行5000-50000行5万-1

0万行100万行1000万行哈尔滨工业大学韩静萍2022/11/243、按软件开发划分软件项目开发软件产品开发哈尔滨工业大学韩静萍2022/11/241.2软件工程的概念及范畴1、“软件工程”----Sof

twareEngineering于1968年NATO组织在德国召开的一次会议上提出是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。哈尔滨工业大学韩静萍2022/11/2

4软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件工程管理学软件经济学----软件工程学的范畴2、软件工程学哈尔滨工业大学韩静萍2022/11/24Wakeupeverydaywithafeelingofpassionforthed

ifferenttechnologywillmakeinpeople’sLife.微软企业文化宗旨部分内容每天醒来的时候,要对技术给生活造成的改变始终拥有一份激情。哈尔滨工业大学韩静萍2022/11/24程序3、软件的演变(即从传统

软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发1975198920000.00016240营业额增长曲线80哈尔滨工业大学韩静萍2022/11/241.3软件生存周期把软件从产生、发展到成

熟、直至衰亡为止(SWlifecycle)哈尔滨工业大学韩静萍2022/11/24特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。需求分析问题定义可性行研究计划时期概要设计详细设计编码测试开发时期运行与维护运行时期软件生存周期模型(瀑布模型Water

fallModel)哈尔滨工业大学韩静萍2022/11/24原型模型(PrototypeModel)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的主要功能,以及系统的重要接口。2、为了尽快向用户提供原型,开发原型系统时应尽

量使用能缩短开发周期的语言和工具。哈尔滨工业大学韩静萍2022/11/24第二章问题的定义与可性行研究当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值

从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为计划时期哈尔滨工业大学韩静萍2022/11/24开始问题定义可性行研究可行否?项目实施计划终止项目的

建议结束Y计划时期的工作流程图N哈尔滨工业大学韩静萍2022/11/24Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题3WWinCE1.0有用的软件哈尔滨工业大学韩静萍2022/11/242.1现状调查和问

题的定义目的:弄清楚用户要求计算机解决什么问题任务:编写系统目标与规范说明书系统目标与规范说明书1、项目:教材销售系统2、问题:人工销售教材手续繁琐,容易出错3、项目目标:建立一个高效率、无差错的计算机教材销售系统4、项目范围:

利用现有的计算机,软件开发费用不得超过2000元5、初步想法:建议在系统中增加对缺书的统计与采购功能6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元哈尔滨工业大学韩静萍2022/11/242.2可行性研究与论证1、经济可行性:进行成本效益分析,评估项目的开发成

本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是:围绕着对系统开发的价值进行论证哈尔滨工业大学韩静萍2022/11/24

举例:关于开发CAD系统的软件开发成本及效益分析12345年6040200成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期---------成本及效益分析图哈尔滨工业大学韩静萍2022/

11/242、技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等技术可行性分析方法---数学模型和优化技术、概率和统计、排队论、控

制论等方法。哈尔滨工业大学韩静萍2022/11/24可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见哈尔滨工业大学韩静萍2022/11/242.3可行性分析所需工具(系流程图与系统结构图)1、系统流程图:是用来描述系统物理模型

的一种传统工具。流程符号含义流程符号含义数据加工符号换页连接输入/输出符号磁带符号连接点符号文档符号人工操作多文档符号哈尔滨工业大学韩静萍2022/11/24流程符号含义流程符号含义显示器或终端机控制流符号磁盘机或数据库流程开始与结束哈尔滨工

业大学韩静萍2022/11/24举例库存清单系统流程图库存清单程序定货报告事务定货信息结束报告生成程序零件库哈尔滨工业大学韩静萍2022/11/24人工销售教材流程图结束学生申请购书购书证明检索教材帐本是

否有该教材购书单开购书发票和购书单购书发票到书库领书哈尔滨工业大学韩静萍2022/11/24计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库哈尔滨工业大学韩静萍202

2/11/24练习设某城市招干考试成绩统计系统。考生分三个专业,不同专业考试科目不同:法律专业---考政治、语文、法律行政专业---考政治、语文、行政财经专业---考政治、语文、财经学每个考生在报名时登记姓名、地址、年龄和报考专业。报名后招干办公室根据专业考生专业及地

址在市区或郊区来编排准考证号码和考场。考生参加考试后,输入每个考生的各门课程的成绩,并统计出每个考生三门课程的总成绩。按准考证号的顺序打印出考生考试成绩单,分发给每个考生。各专业分别将考生按成绩总分从高到低的次序排序,以便决定录取名单

。请画出由下列文字描述的系统流程图哈尔滨工业大学韩静萍2022/11/242、系统结构图:系统工程师用结构摸板开发的系统模型用户界面处理输入处理维护和自测试处理和控制功能输出处理----结构摸板----哈尔滨工业大学韩静萍2022/11/24-------传输线的分类系统3、系统

结构环境图(ACD-ArchitectureContextDiagram):ACD可用于描述实现系统与系统运行环境之间的信息边界。哈尔滨工业大学韩静萍2022/11/24传输线分类系统条形码阅读器传输线分配站操作员分配站操作员分类机构主机条形

码线速指示器分路命令格式化报告数据查询查询及报告诊断数据-------传输线分类系统的ACD图处理与控制功能区外部实体哈尔滨工业大学韩静萍2022/11/24ACD的层次结构ABC哈尔滨工业大学韩静萍2022/11/24作请画出学

生成绩管理系统的ACD图业哈尔滨工业大学韩静萍2022/11/24第3章软件需求分析软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发

的基础。软件需求分析阶段要求用需求规格说明书(SRS)来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。本章将介绍需求分析的任务、步骤、需求分析方法(面向数据流图分析方法、面向对象的分析方法)。哈尔滨

工业大学韩静萍2022/11/24一、确定目标系统的具体要求1、确定系统的运行环境要求2、系统的性能要求3、系统功能3.1需求分析的任务硬件环境和软件环境确定目标系统具备的所有功能哈尔滨工业大学韩静萍2022/11/24举例数据库中存放的是职工的某学校医疗费管理系统所属部门、职工号、姓名

职工报销时应填写:所属部门、职工号、姓名、日期校内门诊、校外门诊、住院费、子女医疗费医疗费分类:该校规定,每年每个职工的医疗费有一个限额(如80元),限额在年初确定,其限额规则如下:1、每个职工一年内报销的医疗费不超过限额时,全部报销2、超额,则超出部分只可报销90%,其余10%由职工个

人负担3、职工子女的医疗费也有限额(如40元)哈尔滨工业大学韩静萍2022/11/241、医疗费管理系统每天记录当天报销的若干职工或职工子女的医疗费的类别、金额。2、在当天下班前让系统自动结帐、统计当天报销的医疗费总额,供出纳员核对。3、每笔帐要保存备

查,每天所报销的费用要和各个职工已报销的金额累计起来,以便检查哪些职工已超额。4、系统还要配有适当的查询功能。5、年终结算后,下一年度开始时要对数据库文件进行初始化。6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,数据库文件应能及时得到修改。请完成对上述系统的需求分

析用户对系统的要求哈尔滨工业大学韩静萍2022/11/24该系统规模不太大,可以和用户单位的其他管理系统使用相同的计算机硬件设备、相同的操作系统和相同的关系数据库管理系统。如果,可以使用汉化了的数据库管理系统,但在建立数据库结构时,凡是用英文名称

来代表字段名时,则必须在数据字典中予以说明。1、确定系统的环境要求哈尔滨工业大学韩静萍2022/11/243、系统的功能(1)具有表格形式屏幕的输入格式(2)具有重复录入数据的功能(3)具有查询和统计汇总的功能(4

)职工的调入和调出以及对数据库的初始化哈尔滨工业大学韩静萍2022/11/242、系统性能要求(1)数据不能随意更改2)保证数据的准确性由于医疗费管理系统涉及到会计经费问题,数据不能随意更改但数据输入又难免会出错。因而在每输入一个职工的医疗费后,屏幕提示“数

据有误吗?”。若是在核对时有误,可及时更改,避免输入错误。一天报销结束时,在数据存档前,再让出纳员核对一下经费总额,若出纳员支出的金额总数有误时,应让计算机显示每笔帐目,供一一仔细核对,此时在允许修改一次。当正式登帐后,数据就绝对不允许在修改了,由此保

证财务制度的严格性,保证数据的安全性。哈尔滨工业大学韩静萍2022/11/24二、建立目标系统的逻辑模型通常软件软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它是软件实现的基础。但是目标系统的物理模型是由它的

逻辑模型经实例化,即具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽视机制和细节,只描述系统要完成的功能和要处理的数据。为此,该阶段的主要任务是,借助于当前系统的逻辑模型导出目标系统的逻辑模型,也

就是解决目标系统“做什么”的问题。哈尔滨工业大学韩静萍2022/11/24用户调查具体模型建立系统模型的工作流程逻辑抽象当前系统逻辑模型当前系统计算机化评审修改正式模型完善细节目标系统目标系统初始模型系统模型用户1、建立目标系统逻辑模型的步骤哈尔滨工业

大学韩静萍2022/11/24图形工具数据流图数据字典2、建立目标系统逻辑模型的图形工具哈尔滨工业大学韩静萍2022/11/24----学生购买教材的具体模型举例请建立计算机售书系统的逻辑模型张秘书学生购书王会计发票

李出纳领书赵保管单证明书----学生购买教材的逻辑模型审查有效性学生有效开发票发票开领书单领书单发书购书单书哈尔滨工业大学韩静萍2022/11/24----学生购买教材的逻辑模型审查并开发票学生发票各班学生用书表教材存量

表无效书单开领书单领书单学生完善目标系统并补充细节,的出目标系统的正式逻辑模型哈尔滨工业大学韩静萍2022/11/24三、需求规格说明书与评审软件需求说明书----SRS(SoftwareRequirementSpecification)主要包括以下的内容:SRS引

言数据描述数据流图数据字典功能描述性能描述特殊需求哈尔滨工业大学韩静萍2022/11/24一、数据流图3.2面向数据流的方法----DFD(DataFlowDiagram)是用来描述系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。DF

D哈尔滨工业大学韩静萍2022/11/24储户检验付款登录存折帐卡办理取款手续的DFD图检验不合格现款付款信息哈尔滨工业大学韩静萍2022/11/241、数据流图中的主要图形元素------转换数据流的处理过程----可以是数据库文件或任何形式的数据组织。箭头向内则表示

写入文件或查询文件,箭头向外则表示从文件中读取数据或得到查询结果数据转换外部实体------位于软件系统边界之外的信息生产者或消费者数据流------在转换之间有向流动的数据项或数据集合数据存储文件哈尔滨工

业大学韩静萍2022/11/24----系统逻辑模型数据的加工或变换输入输出软件系统外部实体外部实体……外部实体外部实体……哈尔滨工业大学韩静萍2022/11/24----学生购买教材的逻辑模型审查并开发票学生发票各班学生用书表教材存量表无效书单开领书单领书

单学生外部实体数据的加工哈尔滨工业大学韩静萍2022/11/242、数据流图中的其它图形元素ABC------有A则B或者C,或者两者都有*ABC+ABC------有A则B与C,或者两者同时有------有A则B或C,但不会同时有B与C哈尔滨工业

大学韩静萍2022/11/24-----标识多个数据流与加工之间关系的符号------当A或B有一个存在就有CABC*ABC------只有当A与B都存在,则有C哈尔滨工业大学韩静萍2022/11/243、分层的数据流图F0

F11F12F13F14F15F21F22F23F24F25第n层第n+1层第n+2层哈尔滨工业大学韩静萍2022/11/24人工销售教材系统流程图学生开购书证明购书证明开购书发票发票收书费领书单发书学生举例哈尔滨工业大学韩静萍2022/11/24学生教材购销系统购书单领书单缺书单

进书通知进书通知保管员1销售购书单领书单学生缺书单进书通知2采购保管员第1层第2层教材存量表F1缺书登记表F2外部实体外部实体哈尔滨工业大学韩静萍2022/11/24教材销售子系统无效书单购书单1.3登记并开领书单1

.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层补售书单第3层教材存量表F1缺书登记表F

2F1书号单价数量各班用书表F3售书登记表F4外部项哈尔滨工业大学韩静萍2022/11/241销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教

材存量表F1待购教材表F5教材一览表F6缺书登记表F2哈尔滨工业大学韩静萍2022/11/24.便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;---用一组图代替一张总图,方便用户及软件开发人员阅读。4、分层DFD图的

优点哈尔滨工业大学韩静萍2022/11/24.注意父图和子图的平衡5、画分层DFD的指导原则发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图哈尔滨工业大学韩静萍2022/11/24.区

分局部文件和局部外部项.掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。.遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.

1,n.2…等号,依此类推。哈尔滨工业大学韩静萍2022/11/241销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存

量表F1待购教材表F5教材一览表F6缺书登记表F2局部外部项局部文件哈尔滨工业大学韩静萍2022/11/24练请画出学生成绩管理系统的DFD图习哈尔滨工业大学韩静萍2022/11/24二、数据字典----DD(DataDictionary)数据字典的

任务是:对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。DD哈尔滨工业大学韩静萍2022/11/241、数据字典的定义数据流名:说明:简要介绍作用即它产生的原因和结果。数据流来源:即该数据流来自

何方。数据流去向:去向何处。数据流组成:数据结构。每个数据量流通量:数据量、流通量。(1)数据流词条的描述数据流名:发票说明:用作学生已付书款的依据数据流来源:来自加工“审查并开发票”数据流去向:流向加工“开领书单”

。数据流组成:学号+姓名+书号+单价总价+书费合计审查并开发票发票哈尔滨工业大学韩静萍2022/11/24数据元素名:类型:数字(离散值、连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构(2)数据元素

词条的描述年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4金额=“00000000.01”..“999999999.99”……哈尔滨工业大学韩静萍2022/11/24(3)数据文件词条的描述数据文件名:简述:存放的是什么数据。输入数据:输出数

据:数据文件组成:数据结构。存储方式:顺序,直接,关键码。存取频率:……审查并开发票学生发票各班学生用书表教材存量表哈尔滨工业大学韩静萍2022/11/24加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:取值范围:相关的数据元素及数据结构……(4

)加工逻辑词条的描述1.3审查并开发票学生发票各班学生用书表教材存量表哈尔滨工业大学韩静萍2022/11/24名称:外部实体名简要描述:什么外部实体有关数据流:数目:(5)外部实体词条描述1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员哈尔滨工业大学韩静萍2022

/11/242、数据字典定义符号符号含义例子=被定义为+与[]x=a+b,则表示x由a和b组成x=[a,b],则表示x由a或由b组成{}或重复x={a},则表示x由0个或多个a组成()可选表示在两个*之间的内容为词条的注释m{}n重

复x=3{a}8,则表示x中至少出现3次a,最多出现8次*…*注释符x=(a),则表示a在x中出现,也可不出现哈尔滨工业大学韩静萍2022/11/24储户检验付款登录存折帐卡--------办理取款手续的DFD图检验不合格现款付款信息练习请为下列给出的DFD

图编写DD哈尔滨工业大学韩静萍2022/11/24日期年月日摘要支出存入余额操作复核户名:储蓄网点名称:帐号:开户日:性质:印密:-------存折格式哈尔滨工业大学韩静萍2022/11/24日期(年月日)摘要支出存入余额操作复核户名:储蓄网点名称:帐号:开户日:性质:印密:存折=户名

+所号+帐号+开户日+性质+(印密)+1{存取行}20户名=2{字母}24所号=“001”..“999”帐号=“00000001”..“99999999”开户日=年+月+日性质=“1”..“6”印密=“0”存取行=日期+(摘要)

+支出+存入+余额+操作+复核日期=年+月+日年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4支出=金额金额=“00000000.01”..“999999999.

99”……哈尔滨工业大学韩静萍2022/11/243、数据字典的实现数据字典的实现人工方法自动方法将每一字典中的词条写在一张卡片上,由专人管理和维护利用“字典管理程序”在计算机中对字典进行管理和维护。哈尔滨工业大学韩静萍2022/11/24三、加工说明----(ProcessSpecific

ation)加工说明是:对DFD中每个加工给予说明。它是从系统功能的角度对DFD作出了注解,与DD一样是DFD必不可缺少的辅助资料。PS哈尔滨工业大学韩静萍2022/11/24加工说明组成输入数据加工逻辑输出数据加工说明描述工具结构化语言判定表

判定树描述把输入数据流变换为输出数据流的加工过程,是加工说明的主体。哈尔滨工业大学韩静萍2022/11/24----学生购买教材的逻辑模型审查并开发票学生发票各班学生用书表教材存量表无效书单开领书单领书单学生哈尔滨工业大学韩静萍2022/11/24自然语言+结构化形式结构化语言

选择结构如果<条件><策略>If<condition><policy>如果<条件>则<策略1>否则<策略2>情况1<条件><策略1>……情况n<条件><策略n>If<condition>then<policy1>Otherwise<policy2>case1<

condition><policy1>……casen<condition><policyn>循环结构对…,<策略>重复以下<策略>直至<条件>Foreach…,<policy>Repeatthefollowing

:<policy>Until<condition>哈尔滨工业大学韩静萍2022/11/24例1:请写出下列在DFD图中给出的“统计晚婚职工”的加工说明CountLate-MarriageEmployeesLate-Mar

riage-CountRequest职工名册文件Late-Marriage-List=List-Count+Name-ListName-List={Name}哈尔滨工业大学韩静萍2022/11/24CountLate-Mar

riageEmployeesPolicyForeachLate-Marriage-Countrequest:Repeatthefollowing;Accessthestaffs-Record.Ifstat

usissingle,IfsexismaieandAgeisover30orsexisfemaleandAgeisover26WriteNametoName-List.IncrementList-Co

unt.UntiltherearenomoreStaff-Records.CombineList-CountandName-List.WriteUpLate-Marriage-List.哈尔滨工业大学韩静萍2022/11/24----学生购买教材的系统

逻辑模型审查并开发票学生发票各班学生用书表教材存量表无效书单开领书单领书单学生例2:请为下列DFD中的“审查并开发票”加工点写加工说明哈尔滨工业大学韩静萍2022/11/24把学生学号和姓名写到发票上按购书

单上学生的年级和系、专业与班号检索“各班学生用书表”文件,获得该生当年的书单对购书单上的每一书号如果书单上无此书号则把书号写到出错通知单上否则按书号检索“教材存量表”文件,从而获得该书的单价与库存量如果库存量〈购书单的数量则将书号写到出错通知单上否则将书号、单价、

数量、总价等项写入到发票上;更新存书量,并写回“教材存量表”文件;累计书费合计把书费合计写到发票上对每张购书单哈尔滨工业大学韩静萍2022/11/24分房加工中级职称优先分房分房加工逻辑判断表采用表格的形式来表达具复杂判断的加工逻辑1、一般职工婚后5年可参加

分房2、中级以上职称的职工婚后3年可参加分房3、符合正常分房条件的职工,若再符合晚婚条件可优先分房哈尔滨工业大学韩静萍2022/11/24分房加工中级职称优先分房123456说明条件婚龄>5年3-5年<3年(-)表示任意(Y)条件满足(N)条件不满足(*)选中的决

策中级职称-----------YN-----晚婚YNYN---------决策优先分房**正常分房**不分房**哈尔滨工业大学韩静萍2022/11/24判断树判断树是判断表的图形形式其适用场合与判断表相同中级职

称不分房初婚分房决策>5年3-5年<3年优先分房非中级职称正常分房正常分房晚婚非晚婚晚婚非晚婚优先分房不分房哈尔滨工业大学韩静萍2022/11/24‚检查发货单‛的判断表1234条件发货单金额>$500>$500<=$500<=$

500赊欠情况>60天<=60天>60天<=60天决策不发出批准书V发出批准书VVV发出发货单VVV发出赊欠报告V哈尔滨工业大学韩静萍2022/11/24作业工资管理系统系统流程图系统软件模型部分数据字典一、

对工资管理系统进行需求分析二、阅读教课书的P27页哈尔滨工业大学韩静萍2022/11/24三、把下列用文字叙述的内容请采判断表和判断树描述出来设某旅游票预定系统中,在旅游旺季7-9、12月份,如果订票超过50张,则优惠票价的15%;

50张以下,优惠5%。在旅游淡季1-6,10、11月份,若订票超过50张,则优惠30%;50张以下,优惠20%。哈尔滨工业大学韩静萍2022/11/24面向对象继承类3.3面向对象的需求分析一、面向对象的概念对象消息哈尔滨工业大学韩静萍2022/11/24对象对象就是一个包含数据以及与这些

数据有关的操作的集合。每个实体都是对象。对象数据操作代码哈尔滨工业大学韩静萍2022/11/24类是一组具有相同数据结构和相同操作的对象集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可视为一个具有类似特性与共

同行为的对象摸板,可用来产生对象。可以说,类是对象的抽象,而对象是类的具体实例。哈尔滨工业大学韩静萍2022/11/24继承是在一个已存有的类的基础上建立一个新的类。并将已存在的类称为--基类或父类;新建立的类称为—派生类或子类。继承基类派生

类哈尔滨工业大学韩静萍2022/11/24对象继承了类所有属性------从类到对象的继承costdimensionweightlocationcolor类:furniturecostdimensionweig

htlocationcolor对象:chair对象、类、继承哈尔滨工业大学韩静萍2022/11/24对象继承类的所有属性和操作costdimensionweightlocationcolor类:furnitureBuySellWeightmovecostdimensionwei

ghtlocationcolor对象:chableBuySellWeightmovecostdimensionweightlocationcolor对象:chairBuySellWeightmove哈尔滨工业大学韩静萍2022/11/24------面向对象类的表示模式类名:操作:属性:哈尔滨工

业大学韩静萍2022/11/24识别对象1、标识潜在对象找出通过分析过程中的所有名词或名词短语并合并同义词。除去有动作含义的名词,使它们将被描述为对象的操作。标识规则如下:(1)、外部实体(2)、事物(3)、位置(7)、聚焦对象(5)、

事件(6)、角色(4)、组织机构哈尔滨工业大学韩静萍2022/11/24二、面向对象的分析方法(OOA)ObjectOrientedAnalysisOOA的核心思想是利用OO的概念和方法对软件需求建造模型,以使用户需求逐步精确化、一致化、完全化。为此,OOA的方法步骤为:识别对

象属性及外部服务识别类及其结构定义对象之间的消息传递哈尔滨工业大学韩静萍2022/11/24潜在对象理由用户传感器控制面板系统(SafeHomeSystem)传感器编号密码电话号码传感器事件警报器角色或

外部实体外部实体外部实体聚焦对象概念实体概念实体概念实体事件外部实体例如:哈尔滨工业大学韩静萍2022/11/242、筛选对象筛选对象规则如下:(1)、具有记忆自身状态的能力(2)、有意义的操作(3)、多个属性(5)、公共操作(6)、必须的需求(4)、公共属性潜

在对象理由用户传感器控制面板系统)传感器编号密码电话号码传感器事件警报器角色或外部实体外部实体外部实体聚焦对象概念实体概念实体概念实体事件外部实体哈尔滨工业大学韩静萍2022/11/24第四章软件设计基础Who为谁设计,用户是谁

?What要解决哪些问题?Why为什么要解决这些问题3W哈尔滨工业大学韩静萍2022/11/244.1软件设计过程编码测试设计信息描述功能描述行为描述其他需求数据设计过程设计程序模块集成并确认的软件------软件开发阶段的信息流哈尔滨工业大学韩静萍2022/11/24软件设计任务制定规范4.2

软件设计的任务和步骤软件系统结构的总体设计处理方式设计数据结构设计可靠性设计哈尔滨工业大学韩静萍2022/11/24软件设计方法结构化设计方法4.3软件设计的方法面向对象的设计方法哈尔滨工业大学韩静萍2022/11/24一、模块

化设计与信息隐藏-----“模块“又称”构件”一般指用一个名字调用的一段程序4.4软件设计基础模块(module)模块化设计(modulardesign)按适当的原则把软件划分为一个个较小的、相关而又相对独立的模块。逻辑功能状态哈尔滨工业大学韩静萍2022/11/241、分

解(decomposition)E(P1+P2)>E(P1)+E(P2)设:C(x)为复杂程度函数E(x)为决定解决问题x所需的工作量(时间)函数C(P1)>C(P2)E(P1)>E(P2)C(P1+P2)>C(P1)+C(P2)MagicalNumberSeven,PlusorMi

nusTwo,SomeLimitsonOurCapacityforProcessingInformationThePsychologicalReview,1956G.A.Miller奇妙的数字7+2,人类信息处理能力的限度哈尔滨工业大学韩静萍2022/11/24C(P1+P2)>C(P1)+C(

P2)E(P1+P2)>E(P1)+E(P2)软件工程基本定理最小成本区M模块成本接口成本总成本软件开发工作量模块数哈尔滨工业大学韩静萍2022/11/24每个模块的实现细节对于其他模块来说是隐藏的。也就是说,模块中所

包含的信息是不允许其他不需要这些信息的模块使用的。2、信息隐藏(informationhiding)栈stack置空栈makenull进栈push退栈pop哈尔滨工业大学韩静萍2022/11/243、模块的独立性

(moduleindependence)模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。耦合模块之间的相对独立性的度量。内聚模块功能强度的度量。哈尔滨工业大学韩静

萍2022/11/24(1)、内聚(Cohesion)低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚高强弱内聚性模块独立性哈尔滨工业大学韩静萍2022/11/24偶然性内聚MSTORERECN()TONREADMASTREF

ILEADD1TOX。。。。。。ABC当模块内各部之间没有联系,或者即使有联系,这种联系也很松散。则称这种模块为巧合内聚模块。哈尔滨工业大学韩静萍2022/11/24逻辑性内聚这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的

判定参数来确定该模块应执行哪一种功能。调用模块判定读一个记录写一个记录被调用模块哈尔滨工业大学韩静萍2022/11/24SXYZWABCDSXYZWABCD哈尔滨工业大学韩静萍2022/11/24信息性内聚这种模

块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。符号表查找登录删除修改哈尔滨工业大学韩静萍2022/11/24功能性内聚如果一个模块内所有成分都完成一个功能则称这样的模块为功能模块。主控模块录入查询打印低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚高强

弱内聚性模块独立性哈尔滨工业大学韩静萍2022/11/24(2)、耦合耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合高弱强耦合性模块独立性哈尔滨工业大学韩

静萍2022/11/24公共耦合允许一组模块访问同一全局性的数据结构。全局数据区ABCDEFB、C、E为公共耦合哈尔滨工业大学韩静萍2022/11/24控制耦合如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能

就是控制耦合。A模块flagf1Bf2fn……哈尔滨工业大学韩静萍2022/11/24以上给出了7种耦合类型,这只是从耦合的机制上所做的分类,按耦合的强弱程度的排列只是相对的关系。但它给设计人员在设计程序结构时提供了一决策准则。实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。这

就要求设计人员按照实际情况进行分析、比较和分析,逐步加以改进,以提高模块的独立性。哈尔滨工业大学韩静萍2022/11/244.5结构化设计方法(SD--StructuredDesign)结构化设计方法是基于模块化、自

顶向下细化、结构化程序设计等程序设计技术基础发展起来的。它所提供的方法和原则,主要是用来指导软件的概要设计。它还提供了一种‚结构图‛的描述工具,是专门用来描述软件的总体结构的。哈尔滨工业大学韩静萍2022/11/24结构化设计属于面向数据流的设计方法。在软件

的需求分析阶段,数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端,则要经历一系列的变换或处理。用来表现这个过程的数据流(DFD),实际上就是软件系统的逻辑模型。面向数据流的设计要解决的任务,就是在上述需求分析的基础上

,将DFD图映射(Mapping)---软件系统的结构。换句话说,这类设计方法,允许把用DFD图表示的系统逻辑模型,很方便地转换成对于软件结构的初始设计描述。结构化设计方法中,软件的结构一律用SC图来描述。哈尔滨工

业大学韩静萍2022/11/24结构化设计的目的使程序的结构尽可能反映要解决的问题的结构结构化设计的任务完成目标系统的—系统结构图(SC)哈尔滨工业大学韩静萍2022/11/24目标系统的DFDSC图---StructuredChart该图常用来表示系统的软件结构

。利用它可以清楚地表达软件结构中模块间的层次调用关系和模块之间的联系。SD目标系统的SC哈尔滨工业大学韩静萍2022/11/24ASC图中的主要内容1、模块--在SC图中用矩形框表示,并用名字来标记它--模块调用关系2、模块的调用关系和接口B调用模块调用模块A(查询学生

)B(查找学生记录)数据信号控制信号学号查找成功信号--模块间接口的表示哈尔滨工业大学韩静萍2022/11/24产生最佳解得到好的输入计算最佳解输出结果读输入编辑输入好输入好输入解解原始输入原始输入编辑结果结果格式化显示结果解格式化的解SC图的一般格式哈

尔滨工业大学韩静萍2022/11/241、在系统结构图中的模块一、典型的系统结构形式原子模块:在系统结构图中通常是指不能再分割的底层模块完全因子分解系统如果一个软件系统,它的全部实际加工(即数据计算或处理)都是由底层的原子模块来完成,而其它所有非原子模

块仅仅执行控制或协调功能。哈尔滨工业大学韩静萍2022/11/24传入模块AA传入模块从下属模块取得数据,进行某些处理,再将其结果传给上级模块。在此,将它传送的数据流称为逻辑输入数据流。在系统结构图中有四种类型

的模块:逻辑输入数据流成绩处理哈尔滨工业大学韩静萍2022/11/24传出模块从上级模块获得数据,进行某些处理,再将其结果传给下属模块。在此,将它传送的数据流称为逻辑输出数据流。传出模块DD逻辑输出数据流成绩处理哈尔滨工业大学韩静萍2022/11/24变换模块也叫加工模块。它

是从上级模块获得数据,进行特定的处理,将其转换为其他形式,再传回上级模块它所加工的数据流叫做变换数据流。变换模块CB变换数据流审查并开发票发票哈尔滨工业大学韩静萍2022/11/24协调模块对所有下属模块进行

协调和管理的模块。在一个好的系统结构图中,协调模块应在较高层出现。协调模块YXYX哈尔滨工业大学韩静萍2022/11/242、典型的系统结构形式之一(变换型系统结构图)取得数据iaeo变换数据给出数据传入部分变换中心传出部分--------具有变换型数据流图哈尔滨工业大学韩静萍2022/1

1/24主模块C变换成D取得C给出D取得BB变换成CD变换成E给出E取得AA变换成BAABBBCCDCDED取得数据CD变换数据给出数据协调模块变换模块传出模块--------具有变换型系统结构图DFD--SC哈尔滨工业大学韩静萍2022/11/

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

C3DEFGH24567中心变换输出逻辑输入物理输入逻辑输出物理输出哈尔滨工业大学韩静萍2022/11/241ABC3DEFGH24567MT3逻辑输入逻辑输出CDCD,E,F456------事务型数据流图(DFD)------事务型系统结构图(SC)哈尔滨工业大学韩静萍2022/

11/24事务中心输入已分析的作业内部表示的作业结果------事务型系统结构(层次)图输出结果调度作业信息读入作业分析作业事务1事务2事务3事务4操作2操作3操作4操作5操作6操作1细节2细节3细节4细节5细节6细节1细节7结果哈尔滨工业大学韩静萍2022/11/24------简化的事

务型系统结构图事务中心得到作业作业结果输出结果分析调度事务1事务2事务3哈尔滨工业大学韩静萍2022/11/24二、从DFD图导出SC图的步骤开始细化修改SRS中的DFD图判断DFD图的结构类型是变换型吗?F事务分

析变换分析完善SC图T对最终的SC图进行评审结束哈尔滨工业大学韩静萍2022/11/241、变换分析----是将具有变换型的DFD图导出SC图变换分析从物理输入、物理输出及变换中心进行由顶向下的分解得出各个分支的所有组成模块在数据流图上区分系统

的逻辑输入、逻辑输出和变换中心部分,并标出它们的分界。进行一级分解,设计系统模块结构的顶层和第一层。进行二级分解,设计中、下层模块。哈尔滨工业大学韩静萍2022/11/24(1)在DFD图上标出逻辑输入、

逻辑输出和变换中心的分界AeBaCbDcEdPQRwuvwuvrp变换中心c,e逻辑输入w,u逻辑输出--------具有变换型数据流图哈尔滨工业大学韩静萍2022/11/24(2)完成第第一级分解AabcPwuvrpBCDdeEQRWUVM

cMAMTMEC,eC,eU,wU,w变换中心顶层第一层第一级分解后的SC图协调模块YXYX哈尔滨工业大学韩静萍2022/11/24AabcPwuvrpBCDdeEQRWUV第一级分解后的SC图(另一种画法)McMA1ME1CeUMA2QPRME2ec,

pprrw,uw哈尔滨工业大学韩静萍2022/11/24(3)完成第第二级分解AabcPwuvrpBCDdeEQRWUVMA变换中心对逻辑输入的分解CEBADabdeccbaABCMAEDde逻辑输入模块的调用与执行过程哈尔滨工业大学韩静萍2022/11/24MACE

BADabdecMAGetCGetEBtoCAtoBDtoEaecReadDGetBReadAc,eabbbcde哈尔滨工业大学韩静萍2022/11/24AabcPwuvrpBCDdeEQRWUVME变换中心对输出的分解WUVvuwMTQPReC,prU,w对变换中心加工的分解prw,u

哈尔滨工业大学韩静萍2022/11/24MACBAEDMTQPR从变换分析导出的初始SC图MEWUVMCc,eW,uW,uC,e(4)获得完整的SC图哈尔滨工业大学韩静萍2022/11/24运用变换分析方

法建立系统的SC时需注意以下几点:模块设计的次序时,应遵循对一个模块的全部直接下属模块都设计完成后,再转向另一个模块的下层模块的设计。在设计下层模块时,应考虑模块的耦合和内聚问题,以提高设计初始SC图的质量。注意“黑盒”技术的使用。哈尔滨工业大学韩静萍2022/11/24

主模块ABCA1A2A3A11A12A13哈尔滨工业大学韩静萍2022/11/24低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚高强弱内聚性模块独立性低非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合高弱强耦合性模块独立性具有高内聚低

耦合的模块才是模块独立性比较强的模块。哈尔滨工业大学韩静萍2022/11/24具有高内聚低耦合的模块才是模块独立性比较强的模块。模块A模块D模块C模块B非直接耦合通过参数表传递数据(数据耦合)通过参数表传递数据结构(数据耦合)具有松散型的耦合类型哈尔滨工业大学韩静萍2

022/11/24请将上列给出的具有变换型的DFD图导出它的SC图A1A2a1a2PBb1C1c1C2c1p1P2哈尔滨工业大学韩静萍2022/11/242、事务分析----是将具有事务型的DFD图导出SC图IALMNOBCDEFGH事务中心事务源哈尔滨工业大学韩静萍2022/11

/24IALMNOBCDEFGH主模块给出H取得ALMNAGHBECFD哈尔滨工业大学韩静萍2022/11/24发送部分请将下列给出的采购子系统DFD图转换成SC图2.12.22.3书库保管员F2F1F5F6F7加工名称:2.1按书号汇总缺书2.2按

出版社汇总缺书2.3修改教材库存和待购量文件名称:F1教材存量表F2缺书登记表F5待购教材表F6教材一览表F7进书登记表哈尔滨工业大学韩静萍2022/11/24发送部分采购按书号汇总缺书登记表统计缺书登记进书按出版社

汇总打印缺书单修改教材存量表修改教材待购量统计命令登记命令待购教材表暂缺书单暂缺书单进书通知进书通知------采购子系统的SC图-------缺书登记表={班号+姓名+书号+数量}哈尔滨工业大学韩静萍2022/11/24三、软件模块结构的改进一、模块

功能的完善化执行指定的功能部分出错处理的部分。哈尔滨工业大学韩静萍2022/11/24二、消除重复功能,改善软件结构。完全相似局部相似哈尔滨工业大学韩静萍2022/11/24XYR1R2物理输入相似部分XYR1R2RX+R1Y+R2R相似模块的各种合

并方案的示意图哈尔滨工业大学韩静萍2022/11/24三、模块的作用范围应在控制范围之内。作用范围:是一个与条件判定相关联的所有模块。控制范围:包括模块本身及其所有的从属模块(即供它调用的模块)。哈尔滨工业大学韩静萍

2022/11/24模块的控制范围:包括模块本身及其所有的从属模块(即供它调用的模块)。ABDCEFG关于模块的控制范围示意图哈尔滨工业大学韩静萍2022/11/24一个模块的作用范围,是指受这个模块中的判定所影响的模块。关于模块的作用范围/控制范围的关系示意图

TopABCDEGGDBC控制耦合哈尔滨工业大学韩静萍2022/11/24TopCDEB2BDGC理想的情况,应该使判定的作用范围和判定所在模块的控制范围尽可能地吻合(即应使模块的作用范围尽可能地在控制范围之内)。符合作用范围/控制范围的理想判定位置DCGBA对于一个理想SC图中的

模块设计,所有受到一个判定影响的模块应该都从属该判定所在的模块,最好位于作出判定的那个模块本身及它的直接下属模块。哈尔滨工业大学韩静萍2022/11/24计算实发工资取得工资数据计时工人实发工资计薪工人实发工资编外人员实发工资计时制工资额税收扣款薪金制工资额常规扣款编外人员工资编外人员

税款编外人员扣款哈尔滨工业大学韩静萍2022/11/24四、尽可能地减少高扇出结构,随着深度增大扇入。扇入:指模块的上级模块数。(即共有多少个模块需要调用这个模块)扇出:指模块调用其下属模块数目。调用的下属模块数应控制在小于3-4个模块。MM哈尔滨工

业大学韩静萍2022/11/24PPP1P2QQ1Q2Q3Q哈尔滨工业大学韩静萍2022/11/24五、模块的大小要适中。50-100模块的大小,可以用模块中所含语句的数量的多少来衡量。哈尔滨工业大学韩静萍2022/11/24六、应设计出功

能可预测的模块,但要避免过分受限制的模块。A哈尔滨工业大学韩静萍2022/11/24发送部分ABABBCT3T2T1CDDEEHFJHKKLLMB1B2B3C1C2C3DEFGHJKLM请将下列给出的DFD图转换成SC图哈

尔滨工业大学韩静萍2022/11/24发送部分请完成下列描述的DFD图,导出它的SC图美国某大学共有200名教师,校方与工会刚刚签定一项协议按照协议,所有年工资>=$26,000的教师工资将保持不变,年工资<$26,000的教师将增加工资,所增加的工资数按下述方法计算:给每个由此教师

所赡养的人(包括教师本人)每年补助$100,此外,教师满一年工龄的再多补助$50,但是增加后的年工资总额不能多于$26,000。教师的工资档案储存在行政办公室的磁带上,档案中有目前的年工资、赡养人数、雇用日期等信息。哈尔滨工业大学韩静萍2022/11/24发送部分12341656789

101215141311abcdefghijklnopm**请将上列给出的DFD图导出它的SC图哈尔滨工业大学韩静萍2022/11/24第五章详细设计描述的工具5.1详细设计阶段的目的与任务详细设计的目的:为软件结构图(SC)中的每一个模块确定采用的算法和模块内数据结构,用某种选定

的表达工具给出清晰的描述。详细设计阶段的主要任务:编写软件的‚详细设计说明书‛c哈尔滨工业大学韩静萍2022/11/24需求分析问题定义可性行研究计划时期概要设计详细设计编码测试开发时期运行与维护运行时期哈尔滨工业大学韩静萍2022/11/24详细设计阶段的主要任务为每一模块确定算法确定每

一模块使用的数据结构确定模块的外部接口和用户界面为每一模块设计一组测试用例哈尔滨工业大学韩静萍2022/11/24描述工具程序流程图N-S图PAD图PDL伪代码5.2详细设计阶段的描述工具哈尔滨工业大学韩静萍2022/11/24A1、顺序型一、

程序流程图B几个连续的加工依次序排列expFTAB2、选择型由某个判断式的取值决定选择两个加工中的一个。哈尔滨工业大学韩静萍2022/11/243、当型循环型当循环控制条件成立时,重复执行特定的加工。expFTS4、直到型循环型重复执行特定的加工,直到循环控制条件成立时。expFTS哈尔滨工业大

学韩静萍2022/11/245、多情况选择型列出多种加工情况,根据控制变量的取值,选择执行其一。exp=1FTS1exp=2exp=nS2TSnTFF哈尔滨工业大学韩静萍2022/11/24-----具有嵌套形式的程序流程图X1FTaX4cTfTFF入口bX2X3deghi

X5X6FTFT=1=2=3哈尔滨工业大学韩静萍2022/11/24标准化程序流程图规定符号X1起止端点输入/输出一般处理准备或预处理预定义处理条件判断循环上界循环下界文件或文档外接内接流程线虚线省略线并行方式注解或注释哈尔滨工业大学韩静萍2022/11/24流

程符号的使用规则1、循环符号的使用循环名进入循环条件循环体循环名i=1,100S=S+iiS=0S=S+iS=0,i=1i>100i=i+1FT循环体-----循环流程符号的使用哈尔滨工业大学韩静萍2022/11/242、判断有一个入口,但也允许有多

个可选出口A:BA=BA<BA>BX=?x=1x=2x=3x=4X=?=1=2=3=4=5-----多出口判断流程符号的使用哈尔滨工业大学韩静萍2022/11/24请利用程序流程图描述下列问题的程序结构某汽车修配厂,有一个存有汽车零件的仓库,

其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。设该模块为查询模块。请设计该模块的程序结构。具体要求:1、应具有重复查询功能;2、应具有数据检测功能;3、请利用程序流程图描述该模块的算法。哈尔滨工业大学韩静萍2022/11/24顺序型二、N-S图AB选择

型-------NassiandShneidemanBpFTAApFTp=1=2…=nA1A2…Andowhile(p)Sdountil(p)S当型循环型直到型循环型多分支选择型哈尔滨工业大学韩静萍2022/11/24零件号1000110002100031000

41000510006库存量100012508866920203450建立零件库(s数组),i=0输入零件号xdowhile(x!=s[0][i])i++i++x==s[0][i])YNs[0][i]输出s[1][i]输入错误!继续查询?YN跳出循环哈尔滨工业大学韩

静萍2022/11/24三、PAD图直到型循环型ABABpApWhilePSUntilPS当型循环型顺序型选择型A1pA2An=1=2=n多分支选择型循环型-------ProblemAnalysisDiagram哈尔滨工业大学韩静萍

2022/11/24s[17]~s[22]=0whilenum(1-1000)输入ageage=17s[17]++s[18]++=18s[19]++=19s[20]++=20s[21]++=21s[22]++=22whilei(17-22)输出s[i

]beginend哈尔滨工业大学韩静萍2022/11/24请为学生成绩管理系统中的学生成绩统计模块设计程序结构。要求:1、统计各专业、各班级的高等数学平均分;2、并将统计结果输出;3、按平均成绩以班级为单位由高到低排序;4、请利用PAD图描述该模块的算法。

哈尔滨工业大学韩静萍2022/11/24四、PDL-------ProgramDdesignLanguagePDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪代码(P

seudocode)PDL-----关键词+自然语言哈尔滨工业大学韩静萍2022/11/24(1)、数据说明:格式:TYPE<变量名>AS<限定词1><限定词2>其功能是定义数据的类型和作用域说明:1.变量名:是一个模块内部使用的变量或模

块间共用的全局变量名。2.限定词1:标明数据类型3.限定词2:标明该变量的作用域TYPEnumberASSTRINGLENGTH(12)哈尔滨工业大学韩静萍2022/11/24(2)、程序块:PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。BEGIN<

块名><一组伪代码语句>END哈尔滨工业大学韩静萍2022/11/24(3)、子程序结构:把PDL中的过程称为子程序。PROCEDURE<子程序名><一组属性>INTERFACE<参数表><程序块或一组伪代码语句

>END哈尔滨工业大学韩静萍2022/11/24(4)、基本控制结构:IF<条件>THEN<程序块/伪代码语句组>;ELSE<程序块/伪代码语句组>;ENDIF---选择型结构哈尔滨工业大学韩静萍2022/11/24DOW

HILE<条件描述><程序块/伪代码语句组>;ENDDOREPEATUNTIL<条件描述><程序块/伪代码语句组>;ENDREP---重复型结构哈尔滨工业大学韩静萍2022/11/24DOLOOP<条件描述><程序块/伪代码语句组

>;EXITWHENENDLOOPDOFOR<下标=下标表,表达式><程序块/伪代码语句组>;ENDFOR---重复型结构哈尔滨工业大学韩静萍2022/11/24-----多路选择结构CASEOF<case变量名>;WHEN<case条件1>SELECT<程序块/伪代码语句

组>;WHEN<case条件2>SELECT<程序块/伪代码语句组>;……DEFAULT:<缺省或错误case:<程序块/伪代码语句组>;ENDCASE哈尔滨工业大学韩静萍2022/11/24READ/WRITETO<设备><I/O表>---输入/输出结构哈尔滨工业大学韩静萍2022/11/24E

nteravectorSetMaximumtothevalueofthefirstelementinthevectorDOforeachsecondonetothelastIFvalueofTHENelementisgreaterthantheMaximumvalueSetMa

ximumtovalueoftheelementENDDOPrinttheMaximumvalueInputarrayAMax=A(1)DOforI=2toNIFMax<A(I)SetMax=A(I)ENDIFENDDOPrintMax哈尔滨工业大学韩静萍2022/11/24设某模块的功能是:读

入任意长的一段英文课文,将其分解为单字。然后输出一个单词表,并指出每个单词在课文中所出现的次数。请按下列给出的文字要求,用PDL描述其该模块的算法哈尔滨工业大学韩静萍2022/11/24……executeprocessaR

EPEATUNTILconditionX8executeprocessbIFconditionX1THENBEGINexecuteprocessfIFconditionX6THENREPEATUNTILconditionX7executeprocessiENDREPELS

EBEGINexecuteprocessgexecuteprocesshENDENDIFEND请将下列的PDL表示的某模块的过程性描述,改为用:1、N-S图2、PAD图表示哈尔滨工业大学韩静萍2022/1

1/24ELSECASEOFXiWHENconditionX2SELECTDOWHILEconditionX5executeprocessCENDDOWHENconditionX3SELECTprocessdWHENconditionX

4SELECTprocesseENDCASEENDIFENDREPexecuteprocessjEND哈尔滨工业大学韩静萍2022/11/24第六章程序编码编码的目的:是使用选定的程序设计语言,把模块的过程性描述翻译为用该语言书写的源程序(源代码)模块的过程性描述(不可执行的)源程

序(可执行的)编码6.1编码的目的哈尔滨工业大学韩静萍2022/11/24清晰性效率开发时间程序输出内存数语句数程序可读性最佳输出可读性最佳占内存最小语句数最少开发时间最短1-21-24532143335124352144

2-352-31编码要求结果名次评判项目Winberg的程序实验结果哈尔滨工业大学韩静萍2022/11/24结构化程序设计是一种设计程序的技术,它采用自顶向下逐步细化的设计方法和单入口(Singleentry)单出口(Singleexit)的控制结构。这种控制结构包

括有:顺序、选择和循环。6.2结构化程序设计(StructuredProgramming)哈尔滨工业大学韩静萍2022/11/24……for(a=1,b=1;a<=100,a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=

5;}……a<=100FTb>=20b%3==1b+=3a++b-=5TFFTa=0,b=1单入口M1单出口哈尔滨工业大学韩静萍2022/11/24A<BA,B,CB<CA<C打印BFTFTTF打印C打印A……If(A.LT.B)goto120If(B.LT.C

)goto110100write(6,*)Cgoto140110write(6,*)Bgoto140120If(A.LT.C)goto130goto100130write(6,*)A140continue-----单入口多出口结构

M2哈尔滨工业大学韩静萍2022/11/24无节制地使用了GOTO语句所产生的程序流程M哈尔滨工业大学韩静萍2022/11/24一、结构化程序设计的原则1、使用语言中的顺序、选择、重复等有限的基本控制结构表示程序2、选用的控制结构只准许有一个入口和一

个出口3、程序语句组成容易识别的块(Block),每块只有一个入口和一个出口4、复杂结构应该用基本控制结构进行组合嵌套来实现5、严格控制GOTO语句哈尔滨工业大学韩静萍2022/11/24……F0=F(a);F1=F(b);if(F0*F1

<=0){X0=a;X1=b;for(i=1;i<=n;i++){Xm=(X0+X1)/2;Fm=F(Xm);if(abs(Fm)<eps||abs(X1-X0)<eps)gotofinish;if(F0*Fm>0){

X0=Xm;F0=Fm;}elseX1=Xm;}finish:printf(“%d\n”,Xm);}哈尔滨工业大学韩静萍2022/11/24Begin(F0*F1)<=0X0=aX1=bi=1Xm=(X0+X1)/2Fm=F(m)Q(F0*Fm)>0X0=XmX1=XmF0=FmTTXmFTFF

F0=F(a)F1=F(b)11End22i<=niQ=abs((Fm)<eps||abs(X1-X0)<eps)哈尔滨工业大学韩静萍2022/11/24……F0=F(a);F1=F(b);if(F0*F1<=0){X0=a;X1=b;for(i=1;i<=n;i++){Xm=(X0+X1

)/2;Fm=F(Xm);if(abs(Fm)<eps||abs(X1-X0)<eps)break;if(F0*Fm>0){X0=Xm;F0=Fm;}elseX1=Xm;}printf(“%d\n”,Xm);}

哈尔滨工业大学韩静萍2022/11/24……F0=F(a);F1=F(b);if(F0*F1<=0){X0=a;X1=b;i=1;finish=0;while(i<=n&&finish==0){Xm=(X0+X1)/2;

Fm=F(Xm);if(abs(Fm)<eps||abs(X1-X0)<eps)finish=1;if(finish==0);if(F0*Fm>0){X0=Xm;F0=Fm;}elseX1=Xm;i++;}printf(“%d\n”,Xm);}哈尔滨工业大学韩静萍2022/11/24

二、程序设计自顶向下,逐步求精1、程序设计是一个由粗到细的‚渐进‛的过程2、程序设计不仅包括对控制结构的设计,也包括对数据结构的设计。二者都要一步一步地细化。采用逐步细化方法设计程序的步骤列出问题的初步解分解主要问题继续细化利用图形工具或伪代码描述程序的详

细逻辑哈尔滨工业大学韩静萍2022/11/24用逐步细化方法设计一个程序,其功能为‚从一组数中找出最大的数‛第一步:列出问题的初步解1:输入一组数2:找出其中最大的数3:输出最大的数哈尔滨工业大学韩静萍2022/11/24第二步:分解主要问题2.1:首先读入一个数并设

其为最大的数2.2:将该数逐次与其它数进行比较2.3:若有大于该数的则将其保存哈尔滨工业大学韩静萍2022/11/24第三步:确定数据结构3.1:定义一数组A3.2:max=A(1)3.3:从A(2)至A(n)开始比较3.4:若当前数大于max,则令:max=A(I)哈尔滨工业大学韩静萍20

22/11/24第四步:用PDL描述InputarrayASetMax=A(1)DOforI=2toNIFMax<A(I)SetMax=A(I)ENDIFENDDOPrintMax哈尔滨工业大学韩静萍2022/11/24请用逐步细化方法设计一由下列描

述的程序结构读入一段任意长度的英语课文,将其分解为单字,然后输出一张单词表(listofwords),并指出每种单词在课文中的出现次数。哈尔滨工业大学韩静萍2022/11/24三、程序复杂性的度量程序复杂性主要是指模块内

部程序的复杂性。它直接关系到软件开发费用的多少,开发周期的长短和软件和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。哈尔滨工业大学韩静萍2022/11/24它可以用来计算任何一个程序的复杂性;对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进

行复杂性计算;如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。为了度量程序复杂性,要求复杂性度量应满足以下假设:哈尔滨工业大学韩静萍2022/11/24如果设每行代码的出错率为每100行源程序中可能的错误数目。例如,每行代码的出错率为1

%,也就是说,每100行源程序中就可能有一个错误。1、代码行度量法:统计程序中的源代码的行数较小的程序---1.3%~1.8%/行较大的程序---2.7%~3.2%/行哈尔滨工业大学韩静萍2022/11/

24该方法是利用程序模块的程序图中环路的个数,来计算程序的复杂性的。为此,该方法也称为环路复杂度计算法。2、McCabe度量法:利用程序的控制流来度量程序的复杂性它是一种退化了的程序流程图。即:把程序流程图中每个处理符号都退化成一个结点,

而原来流程图中的流程线,则变成连接不同结点的有向弧。哈尔滨工业大学韩静萍2022/11/24(1)程序图符号哈尔滨工业大学韩静萍2022/11/24哈尔滨工业大学韩静萍2022/11/24TC1C2CABED(2)从流程图导出程序图A开始C1BCED结束C2TF哈尔滨工业大学

韩静萍2022/11/24(3)环路复杂性的计算方法V(G)=m-n+p说明:V(G)是有向图G中环路数;m:为图G中弧数;n:为图G中节点数;p:为图G中强连通分量个数;ABCDEFGHKLIV(G)=13-11+1=3McCabe的环路复杂性度量值为3哈尔滨工业大学韩静萍202

2/11/24请将右侧给出的程序流程图转换为程序图并计算其环路值。a<=100FTb>=20b%3==1b+=3a++b-=5TFFTa=0,b=1哈尔滨工业大学韩静萍2022/11/24程序的环路复杂度则取决于程序控制流的复杂度,也就是取决于程序结构的复杂程度。当程序内分支或循环个

数增加时,则相应地环域复杂度也随之增加。因此,它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。(4)、环路复杂度的用途V(G)<=10哈尔滨工业大学韩静萍2022/11/24请用程序流程图描述下列问题的算法,再将其转换为程序图并计算其环路值。请定义一个数组a,要求找出数组中

最大数和最小数,并把最大数和a[0]中的数对调、最小数和a[1]中的数对调。哈尔滨工业大学韩静萍2022/11/24请画出下列伪代码程序的流程图、程序图并计算它的环路复杂度。LOOP:DoWhileZ>0A=A+1IFA>10THENX=AELSEY=ZENDIFIFY

<5THENPRINTX,YELSEIFY=2THENGOTOLOOPELSEC=3ENDIFENDIFG=H+RENDDOIFF>0THENPRINTGELSEPRINTKENDIFSTOP哈尔滨工业大学韩静

萍2022/11/24四、程序效率程序效率是指程序的执行速度及程序占用的存储空间。程序编码是最后提高运行速度和节省存储机会,因此在此阶段不能不考虑程序的效率。哈尔滨工业大学韩静萍2022/11/241、算法对效率的影

响源程序的效率与详细设计阶段确定的算法的效率有着直接的关系。当我们把详细设计翻译并转换成源代码之后,那么算法效率就会反映为程序的执行速度和存储容量的要求哈尔滨工业大学韩静萍2022/11/24(1)在编程序前,尽可能化简有关的算术表达式和逻辑表达式(2)仔细检查

算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面(3)尽量避免使用多维数组(4)尽量避免使用指针和复杂的表(5)不要混淆数据类型,避免在表达式中出现类型混杂(6)尽量采用整数算术表达式和布尔表

达式(7)选用等效的高效率算法转换过程中的指导原则是:哈尔滨工业大学韩静萍2022/11/24∑∑(i+1)²(j+2)203i=1j=1请设计求解下列问题的算法哈尔滨工业大学韩静萍2022/11/24main(){inti,j;floatsum;sum=0.0;for(i=

1;i<=20;i++)for(j=1;j<=3;j++)sum=sum+(i+1)*(i+1)*(j+2);printf(“sum=%d\n”,sum);}∑∑(i+1)²(j+2)203i=1j=1内循环次数20X4=80外循环次数21总循环次数101哈尔滨工业大学韩静萍2022/11/2

4main(){inti,j;floatsum;sum=0.0;for(j=1;j<=3;j++)for(i=1;i<=20;i++)sum=sum+(i+1)*(i+1)*(j+2);printf(“sum=%d\n”,sum);}应把变化范围大的循环变量放在内层。内

循环次数3X21=63外循环次数4总循环次数67哈尔滨工业大学韩静萍2022/11/24main(){inti,j;floatsum;sum=0.0;for(j=1;j<=3;j++)for(i=1;i<

=20;i++)sum=sum+(i+1)*(i+1)*(j+2);printf(“sum=%d\n”,sum);}j+2共计执行了3X20=60次哈尔滨工业大学韩静萍2022/11/24main(){inti,j;floatsum;sum=0.

0;for(j=1;j<=3;j++){k=j+2;for(i=1;i<=20;i++)sum=sum+(i+1)*(i+1)*k;}printf(“sum=%d\n”,sum);}j+2共计执行了3次减少了57次应尽量把与循环变量无关的运算移

到循环外去。哈尔滨工业大学韩静萍2022/11/24main(){inti,j;floatsum;sum=0.0;for(j=1;j<=3;j++){k=j+2;for(i=1;i<=20;i++)sum=sum+(i+1)*(i+1)*k;printf(“sum=%d\n”,sum

);}i+1共计执行了60X60=120次哈尔滨工业大学韩静萍2022/11/24main(){inti,j;floatsum;sum=0.0;for(j=1;j<=3;j++){k=j+2;for(i=1;i<=20;i++){m=i+1;sum=sum+m*m*k;}printf(“su

m=%d\n”,sum);}i+1共计执行了60次哈尔滨工业大学韩静萍2022/11/24从键盘输入10个整数,要求按有小到大的顺序将它们输出。请采用比较交换法和选择法对上述10条数据进行排序,然后分别对这两种方法进行比较,并从程序的运行了效率的角度对两个程序进行比较。

哈尔滨工业大学韩静萍2022/11/24main(){inta[10],i,j,t;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<9;i++)for(j=i+1;j<10;j++)if(a[j]<a[i]){t=a[j];a[j]=a[i];a[i]

=t;}for(i=0;i<10;i++)printf(“%2d”,a[i]);}哈尔滨工业大学韩静萍2022/11/24……for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k])k=j;if(k<>j){t=a[j];

a[j]=a[k];a[k]=t;}}……哈尔滨工业大学韩静萍2022/11/24五、程序设计风格Codingstyle1、保持控制流的直线性(1)、对多入口和多出口的控制结构要作适当的处理……IfC1thengoto3010S220I

fC2thengoto40goto1030S1goto2040SnC1S1S2C2SnTT多入口循环结构哈尔滨工业大学韩静萍2022/11/24IfC1thenS1elseS2While(notC2)doS

2C1S1C2SnTTS2S2改进后的循环结构重复环节法哈尔滨工业大学韩静萍2022/11/2410if(notC1)thengoto20if(notC2)thengoto30S1goto1020S230Sn多出口循环结构C1S2TTC2S1Sn哈尔滨工业大学韩静萍2022/11/24w

hile(C1andC2)doS1If(not(C1)thenS2Sn经过处理后的单出口循环结构C1andC2S2TC1S1SnT逻辑分析法哈尔滨工业大学韩静萍2022/11/24while(C1)doBeginS1IfC2thengo

to10elseS2End10SnEXIT:=falsewhile(C1and(notEXIT))doBeginS1IfC2thenEXIT:=trueelseS2End10Sn标志变量法标志变量breakExitdoExitfor哈尔滨工业大学韩静萍2022/11

/24SUM=0Doinputxifx=0thenexitdoSUM=SUM+xloopuntilSUM>1000PrintSUM使用TureBasic语言中的专用语句退出循环上面程序的功能是:从键盘输入一个数,并累加到总和中。当总和超过1000或输入为0时则停止

输入,并打印出总和。哈尔滨工业大学韩静萍2022/11/24if(N>=0)thenif(N能被2整除)thenprint“正偶数”elseprint“负数”导致二义性的then-if结构(2)、避免使用模糊或费解的结构if(N<0)thenprint“负数”elseif(N能被2整除)then

print“正偶数”哈尔滨工业大学韩静萍2022/11/24WhileC1IfC2thenWhileC3IfC4thenRepeatSUntilC5LoopLoop…….费解的深层嵌套结构嵌套层最好不要超过3层哈尔滨工业大学韩静萍2

022/11/24二、保持控制流的局部性局部性是程序设计的一条准则。像应用甚广的模块化设计,可看成是局部化原理在总体设计中的具体体现。其实,在编码时也要遵守局部化的原则,这就是保持控制流的局部性,其目的

不仅是为了提高程序的清晰度,也有利于防止错误的扩散,提高程序的可修改性。哈尔滨工业大学韩静萍2022/11/241、GOTO语句的使用准则向前不向后的规则……while(C1>0){S1=S1+C1;if(S1>1000)gotolabel;……}……lab

el:S2=a+b;……哈尔滨工业大学韩静萍2022/11/24goto的目的地最好在同一控制结构内部,或者离本结构出口相近的地方。……10IF(.NOT.C)GOTO20SGOTO1020CONTINUE……while(C1)

doBeginS1ifC2thengoto10End10Sn12哈尔滨工业大学韩静萍2022/11/24C1C2C3TTTFe1e2e32、GOTO语句的常见用法请将右侧的具有多个循环出口的结构改写为单出口结构哈尔滨工业大学韩静萍2022/11/24C1C2

C3TTTFe1e2e3(用GOTO语句提前退出循环)方法一:EXIT2=false;EXIT3=false;while(C1)and(not(EXIT2)and(not(EXIT3)dobegin……ifC2thenEXIT2:=true;……i

fC3thenTXIT3:=true;……endif(EXIT2)thengoto20;if(EXIT3)thengoto30;goto40;20:{C2为真时执行的语句}gotot40;30:{C3为真时的语句}40:Sn{

后续语句}标志变量哈尔滨工业大学韩静萍2022/11/24whileC1dobegin……ifC2thengoto20;……ifC3thengoto30;……endgoto40;20:{从e2退出前执行的语句}got

ot40;30:{e3退出前执行的语句}40:Sn{后续语句}(用GOTO语句提前退出循环)方法二:哈尔滨工业大学韩静萍2022/11/24IF(X.LT.Y)GOTO30IF(Y.LT.Z)GOTO50SMALL=ZGOTO7030IF(X.LT.Z)G

OTO60SMALL=ZGOTO7050SMALL=YGOTO7060SMALL=X70CONTINUE请将右侧用FORTRAN语言编写的源程序改用C语言编写,要求程序的清晰度要好small=x;if(y<small)small=y;if(z

<small)small=z;哈尔滨工业大学韩静萍2022/11/24MAXVAL=A(1)DO40I=2,10IF(A(I).GT.MAXVAL)GOTO30GOTO4030MAXVAL=A(I)40CONTINUE以下是

一个GOTO语句交叉的FORTRAN语言源程序,请去掉GOTO语句哈尔滨工业大学韩静萍2022/11/24MAXVAL=A(1)DO40I=2,10IF(A(I).GT.MAXVAL)MAXVAL=A(I)40CONTINUE修正后的程序:哈尔滨工业大学韩静萍

2022/11/24第七章用户界面设计在计算机应用中,用户与计算机都要以适当的形式把消息传递给对方,称为人--机交互:(Human—ComputerInterface)交互是通过界面进行的。这种界面既存在于用户与计算机硬件之间,也存在于用户与一切软

件(包括系统软件与应用软件)之间,所以现在常把‚用户界面‛简称为‚HCI”哈尔滨工业大学韩静萍2022/11/247.1用户界面设计分析用户特性分析用户工作分析哈尔滨工业大学韩静萍2022/11/24外行型用户特性分析用户特性分析的目的是:了解所有用户的技能和经

验,以便能预测他们对不同的界面设计会做出社么反映,并针对用户的能力来设计或更改界面。用户类型初学型熟练型专家型哈尔滨工业大学韩静萍2022/11/24系统的功能分解,可以用数据流图和数据词典来描述。其中,每一个加工相当于一个功能,也就是一个任务。任务可以由一组动作构成,

它规定了为实现该任务所必须的一系列活动任务的细节,可以使用结构化英语来表达。它描述了动作完成的序列以及在完成动作时的所有例外情况。用户工作分析用户工作分析,也称为任务分析。它是系统内部活动的分解。用户工作分析与需求分析中结构化分析的方法类似,是

采用自顶向下,逐步进行功能分解。哈尔滨工业大学韩静萍2022/11/24TASK:loanbooksDOWHILEborrowersrequestreader_IDcheckreader_IDIFreader_IDinvalid

passtomembership_checkELSEcontinueENDIFDOWHILEbook_requestsenterbook_markonborroer_slipwritereader_IDo

nborrwer_slipstampbookwithreturen_dateremovebook_in_library_tagENDWHILEENDWHILE关于图书馆借阅图书活动的描述哈尔滨工业大学韩静萍2022/11/24任务和工作设计的目的在于创造用户的工作环

境。通常,任务应组织得与人的能力相适应。既不能完全由非常复杂的步骤组成,也不能太过简单而使操作者感到厌烦。7.2用户界面任务哈尔滨工业大学韩静萍2022/11/247.3界面设计的基本类型如果从用户与计算

机交互的角度来看,用户界面设计的类型主要有问题描述语言、数据表格、图形与图表、菜单、对话以及窗口等。使用的难易程度学习的难易程度操作速度复杂程度控制开发的难易程度类型哈尔滨工业大学韩静萍2022/11

/24用户承担需要创造、判断和探索的任务。重复检查、计算和数据处理的任务。任务分配哈尔滨工业大学韩静萍2022/11/24菜单也称选单,是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。菜单(1)按照显示的形象或样式来分类正文菜单哈尔滨工业大学韩静

萍2022/11/24教务信息管理系统0--结束系统运行1--学籍管理子系统2--教学管理子系统3--教材管理子系统4--实验室管理子系统请键入选择的功能序号(0~4):33--教学管理子系统教务信息管理系统A--结束系统运行B--学籍管理子系统C--

教学管理子系统D--教材管理子系统E--实验室管理子系统请选择功能字符(A~E):正文菜单举例哈尔滨工业大学韩静萍2022/11/24图标菜单哈尔滨工业大学韩静萍2022/11/24正文和图标混合菜单哈尔滨工业大学韩静萍2022/11/24(2)按屏幕位置和操作风格来分类

固定位置菜单浮动位置菜单下拉式菜单嵌入式菜单哈尔滨工业大学韩静萍2022/11/24固定位置菜单哈尔滨工业大学韩静萍2022/11/24浮动位置菜单浮动式菜单哈尔滨工业大学韩静萍2022/11/24下拉式菜单哈尔滨工业大学韩静萍2022/11/24在用户界面中

,加入丰富多彩的,将能够更形象地为用户提供有用的信息而达到可视化的目的。其主要的处理有图象的隐蔽和再现、屏幕滚动和图标显示等。图象图象的隐蔽和再现屏幕的滚动哈尔滨工业大学韩静萍2022/11/24图象的隐蔽和再现哈尔滨工业大学韩静萍2022/11/24内存缓冲区老缓冲区

新缓冲区哈尔滨工业大学韩静萍2022/11/24屏幕的滚动垂直滚动条水平滚动条哈尔滨工业大学韩静萍2022/11/24对话,也称为对话框,只系统必要时显示于屏幕上一个矩形区域内的图形和正文信息。通过对话可以实现用户和系统之

间的通信。对话哈尔滨工业大学韩静萍2022/11/24必须问答式对话框哈尔滨工业大学韩静萍2022/11/24无须问答式对话框哈尔滨工业大学韩静萍2022/11/24警告式对话框哈尔滨工业大学韩静萍2022/11/24设置一个或一批标准的对话以函数过程调用的方式直接提供给用户来使用。

这类对话框有的是一问一答的,有的是多问多答的。它们的显示格式、问题段和回答段的安排,以及用户回答的选择范围都是系统实现设置好的,使用者不能随意改动的。象这类对话称为标准对话。对话框的实现方式(1)哈尔滨工业大学韩静萍2022/1

1/24标准对话框哈尔滨工业大学韩静萍2022/11/24系统为不同类型的对话设置一组数据结构和一批工具函数。用户可以将根据他们的需要来自行设计对话,象这类对话则称为‚定做式对话‛当然这就需要事先设置好一批可以直接提供给用户使用的工具函数。对话框的实现方式(

2)哈尔滨工业大学韩静萍2022/11/24窗口是指屏幕上的一个矩形区域,在图形学中叫做视图区(Viewport)。用户可以通过窗口显示、观察其工作领域内的全部或一部分内容,并可以对所显示的内容进行各种系统预先定好的正文和图形操

作。窗口哈尔滨工业大学韩静萍2022/11/24习惯上我们把窗口视为虚拟屏幕相对地,显示器就称为物理屏幕。采用滚动条技术,通过窗口能够看到的用户空间,比物理屏幕显示的内容要多得多而另一方面,在同一物理屏幕上又可以设置多个窗口各个窗口可以由不同的系统或系统成分分别使用。如果在同一个屏幕上有若干

个窗口这些窗口可以相重叠在一起,也可以在水平方向并列地排列。哈尔滨工业大学韩静萍2022/11/24代码编辑窗口事件过程列表框对象列表窗口窗口界面示例之一哈尔滨工业大学韩静萍2022/11/24图标区窗口控制区用户工作区垂直滚动区窗口界面示例之二标

题区标题区标题区水平滚动区菜单区哈尔滨工业大学韩静萍2022/11/247.4数据输入界面的设计数据输入是指所有供计算机处理的数据的输入。数据输入界面是系统的一个重要的组成部分,它占用用户的极大部分使用时间。一个好

的数据输入界面应尽可能方便而有效地进行数据输入。哈尔滨工业大学韩静萍2022/11/24数据输入规则在软件设计的范围内,可以通过以下方法来减少用户输入的工作量。对共同的输入内容设置默认值(缺省值)。使用代码或缩写自动填入已输入过的内容或需要重复输入

的内容。如果输入内容是来自一个有限的备选集,则可以采用列表选择。哈尔滨工业大学韩静萍2022/11/24数据输入对话设计应遵循以下几项原则在软件设计的范围内,可以通过以下方法来减少用户输入的工作量。1、确认输入2、交互动作3、确认删除4、提供反馈5

、提示输入范围哈尔滨工业大学韩静萍2022/11/241、以表格形式对数据进行录入哈尔滨工业大学韩静萍2022/11/24请设计一个数据录入用户界面要求:1、内容自选2、应具有重复录入功能3、具有数据检测功能4、界面清晰哈尔滨工业大学韩静萍2022/11/242

、以菜单形式对数据进行录入如果数据从一个确定的可供选择的清单中选取输入,则可用菜单方式其方法是把所有的选择项都显示在屏幕上,用户只需要输入代表各项的数字代码就可选择所需数据。哈尔滨工业大学韩静萍2022/11/24时令水果蔬菜销售订单号

码1024输入订单日期11/05/00输入水果号码,选择所需数量或输入蔬菜号码,选择所需数量1------苹果2------香蕉3------鸭梨4------菠萝5------橘子6------葡萄请您选择(1~10):选择数量(可利用鼠标单击

)500克1000克1500克2000克本次订购:500克油菜1500克苹果请输入另一项(若输入0为结束订购)500克菜单数据录入示例之一7------土豆10------菜花8------韭菜11------油菜9------辣椒12-

-----白菜1500克111哈尔滨工业大学韩静萍2022/11/243、其它数据输入的方法关键词数据输入条形码声音数据输入光学标记/识别哈尔滨工业大学韩静萍2022/11/247.5输出界面的设计数据输出界面包括屏幕查询、文件浏览、图形显示和报告等。哈尔滨工业大学韩静萍2022/11/24数

据输出的规则只显示必需的数据,与用户需求无直接关系的一律省略显示出的数据,应与用户所执行的任务有关同一时刻使用的数据应显示在一起每一屏所显示数据的数量,包括标题栏等,最好不要超过整个屏幕面积的30%哈尔滨工业大学韩静萍20

22/11/24字符数据的显示字符数据的画面显示主要是屏幕布局和数据内容安排格式。显示的内容可以是单纯的正文,也可以是表格和目录,而更多的是二者的综合哈尔滨工业大学韩静萍2022/11/24若输出的是英文

正文,应避免连续使用大写字母,因为大写字母的阅读速度要低于大、小写混合的文体。而且大写字母应使用印刷体,且一般为强调而使用。纯正文的显示哈尔滨工业大学韩静萍2022/11/24列表和表格姓名数学物理英语化学总分夏丹89879899秋雨98769767冬雪78888787哈尔滨工业大学韩

静萍2022/11/24由于图形从数据集合中概括出来某些特性并且具有‚直观‛的优点,因此对于识别和分析处理结果更为有效,为了做好图形显示必须仔细地选择图形类型和进行布局设计以图形方式显示哈尔滨工业大学韩静萍2022/11/24直方图0102030405060708090第一季度第二

季度第三季度第四季度东部西部北部哈尔滨工业大学韩静萍2022/11/24饼图第一季度第二季度第三季度第四季度哈尔滨工业大学韩静萍2022/11/24折线图0102030405060708090100第一季度第二季度第三季度第四季度东

部西部北部哈尔滨工业大学韩静萍2022/11/24第八章软件测试在开发软件的过程中,我们使用了保证软件质量的方法分析、设计和实现软件,但难免还会在工作中犯错误。这样,在软件产品中就会隐藏着许多错误和缺陷。特别是对于规

模大、复杂性高的软件更是如此。在这些错误中,有些是致命性的错误如果不排除,就会导致生命与财产的重大损失。DO5I=1,3DO5I=1.3哈尔滨工业大学韩静萍2022/11/248.1软件测试的基础软件测试是

为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。什么是软件测试哈尔

滨工业大学韩静萍2022/11/24测试工具软件开发工程师(SoftwareDevelopmentEngineerinTest,简称SDE/T)软件测试人员软件测试工程师(SoftwareTestEngineer

,简称STE)哈尔滨工业大学韩静萍2022/11/24SDE/T负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。哈尔滨工业大学韩静萍2022/11/24负责理解产品的功能要求,然后对其进行测试,检查软件有

没有错误(Bug),决定软件是否具有稳定性,并写出相应的测试规范和测试案例。STE哈尔滨工业大学韩静萍2022/11/24Exchange2000Windows2000项目经理25人约250人开发人员140人

约1700人测试人员350人约3200人测试人员/开发人员2:51:9Exchange2000和Windows2000的人员结构哈尔滨工业大学韩静萍2022/11/24Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约

3200人测试人员/开发人员2:51:9哈尔滨工业大学韩静萍2022/11/24软件测试人员的任务很清楚,就是站在使用者的角度上,通过不断地使用和攻击刚开发出来的软件产品尽量多地找出产品存在的问题,也就是我们所称的Bug。哈尔滨工业大学韩静萍2022/11/24测试软件配置结果分析排

错改正的软件预期结果可靠性分析预测的可靠性错误出错率数据测试配置测试工具软件测试信息流哈尔滨工业大学韩静萍2022/11/24软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。因此,需求分析、

概要设计、详细设计以及程序编码等所得到的文档资料,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序,都应成为软件测试的对象。软件测试的对象哈尔滨工业大学韩静萍2022/11/24软件开发过程是一个自顶向下、逐步细化的过程,而测试则是依相反的顺序安排的,自底向上、逐步集成的过程。

低一级为上一级测试准备条件。测试与软件开发阶段的关系哈尔滨工业大学韩静萍2022/11/24需求分析设计编码单元测试集成测试确认测试①②③①②③哈尔滨工业大学韩静萍2022/11/248.2软件测试设计的方法软件的测试设计与软件产品的设计一样,是一项需要花费许多人力和时间的工作,我们希望以最

少量的时间和人力,最大可能地发现最多的错误。测试技术1、白盒测试(WhiteBoxTesting)2、黑盒测试(BlackBoxTesting)哈尔滨工业大学韩静萍2022/11/24也叫玻璃盒测试(GlassBoxTesting)。对软件的过程性细节做细致的检查。这一方法是把测试对象看

作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,对程序所有逻辑路径进行测试。白盒测试(WhiteBoxTesting)哈尔滨工业大学韩静萍2022/11/24白盒测试的内容对程序模块的所

有独立执行路径至少测试一次对所有的逻辑判定,取‚真‛与取‚假‛的两种情况都能至少测试一次。在循环的边界和运行边界限内执行循环体测试内部数据结构的有效性。哈尔滨工业大学韩静萍2022/11/24已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求

。黑盒测试(BlackBoxTesting)哈尔滨工业大学韩静萍2022/11/24黑盒测试的内容Alpha/BetaTesting菜单/帮助测试发行测试回归测试哈尔滨工业大学韩静萍2022/11/248.3白盒测试用例的设计逻辑覆盖测试方法通

常采用流程图来设计测试用例,它考察的重点是图中的判定框,因为这些判定通常是与选择结构有关或是与循环结构有关,是决定程序结构的关键成分。一、逻辑覆盖法哈尔滨工业大学韩静萍2022/11/24发现错误的能力标准含义1(弱)语句覆盖每条语句至少执行一次

2判定覆盖每一判定的每个分支至少执行一次3条件覆盖每一判定中的每个条件,分别按‚真‛、‚假‛至少各执行一次4判定/条件覆盖同时满足判定覆盖和条件覆盖的要求5(强)条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次逻辑覆盖测试的5种标准哈尔滨工业大学韩静萍202

2/11/24覆盖标准程序结构举例测试用例应满足的条件语句覆盖A^B=.T.判定覆盖A^B=.T.A^B=.F.A^BTFA^BTF哈尔滨工业大学韩静萍2022/11/24覆盖标准程序结构举例测试用例应满足的条件条件覆盖A=.T.A=.F.B=.T.B=.

F.判定/条件覆盖A^B=.T.,A^B=.F.A=.T.A=.F.B=.T.B=.F.条件组合覆盖A=.T.^B=.T.A=.T.^B=.F.A=.F.^B=.TA=.F.^B=.F.A^BTFA^BTFA^BTF

哈尔滨工业大学韩静萍2022/11/24bda输出的:A,B,X语句覆盖ce(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF输入的:A,B,X2,0,42,0,3满足语句覆盖的测试用例如下ace----ace(L1)abd(L2)abe(L3)a

cd(L4)L1哈尔滨工业大学韩静萍2022/11/24判定覆盖(分支覆盖)所谓的判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。哈尔滨工业大学韩静萍2022/11/24bdace(A>1)^(B=0)X=X/ATF(A=2)V(

X>1)X=X+1TF2,0,42,0,3取‚真‛分支测试用例如下ace----abd----1,1,11,1,1取‚假‛分支测试用例如下L1L2哈尔滨工业大学韩静萍2022/11/242,1,12,1,2

取‚真假‛分支测试用例如下abe----bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFL3哈尔滨工业大学韩静萍2022/11/243,0,33,0,1取‚真假‛分支测试用

例如下bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFacd----L4哈尔滨工业大学韩静萍2022/11/24条件覆盖所谓的条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。哈尔滨工业大学韩

静萍2022/11/24bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记哈尔滨工业大学韩静萍2022/11/

24bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记条件覆盖可选取的(第

一组测试用例)如下表测试用例通过路径条件取值覆盖分支(2,0,4),(2,0,3)ace(L1)T2T3T4c,e(1,0,1),(1,0,1)abd(L2)T1b,dT1T2T3T4哈尔滨工业大学韩静萍2022/11/24bdace(A>1)^(B=0

)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记条件覆盖可选取的(第二组测试用例)如下表测试用例通过路径条件取值覆盖

分支(1,0,3),(1,0,4)abe(L3)T1T2T3T4b,e(2,1,1),(2,1,2)abe(L3)b,eT1T2T3T4哈尔滨工业大学韩静萍2022/11/24判定/条件覆盖所谓的判定/条件覆盖就是设计足够

的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。哈尔滨工业大学韩静萍2022/11/24bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值

判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记判定/条件覆盖可选取的测试用例如下表测试用例通过路径条件取值覆盖分支(2,0,4),(2,0,3)ace(L1)T1T2T3T4c,e(1,1,1

),(1,1,1)abd(L2)b,dT1T2T3T4哈尔滨工业大学韩静萍2022/11/24条件组合覆盖所谓的条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。哈尔滨工业大学韩

静萍2022/11/24条件标记第一个判断取真假分支bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFA>1B=0A>1B≠0A≯1B=0A≯1B≠0判断条件取真值取假值判断(一)A>1T

1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记T1T2①取真分支T1T2T1T2②取假分支③取假分支④取假分支T1T2哈尔滨工业大学韩静萍2022/11/24条件标记第二个判断取真假分支bdace(A>1)^(B=0)X=X/ATF(A=2)

V(X>1)X=X+1TFA=2X>1A=2X≯1A≠2X>1A≠2X≯1判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记T3T4⑤取真分支T3T4T3T4⑥取真分支⑦取真分支⑧取假分支T3T4哈尔

滨工业大学韩静萍2022/11/24bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF设条件的取值标记测试用例通过路径条件取值覆盖组合号条件标记第一个判断取真假分支A>1B=0T1T2①取真分支A>1B≠0T1T2②取假分支A≯1B=0T1T2③取假分支A≯1

B≠0T1T2④取假分支(2,0,4),(2,0,3)aceL1T1T2T3T4①,⑤(2,1,1),(2,1,2)abeL3T1T2T3T4②,⑥(1,0,3),(1,0,4)abeL3T1T2T3T4

③,⑦(1,1,1),(1,1,1)abdL2T1T2T3T4④,⑧哈尔滨工业大学韩静萍2022/11/24路径测试就是设计足够的测试用例,覆盖程序中每一条可能的程序执行路径至少测试一次,如果程序中含有循环(在程序图中表现为环)则每个循环至少执行一次。二、路径测试法哈尔滨工业大学韩静萍2022

/11/24abcdea-c-eL1a-b-dL2a-b-eL3a-c-dL4bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF点覆盖边覆盖哈尔滨工业大学韩静萍2022/11/24bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1T

F判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4路径测试可选取的测试用例如下表测试用例通过路径条件取值aceL1abdL2abeL3acdL4(2,0,4),(2,0,3)T1T2T3T4(1,1,1),(1,1,1

)(1,1,2),(1,1,3)(3,0,3),(3,0,1)T1T2T3T4T1T2T3T4T1T2T3T4哈尔滨工业大学韩静萍2022/11/24测试路径覆盖结点/边覆盖标准点覆盖边覆盖路径覆盖根据左侧给出的程序图,请填写下列表1abcde234a-c-d①②③④a-c-d,b-ea,b,

c,d,ea-e-d,b-ea-e,b-c-d①②③④a,b,c,d,e哈尔滨工业大学韩静萍2022/11/248.4黑盒测试用例的设计黑盒测试法是根据被测程序功能来进行测试,所以通常也称为功能测试。用黑盒测试法设计测试用例,有4种常

用技术:等价分类法边界值分析错误猜测法因果图法哈尔滨工业大学韩静萍2022/11/24一、等价分类法所谓等价分类,就是把输入数据的可能值划分为若干等价类(等价类是指某个输入域的子集合。在该集合中,各个

输入数据对于揭露程序中的错误都是等价的)。因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以少量的代表性测试数据,来取得较好的测试结果。哈尔滨工业大学韩静萍2022/

11/24是指对于程序的规格说明来说,是合理的有意义的输入数据构成的集合。利用它可以检验程序是否实现预先规定的功能和性能。有效等价类哈尔滨工业大学韩静萍2022/11/24是指对于程序的规格说明来说,是不合理的,是无意义的输入数

据构成的集合。程序员主要利用这一类测试用例来检查程序中功能和性能的实现是否不符合规格说明要求。无效等价类哈尔滨工业大学韩静萍2022/11/241、如果输入条件规定了取值范围,或者是值的个数,则可以确立一个有效等价类和两个无效等价类。确定等

价类的原则:例如:……序号值可以从1到999……一个有效等价类:1≤序号值≤999两个无效等价类:序号值<1序号值>999哈尔滨工业大学韩静萍2022/11/242、如果输入条件规定了输入值的集合,或者是规定了‚必须如何‛的条件,这时可确立一个有效等价类和一个无效等价类。例如:在C语

言中对变量标识符规定为‚以字母打头的……串‛。所有以字母打头的构成为有效等价类;而不在此集合内(不以字母打头)归于无价等价。哈尔滨工业大学韩静萍2022/11/243、如果输入条件是一个布尔量,则可以确定一个有效等价类和

一个无效等价类。哈尔滨工业大学韩静萍2022/11/244、如果规定了输入数据是一组值,而且程序要对每个输入值分别进行处理。这时可为每一个输入值确立一个有效等价类此外再针对这组确立一个无效等价类,它应是所有不允许输入值的集合。例如:在教师分房方案中规定对教授、副教授、讲师

和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,以及1个无效等价类它应是所有不符合以上身份的人员的输入值的集合。哈尔滨工业大学韩静萍2022/11/245、如果规定了输入数

据必须遵守的规则,则可以确定一个有效等价类(符合规则),和若干个无效等价类(从不同角度违反则)。例如:在C语言中规定了‚一个语句必须以分号‘;’作为结束‛,这时,可以确定一个有效等价类,以‚;‛结束,而若干个无效等价类应以‚:,、‛等。哈尔滨工业大学韩静萍2022/1

1/246、如果确知,已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。哈尔滨工业大学韩静萍2022/11/241、划分等价类不仅要要考虑代表‚有效‛输入值的有效等价类,还需考虑代表‚无效‛输入值的无效等价类。采用这一技术

要注意以下两点:2、每一无效等价类至少要用一个测试用例,不然就可能漏掉某一类错误,但允许若干有效等价类合用同一个测试用例,以便进一步减少测试的次数。哈尔滨工业大学韩静萍2022/11/24二、确立测试用例输入条件有效等

价类无效等价类………………哈尔滨工业大学韩静萍2022/11/24确立测试用例原则为每一个等价类规定一个唯一的编号。设计一个新的测试用例,使其尽可能地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使

其仅覆盖尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。哈尔滨工业大学韩静萍2022/11/24在某一个PASCAL语言版本中规定1、标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个;2、标识符必须先说明,后使用

;3、在同一个说明语句中,标识符至少必须有一个。请利用等价分类法为以下提供的内容设计测试用例哈尔滨工业大学韩静萍2022/11/24输入条件有效等价类无效等价类标识符个数标识符字符数标识符组成第一个字符标识符使用1个(1),

多个(2)0个(3)1~8个(4)0个(5),》8个(6),》80个(7)字母(8),数字(9)非字母数字字符(10),数字(11)字母(12)非字母(13)先说明后使用(14)未说明已使用(15)哈尔滨工业大学韩静萍2022/11/24输入条件有效等价类无效

等价类标识符个数1个(1),多个(2)0个(3)标识符字符数1~8个(4)0个(5),》8个(6),》80个(7)标识符组成字母(8),数字(9)非字母数字字符(10),保留字(11)第一个字符字母(12)非字母(13)标识符使用先说明后使用(14)未说明已使用(

15)①VARx,T1234567:REAL;BEGINx:=3.414;T1234567:=2.732;……⑴⑵⑷⑻⑼⑿⒁哈尔滨工业大学韩静萍2022/11/24输入条件有效等价类无效等价类标识符个数1个(1),多个(2)0个(3)标识符字符数1~8个(4)0个(5),》8个(6),》

80个(7)标识符组成字母(8),数字(9)非字母数字字符(10),保留字(11)第一个字符字母(12)非字母(13)标识符使用先说明后使用(14)未说明已使用(15)②VAR:REAL;⑶③VART12345678:REAL;{⑹}⑹④VART$:CHAR;⑽⑤VARGOTO:INT

EGER;(11)哈尔滨工业大学韩静萍2022/11/24输入条件有效等价类无效等价类标识符个数1个(1),多个(2)0个(3)标识符字符数1~8个(4)0个(5),》8个(6),》80个(7)标识符组成字母(

8),数字(9)非字母数字字符(10),保留字(11)第一个字符字母(12)非字母(13)标识符使用先说明后使用(14)未说明已使用(15)⑥VAR2T:REAL;(13)⑦VARPAR:REAL;BEGIN……PAP:=SIN(3.14*0.8)/6;(15)哈尔滨工业

大学韩静萍2022/11/24某工厂公开招工,规定报名者年龄应在16~35周岁之间(到2019年6月30日为止),即出生年月不早于1960年7月,不晚于1979年6月。报名程序具有自动检验输入数据的功能。如出生年月不在上述范围内,将拒绝接

受,并显示‚年龄不合格‛等出错信息。请试用等价分类法,设计出生年月的等价分类表。二、请利用等价分类法为以下提供的内容设计测试用例哈尔滨工业大学韩静萍2022/11/24假定已知出生年月是由6位数字字符表示,前4位代表年,后

2位代表月,则可以划分为3个有效等价类和7个无效等价类。1、划分出生年月等价分类表输入数据有效等价类无效等价类出生年月①6位有效数字字符②有非数字字符③少于6个数字字符④多于6个数字字符对应数值⑤196007-197906⑥<196007⑦>197906月份对应数值⑧在1-12之间⑨

等于‚0‛⑩>12哈尔滨工业大学韩静萍2022/11/242、设计有效等价类需要的测试用例输入数据有效等价类无效等价类出生年月①6位有效数字字符②有非数字字符③少于6个数字字符④多于6个数字字符对应数值⑤196007-197906⑥<196007⑦>197906月份

对应数值⑧在1-12之间⑨等于‚0‛⑩>12测试数据期望结果测试范围197011输入有效①、⑤、⑧哈尔滨工业大学韩静萍2022/11/24输入数据有效等价类无效等价类出生年月①6位有效数字字符②有非数字字符③少于6个数字字符④多于6

个数字字符对应数值⑤196007-197906⑥<196007⑦>197906月份对应数值⑧在1-12之间⑨等于“0”⑩>12测试数据期望结果测试范围MAY,70输入无效②有非数字字符19705输入无效输入无效③少于6个数字字符1968011

196008195512196200197222年龄不合格年龄不合格输入无效输入无效④多于6个数字字符⑥<196007⑦>197906⑨等于‚0‛⑩>123、为每一个无效等价类至少设计一个测试用例哈尔滨工业大学韩静萍2022/11/24二、边界值分析法采用边界值分析法来选择测试

用例,可使得被测程序能在边界值及其附近运行,从而更有效地暴露程序中潜藏的错误。哈尔滨工业大学韩静萍2022/11/24If(196007<=value(birthdate)<=197906)Thenread(birthday)Els

ewrite“invalidage!”<为了接受年龄合格的报名者则程序中可能设有语句为:哈尔滨工业大学韩静萍2022/11/24输入等价类测试用例说明测试数据期望结果出生年月1个数字字符5个数字字符7个数字字符有1个非数字字符全是非数字

字符519705196801119705AUGUST输入无效对应数值35周岁16周岁196007197906合格年龄>35周岁<16周岁196006197907不合格年龄月份对应数值月份值为1月月份值为12月196701197412输入有效月份值<1月份值>12196700197413输入无效哈尔

滨工业大学韩静萍2022/11/241、等价分类法的测试数据是在各个等价类允许的值域内任意选取的,而边界值分析法的测试数据必须在边界值附近选取。2、在公开招工的例子中,采用等价分类法设计了8个测试用例而边界值分析法则设计了1

3个,所以,一般来说,用边界值分析法设计的测试用例要比等价分类法的代表性更广,发现错误的能力也更强。但是对边界的分析与确定比较复杂,它要求测试人员具有更多的经验和长找性。等价分类法与边界值分析法的比较哈尔滨工业大学韩静萍2022/11/24三、错误猜测法所谓猜测,就是

猜测被测程序在哪些地方容易出错,然后针对可能的薄弱环节来设计测试用例。显然它比前两种方法更多地依靠测试人员的直觉与经验。所以一般都先用前两方法设计测试用例然后再用猜测法去补充一些例子作为辅助的手段。哈尔滨工业大学韩静萍2022/11/24四、因果图法因

果图是借助图形来设计测试用例的一种系统方法。它适用于被测程序具有多种输入条件,程序的输出又依赖于输入条件的各种组合的情况因果图是一种简化了的逻辑图,它能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。哈尔滨工业大学韩静萍2022/11

/24测试方法的选用测试策略1、在任何情况下都应该使用边界值分析的方法。2、必要时用等价类划分法补充测试方案。3、必要时再用错误猜测法补充测试方案。4、对照程序逻辑,检查已经设计出出的测试方案。可以根据对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试方案的逻辑程度没有达到要

求的覆盖标准则应再补充一些测试方案。哈尔滨工业大学韩静萍2022/11/24本章总结策略种类黑盒测试白盒测试测试对象程序的功能程序的结构测试要求逐一验证程序的功能程序的每一组成部分至少被测试一次采用技术等价分类

法边界分析法错误猜测法因果图法逻辑覆盖法路径测试法哈尔滨工业大学韩静萍2022/11/24微软的软件产品开发过程一、微软的组织结构市场营销部内部营运部产品开发部研究部门哈尔滨工业大学韩静萍2022/11/24二、新产品的产生过程新产品项目的提议市场分析与预测技术可行性分析产品研

发实施步骤高层论证和审批项目确立和执行产品开发我最大的心得是,一个产品一定要找到能够真正适用的场合,不能只是为了技术而从事技术,为了研究而从事研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀、多么先进,恐怕你的产品在市场上都无法获得成功

。---------微软张益肇哈尔滨工业大学韩静萍2022/11/24陈宏刚微软亚洲研究院商务高级经理1982年兰州大学计算机学士1987年西安交通大学计算数学硕士1987年赴美留学,并获华盛顿大学应用数学博士学位后又在该校做博士后研究2019年加盟微软公司在微软总部先后做过测试工程师(So

ftwareTestEngineer)测试组长(SoftwareTestLead)测试经理(TestManager)参加过微软产品Windows95,ExchangeServer4.0和4.5,Internet

Explorer4.0和4.5,SQLServer2000的开发和测试哈尔滨工业大学韩静萍2022/11/24三、微软的产品团队软件开发项目管理软件测试产品管理后勤管理用户培训------微软产品团队的组成互相沟通哈尔滨工业大

学韩静萍2022/11/24各个团队的角色及主要目标团队名称分担的任务产品管理项目管理软件开发软件测试用户培训后勤管理确定产品的运景,获取并确定用户的需求,开发并维护商业安全,满足用户的需求制定开发功能规范,在团队内进行沟通和协商,维

持产品进度并报告产品状态,保证能够尽快尽好地在产品约束条件下发布产品开发出满足设计规范和用户要求的产品开发测试策略和计划,保证在解决了所有已知问题后再发布产品保证使用文档要全部很清楚地写出来,提高用户使用产品的技能,保证大多数用户

都能够充分利用产品的功能保证产品能够平稳地发展哈尔滨工业大学韩静萍2022/11/24产品管理团队的组织机构ProductManagementTeam产品单元经理(PUM)产品管理团队(产品总经理GM)产品计划(负责人)市场分析和研究(负责人)产品推销(负责人)公共关系(负责人

)产品单元经理(PUM)哈尔滨工业大学韩静萍2022/11/24项目管理团队的组织机构ProgramManagementTeam项目团队的管理(GPM)产品按时发布项目协调产品结构设计哈尔滨工业大学韩静萍2022/11/24软件开发团队

的组织机构SoftwareDevelopmentTeam软件开发团队(SDT)数据库(Database)系统服务(Systemservice)用户界面(UserInterface)开发管理(DevelopmentManage

ment)哈尔滨工业大学韩静萍2022/11/24软件测试团队的组织机构SoftwareTestingTeam软件测试团队(STT)测试管理配置测试(ConfigurationTesting)一致性测试(ComplianceTesting)集成测试(IntegrationTesting)强力

测试(StressTesting)Bug团队哈尔滨工业大学韩静萍2022/11/24Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人测试人员/开发人员2.51.9Exchange2000和Window

s2000中的人员结构哈尔滨工业大学韩静萍2022/11/24-----微软现代软件开发的典型体系软件研究院产品部产品规划人员产品管理团队软件开发团队软件测试团队技术部哈尔滨工业大学韩静萍2022/11/24四、微软的软件开发特点(1)文档齐全,项目规范

清楚(2)开发人员相互阅读其他人新编写代码(3)所有代码都有清楚的注释产品版本调试版本(Dev)发布版本(Ship)管理上哈尔滨工业大学韩静萍2022/11/24软件开发第一阶段各团队分担的任务团队名称分担的任务产品管理项目管理软件开发软件测试用户培训后勤管理分析是否应该做这个新产品,尽量证明

该产品是值得做设计新产品的目标,以及具体的实现方法开发一些技术原型,检验新产品是否有意义,并向大家展示新产品未来的样子。另外还要对开发过程中一些大的结论提出意见判断该新产品是否有用、是否可接受分析用户的需求对长期的支

持管理提出建议哈尔滨工业大学韩静萍2022/11/24软件开发第二阶段各团队分担的任务团队名称分担的任务产品管理项目管理软件开发软件测试用户培训后勤管理概念设计和市场推销计划/进度表逻辑设计、功能规范,以及总体计划/

进度表物理设计和开发计划/进度表设计评估和测试计划/进度表用户性能支持设计和用户培训计划/进度表对长期的支持管理提出建议哈尔滨工业大学韩静萍2022/11/24微软亚洲研究院MicrosoftResearchAsia2019年11月5日,微软公司在北京设立微软中国研

究院2019年11月1日,正式更名为微软亚洲研究院目前研究技术数字多媒体多通道用户界面无线及网络亚洲信息处理技术科研技术人员120多位国际一流学术刊物和会议上发表论文400余篇哈尔滨工业大学韩静萍2022/11/24潘云鹤校长迟惠生校长张钹教授VictorZ

ue刘明雷先生郑南宁副校长国际专利微软专家顾问委员会百余项现任院长兼首席科学家张亚勤博士WindowsXPOfficeXP现任副院长:张宏江博士沈向洋博士哈尔滨工业大学韩静萍2022/11/24微软研究院的科研方向微软研究院的研究方向微软研究院的神圣使命使未来的计

算机能够达到:看、听、学,能用自然语言与人类进行交流。新一代用户界面新一代多媒体技术1、多通道用户界面组2、语音技术组1、网络多媒体组2、多媒体计算机组3、多媒体管理组4、形象计算组5、网络图形组新一代信息处理技术1、自然语言组新一代无线互联技术2、无线网络组哈尔滨工业大

学韩静萍2022/11/24现代软件开发对我们的要求是方方面面的,微软在这些方面积累的经验和遵循的规则非常全面,在软件开发的整体过程中,从某意义上其“艺术”性高于“科学”性,因为融入了艺术的产品有着超群的竞争力,而这一切又都归功于软件产品的主体----人

。人的最大浅能的挖掘和团队最大可能的互助必将创造成功的产品。-----微软凌小宁博士哈尔滨工业大学韩静萍2022/11/241、利用因果图产生测试用例的基本步骤1、分析软件规格说明书中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即

输出条件)并给每个原因和结果赋予一个标识。2、分析软件规格说明书中所描述的语义,找出原因与结果之间、原因与原因之间对应的是什么关系?根据这些关系画出因果图。哈尔滨工业大学韩静萍2022/11/243、由于语

法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。4、把因果图转换为判断表5、把判断表的每一列拿出来作为依据,设计测试用例。哈尔滨工业大学韩静萍202

2/11/242、在因果图中出现的基本符号C1E1恒等:表示原因与结果之间是一对一的对应关系。若原因出现,则结果出现。若原因不出现,则结果也不出现。C1E1非:表示原因与结果之间的一种否定关系。若原因出现,则结果不出现。若原因不出现,反而结果出现。通

常在因果图中用Ci来表示原因,用Ei表示结果其基本符号如下图所示。其中各结点表示状态,可取值为“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因和结果之间的关系如下:哈尔滨工业大学韩静萍2022/11/2

4或(∨):表示若几个原因中有一个出现,则结果出现,而当这几个原因都不出现时,结果才不出现。C1E1C2∨C1E1C2∧与(∧):表示若几个原因都出现,则结果才出现若几个原因中有一个不出现,结果就不出现。哈尔滨工业大学韩静萍2022/11/24第9章软件测试4、把因果图转换为判断表5、把判断表的

每一列拿出来作为依据,设计测试用例一、在因果图中出现的基本符号通常在因果图中用Ci来表示原因,用Ei表示结果其基本符号如下图所示。其中各结点表示状态,可取值为“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现

。主要的原因和结果之间的关系如下:哈尔滨工业大学韩静萍2022/11/24第9章软件测试举例设有一个处理单价为5角钱饮料自动售货机其规格说明为,若投入5角钱或1元钱的硬币,再按下橙汁或啤酒按钮,则相应的饮

料就送出来;若售货机没有另钱找,则一个显示另钱已找完的红灯亮,这时在投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;若有另钱找,则应显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。哈尔滨工业大学韩静萍2022/11/24第9章软件测试利用因果图设计测试用例的步骤1

、分析这一段说明,列出原因和结果序号原因序号结果1.售货机有零钱找2.1售货机零钱找完灯亮2.投入1元硬币2.2退还1元硬币3.投入5角硬币2.3退还5角硬币4.按下橙汁按钮2.4送出橙汁饮料5.按下啤酒按钮2.5送出啤酒饮料

哈尔滨工业大学韩静萍2022/11/24第9章软件测试2、画出因果图序号中间结点11投入1元硬币且按下饮料按钮12按下橙汁或啤酒的按钮13应当找5角零钱并且售货机有零钱找14钱已付请211.222.13231112143.24254.

5.∧∨∧∧∧∨∧按下按钮该找5角钱已付清售货机有零钱找投入1元硬币投入5角硬币按下橙汁按钮按下啤酒按钮售货机“零钱找完”灯亮退还1元硬币退还5角硬币送出橙汁饮料送出啤酒饮料哈尔滨工业大学韩静萍2022/11/24第9章软件测试3、将因果图转换成判定表111111111111111110

11110000111001100110101010111111110000000000111111000011110011001100101010101000000000011111000001000011

110011001100101010101010000000001000101234567891012345678920123456789301212345条件中间结果11121314110110110110110110110110000110000111000110000

0001101100000000001100001110001100000002122232425结果测试用例yyyyyyyyyyyyyyyy000000110100010000000000100010

000000000000000111110000000000111111000100010111000000000000序号通常在因果图中用Ci来表示原因,用Ei表示结果其基本符号如下图所示。其中各结点表示状态,可取值为“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因和结果

之间的关系如下:序号11121314哈尔滨工业大学韩静萍2022/11/24三、实体-关系图----DD(DataDictionary)在数据密集型应用问题中,对复杂数据及数据之间复杂关系和建模将成为需求分析的重要任务

。显然,这项任务是简单的数据字典机制是无法胜任的。为此,在下面的内容将介绍适合于复杂数据建模的图形工具----实体-关系图。哈尔滨工业大学韩静萍2022/11/24(1)数据对象、属性与关系数据(data)---是信息的载体,它能够被计算机识别、存储和加工处理。它是计算机程序加工的

“原料”对象(Object)---是一个包含数据以及这些数据有关的操作的集合属性(Property)---是用于描述数据对象特征的标识码型号制造商车体类型颜色买主关于汽车属性描述表哈尔滨工业大学韩静萍2022/11/24(2)实体-关系图0:11:10:多1:多-----实体-关系图中数量对应关

系的表示符号制造商制造车-----一个简单的实体-关系图和数据对象哈尔滨工业大学韩静萍2022/11/24制造商许可证经销商车货主储存制造合同制造哈尔滨工业大学韩静萍2022/11/24汽车欧洲市场美国市场国内市场上海广州法国德国瑞典意大利汽车销售管理问题中“汽车”的层次实体-关系图哈尔滨

工业大学韩静萍2022/11/24第六章VisualBasic中的常用事件P79感谢您的关注

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?