软件工程详细设计说明书_软件工程导论知识点梳理之简答题

ce134e8fd46b712237f4eccd2306888e.png

1. 软件危机的表现形式

  • 对软件开发成本和进度估计不准确
  • 已完成的软件不符合用户需求
  • 软件产品质量差,可靠性得不到保证
  • 软件产品可维护性差
  • 软件成本在计算机总成本中的比例逐渐变大
  • 软件开发生产率提高速度比不上计算机应用速度

2. 产生软件危机的原因

  • (1)软件是计算机系统的逻辑部件
  • (2)软件开发的管理困难
  • (3)软件开发费用不断增加
  • (4)软件开发技术落后
  • (5)生产方式落后
  • (6)开发工具落后

3. 软件生命周期分为哪三个时期?每一时期所完成的基本任务是什么?

答:软件定义、软件开发、运行维护

定义时期的任务:问题定义、可行性研究、需求分析

开发时期的任务:软件设计(总体设计、详细设计);编码与单元测试;综合测试

维护时期的任务:维护,使软件持久地满足用户的需要。

4. 模型以及特点

瀑布模型(生存周期模型):最经典,需求基本不变,线性的顺序阶段模型

快速原型模型:快速获取用户需求

增量模型:灵活,允许软件变化

螺旋模型:在原型模型和增量模型基础上增加风险分析,用于企业开发

面向对象:喷泉模型:以生存周期为主线,具有迭代性和无间隙性

基于构件的模型:提高软件重用性和可靠性

统一过程模型(RUP):基于UML的面向对象过程模型

基于形式化的开发模型:确保严格、无错

5. 软件模块设计准则:

  • (1)降低耦合,提高内聚
  • (2)模块深度、宽度、扇出扇入应适当
  • (3)模块作用范围在控制范围内
  • (4)接口设计要简单
  • (5)设计功能可能预测并能得到验证的模块
  • (6)划分模块规模,保持独立性。

6. 详细设计的目的和任务

目的:为软件结构图中每一个模块确定采用的算法和块内数据结构,用某种选定的详细设计工具更清晰的描述,从而在编码阶段可以把这些描述直接翻译成某种程序设计语言书写的源程序。任务:设计出程序的蓝图,以后程序员根据这个蓝图写出实际的代码。

7. 什么是结构化程序设计?结构化程序设计采用几种控制结构?

答:结构程序设计:是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。顺序,选择,循环。

8. 程序设计语言的特点?

1、名字说明 2、类型说明 3、初始化 4、程序对象的局部性5、程序模块 6、循环控制结构 7、分支控制结构 8、异常处理9、独立编译

9.软件测试的基本任务是什么?测试与调试的区别是什么?

答:任务是在软件投入生产性运行之前,尽可能多地发现软件中的错误。

与测试的区别:测试是为了发现软件中的错误,而调试是诊断并改正错误。

10.可行性研究的步骤?

(1)复查系统规模和目标。(2)研究目前正在使用的系统。(3)导出新系统的高层逻辑模型。(4)重新定义问题。(5)导出和评价供选择的解法。(6)推荐行动方针。(7)草拟开发计划。(8)书写文档提交审查

11. 从哪些方面验证软件需求的正确性?

(1)一致性,即所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。

(2)完整性,需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。

(3)现实性,指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。

(4)有效性,必须证明需求是正确有效的,确实能解决用户面对的问题。

12. 对象的特点?

(1)以数据为中心。

(2)对象是主动的。

(3)实现了数据封装。

(4)本质上具有并行性。

(5)模块独立性好。

13. 用面向对象方法开发软件时,通常需要建立哪三种形式的模型?

(1)描述系统数据结构的对象模型。

(2)描述系统控制结构的动态模型。

(3)描述系统功能的功能模型。

14. 什么是模块的作用域?什么是模块的控制域?

模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。

15.简述两种不同集成测试策略的比较?

答:自顶向下测试方法主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。自顶向下测试方法的主要缺点是需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。自底向上测试言法的优缺点与自顶向下测试方法的优缺点刚好相反。

16. 什么是类?类与对象间是什么关系?

答:类是对具有相同数据和相同操作的一组相似对象的定义。类是对具有相同属性和行为的一个或多个对象的描述,而对象是某个特定类所描述的一个具体对象。

17. 面向对象方法特征有哪些?

(1)客观世界是由各种对象组成的。(2)所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。

(3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。

(4)对象彼此之间仅能通过传递消息互相联系。

18. 可行性研究的目的?应该从哪些方面研究目标系统的可行性?

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

(1)技术可行性(2)经济可行性(3)操作可行性(4)法律可行性

19. 什么是软件工程?构成软件工程的要素是什么?

软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

要素是:方法、工具、过程。

20.对象有哪几种定义?

(1)对象是具有相同状态的一组操作的集合。

(2)对象是对属性值和操作的封装。

(3)对象:=<ID,MS,DS,MI>

  • ID:是对象的标识或名字
  • MS是对象中的操作集合
  • DS:是对象的数据结构
  • MI :是对象受理的消息名集合

21. 类—&—对象间的关系可以概括为哪三种?

  • 归纳关系:它反映了一个类与若干个互不相容的子类之间的分类关系。
  • 组合关系:它反映了对象之间的构成关系。
  • 关联关系:反映对象之间相互依赖、相互作用的关系。

22. 简述渐增模型的特点?

答:(1)在整个开发过程中需求都可能有变化。(2)对应用领域不熟悉。(3)高风险项目(4)用户完全参与到整个开发过程中。(5)使用面向对象语言或第四代语言。

23. 总体设计的过程如何?

答:(1)设想供选择的方案。(2)选取合理的方案。(3)推荐最佳方案。(4)功能分解。(5)设计软件结构。(6)数据库设计。(7)制定测试计划(8)书写文档(9)审查和复审

24. 面向对象方法的主要优点有哪些?

(1)与人类习惯的思维方法一致。(2)稳定性好。(3)可重用性好。(4)可维护性好。

25. 什么是白盒测试?白盒测试主要采用的技术有哪些?

白盒测试是测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。

白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。

26. 什么是黑盒测试?黑盒测试主要采用的技术有哪些?

黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

黑盒测试主要采用的技术有:等价分类法、边界值分析法、错误推测法和因果图等技术。

27. 路径测试技术中几种主要覆盖的含义?举例说明?

语句覆盖:至少执行程序中所有语句一次。

判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。

条件覆盖:执行所有可能的穿过程序的控制路流程。

条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php模板意思,php中的 是什么意思

php调用类的内部静态成员&#xff0c;或者是类之间调用就要用两个冒号(::)。说明&#xff1a;“::”符号可以认为是与C语言中的“.”相似的&#xff0c;而它更像C中(Perl)的::类范围操作符。示例&#xff1a;{$0;(){//}(){();$;}};/*C语言中的*/a::b::c();//C中的函数$a::b::c;…

程序员为什么老得快_这段 Python 代码让程序员赚 300W,公司已确认!网友:神操作!...

点击上方“Python大本营”&#xff0c;选择“置顶公众号”python大本营 IT人的职业提升平台Python到底还能给人多少惊喜&#xff1f;笔者最近看到了这两天关于Python最热门的话题&#xff0c;关于《地产大佬潘石屹学Python的原因》&#xff0c;结果被这个回答惊到了&#xff1…

Mercedes-Benz won’t start| Step by Step Troubleshooting Guide

Mercedes won’t start or turn over? Are you experiencing Mercedes-Benz no start problems? Key won’t turn at all? Engine turning over but the car will not start? Maybe it finally starts, runs for a few seconds and then dies. These are common Mercedes-…

php如何设置页面布局,excel页面布局怎么调整

excel页面布局调整的方法&#xff1a;首先点击菜单的页面布局&#xff0c;选择纸张大小&#xff1b;然后点击“纸张方向”&#xff0c;单击以选择横向或者纵向&#xff1b;最后点击“页边距”即可。点击菜单——页面布局&#xff0c;工具栏将出现页面布局的许多项目&#xff0c…

无法获取未定义或 null 引用的属性“value”_SpringBoot之Spring@Value属性注入使用详解

在使用Spring框架的项目中&#xff0c;Value是使用比较频繁的注解之一&#xff0c;它的作用是将配置文件中key对应的值赋值给它标注的属性。在日常使用中我们常用的功能都比较简单&#xff0c;本篇文章系统的带大家来了解一下Value的使用方法。Value注入支持形式Value属性注入功…

0x11 栈

【例题】Push,Pop,GetMin 手写一个栈 1 #include <iostream>2 #include <cstdio>3 #include <cmath>4 #include <cstring>5 #include <algorithm>6 #include <queue>7 using namespace std;8 const int maxn1000000;9 int stack[maxn], m[…

java 同类型转换失败,你们见过java类型转换,自己转自己失败的情况吗?很神奇的操作...

问题就是上面这个问题。List slaughterProducts slaughterForm.getSlaughterProductModelForm();for (SlaughterProductModelForm e : slaughterProducts) {....}居然运行到for的时候出现上面这个错误。很神奇吧&#xff0c;工作这么多年了第一次发现 JAVA自己转自己转不成功。…

用户管理与文件权限

一&#xff1a;用户管理 现代操作系统一般属于多用户的操作系统&#xff0c;也就是说&#xff0c;同一台机器可以为多个用户建立账户&#xff0c;一般这些用户都是为普通用户&#xff0c;这些普通用户能同时登录这台计算机&#xff0c;计算机对这些用户分配一定的资源。 普通用…

php中划线,html中下划线、删除线、上划线的样式与用法实例

这篇文章主要介绍了下划线、删除线、上划线等常用的实例&#xff0c;划线是非常常见的一种样式&#xff0c;为了网页中的视觉效果以及对文字的说明&#xff0c;我们经常对文体进行一些划线操作。下面文章就是对各种划线的详细介绍。一. 下划线的详细介绍在我们日常的Web的开发中…

php获取页面中的指定内容,php 获取页面中指定内容的实现类

[email protected]image&#xff1a;Grep.class.php/** grep class* Date: 2013-06-15* Author: fdipzone* Ver: 1.0** Func:** set: 设置内容* get: 返回指定的内容* replace: 返回替换后的内容* get_pattern 根据type返回pattern*/class Grep{ // class startprivate $_patte…

数据增量更新定义_TiDB 在 OPPO 准实时数据仓库中的实践

作者介绍OPPO 数据分析与解决方案团队主要负责 OPPO 全集团的大数据分析和解决方案提供&#xff0c;团队成员多来自一线互联网公司及著名高校&#xff0c;在 OPPO 众多场景的大数据应用方面有很深经验&#xff0c;极大的支撑了业务迅速发展。文章具体作者&#xff1a;羊欢&…

selenium--单选下拉列表

下拉选择 from selenium import webdriver from time import sleepdriver webdriver.Chrome() driver.get("https://www.xxxxx.com/") sleep(2) driver.find_elements_by_tag_name(option)[2].click() # 通过标签名定位到 option 标签&#xff0c;选择第三个&#x…

matlab实现字符识别,字符识别 - MATLAB Simulink Example - MathWorks 中国

定义问题脚本 prprob 定义了一个包含 26 列的矩阵 X&#xff0c;每列对应一个字母。每列有 35 个值&#xff0c;值可能是 1&#xff0c;也可能是 0。每列(包含 35 个值)定义一个字母的 57 位图。矩阵 T 是一个 2626 的单位矩阵&#xff0c;它将 26 个输入向量映射到 26 个类。[…

批处理结束某个进程_进程调度

当计算机系统是多道程序设计系统时&#xff0c;常常会出现多个进程或线程竞争CPU的情况。如果有大于处理器数的进程(线程)处于就绪态时&#xff0c;就必须要选择下一个要执行的进程(线程)。在操作系统&#xff0c;用于选择接下来要执行的进程的程序称之为调度程序(Scheduler)&a…

动态游标for循环_数据结构系列循环链表

前面留的一个问题,后文更跟新回答单链表可以表示任意的线性关系&#xff0c;有些线性关系是循环的&#xff0c;既没有队尾元素。将单链表中的终端结点指针端由空指针改为指向头结点&#xff0c;这时的单链表形成国恒一个环&#xff0c;改为循环链表。插入与删除与单链表的原理甚…

sas sql 读取最后一行数据_SAS基础编程和数据处理

前几天讲了数据分析中SQL的基本使用方法以及具体案例分析思路&#xff0c;接下来会继续讲统计基础以及在SAS软件内的应用&#xff0c;在这之前&#xff0c;本文先进行SAS基础使用编程的基础介绍&#xff0c;后续会主要阐述SAS软件内的统计数学的应用&#xff0c;如分析或初步建…

代码合并工具_分享几款比较常用的代码比较工具

俗话说&#xff1a;三句不离本行&#xff0c;对于程序员这个可爱的群体来说也是一样&#xff0c;即使面对无休无止的编程工作&#xff0c;程序员们依旧任劳任怨的埋头苦干&#xff0c;梦想着用自己码下的代码改变世界。工欲善其事,必先利其器&#xff0c;每一位程序员都有自己私…

循环控制

循环控制 定义 Python 循环语句是通过一条或多条语句的执行结果&#xff08;True 或者 False&#xff09;来决定执行的代码块。 并在符合条件的情况下跳出该段循环。 类似于控制语句。 如下图所示。 WHILE 循环 while 判断条件&#xff1a; 语句 求1~100的和 n 0 sum 0 while…

rest风格的get加密字符串怎么接收_RESTful Api的设计与风格,你该学一下咯

REST的重要概念REST全称是Representational State Transfer&#xff0c;中文意思是表征性状态转移。RESTful是指具有REST表征的web架构风格&#xff0c;并非必须遵守的规则。REST分离了API的结构和逻辑&#xff0c;主要应用于客户端和服务器交互类的软件。基于这种风格设计的软…

接口批量同步数据_千手接口平台+电商ERP,助德嵘大药房征战拼多多

拼多多对C端经营者来说&#xff0c;是一个处于红利期的第三方C端电商平台&#xff0c;进驻费比天猫低很多&#xff0c;而且流量成本也低&#xff0c;很多商家都跃跃欲试。但对于没有C端平台运营经验的商家&#xff0c;进驻后会发现几个"坑"&#xff1a;客单价低、退货…