文章目录
- 一:传统软件工程部分
-
- (1)非常重要
- (2)可以了解
- 二:面向对象设计部分
-
- (1)非常重要
- (2)了解
一:传统软件工程部分
(1)非常重要
1.
【答案】
软件工程定义:采用工程的概念、技术、原理和方法,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它
软件工程的特征
3.软件生命周期阶段如何划分/p>
【答案】
【答案】
①瀑布模型
优点:
- 强迫开发人员使用规范的方法
- 严格规定了每个阶段提交的文档
- 要求每个阶段交出的产品都必须经过质量保证小组的验证
- 对文档的约束,使得软件维护变得容易一些,且能降低软件预算
缺点
- 在软件开发初期就要求做出正确的,全面的,完整的需求分析对多数应用软件来说是很困难的
- 在需求分析阶段,在需求确定后,无法及时验证需求是否正确,完整
- 作为整体开发的瀑布模型,由于不支持产品演化,缺乏灵活性,对开发过程中很难发现的错误,只有在产品最终运行时才能发现
适用范围
- 用户的需求非常清晰全面,且在开发过程中没有或很少有变化
- 开发人员对软件的应用领域很熟悉
- 用户的使用环境非常稳定
- 开发工作对用户的参与要求很低
②快速原型模型
优点:
- 开发的软件通常满足用户需求
- 软件开发基本是线性过程
缺点
- 准确原型设计困难
- 原型理解可能不同
- 不利于开发人员创新
适用范围
- 对所开发的领域比较熟悉且与快速的原型开发工具
- 项目招投标时,可以以原型模型作为软件的开发模型
- 进行产品移植或升级时,或对已有产品原型进行客户化工作时
③:增量模型
优点
- 短时间内可提交部分功能
- 逐渐增加产品功能,用户适应产品快
缺点
- 增量构件划分及集成困难
- 容易退化成边做边改模型
④:螺旋模型
优点
- 利于把软件质量作为软件的开发目标
- 减少测试
- 维护和开发不分开
缺点
- 风险估计困难
⑤:喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性
【答案】
可行性研究的必要性:开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的实质是要进行一次大大压缩简化了 的系统分析和设计过程,就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决
涉及方面
- 经济可行性:经济效益是否大于开发成本
- 技术可行性:现有技术能够实现
- 操作可行性:系统操作方式是否可行
- 其它可行性:法律、 会效益
7.可行性研究的目的、本质、任务、过程(步骤)
【答案】
可行性研究的目的:用最小的代价在最小的时间内确定问题是否可以被解决
可行性研究的本质:系统分析和设计过程的大大压缩和简化,在较高层次上以较为抽象的方式进行系统的分析和设计过程
可行性研究的任务:
8.数据流图的概念、特点、符 、用途(目的)
【答案】
DFD的概念:描述信息流和数据从输入到输出所经受的变换。没有任何具体物理部件,只是描绘数据在软件中流动和被处理的逻辑过程
DFD的特点:
DFD的用途(目的):
数据字典的符 :
10.
12.需求分析的任务
【答案】
方法
总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统
17.总体设计的步骤
【答案】
19.请简述启发式规则
【答案】
- 改进软件结构以提高模块独立性
- 模块的规模应该适当
- 深度、宽度、扇入、扇出数目应该适当
- 模块的作用域应该在控制域之内
- 力争降低模块接口的复杂程度
- 设计单入口单出口的模块
- 模块的功能应该可以预测但要防止过分局限
20.程序流图的符
【答案】
22.盒图的符
【答案】
25.问题分析图(PAD图)的优点
【答案】
27.判定表的优缺点
【答案】
29.环形复杂度计算方法
【答案】
31.简述编码风格
【答案】
33.软件测试的准则
【答案】
35.简述单元测试的测试重点
【答案】
37.简述自底向上集成
【答案】
39.简述黑盒测试中测试用例的设计标准
【答案】
- 能够减少为达到合理测试所需要设计的测试用例的总数
- 能够告诉人们,是否存在某些类型的错误,而不是仅仅指出与特定测试相关的错误是否存在
40.简述等价类划分法(了解,特别注意规则)
【答案】
42.请简述软件维护的特点
【答案】
【答案】
【答案】
- 通常,对一个已有的软件做重大修改意味着对软件功能做较大变更或增加较多新功能,这往往需要修改软件的体系结构。因此,了解原有软件的总体情况是很重要的。程序的规格说明书准确地描述了对软件系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求及将来可能提出的需求,对了解已有软件的总体情况有很大帮助。在对已有软件做重大修改之前仔细阅读、认真研究这份文档, 可以避免许多修改错误。因此,应该选取这份文档
- 有经验的软件工程师通过阅读含有适当数量注解的源程序,不难搞清程序的实现算法,没有描述详细设计结果的文档并不会给维护工作带来太大困难。此外,为了修改程序代码,原有程序的清单是必不可少的。因此,为了对这个软件做重大修改应该选取的第二份文档是源程序清单
45.简述代码行技术方法
【答案】
47.简述功能点技术信息域特性
【答案】
49.简述软件指令保证措施
【答案】
51.简述CMM
【答案】
2.结构化设计与面向对象设计的区别
UML 里面有哪些图
有哪些常用的设计模式
(2)可以了解
1.什么是软件件的特点是什么/p>
【答案】
【答案】
结构化范型
- 采用结构化技术完成软件开发的各项任务
- 把软件生命周期划分不同阶段
- 每个阶段开始和结束都有严格标准
- 每个阶段结束后要有严格审查
面向对象范型
- 把对象作为融合了数据及在数据上的操作行为的统一软件构件
- 把所有对象划分为类
- 按照父类与子类的关系,把若干类组成层次结构的系统
- 对象彼此间仅通过消息互相联系
4。
【答案】
优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性
缺点:缺点: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,他没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性
Raitional统一过程主要适用于何种项目br> 说明敏捷过程适用范围
说明微软过程的适用范围
【答案】
大型的需求不断变化的复杂软件系统项目
适用于商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束
适用于商业环境下具有有限资源和有限开发时间约束的项目的软件过程模式
7.数据模型定义、作用
为了把用户的数据要求清楚、准确地描述出来,通常建立一个概念性的数据模型(信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实环境,而且与在软件系统中的实现方法无关
8.简述层次图和HIPO图
【答案】
- 层次图:层次图用于描绘软件的层次结构,其中一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系层次图很适于在自顶向下设计软件的过程中使用。通常用层次图作为描绘软件结构的文档
- HIPO图:HIPO图本质就是层次图加编 。也即HIPO图=层次图+输入/处理/输出图
9.简述结构图
【答案】
11.什么是流图
【答案】
流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据具体操作以及分支或循环的具体条件,流图通常被用来突出表示程序的控制流
12.流图的符
【答案】
- 结点:用圆表示,一个圆代表一条或多条语句。一个顺序结构可以合并一个结点
- 边:箭头线称为边,代表控制流。在流图中一条边必须终止于-一个结点,即使这个结点并不代表任何语句
- 区域:由边和结点围成的面积称为区域,计算区域时包括图外部未被围起来的区域
13.映射为流图的方法
【答案】
①:对于顺序结构,一个顺序处理和下一个选择可以映射为一个结点
(以下部分是拓展)
1.如何实现容错技术常采用哪些方法/p>
【答案】
实现容错技术主要手段是冗余,有以下四类
- 结构冗余
- 信息冗余
- 时间冗余
- 冗余附加技术
2.为什么要进行软件评审
【答案】
因为软件生存期每个阶段的工作都有可能引入人为错误,如果某一阶段的错误不及时纠正,就会传播到开发的后续阶段,引出更多错误,因此,进行软件评审是必要的,评审可以揭露软件中的缺陷然后加以改正
3.谈谈你对软件工程学科的认识和看法
所谓软件工程就是和建造房子一样的图纸,为开发软件提供一种策略,方法,可以设计出更加实用的软件,通过软件工程的学习,我们得到一种策略,来沟通软件过程、实践、模式等等。对一款软件从开始到结束的管理,从宏观到微观的把控,我们需要做好每个阶段,
软件工程,是应对软件危机提出的,为生产可复用,易读,易懂,好测试,好维护的软件而形成的编程规范。
是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。涉及邻域包括但不限于:软件需求分析,软件设计,软件构件 ,软件测试和维护等方面。而且涉及学科较多,计算机科学,计算机 工程,管理学,数学,项目管理学。质量管理,系统工程,用户体验设计等。
总之,学好软件工程这门理论课,还是首先要有大局意识和整体把握。因为整体的把握就是为进一步的开发提供了方向
4.你认为一名合格的软件工程师应具备哪些素质
【答案】
- 扎实的编码、编程能力
- 规范意识和团队精神
- 认识和运用数据库的能力
- 较强的英语阅读和写作能力
- 具有软件工程的概念
- 求知欲和进取心
5.你认为软件开发和软件管理的关系是什么”
软件项目管理是软件工程的普适性活动,它先于任何技术活动之前开始,持续贯穿于整个软件开发的建模,构造和部署之中。优秀的软件项目管理是开发优秀软件的必要前提,也是软件开发必不可少的组成部分。它将人员,产品,过程和项目统筹规划,能够有效预防和解决软件开发中的协调与沟通问题。
二:面向对象设计部分
(1)非常重要
1.什么是面向对象方法学有哪些优点/p>
【答案】
①定义

②:优点
- 与人类思维习惯一致
- 稳定性好
- 可重用性好
- 较易开发大型软件产品
- 可维护性好
2.什么是“对象”与传统的数据有何异同/p>
【答案】
- 对象是从客观世界中的实体抽象而来的,面向对象的软件系统是由对象组成的,其任何要素都是对象
- 相对于传统数据结构的静态被处理,对象既有静态的属性,也有动态的行为,是进行处理的主体
3.什么是类
【答案
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!