软件工程复习

发布 2022-01-11 22:53:28 阅读 2004

软件工程复习资料仅供参考信本0802

第一章概述。

1.什么是软件?(软件=程序+数据+文档)软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。

2.软件开发面临着过分依赖人工、软件难以重用、开发大量重复和生产率低下等问题,而导致这些问题的关键在于软件本身的特性:

(1)复杂性;

2)不可见性;

3)可变性(成功的软件都会发生演化,没有任何变化的软件一定是没有用的);

4)可移植性。

3.什么是软件危机?

所谓软件危机,是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

软件危机表现在哪些方面?

软件开发的成本和进程难以准确估计,延迟交付甚至取消项目的现象屡见不鲜;

软件存在着错误多,性能低,不可靠,不安全等质量问题。

软件成本在计算机系统的整个成本中所占的比例越来越大,软件维护极其困难,而且很难适应不断变化的用户需求和使用环境。

4.什么是软件工程?

软件工程是:

1)将系统性的,规范化的,可定量的方法应用于软件的开发,运行和维护,即将工程化应用到软件上;

2)对(1)中所述的方法的研究。

5.软件工程的三要素:过程,方法,工具。

6.软件工程将计算机科学、数学、工程学和管理学等基本原理应用于软件开发的工程实践中,软件工程学的基础)

并借鉴传统工程的原则和方法,以系统的、可控的、有效的方式产生高质量的软件。

7.软件工程人员的职业道德建设:(1)遵纪守法(2)服务客户,造福社会(3)诚实信用(核心)

习题1.3软件工程的方法为软件开发提供“如何做”的技术。现在最广泛的两种方法:结构化方法,面向对象方法。

软件工程的过程定义了技术方法的采用、工程产品的产生、里程碑的建立、质量的保证和变更的管理。其作用是实现在规定时间和预算内开发高质量软件的目标。

软件工程的工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。其作用是提高开发效率和软件质量,降低开发成本。

第二章软件过程。

软件项目失败的主要原因几乎与技术和工具没有任何关系,更多的是由于缺少过程规范。

1.软件过程的概念。

软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。

软件过程的基本元素由一系列软件工程活动和活动之间的关系组成。

2.软件过程的基本活动有哪些?

1.问题提出;2.软件需求规格说明(specification);3.软件设计;4.软件实现;5.软件确认;

文档形式程序**形式)

6.软件演化(evoluation)。

3.软件过程模型包含哪些?

①瀑布模型;(适用于软件需求被完全确定的情况。自上而下,相互衔接的固定次序,按线形方式进行,强调稳当的作用,并要求每个阶段都要仔细验证。)

②快速原形模型;(适用于可户需求难以清楚定义的情况。)

③增量模型;(是一种非整体开发模型,它将整个产品分解成若干个构件进行逐步交付。)

④螺旋模型;(适合于大型复杂的软件系统。)

⑤形式化方法模型;(适合于那些对安全性,可靠性和保密性要求极高的软件系统开发,它采用形式化的数学方法将系统描述转换成可执行的程序。)

⑥基于组件的开发模型。(这种方法依赖于可复用的软件组件及其相应的集成框架,提高了开发效率和产品质量。)

软件项目管理。

什么叫软件项目管理?

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、

人员、进度、质量、风险等进行分析和管理的活动。

软件项目的特征:

软件产品的不可见性;②项目的高度不确定性;③软件过程的多变化性;④软件人员的高流动性。

软件项目管理的“4p“包括:人员(people),产品(product),过程(process),项目(project)

软件项目管理的核心内容在于项目的规划和跟踪控制。项目沟通是软件工程中最耗时的活动。

软件项目的实践表明项目团队成员的数量应该保持在3~7人之间。

4.软件项目规划是项目管理的核心工作,其关键是项目管理者对资源、成本和进度作出合理的估算,进一步指定出切实可行的软件项目计划。

一般情况下,软件项目规划过程包括以下步骤:

确定项目的目的和范围;

分解和定义工作活动和任务;

估算和所需资源;

指定软件项目计划。

5. 软件规模估算常用方法有:**行技术和功能点技术。

**行技术是一种简单只管的饿软件规模估算方法,它从过去开发类似产品的经验和历史数据出发,估算出所开发软件的**行书。(p50计算)

功能点技术适合于在团件开发初期进行估算,并以功能点为单位度量软件规模。

6.软件风险管理包含哪些内容?::风险识别,风险分析,风险规划,风险监控。

7.软件配置管理的基本概念:

软件配置管理是一种标识,组织和控制修改的技术,它作用于整个软件生命周期,其目的是使错误达到最小并最有效地提高生产率。

软件配置项是为了配置管理而作为单独处理的一个工作产品或软件。

基线是已经通过了正式复审的规划说明或中间产品,它可以作为进一补开发的基础,并且只有通过正式的变化控制过程才能改变。

版本是确定的时间点上某个配置项的状态。

基线是指软件配置项通过正式复审而进入正式受控的一种状态。

基线标志着软件开发过程的各个里程碑,有利于阶段成果的检查和确认。

第四章需求工程。

1.什么是软件工程?软件需求包含哪些内容?软件需求一定要文档化。

1)拥护解决问题或达到目标所需的条件和能力。

2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件和能力。

3)一种反映1)或2)所描述的条件或能力的文档说明。

软件需要包含业务需要、用户需要、功能需要和非功能需要、系统需要。

2.什么是需求工程?需求工程的过程包括哪些内容?

需求工程是应用已证实有效的原理和方法,并通过合适的工具和符号,系统地描述出待开发的系统及其行为特征和相关约束。

需求工程的过程包括需求获取,需求分析,需求规划说明,需求验证和需求管理。

获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。

需求验证是一个针对那些已经编写成文档的需求进行验证,而对于那些存在于用户或开发人员思维中的没有表露的、含蓄的需求则不予验证。

需求规格说明的质量特性包括正确性、无二义性、完整性、可验证性、一致性、可修改性和可跟踪性。p82

3.需求获取技术有哪些?

面谈,需求专题讨论会,观察用户工作流程,原形化方法,基于用例的方法。

在用例模型中,只是关心系统所应该实现的功能,而不关心内部的具体实现细节。

4.以“小型图书资料管理系统”为例,使用启发式方式获取用户需求,并建立系统用例模型。

1)确定系统参考者。

2)确定场景。

3)确定用例之间的关系。

4)编写用例描述文档。

习题4.2

1)系统界面友好。 违背可验证性。

2)系统运行时应该占用尽量少的内存空间。 违背无二义性。

3)即使在系统崩溃的情况下,用户数据也不能受到破坏。 违背可验证性。

4)atm系统允许用户查询自己银行账户的现存余额。 (

5)atm系统应该快速响应用户的请求。 违背可验证性。

6)atm系统需要检验用户存取的合法性。

问题:“如何验证合法性”是存在歧义的。

改正:atm系统将通过用户名和口令验证其存取的合法性。

7)所有命令的响应时间小于一秒;build命令的响应时间小于五秒。 违背一致性。

8)软件应该用j**a语言实现。

问题:该描述不是功能需求或非功能需求,应该是对设计实现的一个约束条件。

违背完整性。

习题4.3需求获取的主要工作内容包括:聆听用户的需求;分析和整理所获取的信息;形成文档化的描述。

需求分析的主要工作内容包括:定义系统的边界;建立软件原型;分析需求可行性;确定需求优先级;建立需求分析模型;创建数据字典。

需求规格说明精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件。

需求验证是通过评审的方式发现需求规格说明书中存在的错误或缺陷,开发人员及时进行更改和补充,并对修改后的需求规格说明文档进行再评审。

需求管理的任务是分析变更影响并控制变更过程,主要包括变更控制、版本控制和需求跟踪等活动。

习题4.8 p97 画用例图 《重点》

第六章面向对象基础。

什么是面向对象(object oriented)?面向对象=对象+类+继承+通信。

如果一个软件系统采用这些概念来建立模型并予以实现,那么它就是面向对象的。

面向对象的基本概念:

对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单。

由一组属性和对这组属性进行操作的一组服务组成。

类(class)是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。

统一建摸语言uml(unified modeling language)

uml是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。

由哪些部分组成?(1)视图(views)

uml使用5个互连的视图来描述软件系统的体系结构,即用例视图(use-case view),设计视图(design view),进程视图(process view),实现视图(implementation view),分布视图(deployment view)。

2)图(diagrams)

uml中包含9种图,对整个系统而言,其功能由用例图描述,静态结构由类图、对象图描述,动态行为由状态图、顺序图、协作图和活**描述,而物理架构则是由组件图和分布图描述。

3)模型元素(model elements)(4)语义规则(5)公共机制(general mechanisms)(6)扩展机制。

5、常用的uml图(用例图、类图、状态图、顺序图)

用例图(use-case diagram)是从用户的观点描述系统的功能,它由一组用例、参与者以及它们之间的关系组成。

类图(class diagram)表示系统中的类、类与类之间的关系以及类的属性和操作。

软件工程复习

单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...

软件工程复习

软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...

软件工程 复习

1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...