软件课程设计 (2)

上传人:无*** 文档编号:243961370 上传时间:2024-10-01 格式:PPT 页数:40 大小:413KB
返回 下载 相关 举报
软件课程设计 (2)_第1页
第1页 / 共40页
软件课程设计 (2)_第2页
第2页 / 共40页
软件课程设计 (2)_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程课程设计,-,计算机,12,届、软件,12,届,课程设计内容,面向对象软件的开发过程,基于,UML,的面向对象软件开发,软件文件的编写,面向对象软件的开发过程,面向对象软件工程方法的特征与优势,面向对象分析,OOA,面向对象设计,OOD,面向对象编程,OOP,面向对象测试,OOT,自软件工程问世以来,出现了很多种软件工程的方法学。方法、工具和过程是软件工程方法学的三个重要因素。,方法,是指为了完成软件开发的各项任务所采用的技术方法。,工具,是为方法的实行提供的自动或半自动的支持。,过程,是指为了获得高质量的软件产品所需要完成的一系列任务的框架。,在软件工程领域,“方法学”是被广泛使用的一个词汇。在,20,世纪,70,年代,“方法学”一词用于表示“开发软件产品的方式”,而该词实际上是指“方法的科学”。“方法学”应用于整个软件工程的过程。,面向对象的软件工程方法是当前最流行的软件工程方法,它主要有以下几个方面的特征。,把数据和操作封装在一起,形成对象。对象是构成软件系统的基本构件。,把特征相似的对象抽象为类。,类之间可以存在继承或被继承的关系,形成软件系统的层次结构。,对象之间通过发送消息进行通信。,将对象的私有信息封装起来。外界不能直接访问对象的内部信息,而必须是发送相应的消息后,通过有限的接口来访问。,形式化的软件工程方法基于严格的数学逻辑,多应用于对安全性和可靠性要求较高的特殊领域。,面向对象的软件工程方法的优点,符合人类的思维习惯,。通常人类在认识客观世界的事物时,把静态的属性及动态的动作特征组合起来才能完整地表达一个事物。面向对象的软件工程方法最重要的特点就是把事物的属性和操作组成一个整体,以对象为核心,更符合人类的思维习惯。此外,面向对象的软件工程方法更加注重人类在认识客观世界时循序渐进,逐步深化的特点。,稳定性好,。传统的软件工程方法基于功能分析和功能分解。当软件功能发生变化时,很容易引起软件结构的改变。而面向对象的软件工程方法则是基于对象的概念,用对象来表示与待解决的问题相关的实体,以对象之间的联系来表示实体之间的关系。当目标系统的需求变化时,只要实体及实体之间的联系不发生变化,就不会引起软件系统结构的变化。,可复用性好,。面向对象技术采用了继承和多态的机制,极大地提高了代码的可复用性。从父类派生出子类,一方面复用了父类中定义的数据结构和代码,另一方面提高了代码的可扩展性。,维护性好,。由于利用面向对象软件工程方法开发的软件系统稳定性好和可复用性好,而且采用了封装和信息隐藏机制,易于对局部软件进行调整,所以系统的可维护性比较好。,面向对象软件工程,(OOSE),方法是面向对象方法在软件工程领域的全面应用,包括:,面向对象分析,(OOA),:针对问题论域中客观存在的各项事物建立,OOA,模型 中的对象,用对象的属性和服务分别描述事物的静态特征和行为。,面向对象设计,(OOD),:针对系统的某个具体实现来运用,OO,方法,(1),将,OOA,模型作为,OOD,的一部分;,(2),针对具体实现中的人机界面、数据存储和任务管理等因素补充实现相关操作。,面向对象编程,(OOP),:用一种面向对象的编程语言将,OOD,模型中的每个成分书写出来。,面向对象测试,(OOT),:在测试中运用,OO,技术,以对象的类作为基本测试对象,查错范围主要是类定义之内的属性及服务,以及继承中类之间关系。,面向对象软件维护,(OOM),:程序与问题论域保持一致,降低理解难度;对象的封装减小对象的修改对系统的影响。,面向对象分析(,OOA,)的一般步骤是:,在客户和软件工程师之间沟通基本的用户要求,获取客户对系统的需求,包括标识场景,(Scenario),和用例,(Use Case),,以及建造需求模型;,以基本的需求为指南来选择和标识类与对象,(,包括定义属性和基本操作,),;,定义类的结构和层次;,表示类(对象)之间的关系,建立对象,-,关系模型;,建立对象,-,行为模型;,利用用例,/,场景来复审模型,递进地重复任务,15,,直至完成建模。,面向对象(,OOD,)设计一般步骤如下:,系统设计,将子系统分配到处理器。,选择实现数据管理、界面支持和任务管理的设计策略。,为系统设计合适的控制机制。,复审并考虑权衡,对象设计,在过程级别设计每个操作。,定义内部类。,为类属性设计内部数据结构,消息设计:使用对象间的协作和对象,-,关系模型,设计消息模型。,复审:复审设计模型,并在需要时迭代。,OOD,通常分为高层设计和低层设计两个阶段,高层设计建立应用的体系结构,低层设计集中于类及关系的详细设计。,高层设计阶段开发软件的体系结构,构造软件的总体模型。,主要是标识在计算机环境中解决问题所需要的概念,并增加一批新类(可使应用软件与系统的外部世界交互的类)。,此阶段的输出是适合应用软件要求的类,、类之间的关系和应用的子系统视图规格说明。,系统级的抉择将影响对应用软件各个子系统的任务分配,但不影响各个类的结构。,客户,/,服务器(,C/S,)模型是一个典型的高层设计模型,这个模型导出的体系结构既可以在过程性系统中使用,又可在面向对象的系统中使用。,建立高层设计模型旨在让系统的一个部分(服务器子系统)提供一组服务给另一个部分(客户子系统)。请求服务的对象都归于客户子系统,而接受请求提供服务的就是服务器。,类的模块设计还有以下一些方针:,信息隐蔽,。软件设计通过信息隐蔽可增强抽象,并可保护类的存储表示不被数据类型实例的用户直接存取。对其表示的惟一存取途径只能是界面。,消息限制,。类的设计者应当为类的命令设计一个明确的界面,该类的实例的用户应当只使用界面提供的操作。,狭窄界面,。不是所有的操作都是公共的。只有对其他类的实例必要的操作才放到界面上,其他操作应是隐蔽实现的。,强内聚,。模块内部各个部分之间应有较强的关系,它们不能分别标识。,类的模块设计还有以下一些方针:,弱耦合,。在面向对象方法中是最基本的对象,耦合主要指不同对象之间相互关联的紧密程度。耦合程度依赖于所使用的分解方法,“一般,/,特殊”的继承结构损害了弱耦合的概念。包括,交互耦合,和,继承耦合,。,显式信息传递,。除了依赖于最少的类外,还应该明确在这些类之间的信息流。在类之间全局变量的共享隐含了信息的传递,并且是一种依赖形式。因此,两个类之间的交互应当仅涉及显式信息传递。显式信息传递是通过参数表来完成的。,类的模块设计还有以下一些方针:,派生类当作派生类型,。每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集。,C+,允许设计者选择类的基类是公有的或私有的。如果基类是公有的,则其公有界面将成为新的派生类的共有界面部分,这表明基类的行为成为派生类的行为部分。如果基类是私有的,它的行为将不是继承类的公共行为部分而是实现部分。对基类的划分是为了实现新类中的服务。,抽象类,。某些语言提供了一个类,用它作为继承结构的开始点,所有用户定义的类都直接或间接以这个类为基类。因此,每个继承结构的根类应当是目标概念的一个抽象模型。这个抽象模型生成一个类,它不用于产生实例。它定义了一个最小的共有界面,许多派生类可以加到这个界面上以给出概念的一个特定视图。,面向对象编程,(OOP),是在完成面向对象分析、面向对象设计的基础上,利用一种或多种面向对象语言,具体实现软件各项功能的过程。,面向对象程序设计语言适合用来实现面向对象设计结果,具有方便的开发环境和丰富的类库的面向对象语言,是实现面向对象设计的最佳选择。,不论采用何种面向对象语言进行编码,它们都有共性的一面,即符合面向对象编程的规范,具有面向对象的编程风格,必须支持下面的概念:,封装的,对象,类和实例,的概念,类的,继承,类的,多态性,OOP,中的基本构件是对象和类;基本机制是方法,、消息和继承性。提高软件开发的抽象层次和软件的重用性,是面向对象编程的基本思想和手段。,设计重点集中在类和类层次结构的设计、实现和重用上,是面向对象编程和传统程序设计的本质区别。,面向对象的软件测试(,OOT,),要面对某些新挑战。同时,作为增量开发过程的一部分,良好的面向对象软件为改善传统测试过程提供了机遇。,在面向对象编程语言中,继承和多态的特征对测试者来说是一个新的技术难点。面向对象技术不仅给编程语言带来了变化,而且给软件开发的很多方面也带来了变化。,对于面向对象的软件测试,使用了增量开发过程,重新调整并使用新的符号来分析和设计,并充分利用编程语言的新特性,这些变化提高了软件的可维护性、复用性和灵活性等等:,面向对象技术中特有的封装、继承和多态机制,给面向对象测试带来了一些新的特点,增加了测试和调试的难度。,在面向对象程序中,对象是属性和操作的封装体。对象彼此之间通过发送消息启动相应的操作,并通过修改对象状态达到转换系统运行状态的目的。,基于,UML,的面向对象软件开发,UML,的基本构造块,基于,UML,的面向对象分析,基于,UML,的面向对象设计,PowerDesigner,实践,UML,由图和元模型组成,图是语法,元模型是语义。,UML,主要包括三个基本构造块:事物(建模元素)、图和关系。,事物,是是实体抽象化的最终结果,是模型中的基本成员,,UML,中包含结构事物、行为事物、分组事物和注释事物。,关系,是将事物联系在一起的方式,,UML,中主要定义了六种关系:依赖、关联、聚合、组合、泛化和实现。,图,是事物集合的分类,,UML,中包含,9,种图:,类图,、对象图、,用例图,、组件图和部署图五种描述静态结构;,顺序图,、状态图、活动图、协作图四种描述动态性质。,事物是实体抽象化的最终结果,是模型中的基本成员,包括:,结构事物,(,Structural things,):结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:,类(,Class,),:类是指具有相同属性、方法、关系和语义的对象的集合;,接口(,Interface,),:接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作;,协作(,Collaboration,),:协作描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模;,用例(,Use Case,),:用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;,活动类(,Active Class,),:活动类的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的;,组件(,Component,),:组件是物理的、可替换的部分,包含接口的集合,例如,COM+,、,JAVA BEANS,等;,节点(,Node,),:节点是系统在运行时存在的物理元素,代表一个可计算的资源,通常占用一些内存和具有处理能力。,事物是实体抽象化的最终结果,是模型中的基本成员,包括:,行为事物,(,Behavioral things,):行为事物指的是,UML,模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类:,交互(,ineraction,),:交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;,状态机(,state machine,),:状态机由一系列对象的状态组成。,分组事物,(,Grouping things,):可以把分组事物看成是一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包(,package,)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。,注释事物,(,Annotational things,):注释事物是,UML,模型的解释部分。,关系是将事物联系在一起的方式,,UML,定义的关系主要有六种:,依赖,(,Dependency,):元素,A,的变化会影响元素,B,,但反之不成立,那么,B,依赖,A,;,UML,中用带箭头的虚线表示,Dependency,关系,箭头指向被依赖元素。,泛化,(,Generalization,):即继承(特殊和一般)关系。,UML,中用带空心箭头的实线线表示,Generalization,关系,箭头指向一般个体。,实现,(,Realize,):元素,A,定义一个约定,元素,B,实现这个约定,则,B,和,A,的关系是,Realize,,,B realize A,。这个关系最常用于接口,,UML,中用空心空心箭头和虚线表示。,关联,(,Association,):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。,UML,中用实线表示,Dependency,关系,箭头指向被依赖元素。,聚合,(,Aggregation,):关联关系的一种特例,表示部分和整体的关系。,UML,中用带空心菱形头的实线表示,Aggregation,关系,菱形头指向整体。,组合,(,Composition,):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。,UML,中用带实心心菱形头的实线表示,Composition,关系,菱形头指向整体。,图是事物集合的分类,,UML,中包含多种图:,类图,(Class Diagram),:描述系统所包含的类、类的内部结构及类之间的关系;,对象图,(Object Diagram),:是类图的一个具体实例;,组件图,(Compoment Diagram,,也称组件图,),:描述代码部件的物理结构以及各部件之间的依赖关系;,部署图,(Deployment Diagram),:定义系统中软硬件的物理体系结构;,用例图,(Usecase Diagram),:从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系;,顺序图,(Sequence Diagram),:表示对象之间动态合作的关系;,协作图,(Collaboration Diagram),:描述对象之间的协作关系;,状态图,(Statechart Diagram),:描述一类对象的所有可能的状态以及事件发生时状态的转移条件;,活动图,(Activity Diagram),:描述系统中各种活动的执行顺序。,基于,UML,的业务建模方法,该方法通过规范化的图形化标记语言,从人员、信息、活动、流程等方面对业务系统进行全面的、结构化的抽象和描述。,UML,业务建模方法是指对业务系统从静态和动态两个方面进行抽象,并利用,UML,标记语言记录下来。根据业务系统的特点,,UML,业务建模方法主要包括业务角色、业务实体、业务活动和业务流程等建模元素以及业务实体关系图、业务流程活动图和业务流程状态图等图形表示。,建模的本质是通过抽象获得被建模对象的关键要素,然后基于特定的目的和视角利用图形把模型元素展示出来。图和建模元素之间是关联关系,而不是包含关系。,基于,UML,的业务建模方法对业务进行结构化的抽象,并利用,UML,标记语言进行图形化展示,可确保对业务系统的全面、正确的理解,其成果并可被信息技术人员理解和重用。,基于,UML,面向对象分析(,OOA,),的过程一般如下,:,获取问题陈述,-,确定类,-,准备数据字典,-,确定关联,-,使用继承来细化类型,-,完善对象模型,-,建立对象动态模型,-,建系统功能模型。,获取问题陈述就是与用户一起理解系统,搞清楚系统的业务逻辑,发现用户的需求。,把问题中承现出来的物理实体和概念描述整理出来,暂时把这些标志成一个类实体,然后清除冗余类和与系统不相干的类,.,最终得到需要的模型实体。,就要让各个实体信息之间产生联系,联系主要包括六种。,.,使用继承来细化类,一般可以使用以下两种方式来实现,.,自底向上:通过把现有类的共同性质一般化为父类,寻找具有相似的属性关系或操作的类来发现继承。这些结果常常是基于客观世界的现有分类,只有可能,应尽量使用现有概念。,自顶向下:把现有的类细化为更具体的子类。,基于,UML,面向对象分析(,OOA,),的过程一般如下,:,获取问题陈述,-,确定类,-,准备数据字典,-,确定关联,-,使用继承来细化类型,-,完善对象模型,-,建立对象动态模型,-,建系统功能模型。,建立对象动态模型。,准备脚本:动态分析从寻找事件开始,然后确定各对象的可能事件顺序。,确定事件:确定所有外部事件。,准备事件跟踪表:把脚本表示成一个事件跟踪表,即不同对象之间的事件排序表,对象为表中的列,给每个对象分配一个独立的列。,构造状态图:对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中的一条路径。,建立系统功能模型。功能模型是用来说明值是如何计算的,标明值与值之间的依赖关系及相关的功能。输入、输出值是系统与外界之间的事件的参数。,面向对象设计(,OOD,),是把分析价段得到的需求转变成符合成本和质量要求的,抽象的系统实现方案的过程。面向对象的准则包括:,模块化,:对象就是模块,它把数据结构和操作这些数据的方法紧密地结合在一起构成模块。,抽象,:面向对象方法不仅支持对过程进行抽象,而具支持对数据进行抽象。抽象方法的好坏以及抽象的层次都对系统设计有很大影响,信息隐藏,:通过对象的封装来实现,对象暴露接口的多少以及接口的好坏对系统设计有很大影响。,低耦合,:低耦合是设计的一个重要标准,有助于使系统中某一部分的变化对其他部分的影响降到最低。,高内聚,:内聚度高的模块很容易理解,很容易被复用,扩展和维护。,面向对象设计是把分析价段得到的需求转变成符合成本和质量要求的,抽象的系统实现方案的过程。面向对象的实用规则主要包括:,设计的结果应该清晰易懂,.,一般到具体结构的深度应适当,.,尽量设计小而简单的类,.,把设计变动减至最小,.,系统设计是问题求解及建立解答的高级策略,必须制定解决问题的基本方法。,系统设计一般是先从高层入手;,然后细化;,系统设计要决定整个结构及风格,这种结构为后面设计阶段的策略提供基础,.,PowerDesigner,的,面向对象模型,(,OOM,,,object-oriented model,) 是利用,UML,(统一建模语言)的图形来描述系统结构的模型,它从不同的角度来表现系统的工作状态。,在,OOM,中可以设计,UML,的所有图形,这些,UML,图形有助于系统分析人员、开发人员、测试人员、管理人员、用户以及其他人员之间进行信息交流。,其中,,用例图、顺序图和类图等共同组成了,OOM,的核心,。,软件文件的编写,编写软件文件的目的和作用,软件生存周期和各种文件的编制,文件编制中需要考虑的因素,文件编制的质量要求,软件文档的目的和作用:,提高软件开发过程的能见度。,提高开发效率。,作为开发人员在一定阶段内的工作成果和结束标志。,记录开发过程中的有关技术信息,便于协调以后的软件开发、使用和维护。,提供对软件的运行、维护和培训的有关信息。,便于潜在用户了解软件的功能、性能等各项指标,为他们选购符合自己需求的软件提供依据。,可行性研究报告,项目开发计划,软件需求说明书,数据要求说明书,测试计划,概要设计说明书,详细设计说明书,数据库设计说明书,模块开发卷宗,用户手册,操作手册,测试分析报告,开发进度月报,项目开发总结,可行性研,究与计划,使用与维护,测试,编码,设计,需求分析,阶段,文件,文件编制是一个不断努力的工作过程,是一个从形成最初轮廓,经反复检查和修改,直到程序和文件正式交付使用的完整过程。,要保证文件编制的质量,要体现每个开发项目的特点,编制中考虑以下各项因素:,文件的读者,文件内容的重复性,文件内容的种类,各个文件在内容上应该有一定的重复性:,为了方便每种文件各自的读者,每种产品文件应该自成体系。,避免读一种文件时,又不得不去参考另一种文件。,较明显的重复有两类:,第一类是引言:每一种文件都要包含的内容,以向读者提供总的梗概。,第二类是各种文件中的说明部分:对功能、性能的说明,对输入和输出的描述,系统中包含的设备等。,由于不同软件在规模上和复杂程度上差别很大,文件内容的应具有灵活性:,应编制的文件种类,文件的详细程度,文件的扩展,节的扩张与缩并,程序设计的表现形式,文件的表现形式,文件的其他种类,GB/T8567-2006,计算机软件产品开发文件编制指南,给出了软件文件的编制提示,同时也是这些文件编写质量的检验准则。,高质量的文件应当体现在以下一些方面:,针对性,:应分清读者对象,按不同类型、不同层次的读者,决定怎样适合他们的要求。,精确性,:文件的行文应十分确切,不能出现多义性的描述。,清晰性,:文件编写力求简明,如配以适当图表增强清晰性。,完整性,:任何一个文件应是完整的、独立的,它应自成体系。,灵活性,:各个不同的软件项目,其规模和复杂程度有着许多实际差别,不能一概而论。,可追溯性,:由于各开发阶段编制的文件与各阶段完成的工作有着密切的联系,前后两阶段生成的文件有一定的继承关系。,选题及评分要求,学生自行选择设计课题(不同于教师的示例)。,设计验收材料及评分标准包括:,软件需求规格说明书(,40%,),软件概要设计说明书(,30%,),软件部分功能验收(,20%,),考勤信息(,10%,),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!