软件工程问答题总结1

1、面向对象程序设计有哪些优点?
1.1、易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
1.2、易扩展
通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;我们可以在标准的模
块上(这里所谓的”标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率;
1.3、模块化
封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。这样可以使程序具备更高的模块化程度,方便后期的维护和修改。同时,面向对象语言允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;
1.4、方便建模
虽然面向对象语言中的对象与现实生活中的对象并不是同个概念,但很多时候,往往可以使用现实生活中对象的概念抽象后稍作修改来进行建模,这大大方便了建模的过程。(但直接使用现实中的对象来建模有时会适得其反)。

2、面向对象程序设计 和 面向过程程序设计 的区别
设计方法 面向对象程序设计 面向过程程序设计
(也叫结构化编程)
定义 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
特点 封装、继承、多态 算法+数据结构
优势 适用于大型复杂系统,方便复用 适用于简单系统,容易理解
劣势 比较抽象 难以应对复杂系统,难以复用
设计语言 Java、Smalltalk、EIFFEL、C++、Objective-、C#、Python等 C、Fortran

3、简述uml实际建模过程
UML建模过程是一个迭代过程,每次迭代都建立相应的模型,分为以下几个阶段:
①分析阶段。建模的目的是捕捉系统的功能需求,分析、提取所开发系统的“客观世界”领域的类以及描述它们的合作关系。常以用例图为首选模型。
②设计阶段。建模的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。常建立以类图为主的静态模型,及包括状态模型、顺序模型、活动模型和合作模型等动态模型。
③实现阶段。主要工作就是进行编码,同时对已构造的模型作相应的修正。
④配置阶段。通过模型描述所开发系统的软硬件配置情况建立配置模型。
⑤测试阶段。使用前几个阶段所构造的模型来指导和协助测试工作。

4、简述UML的特点
统一了面向对象方法的基本概念。UML是在Booth方法、OMT方法和OOSE方法的基础上发展起来的,是这些方法的延续和发展。消除了不同方法在表示法和术语上的差异,避免了符号表示和理解上不必要的混乱。
(1)建模能力更强。
(2)独立开发过程。
(3)UML提出了许多新概念。
(4)UML符号表示考虑了许多方法的图形表示,删除了大量容易引起混乱的、多余的和极少使用的符号,增加了一些新的符号。还提出一些新的概念,如构造型、职责、扩展机制、线程、模式、合作图和活动图等。

5、简述uml的优点
首先UML是一种统一的、标准化的建模语言,它能为许许多多参与软件设计和开发的人提供一种公共“语言”,使他们能够基于共同的“模型”来理解业务、需求,理解软件和架构如何构造。
其次UML是一种应用面很广泛的建模语言,它不仅可以用于软件系统建模,还可以用于业务流程、业务知识、数据库、嵌入式等多个领域;而且对于不同的领域,其所采用的本质元素是相同的。这样:不同的人就可以基于相同的语言沟通;不同的领域模型就可以通过相同的机制进行互换与迁移,这就是统一的趋势。

6、简述uml的概念和作用
6.1、概念
uml为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。
6.2、uml关系  
依赖(Dependecy):是两个事物之间的语义关系,其中的一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义。  
关联(association):是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。  
泛化(generalization):是一种特殊/一般的关系。也可以看作是常说的继承关系。  
实现(realization):是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约。
6.3、 各UML图及特征  
用例图(use case Diagram):是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元。  
类图(Class Diagram):描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联  
对象图(Object Diagram):是类图的实例,几乎是用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类  
顺序图(sequence Diagram):显示对象之间的动态合作关系,它强调对象之间的消息发送的顺序,同时显示对象之间的交互。顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。  
协作图(Collaboration Diagram):描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系,其用途是表示一个类操作的实现。  
状态图(State Chart Diagram):是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成  
活动图(Activity Diagram):是状态图的一个变体,用来描述执行算法的工作流程中涉及到的活动。 描述一组顺序的或者并发的活动。  
构件图(Component diagram):为系统的构件建模型–构件即构造应用的软件单元–还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响。  
部署图(Deployment Diagram):描述位于节点实例上的运行构件实例的安排。节点上一组运行资源,如计算机、设备或者存储器。这个视图允许评估分配结果和资源分配。
6.4、uml的作用
以图形化的方法来描述构造一个软件系统,当把一个系统用图形化的方法建模以后,开发人员就可以根据建模的结果编写代码。

7、试讨论面向对象的特征
(1)、抽象性
抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。
(2)、继承性。
继承性是子类自动共享父类数据结构和方法的机bai,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
(3)、多态性
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

内容来自网络,如有侵权,请联系我删除。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值