文档库 最新最全的文档下载
当前位置:文档库 › 面向对象软件工程开发探讨

面向对象软件工程开发探讨

面向对象软件工程开发探讨
面向对象软件工程开发探讨

面向对象软件工程开发探讨

[摘要]

当前计算机软件的复杂性处于日益增长的趋势,不仅意味着软件技术的飞跃,同时也意味着计算机软件的规模也将随之不断扩大。在这样的背景下,面向对象的软件工程逐渐成为了软件开发过程中的主流技术,在近年来逐渐由面向对象编程向面向对象分析及面向对象设计转移,为计算机软件的发展开辟了新的道路,成为了一种主要的研究方向。

[关键词]面向对象;软件工程;开发

0前言

软件工程的设计在于对工程学的相关理论进行利用,并由此作为立足点来进行软件开发与维护。作为软件工程方法中的一大主流方向,面向对象的方法在近年来得到了较为广泛的应用。在该方法中,对象的主要特征属性在于数据与操作,其中数据对应于对象的内部属性特征,操作对应于对象的外部运动规律,通过利用面向对象的方法,软件开发与维护的便捷性可得到根本提升。本文特针对基于面向对象的软件工程开发进行了相关探究,现总结如下。

1面向对象的分析与设计概述

面向对象的分析过程主要包含以下两个阶段:①对用户需求进行提取与抽象概括;②建立模型。面向对象的设计过程主要是将用户的实际要求进行转换与设计,使其成为一个最优的方案。面向对象的方法在

由分析到设计的过程中,所有已知条件处于不断扩充的状态,在对其进行优化与完善后,最终使其成为模型。分析与设计虽属于两个不同的阶段,但两者不仅相互联系、相互影响,甚至可相互产生制约。一方面,分析的准确性可对所建立模型的实际意义产生直接影响,同时也是设计结果的折射;另一方面,设计阶段并非可脱离分析阶段独立运行,反之,在这一阶段中需对分析的结果进行反复的理解,由此对其进行完善。

2面对对象的开发方法研究

2.1Booch方法

Booch这一方法主要分为微观与宏观两个过程,两个过程之间存在一定联合,同时相互区别,笔者在此进行区别概述。微观的过程可概括为以下几个方面:①将类和对象抽象化,在问题中进行类和对象的挖掘,同时确定实现对象功能的行为;②对抽象出来的类的状态及行为进行建立,主要对类图进行利用,由此建立起识别对象与类的关系,对类对象的边界进行确认,并对相互协同作用的类对象进行辨别;③对算法与数据结构进行优化设计,以实现对象类与对象。与微观过程不同的是,宏观过程对于风险与结构更为侧重。进行宏观软件工程开发时,一些相应的成果及活动随之得以确定,为风险评估工作与修改工作提供了便利条件。在宏观过程中,结构与完整性两个因素得到了重点强调,对概念化和需求的建立提出了新的要求。在概念化的过程中,对于创造性具有较高的要求,且无固定模式与框架,建立核心的需求是该过程中的根本任务。另外,在分析过程中,需对软件开发所

需的模型进行提供,并充分对系统的行为引起重视,由此作为立足点,对系统的功能特点进行区分;设计过程中,主要侧重于系统结构的实现。

2.2OMT方法

OMT方法是一种在数据库的关系设计中具有广泛应用范围的方法,且在不断发展的过程中,在面向对象的分析与设计领域中也逐渐得到了应用。在实体与关系模型的基础上,OMT方法又做出了进一步拓展,主要包括类、行为、继承等。该方法的模型主要分为如下三种:①对象的模型。该模型主要对对象静态的结构进行表述,并对其相互之间的作用关系进行表达;②动态的模型。该模型主要对系统动态的变化特点进行描述,如随时间的变化等,状态与活动是其重要概念;③功能的模型。该模型主要将不同的数据值在系统内进行转换,如数据存储、数据流、控制流的概念等。总而言之,OMT方法对于分析数据密集型的信息系统具有重要的意义,同时具有较为广阔的发展前景。2.3UML方法

UML这一建模语言的特点在于易于表达、思路清晰、功能强大,包含着静态、动态、系统环境模型等。在这一方法中,可通过可视化建模工具所提供的代码来对模型进行转换,使其成为一种编程语言,不仅如此,还可通过对相应的工具与方法进行利用,使其产生逆向转换,使其成为UML。在UML方法中,基于例图、对象图、类图的模型可划分为静态模型;基于状态图、活动图的模型可划分为动态类型。这一方法的优势在于对先前各种建模技术的经验与特点做出了综合与总

结,并对其中的有利条件进行了吸收,形成一种标准的建模语言。例如,Web系统、数据的模型等新的思想均在UML技术中得到了充分体现,为其提供了深厚的内在支持。

3面向对象的软件工程开发的特点及优势

经实践研究表明,面向对象进行设计的软件工程在当前的计算机软件工程中具有较强的优势。第一,该方法与人类的思维方式更为贴近;第二,该方法具有较强的稳定性;第三,具有更强的可复用性;第四,在大型产品的开发与维护工作中可提供更为良好的便利条件。该方法的特点主要可概括如下:①对象属于基本元素,不同的基本元素之间可进行组合,形成复杂的软件对象,并由软件对象构成整体的系统;

②在对不同的对象类进行划分时,可各自对应的数据与方法;③层次结构可通过子类与父类来进行设定;④不同对象之间可进行相互联系。4结语

综上所述,面向对象的软件开发工程是一种具有较强先进性的方法,在计算机软件开发工作中具有重要的意义,但仍面临着一定的局限性,需在今后的实践中做出相应的完善。

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

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

面向对象软件开发教程

软件是在代码之外发生的一切事情。 如何继续学习过程 你将从本章学到什么? 两千年后(P2K)的软件环境是什么样的? P2K软件环境中的技术和技能是什么?有关P2K技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位? 如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K 环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在 Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增 量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本 书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境, 必需考虑下面几项内容:

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)模式

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

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

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

浅析软件工程中面向对象的思想和方法

浅析软件工程中面向对象的思想和方法 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。在20 世纪60 年代以前, 软件开发者构造的软件系统大多都是较小的, 且相对简单。编程语言及编程环境也相对简单, 随着软件复杂性的增长, 为了更好地维护代码, 软件开发也需要方法来进行约束。传统的方法中, 结构化方法和基于建模方法是典型的软件开发方法。结构化方法是结构化分析、结构化设计和结构化编程的总称。结构化方法的思想萌发于20 世纪60 年代, 是在70 年代由Tom DeMacro 和Ed Yourdon 等人被系统地进出来。其目的在于, 提供一个有序的机制, 通过抽象来理解待开发的系统, 试图产生结构良好的软件系统。但对于较复杂的系统而言, 容易导致模块的低内聚和模块间的高耦合, 从面使得系统缺乏灵活性和可维护性。基于建模方法在20 世纪70 年代末提出, 即Peter Chen 的实体———关系法与Ed Codd 的关系数据库理论相结合提出的一种新的软件开发方法。其强调对信息实体建模, 而不是对象建模。结构化方法和基于建模方法都没有较强地描述系统的动态行为的能力。随着计算机技术的飞速发展, 计算机管理系统应用的普及, 企业信息化势在必行。传统开发方法结

构化开发的软件存在很多问题, 其有稳定性、可修改性和可重用性都比较差, 生产效率低等缺陷, 这是因为传统的软件开发是面向过程的。然而, 用户需求的变化大部分是针对功能的, 采用面向对象方法开发可以满足用户的需求, 因为面向对象有以下优点: 能够比较自然地反映现实事物, 可重用性、可维护性和可扩展性比较强。 第二章面向对象概述 什么是面向对象呢?“面向对象”本身没有任何意义。“对象”大概是英语中最普通的一个单词。它在字典中的定义是这样的。对象:能感觉到或能够被感觉到的东西。换句话说,对象可以是任何东西! “面向”也没有任何特别的含义,它的定义是“指向”。在这种定义下,“面向对象”被理解为形容词。因此,面向对象可以定义成这样,面向对象:指向你可以想到的任何东西。 毫无疑问,软件工业无法为“面向对象”下一个统一的定义。这种模糊性使得任何一个软件零售商都声称他们的商品是“面向对象”的。 2.1面向对象的基本概念 尽管权威人士对面向对象的概念没有达成一致的意见,但从程序设计方法的角度来看, 面向对象是一种新的程序设计范型。其基本思想是使用对象、类、封装、继承、关联、聚合、消息、多态性等基本概念来进行程序设计。

软件工程复习题含答案-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位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

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

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 <> <> <>

面向对象软件工程—课后作业

面向对象软件工程 第八章 8.1.什么是面向对象方法学,它有哪些优点? 答:面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。优点:1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好;4、适合用于大型软件产品;5、所开发的软件有较好的可维护性;6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解;8、易于测试和调式。 8.2.什么是对象,它与传统的数据有何异同? 答:对象是对问题域中某个实体的抽象。相对于传统数据的静态被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。 8.3.什么是类? 答:类是对具有相同数据和相同操作的一组相似对象的定义。

8.4.什么是继承? 答:继承是指能够直接获得已有事物的性质和特征,而不必重复定义他们。 8.5.什么是模型,开发软件为何要建模? 答:所谓模型就是为了理解事物而对该事物做出的一种抽象,是对事物的一种无歧视定义的书面描述。由于模型忽略了事物的非本质东西,因此模型比原始事物更容易操作。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了降低复杂性。人的头脑每次只能出来少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。 8.6.什么是对象模型,建立对象模型时主要使用哪些图形符号,这些符号的含义是什么? 答:对象模型表示静态的、结构化的系统性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。在UML中,用类图来建立对象模型,表示一个类及属于该类的对象。 8.7.什么是动态模型,建立动态模型时主要使用哪些图形符号,这些符号的含义是什么? 答:动态模型时描述系统控制结构,即行为化的一种模型。在UML

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

题目 XX系统的研究与分析

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

传统软件工程与面向对象分析的区别

传统软件工程与面向对象的区别 摘要:自然语言和编程语言之间的鸿沟,是软件开发过程中最难跨越的阶段.早期的软件开发所面临的问题域比较简单.从认识清楚要解决的问题,到把这种认识用程序表达出来,还不是很困难的事情。软件危机的出现,促进了软件工程学的形成和发展.由于面向对象编程语言的发展,面向对象的软件被设计成一系列的对象及其之间通过消息的相互作用,这些对象从根本上形成了问题的模型,并由这些对象共同作用于一个解决方案。面向对象的程序设计又提供了信息隐蔽、继承、多态和动态绑定等机制。这种软件开发方法固有的特性,给软件测试理论、技术、方法等方面带来了巨大的影响。 关键字:程序软件面向对象软件工程 Abstract:The gap between natural language and programming language is the most difficult in the software development process across the stage.The problems faced by early in the software development domain is relatively simple.Recognize clearly problems to be solved, this understanding program expressed, is not very difficult thing.Software crisis, promote the formation and development of software engineering.In order to facing to the development of the object plait distance language, face to the software of object to be design a series of object and it passes the interaction of news, these objects by the root became the model of problem, and from these object common function are at a solution.The program design which faces to object provided an information again concealment, inherit, many Tais and dynamic state bind settle etc. mechanism.This kind of method inherent property of the software development, give software test the theories, technique, method...etc. brought huge influence。 Keywords: Program Software object-oriented software engineering 1、传统软件工程方法。 传统方法学[1]在软件开发过程中占据相当大的比重,因为其悠久的历史而为很多软件工程师青睐。传统方法学又称生命周期方法学或结构化范型。一个软件从开始计划起,到废弃不用止,称为软件的生命周期。在传统的软件工程方法中,软件的生存周期分为需求分析、总体设计、详细设计、编程和测试几个阶段。 传统方法学使用的是结构化分析技术来完成需求分析阶段的工作。软件工程学中的需求分析具有两方面的意义。在认识事物方面,它具有一整套分析、认识问题域的方法、原则和策略。这些方法、原则和策略使开发人员对问题域的理解比不遵循软件工程方法更为全面、深刻和有效。在描述事物方面,它具有一套表示体系和文档规范。但是,传统的软件工程方法学中的需求分析在上述两方面都存在不足.它在全局范围内以功能、数据或数据流为中心来进行分析。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。因此,传统的分析方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难。

面向对象的分析过程

面向对象的分析过程 摘要 分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对 象的方法进行改造的原因。一些面向对象方法存在的不足。 关键词:仿真,面向对象,岸边集装箱起重机,训练器 面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。 面向对象=对象(Object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 从下图中我们可以看出,面向对象的开发方法明显不同。 面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下: 1.可理解性 面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。 2.可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。 3.模块性 面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。 4.图形用户界面

面向对象的软件开发过程

面向对象的软件开发过程 【摘要】本文介绍了面向对象技术的基本思想,阐述了面向对象软件开发的分析与设计实现过程,说明了面向对象技术在软件开发中的应用,总结出面向对象技术在程序开发中的优势。 【关键词】面向对象;软件开发 1面向对象技术的基本思想 随着计算机应用领域的不断扩大,软件的规模和复杂性也在不断增加,我们需要按照更科学、有效的方法组织软件的生产与管理。面向对象技术首先在编程领域兴起,并逐渐发展成熟,并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。 面向对象技术首先在编程领域兴起,并逐渐发展成熟,并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。面向对象方法的基本思想是:从客观存在的事物(即对象) 出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。 具体地讲,面向对象技术是从问题域中客观存在的事物出发构造软件系统,用对象作为这些事物的抽象表示,并以此作为系统的基本构成单位。每个对象都有其属性和方法,属性表示事物的静态特征, 方法表示事物的动态特征。对象的属性和方法结合为一体,对外屏蔽其内部细节,称作封装。把具有相同属性和相同方法的对象归为一类,类是对象的抽象描述,每个对象是它所属类的一个实例。通过在不同程度上运用抽象的原则,可以得到基类和子类,子类继承基类的属性和方法。 面向对象的三个基本特征: 封装——是把客观事物封装成抽象的类,可以隐藏实现细节,使得代码模块化; 继承——使用现有类的所有功能,并在无需重写原来类的情况下对这些功能进行扩展; 多态——指同一消息作用于不同的对象时,具有不同的处理方案和处理结果,即所谓的“同一接口, 多种方法”,增强了程序的灵活性。 2面向对象的分析与设计实现 面向对象的程序设计以解决的问题中所涉及的各种对象为主要矛盾,力图从实际问题中抽象出封装了数据和操作的对象,通过定义属性和操作来表述他们的特征和功能,定义接口来描述他们的地位及与其他对象的关系,最终形成一个可理解、可扩充、可维护的动态对象模型。面向对象的软件开发过程可以大体划分为面向对象的分析,面向对象的设计,面向对象的实现三个阶段。 2.1面向对象的分析 面向对象的分析主要作用是明确用户的需求,并用标准化的面向对象的模型规范来表述这一需求,最后形成面向对象的分析模型。图1展示的是面向对象系统分析示意图。 图1面向对象系统分析示意图 面向对象的分析分为如下几步: 2.1.1确定需求 明确用户的需求,包括对用户需求的全面理解和分析;明确所要开发的软件系统的职责界限;进行可行性研究和制订方案,交给用户确认。

软件工程复习-面向对象的分析与设计题

此部分内容包括教材第2、7、8、10章内容 一、填空题 1. 面向对象开发方法一改过去传统的以_______________为基础的______________的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_______的集合,其______________又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的______,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与____________在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的________、________、_________等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服____________。因此,它已成为成熟的广为采用的软件开发方法。 2. 对象是客观实体的抽象表示,是由__________________________和 ________________________两部分组成。而______是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___________。通过________关系又可形成一种类层次结构。在类层次结构的不同类中,可用相同的函数名实现功能不同的函数,面向对象技术的这种特性叫做___________。 3. UML中用于描述系统的交互行为的视图称为动态视图,包括________、 _________、__________和__________。 二、选择题 1、面向对象程序设计将描述事物的数据与( ) 封装在一起,作为一个相互 依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 2、()是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B.协作图 C. 顺序图 D. 用例图 3、( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心。 A.类图 B. 构件图 C. 类图 D. 部署图 4、()描述了一组交互对象间的动态协作关系,它表示完成某项行为的 对象和这些对象之间传递消息的时间顺序。 A.类图 B. 协作图 C. 用例图 D. 顺序图 5、在确定类时,候选的类是所有的________。 A)名词 B)形容词 C)动词 D)代词 6、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦 合、高内聚以外,还有________。 A)隐藏复杂性 B)类的开发

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

《软件工程模拟试题及参考答案》(一) 一、单向选择题(四选一、每小题3分,共18分) 1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。a对应 b 映射 c 反映 d 反射 2、盒图也称为(D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。0802 流程图框图判定表N-S图 3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。1001 程序数据逻辑物理 4、人机界面的风格大致经过了(B)代的演变。 三四五六 5、以下不属于白盒测试技术的是(D)1402 逻辑覆盖基本路径测试循环覆盖测试等价类划分 6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。1501 纠错性维护适应性维护改善性维护预防性维护 二、填空题(每空2分,共18分) 1.文档—一种数据媒体和其上所记录的(数据)。0101 2.机器语言、汇编语言:依赖于机器,面向(机器)0101 3.软件有效性,指软件系统的时间和(空间)效率。0103 4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。0103 5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。0103 6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。0402 7.一个软件的深度是指其控制的(层数)。0801 8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代 码的过程叫(编码)过程。1301 9.软件维护是软件生命周期的(最后)一个阶段。1501 三、判断题(每小题2分,共24分,错误打X、正确打√) 1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。(√)0102 2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X)0206 3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料, 并从中提取出有价值的需求。(√)0402 4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的 算法等场合。(√)0402 5.流程图也称为程序框图是最常用的一种表示法。(√)0802 6.面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基本形式表 示数据等步骤。(√)1001 7.理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)1201 8.数据输入的一般准则中包括尽量增加用户输入的动作。(X)1204 9.用穷举测试是较现实的测试方法。(X)1401 四、简答题(每小题4分,共20分) 1、计算机软件——与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。0101 2、需求分析的任务是什么?0103 需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。 3、软件项目的成本管理——估算软件项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用。0201 4、快速原型技术的基本思想是什么?0402 在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开

面向对象分析与设计试题及其答案

面向对象分析与设计试题B卷 一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2 分,共20 分) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中()是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 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.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以___功能分析___为基础的__面向过程__的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

相关文档