软工期中测试简答题

软工-期中测试简答题

软件危机的具体表现?

1)成本难以估计、成本高。

2)软件开发进度估计不准确,项目延期比比皆是。

3)软件质量得不到保证(功能和性能)。

4)用户对“已完成的”软件系统不满意的现象经常发生。

5)维护非常困难(多样性 、复杂性、 副作用)。

6)软件通常没有适当的文档。

7)软件产品供不应求,跟不上计算机普及速度。

产生软件危机的原因?

(1)软件日益复杂和庞大

(2)软件开发管理困难和复杂

(3)软件开发技术落后

(4)生产方式落后

(5)开发工具落后

(6)软件开发费用不断增加

软件工程的特性?

1. 软件工程关注于大型程序的构造(传统的程序设计技术和工具是支持小型程序设计的)

2. 软件工程的中心课题是控制复杂性(问题分解)

3. 软件经常变化(考虑将来要发生的变化)

4. 开发软件的效率非常重要(寻求更好、更有效的工具)

5. 和谐地合作是开发软件的关键(运用标准和规程)

6. 软件必须有效地支持它的用户(软件要服务于用户)

7. 在软件工程领域中通常是由具有一种文化背景的人替
具有另一种文化背景的人创造产品

软件工程七条基本原理?

1.用分阶段的生命周期计划严格管理

 不成功的软件项目中有一半左右是由于计划不周造成的。

2.坚持进行阶段评审

 大部分错误是编码之前造成的;错误发现与改正得越早,所付出的代价越低。

3.实行严格的产品控制

 不应随意改需求,否则代价很高,若要改变,应采用科学的产品控制技术。

4.采用现代程序设计技术

 提高软件开发和维护的效率,提高软件产品的质量。

5.结果应能清楚地审查

 规定开发组织的责任和产品标准。

6.开发小组的人员应该少而精

 提高软件开发质量和降低通信开销。

7.承认不断改进软件工程实践的必要性

 注意不断总结经验,以评价新的软件技术的效果等。

面向对象方法和传统方法学的特点?

传统方法学:

也称为生命周期方法学或结构化范型。

该方法把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务(如瀑布模型作为软件工程的基本模型,把软件开发和运行过程划分为六个阶段:软件计划、需求分析、软件设计、程序编码、软件测试、运行和维护等,强调各阶段的完整性和先后顺序,根据不同阶段的工作特点,运用不同的手段完成各阶段的任务)。

从技术和管理两个方面对阶段开发成果进行检查,通过检查之后该阶段才算结束,否则,必须进行必要的返工,再审查(审查的主要标准是每阶段必须提交高质量的文档资料)。

前一个阶段的完成是开始进行后一个阶段工作的前提和基础,而后阶段任务的完成通常是使用前一阶段提出的解法更进一步具体化,加进更多的实现细节。

采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的应用。

优点:

软件生命周期划分成若干阶段,每个阶段的任务相对独立,比较简单,便于不同人员分工协作,降低软件开发的难度。

在每个阶段采用科学的管理和良好的技术方法,每个阶段都从技术和管理两个方面进行严格审查,保证软件的质量。

提高了软件的可维护性,提高开发成功率。

面向对象方法学:

面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。

面向对象方法学的出发点和基本原则是:尽可能模拟人类所习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界、解决问题的方法和过程,即使描述问题的问题域与实现解法的求解域在结构上尽可能一致。

面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间的平滑(无缝)过渡。用面向对象方法开发软件的过程是:主动地、多次反复迭代的演化过程。

优点:

符合人们通常的思维方式,提高了软件的可理解性。

重用性好(对象是相对独立的实体 )。

可维护性好。

可行性分析的主要工作?

用最小的代价在尽可能短的时间内确定问题是否能够解决。

(1) 技术可行性

(2) 经济可行性

(3) 操作可行性

(4) 法律可行性等

可行性分析的过程

1. 复查系统规模和目标(分析员访问关键人员,研读相关资料,纠正含糊和不正确的叙述,清晰地描述对目标系统的一切限制和约束)

2. 研究目前正在使用的系统(了解系统能做什么,而不是了解它是怎样做这些工作)

3. 导出新系统的高层逻辑模型(数据流图和数据字典)

4. 进一步定义问题:(分析员要与用户就数据流图和数据字典再次复查问题定义、工程规模和目标)

5. 导出和评价供选择的解法(分析从逻辑模型出发,导出供选择的解法的最简单途径,从技术角度出发考虑解决问题的不同方案)

6. 推荐行动方针(是否继续进行该项目的开发工程,分析员清楚地表明态度,如果值得研究下去,则给出一种最好的解法)

7. 草拟开发计划:(软件开发人员、各种资源的需要情况,使用多久)

8. 书写文档提交审查

需求分析的主要工作?

3.1.1  确定对系统的综合要求

1、功能需求:划分出系统必须完成的所有功能。

2、性能需求:包括响应时间、信息量的速率、主存容量、磁盘容量、安全性等方面内容。

3、可靠性和可用性需求

4、出错处理需求:说明系统对环境错误应该怎样响应。

5、接口需求:用户接口需求、通信接口需求、软件/硬件接口需求。

6、约束:如精度、工具和语言约束、设计约束、应该使用的标准和平台。

7、 逆向需求:说明系统不应该做什么。

8、将来可能提出的要求:以便将来扩充和修改。

3.1.2 分析系统的数据要求:建立数据模型,用图形化的工具描述数据结构(如层次方框图和warnier图)。

3.1.3 导出系统的逻辑模型:数据流图、实体-联系图、状态转换图、数据字典等。

3.1.4 修正系统开发计划:由分析过程准确地估计系统的成本和进度,修正以前制定的开发计划。

3.1.5 撰写需求规格说明书

获取需求的方法有哪些?

3.2.1   访谈

3.2.2   面向数据流自顶向下逐步求精

3.2.3   简易的应用规格说明技术

3.2.4   快速建立软件原型(它应该实现用户看得见的功能,原型要具有快速并容易修改的特点)

模块化的好处?

1、可以降低软件开发的难度;

 2、可以使程序结构清晰,增加易读性和易修改性;

 3、模块化还有利于提高代码的可重用性及团队合作开发大型软件的可行性。

如何度量模块的独立性?

模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。

模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。

独立性可以从两个方面来度量:即模块本身的内聚和模块之间的耦合。

过程设计的工具?

程序流程图,

N-S图(盒图),

PAD图(Problem Analysis Diagram 问题分析图),

判定表/判定树,

PDL(Program
Design Language)伪代码

详细设计的主要工作?

为每个模块确定采用的算法;

确定每一模块使用的数据结构;

确定模块接口的细节;

编写过程设计说明书;

设计每一模块的测试用例。

概要设计的主要工作?

总体设计过程通常由两个主要阶段组成:

系统设计阶段:确定系统的具体实现方案;

结构设计阶段:确定软件结构。

1. 设想供选择的方案

在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。

数据流图是总体设计的极好的出发点。

2. 选取合理的方案

通常至少选取低成本、中等成本和高成本的三种方案。

对每个合理的方案分析员都应该准备下列4份资料:系统流程图;组成系统的物理元素清单;成本/效益分析;实现这个系统的进度计划。

3. 推荐最佳方案

综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。

在使用部门的负责人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段——结构设计。

4.功能分解

为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。

5. 设计软件结构

设计软件的体系结构需要在对需求分析阶段生成的数据流图进一步分析和精化的基础上:

(1)将系统按照功能划分为模块;通常程序中的一个模块完成一个适当的子功能。

(2)确定模块之间的调用关系及其接口;应该把模块组织成良好的层次系统。

(3)对划分的结果进行优化和调整。良好的软件结构设计对详细设计及编码阶段的工作都是至关重要的。

6. 设计数据库

对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。

7. 制定测试计划

在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。

8. 书写文档

应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种:

系统说明:数据流图、成本/效益分析,用层次图等描述的软件构件,用IPO图简要描述各个模块的算法,模块的接口等。

用户手册:根据总体设计阶段的结果,修改在需求阶段产生的初步的用户手册。

测试计划:包括测试策略、测试方案、预期的测试结果,测试进度计划等。

详细的实现计划

数据库设计结果:由数据模型(E-R图)转换成数据库的设计结果。

9. 审查和复审

最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度进行复审。

---

消除软件危机

消除软件即程序的错误观念和急于求成的心态。开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样(狗窝和高楼大厦)。

消除各自为阵的理念:软件开发是一个组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

使用和推广在实践中总结出来的成功的经验,探索更有效的技术和方法。

开发和使用更好的软件工具。

时间: 2024-10-25 13:29:42

软工期中测试简答题的相关文章

他答对一半(打一字)asp.net开源简答题项目

先出个字谜: 他答对一半(打一字) 你猜出来了没? 可以到这个网址答题:http://hovertree.com/shortanswer/bjae/f53e663164227906.htm 看你的答案是否正确. 这是ASP.NET开源CMS项目HoverTree的一个功能:简答题,目前正在测试中,如果你希望这部分的源代码公布的话,请推荐一下本文,给我开发整理代码的动力,谢谢. HoverTree使用的语言是C#,数据库为Sql Server,基于.NET 4.0,使用三层结构,如果你有兴趣的话,

第二部分:简答题(每题5分,共50分)

第二部分:简答题(每题5分,共50分) 1.写出在DNS服务器主配置文件中配置根提示的指令块.   zone "."IN       {        type hint;        file "named.ca; };   2.简述使用代理服务器和NAT上网的区别.           3.简述查看并设置本机默认网关的步骤.    route –n   [[email protected] 桌面]# vim /etc/sysconfig/network-scripts/

zoj 1891 - 传说中的简答题 - 最短路径 - dijkstra

在复习资料中找到的对应不同类型的题目.想先从简单的题目入手,结果一上来就发现不对劲.感觉有点不简单呀. 之前也是碰到这种问题会畏首畏尾,因为,要计算两点之间的距离的.想着要不要先全部计算出来,放到数组里面分别调用. 但后来又想到不行,这样的时间复杂度更高了,n*(n+1)/2 的时间复杂度.就有点麻乱了. 通过参考网上其他的解答,发现他们也是一边算,一边找的.相比这就是简答题的优势吧. 然后题目的要求是求出最小花费的时间,这几天刚好在复习dijkstra算法.就可以用上了. 这里稍微总结一下:

web前端设计基础——HTML5、CSS3、JavaScript 简答题整理

web前端设计基础--HTML5.CSS3.JavaScript 简答题整理 (1)解释一下名词的含义:IP地址.URL.域名 (2)基本的web技术有哪些?web的工作原理是什么? 基本的web技术有:URL.HTTP.MIME. (3)什么是超文本?超文本与超媒体之间的关系是什么? 超文本又称超媒体,是将各种信息节点链接在一起的一种网络逻辑结构. (4)HTML5 的特点是什么? (5)web 标准有哪些?为什么采用 web 标准? web体系标准:结构标准.表现标准.行为标准. web标准

软件评测师——下午简答题类型

下午考试跟上午一样满分75分,45分就合格.下午试题是简答题. 下午的考试有时候是4道题有时候是5道题:有时候出5道题,1.2题必做,3.4.5三道题选择2道题做. 下午试题分值:20*3或者15*5. 视频考点: 1.白盒测试:逻辑覆盖(路径.判定.条件).基本路径覆盖(控制流图.线性无关路径.V(G)) 2.黑盒测试:等价类.边界值.因果图(偶尔).场景法(偶尔) 3.web测试:可靠性测试.安全性测试.负载测试.压力测试 4.安全测试:SQL注入.XSS攻击 5.面向对象测试 6.文档测试

面试小结3--简答题

三.简答题:1.简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程.参考答案:Linux通过i节点表将文件的逻辑结构和物理结构进行转换.i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小.文件所有者.文件的存取许可方式以及文件的类型等重要信息.在i节点表中最重要 的内容是磁盘地址表.在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块.Linux文件系统通过把i节点和文件名进行 连接,当需要读取该文件时,文件系统在当前目录表

Mozilla正在SpiderMonkey中测试JavaScript并行计算

Mozilla正致力于实现JavaScript“并行(parallelism)计算”,以便充分利用硬件性能.Dave Herman是Mozilla Research的首席研究员和策略总监.近日,他在一篇博文中提到,他们正在其JavaScript引擎SpiderMonkey中进行相关实验. 他们试图通过一种底层的.渐进的方法为JavaScript添加更加灵活和强大的并行计算原语.他首先指出: 我正在谈论的不是“并发(concurrency)”……JavaScript的异步并发模型很受欢迎,也取得了

Advanced Installer 中测试数据库连接提示“未发现数据源名称并且未指定默认驱动程序”的解决办法

原文:Advanced Installer 中测试数据库连接提示"未发现数据源名称并且未指定默认驱动程序"的解决办法 最近需要制作一个安装包,安装包的要求如下: 1.用户手工填写MySql的地址.用户名和密码 2.填写完成后提供测试数据库连接是否正常的按钮功能 3....... 项目要求打包的Mysql版本为5.5.27 x64版本,通过研究Advanced Installer 发现,此打包工具提供了数据库连接字符串,并且是通过ODBC的方式来连接的,既然是安装的64位的数据库,那么连

S2T40.(深入.Net平台和C#编程)第四章.简答题4.刁汉生.20170406

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 简答题.Entity 8 { 9 /// <summary> 10 /// 蚂蚁类 11 /// </summary> 12 public class Ant 13 { 14 //蚂蚁名字 15 publi