当前位置:文档之家› 软件工程

软件工程

软件工程:
软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的使用工程,或以此为研究对象的学科。

软件危机:
随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软件危机”。

软件:
计算机软件一般是指计算机系统中的程序及其文档,其中程序是计算机任务的处理对象和处理规则的描述;文档是为了理解程序所需的阐述性材料。

软件是对一个特定问题域的抽象,是被开发出的一种逻辑实体。

模型:
模型是任一抽象,其中包括所有的基本能力、特性或一些方面,而没有任何冗余的细节。

在软件开发中大体可分为概念模型和软件模型。

概念模型(需求)、软件模型(设计、实现、部署)的分层基本动机是控制开发的复杂性。

软件生存周期:
软件生存周期是软件产品或系统的一系列相关活动的全周期。

从形成概念开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰,让位于新的软件产品。

分为基本过程、支持过程和组织过程三类。

基本过程:
基本过程是指那些与软件生产直接相关的活动集,可分为五个过程,即获取过程、供应过程、开发过程、运行过程和维护过程。

支持过程:
支持过程是有关各方面按他们的支持目标所从事的一系列活动集,以便提高系统或软件产品的质量。

其中验证过程是一个确定某项过程的软件产品是否满足在以前的活动中施加于他们的需求和条件的过程;确认过程是一个确定需求和最终的、已建成的软件系统或软件产品是否满足特定预期用途的过程。

组织过程:
组织过程是指那些与软件生产组织有关的活动集,分为管理过程、基础设施过程、改进过程、人力资源过程、资产管理过程、复用程序管理过程和领域软件工程过程。

瀑布模型:
瀑布模型将软件生存周期的各项活动规定为依固定顺序面连接的若干阶段工作,形如瀑布流水,最总得到的软件产品。

增量模型:
继瀑布模型之后,增量模型是第一个提出有一种软件生存周期模型。

该模型意指需求可以分组,形成一个一个增量,并可以形成一个结构,在这一条件下,可对每一增量实施瀑布式开发。

演化模型:
演化模型主要是针对事先不能完整定义需求的软件开发,表达了一种有弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量,通过这些迭代,最终完成软件产品的开发。

需求定义:
一个需求是一个“要予构造”的陈述,描述了待开发产品功能上的能力、性能参数或者其他性质、、对于单一一个需求,必须要有以下5个基本性质:必要的,即该需求是用户所需求的;无歧义的,即该需求只能用一种方式解释;可测的,即该需求是可进行测试的;可跟踪的,即该需求可从一个开发阶段跟踪到另一个阶段;可测量的,即该需求是可测量的。

需求分类:
功能需求规约了系统或系统构件必须执行的功能;性能需求规约了一个系统或系统构件必须具有性能特性;外部接口需求规约了系统或系统构件必须与之交互的硬件软件或数据库元素,其中也可能规约其格式、时间或其他因素等;设计约束限制了软件系统或构件的设计方案的范围;质量属性规约了软件产品必须具有的一个性质是否达到质量方面一个所期望的水平。

需求发现技术:
自悟、交谈、观察、小组会、提炼。

结构化分析术语:
数据流是数据的流动;加工是对数据进行变换的单元;数据储存是数据的静态结构;数据源是数据流的起点;数据潭是数据流的归宿地。

建模过程:
第一步建立系统环境图,确定系统语境;第二步自顶向下,逐步求精,建立系统的层次数据流图;第三步定义数据字典。

软件设计:
结构化设计方法、面向数据结构的设计方法、面向对象的设计方法。

其总体设计的目的是建立系统的模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。

每一个模块均是一个黑盒子,其细节描述是详细设计的任务。

数据流图类型:
变换型数据流图输入部分和变换部分之间的界面、变换部分和输出部分之间界面的数据流图;事务型数据流图即数据到达一个加工T,该加工T根据输入数据的值,在其后的若干动作序列中选一个来执行。

耦合:
耦合是对不同模块之间相互依赖程度的度量。

高耦合是指两个模块直接按存在着很强的依赖;低耦合是指两个模块之间存在一定依赖;无耦合是指模块之间没有任何关系。

产生耦合主要因素:
一个模块对另一个模块的引用、传递数据、施加控制。

耦合类型:
内容耦合、公共耦合、控制耦合、标记耦合、数据耦合。

内聚:
内聚是对一个模块内部各成分之间相互关联程度的度量。

高内聚是指一个模块中各部分都与该模块之间存在这很强的依赖;低内聚是指一个模块中各部分之间存在较少的依赖。

内聚类型:
偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内
聚。

启发式规则:
改进软件结构提高模块独立性;力求模块规模适中;力求深度宽度扇出扇入适中;尽量是模块的作用域在其控制域之内。

结构化程序设计:
是一种特定的程序设计方法学,他是一种基于结构的编辑方法,即采用顺序结构、判定结构以及重复结构进行编程,其中每一种结构只允许一个入口和一个出口。

UML八个术语:
类,类是一组具有相同属性、操作、关系和语义的对象描述。

接口,接口是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。

协作,协作是一个交互,涉及交互三要素:交互各方、交互方式以及交互内容。

用况,对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。

主动类,是一种至少具有一个进程或线程的类。

构件:式系统中一种模块化部件,通过外部接口隐藏了它的内部实现。

制品:系统中包含物理信息的、可替代的物理部件。

节点:在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。

UML四个术语:
关联:是类目之间的一种结构关系,是对一组具有相同结构、相同链的描述。

泛化:是一般性类目和它的较为特殊性类目之间的一种关系。

细化:类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约。

依赖:一种使用关系,用于描述一个类目使用另一个类目的信息和服务。

RUP
RUP是基于UML的一种过程框架,适用于大多数软件系统的开发,包括不同的应用领域、不同项目规模、不同类型的组织和不同的技能水平,并且是基于构件,可以使每个构件具有良好定义的接口。

作用和特点:
它是一种以用况为驱动的、以体系结构为中心的迭代、增量式开发。

以用况为驱动意指在系统的生存周期中,以用况为基础,驱动系统有关人员对所有要建立系统之功能需求进行交流。

以体系结构为中心意指在系统生存周期中,开发的任何阶段(初始阶段、细化阶段、构造阶段、移交阶段)都要给出相关模型视角下有关体系结构的描述。

迭代、增量式开发意指用过开发活动的迭代,不断地产生相应的增量。

相关主题