计算机软件技术基础软件工程课件.ppt
《计算机软件技术基础软件工程课件.ppt》由会员分享,可在线阅读,更多相关《计算机软件技术基础软件工程课件.ppt(120页珍藏版)》请在三一办公上搜索。
1、第三篇 面向过程的软件工程,3.软件需求分析,1.软件危机、软件工程,2.可行性研究,4.软件总体设计,5.软件详细设计,6.软件编码,7.软件测试,8.软件维护,1.软件危机、软件工程,1.1软件工程的发展史,“软件工程”由北大西洋公约组织(North Atlantic Treaty Organization, NATO)的计算机科学家1968年在联邦德国召开的国际会议上首次提出来的。软件工程学科产生的时代背景是“软件危机”。软件工程的发展和应用缓和软件危机,同时促使一门新兴的工程学科诞生。,程序设计时代:1946年1956年,硬件价格昂贵、运行速度低、内存容量小,程序员强调“程序设计技巧”
2、,设计的程序难读、难懂、难修改。,1.软件危机、软件工程,1.1软件工程的发展史,程序系统时代:1956年1968年,“程序+说明”时代;CPU速度、内存容量有很提高;计算机应用普及,软件需求量急增;“软件作坊”产生,软件质量得不到保证,产生 “软件危机”。,软件工程时代:1968年至今,“程序+文档”时代;超大规模集成电路提高了硬件性能;如果没有驾驭和开发大型软件的能力,就不能有效地使用计算机;软件价格、维护费用不断上升。这个时代,依然没有完全摆脱软件危机。,1.软件危机、软件工程,1.2软件危机及其表现形式,1、不能准确估计软件开发的成本与进度。,2、用户对“已完成的”软件系统经常不满意。
3、,3、软件产品质量往往靠不住。,5、软件成本在计算机系统总成本中所占的比例逐年上升。,6、软件生产效率低,供不应求。,除此之外,与软件开发和维护有关的问题还有很多。,4、软件难以维护。,软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。包括:如何开发软件以满足对软件日益增长的需求;如何维护数量不断增长的软件。,使用时暴露很多问题,1.软件危机、软件工程,1.3软件危机的原因,1、软件产品规模庞大,结构复杂,给开发和维护带来客观困难。,2、软件开发的管理困难。包括:进度控制困难、质量控制困难、可靠性无法保证。,3、软件开发维护费用急剧上升,威胁计算机应用的扩大。,5、生产方式落后。
4、,6、开发工具原始落后,生产效率提高缓慢。,4、软件开发技术落后。,只注重编译原理、操作系统原理、数据库原理的研究,不注重开发技术的研究,软件规模与复杂性增长了几个数量级,但生产方式仍然采用个体手工开发。,7、开发人员忽视需求分析的重要性,轻视软件维护。,1.软件危机、软件工程,1.4软件危机的解决途径,在目前的计算机硬件条件下,须解决以下问题:,1、应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念。,2、使用好的开发技术和方法,并且不断研究探索更好、更有效的技术和方法。消除在计算机系统早期发展阶段形成的一些错误观念和做法。,4、应该开发和使用好的软件工具,正如机械工具可以
5、“放大”人类的体力一样,软件工具也可以“放大”人类的智力,从而有效提高软件生产率。,3、要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务。,1.软件危机、软件工程,1.5 基本概念:软件、软件工程及软件质量,软件:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件。,1968年,第一届NATO会议提出,软件工程是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用的完善的工程原理。,1993年,IEEE进一步给出软件工程是:把系统的、规范的、可度
6、量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。,定义有多种,但中心思想是把软件当作一种工业产品,要求“采用工程化的原理和方法对软件进行计划、开发和维护。”,软件工程是一门交叉学科,涉及到计算机科学、管理科学、工程学和数学,着重于具体软件系统的研制和建立。,特点:,1、用管理学的原理、方法来进行软件生产管理。,2、用工程学的观点来进行费用估算,制定进度和方案。,3、用数学的方法来建立软件可靠性模型以及分析各种算法和性质。,1.软件危机、软件工程,1.5 基本概念:软件、软件工程及软件质量,软件工程包括三个要素:,方法:即完成软件工程项目的技术手段。,工具:支持
7、软件的开发、管理、文档的生成。,过程:支持软件开发的各个环节的控制、管理。,1.软件危机、软件工程,什么是软件工程过程?,1.5 基本概念:软件、软件工程及软件质量,ISO 9000定义:软件工程过程(Software Engineering Process)是将输入转化为输出的一组彼此相关的资源和活动。,四种基本活动:,P (Plan)软件规格说明。规定软件功能及运行限制,D (Do) 软件开发。产生满足规格说明的软件,C (Check)软件确认。确认软件满足客户要求,A (Action)软件演进。满足客户的变更要求,1.软件危机、软件工程,1.5 基本概念:软件、软件工程及软件质量,1.软
8、件危机、软件工程,软件质量:是软件产品满足规定的和隐含的有关特征和特征的全体,或者说所有描述计算机软件优秀程度的特性的组合。,如何保证开发软件的质量,即软件质量保证(Software Quality Assurance,SQA)是软件工程学的一项重要内容。,软件质量可由以下6个特性来度量:功能性,可靠性,易用性,效率,可维护性,可移植性。,SQA要求:1)采用技术手段保证软件质量。 2)组织技术评审。 3)加强软件测试。 4)推行软件工程标准。 5)对软件质量进行度量。,1.5 基本概念:软件、软件工程及软件质量,软件生存周期,产品生存周期:一种产品从定货开始, 经过设计、制造、调试、使用维护
9、,直到该产品淘汰为止。,软件生存周期是从用户提出开发要求开始,直到该软件报废为止的这段时间,可分为3个时期:计划期、开发期和运行期。,1.软件危机、软件工程,1.6软件的生存周期及开发模型,问题定义,项目说明,可行性研究,可行性分析报告,需求分析,规范说明、初步用户手册,设计,体系结构设计、子规范说明,编码,各模块代码和单元测试,测试,系统测试、测试报告,维护,计划期,开发期,运行期,培训、反馈、维护报告,(瀑布模型),1.软件危机、软件工程,1.6软件的生存周期及开发模型,(其它模型),快速原型法模型-从用户需求出发,快速建立一个原型,使用户通过在文计算机上试用这个原型,初步表达出自己的要求
10、,并通过反复修改、完善,逐步靠近用户的全部需求,最终形成一个完全满足用户要求的新体系。,增量模型螺旋模型智能生存周期模型面向对象生存周期模型,1.软件危机、软件工程,1.6软件的生存周期及开发模型,第三篇 面向过程的软件工程,3.软件需求分析,1.软件危机、软件工程,2.可行性研究,4.软件总体设计,5.软件详细设计,6.软件编码,7.软件测试,8.软件维护,问题定义阶段:,确定软件系统所要解决的任务,分析人员在与用户和部门负责人交流之后,应提出关于问题性质、工程目标和规模的书面报告,即软件系统目标与范围的说明。,确定开发软件的总体目标, 确定开发软件的适用范围, 确定软件与外界之间的接口关系
11、, 确定软件的开发进度、成本和风险的草案, 确定所开发软件与原有系统的兼容程度, 分析系统的可行性, 确定软/硬件的支撑环境,2.可行性研究,即进行可行性研究,可行性研究:,目的在于用最小的代价确定在问题定义阶段确定的系统目标和规模是否现实,所确定的问题是否可以解决,系统方案在经济上、技术上、操作上和法律上是否可以接受。,形成推荐方案,经济:成本-效益论证,技术:是否先进、是否达到目标、技术人员是否具备相应水平,操作:系统的操作方式是否行得通,法律:侵权、违法;合同责任,专利权,版权,背景情况:包括国内外技术水平、历史、现状、市场需求等。 系统描述:包括总体方案、课题分解、关键技术、阶段目标和
12、总体目标、计划、进度等 。 效益分析:包括经费概算、预期经济效益和社会效益等。 技术评估:包括人员配备、设备条件、已有的工作基础等。 管理概要:包括重要的研究成果、说明、建议和影响。 其它相关事项:包括版权、责任以及未来可能发生的变化等。,2.可行性研究,第三篇 面向过程的软件工程,3.软件需求分析,1.软件危机、软件工程,2.可行性研究,4.软件总体设计,5.软件详细设计,6.软件编码,7.软件测试,8.软件维护,需求分析阶段:,将用户的需要(need)转变为对软件的需求(requirement),用户和分析人员双方共同来理解系统的需求,并将共同理解形成一份文件,即软件需求说明书。该阶段主要
13、是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该“做什么”。,特点:,1、用户与开发人员无共同语言,很难进行交流,2、用户很难精确完整地提出它的功能要求,3、需求分析出现错误,将导致整个软件开发的失败,3.软件需求分析,强调“需”,强调“需”,同时追求满足,“需”的实现,需求定义不清楚是整个软件开发失败的重要原因。1994年美国软件专家Grady统计了4个大型计算机系统的软件缺陷分布:,业界有40-20-40规律的说法:需求分析、设计工作量约40%,软件编程只占20%,而测试维护又占40%。,3.软件需求分析,需求分析的主要任务,确定系统的综合要求,范围要求-确定软件的规模及处理
14、的对象和性质。, 功能要求-系统必须完成的数据要求和处理要求,这是最主要的功能要求。包括:数据录入、查询、统计分析、打印报表等主要操作。, 性能要求-一般包括:系统所需的存储空间、系统响应时间、查询速度、数据的精度、系统的可靠性程度等。, 限制和约束要求-说明开发成本、开发周期和可使用的资源等条件对软件开发系统的限制与制约。, 运行要求-系统运行的环境。包括:支持系统运行的操作系统、数据库管理系统、数据通信接口等。,3.软件需求分析,需求分析的主要任务,分析系统的数据需求并建立逻辑模型,需求分析评审-目的是发现需求的错误和缺陷,并修正。因此,评审是进行全面仔细检查,以确认“软件需求规格说明书”
15、。,编写文档资料-经过需求分析,确定了系统必须具有的功能和性能,定义了系统中的数据和数据处理的主要算法。最后将这些分析的结果形成软件需求规格说明书,作为这一阶段的成果以文档的形式记录下来。,因为软件系统本质是信息处理系统,系统处理和产生的信息对软件设计有很大影响。分析系统的数据需求通常用建立数据模型的方法,如E-R图。对上述两项需求结果进行分析,确定系统构成,用图文形式,建立新系统的逻辑模型。通常采用数据流图、数据字典等来描述。,3.软件需求分析,软件需求规格说明书,软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软
16、件开发的重要文档之一。,作用:,1、便于用户与开发人员进行理解和交流,2、作为开发人员进行设计和编程的根据,3、作为软件开发完成后验收的依据,3.软件需求分析,需求说明书包括的内容和书写参考格式如下:,一、概述二、数据描述 数据流图 数据字典 系统接口说明 内部接口三、功能描述 功能 处理说明 设计的限制四、性能描述 性能参数 测试种类 预期的软件响应 应考虑的特殊问题五、参考文献目录六、附录,3.软件需求分析,需求分析的主要工具,在系统需求分析过程中为了准确描述需求,采用的是结构化的分析描述工具。主要有数据流程图(DFD:Data Flow Diagram)、数据字典(DD)、结构化语言、判
17、定表和判定树。,数据流程图是描述数据处理过程的最有力的工具。以图形的方式描述数据处理系统内部数据的工作情况,是结构化分析方法的最主要部分。,数据字典是对DFD中出现的所有数据元素(即系统中的所有数据)进行定义,使DFD中的数据流名字、加工名字和文件名字具有确切的解释。,3.软件需求分析,数据流程图(data flow diagram,简称DFD),用图形的方法来表达数据处理的过程。,主要图形元素,数据流,由一组固定成分的数据组成,是沿箭头方向传送数据的通道。每个数据流都必须有一个名称。该名称写在数据流的箭头旁边。数据流反映了系统中流动的数据,表现的是动态数据的特征。同一个数据流程图中不能有两个
18、数据流名字相同。,3.软件需求分析,主要图形元素,数据存储,数据文件,数据库,数据文件在数据流图中起着暂时保存数据的作用,所以也被称为数据存储。数据文件读文件时数据流的方向由文件指向加工;写文件时数据流的方向由加工指向文件。数据文件反映了系统中静止的数据,表现的是静态数据的特征。,3.软件需求分析,主要图形元素,加工,对数据进行的处理和操作。每个加工也有一个命名,名字应能反映该加工完成的功能。对加工还需要编号,以便查出加工所在位置。,数据源点或终点,表示数据流程图中素出现的数据始发点或终止点。是对数据流程图的外围环境的注释说明。,3.软件需求分析,例:图书馆借书/还书活动的数据流程图,3.软件
19、需求分析,例:学生档案管理系统数据流图,3.软件需求分析,数据流图画法,1.找出系统数据源点和终点:外部实体。,2.找出外部实体的输入与输出数据流。,3.在图的边上画出系统外部实体。,4.从外部实体的输出数据流出发,按照系统逻辑需要,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流,形成数据流的封闭。,5.按照上述步骤,再从各加工出发,画出所需子图。,3.软件需求分析,数据流图示例,用户,操作信息,用户,操作结果,用户,借阅信息,用户,操作信息,书籍信息,查询信息,查询结果,借阅结果,书籍结果,查询信息,查询结果,用户,书库,3.软件需求分析,例:某学院招生考试处理系统,该系统有如下功
20、能:,(1)对考生报送的报名表进行检查;(2)对合格的报名表编写准考证号码,并将准考证返回考生,而后将准许考试的考生名单送往试卷处理中心;(3)对试卷处理中心送来的成绩进行检查,并根据考试管理小组指定的合格标准审定考试合格人员名单;(4)填写考生录取通知单发送考生,对没有通过考试的考生发放考试成绩单。,3.软件需求分析,请同学们自己练习!,3.软件需求分析,3.软件需求分析,3.软件需求分析,3.软件需求分析,数据字典(data dictionary,简称DD),描述数据流程图中全部数据流和文件的详细情况,主要条目,数据流条目:对数据流程图中全部数据流的命名以及定义数据流的含义和内容。,描述一
21、个数据流采用如下几种符号。,3.软件需求分析,例:银行取款业务的数据流图中,存储文件“存折”的DD定义如下:,3.软件需求分析,主要条目,文件条目:对数据流程图中全部文件和记录的定义,内容包括文件名、对文件的说明摘要、数据的组成、数量及存取方式等。,例如: 文件名:学生成绩 内容摘要:某学院学生考试成绩 组成:学院+专业+学号+姓名+课程号(课程名)+考试成绩,3.软件需求分析,主要条目,数据项条目:对每个数据项的定义,包括数据项名称、类型、字长、取值范围及简单描述,类型主要有六种,即字符型(C)、整型(I)、双精度整型(DI)、实型(R)、双精度实型(DR)、逻辑型(L)。简单描述主要说明该
22、项数据的来源和作用。数据项条目也用表的形式表示。,基本加工条目:对基本加工进行的精确描述,例如:登录 IF 号码有效 THEN IF 密码正确 THEN 登录正确 ELSE 提示密码错误 ELSE 身份无效,3.软件需求分析,(a) 数据流条目,(b) 数据存储条目,(c) 数据项条目,(d) 基本加工条目,3.软件需求分析,判定表与判定树,在描述加工逻辑时,如果有一系列逻辑判断,用结构化语言描述就不直观,也不简捷,这时可用判定表或判定树来描述。,判定表是用表格的形式列出在什么条件下作什么处理,一目了然。判定树是以一棵从左向右生长的树型表示来描述在各种条件下要作的事情,树的各个分支表示某种条件
23、,分支的端点表示该分支对应的条件下要作的处理。,3.软件需求分析,例:“检查订货单”的加工逻辑是如果金额超过500元,又未过期,则发出批准单和提货单;如果金额超过500元,但过期了,则不发批准单;如果金额低于500元,则不论是否过期都发出批准单和提货单,在未过期情况下不需发出通知单。,3.软件需求分析,判 定 表,3.软件需求分析,判 定 树,3.软件需求分析,第三篇 面向过程的软件工程,3.软件需求分析,1.软件危机、软件工程,2.可行性研究,4.软件总体设计,5.软件详细设计,6.软件编码,7.软件测试,8.软件维护,软件设计阶段:,将软件需求转换为软件表示。,设计阶段是解决软件系统“如何
24、做?”的问题,也就是软件系统的功能、性能如何实现,最后得到软件设计说明书。设计质量的好坏直接影响到软件系统的可靠性。,目标:,1、提高可维护性。即可读性、可扩充性和可修改性,2、提高可理解性。即结构清晰,层次分明,结构程度高,文档规范化、标准化,3、提高可靠性。包括正确性和健壮性两个方面,4.软件总体设计,软件设计流程图,总体设计,复审,修改,可接受,详细设计,复审,修改,总体设计是为软件系统定义一个逻辑上一致的结构:进行模块划分,建立模块层次结构及模块间的调用关系,设计全局数据结构及数据库,设计系统接口及人机界面等。,详细设计是根据每个模块的功能描述,设计出每个模块的实现算法,以及这些算法的
25、逻辑控制流程,并设计出这些模块所需的局部数据结构。,4.软件总体设计,设计说明书包括的内容和书写参考格式如下:,概述-描述设计工作总的范围,包括系统目标、功能、接口等。,系统结构-用软件结构图说明本系统的模块划分,扼要说明每个模块的功能,分层次地给出各模块之间的控制关系。,数据结构及数据库设计-对整个系统使用的数据结构及数据库进行设计,包括概念结构设计、逻辑结构设计、物理设计。,模块设计-根据模块的功能,用详细设计表示工具描述每个模块的流程,描述每个模块用到的数据结构。,接口设计-包括人机界面设计、外部接口设计等。,4.软件总体设计,软件设计概念和原理,抽象化,对软件系统进行模块设计时,可以有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件 技术 基础 软件工程 课件

链接地址:https://www.31ppt.com/p-1596247.html