首页 > 其他分享 >软件工程期末考试简答题合集

软件工程期末考试简答题合集

时间:2024-12-06 09:57:08浏览次数:8  
标签:简答题 对象 模型 期末考试 软件工程 模块 内聚 耦合 软件

1简述软件设计的过程

软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和角度,是将需求转变为软件陈述的过程,是迭代的过程。

软件设计,要根据需求规格说明书,对整个设计过程进行计划,然后实施具体的设计过程,即“先整体,再局部”,也是不断迭代和精化的过程。

然后需要对生成的设计规格说明书进行评审,启动 质量评价的标准,若未通过评审,需重新修改设计,直至评审通过,确定最后定型的过程本身。进入后续阶段,完成软件设计过程。

2.简述结构化程序设计方法的基本特点

1)尽可能少用goto语句的程序设计方法。

2)每个代码块都单入单出。

3)使用控制结构:顺序、选择和循环。

4) 自顶向下逐步求精。

3.衡量模块独立性的两个定性标准是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?

1)衡量模块独立性的两个定性标准是内聚和耦合(2分)。

2)耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度(2分)。

3)在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(1分)。

4.什么是黑盒测试法?

1)黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程(2分)。

2)它只检查程序功能是否能照规格说明书的规定正常使用(1分),

3)程序是否能适当地接收输入数据,产生正确地输出信息(1分)。

5如何选择程序设计语言的工程特性

1.)系统用户的要求

2.)可以使用的编译程序

3).可以得到的软件工具

4).工程规模

5.)程序员的知识

6).软件可移植性的要求

7).软件的应用领域

6.简述面向对象的4个要点的含义。

面向对象的4个要点是:对象分解、数据专有、继承、封装性。(1分)

1)对象分解:认为客观世界是由各种对象组成的。  (1分)

2)数据专有,方法共享:把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 (1分)

3)继承:按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(1分)

4)封装性:对象彼此之间仅能通过传递消息互相联系。(1分)

7.软件维护的过程

在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。 软件维护的过程:

(1) 确认维护要求。(1分)

(2) 对于改正性维护申请,评价错误的严重性。对于严重的错误,立即安排人员,分析问题原因,进行"救火"性的紧急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。(2分)

(3) 对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。(2分)

8.软件维护的目的和主要任务是什么?维护的类型有哪些?

软件维护是软件生命周期中最后一个、持续时间最长的阶段。

主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件。

目的是提高软件的可靠性、可用性,延长软件的寿命。

维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)

9.什么是耦合?模块的耦合包括哪些类型?

耦合是对一个软件结构内不同模块之间互连程度的度量。

模块的耦合包括以下几种类型:

数据耦合,

控制耦合,

特征耦合,

公共环境耦合,

内容耦合,

标记耦合,

无耦合/非直接耦合

10什么是内聚?模块的内聚包括哪些类型?

内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展

模块的内聚包括以下几种类型:低内聚 — 偶然内聚,逻辑内聚,时间内聚  中内聚 — 过程内聚,通信内聚; 高内聚 — 顺序内聚,功能内聚

11.什么是编码风格?为什么要强调编码风格?

编码风格包括以下内容:程序内部良好的文档(注释)、数据说明、语句构造、输入输出和效率保障等。

因为编码风格对软件的可读性、可维护性、可靠性、可用性很重要,所以要强调编码风格。

12什么是软件危机?软件危机的表现是什么?其产生的原因是什么?

软件发展的第二阶段末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的,大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决方法,使问题积累起来,形成了尖锐的矛盾,因此导致了软件危机。

13请说明 “三个模型” 的定义,以及三者之间的关系。

功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。

业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。

数据模型是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。

功能模型和业务模型是在需求分析时建模,是两个基本点。数据模型是一个中心,在设计时建模。功能模型和业务模型给数据模型提供数据与维护数据,数据模型支持功能模型和业务模型的正常运行。通常,数据模型建模用 Power Designer,ER win 或 Oracle Designer 工具实现;功能模型用功能点列表(或用况图)表示;业务模型用自然语言加上流程图(或顺序图)表示。

14面向对象实现” 的目标是什么?

答:“面向对象实现” 的目标是:按照《详细设计说明书》中对数据结构、算法分析和模块实现等方面的设计说明,用面向对象的语言,将这些部件组装起来,分别实现各模块的功能,从而实现目标系统的功能、性能、接口、界面等要求。

15.面向对象的三个特性及解释

封装、寄存、多态

封装因为对象都对自己负责,所以,对象的很多东西都不需要或不可以暴露给其他对象。

比如:a不需要将所有的信息告诉别人;手机不能不封装而把CPU、内存卡等等都暴露给用户。封装解决了数据的安全性,内在也体现了‘每个对象都对自己负责’。

继承主要是实现了代码的复用。实现代码的复用,一种是组合、一种是继承,

多态定义对于多态,我们先下一个定义:同一个操作,作用于不同的对象,会产生不同的结果。说白了,就是一个相同的指令发出,不同的对象会对这个指令有不同的反应,所以称为多态。

16瀑布模型的优缺点:

优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

缺点:1)开发过程一般不能逆转,否则代价太大;

2)实际的项目开发很难严格按该模型进行;

3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。

4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。

17.快速原型模型优缺点

优点

解决需求不明确带来的风险,适用于不能提前确定项目需求的项目

缺点

不利于开发人员对产品进行扩展

18.迭代模型优缺点

优点

1、第一个可交付版本的软件所需的成本与时间较小

2、能够适应客户的需求变更,当需求变化时,只需要修改某一个组件即可。

缺点

1、如果对用户需求的变更没有整体的规划,可能会变化为"边做边开发"的模式。

2、最终集成各个组件时,可能会出现集成失败的风险。

19喷泉模型优缺点

该模型主要采用面向对象技术。当客户需求基本类似时,在开发过程中可以采用面向对象的开发方式,将相同的模块全部封装起来,以便于下次功能开发时使用。模型如图所示:

优点

支持软件重用,并且开发过程无间隙性,分析、设计编码无明显边界,可交叉迭代进行。使软件在无法排除重大风险时有机会停止,以减小损失。

缺点

1、由于喷泉模型在各个阶段是重叠的,即每个对象都有分析、设计和编码阶段,所以需要大量开发人员。

2、大量开发人员不利于项目的管理。

3、该模型需要严格管理文档,会增加审核的难度增大。

20.螺旋模型优缺点

优点

螺旋模型强调风险分析,对每个演化层出现的风险都所了解,继而做出应有反应。因此特别适合用于庞大、复杂并且具有高风险的系统。螺旋模型支持用户需求的动态变化有助于提高产品的适应能力。

缺点

过多的迭代次数会增加开发成本,延迟提交时间。

21敏捷模型

优点

1、用户很快可以看到一个基线架构版的产品

2、敏捷注重市场快速反应能力,客户前期满意度高。

缺点

1、注重人员的沟通

2、忽略文档的重要性

3、如果项目人员流动大太,会增加项目维护难度

4、软件之前版本的可重现性、可回溯性较低

5、对于较大的项目,人员越多,面对面的有效沟通越困难。因此,该模型适用于小型项目的开发。

标签:简答题,对象,模型,期末考试,软件工程,模块,内聚,耦合,软件
From: https://blog.csdn.net/qq_52380715/article/details/144265385

相关文章

  • 工作术: 软件工程师的时间管理
    简单整理如下处理邮件(10~15min)早上的第一件事就是浏览电子邮件和Teams信息。然后根据如下步骤进行处理对于紧急的事件或是可以立马回复的事件,立即着手处理对重要但不紧急的事件,移到待办事项列表,以便稍后检查codereview(1H)趁着早上的头脑清醒,开始审查团队提交的代码。每......
  • 《JAVA软件工程师》理论考试【一】
    《JAVA软件工程师》理论考试【一】同步方法和同步代码块的区别是什么?首先同步方法和同步代码块都有锁,同步方法需要创建一个任意对象,并且要把对象放入同步代码块中的参数中同步方代码块定义,只需要把共享的代码放入run方法中的同步代码块中即可,(需要创建任意对象),同步方法定义......
  • 软件工程课堂测试九
    软件需求与分析课堂测试九—结构化建模分析II(100分)(45分钟)            1、 需求描述:请设计一个仓储管理系统原型系统,该系统支持多个仓库的设立。统一设立物资台账,物资台账需包含物资编码、物资名称、规格、材质、供应商、品牌、物资分类,用户可以自定义物资的物......
  • 【软件工程】一篇入门软件开发中的需求分析
    ......
  • 软件工程期末复习
    Part1:软件工程基本概念软件=程序+文档+数据在软件工程中,软件通常被定为程序、文档和数据的集合。程序是按事先设计的功能和性能要求编写的指令序列;程序是完成指定功能的一段特定语言代码。文档是描述程序操作和使用的文档,是与程序开发、维护和使用有关的图文材料;数据是程序运......
  • 软件工程——期末复习(适用于sdut)
    名词解释:名词解释--人月答案:人月是软件开发工作量的单位,1人月表示1个程序员1个月的工作时间所开发的代码量。请解释软件缺陷、错误和失败,并简单举例说明。答案:缺陷(defect)指系统代码中存在不正确的地方。错误(error)指系统执行到缺陷代码,就可能是的执行结果不符合预期且无法......
  • 从软件工程的角度,谈模块为什么总是不兼容
    前言今天刚刷上Apatch,发现其没有提供Zygisk,又去酷安搜了一搜,似乎有人反应刷Lsposed不起作用,大致了解了一下,并查了些资料。下面我开始猜测以及进行理论。说是从软件工程出发,但是实际上我并不算一个好学生,更无法代表软件工程,这或许很标题党,但是我确实想以这个名称命名。一言蔽之......
  • 差旅费报销管理信息系统(2022java期末考试练习)
    2.系统要求与评分标准:2.1页面要求(1)系统可以通过浏览器直接访问;(1分)(2)各个功能页面整体风格统一;(3)首页为用户登录页面,职员、职员经理、总经理、财务人员四种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户、密码两个文本框,以及登录按钮;(4分)(4)职......
  • 差旅费报销管理信息系统进度1(2022java期末考试练习)接上题目
    目前做了第一个表出差申请的增删改查项目结构mapper中放sql语句service写函数定义web写具体servlet操作前端用html+jsp......
  • 软件工程第19章小测
    单项选择题第1题集成测试()。主要采用白盒测试方式,目的是证明模块功能正确。主要采用黑盒测试,主要是发现模块内程序错误。是证明模块功能正确性的测试,主要由开发人员完成。主要采用白盒+黑盒的测试方式,是为了检验系统功能。 (我的答案)第2题单元测试是()。是测试人员完成的......