知识竞赛-软件工程.ppt
《知识竞赛-软件工程.ppt》由会员分享,可在线阅读,更多相关《知识竞赛-软件工程.ppt(97页珍藏版)》请在三一办公上搜索。
1、软件工程,泉州移动支撑中心林鑫显2010年9月,主要内容,软件工程基础知识软件开发过程软件开发模型面向对象技术统一建模语言(UML)结构化分析方法软件文件标准与规范结构化设计方法和工具过程管理,2,IEEE定义:软件工程是(1)将系统的、严格约束的、可量化的方法应用于软件的开发、运行和维护。即将工程化应用于软件。(2)在(1)中所述方法的研究。,软件工程目的:为建造高质量的软件提供一个框架。软件工程包含:一个过程、一组方法、一系列工具,什么是软件工程,主要内容,软件工程基础知识软件开发过程软件开发模型面向对象技术统一建模语言(UML)结构化分析方法软件文件标准与规范结构化设计方法和工具过程管理
2、,4,可行性分析 需求分析和定义 概要设计 详细设计 编写代码 单元测试 集成测试 系统测试 提交系统 维护,软件开发的几个阶段,1.计划,2.需求分析,3.设计,4.编码,5.测试,6.运行与维护,6,软件开发过程,1.需求分析需求分析是根据客户的要求,清楚地了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。软件产品需求分析是软件开发过程的第一个环节,也是最重要的一个环节。如果需求分析做不好,下面的设计、编程做得再好,客户(用户)也不可能对开发出来的软件产品感到满意。软件产品需求分析的结果要文档化,而且这类文档的描述尽量不要用专业术语,从而使用
3、户能够完全理解需求分析的结果,参与对其复审的过程。,7,软件开发过程,2.设计软件设计是根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等。可以分为概要设计和详细设计,也可以分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、算法设计、界面设计等。设计过程将需求转换成软件表示,设计的结果将作为编码的框架和依据,以提高编码的效率和质量。设计的文档化体现在产品规格说明书(functional specification)、技术设计文档(development design document)和软件配置文档(software configuration document
4、)。,8,软件开发过程,3.编程经过需求分析、设计之后,接下来就是用一种或多种具体的编程工具(如VS.Net,JBuild、Eclipse、Delphi等)进行编码,即将设计转换成计算机可读的形式。如果设计做得好、做得仔细,编程就容易了。4.测试任何编程,免不了存在这样或那样的错误,所以有必要进行软件测试。测试过程集中于软件的内部逻辑保证所有语句都测试到,以及外部功能即引导测试去发现错误,并保证定义好的输入能够产生与预期结果相同的输出。测试按不同的过程阶段分为单元测试、集成测试、功能测试、系统测试、验证测试等。,黑盒测试,黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试
5、中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。,白盒测试,白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行
6、测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。,11,软件开发过程,5.维护从理论上,软件测试的覆盖率不可能做到百分之百,所以软件在交付给用户之后有可能存在某些问题,而且用户的需求会发生变化,特别是开始使用产品之后,对计算机系统有了真正的认识和了解,会提出适用性更好的、功能增强的要求。所以,软件交付之后不可避免地要进行修改、升级等。软件维护复杂、周期长,其成本必然很高。通过提高软件的需求分析、设计和编程的质量,强化软件测试,可以大幅度降低软件的维护成本。,主要内容,软件工程基础知识软件开发过程软件开发模型面向对象技术统一建模语言(UML)结构化分析方法软件文件标准与规范
7、结构化设计方法和工具过程管理,12,13,软件开发模型(模式),软件开发模式大棒模式或边写边改模式瀑布模式原型模式V模式螺旋模式增量模式和跌代模式喷泉模型,14,大棒模式或边写边改模式,大棒模式优点是简单。几乎无计划。项目成员精力都花在开发软件和编写代码上。最终的软件产品是什么样不可知。边写边改模式在大棒模式的基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复。,维护,部署,测试,实现,规范,设计,分析,需求,软件开发瀑布模型,16,使早期的流水线式的软件开发转变为软件工程消除非结构化软件、降低软件复杂度有一套严格的计划、步骤、规格、方法,保证软
8、件产品达到预期的质量要求,软件开发瀑布模型,瀑布模型的缺点:僵化,瀑布模型要求:各阶段要遵守严格的顺序。瀑布模型要求:预先定义并“冻结”软件需求。,实际情况是:软件开发往往在反复实践中完成。实际情况是:某些系统的需求的一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时,18,瀑布模型适用于:,需求改变很小的开发。作为一个架构,来学习软件开发中使用不同的技术:尽管瀑布方法对于实际的开发来说过于简单,但仍包含逻辑顺序的经典阶段,适合于学习。是螺旋模型中的一遍过程。用于开发人员较少的小项目的快速开发。,需要接受一个观点:不可能一次开发出一个软件。,19,软件开发模式-原型模型,在进行了基本
9、需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。一般步骤如下:(1)先定义软件的总体目标,根据已知的需求来规划出可实现的区域。(2)然后是“快速设计”,集中于系统的总体框架、基本功能和直观的输入方式和输出格式等。(3)有了原型,使客户对系统实现哪些具体功能、功能实现到什么程度有更好的理解。开发者可以边开发边评估,不断细化软件的需求,逐步调整原型使其满足客户的要求。这形成一个迭代的过程。,20,原型模型,原型模型的优点:1.使用户能够感受到实际的系统,使开发者
10、能够快速地构造出系统的框架。2.开发者能减少开发中的风险和不确定性。原型模型的缺点:1.原型是粗糙的,没考虑软件总体质量和长期的可维护性。2.开发者常要在实现上的折衷以使得原型能尽快工作。,21,V模型,V模型。由于其模型构图形似字母“V”,故称V模型,是属于线性顺序一类的软件开发模型。特点:将测试和分析设计关系起来,强调反馈,不将问题留到下一步。单元测试所检测代码的开发是否符合详细设计的要求。集成测试所检测此前测试过的各组成部分是否能完好地结合到一起。系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。而验收测试则检测产品是否符合最终用户的需求。,v-模型,23,螺旋模型,螺旋模型
11、,是一个演化软件过程模型,它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来,使得软件增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。,螺旋模型,规范,分析,设计,需求,实现,测试,部署,维护,在完成了一次循环后,就增进了对问题域和解决方案的理解,还使用户参与进来,这样用户就可以更正我们对最终系统中包含的事务或功能的误解。在经过三四遍的开发过程,完成系统后,就可以全面测试和部署系统了。,与瀑布相比,问题少:用户参与整个生命周期;每个人都可以看到开发人员的工作;可以调整改动的次数和每次改动所花的时间;比较适合于软件开发的创新性。,不完美之处:只是把瀑布开发过程进行了
12、三四次,尽管问题越来越小,但并没有消失。不灵活,在经典阶段要按照有序的方式进行。如果发现错误,必须在下一遍开发过程中才能更正。,螺旋模型,26,增量模式和跌代模式,软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要的功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分。先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能
13、或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。,增量模式和跌代模式,在首次交付的系统版本(1.0)中,将包含最基本、最重要的功能。在以后的某个时间交付1.1版本,其中包含附加的功能(替代1.0)。之后,在对整体进行大的修改,交付2.0版本。这将延续至系统的生命周期。能满足不断变化的需求,适应市场的变化。,时间,发布,1.0,1.1,2.0,2.1,喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用面向对象技术的软件开发项目。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部
14、分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。,喷泉模型,1、喷泉模型的优点 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。2、喷泉模型的缺点 由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要
15、大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。,主要内容,软件工程基础知识软件开发过程软件开发模型面向对象技术统一建模语言(UML)结构化分析方法软件文件标准与规范结构化设计方法和工具过程管理,30,31,面向对象技术(Object-Oriented Analysis,OOA),面向对象是一种目前主流的软件工程方法,新的程序设计范型基本技术:使用对象、类、继承、封装、消息等基本概念进行程序设计和实现基本思想:尽可能地运用人类的自然思维方式来构造软件系统。现实世界的问题是由客观实体和实体之间的联系构成的,
16、对象就是客观实体的抽象。,32,面向对象技术的基本观点,客观世界是由对象组成的。具有相同类型数据和相同操作的对象可以归并为一类,对象是类的一个实例。类可以产生对象。类可以派生子类,子类继承父类的特性。对象之间通过消息传递相互联系。软件工程学家认为:面向对象=对象+类+继承+通讯,33,面向对象的系统分析与设计方法-面向对象中的基本概念,对象(Object)/类(Class)抽象(Abstraction)继承(Inheritance)多态性(Polymorphism)封装(Encapsulation)消息(Message)关联(Association)聚集(Aggregation),34,什么是
17、对象?(Object),一个对象代表了一个现实的或虚构的实体自然实体(有形)概念实体(无形),化学过程,生产计划,对象(对象技术围绕对象的概念来建立),对象特征:静态特征和动态特征对象属性:描述对象静态特征的数据项对象操作:是对象动态特征的体现对象之间通过消息通信 一个对象通过向另一个对象发送消息激活某一个功能解决某个问题,面向对象的思考方式是面向问题的结构。,36,什么是类?(Class),类是对象的抽象,它给出了属于该类的全部对象的抽象定义。(从对象产生类)问题域:类是一组具有相同特性和行为的对象的通用定义系统:共同的特性通过属性表现出来(数据)共同的行为通过操作表现出来(功能)类是对象的
18、模板,用它可以产生多个对象,一个具体的对象只是类的一个实例。一个类可以用来声明多个对象,所有对象都有类的数据成员的一个副本,类的成员函数函数则被所有对象所共享。(从类产生对象),37,类和对象的关系,每一个对象都是某一个类的实例每一个类在某一时刻都有零个或更多的实例类是静态的;它们的存在、语义和关系在程序执行前就已经定义好了对象是动态的;它们在程序执行时可以被建立和删除,38,抽象(Abstraction),一个对象是现实世界中一个实体的抽象一个类是一组对象的抽象抽象通过注重主要的、与问题有关的特性,帮助我们处理复杂系统关键在于找出重要的、有关的类,以及每个类中重要、有关的操作和属性,39,继
19、承(Inheritance),子类(特化类、派生类)可以自动拥有父类(基类、泛化类、超类)的属性和操作。例如:“洗衣机”、“冰箱”、“电视机”公共的属性:开关、电线 公共的操作是:开机、关机 则:“家用电器”类是父类“洗衣机”、“冰箱”、“电视机”等是子类继承可以提高软件的可重用性。可以支持多继承。,“家用电器”,40,多态性(Polymorphism),在父类中定义的属性和服务为其子类继承后,可以具有不同的数据类型或表现出不同的行为。如:父类:图形类求面积 子类:三角形求面积 底*高/2 子类:矩形求面积 长*宽虽然都是“求面积”操作,但执行的是不同的行为动作。多态性机制不但为软件的结构设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 知识竞赛 软件工程
三一办公所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。




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