当前位置:文档之家› 传统的软件工程方法与面向对象的软件工程方法比较

传统的软件工程方法与面向对象的软件工程方法比较

传统的软件工程方法与面向对象的软件工程方法比较
传统的软件工程方法与面向对象的软件工程方法比较

传统的软件工程方法与面向对象的

软件工程方法比较

刘红霞, 刘红艳

(大同市职业技术学院计算机系, 山西大同037008)

摘要: 该文介绍了软件工程方法的主要内容, 并且对传统的软件工程方法与面向对象的软件工程方法进行比较。

关键词: 软件工程学; 软件工程方法; 软件的生存周期; 需求分析

A Contrast Between the Traditional and the Object-Oriented

Methodologies of Software Engineering

LIU Hongxia,LIU Hongyan

(Computer Department, Datong V ocational College,Datong Shanxi, 037008)

Abstract : This article is an introduction of the content of themethodology of software engineer ing, and also a contrast between the traditional and the object-oriented methodologies of software engineering .

KeyWords: software engineering,methodology of software engineering, existance cycle of software, demand analysis, object-oriented

自然语言和编程语言之间的鸿沟, 是软件开发过程中最难跨越的阶段. 早期的软件开发所面临的问题域比较简单. 从认识清楚要解决的问题, 到把这种认识用程序表达出来, 还不是很困难的事情. 随着计算机应用领域的拓广, 问题域的复杂性急剧膨胀, 系统的规模和复杂度空前扩大. 无论是对问题域的认识和理解, 还是用一种编程语言来描述, 其难度都很大, 软件的复杂性和其中包含的错误达到了开发人员无法控制的程度,因此出现了

“软件危机” .软件危机的出现, 促进了软件工程学的形成和发展.大型软件系统的开发需要包括分析、设计、编程、测试、维护在内的一整套的软件工程理论与技术体系. 软件开发是对问题域的认识和描述. 从认识事物方面看,软件工程学在分析阶段提供了一些对问题域的分析认识方法. 从描述事物方面看, 它在分析和设计阶段提供了一些从问题域逐步过渡到编程语言的描述手段.

1 传统软件工程方法

传统的软件工程方法主要指结构化软件工程方法, 其主要内容如图1所示:

一个软件从开始计划起, 到废弃不用止, 称为软件的生存周期. 从上图可以看出, 在传统的软件工程方法中, 软件的生存周期分为需求分析、总体设计、详细设计、编程和测试几个阶段. 下面分别就每个阶段进行讨论:

1.1 需求分析

软件工程学中的需求分析具有两方面的意义. 在认识事物方面, 它具有一整套分析、认识问题域的方法、原则和策略. 这些方法、原则和策略使开发人员对问题域的理解比不遵循软件工程方法更为全面、深刻和有效. 在描述事物方面, 它具有一套表示体系和文档规范. 但是, 传统的软件工程方法学中的需求分析在上述两方面都存在不足. 它在全局范围内以功能、数据或数据流为中心来进行分析. 这些方法的分析结果不能直接地映射问题域, 而是经过了不同程度的转化和重新组合. 因此, 传统的分析方法容易隐蔽一些对问题域的理解偏差, 与后续开发阶段的衔接也比较困难.

1.2 总体设计和详细设计

在总体设计阶段, 以需求分析的结果作为出发点构造出一个具体的系统设计方案, 主

要是决定系统的模块结构, 包括决定模块的划分, 模块间的数据传送及调用关系. 详细设计是在总体设计的基础上考虑每个模块的内部结构及算法. 最终将产生每个模块的程序流程图. 经过总体设计和详细设计, 开发人员对问题域的认识和描述越来越接近于系统的具体实现——编程.但是传统的软件工程方法中设计文档很难与分析文档对应, 原因是二者的表示体系不一致. 所谓“从分析到设计的转换” , 实际上并不存在可靠的转换规则, 而是带有人为的随意性, 从而很容易因理解上的错误而埋藏下隐患.

1.3 编程和测试

编程阶段, 是利用一种编程语言产生一个能够被机器理解和执行的系统. 测试是发现和排除程序中的错误, 最终产生一个正确的系统.但是由于分析方法的缺陷很容易产生对问题域的错误理解, 而分析与设计的鸿沟很容易造成设计人员对分析结果的错误转换, 所以在编程时程序员往往需要对分析员和设计人员已经认识过的事物重新进行认识, 并产生与他们不同的理解. 在实际开发过程中常常看到, 后期开发阶段的人员不断地发现前期阶段中的错误, 并按照他们的新的理解进行工作, 所以每两个阶段之间都会出现不少变化, 其文档不能很好的衔接.

1.4 软件维护

这个阶段的工作, 一是对使用中发现的错误进行修改, 二是因需求发生了变化而进行修改.前一种情况需要从程序逆向追溯到发生错误的开发阶段. 由于程序不能映射问题域以及各个阶段的文档不能对应, 每一步追溯都存在许多理解障碍. 第二种情况是一个从需求到程序的顺向过程, 它也存在初次开发时的那些困难, 并且又增加了理解每个阶段原有文档的困难.无论如何, 各种传统的软件工程方法都为自然语言和编程语言之间的鸿沟铺设了一些平坦的路段. 它们的优点和缺点, 也为面向对象方法提供了有益的借鉴.

2 面向对象的软件工程方法

何谓“面向对象”呢? 直接面对问题域中客观存在的事物来进行软件开发, 就是面向对象. 它符合人们在日常生活中习惯的思维方式和表达方式. 面向对象方法是软件理论的返朴归真. 面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用. 其主要内容, 如图2 所示.

下面就其包括的主要内容进行讨论:

2.1 面向对象的分析OOA(Object-Oriented Analysis)

OOA强调直接针对问题域客观存在的各项事物设立OOA模型中的对象. 问题域有哪些值得考虑的事物,OOA 模型中就有哪些对象. OOA 对问题域的观察、分析和认识是很直接的, 对问题域的描述也是很直接的. 它所采用的概念及其术语与问题域中的事物保持了最大程度的一致, 不存在语言上的鸿沟.

2.2 面向对象的设计OOD(Object-Oriented Design)

OOD是针对系统的一个具体的实现运用OO方法. 它与OOA 采用相同的表示法和模型结构.

OOA与OOD采用一致的表示法是面向对象的分析与设计优于传统的软件工程方法的重要因素之一.这使得从OOA 到OOD不存在转换, 只有很局部的修改或调整, 并增加几个与实现有关的独立部分, 因此OOA与OOD之间不存在传统方法中分析与设计之间的鸿沟, 二者能够紧密衔接, 大大降低了从OOA到OOD的难度、工作量和出错率.

2.3 面向对象的编程OOP (Object-Oriented Programing)

OOP工作就是用同一种面向对象的编程语言把OOD模型中的每个成分书写出来. 即用具体的数据结构来定义对象的属性, 用具体的语句来实现服务流程图所表示的算法.

OOP阶段产生的程序能够紧密地对应OOD模型;OOD模型中一部分对象类对应OOA 模型, 其余部分的对象类对应与实现有关的因素;OOA 模型中全部类及对象都对应问题域中的事物. 这样的映射关系提高了开发工作的效率和质量.

2.4 面向对象的测试OOT(Object-Oriented Test)

OOT指对于用OO 技术开发的软件, 在测试过程中继续运用OO技术, 进行以对象概念为中心的软件测试. 在测试过程中发掘并利用与OO方法的概念、原则及技术机制有关的语法与语义信息. 可以更准确地发现程序错误并提高测试效率.

对于用OOA 和OOD 建模并由OO PL 编程的软件,OO T 可以通过捕捉OOA? OOD 模型信息, 检查程序与模型不匹配的错误. 这一点传统的软件工程方法很难达到.

2.5 面向对象的软件维护

面向对象的软件工程方法为改进软件维护提供了有效的途径. 程序与问题域是一致的, 各个阶段的表示是一致的, 从而大大减少了理解的难度.

通过以上的比较, 我们可以看到面向对象方法的出现, 是人类认识事物的一个返朴归真的过程. 面向对象方法不论是从软件开发阶段的开发效率上说, 还是从软件维护阶段的系统维护成本考虑, 都要远远优于传统的软件工程方法. 所以我们的软件开发人员要充分重视面向对象方法在实践中的运用.

参考文献

[1 ]蔡希尧, 陈平 1面向对象技术[M ]1西安: 西安电子科技大学出版社, 19931

[2 ]汪成为, 郑小军, 彭木昌 1面向对象的分析设计及运用[M ]1北京: 国防工业出版社, 19921

作者简介:刘红霞(1972—) , 女, 山西浑源人, 学士, 助教, 从事计算机应用研究.

软件、软件工程的基本概念和特点

2017-2018 学年第一学期第四次作业 专业:计算机科学与技术班级:17级3班学号:1701110140姓名:任亚磊 作业内容: 简述软件、软件工程的基本概念和特点 软件: 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发,维护和使用有关的图文资料。 软件的特点: 1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性 2.软件的生产和硬件不同,在它的开发过程中没有明显的制造过程、没有磨损 3.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 4.软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同的依懒性 5.软件的开发至今尚未完成摆脱手工艺的开发方式,没有实现自动化 6.软件本身是复杂的、实际问题的复杂性、程序逻辑结构的复杂性 7.软件的成本相当昂贵。 8.相当多的软件工作涉及社会因素。 软件的分类: 1.系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序 2.应用软件:商业数据处理软件、工程和科学计算软件、系统仿真软件 软件的其他角度分类: a.按规模划分:微型软件、小型、中型、大型、甚大型、极大型 b.按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件

c.按软件服务对象的范围划分:项目软件、产品软件 软件生产的发展: 1 程序设计时代:这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年) 2 程序系统时代:这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年) 3 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式面向对象技术来开发软件。(1968年至今) 软件工程: 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。主要包括三个方面的内容:软件开发方法,软件过程和软件工具。 软件工程的原则: 1.抽象2.信息隐蔽3.模块化4.局部化5.确定性6.一致性7.完备性8.可验证性。

软件工程试题与答案 (6)

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程 第八章 面向对象的设计方法

第八章面向对象的设计方法 本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。为完成这一转换过程,设计人员必须处理以下任务: (1)针对分析模型中的用例,设计实现方案。实现方案用 UML交互图表示。 (2)设计技术支撑设施。在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。例如,数据的持久存储服务、安全控制服务和远程访问服务等。在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。 (3)设计用户界面。 (4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序

设计的基础和依据的详尽类图。 面向对象的软件设计过程如图8-1-1所示。 图 8-1-1 面向对象的软件设计过程 第一节设计用例实现方案 UML 的交互图(顺序图、协作图)适于用例实现方案的表示。因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。该设计方法包含如下3个步骤: (1)提取边界类、实体类和控制类; (2)构造交互图; (3)根据交互图精华类图。 一、顺序图 顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。顺序图中的对象一般以“对象

面向对象分析方法

https://www.doczj.com/doc/df2778026.html,面向对象分析方法1/2 面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。 OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。 OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。 OOA在定义服务的同时要识别消息连接。当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。 OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。OOD模型由4个部分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。 一、OOA的主要原则。 (1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。抽象是形成概念的必须手段。 抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。 抽象是面向对象方法中使用最为广泛的原则。抽象原则包括过程抽象和数据抽象两个方面。 过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。 数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是OOA的核心原则。它强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即对象),对象的外部只需要知道它做什么,而不必知道它如何做。 (2)封装就是把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。 (3)继承:特殊类的对象拥有的其一般类的全部属性与服务,称作特殊类对一般类的继承。 在OOA中运用继承原则,就是在每个由一般类和特殊类形成的一般—特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同具有的属性和服务,一次性地在一般类中进行显式的定义。在特殊类中不再重复地定义一般类中已定义的东西,但是在语义上,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的全部属性和服务。继承原则的好处是:使系统模型比较简练也比较清晰。 (4)分类:就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。分类原则实际上是抽象原则运用于对象描述时的一种表现形式。 (5)聚合:又称组装,其原则是:把一个复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。 (6)关联:是人类思考问题时经常运用的思想方法:通过一个事物联想到另外的事物。能使人发生联想的原因是事物之间确实存在着某些联系。

软件工程实践者的研究方法(中文版第七版)课后习题答案

作业答案。 2.1 a.设计者对于用户要问的问题: 项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些? b. 用户对设计者应该问的问题: 目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问? 还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问? 用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样) 需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。 2.7 详细描述三个适合用于瀑布模型的软件项目。 (要求学生不仅仅列出项目的名称,而要说明为什么适合) 瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。图书馆系统、销售管理系统都是。 3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。 结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。 特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征: 1)本地解析HTML页面 2)展示HTML页面 3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

3面向对象软件工程笔试

面向对象软件工程笔试题 姓名班级学号 一、单项选择题(每题1.5分,计30分) 1. 在面向对象的系统中,系统责任的良好分配原则是()。 A. 在类之间均匀分配 B. 集中分配在少数控制类中 C. 根据时序图的消息进行分配 D. 根据个人喜好进行分配 2. 能够保证某些类在系统中只存在一个实例的模式是:() A.抽象工厂(Abstract Factory)模式B.单态(Singleton)模式 C.建筑者(Builder)模式D.工厂方法(Factory Method)模式 3. 在UML中,用于描述对象和对象之间的交互,并且将重点放在消息的顺序上,强调时间,描述消息是如何在对象间发送和接收的模型是:() A.类图B.用例图C.状态图D.时序图 4.()意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性B.多继承C.类的复用D.封装 5.在UML中,类A的一个操作以类B作为参数,调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是()关系。 A.聚合B.泛化C.实现D.依赖 6. 在UML中,类A中持有着类B作为属性,那么类A和类B之间是()关系。 A.普通关联B.泛化C.实现D.依赖 7. 在下面的描述中,不属于用例模型所能回答的问题是() A.参与者执行的主要任务或功能是什么? B.参与者希望从系统中获取什么样的信息? C.用例所描述的功能是怎样实现的? D.参与者之间的泛化关系是什么样的? 8. 在面向对象设计中,下列那个设计处于最基础的地位:() A.责任设计B.消息设计C.类及对象设计D.子系统设计 9.能够“将抽象部分与实现部分分离,使它们都可以独立变化”的设计模式是:() A.组合(Composite)模式B.命令(Command)模式C.桥(Bridge) 10.在面向对象软件开发方法中,类与类之间的结构关系主要有:() A.继承和聚合B.继承和一般C.聚集和消息传递D.继承和方法调用 11.能够在不改变类层次结构的前提下,在运行时根据需要透明地为类层次结构上的各个类 动态添加新功能的模式是:() A.访问者(Visitor)模式B.职责链(Chain of Responsibility)模式 C.观察者(Observer)模式D.策略(Strategy)模式 12.将对象组合成树型结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象 的使用具有一致性的模式是:() A.组合(Composite)模式B.桥(Bridge)模式 C.命令(Command)模式D.适配器(Adapter)模式 13. 能够在运行时动态地为对象扩展功能的设计模式是:() A.代理(Proxy)模式B.装饰(Decorator)模式C.组合(Composite)模式D.桥(Bridge)模式

面向对象方法与结构化方法的比较

结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。 结构化方法和面向对象方法二者的比较如下。 一、基本思想的比较 结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。 面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。 二、基本原则的比较 结构化方法遵循基本原则有:一、抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。二、分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。三、模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。 面向对象方法遵循基本原则有:一、抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。二、封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。三、模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。(高内聚低耦合)四、层次:抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂

软件工程报告面向对象设计

软件工程报告面向对象设计 在分析阶段之后,使用面向对象设计(OOD)将概念模型进一步发展为面向对象模型。在OOD中,将分析模型中与技术无关的概念映射到实现类上,确定约束并设计接口,从而形成解决方案领域的模型。简而言之,构建了详细的说明,指定如何在具体技术上构建系统 面向对象设计的阶段可以标识为- ●系统上下文的定义 ●设计系统架构 ●识别系统中的对象 ●设计模型的构建 ●对象接口规范 系统设计 面向对象的系统设计涉及定义系统的上下文,然后设计系统的体系结构。 ●上下文-系统的上下文具有静态和动态部分。使用整个系统的简单框图设计 系统的静态上下文,该框图被扩展为子系统的层次结构。子系统模型由UML 包表示。动态上下文描述了系统如何与其环境交互。它使用用例图建模 ●系统架构-系统架构是根据系统上下文根据架构设计和领域知识设计的。通 常,系统分为几层,每层分解以形成子系统。 面向对象的分解 分解意味着按照分而治之的原则,将一个大型的复杂系统划分为具有较小复杂性的较小组件的层次结构。系统的每个主要组成部分都称为子系统。面向对象的分解可识别系统中的各个自治对象以及这些对象之间的通信。 分解的优点是- ●各个组件的复杂度较低,因此更易于理解和管理。 ●它可以使具有专业技能的劳动力分工。 ●它允许替换或修改子系统,而不会影响其他子系统。 识别并发 并发允许多个对象同时接收事件,并允许同时执行多个活动。并发在动态模型中标识并表示。

为了启用并发,每个并发元素都分配有单独的控制线程。如果并发处于对象级别,则为两个并发对象分配两个不同的控制线程。如果单个对象的两个操作本质上是并发的,则该对象将在不同的线程之间拆分。 并发与数据完整性,死锁和饥饿问题相关。因此,无论何时需要并发,都需要制定明确的策略。此外,并发需要在设计阶段本身进行识别,并且不能留给实施阶段。 识别模式 在设计应用程序时,针对某些类别的问题采用了一些公认的解决方案。这些是设计模式。模式可以定义为可以在某些类型的应用程序开发问题中使用的一组文档化的构建基块。 一些常用的设计模式是- ?外墙图案 ?模型视图分离模式 ?观察者模式 ?模型视图控制器模式 ?发布订阅模式 ?代理模式 控制事件 在系统设计期间,需要识别并适当处理可能发生在系统对象中的事件。 事件是具有时间和空间位置的重大事件的说明。 可以建模的事件有四种类型,即- 信号事件-被一个对象抛出并被另一个对象捕获的命名对象。 呼叫事件-表示操作调度的同步事件。 时间事件-代表时间流逝的事件。 更改事件-表示状态更改的事件。 处理边界条件 系统设计阶段需要解决整个系统以及每个子系统的初始化和终止问题。记录的不同方面如下- ●系统的启动,即系统从非初始化状态到稳态的过渡。 ●系统终止,即关闭所有正在运行的线程,清理资源以及要发送的消息。

-面向对象方法范本(软件工程之业务流程)

题目 XX系统的研究与分析

第一章引言 1.1项目背景 社会治安综合治理是党中央依据我国社会主义初级阶段的理论,对新中国成立以来,特别是改革开放以来社会治安工作的经验,并从新时期社会治安的实际出发,提出的解决我国社会治安问题的总的战略方针。 高校治安综合治理以社会治安综合治理的存在为前提。高校治安综合治理是一项政治任务,是解决高校治安问题的根本出路,是具有中国特色的解决高校治安问题的新途径。实践证明,高校治安综合治理为维护高校政治稳定和校园治安环境、创造良好的教学科研秩序做出了重要贡献。尤其是当前形势下,高校治安综合治理在维护校园稳定、构建和谐校园中将发挥重要的积极作用。 经过探索与实践,全党和全社会对高校治安综合治理基本达成了共识。高校治安综合治理是社会治安综合治理的重要方面,高校和谐稳定是社会和谐稳定的重要基础,关系到全党和全国工作大局,关系到和谐社会建设,关系到青年大学生的健康成长,关系到高等教育事业的持续协调发展。 20 多年来,高校治安综合治理积累了丰富、成功的经验,这是一笔非常宝贵的财富。但是,随着我国政治经济体制改革的不断深化、社会主义法制建设的日臻完善、高等教育管理体制改革的继续深入,高校治安综合治理面临着严峻的挑战。如何把高校的综治工作做好,以评促建、以评促管是主要的手段之一,而在综治工作的考评过程中涉及到大量的数据和材料,以及各种的评分标准,目前都是采用纸质稿加电子稿人工考评的方式,每次的考评需要花费大量的人力物力,通过信息化的手段,建立一套综治的考评系统是很有必要的。 1.2同类系统研究与应用现状 <旨在突出同类系统研究与应用现状,应该多参考相关文献,引用比较多,注意引用格式>

面向对象的建模方法

面向对象的建模方法 [摘要]评述面向对象的几种建模方法并作一比较,阐述统一建模语言的优越性,并对其组成、特征、建模过程进行描述。 [关键词]软件工程建模面向对象 一、引言 面向对象方法学也称为面向对象的开发方法,它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。也就是说,面向对象方法是一种崭新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装,模块的可构造性、可扩充性、可重用性也大大加强,从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。 面向对象的软件工程要求首先对系统建立模型是对现实的简化,它提供了系统的蓝图。一个好的模型只需抓住影响事物发展的主要矛盾,而忽略那些次要矛盾。每个系统可以从不同方面用不同的模型来描述。因而每个模型都是在语义上闭合的系统抽象。通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为,指导我们构造系统模板 二、面向对象建模方法 建模是构造软件系统最基本的步骤,在软件工程学科中提供了多种多样的建模方法和高效的工具,其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误,对于今日的大型软件系统,采用一种合适的建模方法,建立一个良好的模型是成功的关键。在市场上已有一些公司,如Rationa1,Cayenne,Platinum等开始提供商品化的建模工具,即通常所谓的CASE工具,使得建模过程实现了一定的自动化的标准化,并逐步走向实用,而这些工具的后面,便是具有不同特色的建模方法。 下面分析比较Booch,OMT,OOSE,UML等几种主要的面向对象的建模方法: (一)Booch方法 Booch方法是由Grady Booch提出的,是一种主要面向设计的方法,它通过二维图形来建立面向对象的分析和设计模型,强调设计过程的不断反复知道满足要求为止。Booch 方法特别注重对系统内对象之间相互行为的描述,注重可交流性和图示表达。但在方法学上并不注重严格的过程,既不推荐软件设计人员该做什么,只是指出了其可做的工作。Booch 方法把几类不同的图表有机地结合起来,以反映系统的各个方面是如何可相互联系而又相互影响的。这些图贯穿于逻辑设计到物理实现的开发过程中,包括类图、状态图、对象图、交互图、模块图和进程图。 (二)OMT方法 OMT(Object Modeling Technology对象建模技术)是由JamesRumbaugh 等人提出的。OMT方法包含了一整套的面向对象的概念和独立于语言的图示符号。它可用于分析问题需求,设计问题的解法以及用程序设计语言或数据库来实现这个解法。OMT方法用一致的概念和图示贯穿于软件开发的全过程,这样软件开发人员不必在每一开发阶段便换新的表示方法。 OMT方法从对象模型、动态模型、功能模型3个不同但又相关的角度来进行系统建模。这3个角度各自用不同的观点抓住了系统的实质,全面地反映了系统的需求。其中,对象模型表示了静态的、结构化的系统数据性质,动态模型表示了瞬时的、行为化的系统的控制性质,功能模型则表示了变化的系统的功能性质。在软件开发的周期中,这3种模型都在逐渐发展:在分析阶段,构造出不考虑最终设计的应用域模型;在设计阶段,求解域的结构被

软件工程方法与实训

软件工程方法与实训 习题答案 2011-9-22

习题一 ............................................................................................................ 错误!未定义书签。 1 软件是什么?软件有那些特点?................................................................. 错误!未定义书签。 2 按照功能层次,软件可分为那些层次的软件?......................................... 错误!未定义书签。 3 按照服务对象,软件可分为用户定制软件通用商业软件.举例说明两类软件的区别错误!未定义书签。 4 什么是软件工程,其对软件产业化发展有什么积极意义?..................... 错误!未定义书签。 5 软件工程涉及工程,方法,工具三个方面的技术问题.这三个方面存在着什么相互关系? 试举例说明它们之间的联系............................................................................. 错误!未定义书签。 6 软件工程管理主要体现在四个p上,简述各个管理,并谈谈自己的认识错误!未定义书签。7对工程目标进行优先级排序...................................................................... 错误!未定义书签。 8 结构化方法有什么特点?........................................................................... 错误!未定义书签。9操作Microsoft Visio 谈谈你自己的感受........................................... 错误!未定义书签。习题二 ............................................................................................................ 错误!未定义书签。 1 软件开发期的目标任务是什么?概要设计需要完成什么任务?............. 错误!未定义书签。2瀑布模型的一大特点是里程碑管理机制,对此,你有什么认识?............ 错误!未定义书签。3为什么瀑布模型不能很好的适应用户需求变更?.................................... 错误!未定义书签。 4 试说明抛弃型原型与进化型模型的异同................................................. 错误!未定义书签。5一般认为,原型进化模式不能适应较大型软件项目的开发,原因是什么?错误!未定义书签。6增量模式可体现出那些方面的优越性?.................................................... 错误!未定义书签。7开发一个”综合信息管理系统”,选择一个比较合适的过程模式,说明理由.错误!未定义书签。 习题三 ............................................................................................................ 错误!未定义书签。 1 软件开发机构内都设有质量控制部,并将其防灾开发部服务部之上,对此,你什么看法 ... 错误!未定义书签。 2 通常认为,项目负责人不一定是技术专家,但必须是管理专家,对此,你有什么看法?错误!未定义书签。 3 你将如何管理项目小组,以使其具有较高的工作热情?......................... 错误!未定义书签。4是比较民主分权制与住程序员负责制的优劣?为什么?.......................... 错误!未定义书签。 5 需要开发一个学生管理系统,对该项目作出比较合理的任务及进度安排.错误!未定义书签。 6 用c语言开发一个矩阵运算程序,计算工期和人力成本....................... 错误!未定义书签。 7 开发一个设备监控程序,并计算人力成本............................................... 错误!未定义书签。 8 软件项目中主要有那些技术文档,管理文档和用户文档....................... 错误!未定义书签。 9 为什么软件开发需要有配置管理,其主要包括那些方面的管理? ......... 错误!未定义书签。 10 为什么配置管理中需要有开发库,基线库和产品库这三个配置库? ... 错误!未定义书签。 11 什么是质量标准?..................................................................................... 错误!未定义书签。习题四 ............................................................................................................ 错误!未定义书签。 1 计算机系统有哪些元素组成?特征是什么?............................................. 错误!未定义书签。 2 举例说明Client/Server 结构的系统扩充性........................................ 错误!未定义书签。 4 B/S结构有哪些特点?与C/S相比有哪些优势?...................................... 错误!未定义书签。

软件工程复习题含答案-2

《软件工程》复习题2 一、选择题 1、软件生存周期中,准确地确定软件系统必须做什么的阶段是( ) A、可行性分析和项目开发计划 B、需求分析 C、概要设计 D、详细设计 2、使用数据流图来表示系统逻辑模型的是( ) A、Jackson B、VDM C、OOA D、SA 3、若一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入,则该模块的内聚性类型是( ) A、时间内聚 B、偶然内聚 C、顺序内聚 D、功能内聚 4、下列几种耦合类型,耦合性最高的是( ) A.公共耦合 B.控制耦合 C.标记耦合 D.数据耦合 5、确认测试也称为( ) A.有效性测试 B.无效性测试 C.静态测试 D.动态测试 6、黑盒测试技术不包括 ...( ) A.等价类划分 B.路径覆盖 C.边界值分析 D.错误推测 7、瀑布模型与增量模型之间的本质区别是( ) A.瀑布模型属于非整体开发模型,增量模型属于整体开发模型 B.瀑布模型属于整体开发模型,增量模型属于非整体开发模型 C.瀑布模型容易适应需求变化,增量模型不容易适应需求变化 D.瀑布模型减少技术、应用风险,增量模型增大技术、应用风险 8、软件工程标准中,JIS属于( ) A.国际标准 B.国家标准 C.行业标准 D.企业规范 9、一般说来,投入运行的软件系统中有错误()。 A、不是不可以理解的 B、是不能容忍的 C、是要求退货的理由 D、是必然的 10、结构化程序设计,主要强调的是() A、程序的执行效率 B、模块的内聚 C、程序的可理解性 D、模块的耦合

二、填空题 1、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,( )阶段出错,对软件的影响最大。 2、UML是软件开发中的一个重要工具,它主要是应用于基于()的方法。 3、为改正软件系统中潜藏的错误而进行的维护活动称为()。 4、()是对软件结构中模快间关联程度的一种度量。 5、()和数据字典共同构成系统的逻辑模型。 6、成本估计方法主要有自底向上估计、自顶向下估计和()三种类型。 7、软件产品在交付使用之前一般要经过单元测试、集成测试、()和系统测试。 8、子类自动共享父类数据结构和方法的机制是(),这是类之间的一种关系。 三、名词解释 1、渐增式测试 2、对象 3、集成测试 4、桩模块 5、结构化设计 四、简答题 1、简述软件工程研究的内容和它所面临的主要问题。 2、试说明面向对象的要素以及这些要素的具体含义。 3、简述测试与调试的主要区别。 五、应用题 某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字; 前缀:非‘0’或‘1’的三位数字; 后缀:4位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。

结构化方法与面向对象方法的比较分析

第29卷 第2期陕西师范大学学报(自然科学版)Vol.29 No.2 2001年6月Journal of Shaanxi Normal University(Natural Science Edition)J un.2001  文章编号:100123857(2001)022******* 结构化方法与面向对象方法的比较分析 张 莉, 裘国永 (陕西师范大学计算机科学学院,陕西西安710062) 摘 要:剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过 程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发 大型软件系统的同时可结合结构化方法. 关键词:软件开发;结构化方法;面向对象方法;问题域 中图分类号:TP316 文献标识码:A 20世纪60年代以来,软件的发展一直受到开发综合症“软件危机”的影响.为了提高软件质量,软件开发方法不断推陈出新,其中结构化方法[1,2]经过30多年的研究及应用,最为成熟且影响最大,直到现在仍有许多系统是用它开发的.而面向对象方法[1,3]是在结构化方法、信息建模方法等基础上发展起来的,近10年来发展较快,现已呈现出取代结构化方法的趋势.本文具体分析两者在软件开发中的差别以及面向对象方法的优越性. 1 结构化方法 结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界.用结构化开发的软件运行效率较高,且能够增加软件系统的可靠性. 1.1 结构化分析 它是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明.它主要采用的工具是数据流图DFD(Data Flow Diagram),利用DFD描述边界和数据处理过程的关系. 1.2 结构化设计 结构化设计是将数据流图表示的信息转换成程序结构的设计描述,在该阶段力求寻找功能的实现方法,采用系统结构图表示系统所具有的功能和功能之间的关系.设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系).第二步详细设计即过程设计,在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图.因此,结构化方法比较适合于像操作系统、实时处理系统等这样的以功能为主的系统. 1.3 结构化方法的局限 (1)结构化方法在需求分析中对问题域的认识和描述不是以问题域中固有的事物作为基 收稿日期:2000211228 作者简介:张莉(1969─),女,陕西西安人,陕西师范大学讲师

软件工程基本概念、工具与研究热点

实验1 软件工程基本概念、工具与研究热点 1.1 软件工程的计算环境 1.实验目的 1)理解软件工程的基本概念,熟悉软件、软件生存周期、软件生存周期过程和软件生存周期 各阶段的定义和内容。 2)通过Internet搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网 站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅导与支持来开展软件工程 应用实践。 3)通过Internet搜索与浏览,了解主流的软件工具和软件开发环境产品及发展和应用情况。 2.工具/准备工作 需要准备一台带有浏览器、能够访问因特网的计算机。 课内实验学时:2学时 3.实验内容与步骤 1)请查阅有关资料,给“软件”下一个权威性的定义:软件是一系列按照特定顺序组织的 计算机数据和指令的集合。 这个定义的来源是:百度百科(https://www.doczj.com/doc/df2778026.html,/view/47193.html) 2)“软件生存周期”是软件工程技术的重要基础,是对软件的一种长远发展的看法,这 种看法把软件开始开发之前和软件交付使用之后的一切活动都包括在软件生命周期之内。 查阅有关资料,给出“软件生命周期”的定义:软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废的生命周期。 这个定义的来源是:百度百科(https://www.doczj.com/doc/df2778026.html,/view/47193.html) 3)“软件生命周期过程”概念进一步完善了关于软件生命周期的定义,其主要内容是: 软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维 护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进, 每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。 这个定义内容的来源是:百度百科(https://www.doczj.com/doc/df2778026.html,/view/47193.html) 4)由于工作对象和范围的不同以及经验不同,对软件生命周期过程中各阶段的划分也不 尽相同。但是,这些不同划分中有许多相似之处。相关的软件工程国家标准把软件生存周期 划分为8个阶段,分别是:系统定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测 试,综合测试,运行维护 你认为把软件生存周期划分为不同阶段的意义何在:提高编辑软件的效率,有效缓解软 件危机,提高软件的质量及软件的科学、有效性。 5)上网搜索和浏览,了解软件工程技术的应用情况,看看哪些网站在做着软件工程的技 术支持工作?请记录搜索结果。

面向对象软件工程 第二章 答案

Object-Oriented Software Engineering: Using UML, Patterns, and Java: Solutions to Exercises 2. Modeling with UML: Solutions 2-1 Consider an ATM system. Identify at least three different actors that interact with this system. An actor is any entity (user or system) that interacts with the system of interest. For an ATM, this includes:?Bank Customer ?ATM Maintainer ?Central Bank Computer ? Thief The last actor is often referred to as a “misactor” in the literature, because it is an actor that interacts with the system but shouldn’t. 2–2Can the system under consideration be represented as an actor? Justify your answer. The system under consideration is not external to the system and shouldn’t be represented as an actor. There are a few cases, however, when representing the system as an actor may clarify the use case model. These include situations where the system initiates uses cases, for example, as time passes (Check for Outdated Articles, Send Daily Newsletter). 2–3What is the difference between a scenario and a use case? When do you use each construct? A scenario is an actual sequence of interactions (i.e., an instance) describing one speci ?c situation; a use case is a general sequence of interactions (i.e., a class) describing all possible scenarios associated with a situation. Scenarios are used as examples and for clarifying details with the client. Use cases are used as complete descriptions to specify a user task or a set of related system features. 2–4Draw a use case diagram for a ticket distributor for a train system. The system includes two actors: a traveler, who purchases different types of tickets, and a central computer system, which maintains a reference database for the tariff. Use cases should include: BuyOneWayTicket , BuyWeeklyCard , BuyMonthlyCard , UpdateTariff .Also include the following exceptional cases: Time-Out (i.e., traveler took too long to insert the right amount), TransactionAborted (i.e., traveler selected the cancel button without completing the transaction), DistributorOutOfChange , and DistributorOutOfPaper . Figure 2-1Example solution to Exercise 2–4. BuyOneWayTicket BuyWeeklyCard UpdateTariff TransactionAborted DistributorOutOfChange DistributorOutOfPaper DistributorException <> <> <>

文本预览
相关文档 最新文档