软件工程导论 1-13章 重点定义及解释

软件工程导论

    • 第一章 概述
    • 第二章 可行性研究
    • 第三章 需求分析
    • 第五章 总体设计
    • 第六章 详细设计
    • 第七章 实现
    • 第八章 维护
    • 第九章 面向对象方法学引论
    • 第十章 面向对象分析
    • 第十一章 面向对象设计
    • 第十二章 面向对象实现
    • 第十三章 软件项目管理

第一章 概述

1、软件危机的定义和典型表现
在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:
1)对软件开发成本和进度的估计常常很不准确;
2)用户对“已完成的”软件系统不满意的现象经常发生;
3)软件产品质量往往靠不住;
4)软件常常是不可维护的;
5)软件通常没有适当的文档资料;
6)软件成本在计算机系统总成本中的所占比例逐年上升;
7)软件开发生产率提高的速度远跟不上计算机应用迅速普及深入的趋势。

2、消除软件危机的途径
推广使用在实践中总结出来的开发软件的成功的技术和方法;应该开发和使用更好的软件工具;总之,既要有技术措施(方法和工具),又要有必要的组织管理措施。

3、软件工程的定义
1)把系统的,规范的,可度量的途径应用于软件开发运行和维护过程,也就是把工程应用于软件;
2)研究1)中提到的途径。

4、软件工程的7条基本原理
1)用分阶段的生命周期计划严格管理;
2)坚持进行阶段评审;
3)实行严格的产品控制;
4)采用现代程序设计技术
5)结果应能清楚的审查;
6)开发小组的人员应该少而精;
7)承认不断改进软件工程实践的必要性。

5、软件工程方法学的3要素,目前广泛应用的软件工程方法学的种类
方法、工具和过程 传统方法学和面向对象方法学

6、软件生命周期分阶段划分
由软件定义,软件开发和运行维护(也称软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
1)问题定义 2)可行性研究
3)需求分析 4)总体设计
5)详细设计 6)编码和单元测试
7)综合测试 8)软件维护

7、软件过程的定义,四种软件过程模型的特点
定义:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
瀑布模型的特点:
1)阶段间具有顺序性和依赖性;
2)推迟实现的观点;
3)质量保证的观点。
快速原型模型的本质是快速。
增量模型具有可在软件开发的早期阶段使投资获得明显回 和较易维护的优点。
风险驱动的螺旋模型适用于内部开发的大型软件项目。
喷泉模型较好的体现了面向对象软件开发过程无缝迭代的特性

第二章 可行性研究

1、可行性研究的三方面
1)技术可行性;2)经济可行性;3)操作可行性。

2、数据流图的定义,用途,画法,会画
定义:数据流图(DFD)是一种图形化技术,它描绘信息和数据从输入移动到输出的过程中所经受的变换。
用途:没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

3、数据字典的定义,定义数据的方法,会定义
定义:关于数据的信息的结合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典中的定义就是对数据自顶向下的分解
方式的三种基本类型:1)顺序;2)选择;3)重复。【4)可选】

4、成本估计的方法,成本/效益分析,会算
1)代码行技术;
2)任务分解技术;
3)自动估计成本技术。
成本/效益分析方法: 货币的时间价值、投资回收期、纯收入和投资回收率。

第三章 需求分析

1、需求分析阶段的任务是什么
1)确定对系统的综合要求;
2)分析系统的数据要求;
3)导出系统的逻辑模型;
4)修正系统开发计划。

2、需求分析过程应该建立什么样的模型
数据模型(实体-联系图):描述问题的信息域
功能模型(数据流图):定义软件的功能
行为模型(状态转换图):描述系统对外部行为的响应

3、实体联系图是什么。会画
定义:用实体、联系和属性三种基本成分来表示现实世界中实体及其联系的一种信息结构图。

4、状态转换图是什么。会画
定义:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外状态转换图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此状态转换图提供了行为建模机制。
在一张状态图中只能有一个初态,而终态可以有0至多个。

5、应从哪些方面验证软件需求的正确性
一致性,完整性,现实性和有效性

6、本阶段完成之前,应书写什么文档
系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求

第五章 总体设计

1、总体设计的主要任务是什么
用比较抽象概括的方式确定系统如何完成预定的任务(怎样做)

2、名词解释:
模块:由边界元素限定的相邻程序元素的序列,模块是构成程序的基本构件。

模块化:把程序划分成独立命名且可独立访问的模块。

抽象:现实世界中一定事物、状态或过程之间总存在着某些相似的方面,把这些相似的方面几种概括起来,暂时忽略它们之间的差异。

逐步求精:人类解决复杂问题时采用的基本方法。(为了能够集中精力解决主要问题,而尽量推迟对问题细节的考虑)

信息隐藏:在设计和确定模块时,使得一个模块内包含的信息(过程或数据),不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。

局部化:把一些关系密切的软件元素物理地放得彼此靠近。

模块独立:是模块化,抽象,信息隐藏和局部化概念的直接结果。

耦合:是对一个软件结构内不同模块之间互连程度的度量。

耦合性从低到高:(模块独立性从强到弱)
1、 无直接耦合
2、数据耦合
3、特征耦合
4、控制耦合
5、公共环境耦合
6、内容耦合

内聚:指一个模块内部各个元素彼此结合的紧密程度的度量。

内聚性由低到高:(模块独立性由弱到强)

  1. 巧合内聚(偶然内聚)
  2. 逻辑内聚
  3. 时间内聚(经典内聚)
  4. 过程内聚(顺序性组合)
  5. 通信内聚
  6. 顺序内聚
  7. 功能内聚

设计要求:低耦合,高内聚

3、设计计算机软件的启发式规则有哪些strong>
1)改进软件结构,提高模块独立性;
2)模块规模适中;
3)深度,宽度,扇出和扇入适当;
4)将模块的影响限制在控制范围内;
5)降低模块接口的复杂性;
6)设计单入口单出口的模块;
7)模块功能可预测。

4、结构图SC。读图和画图

5、面向数据流的设计方法的设计步骤
1) 复查基本系统模型;
2) 复查并精化数据流图;
3) 确定数据流图具有变换特性还是事务特性;
4) 确定输入流和输出流的边界,从而孤立出变换中心;
5) 完成“第一级分解”;
6) 完成“第二级分解”;
7) 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。

6、信息流的类型有几种,是什么
两种:变换流(顺序)和事务流(选择)

7、简单的变换分析:给出数据流图,映射成软件结构
结构化设计以 数据流图_______ 为基础,按一定的步骤映射成软件结构。

第六章 详细设计

1. 结构程序设计的经典定义
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

2. 程序流程图、盒图、PAD图、判定表,会画。

3.面向数据结构的设计方法是什么
Jackson方法和Warnier方法

4.Jackson图、Jackson方法基本步骤
基本步骤:
1.分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构来表示这些数据结构;
2.找出输入数据结构和输出数据结构中有对应关系的数据单元;
3.按照一定的原则,从描绘数据结构的Jackson图导出描绘程序结构的Jackson图;
4.列出基本操作与条件(包括分支条件和循环结束条件),并把它们分配到程序结构图的适当位置;
5.用伪代码表示程序。

5.程序复杂度的定量度量方法,会计算环形复杂度
McCabe方法,Halstead方法
计算环形复杂度方法:
1)流图中线性无关的区域数等于环形复杂度;
2)流图G的环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是结点数;
3)流图G的环形复杂度V(G)=P+1,其中P是判定结点的数目。

第七章 实现

1、试述大型软件系统的测试过程的5个步骤,及每个步骤的测试重点或特点
1)模块测试(发现编码和详细设计的错误);
2)子系统测试(着重测试模块的接口);
3)系统测试(发现软件设计或需求说明中的错误)
4)验收测试(发现系统需求说明书中的错误);
5)平行运行(所谓平行运行就是同时运行开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果)。

2、白盒测试方法从覆盖原程序语句的详尽程度来看,有几种逻辑覆盖标准,其含义分别是什么计测试用例
1)语句覆盖(至少每个语句应该执行一次)
2)判定覆盖(不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次)
3)条件覆盖(不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果)
4)判定/条件覆盖
5)条件组合覆盖
6)点覆盖
7)边覆盖
8)路径覆盖

3、基本路径测试方法的特点和步骤
特点:确保程序中每一条语句至少执行一次,且每个条件在执行时都被分别取真、假两种值。
步骤:
1)根据过程设计结果画出相应的流图;
2)计算流图的环形复杂度;
3)确定线性独立路径的基本集合;
4)设计可强制执行基本集合中每条路径的测试用例。

4、等价划分法,会设计测试用例
一种黑盒测试技术,把程序的输入域划分为若干个数据类,据此导出测试用例。

5、软件可靠性和可用性的定义,会算
可靠性定义:程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率;
可用性定义:是程序在给定的时间点,按照规格说明书的规定,成功运行的概率。

6、估算平均无故障时间和错误总数
平均无故障时间:

植入错误法:

分别测试法:

第八章 维护

1、软件维护指的是什么举4类维护活动,并简述其主要内容。
在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
4项活动:
改正性维护(为了纠正在使用过程中暴露出来的错误);
适应性维护(为了适应外部环境的变化);
预防性维护(为了改进将来的可维护性和可靠性);
完善性维护(为了改进原有的软件)。

2、软件再工程模型的6类活动。
1)库存目录分析; 2)文档重构; 3)逆向工程;
4)代码重构; 5)数据重构; 6)正向工程。

第九章 面向对象方法学引论

1、面向对象方法的四个特点
1)认为客观世界是有各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。
2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。
3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。
4)对象彼此之间仅能通过传递消息互相联系。

2、什么是面向对象方法学,它的5个优点是什么
1)与人类习惯的思维方法一致;
2)稳定性好;
3)可重用性好;
4)较易开发大型软件产品;
5)可维护性好

3、面向对象建模需要建立哪几种模型,建模时需要使用哪些图形工具,会画
对象模型:使用UML的类图建立对象模型
动态模型:使用UML的状态图建立动态模型
功能模型:使用UML的数据流图或用例图建立功能模型

第十章 面向对象分析

1、建立对象模型的典型工作步骤
1)首先确定对象类和关联(因为它们影响到系统整体结构和解问题的方法);
2)对于大型复杂的问题还要进一步划分出若干个主题;
3)然后给类和关联增添属性,以进一步描述它;
4)接下来利用适当的继承关系进一步合并和组织类;
5)由于经过一次建模过程很难得到完全正确的对象模型,所欲需要反复修改。

2、什么是非正式分析 (找个班上吧)

3、建立动态模型的典型工作步骤
1)编写脚本;
2)设想用户界面;
3)画事件跟踪图;
4)画状态图;
5)审查动态模型

4、脚本的定义,事件跟踪图的画法
指系统在某已执行期间内出现的一系列事件,描述用户与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。

第十一章 面向对象设计

1、面向对象设计的启发规则有哪些
1)设计结果应该清晰易懂;
2)一般/特殊结构的深度应适当;
3)设计简单的类;
4)使用简单的协议;
5)设计简单的服务;
6)把设计变动减至最小。

2、软件重用的概念,软件成分重用的级别
在开发新软件的过程中,重复使用已有的软件成分,该软件成分可能是已存在的软件,也可能是专门设计的可重用的软件结构。
三个级别: 1)代码重用;2)设计结果重用;3)分析结果重用。

3、什么是类构件,类构件的特点和3种重用方式
比较理想的可重用软构件。
特点:1)模块独立性强;2)具有高度可塑性;3)接口清晰、简明、可靠。
重用方式:1)实例重用;2)继承重用;3)多态重用。

4、采用面向对象方法设计软件系统时,系统分解的方法strong>
续上班

第十二章 面向对象实现

1、 面向对象方法提高可重用性的设计准则
1) 提高方法的内聚;
2) 减小方法的规模;
3) 保持方法的一致性;
4) 把策略与实现分开;
5) 全面覆盖;
6) 尽量不使用全局信息;
7) 利用继承机制。

2、面向对象方法提高可扩充性的设计准则
1)封装实现策略;
2)不要用一个方法遍历多条相关联链;
3)避免使用多分支语句;
4)精心确定公有方法。

第十三章 软件项目管理

1、估计软件规模:代码行技术;功能点技术

2、工作量估算:COCOMO2模型

3、甘特图;工程 络

4、人员组织:民主制程序员组、主程序员组、现代程序员组

5、软件配置、基线
在软件工程过程中产生的所有信息项(文档、 告、程序、表格、数据)构成了软件配置。

6、能力成熟度模型,5级
1)初始级;2)可重复级;3)已定义级;4)已管理级;5)优化级。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月20日
下一篇 2021年5月20日

相关推荐