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

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,一经查实,立即删除!

相关文章

css中absolute设置问题和如何让div居中

今天设置多个div到页面正中间的时候&#xff0c;在第一层<div class"map">中设置如下&#xff1a; .map{ position&#xff1a;absolute&#xff1b; top:50%; left:50% transform: translate(-50%, -50%); } 该div就移到页面的正中间&#xff0c;达到预定效果…

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 war包合并,使用maven warpath插件合并多module的war包

查看原文&#xff1a;http://www.yeetrack.com/?p899现在java项目一般使用maven、gradle等工具来管理jar包、打包、发布。如果一个项目有很多模块&#xff0c;那般是分成多个module&#xff0c;主目录有个parent&#xff0c;负责包含全部的module&#xff0c;然后目录中多个mo…

儿童编程python入门_儿童编程python入门

经常会有小朋友问我&#xff0c;“我想做个黑客&#xff0c;我该学什么编程语言&#xff1f;”&#xff0c;或者有的小朋友会说&#xff1a;“我要学c&#xff0c;我要做病毒”。其实对于这些小朋友而言他们基本都没有接触过编程语言&#xff0c;只是通过影视或者其他地方看到的…

ARM GNU 常用汇编伪指令介绍

abort.abort: 停止汇编 .align absexpr1, absexpr2: 以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16 或 32. 第 二个表达式值表示填充的值. if...else...endif.if .else .endif: 支持条件预编译 include.include "file": 包含指定的头文件,…

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

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

python可视化代码_python可视化实现代码

python可视化#导入两个库import numpy as npimport matplotlib.pyplot as plt#第一个参数就是x轴的初始值#第二个参数是x轴的终止值#第三个返回num均匀分布的样本&#xff0c;也就是0-12的区间取多少个点&#xff0c;如果为曲线的最好数值大一点x np.linspace(0, 12, 50)y np…

用户管理与文件权限

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

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

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

rabbitmq3.7集群搭建实战

环境&#xff1a; 3台 centos7.4rabbitmq3.7erlang 22 1. 有几种方式安装&#xff0c;这里使用的yum安装&#xff08;官方推荐&#xff09;2. 使用rabbitmq时需要安装erlang&#xff0c;在各个节点上使用vim添加两个repo文件**/etc/yum.repos.d/rabbitmq_erlang.repo**[rabbitm…

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;羊欢&…

Python之模块初识-自定义模块

1. 模块的定义与分类 什么是模块&#xff1f;一个模块就是一个py文件。 模拟博客园系统作业&#xff0c;100000行代码. 不可能全部存在一个文件. 不易维护.效率低.分文件: 10个文件.每个文件有50个函数,有一写相同功能或者相似功能的函数.代码冗余,重复性.我们应该将这10个函数…

php统计用户留存脚本,SQL 统计用户留存

问题描述有一个用来记录每日客户消耗数据的表 t&#xff0c;它的表结构如下&#xff1a;字段类型描述created_dayDate消耗日期customer_idInteger客户IDamountInteger消耗金额要求&#xff1a;统计出头部客户、腰部客户、尾部客户在上个月(2020-06-01 ~ 2020-06-30)的留存情况。…

python socket udp_python网络-Socket之udp编程(24)

一、udp简介udp --- 用户数据报协议&#xff0c;是一个无连接的简单的面向数据报的运输层协议。udp不提供可靠性&#xff0c;它只是把应用程序传给IP层的数据报发送出去&#xff0c;但是并不能保证它们能到达目的地。udp在传输数据报前不用在客户和服务器之间建立一个连接&…