软件工程导论期末-重点笔记

本文探讨了软件开发中的关键概念,如可行性研究的主要方面,包括技术、经济和操作可行性,以及模块耦合和内聚性的概念。耦合从强到弱的排序是内容耦合、公共环境耦合、控制耦合和数据耦合。内聚性从低到高为数据、标记、控制和公共内聚。模块独立性追求的目标是高内聚和低耦合。此外,还涉及软件生命周期的不同阶段、面向对象分析和设计、软件测试方法以及软件危机的表现和原因。
摘要由CSDN通过智能技术生成

可行性研究主要从以下几个方面进行研究:( A )
A) 技术可行性,经济可行性,操作可行性
B) 技术可行性,经济可行性,系统可行性
C) 经济可行性,系统可行性,操作可行性
D) 经济可行性,系统可行性,时间可行性

耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下: ( C )
A) 内容耦合,控制耦合,数据耦合,公共环境耦合。
B) 内容耦合,控制耦合,公共环境耦合,数据耦合。
C) 内容耦合,公共环境耦合,控制耦合,数据耦合。
D) 控制耦合,内容耦合,数据耦合,公共环境耦合。

业界存在三种需求分析方法:面向功能分析、面向对象分析和 B 。
A.面向算法分析 B.面向数据分析 C.面向程序分析 D.面向硬件分析

( C )应考虑对模块相联和资源共享问题进行描述和制约。
A). 系统设计 B). 详细设计 C). 接口控制 D). 结构化编辑工具

面向数据流软件设计方法一般是把数据流图中的数据流化分为 (B) 两种流,再将数据流图映射为软件结构。
A). 数据流与事务流 B). 交换流和事务流
C). 信息流与控制流 D). 交换流和数据流

数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是( B

A.数据、公共、标记、控制 B.数据、标记、控制、公共
C.控制、数据、标记、公共 D.控制、数据、公共、标记

(ABCD)可以作为模块.
A,子程序 B,函数 C,过程 D,编译文件

制定计划、需求分析、软件设计、程序编写、软件测试、运行维护

数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点

实用的白盒测试覆盖技术有 4 种:语句覆盖、条件覆盖、分支 (或判定) 覆盖和组合覆盖。

传统软件维护一般分为 4 大类,分别是纠错性维护、适应性维护、完善性维护和预防性维护。

用例之间的关系主要有三种:包含(include)、扩展(extend)和继承。

软件设计基本原则包括抽象与逐步求精、强内聚及松耦合、信息隐藏及关注点分离

内聚性有 6 种类型 偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。

一般而言,在面向对象建模过程中,人们最常用的是建立系统的用例图、类图和顺序图

模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容   耦合,标记耦合,无耦合/非直接耦合

模块的内聚包括以下几种类型:低内聚 — 偶然内聚,逻辑内聚,时间内聚  中内聚 — 过程内聚,通信内聚; 高内聚 — 顺序内聚,功能内聚

软件生存周期的活动包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。

面向对象开发方法包括OOA、OOD和OOP三部分。

从应用特点的角度来看,我们可以把高级语言分为基础语言、结构语言和专用语言三类

结构化分析常用工具:数据流图(DFD),数据字典(DD),判定表,判定树。

详细设计阶段常用的工具:程序流程图,N-S图,PAD图

简答题

简述结构化程序设计方法的基本特点。
1)尽可能少用goto语句的程序设计方法。
2)每个代码块都单入单出。
3)使用控制结构:顺序、选择和循环。
4) 自顶向下逐步求精。

衡量模块独立性的两个定性标准是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?
衡量模块独立性的两个定性标准是内聚和耦合(2分)。
耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度(2分)。
在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(1分)。

什么是黑盒测试法?
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程(2分)。
它只检查程序功能是否能按照规格说明书的规定正常使用(1分),
程序是否能适当地接收输入数据(1分),
产生正确地输出信息(1分)。

简述面向对象的4个要点的含义。
面向对象的4个要点是:对象分解、数据专有、继承、封装性。(1分)
1)对象分解:认为客观世界是由各种对象组成的。  (1分)
2)数据专有,方法共享:把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 (1分)
3)继承:按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(1分)
4)封装性:对象彼此之间仅能通过传递消息互相联系。(1分)

什么是软件危机?软件危机的表现是什么?其产生的原因是什么?
软件发展的第二阶段末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的,大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决方法,使问题积累起来,形成了尖锐的矛盾,因此导致了软件危机。
软件危机表现在以下四个方面:(钱与时间,要求,维护性,可靠性)
(1)经费预算经常突破,完成时间一再拖延。
(2)开发的软件不能满足用户要求
(3)开发的软件维护性差
(4)开发的软件可靠性差
造成软件危机的原因:(规模和结构,管理,经费,技术,工具)
(1)软件的规模越来越大,结构越来越复杂
(2)软件开发管理困难而复杂
(3)软件开发的经费不断增加
(4)软件开发技术落后
(5)生产方式落后开发工具落后,生产率提高缓慢

软件工程的定义
(1)将系统的、规范的、可量化的方法应用于软件的开发、运行和维护的过程;
(2)及上述方法的研究。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChampLixxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值