当前位置:文档之家› 软件工程基础[5篇]

软件工程基础[5篇]

软件工程基础[5篇]第一篇:软件工程基础一、选择题【例1】对软件的特点,下面描述正确的是_______。

A)软件是一种物理实体B)软件在运行使用期间不存在老化问题C)软件开发、运行对计算机没有依赖性,不受计算机系统的限制D)软件的生产有一个明显的制作过程【例2】以下哪项是软件生命周期的主要活动阶段?_______A)需求分析B)软件开发C)软件确认D)软件演进【例3】从技术观点看,软件设计包括_______。

A)结构设计、数据设计、接口设计、程序设计B)结构设计、数据设计、接口设计、过程设计C)结构设计、数据设计、文档设计、过程设计D)结构设计、数据设计、文档设计、程序设计【例4】以下哪个是软件测试的目的?_______A)证明程序没有错误B)演示程序的正确性C)发现程序中的错误D)改正程序中的错误【例5】以下哪个测试要对接口测试?_______。

A)单元测试B)集成测试C)验收测试D)系统测试【例6】程序调试的主要任务是_______。

A)检查错误B)改正错误C)发现错误D)以上都不是【例7】以下哪些不是程序调试的基本步骤?_______A)分析错误原因B)错误定位C)修改设计代码以排除错误D)回归测试,防止引入新错误【例8】在修改错误时应遵循的原则有_______。

A)注意修改错误本身而不仅仅是错误的征兆和表现B)修改错误的是源代码而不是目标代码C)遵循在程序设计过程中的各种方法和原则D)以上3个都是二、填空题【例1】软件设计是软件工程的重要阶段,是一个把软件需求转换为_______的过程。

【例2】_______是指把一个待开发的软件分解成若干小的简单的部分。

【例3】数据流图采用4种符号表示_______、数据源点和终点、数据流向和数据加工。

第二篇:软件工程基础实践教程读书总结软件工程基础实践教程吴洁明著第一章软件工程概述1.2软件工程发展简史20世纪70年代,第一代软件工程,即传统软件工程。

80年代,第二代即对象工程。

90年代第三代即构件工程。

1.3软件工程的定义和目标软件工程是将系统化的、规范的、可度量的方法应用于软件的开发运行和维护过程,也就是将工程化应用于软件开发和管理之中。

软件工程研究的主要目标是软件开发技术和软件开发管理两个方面。

目标:(1)合理预算开发成本,付出较低的开发费用;(2)实现预期的软件功能,达到较好的软件性能,满足用户的需求。

(3)提高所开发软件的可维护性,降低维护费用。

(4)提高软件开发生产率,及时交付使用。

1.4 软件工程的7条基本原理1.用分阶段的生命周期计划严格管理。

2.进行阶段证实是。

3.实行严格的产品控制。

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

5.结果应能清楚地审查。

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

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

1.5 软件生命周期模型可行性研究、需求分析、设计、实现、测试和集成、维护瀑布模型、快速原型化模型、演化模型、螺旋模型、构件组装模型1.6软件工程过程第一级初始级、第二级可重复级、第三级定义级、第四级管理级、第五级优化级1.7 软件开发方法简述1.Parnas方法有两个闪光点:信息隐藏技术;错误预防技术。

信息隐藏技术:在概要设计时列出可能会发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。

错误预防:在每个可能产生的错误之前增加一些判断,防止软件出现不可预料的结果。

2.Yourdon方法3.面向数据结构的软件开发方法4 问题分析方法PAM5.面向对象的软件开发方法6.可视化开发方法1.8 软件工程相关的技术规范、标准和最新文献的信息源CMM规范、ISO9000-3、ISO/IEC12207标准、PSP规范、TSP规范、软件配置管理系列标准、JAVA规范、C++规范、Unicode标准、其他资料第二章可行性研究2.2可行性研究的步骤1.复查系统的规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查2.3 可行性分析的要素经济、技术、社会环境、人2.4 成本/效益分析2.4.1 程序规模估算第一种方法:根据以前做过的类似项目规模与新项目规模的比例关系,对照以前项目的工作量求出新项目的工作量。

第二种方法:基于功能点的估算方法,该方法中确定了5个信息域特性:输入项数,输出项数,查询数,主文件数和外部接口数。

2.4.2 工作量估算1.IBM模型2..Putnam模型3.COCOMO||模型2.4.3 成本/效益分析方法1.倾向的时间价值2.投资回收期3.纯收入4.投资回收率第三章需求工程3.1 需求工程的概念需求工程由需求开发和需求管理组成。

需求开发是指需求的获取、分析、规格说明和验证。

需求管理是在软件开发过程中对需求开发结果的控制、跟踪和管理。

3.1.1 需求分类分为4个层次:业务需求、用户需求、功能需求和非功能需求。

业务需求是反映组织机构或客户对软件高层次的目标要求。

用户需求是用户使用该软件要完成的任务。

功能需求定义了软件开发人员必须实现的软件功能。

非功能需求是对功能需求的补充。

3.1.2 需求工程的主要活动需求开发的活动:获得需求;分析需求;编写需求规格说明书;审查需求。

需求管理的活动:需求变更控制;需求版本控制;需求跟踪;需求状态跟踪控制。

3.1.3 高质量需求的特征需求开发阶段的主要产品是软件需求规格说明书,在评审过程中应特别关注下面几点:完整性,正确性,可行性,必要性,划分优先性,无二义性3.1.4 影响需求质量的因素1.用户需求不断增加2.模棱两可的需求3.用户不配合4.过于精简的需求说明5.忽略了用户的分类6.不准确计划7.不必要的特性3.3 需求获取方法调研计划包括:调研的部门,调研前的培训内容,调研的时间和地点,设计调研访谈表,调研结果分析,调研报告的格式和内容。

1.发现问题及时与开发人员沟通。

2.用户必须坚持需求审查。

3.3.1 必须向用户交代的两个重要问题第一,软件开发与其他产品的开发过程一样是分阶段的,每个阶段都有阶段产品。

第二,分阶段审查产品时产品的合格标准是什么?需要提交的阶段产品及其主要内容和提交时间:软件范围和目标说明书;软件调研报告;软件开发计划书;软件需求分析规格说明书;软件设计规格说明书;软件模块开发卷宗;软件测试计划书;软件测试报告;软件用户手册;软件开发月报。

3.4 定义软件的质量属性有效性:指在预定的时间内系统正常运行时间的比例。

高效性:系统效率用来衡量处理器优化、磁盘和内在空间利用率、通信带宽利用率等系统资源的使用情况。

灵活性/可修改性:灵活性反映在软件中添加新功能时所需要的工作量。

安全性:保证系统不被非法访问,防止数据丢失、防止病毒入侵、防止私人数据进入系统。

互操作性:表明产品与其他系统交换信息和使用服务的难易程度。

可靠性:可靠性指标是软件在给定时间间隔内按照规格说明书的规定正常运行的概率。

健壮性:指当软件遇到非法输入数据或相关的运行环境出现异常软件仍能正确运行的程度。

易用性:可指对用户某项操作的时间要求,也可指用户学习操作软件所用的时间要求,或者是对软件操作形式的要求。

可维护性:它描述纠正一个缺陷或进行一个变更的简易程度。

可移植性:度量把软件从一种环境移到另一种环境中所花费的工作量。

可重用性:表明一个软件组件可用于其他软件的程度。

可测试性:指测试软件时缺陷的简易程度。

可理解性:指人们通过阅读程序源代码和相关文档了解程序功能、结构和运行方式的容易程度。

3.5 需求优先级3.7 需求管理目的:保障需求规格说明书与软件产品的一致性;控制需求变更对项目开发的影响;使需求活动与计划保持一致。

第四章结构化分析4.1 结构化分析的主要工具结构化分析方法研究的核心是数据的组成、数据流向和对数据的加工处理。

4.1.3 数据字典主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。

数据流是数据结构中的数据在系统内的传播路径。

数据元素是数据处理中最小的、不可分割的单位,它直接反映事物的某个属性。

4.1.6 实体关系图它给出了一组基本的构件:数据对象、属性、关系和各种类型指示符,主要目的是表示数据对象及其关系。

4.2 结构化分析方法的实现步骤两条基本原则:必须要理解问题的数据域和功能域;按自顶向下、逐层分解的方式对问题进行分解和细化。

步骤;1.信息分析 2.回溯 3.补充 4.确定非功能需求 5.复查 6.画出软件的功能结构图 7.修正开发计划 8.编写需求文档。

4.3 结构化分析规格说明书第5章结构化软件设计5.1 软件设计的过程典型总体设计过程:1.设想供选择的方案对每种合理的方案都应该备下列四份资料:系统流程图,组成系统的元素清单,成本/效益分析,实现这个方案的进度计划。

2.推荐最佳方案3.功能分解4.设计软件结构 5.数据设计 6.制定测试计划 7.书写文档 8.设计审查和复审9.评审详细设计5.2 软件设计原则和影响设计的因素原则:1.多样化设计 2.设计可回溯到需求 3.充分利用已有的模块 4.设计应该表现出一致性和规范性5.设计的易修改性6.容错性设计7.设计的粒度要适当 8.在设计时就要开始评估软件的质量 9.设计评审5.3 软件设计的概念5.3.1 模块一般把用一个名字就可调用的一段程序称为“模块”。

模块具有如下三个属性:功能、逻辑、状态5.3.2 模块化模块化就是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。

5.3.3 模块独立性反映模块独立性的有两个标准:内聚和耦合1.耦合:指模块间相互关联的程度耦合分为7类:内容耦合、公共耦合、外部耦合、控制耦合、数据结构耦合、数据耦合、非直接耦合、2.内聚:指一个模块内部各元素之间的紧密程度巧合内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚。

5.5 结构化设计方法具体流程:1.首先分析流程图的类型2.将数据流程图映射为结构图 3.用“因子分解”方法定义软件的层次结构。

4.优化设计结构5.5.1 数据流和类型:交换流、事务流5.5.2 变换分析变换分析方法由以下四步组成:重画数据流程图;区分逻辑输入、逻辑输出和中心变换部分;进行第一级分解,设计上层模块;进行第二级分解,设计中、下层模块。

5.7 优化软件设计规则1:模块功能完善化规则2:设计功能单一和结果可预测的模块规则3:消除重复功能规则4:模块的作秀范围应在控制范围之内规则5:模块的大小要适中规则6:尽可能减少高扇入的结构规则7.将模块中相对变化较大的部分剥离出去5.8 设计复查复查过程分为三部:首先,采用概要设计复查的方法来检查在概念上的设计;然后,在关键设计审查中,应向其他开发者描述关键技术上的设计细节;最后,进行程序设计的复查,程序设计的复查羽毛球详细设计阶段。

相关主题