软件工程基础[5篇]

时间:2019-05-13 23:25:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《软件工程基础》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《软件工程基础》。

第一篇:软件工程基础

一、选择题

【例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 设计复查

复查过程分为三部:首先,采用概要设计复查的方法来检查在概念上的设计;然后,在关键设计审查中,应向其他开发者描述关键技术上的设计细节;最后,进行程序设计的复查,程序设计的复查羽毛球详细设计阶段。

5.9 数据设计

5.9.1 数据设计的原则:1.用于软件的系统化方法也适用于数据,在导出、评审定义软件需求和软件体系结构时,必须定义和评审其中用到的数据流、数据对象、数据结构。2.确定所有的数据结构以及在每种数据结构上实施的操作。3.应该建立一个数据字典,用它来定义数据和软件的设计。4.底层数据设计的决策应该推迟到设计过程的后期进行,在数据设计中也可以使用自顶向下、逐步细化的方法。5.数据设计要遵从信息隐藏原则,只有那些相关的模块才能访问相应的数据结构,数据结构的逻辑表示与物理表示要分开。6.应当创建一个存放数据结构和相关操作的库 7.软件设计和程序设计语言应当支持抽象数据类型的定义和实现,否则,对于一些复杂数据结构的设计和实现可能是非常困难的。

5.9.2 数据结构设计

5.11 详细设计

5.11.1 结构化设计

包括顺序、条件和重复三种结构。顺序结构实现了任何算法定义中的核心处理,条件结构允许根据逻辑情况选择处理方式,重复结构提供了循环。

核心内容:1.程序模块只有一个入口和一个出口 2.程序中只包含顺序、条件和循环三种控制结构 3.详细设计阶段采用自顶向下逐步求精的方法,可以把一个模块的功能爱步分解细化为一个系列具体的处理步骤。

第6章 软件测试

6.1 软件测试的概念

6.1.1 测试定义

从广义上讲,是指软件产品生存周期内所有的检查、评审和确认活动。从狭义上讲,软件测试是为了发现错误而执行程序的过程。

软件测试的原则:1.应该把测试贯穿在整个开发过程之中 2.每个测试用例都应该包括测试输入数据和这组数据输入作用下的预期输出结果。3.要对每个测试结果进行全面检查,不要漏掉已经出现的错误迹象。5.在设计测试用例时,应该包括有效的、期望的输入情况,也要包括无效的和不期望的输入情况。6.软件中遗留的错误数量与已经发现的错误数量成正比。

7.回归测试的关联性要特别引起注意,修改一个错误而想起更多我错误的现象并不少见 8.测试程序时不公要检查程序是否做了它应该做的事情,还要检查它是否做了不该做的事情。

9.严格执行测试计划。10.做好测试记录,为统计和维护提供基础数据。

第三篇:中南大学软件学院软件工程基础复习

1.瀑布模型是以文档为驱动、适合于(软件需求确定的)软件项目的开发。

2.需求分析的基本任务是(确定用户需要软件做什么)。

3.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(边界值分析法)。

4.根据程序流程图划分的模块通常是(过程)内聚的模块。

5.软件的分类,按其功能可分为:系统软件、(支撑软件)和应用软件。

6.UML的定义包括UML语义和(UML表示法)两个部分。

7.客观世界中的若干类,通常有两种主要的结构关系:即分类结构和(整体与部分结构)。

8.IDEF1X图用来描述系统的(数据)模型,主要有实体、联系和(属性)三种成分,其中实体可分为独立实体和(从属实体),且一个实体只能在图中出现一次。

9、软件是计算机程序、(描述计算机程序的文档)及(数据)的完整集合,将其统称为软件配置,这些项称为软件配置项。通过正式复审的软件配置项称为(基线),只有通过正式的变化控制过程才能改变它。

10、通常,将软件生命周期全过程中使用的一整套技术方法的集合称为方法学,包含三个要素,即方法、(工具)和(过程)。传统方法学采用(结构化)技术来自顶向下顺序地完成软件开发的各项任务,而面向对象方法是一种以(数据)为主线,把数据和对数据的操作紧密地结合起来的方法,其开发过程是一个多次迭代的演化过程。

11、软件测试的目标是(暴露程序中的错误),因而从心理学角度来看,由程序作者对自己编写的程序进行测试是不恰当的。设计测试方案是测试阶段的关键技术问题,测试方案一般包括(测试目的)、输入的测试数据和(预期的结果)。

12、模型是为了理解事物而对事物作出的一种抽象,由(一组图示符号)和(组织这些符号的规则)组成。对象模型描述了系统的静态结构,通常使用UML提供的(类图)图来描述。

13、需求分析的基本任务是(准确地回答系统必须做什么),在需求分析结束前,系统分析员应该写出(软件需求规格说明书),以书面的形式准确描述软件需求。

14、面向数据流的设计方法把(信息流)映射成软件结构,依据其类型的不同,有两种不同的映射方法,分别是(变化分析)和(事物分析)方法。

15、软件设计一般分为(概要设计)和(详细设计)两个阶段。

16.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为 逻辑内聚的模块。

17.在数据流图中,每个加工至少有一个输入数据流 和一个 输出数据流。

18.软件项目计划是计划(策划)阶段的结果产品。但由于是在高层次进行系统分析,未能考虑软件系统开发的细节情节,因此软件项目计划一般在需求分析 阶段完成后才定稿的。

19.在面向对象类层次结构中,子类只继承一个父类的数据结构和方法,则称为 单重继承。如果子类继承了多个父类的数据结构和方法,则称为多重继承。

20.在软件测试过程中,α测试是由 一个用户在开发 环境下进行的测试,而β测试是由多个用户在 实际使用环境下进行的测试。

21.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是聚合 和 组合。

22.瀑布模型是以文档 驱动的软件生存周期模型,适合需求明确的软件系统开发。23.IDEF1X方法用来建立系统的数据 模型。

24.在单元测试期间,应该为被测模块编写相应的测试软件,一般地驱动 模块接收测试数据,并把数据传给被测模块,而桩 模块则模拟实际模块完成少量数据处理。

25.评估软件企业的质量管理有两种方法,一种是按照ISO9001 认证,另外一种是按照CMM认证。

1.软件测试的目的是(发现错误)。

2.软件按服务对象可分为项目软件和(产品软件)。

3.在常见的软件生存期模型中,(螺旋)模型是风险驱动的。

4.UML通过三种扩展机制来扩充UML的建模能力,分别是(约束)、构造型和(标记值)。

5.在软件测试用例的设计方法中,白盒法以(程序内部数据结构)为依据设计测试用例,6.在面向对象设计原则中,(组装复用)原则要求在新的对象里尽量使用已有的类对应的对象,并通过(委派)达到复用已有功能的目的。

7.状态图描述一个类对象所经历的(各种状态)以及事件发生时状态的(转移条件).8.SOFL软件开发方法学认为,在需求分析和规格说明阶段应该采用(结构化)方法,而在设计和实现阶段则应该采用(面向对象)方法。

9.可行性研究的内容包括(技术可行性)、经济可行性和(操作可行性)。软件按服务对象可分为(项目软件)和产品软件在常见的软件生存周期模型中,(瀑布)模型是文档驱动的UML采用(用例)图描述系统与外部用户的交互行为在软件测试用例的设计方法中,黑盒法以(外部功能)为依据设计测试用例定性度量模型独立性的两个标准是(内聚度)和(耦合度)8 在SA方法的需求描述工具中,(层次方框图)描述系统的分解,即描述系统由哪几个部分组成,各部分之

间有什么联系等等;(数据词典(和加工说明))定义了数据流图中每个图形元素;结构化语言、判定

表或判定树则详细描述、数据流图中不能被分解的(基本加工)IDEFO图主要元素是简单的盒子及箭头,其中盒子代表(活动)。而箭头表示系统处理的(数据约束)

1.什么是软件工程?软件工程和计算机科学有何区别? 答:软件工程是指导软件开发和维护的工程性学

科;计算机科学着重于原理和理论,软件工程与计算机科学不同,软件工程着重于如何建造软件系统,软

件是计算机中看不见摸不着的逻辑部分,以程序、数据和文档的形式出现。

2.面向对象方法和结构化方法有何区别与联系? 答:区别: 面向对象从所处理的数据入手,以数据为中

心来描述系统,其基本思想是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类

认识世界的方法与过程,基本原则为:对象+类+继承+消息通信 结构化方法首先关心的是功能,强调以模

块为中心,其基本思想是自顶向下,逐步求精,单入口,单出口,基本原则为:抽象与功能的分解 联系:

软件开发过程中,在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。

3.什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内? 答:模块的作用域是

指模块中判定的作用范围,它是指所有受这个判定范围影响的模块;模块的控制域是指模块本身及其直接

或间接调用的模块;如果模块的作用域不在控制域内,则会增加数据间的传递量,使模块间出现控制耦合4.什么是设计模式?试举例说明组合设计模式的应用。答:设计模式是指系统命名,解释和评价某一重要的,可复用的面向对象的设计方案。组合设计模式:使用迭代器模式来遍历组合结构。

5.什么是依赖倒置原则?它和开闭原则有何联系? 答:依赖倒置是类设计原则的一种,它要求高层不应

依赖于底层,抽象不应依赖于细节;依赖倒置原则的本质其实就是通过抽象(抽象类或接口)使各个类或

模块的实现彼此独立,不相互影响,实现模块间的松耦合,如果没有实现这个原则,则开闭原则也无法实

现。

6.软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点?答:软件生存期过程没有规定一个特

定的生存周期模型,各软件开发机构可视其项目的需要选择一种软件生存周期模型,并将软件生存期过程

所含过程、活动和任务映射到选定的软件生存周期模型中。软件生存期模型是软件生存期过程所含过程、活动和任务的映射。瀑布模型特点:各阶段相互依赖;每阶段都进行评审;强调需求分析和设计。

1.瀑布模型是软件工程中应用最广泛的过程模型,试述采用瀑布模型进行软件开发的基本过程,该过程有

何特点? 答:瀑布模型规定了各项软件工程活动,包括需求分析、规格说明、设计、编码、测试和维护,并规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级而下。瀑布模型的特点是:阶段间具

有顺序性和依赖性;清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段都必须完成规

定文档,且每阶段结束前需要对完成的文档进行评审。

2、什么是软件配置管理?软件配置管理和软件维护有何不同? 答:软件配置管理是在软件生命周期内管理变

化的一组活动,用来:标识变化、控制变化、确保适当地实现了变化、向相关人员报告变化。

软件配置管理和软件维护的区别是:软件配置管理是一组追踪和控制活动,在软件项目启动时就开始,并

一直持续到软件被淘汰后才终止;软件维护是一组软件工程活动,发生于软件交付给用户并投入运行之后。

3、试举例说明聚集关系中共享聚集和组合聚集有何不同。答:如果在聚集关系中部分对象可同时参与多个

整体对象的构成,则该聚集称为共享聚集。例如,一个课题组包含许多成员,每个成员又可以是另一个课

题组的成员,则课题组和成员之间是一种共享聚集的关系。

如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。例如,在屏幕上一个窗

口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之的关系为组合聚集关系。

1非渐增式测试与渐增式测试有何区别? 答:非渐增式测试,一般应先经过单元测试,然后再把所有模块一

次性组装在一起进行测试,最终得到要求的软件系统;而渐增式测试则采用逐步加入模块或功能簇的方式

进行,在加入过程中边连接边测试,比较容易定位和修正错误,且接口也可以更容易进行彻底地测试2.试举例说明什么是功能性需求,什么是非功能性需求?为何非功能性需求往往比功能性需求还要重

要? 答:功能性需求是说有具体的完成内容的需求。例如:比如客户登录、邮箱网站的收发邮件、论坛网

站的发帖留言等。非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。例如:性能要求:要求系

统能满足100个人同时使用,页面反应时间不能超过6秒;非功能性需求往往比功能性需求还要重要是因为

非功能性需求描述的是软件的质量属性,直接影响着用户体验,因此非功能性需求在决定系统成败的因素

中起更重要的作用。

3.层次图和层次方框图有何区别? 答:不同:1,层次图描绘软件的层次结构.层次方框图描绘的是数据结

构。2,层次图的方框表示模块或子模块。层次方框图的方框表示数据结构整体或其子集。3,层次图的连线表

示调用关系,层次方框图表示组成关系。

4.快速原型模型有几种?各有何特点?答:快速原形模型根据原型的不同作用,有三类原型模型:

(1)探索型原型:把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索

各种方案的可行性。它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开

发来明确用户的需求。

(2)实验型原型:主要用于设计阶段,考核实现方安是否合适,能否实现。对于一个大型系统,若对设计方

案心中没有把握时,可通过这种原型的开发来证实设计方案的正确性。

(3)演化型原型:它将原型思想扩展到软件开发的全过程,就是及早向用户提交一个原型系统,在得到用户

认可后,将原型系统不断扩充演化为最终的软件系统。

2.什么是模块的作用域?为何设计软件结构时要求模块的作用域必须在控制域之内? 答:所谓模块的作

用域是指模块判定的影响范围。作用域在控制域之内,可使得软件修改时代码局部化。

3.什么是动态测试?为何静态测试方法往往比动态测试方法效率高? 答:动态测试是指经运行程序代码

而检查代码是否存在错误。静态测试往往不是运行代码,而在软件开发的早期进行,而早期错误发现要比

错误晚发现付出的成本少,而静态测试往往在发现错误后还可继续进行,但动态测试往往需要停下来改进后才能进一步测试。1 试简要说明面向对象方法与结构化方法相比有何优越性,至少列出三点。答:(1)强调从现实世界中客观

存在的事物(对象)出发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域。(2)运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息通讯等基本原则)进行系统开发,有益于发挥人类的思维能力,并有效地控制了系统复

杂性。(3)对象的概念贯穿于开发过程的终,使各个开发阶段的系统成分具良好的对应,从而显著地提高

了系统的开发效率与质量,并大大降低系统维护的难度。(4)对象概念的一致性,使参与系统开发的各类

人员在开发的各所段具有共同语言,有效地改善了人员之间的交流和协作。(5)对象的相对稳定性和对易

变因素隔离,增强了系统的应变能力。(6)对象类之间的继承关系和对象的相对独立性,对软件复用提供

了强有力的支持。1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题

表现在以下几个方面:(1)用户对开发出的软件很难满意。(2)软件产品的质量往往靠不住。(3)一般软件很

难维护。4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与开发进度难以估计。7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

1.软件开发模型有几种?它们的开发方法有可特点?软件开发模型有瀑布型、渐增型和变换型。瀑布型开

发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。它的特点:(1)各个阶段的顺

序性和依赖性;(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;3)每个阶段必须完成规定的文

档,对其中问题通过复审及早发现,及早解决。渐增型开发方法及特点:1)从部分需求出发,先建立一个不

完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完

善。如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。2)在渐增型开发下的软件是随软

件开发的过程而逐渐形成的。(3)渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识

开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。变换型开发方法及特点:(1)从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的程序系统。(2)该方法必须有严格的数学理论和形式化技术的支持。

2.功能与对象的区别?

1、功能比对象容易变化(功能相对不稳定)

2、功能是主观的,对象是可观的。

3、功能是可以调用的,要么全有,要么全无,而对象可以部分的继承使用。

3. 软件开发过程可视化的两种方法?文档驱动、小批量发布

4.风险分析的目的?对风险进行管理。

5. 传递信息的方法?

1、参数。

2、全局变量。

3、公共可访问区域。

6.数据建模的作用?

1、抓住问题的主要方面---理解问题。

2、便于交流。

3、可以进行分析(性能、可靠

性、、、、、、)。

4、可以自动生成代码。

7. 描述模型的两种方法?

1、结构化方法:结构化方法首先关心的是功能,强调以模块为中心,采用模

块化、自顶向下、逐步求精设计过程(分层),适合需求明确的模型。其不足之处:不太适应规模大及

特别复杂的项目,难于解决软件重用问题,难于适应需求变化或模糊的问题,软件维护比较复杂。

2、面向

对象方法:面向对象方法则从所处理的数据入手,以数据为中心来描述系统,适合迭代增量式分解(网状)。

其不足之处:类作为复用单元,有时显得太小,类继承会增加类间的耦合度,该方法不够成熟。

8. 描述作业之间的关系?

1、画PERT图。

2、确定最晚发生时刻与最早发生时刻。

3、计算机动时间,为0 的为关键事件。

4、Gantt图的方法进行描述。

9. 用例与功能的区别?

1、完成一个用例需要若干功能。

2、用例是从用户使用系统的角度来描述系统的行为的。

3、用例往往是对用户有价值的结果。

4、用例满足用户的业务目标。

10. 描述模块独立性的标准?内聚度(内聚度是指模块内部各成分联系紧密的程度,内聚度越高,模块独

立性越强)耦合度(耦合度是指模块之间相互关联的紧密程度。耦合度越低,模块独立性越强)

11.什么是黑盒测试?黑盒测试主要采用的技术有哪些? 黑盒测试也称为功能测试,它着眼于程序的外部特

征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是

在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接

收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试主要采用的技

术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。

12.什么是白盒测试?白盒测试主要采用的技术有哪些?测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。

13. 瀑布模型的优缺点?优点:1.流水线生产比个人生产效率高,质量好。2.将逻辑设计与物理实施分开,避免无用功。减少成本,能尽量推迟物理实施。3.文档驱动使得开发过程可视化,便于管理和控制。缺点:

1.当需求不明确时,流水线被阻塞。2.得不到用户的反馈,开发过程得不到修正,导致有可能出现大的失误。3.最后将产品一次提交给用户,用户感到不适应,成本增加,市场风险加大。

14.软件工程的目的?以期用较少的代价获取高质量的软件。

第四篇:0.《软件工程基础课程》课程大作业要求及规范

《软件工程基础》大作业要求

执笔人:董元和(2017年9月20日)

一、总体要求

1.本次大作业要求各同学按原先选定项目题目,按照软件生命周期进行软件各类分析与设计,并撰写相关文档。各文档会随着课程地进行,按章节分步完成,期末结束进行集中修订和汇总,作为本课程大作业的主要材料。2.软件分析与设计可参考教材第13章“一体化开发方法应用实例”及教材各章节的相关内容,文档撰写可参考“《计算机软件文档编制规范》GB-T8567-2006”、“GBT 9385-2008 计算机软件需求规格说明规范”等,并需要根据教材内容绘制规范的相应的图表。3.软件分析与设计统一采用面向对象方法,要求各阶段文档所采用的分析与设计方法一致。4.项目设计应该有相应的项目软件代码,并可以简单演示。

5.各文档除注明执笔人,可以请其它同学协助,但须说明协作人员,并注明协作人员的工作内容。6.课程结束,各文档在老师检查合格后,统一装订成册,交由老师存档。

二、具体完成内容

1.可行性分析及开发计划

1)对所选项目的系统进行可行性分析,写出“可行性分析报告”;

2)对所选项目,制订出初步的软件开发计划,写出“软件开发计划书”。

2.软件需求分析

1)对所选项目进行认真详细的需求分析,并撰写需求分析报告。文档需要有详细的相关需求分析图表,如分析出业务流程图(TFD)、再根据TFD抽象出数据流程图(DFD),也可以结合面向对象的分析方法(OOA)完成项目需求分析,如用例图等,还需包含数据库的需求分析。

3.软件设计

1)对所选项目进行认真详细的软件概要设计,并撰写概要设计文档。文档要求有详尽的相关概要设计图表,如总体结构图、模块结构图、数据库及人机界面的总体设计等,也可以结合面向对象的设计方法(OOD)完成概要设计,如类图等。

2)对所选项目进行认真详细的软件详细设计,并撰写详细设计文档。文档要求有详尽的相关详细设计图表,如总体流程图、模块流程图、数据库及人机界面的详细设计等,也可以结合面向对象的设计方法(OOD)完成概要设计,如类图、活动图、状态图等。3)数据库的设计应该按照概念设计、逻辑设计、物理设计的过程来完成设计,并有相应的图表或文字描述,应该有采用Viso、PowerDesigner、Enterprise Architect、ERStudio等建模软件完成的建模图表。4)软件设计应该有人机界面的设计,包括人机界面的概要设计与详细设计。可借用Axure、DreamWaver等协作软件。

4.软件实现

1)对所选项目进行初步的软件实现,并撰写相应的软件实现文档,如软件规格说明、总结报告、用户手册等,各文档可分章节合成一个文档。

2)需说明开发环境及框架、开发的前台及后台语言、数据库管理平台、采用的软件工具、基本的核心代码等。软件应该能基本运行演示。

5.软件测试、部署与维护(1人主笔完成)

1)结合小组项目进行软件测试、调试、部署及维护,开撰写相应的测试报告文档。要求说明软件测试方法、测试用例、测试工具等。

三、考核评定

1.项目整体评分。根据各同学项目完成情况,给予总体评分,占个人大作业成绩的40%; 2.各部分分步评分。根据各部分的难易程度及完成情况,给予分步评分,各部分成绩总和占个人大作业成绩的60%;

四、考核班级及学期

1.班级:计算机学院1505班; 2.学期:2017-2018学年上学期

第五篇:软件工程

1.软件危机的概念 系统的数据要求,功能需求,性能需求,显示出程序的轮廓。

软件危机是指在计算机软件开发、使用与可靠性需求,可用性需求,出错处理需求,混合方式

维护过程中遇到的一系列严重问题和难接口需求,约束,逆向需求以及将来可能优点:综合了以上两种策略的长处 题。提出的需求。9.确认测试

补充: 5.常使用的图形工具 确认测试又称有效性测试。有效性测试是

1.软件危机的表现有哪些? 实体-联系图,数据流图,状态转换图,在模拟的环境下,运用黑盒测试的方法,答:1)对软件开发成本和进度的估计常层次方框图,warnier图,IPO图。验证被测软件是否满足需求规格说明书常很不准确。第五章 列出的需求。任务是验证软件的功能和性

2)用户对已完成的软件不满意1.总体设计的任务 能及其他特性是否与用户的要求一致。对的现象时有发生。划分出组成系统的物理元素——程序、文软件的功能和性能要求在软件需求规格

3)软件产品的质量往往是靠不件、数据库、人工过程和文档等等 说明书中已经明确规定,它包含的信息就住的。设计软件的结构。也就是要确定系统中每是软件确认测试的基础。

4)软件常常是不可维护的。个程序是由哪些模块组成的,以及这些模10.什么是白盒测试,其测试技术有那些,5)软件通常没有适当的文档资块相互间的关系。覆盖标准的强弱程度

料。2.模块化思想 白盒测试是一种测试用例设计方法,盒子

6)软件成本在计算机系统总成就是把程序划分成独立命名且可独立访指的是被测试的软件,白盒指的是盒子是本中所占比例逐年上升。问的模块,每个模块完成一个子功能,把可视的,你清楚盒子内部的东西以及里面

7)软件开发生产率提高的速度这些模块集成起来构成一个整体,可以完是如何运作的。“白盒”法全面了解程序内远跟不上日益增长的软件需求。成指定的功能满足用户的需求。部逻辑结构、对所有逻辑路径进行测试。

2.产生软件危机的原因主要有哪些? 3.衡量模块独立的标准(内聚和耦合的白盒测试的测试方法有代码检查法、静态答:1)用户对软件需求的描述不精确。含义,种类)结构分析法、静态质量度量法、逻辑覆盖

2)软件开发人员对用户需求的内聚:标志着每一个模块内各个元素彼此法、基本路径测试法、域测试、符号测试、理解有偏差。结合的紧密程度,是信息隐藏和局部化概路径覆盖和程序变异。

3)缺乏处理大型软件项目的经念的自然拓展。偶然内聚,逻辑内聚,时种覆盖标准:语句覆盖、判定覆盖、条件验。间内聚,功能内聚,顺序内聚,通信内聚,覆盖、判定/条件覆盖、条件组合覆盖和

4)开发大型软件易产生疏漏和过程内聚。路径覆盖发现错误的能力呈由弱至强的错误。耦合:是对一个软件结构内不同模块之间变化。

5)缺乏有力的方法学的指导和互连程度的度量。数据耦合,控制耦合,11.什么时候黑盒测试,其测试技术有哪有效的开发工具的支持。特征耦合,公共环境耦合,内容耦合。些,(等价划分,边介值分析法)

6)面对日益增长的软件需求,4.启发式规则 黑盒测试也称功能测试,它是通过测试来人们显得力不从心。1.改进软件结构提高模块的独立性检测每个功能是否都能正常使用。

2软件的概念 2.模块规模应该适中等价类划分的办法是把程序的输入域划完成特点功能的程序以及数据结构和文 3.深度、宽度、扇出和扇入都应适当 分成若干部分(子集),然后从每个部分档 4.模块的作用范围应在控制范围之内中选取少数代表性数据作为测试用例

3.软件工程的基本原理 5.力争降低模块接口的复杂程度 边界值分析是通过选择等价类边界的测

1.用分阶段的生命周期计划严格管理 6.设计单入口单出口的模块试用例。边界值分析法不仅重视输入条件

2.坚持进行阶段评审 7.模块功能应该可以预测 边界,而且也必须考虑输出域边界。它是

3.实行严格的产品控制 5.面向数据流的设计方法把信息流映射对等价类划分方法的补充。

4.采用现代程序设计技术 成软件结构 12.软件调试技术有哪些

5.结果应能清楚地审查 信息流:变换流,事物流 蛮干法,蛮干法可能是寻找软件错误原因

6.开发小组的人员应该少而精 映射:变换分析,事物分析 的最低效的方法,仅当所有其他方法都

7.承认不断改进软件工程实践的必要性失败的情况下才使用。

4软件生命周期分成哪几个阶段?各阶第六章 回溯法,回溯法是一种相当常用的调试方段的任务是什么? 1.详细设计的基本任务 法,当调试小程序时很有效。从发现症

1.问题定义: 1.为每个模块确定采用的算法。2.确定状的地方开始,人工沿程序的控制流往回

2.可行性研究:研究问题的范围,探索这每一模块使用的数据结构追踪分析源程序代码,知道找出错误原因个问题是否值得去解决,是否有可行的解3.确定模块接口的细节,包括对系统外为止。

决方法。部的接口和用户界面,对系统内部其 原因排除法,对分查找法、归纳法、演绎

3.需求分析:主要是确定目标系统必须具它模块的接口,以及关于模块输入数据、法都属于原因排除法。

备哪些功能 输出数据及局部数据的全部细节。13.软件可靠性(可靠性和可用性的含义)

4.总体设计: 4.为每一模块设计出一组测试用例。

5.详细设计:就是把解法具体化,设计出2.程序的三种基本结构

程序的详细规格说明。顺序结构,选择结构,循环结构

6.编码和单元测试:写出正确的容易理解3.详细设计的工具

容易维护的程序模块。1.图形工具

7.综合测试:通过各种类型的测试使软件2.表格工具

达到预定的要求 3.语言工具

8.软件维护:通过各种必要的维护活动使4.jackson方法

系统持久地满足用户的需要。(改正性维5.复杂性度量的方法

护,适应性维护,完善性维护,预防性维Halstead方法:它根据程序中运算符和

护)操作数的总数来度量程序的复杂程度

5.瀑布模型,快速原型模型,增量模型,McCabe方法 :McCabe方法根据程序控制

螺旋模型的特点 流的复杂程度定量度量程序的复杂程度,瀑布模型阶:段时间具有顺序性和依赖第七章

性。推迟现实的观点。质量保证的观点。1.选择程序设计语言应考虑哪些因素

快速原型模型:软件产品的开发基本上是1.系统用户的要求

线性顺序进行的,本质是“快速”加速软2.可以使用的编译程序

件的开发过程,节约软件开发成本。3.可以得到的软件工具

增量模型:能在较短时间内向用户提交可4.工程规模

完成部分工作的产品。逐步增加产品功5.程序员的知识

能,可以使用户有较充裕的时间学习和适6.软件可移植性要求

应新产品,从而减少一个全新的软件可能7.软件的应用领域

给客户组织带来的冲击。2.良好的编程风格包括哪些方面

螺旋模型:对可选方案和约束条件的强调1.程序内部的文档2.数据说明 3.语句构

有利于已有软件的重用,也有助于把软件造4.输入输出 5.效率

质量作为软件开发的一个重要目标。减少3软件测试的目标

了过多的测试或测试不足带来的风险。更目的:(1)测试是为了发现程序中的错误

重要的是在螺旋模型中维护只是模型的而执行程序的过程;

另一个周期,在维护和开发之间并没有本(2)好的测试方案是极可能发现迄今为

质区别。风险驱动的。止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未

第二章 发现的错误的测试。

1.可行性研究的目的 定义:为了发现程序中的错误而执行程序

就是用最小的代价在尽可能短的时间内的过程。

确定问题是否能够解决。补充:

补充: 软件测试步骤 :

可行性研究的步骤 :(1)模块测试(2)子系统测试(3)系统

1.复查系统规模和目标。测试(4)验收测试(5)平行运行

2.研究现有的系统。4.确定测试计划是在哪个阶段制定的3.导出新系统高层逻辑模型。5.黑盒测试和白盒测试的概念

4.进一步定义问题黑盒测试

5.导出和评价供选择的解法。1把程序看作一个黑盒子,完全不考虑程

6.推荐行动方针序的内部结构和处理过程

7.草拟开发计划2对程序接口进行测试,检查程序功能是

8.书写文档提交审查 否能按规格说明书的规定正常使用;

程序是否能适当地接受输入数据并产生

2.系统流程图的作用 正确的输出信息;

系统流程图是描绘物理系统的传统工具,程序运行过程中能否保持外部信息的完

它用图形符号来表示系统中的各个部件。整性

它表达了系统中各个元素之间的信息流白盒测试

动的情况。1把程序堪称装在一个透明的白盒子里,3.数据流图的概念 测试者完全知道程序的结构处理算法

数据流图是一种图形化技术,它描绘信息2按照程序内部的逻辑测试程序,检测程

流和数据从移动到输出的过程中所经受序中的主要执行通路是否都能按的变换。预定要求正确工作

4.数据流图里面的符号,画数据流图。6.测试的步骤及每个步骤形成的文档

5.数据字典最基本的功能,以及与数据流单元测试:(模块测试)发现的往往是编

图的关系。码和详细设计的错误

最基本的功能:在软件分析和设计的过程集成测试:着重测试模块的接口 中给人提供关于数据的描述信息。

关系:数据流图和数据字典共同构成系统系统测试:发现的往往是软件设计中的错的逻辑模型,没有数据字典,数据流图就误,也可能发现需要说明中的错误 不严格,然而没有数据流图,数据字典也验收测试:(确认测试)往往发现需求说难于发挥作用。只有数据流图和对数据流明书中的错误 图中每个元素的精确定义放在一起,才能7.渐增式和非渐增式的区别 共同构成系统的规格说明。“非渐增式”,即先独立地测试每一模块,第三章 然后将所有这些模块连接到一起运行; 1.需求分析属于哪一个阶段,任务是什“渐增式”,即在已测试过的N个模块的么。基础上再增加一个模块,再对N十1个模需求分析是软件定义时期的最后一个阶块进行测试。段.渐增式比非渐增式优越,因为用渐增式,1.确定对系统的综合要求(功能需求,性如果是“由顶向下”则可利用前面已测试能需求,可靠性和可用性需求,出错处理过的模块,而不必另外准备驱动模块,如需求,接口需求,约束,逆向需求,将来果是“由底向上”,也可利用已测试过的可能提出的要求)模块,不必再准备桩模块。渐增式可以较2.分析系统的数据要求早地发现模块界面之间的错误,有利于排3.导出系统的逻辑模型 错,检查比较彻底 4.修正系统开发计划2.需求分析的产品是什么 8.自顶向下,自下而上,以及混合策略的3.面向过程的分析方法主要是建立三类优缺点 模型 自顶向下数据模型(按照用户的观点对数据建立的优点:能较早显示整个程序的轮廓,向用模型,把用户的数据要求清楚,准确地描户展示程序的概貌,取得用户的理解与支述出来。描述了从用户角度看到的数据,持。缺点:当测试上层模块时因使用桩它反应了用户的现实环境,属性,联系),模块较多,很难模拟出真实模块的全部功功能模型,行为模型(通过描绘系统的状能,使部分测试内容被迫推迟,只能等待态及引起系统状态转换的事件来表示系换上真实模块后再补充测试。统的行为)由底向上4.软件需求规格说明书的内容 优点:测试从下层模块开始,测试设计用通常用自然语言完整,准确,具体地描述例比较容易。缺点:在测试的早期不能

下载软件工程基础[5篇]word格式文档
下载软件工程基础[5篇].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    《软件工程》

    《软件工程》课程分析 本课程是软件技术专业学生必修的一门专业必修课。根据培养软件开发人员的需要,本课程的任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过......

    软件工程

    软件工程 1. 谈谈你对软件工具的理解,你用过什么软件工具 软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。它是为专门目的而开发的,在软件工......

    软件工程

    软件工程—心得体会 摘要 本文结合基层实践教学的实际情况和现实需要,系统地总结了《软件工程》实践教学的特征,详细分析了实践教学过程存在的问题,并提出了该课程实践教学改革......

    软件工程

    一、名词解释 软件: 指计算机系统中的程序及其文档。 支持软件:支持软件的开发和维护的软件。 系统软件:属于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作......

    软件工程

    2.2软件开发的基本策略 人们都有自己的世界观和方法论,能自然而然地运用于生活和工作中。同样,程序员脑子里的软件工程观念会无形地支配其怎么去做事情。软件工程三十年的发......

    软件工程

    填好发给我!!!!一、填空题: 1.面向对象分析的目的是对客观世界的系统进行 __________________,对象就是客观世界的; 2.软件工程方法学包括:工程环境建立、方法、工具和过程; 3.思想概括......

    软件工程

    1. 软件工程:是指导计算机软件开发和维护的工程学科 2. 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 3. 软件过程:是为了开发出高质量的软件产品所需......

    软件工程练习题

    练习题 一、判断题 1. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(错) 2. 软件的模块数越少,其软件成本越低。(错) 3. JAVA语言编译器是一个CASE工具。(对)。......