软件工程基础简版.ppt
《软件工程基础简版.ppt》由会员分享,可在线阅读,更多相关《软件工程基础简版.ppt(121页珍藏版)》请在课桌文档上搜索。
1、,第3章 软件工程基础,主要内容3.1 软件工程的基本概念3.2 结构化分析方法3.3 结构化设计方法3.4 软件测试3.5 程序的调试,全国等级考试考试大纲要求软件工程基本概念,软件工具与软件开发环境。结构化分析方法,数据流 图,数据字典,软件需求规格说明书。结构化设计方法,总体设计与详细设计。软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。程序的调试,静态调试与动态调试。,知识类型:理论二级所占分值:约6分课时:46学时参考书目:软件工程导论(第4版)张海藩 编著 清华大学出版社,软件(Software)是指包括程序、数据以及相关文档的完整组
2、合。国标定义:与计算机系统的操作有关的计算机程序、规程、规则以及可能有的文件、文档及数据。,3.1 软件工程基本概念,软件工程(Software Engineering)是在20世纪60年代末期提出的。这一概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。,3.1 软件工程基本概念,表现:软件需求的增长得不到满足 软件开发成本和进度无法控制 软件质量难以保证 软件不可维护或维护程度非常低 软件成本不断提高软件开发生产效率的提高赶不上硬件的发展和应用需求的增长(7)软件通常缺少适当的文档资料,总之,可以将软件危机归结为成本、质量和生产率等问题,实际上几
3、乎所有软件都在不同程度上存在软件危机.,软件危机(Software Crisis),下一节,3.1 软件工程基本概念,软件危机软件开发进度难以预测,拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。以丹佛新国际机场为例 该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,000台遥控车,可按不同线路在20家不同航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400台无线电接受机、56台条形码扫描仪和100台计算机。按原定计划要在1993
4、年万圣节前启用,但一直到1994年6月,该系统还无法正常运行。据研究结果统计:只有15%的项目是按计划完成的。,略过,软件危机软件开发成本难以控制,投资一再追加,令人难于置信。据同样的研究统计结果表明:仅有10%的项目是按费用计划完成的。例如,20世纪80年代初,美国国内税收服务处(IRS)让Sperry公司开发一套联邦税收表格自动处理系统。结果是:系统被证明不适合当前的工作量,花费几乎是预算的两倍,必须立即更换(华盛顿邮报的报道)。到1985年,还需要再追加9千万美元来改进Sperry公司最初价值1.03亿美元的设备。另外,因为出现的问题阻碍了IRS按时返还纳税者的税款,IRS还被迫偿还4.
5、02亿美元的利息以及2.23千万美元的工资给加班职员。,略过,软件危机软件产品质量无法保证,开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”的开发方式必然导致最终的产品不符合用户的实际需要。,略过,软件危机用户对产品功能难以满足,系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。例如,一次美国在肯尼迪角发射一枚阿脱拉斯火箭,预定将用这种火箭运载飞往金星的宇宙
6、飞船。火箭飞离地面几十英里高空开始翻转,地面控制中心被迫下令自爆炸毁。后经检查发现是飞行计划程序中漏掉一个连字符。就是这样一个连字符的疏漏造成这枚价值1850万美元的火箭实验失败。据统计数字表明:在大型系统中,约3/4的系统有问题。,略过,软件危机软件产品难以维护,软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。,略过,软件危机软件缺少适当的文档资料,文档资料是软件必不可少的重要组成部分。实际上,软件的文档资料是开发组织和用户的之间权利
7、和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。,略过,软件危机软件开发供不应求,软件开发生产率的提高速度,难以满足社会需求的增长率。软件产品“供不应求”的现象致使不能充分利用现代计算机硬件提供的巨大潜力。,伴随着软件危机的存在引入软件工程,3.1 软件工程的基本概念,形成:为了摆脱软件危机,北大西洋软件组织成员国软件工作者于1968-1969年,两次召开会议,认识早期软件开发中所存在的问题和产生问题的原因,提出软件工程的概念.目的:软件工程是指导
8、计算机软件开发和维护的一门学科,它应用计算机科学、数学和管理科学等原理,以及借鉴传统工程的原则和方法,来创建软件,从而达到提高质量、降低成本的目的。,软件工程:是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。,软件工程 一种层次化技术,工具,方法,过程,质量焦点,Software engineering layers,软件工程三个要素:方法、工具、过程,3.1.2 软件生命周期,一.定义:(Software Life Cycle)软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。软件生命周期可以划分为软件定义、软件开发和软件运行维护
9、三个时期,每个时期又进一步划分成若干个阶段。,概要设计,可行性研究与计划制定,需求分析,定义阶段,详细设计,实现,测试,使用,开发阶段,维护,运行维护阶段,退役,确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实施计划.,对软件需求进行分析并给出详细定义,编写软件规格说明书及初步的用户手册,提交评审。,给出软件的结构、模块和功能的划分等,确定算法。编写概要设计、详细设计说明书和测试计划初稿。,源程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户手册、操作手册和单元测试计划。,设计测试用例,检验软件各个组成部分。编写测试分析报告。,将已交付的软件投入运行,并在运行使用中不断地维
10、护,根据新提出的需求进行必要而且可能的扩充和删改。,软件开发的各阶段的成本比例,软件工程基本概念补充习题讲解,1.软件开发的结构化生命周期方法将软件生命周期划分成_。A.定义、开发、运行维护 B.设计阶段、编程阶段、测试阶段 C.总体设计、详细设计、编程调试 D.需求分析、功能定义、系统设计2.下面不属于软件工程的3个要素的是_。A.工具 B.过程 C.方法 D.环境3.软件是一种_。A.程序 B.数据 C.逻辑产品 D.物理产品4.下列描述中正确的是_。(等级考试题)A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中
11、 需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题,3.2 结构化分析,3.2.1 需求分析,需求阶段是软件开发的关键阶段。需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。,3.2 结构化分析,3.2.1 需求分析,与用户沟通获取需求的方法,访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型,某出版社系统调查表,某出版社系统调查表,3.2 结构化分析,3.2.2 结构化分析方法,需求分析的方法,结构化分析(传统建模方法)面向对象分析,计算机世界,现实世界,影射,(当前系统),(目标系统),计算机世界,
12、现实世界,结构化开发方法,结构化分析,结构化设计,结构化编程,OOA,OOD,OOP,面向对象开发方法,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法的定义(Structure Analysis-SA),是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,数据流图(DFDData Flow Diagram)数据字典(DDData Dictionary)实体-联系图(E-R图),实体-关系图(ER图)。详见第4章P208页,3
13、.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,1.数据流图(DFDData Flow Diagram)(1)作用:从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,1.数据流图(DFDData Flow Diagram)(1)作用:,(2)数据流图中的基本图形符号意义,可以是数据库文件或任何形式的数据组织。,数据加工:转换数据流的处理过程,外部实体:表示数据的源点或终点,即系统外部的实体。,数据流:在转换之间有向流动的数据项或数
14、据集合,数据存储文件:,箭头向内则表示写入文件 或查询文件.箭头向外则表示从文件中读取数据或得到查询结果.,储户,检验,付款,登录,存折,帐卡,取款信息,办理取款手续的 DFD 图,检验不合格,现款,付款信息,取款单,存折,注意,数据流图与程序流程图中的箭头表示的内容相同么?,数据流图中的箭头表示的是数据流。程序流程图中的箭头表示的是控制流。,两者有本质不同,不要混淆,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。在多层数据流图中,顶层流图仅包含一个加工,它
15、代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,分层的数据流图,输入信息,输出信息,输入信息,输出信息,输出信息,考务处理系统功能,(1)对考生送来的报名单进行检查;(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,考务处
16、理系统的分层DFD,略过,顶层数据流图,不合格报名单,报名单,准考证,考生通知单,成绩清单,合格标准,错误成绩清单,考生名单,统计分析表,略过,报名单,准考证,不合格报名单,考生通知单,统计分析表,1层数据流图,合格标准,考生名单,略过,2层数据流图(a),报名单,准考证,不合格报名单,考生名单,合格报名单,略过,2层数据流图(b),检查成绩清单,2.1,审定合格者,2.2,考生名册,正确成绩清单,制作通知单,2.3,分析统计成绩,2.4,分析试题难度,2.5,试题得分清单,考生通知单,难度分析表,合格标准,分类统计表,成绩清单,错误成绩清单,经审定的成绩清单,略过,3.2 结构化分析,3.2
17、.2 结构化分析方法,结构化分析方法使用的常用工具,2.数据字典(1)定义 是所有与系统相关的数据元素的一个有组织的列表,以及精确、严格的详细定义。(2)作用 对DFD中出现的被命名的图形元素的确切解释,数据词典与数据流图配合,能清楚地表达数据处理的要求。,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,2.数据字典,(3)数据字典的组成 数据项:是数据的最小单位;数据结构:是若干数据项的有意义的集合;数据流:可以是数据项,也可以是数据结构,表示某一个 处理过程的输入或输出;数据存储:处理过程中存取的数据,常常是手工凭证、手 工文档或计算机文件。处理过程:,(4)
18、数据字典定义符号,=,被定义为,+,与,x=a+b,则表示 x 由 a 和 b 组成,x=a,b,则表示 x 由 a 或由 b 组成,或,重复,x=a,则表示 x 由 0个或多个a 组成,(),可选,表示在两个*之间的内容为词条的注释,m n,重复,x=3a8,则表示x中至少出现3次a,最多出现8次,*,注释符,x=(a),则表示a 在x 中出现,也可不出现,x=1.9(x可取1到9中任意一个值),.,连接符,某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。,标识符=字母字符+字母数字串字母数字串=0字
19、母或数字7字母或数字=字母字符数字字符,数据字典中定义数据例:,例:若数据流图中有“员工登记单”数据存储文件,则在数据字典中此条目可描述为:员工登记单员工编号姓名职务聘用日期 员工编号“0001”.“9999”姓名1字母8 职务5字母20 聘用日期年+月+日 年“00”.“99”月“01”.“12”日“01”.“31”,存折格式,存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作
20、复核,3.2 结构化分析,3.2.3 软件需求规格说明书,1.定义:软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,软件开发的重要文档之一。它对所开发的软件的功能、性能、用户界面及运行环境等进行详细说明。2.作用:便于用户与开发人员进行理解与交流;反映出问题的结构,可以作为软件开发的基础和依据;作为测试和验收的依据。3.特点:正确而无歧义性,简明易懂,可修改性,可验证性等。,主要包括以下的内容:,SRS,对软件系统所必须解决的问题作出详细说明。,描述为解决用户问题所需要的每一项功能的过程细节。,说明系统应达到的性能(运
21、行时间、内存容量等)。,包括与该软件有关的全部参考文献。,列表数据、算法的详细说明、框图、图表和其他材料。,从系统的角度描述软件的目标和任务。,投诉业务系统SRS,习题讲解,1.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()A.概要设计 B.详细设计 C.可行性研究 D.需求分析2.需求分析阶段的任务是确定()A.软件开发方法 B.软件开发工具 C.软件开发费用 D.软件系统功能3.软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及_。A.阶段性报告 B.需求评审 C.总结 D.都不正确4.在结构化方法中,用数据流程图(DFD)
22、作为描述工具的软件开发阶段是_。A.可行性分析 B.需求分析 C.详细设计 D.程序编码,5.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下列图符名标识的图符不属于数据流图 合法图符的是_。A.控制流 B.加工 C.数据存储 D.源和潭6.下列工具中属于需求分析常用工具的是_。A.PAD B.PFD C.N-S D.DFD7.数据字典是对数据定义信息的集合,它所定义的对象都包含在()。A.程序框图 B.数据流图 C.软件结构 D.方框图8 下列不属于结构化分析的常用工具的是_。A.数据流图 B.数据字典C.判定树 D.PAD图9.在数据流图(DFD)中,带有名字的箭
23、头表示_ A.控制程序的执行顺序 B.模块之间的调用关系 C.数据的流向 D.程序的组成成分10.结构化分析方法的一个重要思想是_.A.自顶向下,逐层抽象 B.自底向上,逐层抽象 C.自顶向下,逐层分解 D.自底向上,逐层分解,14.数据字典是各类数据描述的集合,它通常包括5个部分,即:数据项、数据结构、数据流、_和处理过程。,11.下列叙述中,不属于软件需求规格说明书的作用是()。.便于用户与开发人员进行理解与交流;B.反映出问题的结构,可以作为软件开发的基础和依据;C.作为测试和验收的依据。.便于开发人员进行需求分析12.需求分析阶段的最后成果是_,是软件开发的重要文 档之一。13.软件需
24、求规格说明书缩写是_.,3.3 结构化设计,3.3.1 概述,需求分析:解决“做什么”,软件设计:解决“怎么做”,从软件需求规格说明书出发,形成软件的具体设计方案。,3.3 结构化设计,3.3.1 概述,编码,测试,设计,-软件开发阶段的信息流,软件开发阶段:软件设计、软件编码、软件测试,3.3 结构化设计,3.3.1 概述,结构化设计方法是基于模块化、自顶向下细化、结构化(三种基本结构)程序设计等程序设计技术基础发展起来的。,结构化设计方法(SD-Structured Design),基本思想:将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段.,3.3 结
25、构化设计,3.3.1 概述,软件设计划分,一般过程:是一个迭代过程,先进行高层次结构设计;再进行 低层次过程设计;穿插数据设计和接口设计。,3.3 结构化设计,概要设计也称为结构设计或总体设计,主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图,如图,3.3.2 总体设计,3.3 结构化设计,3.3.2 总体设计,例,一学生成绩管理系统模块图,结构化设计的目的,使程序的结构尽可能反映要解决的问题的结构,结构化设计的任务,把需求分析得到的数据流图DFD变换为系统结构图(SC)。,3.3 结构化设计,3.3.2 总体设计,3.3 结构化设计,3.3.2 总体设计,概要设计工具-结构图(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 基础
链接地址:https://www.desk33.com/p-235705.html