目录

  • 1.什么是软件生命周期?
  • 2.什么是瀑布模型?软件工程的瀑布模型有哪几个阶段?他有什么优缺点?它适合哪种用户?
  • 3.什么是模块?区分模块的要素是什么?
  • 4.什么是模块化设计?模块的独立程度可以由哪两个定性标准来度量?
  • 5.软件工程中的三大模型是什么?
  • 6.什么是模块间的耦合度?耦合强度的衡量因素有哪些?
  • 7.有哪些常用的设计模式?
  • 8.CMM共有多少个等级,每个等级分别代表什么?
  • 9.什么是软件工程?
  • 10.软件生命周期划分为哪几个阶段?
  • 11.软件工程中常见的模型有哪些?
  • 12.黑盒测试和白盒测试有什么区别?
  • 13.什么是软件危机?产生的原因有哪些?
  • 14.什么是软件过程?
  • 15.软件工程为什么要测试?
  • 16.IPO图、层次图、DFD图的使用阶段、作用、描述等。

注:部分题目答案来源于网络

1.什么是软件生命周期?

答:软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废或停止使用的生命周期。周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。

2.什么是瀑布模型?软件工程的瀑布模型有哪几个阶段?他有什么优缺点?它适合哪种用户?

(1)瀑布模型是指将软件生存周期的各项活动规定按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。其过程是将上一项活动的输出作为该项活动的输入,利用这一输入实施该项活动应完成的内容,然后对当前活动的工作结果进行验证,如果验证通过,则将该结果作为下一项活动的输入,并且继续进行下一项活动,否则就返回修改。
(2)计划阶段、开发阶段、运行维护阶段
计划阶段包括:问题定义,可行性研究,需求分析
开发阶段包括:概要设计,详细设计,软件实现,软件测试
运行维护阶段包括:运行维护
(3)优缺点如下:

优点 缺点
1)为项目提供了按阶段划分的检查点。2)当前一阶段完成后,您只需要去关注后续阶段。3)可在迭代模型中应用瀑布模型4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。4)瀑布模型的突出缺点是不适应用户需求的变化。

(4)瀑布模型适合于项目结构比较固定、基本不变化的用户。

3.什么是模块?区分模块的要素是什么?

(1)软件工程中的模块是指整个程序中一些相对独立的程序单元,每个程序单元完成和实现一个相对独立的软件功能,通俗点就是一些功能独立的程序段。
(2)区分模块的要素是功能、逻辑和状态。

4.什么是模块化设计?模块的独立程度可以由哪两个定性标准来度量?

(1)按适当的原则吧软件划分为一个个较小相关而又独立的模块称为模块化设计。
(2)模块的独立程度可以由内聚和耦合来度量。
耦合是模块和模块之间的,尽量追求低耦合
内聚是模块内元素之间的,尽量追求低内聚

5.软件工程中的三大模型是什么?

(1)软件工程中的三个模型:瀑布模型、增量模型、喷泉模型
(2)瀑布模型:线性顺序模型从系统分析开始,逐步经过各个开发阶段到软件开发完毕、交付使用止。每个阶段的变换结果是下一个阶段的变换的输入,相邻的两个阶段具有极其密切的因果关系。该模型以软件的需求能够完全被确定为前提,这种模型的特点是“一 泻千里”、易“下”而几乎不可能“上”,因此又得名“瀑布模型”。
增量模型:是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
喷泉模型:(fountain model)是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。

6.什么是模块间的耦合度?耦合强度的衡量因素有哪些?

(1)模块间的耦合性是根据模块的外部特征提出的,是对软件系统结构中各模块间相互联系紧密程度的一种度量,也称块间关系。
耦合度是对于一个软件结构内不同模块间相互依赖程度的度量,耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合性越高,模块独立性越弱。
(2)耦合强度的衡量因素有一下几点:
①一模块对另一模块的调用方式;
②—模块向另一模块传递的数据量;
③一模块施加到另一模块的控制的数量;
④模块间接口的复杂程度。

7.有哪些常用的设计模式?

(1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
(2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
(3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
(4)另外两类:并发型模式和线程池模式。

8.CMM共有多少个等级,每个等级分别代表什么?

答:CMM的英文全称是Capability Maturity Model,即软件能力成熟度模型,一共以下有5个等级:
(1)初始级(initial)。工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。
(2)可重复级(Repeatable)。管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。
(3)已定义级(Defined)。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。
(4)已管理级(Managed)。产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
(5)优化级(Optimizing)。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。

9.什么是软件工程?

概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考研而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

10.软件生命周期划分为哪几个阶段?

生命周期划分为三个时期八个阶段:
(1)软件定义时期:问题定义、可行性研究
(2)软件开发时期:需求分析、总体设计、详细设计、编码和单元测试、综合测试
(3)软件运行维护时期:运行维护

11.软件工程中常见的模型有哪些?

见此文章

12.黑盒测试和白盒测试有什么区别?

(1)黑盒测试法
把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试,包含等价类划分法、边界值法、错误推测法、因果图法等。
(2)白盒测试法
是把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试,包含逻辑覆盖法和基本路径测试法。

13.什么是软件危机?产生的原因有哪些?

软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
软件危机产生的原因有:
(1)对软件开发成本和进度的估计常常很不准确;
(2)用户对“已完成的”软件系统不满意的现象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
(7)软件开发生产率提高的速度,跟不上计算机应用迅速普及深入的趋势。

14.什么是软件过程?

答:软件过程是指完成高质量的软件开发过程当中的一系列操作。

15.软件工程为什么要测试?

软件工程需要进行测试的原因如下:
一款软件开发出来并不能保证其稳定性与毫无漏洞,这就需要对软件进行测试。软件侧测试的目的是找出该软件的缺陷,暴露程序中的错误。

16.IPO图、层次图、DFD图的使用阶段、作用、描述等。

查看此文章

软件工程导论面试常见问题相关推荐

  1. 【基础概念】 Redis简介和面试常见问题

    Redis简介和面试常见问题 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...

  2. html手机端适配怎么调试,html5面试常见问题及答案:移动端布局与适配篇

    原标题:html5面试常见问题及答案:移动端布局与适配篇 1. 移动布局自适应不同屏幕的几种方式 (1)响应式布局 (2)100%布局(弹性布局) (3)等比缩放布局(rem) 2. iscroll安 ...

  3. python面试常见问题-Python面试常见问题,涉及Python各个方面

    原标题:Python面试常见问题,涉及Python各个方面 爬虫面试常见问题 一.项目问题: 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的 2.用的什么框架.为什么选择这个框架 二.框架问 ...

  4. 【面试】Java面试常见问题汇总(不含答案)、面试指导学习笔记

    面试常见问题角度 String是基本数据类型吗? int和Integer有什么区别? HashMap和HashTable的区别,及其实现原理. ArrayList/HashMap的源码.如何实现源码 ...

  5. tcp当主动发出syn_一文读懂TCP四次挥手工作原理及面试常见问题汇总

    简述 本文主要介绍TCP四次挥手的工作原理,以及在面试中常见的问题. 字段含义 seq序号:Sequence Number,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行 ...

  6. 软件工程导论团队项目

    软件工程导论团队项目(速课小龙) 一.团队介绍 1.团队成员 邓  旭 2016012068 (组长) 陈逸璇 2016012056 周紫伊 2016012043 谢月鹏 2016012066 洪泽芳 ...

  7. 面试pythone_python面试常见问题有哪些

    python面试常见问题有:1.Python是如何被解释的:2.什么是PEP8:3.Python是怎样管理内存的:4.什么是Python装饰器:5.Python提供哪些内置类型等等. 大量免费学习推荐 ...

  8. 复旦计算机考研复试要口试吗,2017复旦大学考研复试:英语口语面试常见问题汇总...

    2017复旦大学考研复试:英语口语面试常见问题汇总本站小编 辅仁网/2017-12-29 A magazine publisher is trying to decide how many magaz ...

  9. C++面试常见问题一

    C++面试常见问题一 转自:https://oldpan.me/archives/c-interview-answer-1 原作者:[oldpan][https://oldpan.me/] 前言 这里 ...

  10. 分布式系统面试 - 常见问题

    分布式系统面试 - 常见问题 有一些同学,之前呢主要是做传统行业,或者外包项目,一直是在那种小的公司,技术一直都搞的比较简单.他们有共同的一个问题,就是都没怎么搞过分布式系统,现在互联网公司,一般都是 ...

最新文章

  1. SAP MM Transportation of PR Release Strategy with Classification
  2. Python Web学习笔记之TCP的3次握手与4次挥手过程
  3. mysql目录权限设置_MySQL文件及目录权限设置分析-爱可生
  4. 使用政府开放数据和低代码方案构建应用
  5. linux命令行 基础,Linux命令行基础,关于Bash需要知道的一些常识
  6. oracle中创建一个用户,只能查看指定的视图,如何授权,创建别名
  7. mysql查看编码_mysql 字符编码的查看与修改
  8. Atitit 业务流程执行引擎的实现 目录 1.1. 引擎实现语言java js php等 1 1.2. 流程语言 xml sql js等 业务流程定义语言规范总结 1 1.3. 实体方法定义 2
  9. android浏览器资源嗅探,GitHub - icemanyandy/VBrowser-Android: 全网视频嗅探缓存APP
  10. 庆祝新文章在《网管员世界》发表
  11. [源码和文档分享]基于QT实现的alpha-beta剪枝算法搜索的象棋人机博弈游戏
  12. c语言编程数的平方,C语言编程实例:由两个平方三位数获得三个平方二位数
  13. Android路由器初始密码,了解路由器用户名和万能密码
  14. 完全激活office2007
  15. 欧几里得算法的实现(Java)
  16. 有关4G-LoRa-NBIoT通讯方式在现实应用中的对比分析
  17. Linux下穿件带点文件夹和隐藏文件显示隐藏文件命令
  18. ios5.1.1越狱实践
  19. 多次赔付的重疾险真的有必要吗?
  20. python实现外部静态服务器,浏览器通过HTTP与之通信2

热门文章

  1. Premiere视频导出格式
  2. android win10驱动安装失败,小米手机驱动程序在win10系统中安装失败的解决方案
  3. linux gvim字体大小配置,Gvim 字体大小设置
  4. keil5怎么放大字体_keil5不同字体不全 keil字体放大快捷键
  5. SlickEdit使用 .
  6. 览沃livox_大疆览沃浩界(Livox Horizon)激光雷达测评
  7. 方舟生存进化刷精英恐龙代码
  8. node.js上传图片
  9. cad转shp 奥维_如何将地图数据及奥维对象导出到CAD
  10. 地方时太阳时html源码,地方时、区时和世界时