数据库原理及应用教程总结笔记.ppt
《数据库原理及应用教程总结笔记.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用教程总结笔记.ppt(123页珍藏版)》请在三一办公上搜索。
1、知识重点(软件工程部分),一、软件工程基本原理,1.1 软件危机 1.2 软件工程 1.3 软件生命周期1.4 软件过程,软件及软件工程,为什么要讲软件和软件工程只有对软件和软件的开发过程有充分的认识,才能更好的开发出过程受控、质量受控的软件产品。对于软件和软件开发过程的认识是困难的,存在很多困惑,需要对此有深刻的认识。,一些对软件的偏见或误解,软件就是程序,软件开发就是编写程序。编完了程序,就一切OK了。掌握了最新的语言和工具,就能写程序了。软件是灵活的,软件的修改很容易。只要会编程,就能写软件,就是程序员;一个公司,只要召些程序员,就能开发好的软件产品。只要有几个有经验的程序员,再找些兼职
2、的大学生,就能组成一个软件公司。,什么是软件,软件的定义软件是计算机系统中与硬件相互依存的另一部分,软件由三部分组成:程序:在运行时,能提供所希望的功能和性能的指令集数据:使程序能够正确运行的数据文档:描述程序研制过程、方法及使用的文档软件的开发,绝不仅仅是编写程序软件可看做一个信息交换器,产生、管理、获取、修改、显示或传送信息,软件程序,1.1 软件危机,软件危机的介绍随着计算机应用的日益普及,软件数量急剧膨胀软件开发和维护成本越来越大,令人吃惊地高失败的软件开发项目屡见不鲜什么是软件危机、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,1.1 软件危机,软件危机的表现对软
3、件开发成本和进度的估计常常很不准确用户对“已完成的”软件系统不满意的现象经常发生软件产品的质量往往靠不住 软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统总成本中所占的比例逐年上升软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势,1.1 软件危机,软件危机的原因软件规模越来越大,软件复杂度越来越高 软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性没有充分的文档资料(软件配置主要包括程序、文档和数据等)软件可靠性缺少度量的标准,质量无法保证轻视软件维护(维护费用占软件总费用的55%-70%)用户需求没有完整准确的认识,就匆忙着手编写程序(主要原因),1.1
4、软件危机,软件危机的原因软件本身的特点软件开发与维护的方法不正确如何克服软件危机:软件工程概念:软件生命周期,1.1 软件危机,消除软件危机的途径对计算机软件正确认识。(软件不仅仅是程序)推广使用开发软件成功的技术和方法,研究探索更好更有效的技术和方法,消除错误概念和做法。开发和使用更好的软件工具。需要组织管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。,无章法(个人英雄主义)工程项目管理模式(团队合作开发),1.2 软件工程,软件工程1968年秋,提出软件工程IEEE 1993年给出定义:1)将系统化、规范化、可量化的工程原则和方法,应用于软件的开发
5、、运行和维护。2)对1)中方法的理论研究。,1.2 软件工程,概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。软件工程基本原理(开发与维护的指导)用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性,1.2 软件工程,把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称范型(parad
6、igm)。软件工程方法学三个要素:方法、工具和过程。方法是完成软件开发各项任务的技术,回答“如何做”;工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什么做”;过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答“如何控制、协调、保证质量”。目前使用得最广泛的软件工程方法学传统方法学:也称为生命周期方法学或结构化范型。面向对象方法学,1.2 软件工程,传统方法的特点生命周期模型软件过程划分为若干个阶段每个阶段有各自的任务阶段之间有某种顺序性传统方法的缺点当软件规模较大,或对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法
7、学开发出的软件,维护起来通常都很困难。,1.2 软件工程,面向对象方法:对象作为融合数据及在数据之上的操作行为的统一的软件构件。把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为继承。对象彼此间仅能通过发送消息互相联系封装性。,1.2 软件工程,面向对象的特点面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式。用面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程。概念和表示方法上的
8、一致性,阶段间平滑(无缝)过渡。特殊到一般的归纳思维过程;一般到特殊的演绎思维过程。(继承的思想)最终产品中的对象与现实世界中的实体相对应,降低了复杂性,提高了可理解性,简化了软件的开发和维护工作。对象是相对独立的实体,容易在软件产品中重复使用,促进了软件重用。面用对象方法特有的继承性,也进一步提高了面向对象软件的可重用性。,1.3 软件生命周期,软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段,每个阶段有各自的任务。,问题定义(领域分析1)确定要开发软件系统的总目标,必须回答的关键问题是:“要解决的问题是什么”。,2023/6/21,大连理工大学软件
9、学院,19,2.可行性研究(领域分析2,问题背景)给出功能、性能、可靠性以及接口等方面的要求估计可利用的资源(计算机硬件、软件、人力等)、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,回答的关键问题是:“上一个阶段所确定的问题是否有行得通的解决办法”。,2023/6/21,20,3.需求分析对待开发软件提出的需求进行分析并给出详细的定义用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明(specification)。提交管理机构评审,仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”。,了解问题,不能准确表达,不知道怎样利用
10、计算机实现,了解软件实现,不清楚用户要求,与用户配合,充分交流,得出系统需求,需求分析,概要设计概括地回答“怎样实现目标系统?”这个问题。概要设计又称为初步设计、逻辑设计、高层设计或总体设计。可以给出实现目标系统的几种可能的方案。另一项主要任务是设计程序的体系结构,即确定程序由哪些模块组成以及模块间的关系。详细设计任务是把解法具体化,回答“应该怎样具体地实现这个系统”这个关键问题。还不是编写程序,而是设计出程序的详细规格说明。又称为模块设计、物理设计或低层设计。,编码和单元测试关键任务是写出正确的容易理解、容易维护的程序模块,并测试。综合测试关键任务是通过各种类型的测试(及相应的调试)使软件达
11、到预定的要求。主要包括:集成测试和验收测试分析系统的可靠性记录测试计划、详细测试方案及实际测试结果,作为软件配置的一部分。,软件维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有四类维护活动改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。,1.4 软件过程,在实际软件开发时,软件规模、种类、开发环境及开发时使用的技术方法等因素,影响阶段的划分。,软件开发,软件维护,软件定义,生命周期模型规定了把生命周期划分成哪些
12、阶段及各个阶段的执行顺序,因此,也称为过程模型。,瀑布模型,在20世纪80年代之前,唯一被广泛采用的生命周期模型现在仍然是软件工程中应用得最广泛的过程模型。,瀑布模型,传统的瀑布模型开发软件特点:阶段间具有顺序性和依赖性前一阶段完成后开始后一阶段前一阶段输出作为后一阶段输入,瀑布模型,传统的瀑布模型开发软件特点:推迟实现不可急于求成清楚地区分逻辑设计与物理实现尽可能推迟程序的物理实现,瀑布模型,传统的瀑布模型开发软件特点:质量保证每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审,瀑布模型,不希望有“变化”变化来的越晚,付出的代价越高。设计阶段过多的假设,导致理想化、一厢情愿
13、的东西过多。,瀑布模型,传统的瀑布模型,实际的瀑布模型,瀑布模型,带“反馈环”(实线箭头表示开发过程,虚线箭头表示维护过程)发现错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再继续完成后面阶段的任务。,瀑布模型,优点:一定程度解决“变化”的问题。缺点:文档驱动,完全依赖书面文字。,快速原型模型,快速建立起可以在计算机上运行的程序,其功能往往是最终产品功能的子集。模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户试用,通过实践来了解目标系统的概貌。(实线箭头表示开发过程,虚线箭头表示维护过程)。,快速原型模型,用户试用提出修改意见快速地修改原型系统用户再次试用一
14、旦用户认为原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。,快速原型模型,快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。(原型通常没有严格的规范化,缺少文档,难以维护),快速原型模型,增量模型,每个构件由多个相互作用的模块构成,并且能够完成特定的功能。第一个增量构件往往实现软件的基本需求,提供最核心的功能。(滚雪球方式),增量模型,也称渐增模型。把软件产品作为一系列的增量构件来设计、编码、集成和测试。,增量模型
15、,增量模型:逐步增加系统功能。较短时间内提交可以工作的产品。减少全新产品带给客户的冲击。困难:需要开放的架构设计。,瀑布、快速原型:力求一次性给用户完整的系统。,实现各个构件之前完成全部需求分析、规格说明、概要设计。,螺旋模型,应采取适当措施消除或减少开发软件时的风险。螺旋模型的基本思想:使用原型及其他方法来尽量降低风险。可以理解为在每个阶段之前都增加了风险分析过程的快速原型模型。,螺旋模型,带箭头的点划线的长度代表当前累计的开发费用。螺线旋过的角度值代表开发进度。每周期对应一个开发阶段,螺旋模型,优点:对可选方案和约束条件的强调有利于软件的重用,也有助于把软件质量作为软件开发的目标减少过多测
16、试或测试不足带来的风险维护作为开发的一个周期,与开发没有本质区别风险驱动:及时终止项目适用于内部开发的大规模软件项目弱点:风险驱动:需要专业的风险评估人员,花费风险分析的费用,喷泉模型,迭代是软件开发过程中普遍存在的一种内在属性。软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。喷泉模型是典型的面向对象生命周期模型。,喷泉模型,面向对象方法:围绕面向问题的“对象”展开,分析、设计、编码不存在明显的边界。圆圈重叠:开发活动之间存在交迭。向下箭头:阶段内的迭代(求精)。概念和表示方法的一致性:保证无缝过渡。体现了面向对象软件开发过程迭代和无缝的特
17、性。,喷泉模型,把一个线性过程作为总目标避免开发过程过分无序。快速原型模型图中的中心垂线,思考题,假设要你开发一个软件,该软件的功能是把读入的浮点数开平发,所得结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明理由。,思考题,答案:瀑布模型。需求明确、算法成熟,无需通过原型来分析需求。实现之后即被抛弃,无需使用有助于提高软件可维护性的增量模型或螺旋模型。,2023/6/21,49,思考题,假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布
18、。你打算采用哪种软件生命周期模型?请说明理由。,2023/6/21,50,思考题,2、增量模型。时间紧,需要选择能够加速产品开发的模型,增量模型可以实现任务并行。开发软件的新版本,旧版本即相当于原型。已经被广泛应用,以后可能扩充,体系结构设计成开放式。,二、可行性研究,2.1 可行性研究的任务2.2 可行性研究过程2.3 系统流程图2.4 数据流图,许多问题不可能在预定的系统规模或时间期限内解决目的:使用最小的代价,尽可能在短的时间内,确定问题是否能够解决,2.1 可行性研究的任务,确定问题是否值得去解分析可能的解法判定系统规模和目标是否能够实现效益是否可观较高层次的系统分析和设计过程,2.1
19、 可行性研究的任务,进一步分析和澄清“问题定义”是否正确如有错误加以改正如有约束和限制必须清楚的列出导出系统逻辑模型探索实现方案(若干种)每种方案分别研究可行性,2.1 可行性研究的任务,可行性的4个方面技术可行性经济可行性操作可行性法律可行性预期工程总成本的5%10%,3.1 需求分析的任务,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。,软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别分析与综合编写需求分析文档需求分析评审,结构化设计,传统的软件工程方法学采用结构化设计(Structured Design,SD)技术完成软件设计
20、工作,分为两阶段。总体设计(概要设计、初步设计)详细设计总体设计基本目的:概括地说,系统应该如何实现。划分系统的物理元素程序、文件、数据库、人工过程、文档。设计软件的结构每个程序由哪些模块组成,这些模块相互间的关系,结构化设计与结构化分析关系,软件设计必须依据对软件的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息。,分析模型的每个元素都提供了创建设计模型时所需要的信息。下图描绘了软件设计过程中的信息流。由数据模型、功能模型和行为模型清楚地表示的软件需求被传送给软件设计者,他们使用适当的设计方法完成数据设计、体系结构设计、接口设计和过程设计。,结构化设计与结构化分析关系,在软件设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 教程 总结 笔记
链接地址:https://www.31ppt.com/p-5270361.html