知识竞赛软件工程课件_第1页
知识竞赛软件工程课件_第2页
知识竞赛软件工程课件_第3页
知识竞赛软件工程课件_第4页
知识竞赛软件工程课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、知识竞赛软件工程软件工程软件工程泉州移动支撑中心Email:2010年9月知识竞赛软件工程2主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程IEEEIEEE定义:定义:软件工程是软件工程是 (1 1)将)将系统的系统的、严格约束的严格约束的、可量化的可量化的方法应用于软方法应用于软件的开发、运行和维护。即将工程化应用于软件。件的开发、运行和维护。即将工程化应用于软件。 (2 2)在()在(1 1)中所述方法的研究。)中所述方法的研究。软件工程软件工程目的目的:

2、为建造高质量的软件提供一个框架。:为建造高质量的软件提供一个框架。软件工程软件工程包含包含:一个过程一个过程、一组方法一组方法、一系列工具一系列工具什么是软件工程知识竞赛软件工程4主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程 可行性分析可行性分析 需求分析和定义需求分析和定义 概要设计概要设计 详细设计详细设计 编写代码编写代码 单元测试单元测试 集成测试集成测试 系统测试系统测试 提交系统提交系统 维护维护软件开发的几个阶段软件开发的几个阶段1.1.计划

3、计划2.2.需求分析需求分析3.3.设计设计4.4.编码编码5.5.测试测试6.6.运行与维护运行与维护知识竞赛软件工程6软件开发过程软件开发过程1. 需求分析需求分析是根据客户的要求,清楚地了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。软件产品需求分析是软件开发过程的第一个环节,也是最重要的一个环节。如果需求分析做不好,下面的设计、编程做得再好,客户(用户)也不可能对开发出来的软件产品感到满意。软件产品需求分析的结果要文档化,而且这类文档的描述尽量不要用专业术语,从而使用户能够完全理解需求分析的结果,参与对其复审的过程。 知识竞赛软件工程7

4、软件开发过程软件开发过程2. 设计软件设计是根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等。可以分为概要设计和详细设计,也可以分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、算法设计、界面设计等。设计过程将需求转换成软件表示,设计的结果将作为编码的框架和依据,以提高编码的效率和质量。设计的文档化体现在产品规格说明书(functional specification)、技术设计文档(development design document)和软件配置文档(software configuration document)。知识竞赛软件工程8软件开发过程软件开发过

5、程3. 编程经过需求分析、设计之后,接下来就是用一种或多种具体的编程工具(如VS.Net,JBuild、Eclipse、Delphi等)进行编码,即将设计转换成计算机可读的形式。如果设计做得好、做得仔细,编程就容易了。4. 测试任何编程,免不了存在这样或那样的错误,所以有必要进行软件测试。测试过程集中于软件的内部逻辑保证所有语句都测试到,以及外部功能即引导测试去发现错误,并保证定义好的输入能够产生与预期结果相同的输出。测试按不同的过程阶段分为单元测试、集成测试、功能测试、系统测试、验证测试等。知识竞赛软件工程黑盒测试黑盒测试 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在

6、测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。知识竞赛软件工程白盒测试白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测

7、试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。知识竞赛软件工程11软件开发过程软件开发过程5. 维护从理论上,软件测试的覆盖率不可能做到百分之百,所以软件在交付给用户之后有可能存在某些问题,而且用户的需求会发生变化,特别是开始使用产品之后,对计算机系统有了真正的认识和了解,会提出适用性更好的、功能增强的要求。所以,软件交付之后不可避免地要进行修改、升级等。软件维护复杂、周期长,其成本必然很高。通过提高软件的需求分析、设计和编程的质量,强化软件测试,可以大幅度降低软件的维护成本。知识竞赛软件工程12主要内容主要内容 软件工程基础知识 软件开发

8、过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程13软件开发模型(模式)软件开发模型(模式) 软件开发模式 大棒模式或边写边改模式 瀑布模式 原型模式 V模式 螺旋模式 增量模式和跌代模式 喷泉模型知识竞赛软件工程14大棒模式或边写边改模式大棒模式或边写边改模式 大棒模式优点是简单。几乎无计划。项目成员精力都花在开发软件和编写代码上。最终的软件产品是什么样不可知。 边写边改模式在大棒模式的基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复。知识竞赛软件工程

9、维护维护部署部署测试测试实现实现规范规范设计设计分析分析需求需求软件开发瀑布模型软件开发瀑布模型 知识竞赛软件工程16 使早期的使早期的流水线式流水线式的软件开发转变为软件工程的软件开发转变为软件工程 消除非结构化软件、降低软件复杂度消除非结构化软件、降低软件复杂度 有一套严格的计划、步骤、规格、方法,保证软有一套严格的计划、步骤、规格、方法,保证软件产品达到预期的质量要求件产品达到预期的质量要求软件开发瀑布模型软件开发瀑布模型 知识竞赛软件工程瀑布模型的缺点:僵化瀑布模型的缺点:僵化 瀑布模型要求:各瀑布模型要求:各阶段要遵守阶段要遵守严格的严格的顺序顺序。 瀑布模型要求:预瀑布模型要求:预

10、先定义并先定义并“冻结冻结”软件需求。软件需求。 实际情况是:软件实际情况是:软件开发往往在开发往往在反复反复实实践中完成。践中完成。 实际情况是:某些实际情况是:某些系统的需求的一个系统的需求的一个逐渐明确逐渐明确的过程,的过程,且预先定义的需求且预先定义的需求到软件完成时可能到软件完成时可能已经过时已经过时知识竞赛软件工程18瀑布模型适用于:瀑布模型适用于:需求改变很小的开发。需求改变很小的开发。作为一个架构,来学习软件开发中使用不同的技术:尽管作为一个架构,来学习软件开发中使用不同的技术:尽管瀑布方法对于实际的开发来说过于简单,但仍包含逻辑顺瀑布方法对于实际的开发来说过于简单,但仍包含逻

11、辑顺序的经典阶段,序的经典阶段,适合于学习适合于学习。是是螺旋模型螺旋模型中的一遍过程。中的一遍过程。用于开发人员较少的小项目的快速开发。用于开发人员较少的小项目的快速开发。需要接受一个观点:需要接受一个观点:不可能一次开发出一个软件不可能一次开发出一个软件。知识竞赛软件工程19软件开发模式软件开发模式 - - 原型模型原型模型 在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。 一般步骤如下: (1) 先定义软件的总体目标,根据已知的需求来规划出

12、可实现的区域。 (2) 然后是“快速设计”,集中于系统的总体框架、基本功能和直观的输入方式和输出格式等。 (3) 有了原型,使客户对系统实现哪些具体功能、功能实现到什么程度有更好的理解。开发者可以边开发边评估,不断细化软件的需求,逐步调整原型使其满足客户的要求。这形成一个迭代的过程。知识竞赛软件工程20原型模型原型模型原型模型的优点: 1.使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。 2.开发者能减少开发中的风险和不确定性。原型模型的缺点: 1.原型是粗糙的,没考虑软件总体质量和长期的可维护性。 2.开发者常要在实现上的折衷以使得原型能尽快工作。知识竞赛软件工程21V V模

13、型模型 V模型。由于其模型构图形似字母“V”,故称V模型,是属于线性顺序一类的软件开发模型。 特点:将测试和分析设计关系起来,强调反馈,不将问题留到下一步。 单元测试所检测代码的开发是否符合详细设计的要求。 集成测试所检测此前测试过的各组成部分是否能完好地结合到一起。 系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。而验收测试则检测产品是否符合最终用户的需求。 知识竞赛软件工程v-v-模型模型知识竞赛软件工程23螺旋模型螺旋模型 螺旋模型,是一个演化软件过程模型,它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来,使得软件增量版本的快速开发成为可能。在螺旋模型中,软件开发

14、是一系列的增量发布。知识竞赛软件工程螺旋模型螺旋模型 规范规范分析分析设计设计需求需求实现实现测试测试部署部署维护维护在完成了一次循环后,就增进了对问题域和解决方案的理解,还使用户参与进来,这样用户就可以更正我们对最终系统中包含的事务或功能的误解。在经过三四遍的开发过程,完成系统后,就可以全面测试和部署系统了。知识竞赛软件工程与瀑布相比,问题少:与瀑布相比,问题少:用户参与整个生命周期;用户参与整个生命周期;每个人都可以看到开发人员每个人都可以看到开发人员的工作;的工作;可以调整改动的次数和每次可以调整改动的次数和每次改动所花的时间;改动所花的时间;比较适合于软件开发的创新比较适合于软件开发的

15、创新性。性。不完美之处:不完美之处:只是把瀑布开发过程进行了只是把瀑布开发过程进行了三四次,尽管问题越来越小,三四次,尽管问题越来越小,但并没有消失。但并没有消失。不灵活,在经典阶段要按照不灵活,在经典阶段要按照有序的方式进行。有序的方式进行。如果发现错误,必须在下一如果发现错误,必须在下一遍开发过程中才能更正。遍开发过程中才能更正。螺旋模型螺旋模型知识竞赛软件工程26增量模式和跌代模式增量模式和跌代模式 软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。 增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要的功能,然后,随着时间推进,不断增加新的辅

16、助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。 迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分。先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。知识竞赛软件工程增量模式和跌代模式增量模式和跌代模式在首次交付的系统版本(在首次交付的系统版本(1.01.0)中,将包含最基本、最重要)中,将包含最基本、最重要的功能。在以后的某个时间交付的功能。在以后的某个时间交付1.11.

17、1版本,其中包含附加的版本,其中包含附加的功能(替代功能(替代1.01.0)。之后,在对整体进行大的修改,交付)。之后,在对整体进行大的修改,交付2.02.0版本。这将延续至系统的生命周期。版本。这将延续至系统的生命周期。能满足不断变化的需求,适应市场的变化。能满足不断变化的需求,适应市场的变化。时间发布1.01.12.02.1知识竞赛软件工程喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用面向对象技术的软件开发项目。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活

18、动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。喷泉模型喷泉模型知识竞赛软件工程 1 1、喷泉模型的优点、喷泉模型的优点 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。 2 2、喷泉模型的缺点、喷泉模型的缺点 由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因

19、此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。知识竞赛软件工程30主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程31面向对象技术面向对象技术(Object-Oriented Analysis,OOA)(Object-Oriented Analysis,OOA) 面向对象是一种目前主流的软件工程方法,新的面向对象是一种目前主流的软件工程方法,新的程序设计范型程序设计范型 基本技术:使用基

20、本技术:使用对象、类、继承、封装、消息对象、类、继承、封装、消息等等基本概念进行程序设计和实现基本概念进行程序设计和实现 基本思想:尽可能地运用人类的自然思维方式来基本思想:尽可能地运用人类的自然思维方式来构造软件系统。现实世界的问题是由客观实体和构造软件系统。现实世界的问题是由客观实体和实体之间的联系构成的,对象就是客观实体的抽实体之间的联系构成的,对象就是客观实体的抽象。象。知识竞赛软件工程32面向对象技术的基本观点面向对象技术的基本观点 客观世界是客观世界是由对象组成由对象组成的。的。 具有相同类型数据和相同操作的对象可以归并为一类,具有相同类型数据和相同操作的对象可以归并为一类,对对象

21、是类的一个实例象是类的一个实例。类可以产生对象。类可以产生对象。 类可以派生子类,子类继承父类的特性。类可以派生子类,子类继承父类的特性。 对象之间通过消息传递相互联系。对象之间通过消息传递相互联系。 软件工程学家软件工程学家认为:认为: 面向对象面向对象= =对象对象+ +类类+ +继承继承+ +通讯通讯知识竞赛软件工程33面向对象的系统分析与设计方法面向对象的系统分析与设计方法 -面向对象面向对象中的基本概念中的基本概念 对象 (Object )/类(Class) 抽象 (Abstraction) 继承 (Inheritance) 多态性(Polymorphism) 封装 (Encapsu

22、lation) 消息 (Message) 关联 (Association) 聚集 (Aggregation)知识竞赛软件工程34什么是对象?(什么是对象?(ObjectObject)一个对象代表了一个现实的或虚构的实体 自然实体(有形) 概念实体(无形)化学过程化学过程生产计划生产计划知识竞赛软件工程对象对象(对象技术围绕对象的概念来建立)(对象技术围绕对象的概念来建立) 对象特征:静态特征和动态特征 对象属性:描述对象静态特征的数据项对象操作:是对象动态特征的体现 对象之间通过消息通信 一个对象通过向另一个对象发送消息激活某一个功能 解决某个问题,面向对象的思考方式是面向问题的结构。知识竞赛

23、软件工程36什么是类?(什么是类?(ClassClass)类是对象的抽象类是对象的抽象,它给出了属于该类的全部对象的抽象定义。(从对,它给出了属于该类的全部对象的抽象定义。(从对象产生类)象产生类) 问题域:类是一组具有问题域:类是一组具有相同特性和行为的对象相同特性和行为的对象的通用定义的通用定义 系统:系统: 共同的特性通过共同的特性通过属性属性表现出来表现出来 (数据数据) 共同的行为通过共同的行为通过操作操作表现出来表现出来 (功能功能)类是对象的模板,用它可以类是对象的模板,用它可以产生多个对象产生多个对象,一个具体的对象只是,一个具体的对象只是类的类的一个实例一个实例。一个类可以用

24、来声明多个对象,所有对象都有类的数据成。一个类可以用来声明多个对象,所有对象都有类的数据成员的一个副本,类的成员函数函数则被所有对象所共享。员的一个副本,类的成员函数函数则被所有对象所共享。 (从类产生(从类产生对象)对象)知识竞赛软件工程37类和对象的关系类和对象的关系 每一个对象都是某一个类的实例每一个对象都是某一个类的实例 每一个类在某一时刻都有零个或更多的实例每一个类在某一时刻都有零个或更多的实例 类是静态的类是静态的; ; 它们的存在、语义和关系在程序执它们的存在、语义和关系在程序执行前就已经定义好了行前就已经定义好了 对象是动态的对象是动态的; ; 它们在程序执行时可以被建立和它们

25、在程序执行时可以被建立和删除删除知识竞赛软件工程38抽象抽象( AbstractionAbstraction ) 一个对象是现实世界中一个实体的抽象一个对象是现实世界中一个实体的抽象 一个类是一组对象的抽象一个类是一组对象的抽象 抽象通过注重主要的、与问题有关的特性,帮助我们处理抽象通过注重主要的、与问题有关的特性,帮助我们处理复杂系统复杂系统 关键在于找出重要的、有关的关键在于找出重要的、有关的类类,以及每个类中重要、有,以及每个类中重要、有关的关的操作操作和和属性属性知识竞赛软件工程39继承继承(InheritanceInheritance) 子类(特化类、派生类)可以自动拥有父类(基类、

26、子类(特化类、派生类)可以自动拥有父类(基类、泛化类、超类)的属性和操作。泛化类、超类)的属性和操作。 例如例如: : “洗衣机洗衣机”、“冰箱冰箱”、“电视机电视机” 公共的属性:公共的属性: 开关、电线开关、电线 公共的操作是:开机、关机公共的操作是:开机、关机 则则: : “家用电器家用电器”类是父类类是父类 “洗衣机洗衣机”、“冰箱冰箱”、“电视机电视机”等是子类等是子类 继承可以提高软件的可重用性继承可以提高软件的可重用性。 可以支持多继承。可以支持多继承。 知识竞赛软件工程40多态性多态性(PolymorphismPolymorphism)在父类中定义的属性和服务为其子类继承后,可

27、以具有不同的数据类在父类中定义的属性和服务为其子类继承后,可以具有不同的数据类型或表现出不同的行为。型或表现出不同的行为。如:如: 父类:图形类求面积父类:图形类求面积 子类:三角形求面积子类:三角形求面积 底底* *高高/2/2 子类:矩形求面积子类:矩形求面积 长长* *宽宽虽然都是虽然都是“求面积求面积”操作,但执行的是不同的行为动作。操作,但执行的是不同的行为动作。多态性机制不但为软件的结构设计多态性机制不但为软件的结构设计提供了灵活性提供了灵活性,减少信息冗余减少信息冗余,而,而且显著提高了软件的且显著提高了软件的可复用性可复用性和和可扩充性可扩充性。知识竞赛软件工程41封装封装(E

28、ncapsulationEncapsulation) 将属性和操作包装成一个单元,使得对状态的访将属性和操作包装成一个单元,使得对状态的访问和修改只能问和修改只能通过封装提供的接口通过封装提供的接口进行。进行。 封装体现了面向对象方法的封装体现了面向对象方法的“信息屏蔽与局部化信息屏蔽与局部化”的原则。的原则。知识竞赛软件工程42消息消息(MessageMessage) 对象间在交互中所传送的通讯信息。如:电视机,遥控器对象向电视机对象发送消息。在类里面通过生成对象和函数调用来完成消息的传递。知识竞赛软件工程43关联关联(AssociationAssociation) 关联关联:对象之间所存在

29、的联系。:对象之间所存在的联系。联系联系:继承关系(一般与特殊),聚集和组成关系(部:继承关系(一般与特殊),聚集和组成关系(部分与整体)。分与整体)。 知识竞赛软件工程44面向对象分析面向对象分析 问题论域分析 发现和定义对象和类 识别对象的外部联系 建立系统的静态结构模型 建立系统的动态行为模型知识竞赛软件工程45面向对象设计面向对象设计 设计对象与类设计对象与类 设计系统结构设计系统结构 设计问题论域子系统设计问题论域子系统 设计人机交互子系统设计人机交互子系统 设计数据管理子系统设计数据管理子系统 设计任务管理子系统设计任务管理子系统 设计优化,提高系统的性能设计优化,提高系统的性能知

30、识竞赛软件工程46主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程统一建模语言(统一建模语言(UMLUML) UML(Unified Modeling Language)UML(Unified Modeling Language)是一种是一种可视化可视化、标准化标准化的建模语言。的建模语言。 UMLUML支持支持面向对象面向对象的技术和方法。的技术和方法。 UMLUML独立于开发。独立于开发。UMLUML独立于程序设计语言。独立于程序设计语言。 UMLUML并

31、不是万能的,它是一种离散的建模语言,对于特定并不是万能的,它是一种离散的建模语言,对于特定的领域,比如:的领域,比如:GUIGUI、VLSIVLSI电路设计或基于规则的人工智电路设计或基于规则的人工智能,用特定的语言和工具可能更合适能,用特定的语言和工具可能更合适知识竞赛软件工程48UMLUML的目标的目标 最重要目标最重要目标:为面向对象软件设计提供统一的、为面向对象软件设计提供统一的、标准标准的、的、可视化可视化的建模语言。的建模语言。 UMLUML的另一个目标是:能尽量的另一个目标是:能尽量简洁简洁地表达系统的模地表达系统的模型。型。知识竞赛软件工程UMLUML模型的概念和表示法模型的概

32、念和表示法 UMLUML提供提供3 3种基本标准模型建筑块:种基本标准模型建筑块: 事物事物:模型的元素:模型的元素 结构性事物:对象类、结构性事物:对象类、 Use Case(Use Case(用例用例) )、接口、组件、接口、组件、节点等节点等 行为性事物:行为性事物: 交互、状态机、活动等交互、状态机、活动等 成组性事物:包成组性事物:包 注释性事物:注释注释性事物:注释 联系联系:模型建筑块之间的基本联系:模型建筑块之间的基本联系 依赖、关联、聚合、继承、实现依赖、关联、聚合、继承、实现 图形图形:模型元素:模型元素/ /联系联系 集合的可视化表示集合的可视化表示 类图、对象图、类图、

33、对象图、Use CaseUse Case图、顺序图、协图、顺序图、协作作图、状态图、图、状态图、活动图活动图、包图、包图、组件图、配置图。、组件图、配置图。知识竞赛软件工程50类图类图:表达类、接口,以及它们之间的联系。:表达类、接口,以及它们之间的联系。 类的图标由类的图标由类名类名、类的属性类的属性、类的操作类的操作三部分组成。三部分组成。 类图就是由这些类框和表明类图就是由这些类框和表明类之间关联的连线所组成。类之间关联的连线所组成。Washing Machinebrand namemodel nameserial numbercapacityadd clothes()add deter

34、gent()remove clothes()学生学生本科生本科生研究生研究生Washing Machine. 知识竞赛软件工程51对象图对象图:表达对象及它们之间的联系。:表达对象及它们之间的联系。 对象是类的一个实例,是具有具体值和行为的一个具体事对象是类的一个实例,是具有具体值和行为的一个具体事物。物。 对象图标和类基本一样,但对象图标和类基本一样,但对象名下面要带下划线对象名下面要带下划线,实例,实例名位于冒号的左边,该实例所属的类名位于冒号的右边。名位于冒号的左边,该实例所属的类名位于冒号的右边。My Washer:Washing Machine:Washing MachingMy W

35、asher知识竞赛软件工程52用例图用例图:Use CaseUse Case图表达图表达用例用例、活动者活动者和它们之和它们之 间的联系。间的联系。 用例(用例(Use CaseUse Case)是从)是从用户的观点用户的观点对系统行为的对系统行为的一个描述。一个描述。选课功能选课功能学生学生知识竞赛软件工程53状态图状态图:状态图表示对象的有序事件行为状态图表示对象的有序事件行为 以及所处的状态。以及所处的状态。 在任一给定的时刻,在任一给定的时刻,一个对象总是处于一个对象总是处于某一特定的状态。某一特定的状态。浸泡浸泡洗涤洗涤漂洗漂洗脱水脱水知识竞赛软件工程54顺序图顺序图: :表达一组对

36、象以及这些对象发出与接受消息,表达一组对象以及这些对象发出与接受消息, 重点在消息的时间顺序上。重点在消息的时间顺序上。 在一个运行的系统中,对象之间要发生交互,并且这些交在一个运行的系统中,对象之间要发生交互,并且这些交互要经历一定的时间。互要经历一定的时间。UMLUML顺序图所表达的正是这种基于顺序图所表达的正是这种基于时间的动态交互。时间的动态交互。知识竞赛软件工程55顺序图顺序图洗衣过程洗衣过程 进水管进水管洗涤缸洗涤缸排水管排水管注入新水注入新水保持静止保持静止停止注水停止注水往返旋转往返旋转排掉洗涤后的脏水排掉洗涤后的脏水注入新水注入新水往返旋转往返旋转排掉漂洗过的水排掉漂洗过的水

37、单向旋转单向旋转停止转动停止转动停止注水停止注水知识竞赛软件工程56活动图活动图: :表达系统内的活动流,重点在对象之间的表达系统内的活动流,重点在对象之间的 控制流。控制流。 活动图是系统的一种行为视图,它描述参与行为的对象类活动图是系统的一种行为视图,它描述参与行为的对象类的活动的顺序。的活动的顺序。洗涤缸往返旋转洗涤缸往返旋转15分钟分钟排掉脏水排掉脏水重新入新水注重新入新水注知识竞赛软件工程57协作图协作图: :表达一组对象、对象之间的连接,以及对象发表达一组对象、对象之间的连接,以及对象发 出和接受的消息,重点在对象的结构组织出和接受的消息,重点在对象的结构组织方面。方面。 系统的各

38、组成元素必须系统的各组成元素必须相互协作相互协作来完成系统的工作目标,来完成系统的工作目标,建模语言必须具备这种协作关系的表达方式,协作图为建模语言必须具备这种协作关系的表达方式,协作图为此目的而设。此目的而设。内部计时器内部计时器洗涤缸洗涤缸进水管进水管1.停止注水2.往返旋转洗涤缸洗涤缸进水管进水管知识竞赛软件工程58组件图(构件图)组件图(构件图)表达组件及它们表达组件及它们 之间的联系。之间的联系。 组件是逻辑事物的组件是逻辑事物的物理包物理包,组件图表示系统中的不同的物,组件图表示系统中的不同的物理组件及其联系,它表达的是系统代码本身的结构。理组件及其联系,它表达的是系统代码本身的结

39、构。组件组件知识竞赛软件工程59配置图(部署图)配置图(部署图)表达物理节点及它们之间的联系。表达物理节点及它们之间的联系。 配置图用来描述配置图用来描述计算机和设备计算机和设备,展示它们之间的连接,以,展示它们之间的连接,以及驻留在每台机器中的软件。及驻留在每台机器中的软件。知识竞赛软件工程60UMLUML三大类型的图三大类型的图 收集系统需求收集系统需求:Use CaseUse Case图(用例图)图(用例图) 静态结构图静态结构图:类图、对象图、包图、组件图、配:类图、对象图、包图、组件图、配置图置图 动态行为图动态行为图:顺序图、协同图、状态图、活动图:顺序图、协同图、状态图、活动图在

40、建立系统模型时可以根据需要选择不同的图,把它们在建立系统模型时可以根据需要选择不同的图,把它们组织成不同的视图,分别表达系统的某一方面的特征。组织成不同的视图,分别表达系统的某一方面的特征。知识竞赛软件工程61主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程结构化分析方法结构化分析方法 数据流图(DFD) 数据字典(DD) 实体关系图(E-R图)知识竞赛软件工程数据流图数据流图 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度

41、,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。知识竞赛软件工程知识竞赛软件工程数据流图方法步骤示例数据流图方法步骤示例 商店业务处理系统商店业务处理系统知识竞赛软件工程 这个数据流图只是一个这个数据流图只是一个高层高层的系统逻辑模型,的系统逻辑模型,它反映了目标系统它反映了目标系统要实现的功能要实现的功能 数据流图绘制步骤数据流图绘制步骤u 首先确定系统的首先确定系统的输入和输出输入和输出u 根据商店业务,画出根据商店业务,画出顶层数据流图顶层数据流图,以反映最主要,以反映最主要业务处理流程业务处理

42、流程u经过分析,商店业务处理的主要功能应当有销经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。点和输出终点是顾客和供应商。u然后从输入端开始,根据商店业务工作流程,然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图,得到第一层数据流图知识竞赛软件工程第一层数据流图第一层数据流图知识竞赛软件工程加细每一个加工框加细每一个加工框 销售细化销售细化知识竞赛软件工程数据字典数据字典 数据字典(Data dictio

43、nary)是一种用户可以访问的记录数据库和应用程序元数据的目录。 数据字典的组成: 1、数据项 2、数据结构 3、数据流 4、数据存储 5、处理过程 数据库的重要部分是数据字典。它存放有数据库所用的有关信息,对用户来说是一组只读的表。知识竞赛软件工程70的基本概念的基本概念 实体(Entity) 属性(Attribute) 联系( Relationship)知识竞赛软件工程71基本概念实体(基本概念实体(EntityEntity) 客观存在并且可以相互区别的“事物”称为实体。 实体可以是可触及的对象,如一个学生,一本书,一辆汽车;也可以是抽象的事件,如学生的一次选课、老师与系的工作关系等。知识

44、竞赛软件工程72基本概念属性(基本概念属性(AttributeAttribute) 实体的某一特性称为属性。一个实体可以由若干个属性来刻画。 如学生实体有学号、姓名、年龄、性别、系等方面的属性。 属性有“型”和“值”之分,“型”即为属性名,如姓名、年龄、性别是属性的型;“值”即为属性的具体内容,如(990001,张三,20,男,信息系)这些属性值的集合表示了一个学生实体。知识竞赛软件工程73基本概念联系(基本概念联系(RelationshipRelationship) 在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来, 在信息世界中将被抽象为实体型内部的联

45、系和实体型之间的联系。 实体内部的联系通常是指组成实体的各属性之间的联系; 实体之间的联系通常是指不同实体集之间的联系。知识竞赛软件工程74联系的分类联系的分类 实体型之间的联系 一对一联系(1:1) 一对多联系(1:n) 多对多(m:n)知识竞赛软件工程75一对一联系(一对一联系(1:11:1) 实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系。记作1:1。 如:班级与班长,观众与座位,病人与床位。知识竞赛软件工程76一对多联系(一对多联系(1:n1:n) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实

46、体集A中的一个实体相对应。记作1:n。 如:班级与学生、公司与职员、省与市。知识竞赛软件工程77多对多(多对多(m:nm:n) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。 如:学生与课程,工厂与产品。知识竞赛软件工程78E-RE-R图的表示方法图的表示方法 用矩形表示实体,在长方形框内写上实体名。 用椭圆形表示实体或联系的属性。用无向边把实体和它包含的属性连接在一起。 用菱形表示实体间联系,菱形框内写上联系名。用无向边把菱形和有关实体相连接,在无向边旁标上联系的类型,如1、M或N等。知识竞赛软件工程79学生选修课程

47、学生选修课程学生学生课程课程选修选修姓名姓名学号学号系别系别课程名课程名先修课先修课学分学分成绩成绩用矩形表示实体集,用矩形表示实体集,在框内写上实体名在框内写上实体名用椭圆表示实体的用椭圆表示实体的属性属性用无向边把用无向边把实体与其属实体与其属性连接起来性连接起来用菱形表示实体间用菱形表示实体间的联系的联系将参与联系的实体用将参与联系的实体用线段连接线段连接mn联系的联系的数量数量知识竞赛软件工程80主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识竞赛软件工程81软件

48、文件标准与规范软件文件标准与规范国家标准计算机软件产品开发文件编制指南是一份指导性文件。它建议在软件的开发过程中编制下述14个文件。即: 可行性研究报告 操作手册 项目开发计划 模块开发卷宗 软件需求说明书 测试计划 数据要求说明书 测试分析报告 总体设计说明书 开发进度表 详细设计说明书 项目开发总结。 数据库设计说明书 用户手册该指南给出了这14个文件的编制提示,它同时也是这14个文件编写质量的检验准则。知识竞赛软件工程标准化知识标准化知识 国际标准国际标准 国际标准是指国际标准化组织(ISO)、国际电工委员会(IEC)和国际电信联盟(ITU)制定的标准,以及国际标准化组织确认并公布的其他

49、国际组织制定的标准。 国家标准国家标准 国家标准是指由国家标准化主管机构批准发布,对全国经济、技术发展有重大意义,且在全国范围内统一的标准。 行业标准行业标准 由我国各主管部、委(局)批准发布,在该部门范围内统一使用的标准,称为行业标准。 企业标准企业标准 企业标准是对企业范围内需要协调、统一的技术要求,管理要求和工作要求所制定的标准。企业标准由企业制定,由企业法人代表或法人代表授权的主管领导批准、发布。知识竞赛软件工程83主要内容主要内容 软件工程基础知识 软件开发过程 软件开发模型 面向对象技术 统一建模语言(UML) 结构化分析方法 软件文件标准与规范 结构化设计方法和工具 过程管理知识

50、竞赛软件工程84结构化设计方法和工具结构化设计方法和工具 1. 1.系统流程图系统流程图 2.HIPO2.HIPO图图 3. 3.控制流程图控制流程图知识竞赛软件工程85系统流程图系统流程图 系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。 系统流程图表达的是部件的信息流程,而不是表示对信息进行加工处理的控制过程。知识竞赛软件工程86HIPOHIPO图图 在层次结构图的基础上推出的一种描述系统结构和模块内部处理功能的图形。HIPO图由层次结构图和IPO图两部分构成,前者描述了整个系统的设计结构以及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论