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

软件工程整理

软件工程整理
软件工程整理

第一章

软件工程研究的主要内容:为了在有限的资金、资源和时间条件下开发满足客户要求的高质量软件,需要研究与软件开发和管理相关的模型、方法、技术等。

在《计算机科学技术百科全书》中,对计算机软件作出如下定义:计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据或信息。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。

软件工程的定义:⑴IEEE在软件工程术语汇编中的定义:①软件工程是将系统化的的方法用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究⑵软件工程是应用计算机科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源等管理。

软件工程的框架:目标,过程和原则

软件工程目标是指生产具有正确性、可用性、和开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜指软件开发、运行的整个开销满足用户要求的程度。

软件工程原则包括围绕工程设计、工程支付和工程管理所提出的以下4条基本原则

(1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑

(4)重视软件工程的管理

软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。

软件生存周期分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护

软件过程是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。

软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合;二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型、并结合软件产品的具体要求进行实例化,以及在用户环境,并结合软件产品的具体要求进行实例化,以及在用户环境下运作,以此进一步提高软件生产率,降低成本。

软件过程模型也称软件开发模型,是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有:瀑布模型、演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。

瀑布模型是1970年由W.Royce提出的,它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件产品。其特征是:接受上一阶段活动的结果作为本阶段活动的输入

依据上一阶段活动的结果实施本阶段应完成的活动

对本阶段的活动进行评审

将本阶段活动的结果作为输出,传递给下一阶段

瀑布模型也逐渐暴露出它的不足(1)不少软件的需求存在着不确定性,(2)如果发现不满足客户需求的问题,那么修改软件的代价是巨大的

演化模型,是从构造初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型

增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。

增量模型融合了瀑布模型的基本成分和演化模型的迭代特征,强调每一次增量都发布一个可运行的产品。特征:(1)适用于需求经常发生变化的软件开发(2)在市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品,此时也适宜用增量模型进行开发(3)能有计划的管理技术风险

原型方法的目的是定义软件的总体目标,标识需求,然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模并构建原型

根据原型使用的目的不同,可以分为:探索型、实验型、演化型

原型使用策略:废弃策略、追加策略

螺旋模型将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点,而且还增加了风险分析

其有四个方面的任务:制定计划、风险分析、工程实施、客户评估

一种基于构件的开发模型包括两个部分:领域工程和应用系统工程

领域工程的目的:构建领域模型、领域基准体系结构和可复用构件库

应用系统工程的目的:使用可复用构件组装应用系统

基于构件的开发模型的作用(优点):提高软件生产率、提高软件质量、降低成本、提早上市时间

敏捷(Agile)开发的4个价值观:

(1)个人和交互高于过程和工具(2)可运行软件高于详尽的文档(3)与客户协作高于合同谈判(4)对变更及时做出反应高于遵循计划

计算机辅助软件工程(computer aided sofrware engineering,CASE)是指使用计算机及相关的软件工具辅助软件开发、维护、管理等过程中各项活动的实施,以确保这些活动能高效率、高质量地进行

CASE研究和实践的重点集中在CASE工具和软件开发两个方面

软件开发环境(software development environment)是支持软件产品开发的软件系统第二章

业务过程工程的目标是:定义一个能有效地利用信息进行业务活动的体系结构。

语境中分析和设计3种体系结构:数据体系结构、应用体系结构和技术基础设施。

产品工程的目标:将客户期望的一组已定义的能力转换成工作产品。

体系结构包含4种不同的系统元素:软件、硬件、数据(和数据库)和人员。

计算机系统工程目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。

可行性研究分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。

可行性分析包括:机会选择、初步可研究性分析、详细可研究性分析

第三章

需求工程是应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题,评估可行性,协商合理的解决方案、无歧义地规约方案、确认规约以及将规约转换到可运行的系统时的管理要求,需求工程通过合适的工具和符号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持可将需求工程分为6个阶段:需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理

在需求获取阶段出现的问题:(1)用户提出的要求超出的要求软件系统可以实现的范围或实现能力(2)不同的用户提出了相互冲突的需求

软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望

创建用况模型的主要步骤如下:(1)确定谁会直接使用该系统,即执行者(2)选取其中一个执行者(3)定义该执行者希望系统做什么,执行者希望系统所做的第件事将成为一个用况(4)对每件事来说,何时执行者会使用系统,通常会发生什么,这就是腹部的基本过程(5)描述该用况的基本过程

需求分析原则:

必须能够表示和理解问题的信息域

必须能够定义软件将完成的功能

必须能够表示软件的行为(作为外部事件的结果)

必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

分析过程应该从要素信息转向细节信息

问题分析的目的是要能心层次化的方式对问题进行分解和不断细化

常用的分析方法有以下几种:

面向数据流的结构化分析方法(SA)

面向数据结构的分析方法

面向对象的分析方法(OOA)

软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求需求验证的目的是要检验需求是否能够反映用户的意愿

第四章

软件需求分析解决“做什么”的问题,软件设计过程则解决“怎么做”的问题。

软件设计主要包含两个阶段:软件体系结构设计阶段和部件级设计阶段

软件体系结构设计将软件需求转化为数据结构和软件的系统结构。部件级设计将软件体系结构中的结构性元素转化为软件部件的过程性描述,得到软件详细的数据结构和算法。

体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和它们之间的关系组成。

判断设计好坏的3条特征,也就是软件设计过程的目标:

设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。

设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护。

设计应从实现角度出发,给出与数据、功能、行为相关的软件全貌。

软件设计的过程:

制定规范、体系结构和接口设计、数据/类设计、部件级(过程)设计、编写设计文档软件的设计人员通常采用的原则:抽象与逐步求精、模块化和信息隐藏

抽象是在软件设计的规模逐渐增大的情况下,控制复杂性的基本策略。

软件设计中的主要抽象手段有:过程抽象和数据抽象。

过程抽象(功能抽象):任何一个完成明确定义功能的操作都可被使用者当作单个实体对待,尽管这个操作实际上由一系列更低级的操作来完成的。

数据抽象:定义数据类型和施加于该类型对象的操作,并限定了对象的取值范围,只能通过这些操作修改和观察数据。

模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。

模块化实际上是系统分解和抽象的过程。

模块:数据说明、可执行语句等程序对象的集合,是单独命名的,并且是可以通过名字来访问。

模块化的理论依据:把复杂问题分解成许多容易解决的小问题,则原来复杂的问题也就容易解决了。采用模块化原理使程序错误通常局限在有关的模块及它们之间的接口中,模块化使软件容易调试和测试,有助于提高软件的可靠性,同时变动往往只涉及少数几个模块,从而模块化能够提高软件的可修改性;使软件结构清晰。这样每个模块的内容不仅容易设计也容易阅读/和理解。

模块独立:模块完成独立的功能并且与其他模块的接口简单,符合信息隐蔽,模块间关联和依赖程度尽可能小。

模块的独立性:第一,功能被划分,并且接口被简化,所以具有有效模块化的软件更易于开发。第二,由于因设计和编码修改引起的副作用受到局限,错误传播被减小,并且模块复用成为可能,所以独立的模块更易于维护和测试。

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

耦合coupling是模块之间的相对独立性(互相连接的紧密程度)的度量。

高内聚性低功能内聚顺序内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚

强模块独立性弱功能单一功能分散

低耦合性高

非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合

强模块独立性弱软件体系结构关注系统的一个或多个结构,包含软件部件、这些部件的对外可见的性质以及它们之间的关系。

Bass提出体系结构重要的3个关键理由:方便利益相关人员的交流;有利于系统设计的前期决策;建立了一个系统的可传递的抽象

常见的软件体系结构:单主机结构、客户/服务器(C/S)结构、浏览器/服务器(B/S)结构。

软件体系结构的风格:一些实现系统所需的功能部件、一组用来连接部件“通信、协调和合作”的“连接件”、定义部件之间怎样整合的系统约束、使设计者能够理解整个系统属性并分析已知属性的语义模型。

判断结构好坏的主要标准是模块的内聚度和耦合度

在部件级设计阶段,主要完成如下工作:

为每个部件确定采用的算法,选择某种适当的工具表达算法的过程,编写部件的详细过程性描述。

确定第一部件内部使用的数据结构。

在部件级设计结束时,应该把上述结果写入部件级设计说明书,并且通过复审形成正式文档,作为下一阶段的工作依据。

评审分正式评审和非正式评审(走察式评审)。

为使用流程图描述结构化程序,必须限制流程图只能使用5种基本控制结构:

(a)顺序型(b)选择型(c)先判定型循环(d)后判定型循环(e)多情况选择型

第五章

处理复杂问题的两个基本手段:抽象和分解

结构化分析的过程可以分为如下4个步骤:

理解当前的现实环境,获得当前系统的具体模型

从当前系统的具体模型抽象出当前系统的逻辑模型

分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型

为目标系统的逻辑模型作补充

数据流图中的基本图形元素包括:数据流、加工、文件、源或宿。

其中,数据流、加工、文件用于构建软件系统内部的数据处理模型;源或宿表示存在于系统之外的对象,以帮助我们理解系统数据的来源和去向。

源和宿通常是指存在于软件系统之外的人员或组织,因此也称为源点和终点

加工描述了输入数据流到输出数据流的变换,即将输入数据加工成输出数据流

数据流由一组固定成分的数据组成

区分数据流和控制流的方法:看流中包含的信息是数据还是控制信号或控制条件

文件用于存放数据

分层数据流图的顶层只有一张图,其中只有一个加工,代表整个软件系统,该加工描述了软件系统与外界(源或宿)之间的数据流,称为顶层

分层数据流图的步骤:

画出系统的输入和输出

画出系统内部

画出加工内部

重复第三步,直至每个尚未分解的加工都足够简单(即不必再分解)分层数据流图的完整性:有关分层DFD完整性的检查主要包括以下4个方面:

每个加工至少有一个输入数据流和一个输出数据流

在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件

分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典一致

分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约

结构化设计(structured design, SD)是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法,SD强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准则

概要设计是对软件系统的总体设计,采用结构化设计方法,其任务是:将系统分解成模块,确定每个模块的功能、接口及其调用关系,并用模块及对模块的调用来构建软件的体系结构。

详细设计是对模块实现细节的设计,采用结构化程序设计(structured programming , SP)方法。SA 、SD 和SP构成完整的结构化方法体系

结构图的基本成分有:模块、调用和数据

在SD中,模块是指具有一定功能并可以用模块名调用的一组程序语句,它们是组成程序的基本程序

结构图中模块之间的调用关系用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者。

结构图相关的几个概念:

深度:是指程序结构图中控制的层数

宽度:是指程序结构图中同一层次上模块总数的最大值

扇出:一个模块的扇出是指该模块直接调用的模块数目

扇入:一个模块的扇入是指能直接调用该模块的模块数目

为了实现有效的模块化,给出以下启发式设计策略:

改造程序结构图,降低耦合度,提高内聚度

避免高扇出,并随着深度的增加,力求高扇入

模块的影响范围应限制在该模块的控制范围内

降低模块接口的复杂程序和冗余程度,提高一致性

模块的功能应是可预测的,避免对模块施加过多的限制

尽可能设计单入口和单出口的模块

结构化设计的步骤:

建立初始结构图、对结构图的改进、书写设计文档、设计评审

第七章

面向对象方法为何发展快的原因:

1 从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律

2 面向对象方法开发的软件系统易于维护,其体系结构易于理解、扩充和修改

3面向对象方法中的继承机制有力支持软件的复用

类(class)是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。

继承是类间的一种基本关系,是基于层次关系的不同类共享数据和操作的一种机制。

消息(message)传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。

多态性(polymorphism):同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。

动态绑定(dynamic binding):在程序运行时才将消息所请求的操作与实现该操作的方法进行连接。

面向对象分析的任务:

1 在客户和软件工程师之间沟通基本的用户需求

2 标识类(包括定义其属性和操作)

3 刻画类的层次结构

4 表示类(对象)之间的关系

5 为对象行为建模

6 递进地重复任务1至5,直至完成建模

其中2~4刻画了待建系统的静态结构,任务5刻画了系统的动态行为

面向对象分析的步骤

1 获取客户对系统的需求,包括标识场景和用况,以及建造需求模型

2 用基本的需求为指南来选择类和对象(包括属性和操作)

3 定义类的结构和层次

4 建造对象--关系模型

5 建造对象--行为模型

6 利用用况/场景来复审分析模型

一个设计模式(design patterns)通常可用4个信息来描述:模式名、模式的环境和条件、设计模式的特征、应用设计模式的结果

视图有4个主题域:结构化、动态的,物理的和模型管理

结构化域:描述了系统中的结构成员及其相互关系,包括静态视图、设计视图、用况视图。

动态域:描述了系统的行为或其他随时间变化的行为,包括状态机视图、活动视图、交互视图。

物理域:描述了系统中的计算资源及其总体结构上的部署,包括部署视图。

模型管理域:描述层次结构中模型自身的组织(包是模型通常的组织单元),包括模型管理视图和剖面(profile)。

用况建模的主要目标如下:

1 确定和描述系统的功能要求

2 给出清晰和一致的关于系统做什么的描述

3 为验证系统所需的系统测试提供基准

4 提供从功能需求到系统的实际类和操作的跟踪能力

用况图中的关系:关联(association)、扩展(extent)、包含(include)、用况泛化(use case generalization)

类之间的关系:关联、依赖、泛化、实现

状态机图(state machine diagram):对类描述的补充,说明该类的对象所有可能的状态,以及哪些事件将导致状态的改变。

活动图可看作一种特殊形式的状态机,用于对计算流程和工作流建模。

系统的体系结构用来描述系统各部分的结构、接口以及它们用于通信的机制。

第八章

构件:类的描述。是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某种清晰的功能。

3C模型:由概念(concept)、内容(content)、周境(context)组成

概念:关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。

内容:是概念的具体实现,描述构件如何完成概念所刻画的功能。

周境:描述构件和外围环境在概念级和内容级的关系。

CBSD过程由领域工程和应用系统工程两个并行的活动组成。

领域工程的任务是进行领域分析,产生领域模型和领域基准体系结构,确定领域中潜在的可复用构件,然后进行构件的可变性分析,构建可复用构件,并存入构件库。

应用系统工程的任务:进行应用系统分析,设计应用系统的体系结构,然后使用可复用构件开发应用系统,同时,对构件的复用情况进行评价,以补充和改进构件库。

第10章

程序设计语言是指用书写计算机程序语言,是一种实现性的软件语言。程序设计语言包含3个方面,即语法、语义和语用

语法(syntax)用来表示构成语言的各个记号之间的组合规则,是构成语言结构正确成分所需遵循的规则集合

语义(semantic)用来表示按照各种表示方式所表示的各个记号的特定含义,但不涉及到使用者

语用(pragmatic)用来表示构成语言的各个记号和使用者的关系

第11章

软件测试的目的:

测试是一个为了发现错误而执行程序的过程;

一个好的测试用例是指揭示了迄今为止尚未发现的错误的测试用例;

一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

软件测试的的基本原则:

所有的测试都应可追溯到客户需求;

应该在测试工作真正开始前的较长时间就进行测试计划;

Pareto原则可应用于软件测试。即测试中发现的80%的错误可能来自于20%的程序代码;

测试就从“小规模”开始;

为了达到最有效的测试,应由独立的第三方来承担测试。

测试用例的设计方法分为两类:白盒测试和黑盒测试,也称为白箱测试和黑箱测试白盒测试又称结构测试,这种方法把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作

白盒测试主要用于对程序模块的测试,包括:

程序模块中的所有独立路径至少执行一次;

对所有逻辑判定的取值(“真”与“假”)都至少测试一次;

在上下边界及可操作范围内运行所有循环;

测试内部数据结构的有效性等。

黑合测试又称为行为测试,这种方法把测试对象看作一个黑合子,测试人员完全不考虑程序内部的逻辑结构和内部,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求特性

黑合测试可用于各种测试,它试图发现以下类型的错误:

不正确或遗漏的功能;

接口错误,如输入输出参数的个数、类型等;

数据结构错误或外部信息(如外部数据库)访问错误;

性能错误;

初始化和终止错误。

逻辑覆盖测试是一种基本的白盒测试方法,主要考虑使用测试数据运行被测试程序时对程序逻辑的覆盖程度。通常人们希望选择最少的测试用命来满足所需覆盖标准。

主要的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖,条件组合覆盖,路径覆盖

基本路径测试这种方法首先根据程序或设计图画出控制流图,并计算其区域数,然后确定一组独立的程序执行路径,最后为每一条基本路径设计一个测试用例独立路径是指程序中至少引进一个新的处理语句序列或一个新条件的任一路径,在流图中,独立路径至少包含一条在定义该路径之前未曾用到过的边

黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求规约的要求。

主要的黑盒测试方法有:等价类划分、边界值分析,比较测试,错误猜测和因果图方法

错误猜测是一咱凭直觉和经验推测某些可能存在的错误,从而针对这些可能存在的错误设计测试用例的方法

单元测试是针对程序中的模块或构件,主要揭露编码阶段产生的错误,集成测试针对集成的软件系统,主要揭露设计阶段产生的错误。

确认测试是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误,系统测试以揭露不符合系统工程中对软

回归测试:对已经进行过的测试的子集的重新执行,以确保对程序的改变和修改,没有传播非故的副作用

α测试:由一个用户开发者的场所进行的,软件在开发者对用户的“指导下”进行测试。经α测试后的软件称为β版的软件

β测试:软件在一个开发者不能控制的环境中的“活动”应用,用记录所有在β测试中遇到的(真正的或想象)问题,并定期把这些问题报告给开发者,在接到β测试的问题报告后,开发者对软件进行最后的修改,然后着手准备向所有的用户发布最终的软件产品调试的目的:确定错误的原因和准确集团,并加以纠正

测试的目的:发现错误,当测试发现错误后需要进行调试

主要的调试方法有3种:蛮力法(brute force )、回溯法(backtracking)和原因排除法(cause elimination)

第13章

软件维护:软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程。

维护活动包括:建立维护组织、确定维护过程、保管维护刻录、进行维护评价

可维护性(maintainability):理解、改正、调整和改进软件的难易程度。

对软件可维护性影响的主要因素有:可理解性(understandability)、可测试性(testability)、可修改性(modifiability)、可移植性(portability)

可理解性:理解软件的结构、接口、功能和内部过程的难易程度

可测试性:测试和诊断软件中错误的难易程度

可修改性:修改软件的难易程度

可移植性:程序转移到一个新的计算环境的难易程度

提高可维护性的方法:确定质量管理目标和优先级、规范化程序设计风格、选择可维护性高的程序设计语言、完善程序文档和进行软件质量保证审查

逆向工程(reverse engineering):在软件生存周期中,将软件的某种形式描述转换成更抽象形式的活动。

重构(restructuring):在同一抽象级别上转换系统的描述形式。

设计恢复(design recovery):借助工具从已有程序中抽象出有关数据结构设计、体系结构设计和过程设计的信息。

再工程(reengineering):在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。

再工程的主要目的:为遗留系统转化为可演化系统提供一条现实可行的途径。

通常再工程包含业务过程再工程和软件再工程

业务过程再工程BPR(business process reengineering)定义业务目标、标示并评估现有的业务过程以及修订业务过程以更好满足业务目标,

软件再工程包含库存目录分析、文档重构、逆向工程、程序和数据重构以及正向工程逆向工程导出的信息可分为4个抽象层次:

1 实现级,包括程序的抽象语法树、符号表等信息

2 结构级,包括反映程序成分之间相互依赖关系的信息,如调用图、结构图等

3 功能级,包括反映程序段功能及程序段之间关系的信息

4 领域级,包括反映程序成分或程序诸实体与应用领域概念之间对应关系的信息

第14章

项目管理:通过项目经理和项目组织的努力,运用系统理论的方法对项目及其资源进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法体系。其基本内容为:项目定义、项目计划、项目执行、项目控制、项目收尾

有效的项目管理集中于4个P上:人员(people)、产品(product)、过程(process)、项目(project)

项目组织是由项目负责人(项目经理)领导的,在项目组的统一管理下,不同类型的项目组成员共同协同完成软件项目。

项目计划:项目组织根据软件项目的目标及范围,对项目实施中进行的各项活动进行周密的计划,根据项目目标确定项目的各项任务、安排任务进度、编制完成任务所需的资源预算等,从而保证项目能够在合理的工期内,以尽可能低的成本和尽可能高的质量完成软件项目。

风险管理:一系列管理项目风险的步骤,标识软件项目中的风险,预测风险发生的概率以及风险造成的影响,并对所有可能出现的风险进行评估,找出那些可能导致项目失败的风险,然后采取相应的措施来缓解风险。

软件配置管理:标识和确定系统中配置项的过程,在系统整个生存期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。

项目管理者的任务:定义所有的项目任务以及它们之间的依赖关系,制定项目的进度安排,规划每个任务所需的工作量和持续时间,并在项目开发过程中不断跟踪项目的执行情况,发现那些未按计划进度完成的任务对整个项目工期的影响,并及时进行调整。

软件项目的组织原则:尽早落实责任、减少交流接口、责权均衡

配置管理:应用技术的和管理的指导和监控方法以标识和说明配置项的功能和物理特征,控制这些特征的变更,记录并报告变更处理和实现状态,验证与规定的需求的遵循性。

考务处理系统顶层图

考务处理系统0层图

考务处理系统加工1子图

考务处理系统加工2子图

软件工程重点整理

软件工程重点 (吐血整理——林新发) 红色的是重点中的重点 前面数字是课本页码 第一章概论 1 什么是计算机软件 计算机软件指计算机系统中的程序及其文档 3软件的特点 (1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 (2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 (3)软件的使用没有硬件那样的机械磨损和老化问题 4软件的分类 (1)系统软件(如操作系统、编译程序等)、 (2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、 (3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等) 6软件工程定义 软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程 7生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护 12能力成熟度模型CMM(了解一下) 初始级、可重复级、已定义级、已管理级、优化级 18瀑布模型(重) 系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护 第二章系统工程 41系统工程的任务 (1)识别用户的要求,确定待开发软件的总体要求和范围,

(2)系统建模和模拟 (3)进行成本估算,做出进度安排 (4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。 (5)生成系统规格说明书 42可行性分析 (1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入) (2)技术可行性(风险分析、资源分析、技术分析) (3)法律可行性 第三章需求工程 48软件需求 指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求 50需求获取方法与策略(重) 建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况 51 图3.2 53 创建用况模型的主要步骤 (1)确定谁会直接使用该系统,即参与者(Actor) (2)选取其中一个参与者 (3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况 (4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 (5)描述该用况的基本过程 54需求分析原则(重) 1.必须能够表示和理解问题的信息域 2.必须能够定义软件将完成的功能 3.必须能够表示软件的行为(作为外部事件的结果) 4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

工程资料整理要求

1、归档工程文件组卷分类必须清楚,将不同的文件资料分开装订、同类型的资料装订成册,并按工程进度依次编制流水编号。 2、移交资料类别必须齐全,内容完整。 3、归档的工程文件原则上为原件。没有原件时,复印件要清晰,并注明原件存放位置。 4、归档文件应字迹清楚、签字盖章手续完备。 5、工程资料统一采用A4纸规格,不符合标准的原始资料要通过折叠和粘贴的方式达到A4幅面(297mm×210mm)规格,图标栏露在外面。由政府及专业检测机构编制的装订成册的文件材料(如勘察报告)除外。 6、工程资料尽量使用计算机打印(签名和日期除外),不得使用涂改液修改;签字和盖章程序要完备,不得使用圆珠笔、铅笔、复写纸等易褪色的书写材料。 7、工程文件的纸张应采用能够长期保存的韧性大、耐久性强的纸张。图纸一般采用蓝晒图,竣工图应是新蓝图,不能使用二底图。计算机出图必须清晰,不得使用计算机出图的复印件。 8、所有竣工图均应加盖竣工图章和设计出图专用章。竣工图的折叠方式要符合档案馆的要求(一般情况下是折成手风琴的样式,见下图1)竣工图章的基本内容应包括:“竣工图”字样、施工单位、编制人、审核人、技术负责人、编制日期、监理单位、现场监理、总监。 作为资料员的你,知道工程移交资料要求吗?_2 竣工图章应使用不褪色的红印泥,应盖在图标栏上方空白处。(图章示例见下图2)作为资料员的你,知道工程移交资料要求吗?_3 9、凡施工图结构、工艺、平面布置等有重大改变,或变更部分超过图面1/3的,应当重新绘制竣工图,并在图标上方或旁边以文字注明变更修改依据。 10、制作竣工图只能以图纸会审、设计变更、工程洽商单三种为修改依据。

软件工程(需求分析报告)

学生学籍管理系统需求分析报告 1 引言 1.1编写目的 学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。 1.2项目背景 传统的学校学籍管理方法、由于分散管理,易发生数据丢失,劳动强度高,速度慢。 使用计算机可以高速、快捷地完成以上工作。特别是在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。 学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,从而全面提高教学质量。 1.3业务模式 本系统是运行在WindowsXP等操作系统环境下的多台计算机构成的局域网, 现在学校各部门分别使用不同数据库,各部门之间的信息还不能实现网上共享。由于学校的各个部门都需要一些学生的基本信息,所以各个部门都有一份学生档案。一个部门的改动,将导致其他各部门必须修改,否则,学生的信息将不一致。 高校学生学籍管理系统将采用B/S模式,学生的信息由各用户在规定的权限下在各自的工作站上录入,统一保存在系统服务器上,既可集中管理,有可让各部门管理自己负责的信息。信息上网后各用户可查询,调用,达到全校信息共享。 2用户需求 2.1使用范围 按西安交通大学城市学院学生学籍状况的系统管理(本科生用学年学分制)。 系统中保留4个年级学生的信息,学生毕业一年后信息转储,但随时可以查询,输出。 2.2功能要求 ·学生档案管理:学生的一般情况,及奖励,处分情况; ·学生成绩管理:学习成绩,补考成绩; ·学籍处理:学生留降级处理,休复学处理,退学处理; ·日常教务管理:日常报表,如通知书,补考通知书等,学生学习成绩的各种分类统计; ·毕业生学籍处理:结业处理,毕业处理,授位处理,学籍卡片等。 2.3信息采集与各部门的使用权限 每学期考试完毕由各系录入成绩,然后由教务科收集。为了信息的安全和数据的权威性,对于网上信息的使用权限和责任规定如下: 数据收集前的系统权限

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

(完整)工程资料管理制度

(完整)工程资料管理制度 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)工程资料管理制度)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)工程资料管理制度的全部内容。

工程资料管理制度 1目的 1。1为了建立健全集团公司开发项目工程资料管理,完整、准确、系统地管理好工程资料档案,充分发挥工程资料档案在投资、开发工作中的重要作用,为公司提高工程管理和投资效益提供更好的服务。 1。2工程资料是指整个建设项目从前期、开工、施工、竣工及验收、备案全过程中形成的有归档保存价值的文件资料,包括在此过程中形成的文字材料、图纸、图表、声像材料和其它载体. 2工程资料的归档范围 2.1对与工程建设有关的重要活动、记载工程建设主要过程和现状、具有保存价值的各种载体的资料,均应收集齐全,整理立卷后归档。 2.2工程资料的具体归档范围应符合《建设工程文件归档范围和保管期限表》的要求。 3工程文件材料的质量要求 3.1工程资料应字迹清楚、图样清晰、图表整洁、签字盖章手续完备(不能代签或打印)。 3。2复印、打印文件材料及照片的字迹、线条和影像的清晰及牢固度应符合规定的质量要求. 3。3工程资料应为原件,复印件必须注明原件的存放地,经办人并加盖原件存放单位的公章。

3。4工程资料的内容及其深度必须符合国家有关工程勘察、设计、施工、监理等方面的技术规范、标准和规程. 3。5工程资料的内容必须真实、准确,与工程实际相符合. 4工程施工过程中的资料检查: 工程部资料员在工程施工过程中不定期检查(每月必检一次)施工单位、监理单位的质量验收和安全资料,及时检查资料是否按国家质量/安全验收规范、地方主管部门相关文件要求编制,与施工现场是否同步,原材料、试件等是否按规范留置、送检,发现有缺漏的,列出缺漏清单,督促施工、监理单位及时补齐. 必须检查的施工阶段:项目开工前;基础、主体等各分部工程验收前;竣工验收前二个月. 5工程资料的接收: 5.1递件单位提供给工程部的工程资料(工程技术文件、来文、图纸、资料)由部门资料员统一接收,并应填写《工程资料接收记录》和《收文登记表》。 5.2工程部或其它部门从外单位带回或通过其它途径收到的工程文件,一律交资料员,并应登记。 5.3对接收的工程资料,必须进行数量和外观质量检查,发现问题应及时通知寄发单位补发。 5。4对接收的工程资料应及时建立工程资料接收总登记台账和分类台账(簿式台帐和电子台帐)。 5。5对各单位提供的不符合规定的档案资料文件,资料室有权退回归档单位,归档单位应按资料室的有关要求进行整改,直至提交符合规定要求的归档资料。 5.6凡因工程文件材料归档不完整,不符合有关归档规定者,不能进行工程决算、工程款支付,各项工程款的付款必须由资料室对竣工资料签收合格后支付。 5。7工程档案在工程项目竣工验收后一个半月内由施工单位向建设方提交完整、准确、并经各参建方有关负责人签章的工程技术档案资料。 5。8施工方要按合同约定的份数移交工程竣工资料到公司资料室,在取得资料室

软件工程教材资料整理

软件工程复习资料 第一章 1、软件的概念:软件是计算机中与硬件相互依存的另一部分,它是包括程序、数据及其 相关文档的完整集合。 2、软件具有下列特点: 1.软件是一种逻辑产品,它具有抽象性和无形性。 2.软件的生产与硬件不同。 3.软件在运行和使用中,不会磨损和老化,但它存在退化问题。 4.软件的开发和运行对计算机系统有一定的依赖性。 5.软件开发至今仍未完全摆脱手工开发方式,大多数软件是“定做”的。 6.软件开发成本高、风险高。 7.相对于计算机硬件技术的发展,计算机软件技术的发展十分缓慢。 3、计算机软件技术的发展经历了三个阶段: 程序设计时期(20世纪40年代中期至60年代中期),软件质量取决于个人编程水平。 程序系统时期(20世纪60年代中期至70年代中期),软件质量取决于开发小组的技术水平 软件工程时期(20世纪70年代以后)。软件质量取决于软件工程管理水平。 软件技术的发展主线是由个体简单的开发方式向着复杂、大规模、标准化、工程化的方向发展,在最高阶段,把软件开发界定为两方面的内容:软件开发和软件维护。 4、软件开发引发的问题: 1.社会对软件需求的不断发展 2.软件开发理念和手段与客观实际存在的差异 ①对软件本身的认识存在差异②对软件的服务对象认识不足 ③对软件开发缺乏科学管理④软件开发手段落后 5、软件危机1)发生时间:软件发展第二阶段(程序系统阶段)的末期 (2)软件危机是指在计算机软件开发和维护过程中遇到的一系列严重问题。 (3)软件危机的主要表现有以下几方面: 1.软件开发经费超支、进度拖延 2.软件不能符合用户的要求 3.软件难以维护 4.软件可靠性差 5.软件开发生产率低 4)主要原因: 1 社会对软件的需求急剧增加 2 软件本身的特点:软件本身存在着复杂性 3软件开发理念和手段与客观实际存在的差异 ①对软件本身的认识存在差异②对软件的服务对象认识不足 ③对软件开发缺乏科学管理④软件开发手段落后 寻找解决软件危机途径的过程就是软件工程形成的过程 6、软件工程 核心:以工程化的原理和方法对软件进行规划、定义、开发和维护; 宗旨:以较少的投入,最快的时间生产出高质量的软件。 定义:“软件工程是软件开发、运行、维护和引退的系统方法”。 软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。 软件工程的三要素是方法、工具和过程。 软件工程的基本目标:实现软件的优质高产,即在给定成本、进度的前提下,达到要求的软件功能,取得较好的软件性能,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性,并满足用户需求的软件产品。

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件项目项目管理资料讲解

软件项目项目管理

《软件项目项目管理》 课程报告 学院: 姓名: 学号:

【摘要】决定项目成败的不仅仅是范围、成本、进度的计划多么完美,而是团队是否能高效的工作。或许跟其他的项目不同,软件项目彻底是"以人才为核心"的项目,项目的主要成本来自于人力成本、项目的进度完全由成员决定,因此,在软件项目中,对团队的管理不仅仅是对进度的保障,更是对项目质量、项目成本的保障。团队管理才是软件项目管理中的重中之重。因而,软件项目管理经理的作用极为重要。 【关键字】软件项目管理经理、合同、团队合作,进度规划 【正文】项目经理( Project Manager ) ,从职业角度,是指企业建立以项目经理责任制为核心,对项目实行质量、安全、进度、成本管理的责任保证体系和全面提高项目管理水平设立的重要管理岗位。项目经理是为项目的成功策划和执行负总责的人。项目经理是项目团队的领导者,项目经理首要职责是在预算范围内按时优质地领导项目小组完成全部项目工作内容,并使客户满意。为此项目经理必须在一系列的项目计划、组织和控制活动中做好领导工作,从而实现项目目标。 项目经理在拿到招标文件的首要工作如下: 一、研究熟悉合同文件 项目经理组织已明确的项目的成员仔细核阅合,同文件、协议、补充协议等各项有关合同文件,深入消化了解,据此来开展项目工作。主要包括:了解合同中的谈判背景、中标条件及合同主要条款,研究、熟悉合同的主要内容,研究制定执行合同的策略、重点及注意事项。 确定项目的工作分解结构和编码。根据合同项目的具体内容确定项目的工作分解结构和编码,将项目的工作任务分解成详细的工作单元,给每个单元规定各自的账目编码,这是进行费用/进度综合控制的基础。根据项目的工作分解结构和编码,进一步确定项目的组织分解结构和编码。使项目的每一项工作都落实到公司的一个部、室的一个专业组织,不能遗漏,也不能把一项工作重复委派给一个以上的专业组。项目组实行动态管理,根据项目规模大小、复杂程度、专业协作条件关系,决定采取集中或分散的组织形式。 组织业主(用户)开工会议。一般在合同生效后3-4周内,项目经理要组织召开业主(用户)开工会议。这是项目成立后与业主的第一次正式重要会议。在会上要进一步明确承发包双方的职责和范围,工程公司的工作内容和基础条件,进一步确认合同项目采用的标准及相关事项,确定双方的联系渠道和协调事项,讨论项目计划的有关工作。 编制项目计划。项目计划是项目经理对项目的总体构思和安排。项目计划中要明确项目目标、工作原则、工作重点、工作程序和方法。项目经理首先编一个计划方案,提出对合同的研究意见,在技术和商务方面的可靠性和风险以及掌握项目进度、费用、质量和材料控制的原则和方法等,并经公司有关部门审查同意。接着再编制详细实施计划,并在项目开工会议上发布。这是项目工作的重要指导性文件。 其中,合同中的6.1节,“在某些情况下,政府采购中心可能对招标文件进行修改。”这也是需要考虑的部分,纳入后面的进度规划中,以防采购中心的修改对整个项目的工期造成影响。 二、团队合作

软件工程导论复习知识点

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

软件危机产生原因: 1、软件本身的特点 2、对软件开发与维护存在许多错误认识和做法 3、软件开发与维护的方法不正确 解决软件危机途径: 1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。 2、研究和推广成功的软件开发技术和方法。 3、开发和使用好的软件工具。 软件生命周期: 软件所经历的定义、开发、使用和维护直到废弃所经历的时期。 程序设计环境: 源程序编辑,编译或解释,链接,调试和运行工具的集合 软件工程环境: 软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合 二、软件工程: 软件工程定义: 研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。 软件工程性质: 涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

期末软件工程资料整理

1.软件工程的基本原理? 答:基本原理包括3要素:方法,工具,过程;其中,方法是完成软件开发任务的技术方法回答怎样做的问题;工具是为运用方法提供自动半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,他是完成各任务的工作步骤。 2.RUP中有9个工作流,前6个为过程工作流,后3个为核心支持工作流程。 3.问答:P.32第2题 4.简述结构化范型和面向对象范型的要点,分析优缺点。 5.电话号码有几类:校内电话号码由4位数字组成,第1位不是0;校外电话分本市电话和外地电话,拨校外电话需先拨0,本市电话则再接着拨8位数字(第1位不是0),外地电话则拨3位区码再拨8位电话号码(第1位不是0)。 答案: 电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+3位数字 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9] 6.名词解释:第一范式,第二范式,第三范式 答:第一范式:每个属性都必须是原子值,仅仅是一个简单的值而不能含内部结构。 第二范式:满足第一范式条件,且每个关键字属性都由整个关键字决定。 第三范式:符合第二范式条件,每个关键字属性都仅由关键字决定,且一个费关键字属性不能仅仅是对另一个非关键字属性的进一步描述。 7.储蓄系统:储户填写的存款单或取款单由业务员输入系统,是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。 试用数据流图描绘下述系统的功能,并用实体-联系图描绘系统中的数据对象。 答案: 系统的数据流图如下图所示:

公路资料整理范本填写

XX 高速公路 工 程 资 料 整 理 范 本 (附填写内容) XX高速公路总监理工程师办公室二○○七年六月制

目录 第一章交桩和复测报告 第一节交桩 (1) 第二节复测报告 (4) 第二章开工报告 (9) 第三章原材料出厂质量证明和工地试验报告 第一节原材料出场质量证明 (19) 第二节工地原材料抽检试验报告 (19) 第四章路基工程施工资料 第一节路基检验记录整理顺序 (21) 第二节路基排水资料整理顺序 (53) 第三节挡土墙、防护工程资料整理顺序 (61) 第四节小桥和涵洞资料整理顺序 (69) 第五章路面工程施工资料 第一节水泥稳定粒料基层(底基层)资料整理顺序 (89) 第二节沥青混凝土面层资料整理顺序 (97) 第三节水泥混凝土面层资料整理顺序 (102) 第四节路缘石资料整理顺序 (107) 第五节路肩资料整理顺序 (110) 第六章桥涵工程施工资料 第一节施工试验报告 (112) 第二节施工检验资料整理顺序 (117) 一、基础及下部构造资料整理顺序 (117) 二、上部构造预制和安装资料整理顺序 (157) 三、总体、桥面系和附属工程资料整理顺序 (175) 第七章施工检验结果汇总表 第一节施工抽检试验结果汇总表 (200) 第二节施工检验结果汇总表 (204) 第八章监理资料 第一节监理行政管理文件 (210) 第二节合同管理文件 (215) 第三节进度管理文件 (225) 第四节质量管理文件 (230) 第五节计量支付文件 (252) 第六节监理原始资料 (252)

编制说明 为规范XX高速公路施工资料的编制和归档工作,准确、全面记录施工中各种信息,XX高速公路总监办特制定《XX高速公路工程资料整理范本》。针对本《范本》内容,特做以下几点说明: 1、本《范本》中表格适用于施工单位和监理单位整理工程资料,工序自抽检表格相同,自检资料填写“自检说明”,抽检资料填写“监理评语”,可填写“符合规范及设计要求”。 2、所有资料表头处填写的单位名称,均应是该单位全称,如“唐山公路建设总公司”,编号在确定分项工程划分后正式填写。 3、监理抽检资料最下一行签字分别为:监理员、专业监理工程师、日期。 4、表格中的分项工程名称、分部工程名称均应严格按照《公路工程质量检验评定标准》附录A及总监办批准的工程划分填写。 5、评定表中规定值或允许偏差按设计图纸填写具体数据,如砼强度的“在合格标准内”填写设计标号等; “实测项目”的检测项目得分为合格率×100,合计得分为各项得分×权值累加之和除以权值的合计值(具体计算可参与质量评定标准);改成合格率×权值,增加“加权得分”一栏(详见第25页)。 “实测值”栏若单项数据太多,可填写“见###分项工程实测项目汇总表”; 外观鉴定严格按《公路工程质量检验评定标准》认真填写; 质量保证资料填写“齐全”、“基本齐全”、“不齐全”,工程质量等级评定“合格”或“不合格”。 6、中间交验必须是在该分项工程的所有检测项目都合格后方可签字,日期不能提前也不能推后,以确保资料能及时返回,不影响下道工序的施工。 7、资料要填写清楚工整,不得涂改,签字要工整、齐全。表格中空白处如无需填写应填“/”。 8、各施工、监理单位要对内业资料的管理高度重视,建立台账备查。已完工序自抽检资料要及时归档,做到“边施工、边整理、边归档”。 9、对于《范本》中表格格式或顺序中存在的任何问题都要及时上报总监办,由总监办统一制定或修改,不得私自更改。 10、试验检测、计量支付分别采用“公路工程试验检测管理信息系统”和“HCS 公路项目建设管理系统”中的格式。 11、交通工程、房建工程、机电工程等资料的整理要求另行制定。

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件工程期末考试复习资料1

版权声明:本文版权归05112114、05112125 所 有,未经许可,任何任何媒体均不得改变其形 式,进行转载或摘录,违者必究! 软件工程期末考试复习资料一 (仅参考) 拟订人:超越吉他手、朱古力、哖_少オ輕狂第一章:软件工程的产生和发展有关复习资料 一、软件工程的定义: 1、软件危机的产生:软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。 2、软件危机主要表现:两个方面:①软件产品质量低劣,甚至开发过程就夭折 ②软件生产率低,不能满足需要 3、软件工程的三要素:①方法:完成软件开发各项任务的技术方法 ②工具:研究支撑软件开发方法的工具 ③过程:为开发高质量软件所规定的各项任务的工作步骤 4、软件工程研究的标准及目标: 标准:分为4个层次,国际标准、行业标准、企业规划、项目规划 目标:以较少的投资获取高质量的软件。有易于维护、低的开发成本、高性能、缩短开发期 5、软件工程研究的主要内容:以下两个方面:①软件开发方法、技术;软件开发工具及环境 ②软件管理技术、软件规范(国际规范) 7、软件工程学的目的:①以较少的投资获取高质量的软件 ②运用科学的方法和工程化的规范管理来指导软件开发 ③克服软件危机 8、软件工程的基本原则:如下4条基本原则 ①必须认识软件需求的变动性,采取适当措施来保证结果产品能忠实地满足用户需求 ②稳妥的设计方法大大地方便了软件开发,以达到软件工程的目标 ③软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用 ④有效的软件工程只有在对软件过程进行有效管理的情况下才能实现 9、软件工程过程及特性:是指在软件工具的支持下,所进行的一系列软件工程活动 包括4类基本过程:1)软件规格说明书2)软件开发3)软件确认4)软件演进 特性:可理解性、可见性、可靠性、可支持性、可维护性、可接受性、开发效率和健壮性等。 二、软件与软件生存周期 1、软件的概念和特点 1)概念:软件是程序以及开发使用维护程序所需的所有文档 2)软件的构成:由应用程序、系统程序、面向用户的文档及面向开发者的文档4部分构成即:软件=程序+文档 3)特点:①软件是一种逻辑实体,不是具体的物理实体

工程资料整理规范

建设工程文件归档整理规范 1 总则 1.0.1为加强建设工程文件的归档整理工作,统一建设工程档案的验收标准,建立完整、准确的工程档案,制定本规范。 1.0.2 本规范适用于建设工程文件的归档整理以及建设工程档案的验收。专业工程按有关规定执行。 1.0.3建设工程文件的归档整理除执行本规范外,尚应执行现行有关标准的规定。 2 术语 2.0.1建设工程项目(construction project) 经批准按照一个总体设计进行施工,经济上实行统一核算,行政上具有独立组织形式,实行统一管理的工程基本建设单位。它由一个或若干个具有内在联系的工程所组成。 2.0.2单位工程(single project) 具有独立的设计文件,竣工后可以独立发挥生产能力或工程效益的工程,并构成建设工程项目的组成部分。 2.0.3分部工程(subproject) 单位工程中可以独立组织施工的工程。 2.0.4 建设工程文件(construction project document) 在工程建设过程中形成的各种形式的信息记录,包括工程准备阶段文件、监理文件、施工文件、竣工图和竣工验收文件,也可简称为工程文件。 2.0.5工程准备阶段文件(seedtime document of a construction

project) 工程开工以前,在立项、审批、征地、勘察、设计、招投标等工程准备阶段形成的文件。 2.0.6 监理文件(project management document) 监理单位在工程设计、施工等监理过程中形成的文件。 2.0.7施工文件(constructing document) 施工单位在工程施工过程中形成的文件。 2.0.8 竣工图(as-build drawing) 工程竣工验收后,真实反映建设工程项目施工结果的图样。 2.0.9竣工验收文件(handing over document) 建设工程项目竣工验收活动中形成的文件。 建设工程档案(project archive) 在工程建设活动中直接形成的具有归档保存价值的文字、图表、声像等各种形式的历史记录,也可简称工程档案。 案卷(file) 由互有联系的若干文件组成的档案保管单位。 立卷(filing) 按照一定的原则和方法,将有保存价值的文件分门别类整理成案卷,亦称组卷。 归档(putting into record) 文件形成单位完成其工作任务后,将形成的文件整理立卷后,按规定移交档案管理机构。

软件工程复习题复习重点及答案

软件工程复习重点 一、选择题 1、软件工程三要素是指( B )P8 A、技术、方法和工具 B、方法、工具和过程 C、方法、对象和类 D、过程、模型、方法 2、瀑布模型本质上是一种( A )。P23 A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过 程。P79 A、数据流 B、数据流图 C、数据库 D、数据结构 4、概要设计的任务是设计系统的( B物理模型)P70 A、逻辑模型 B、物理模型 C、概念模型 D、程序流程图 5、描述软件结构的工具有( A模块结构图) A、模块结构图 B、PAD图 C、数据流程图 D、程序 6、进行需求分析可以使用多种工具,但( C )是不适用的。 A、数据流程图 B、判定表 C、PAD图(详细设计) D、数据字典 7、可行性研究要进行的需求分析和设计应该是( C )。 A、详细的 B、全面的 C、简化的、压缩的 D、彻底的 8、软件生命周期由( C )三个时期组成。 A、概要设计、详细设计和系统实现 B、可行性分析、系统设计和编码 C、定义、开发和运行维护 D、分析、设计和测试 9、以下( D )不是模块。对象是一个实体 A、过程 B、程序 C、函数 D、对象 10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。 A、设计阶段的概要设计 B、设计阶段的详细设计 C、编码阶段 D、测试阶段 11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78 A、扇入数 B、扇出数 C、宽度 D、作用域 12、下列工具哪一个是需求分析阶段常用工具?( D ) A、PAD B、PFD C、N-S D、DFD数据流程图 需求分析常用的是数据流程图和数据字典 13、为了提高测试的效率,应该( D) A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据库 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 14、成功的测试是指( B发现程序的错误) A、运行测试实例后未发现错误项 B、发现程序的错误 C、证明程序正确 D、改正程序的错误 15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)

软件工程复习资料整理

《软件工程》试题参考答案(1)卷 一、单向选择题(四选一、每小题3分,共18分) 1、需求分析的任务不包括(B)。 A.问题分析 B.系统设计 C.需求描述 D.需求评审。 2、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。0802 A.判定表和判定树 B.盒图 C.流程图 D关系图 3、以下不属于逻辑覆盖的是(D)。1402 A.语句覆盖 B.判定覆盖 C.条件覆盖 D.基本路径 4、为适应软件运行环境的变化而修改软件的活动称为(B)。1501 A.纠错性维护 B.适应性维护 C.改善性维护 D预防性维护 二、填空题(每空2分,共18分) 1.软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。0101 2.高级语言:独立于机器,面向过程或面向(对象)0101 3.软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过 程)。0201 4.由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。 1504 5.在公式V(G)= E – N + 2中:E为程序图G中边的总数; N 为程序图中结点的 总数。V(G)又称为图G的环形(复杂度)0204。 6.任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统 转换成一个信息变换模型。0303 7.为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确 认),例如,提问“你确实要删除…”。1204 8.文档是一种数据媒体和其上所记录的(数据)。0101 三、判断题(每小题2分,共24分,错误打X、正确打√) 1.用户对软件需求的描述不准确,往往是产生软件危机的原因之一。(√)0102 2.一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际 关系,善于听取别人的意见。(√)0206 3.目前的绝大多数软件都不适合于快速原型技术。(X)0402 4.面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理 系统;系统软件(如操作系统)等。(√)10001 5.数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定 做输入格式等内容。(√)1204 6.软件也会磨损和老化。(X)0101 7.完善性维护是提高或完善软件的性能。(√)0101 8.McCabe建议模块规模应满足:V(G)≤20。(X)0204 四、简答题(每小题4分,共20分) 1、程序设计语言的三种类型和特点是什么0101

相关主题
文本预览
相关文档 最新文档