当前位置:文档之家› 软件工程-原理、方法与应用【第三版】复习总结

软件工程-原理、方法与应用【第三版】复习总结

软件工程-原理、方法与应用【第三版】复习总结
软件工程-原理、方法与应用【第三版】复习总结

第一章绪论

1.每18个月芯片的性能和速度均提高一倍,每隔12年软件生产大约提高一倍。

2.软件:是能够完成预定功能和性能的可执行的计算机诚信度。包括使程序正常执行所需的数据,以及有关描述程

序操作和使用的文档。即:软件= 程序+ 文档

3.软件的特征:

软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。

4.软件危机出现的原因:

软件维护费用的急剧上升,直接威胁计算机应用的扩大;

软件生产技术进步缓慢,是家居软件危机的重要原因。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.软件工程学的范畴:

软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。

6.软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,

目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。

7.软件的发展:大体经历了程序、软件、软件产品3个阶段。

8.工具和方法是软件开发技术的2大支柱。

9.3种编程泛型:

过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型

10.面向对象程序设计中,数据和操作被封装在一个对象中,对象之间则是通过消息相互联系。

11.构件:标准化/规格化的对象类。

12.常用变成力度的大小来比较3种编程泛型的差异。

粒度由小到大依次是:过程式编程范式、面向对象编程范式、基于构件的编程泛型。

13.软件工程的分化:

传统软件工程:结构化分析-》结构化设计-》面向过程编码-》软件测试

面向对象软件工程:OO分析与对象抽取-》对象详细设计-》面向对象的编码与测试

基于构件的软件工程(以可复用构件和测试工具为后盾):

领域分析和测试计划定制-》领域设计-》建立可复用构件库-》按‘构件集成模型’查找与集成构件

14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。

第二章软件生存周期与软件过程

1.软件生存周期:计划、开发、运行3个时期。

需求分析-》软件分析-》软件设计-》编码测试-》软件测试-》运行维护

2.需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。

3.软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。

4.软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。

5.单元测试通常与编码同时进行。

6.软件测试:单元测试、集成测试、系统测试。

7.Boehm软件生存周期的划分:系统需求、软件需求、概要设计、详细设计、编码纠错、测试和预运行、系统维护。--------------------------------------------------------------------------------------------------------------------------------------------------------------------

8.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。

9.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。

快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。特点:快速开发工具、循环、低成本。种类:渐进型、抛弃型。

10.常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。

11.增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。增量:小而可用的软件

一般情况下,第一个增量是软件的核心部分。如(增量一:需求-设计-实现和集成-交付客户)

12.螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计划、风险分析、建立原型、

用户评审4种活动。(高风险的大型软件采用此方法)

13.构件集成模型:适应于面向对象的软件开发。利用预先封装好的构件来构造应用软件系统。

14.软件开发方法可区分:形式化方法、非形式化方法。

15.形式化开发模型:转换模型、净室模型

16.转换模型:是将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。

转换模型的开发过程:确定性实话的需求规格说明书、进行自动化的程序变换、对形式化开发记录进行测试。

转换模型的常用技术:

基于模型的需求规格说明书及其变换技术;

基于代数结构的需求规格说明书及其变换技术;

基于时序逻辑的需求规格说明书及其验证技术以及基于可视化的技术。

17.净室模型:是一种形式化的增量开发模型。力求在分析和设计阶段消除错误。

18.统一过程RUP 包括4 个阶段:初始、细化、构造、迁移。以用例为驱动, 以系统架构为中心的迭代与增量过程。

每个阶段又分为若干次迭代,每次迭代都有一个核心工作流,有5 个活动(需求、分析、设计、实现、测试)。

19.敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。

20.敏捷开发的价值观:个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、

响应变化胜过遵循计划。

21.软件可行性研究:经济可行性、技术可行性、运行可行性、法律可行性。

22.可行性研究的步骤:对当前系统进行调查研究、导出新系统的解决方案、提出推荐方案、编写可行性论证报告。

23.可行性论证报告的内容:系统概述、可行性分析、结论意见。

24.软件风险分析包括:风险识别(项目风险、技术风险、商业风险)、风险预测、风险的驾驭和监控。

25.软件计划的7种类型:项目实施计划、质量保证计划、软件测试计划、文档编制计划、用户培训计划、综合支持

计划、软件分发计划。

第三章结构化分析与设计

1.结构化设计SD ;结构化分析SA ;软件需求规格说明书SAS ;结构图SC ;数据字典DD ;

状态转换图STD ;数据流图DFD

2.瀑布模型的生命周期:需求定义与分析-》总体设计-》详细设计-》编码-》测试-》维护

3.系统的开发流程(SA和SD流程):

结构化分析(工具:DFD,PSPEC)------》分析模型(分层DFD图)+SRS

结构化设计(工具:SC图)(映射)------》初始设计模型(初始SC图)

初始设计模型(初始SC图)(优化)------》最终设计模型(最终SC图)

4.结构化分析的基本步骤:自顶向下,功能分解(分层DFD)、由后向前,定义数据和加工(DD, PSPEC)、根据需要,

分析复杂数据和动态模型(E-R图,CFD,CSPEC,STD)、编写软件需求规格说明书SRS。

5.SA需求分析的两项基本任务:建立系统分析模型、编写SRS。

6.分析模型组成:功能模型、数据模型、行为模型3种。

7.抽象和分解是结构化分析的主要指导思想,细化的实质是分解。分解和细化是软件设计的策略。

8.SD阶段把分析模型中的DFD图转换为最终SC图。

9.传统软件的开发技术:结构化设计、模块设计。

10.软件设计:总体设计/概要设计(初始SC图、最终SC图)、详细设计(用逐步细化的方法,完成模块的说明)。

11.需求分析的步骤:需求获取、需求提炼、需求描述、需求验证。

12.SA模型的组成

13.SA模型同时覆盖了信息模型、功能模型、行为模型3种模型。

14.DFD图不能表示程序的控制结构(如选择、循环结构)。

15.加工规格说明通常用结构化语言、判定表、判定树作为描述工具。

16.软件中的数据分为3类:数据项(数据元素)、数据流(多个相关数据项)、数据文件和数据库。

17.数据字典的组成:数据项、数据流、数据存储(文件或数据库)、加工(处理逻辑)、外部项(人、物或其它软件系统)。

18.SD模型是由SA模型映射而来的。

SA模型的数据字典可转换为待开发系统的数据设计

数据流图可转换为体系结构设计(SC图)与接口设计

加工规格说明可转换为模块内部的详细过程设计

19.SD模型的组成:从上到下依次是:过程设计、接口设计、体系结构设计、数据设计。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 20.结构化分析的基本步骤:

自顶向下对系统进行功能分解,画出DFD图;由后向前定义系统的数据和加工;编制DD和PEPES;写出SRS。

21.把不需要分解的加工成为基本加工。把逐步分解成为“自顶向下,逐步细化”。

22.DFD的优点:便于实现,便于使用。

23.传统的软件设计可细分为:面向数据流设计(SD方法)、面向数据结构设计(Jackson方法)。

24.用数据流图表示逻辑模型,在设计阶段,按照数据流图的不同类型(变换型、事务型)转换为相应的软件结构。

25.结构化设计通常从DFD图到SC图的映射开始。

26.面向数据流的设计方法:从DFD图到SC图的映射的4个步骤:

复审DFD图,必要时可再次进行修改或细化;

鉴别DFD图的结构特征:事务?变换?;

按照规则,把DFD图为初始的SC图;

改进初始的SC图。

27.变换型结构:由输入、变换中心和输出三部分组成。

事务型结构:具有在多种事务中选择执行某类事物的能力。

28.变换映射的步骤:划分DFD图的边界、建立初始SC图的框架、分解SC图的各个分支。

事务映射的步骤:在DFD图上确定边界、画出SC图框架、分解和细化接受分支和发送分支。

29.优化结构设计的指导规则:对模块分割、合并和变动调用关系的指导规则、保持高扇入/低扇出的原则、作用域/

控制域规则。

30.模块设计(详细设计)的主要任务是编写软件的模块设计说明书。目的是确定模块采用的算法和块内数据结构。

31.模块设计的原则:清晰第一的设计风格、结构化的控制结构、逐步细化的实现方法。

32.“结构化”保证程序的清晰、易读,“逐步细化”实现程序的正确、可靠。

33.结构化程序设计原理和逐步细化的实现方法是完成模块设计的基础。

第四章面向对象和UML

1.面向对象的基本特征:抽象、封装、集成、多态。

2.面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

3.元素之间的联系有:关联、泛化、依赖、实现、聚集、组合。

4.UML的4个抽象层次:用户模型、模型、元模型、元元模型。

5.UML的2类图:

静态图(用例图、类图、对象图、构件图、部署图);

动态图(状态图、时序图、协作图、活动图)

5种视图:用例视图、逻辑视图、进程视图、构件视图、部署视图。

6.UML的特点:同意标准、面向对象、表达能力强,可视化。

7.UML模型作为测试阶段的依据:

单元测试使用类图和类规格说明;集成测试使用构件图和协作图;系统测试使用用例图来验证系统行为。

8.UML静态建模机制包括:用例图、类图、对象图构件图、部署图。

用例图有:系统边界、用例、参与者、关联等。用例之间存在的关系:扩展关系、包含关系。

包与包之间的关系有:依赖、泛化。

9.UML动态建模机制包括:状态图、时序图、协作图、活动图。

10.消息:简单消息、同步消息、异步消息。状态图有:初态、终态、中间态。

11.时序图中的消息可以是信号或操作调用。

12.时序图着重体现交互的时间顺序;协作图着重体现交互对象间的静态链接。

13.时序图和协作图适合描述单个用例中几个对象的行为;活动图适合表现跨越多用例或多线程的复杂行为。

14.构件图可以用来表现、编译、链接、执行时构件间的依赖关系。

15.UML用图表示语法,用元模型表示语义,采用模型来描述系统的结构(静态特征)以及行为(动态特征)。

第五章需求工程和需求分析

1.软件需求的3个层次:业务需求、用户需求、功能需求。软件项目中40%~60%的问题源自软件需求阶段。

2.软件需求的6个特性:功能性、可用性、可靠性、性能、可支持性、设计约束。

3.功能性:普通功能、全局性功能。

4.软件需求工程:是一门应用有效的技术和方法,合适的工具和符号来确定、管理和描述目标系统及其外部行为特

征的学科。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.需求分析的步骤:需求获取、需求建模、需求描述(编写SRS)、需求验证。

6.需求分析的主要任务:建立需求模型。需求分析是迭代过程。

常见模型有:用例图、数据流图、实体联系图、控制流图、状态转换图。

7.需求建模方法:结构化分析建模方法、面向对象分析建模。

8.结构化需求模型由3部分组成:功能模型(数据流图、加工规格说明书)、数据模型(数据字典、ER图)、行为模

型(状态转换图、控制流图、控制规格说明书)。

9.面向对象需求模型:用例模型(用例图、用例规约)、补充规约、术语表。

10.面向对象需求建模的步骤:画用例图、写用例规约、描述补充规约、编写术语表。

11.用例规约文档的内容:简要说明、事件流、特殊需求、前置条件和后置条件。

12.用例规约的检查:功能需求的完备性、模型是否易于理解、是否存在不一致性、避免二义性。

13.软件需求规格说明书SRS的内容:引言、信息描述、功能描述、行为描述、质量保证、接口描述、其他描述。

14.质量保证阐明软件交付前进行功能测试、性能测试。接口描述包括系统用户界面、硬件接口、软件接口、通信接

口。

15.需求管理的流程:需求确认、需求跟踪、需求变更。需求跟踪有两种方式,正向跟踪与逆向跟踪。

需求变更的流程:变更申请、审批、更改、更新确认。

16.需求管理的5个特定实践:

17.基线(Baseline) 是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。

第六章面向对象分析

1.面向对象分析OOA的建模步骤:需求理解、定义类和对象、标识对象的属性和操作、标识类的结构和层次、建立

对象-关系模型、建立对象-行为模型、评审OOA模型。

2.OOA的优点:同时加强了对问题空间和软件系统的理解;改进包括用户在内的软件分析有关的各类人员之间的交

流;对需求的变化具有较强的适应性;很好的支持软件复用;确保从需求模型到设计模型的一致性。

3.分析模型(是一种概念模型)的特点:全面覆盖软件的功能需求;分析模型与软件的实现无关;分析模型的表述方法

与所采用的分析技术有关。

4.典型的五层次模型:建立类/对象层(抽象出类和对象)、建立属性层(设计静态属性和关系)、建立服务层(定义

动态属性和消息通信)、建立结构层(定义层次结构关系)、建立主题层(每个主题构成一个子系统)。

5.OOA方法的共同特征:类和类层次的表示、建立对象-关系模型、建立对象-行为模型。

6.面向对象开发的全过程:OOA(分析)、OOD(设计)、OOP(编码)、OOT(测试)。

7.从建立需求到开发软件成品先后要生成分析、设计、实现3种模型。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

8.用例模型是面向对象分析最常用的一种模型。

9.用例分析的步骤:补充用例规约、研究用例的事件流,将用例的职责分配给若干分析类、分析类之间的协作。

10.分析类的类型:边界类、控制类、实体类。

11.边界类包括:用户界面类、系统接口类、设备接口类。如事务管理器、资源协调器、错误处理器都可为控制类。

12.为分析类分配职责是OOD的重点。实体类具有持久性。

13.对象-关系模型的内容:分析类的属性、分析类的关联、分析类图、分析类的合并。

14.时序图中的元素有:对象、对象生命线、消息。协作图中的元素有:对象、链接、消息流。

15.面向对象分析的任务是:将需求阶段产生的需求模型转换为软件分析模型。

面向对象设计的任务是:将分析阶段建立的分析模型转换为软件设计模型。

第七章面向对象设计

1.软件设计的基本概念:模块(定义输入、输出和特性的程序实体)与构件、抽象与细化、信息隐藏、软件复用。

2.软件设计的基础:分析阶段对目标系统的数据、功能、行为建模。

3.软件设计包括:数据设计、体系结构设计、接口设计、过程设计。

4.分解和模块独立性是实现模块设计的重要指导思想。

5.模块数与开发工作量的关系:

6.概要设计(总体设计):包括软件的结构和接口设计,并编写概要设计文档。详细设计,确定模块内部的算法和数据

结构,产生描述各模块程序过程的详细文档。每个阶段完成的文档都必须经过复审。

7.模块的独立性从2个方面度量:模块本身的内聚、模块之间的耦合。

8.内聚分类:低内聚(偶然性内聚、逻辑性内聚、时间性内聚)、中内聚(过程性内聚、通讯性内聚)、高内聚(顺

序性内聚、功能性内聚)。

9.耦合分类:弱耦合(非直接耦合、数据耦合、特征耦合)、中耦合(控制耦合)、较强耦合(外部耦合、公共耦合)、

强耦合(内容耦合)。

10.一个模块,一个功能是模块化设计的一条准则。

11.OO设计模型由系统架构层、类和对象层、消息层、责任层4个层次组成。

12.面向对象设计中,数据和过程被封装为类/对象的属性和操作;接口被封装为对象间的消息,而体系结构的设计则

体现为系统的技术基础设施和具有控制流程的对象间的协作。

13.OOD的软件设计可划分为2个层次:系统架构设计、系统元素设计。

14.系统架构设计的内容:系统高层结构设计、确定设计元素、确定任务管理策略、实现分布式机制、设计数据存储

方案、人机界面设计。系统元素设计的内容:子系统设计、分包设计、类/对象设计。

15.软件模式分类(按抽象级别):架构模式、设计模式、习惯用法。

16.常用的架构模式有:层次架构、模型-视图-控制架构、管道-过滤器架构、黑板架构。

17.层次架构的基本原则:将系统划分不同的层次。确定设计元素的主要工作是:确定设计类、子系统、子系统接口。

18.面向并行需求的技术:引进任务管理部件、基于进程和线程的控制。

19.任务管理策略:多处理机方案、操作系统方案、应用程序方案。

20.设计管理并发任务对象的策略:确定任务的特征、定义一个协调者任务和与之关联的对象、集成其它任务和协调

者。

21.任务管理部件的设计步骤:识别由事件驱动和时间驱动的任务、识别关键性任务,任务优先级和任务管理类、定

义任务、必要时扩充有关任务的类和对象。

22.

23.分包的原则:将边界类打包、将功能相关的类打包。高内聚-低耦合的原则,包之间的耦合表现为依赖关系。

24.类设计的步骤:创建初始设计类、定义操作、定义方法、定义状态、定义属性、定义依赖关系、定义关联关系、

定义泛化关系、处理非功能性需求。

第八章编码和测试

1.选择编码语言的标准:应用领域、算法与设计复杂性、数据结构的复杂性、效率的考虑。

2.测试和纠错:

测试(testing)的目的与任务:目的:发现程序的错误;任务:通过执行程序,暴露潜在的错误。

纠错(debugging)的目的与任务:目的:定位和纠正错误;任务:消除软件故障,保证程序的可靠运行。

3.软件:待测软件,包括软件需求规格说明书、设计说明书和源程序代码等文档资料。

测试配置:包括测试计划、测试用例和测试期望结果。

评价:将测试结果和期望的结果相比较,如果不符就意味着错误,需要纠正(纠错)。

可靠性:对测试结果进行收集和评价,得到可靠性的相关指标。

1. 如果出现规律性、严重性的错误,软件质量可靠性值得怀疑,需进一步测试;

2. 如果软件功能完成较好,出现的错误也易纠正,那么:或者软件质量和可靠性是可以接受的;或者未发现错

误,不排除测试配置考虑不周,可能潜伏着的错误。

4.模块逻辑中采用单入口、单出口标准结构、避免使用容易引起混淆的结构和语句、嵌套深度不超过3—4层。

5.测试的特性:挑剔型、复杂性、不彻底性、经济型。

6.测试分类:静态分析(静态分析器分析、代码评审(代码会审、走查、办公桌检查));

动态测试(黑盒测试(功能测试)、白盒测试(结构测试))。

7.测试文档内容:测试计划、测试报告。测试计划的主体是测试内容说明:测试项目名称、测试目的、步骤和进度、

测试用例设计。测试报告的主题是测试结果:测试项目名称、实测结果和期望结果的比较、发现问题、测试效果。

8.黑盒测试分类:等价类法、边界值法、错误猜测法。

9.白盒测试分类:路经测试(点覆盖、边覆盖、路径覆盖)、逻辑覆盖测试(语句覆盖、判定覆盖、条件覆盖、判定

/条件覆盖、条件组合覆盖)。

10.路经测试的特征:满足结构测试的最低要求、有利于安排循环测试。

11.2种OO集成测试策略:基于线程的测试、基于使用的测试。

第九章软件维护

1.决定软件可维护性的因

2.软件副作用的类型:修改编码的副作用、修改数据的副作用、修改文档的副作用。

3.软件配置管理能够系统的处理变更从而使得软件系统可以随时保持其完整性。

主要内容包括:配置管理数据库、版本控制、变动控制。

4.什么是再工程:将新技术和新工具应用于老的软件的一种较“彻底”的预防性维护。

第十章软件复用

1.软件复用的定义: (SR)定义为利用工程知识或方法,由一已存在的系统,来建造一新系统。目的:这种技术,可改

进软件产品质量和生产率。还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。

2.软件复用的目的是能更快、更好、成本更低地生产软件制品。

3.按照可复用的粒度,软件制品从小到大分为以下几类:源代码复用(高级语言编写的源代码)、软件体系结构复用

(已有软件的体系结构)、应用程序生成器(对整个软件体系结构、相应的子系统、特定的数据结构和算法)、领域特定的软件体系结构的复用(特定领域中存在的公共体系结构及其构件)。

4.领域:指的是一组具有相似或相近软件需求的应用系统所覆盖的功能区域。

领域工程:通过领域分析(domain analysis)找出最优复用,对它们进行设计和构造,形成为可复用构件,进而建立大规模的软件构件仓库的过程。

5.横向复用:是指复用不同应用领域中的软件元素。

纵向复用:是指在一类具有较多公共性的应用领域之间进行软件构件进行复用。

6.领域分析:领域分析是在特定应用领域寻找最优复用,以公共对象、类、子集合和框架等形式进行标识、分析和

规约。目标:是获得领域分析模型。

7.构件应具有的特征:通用性、可变性、易组装性;基于面向对象技术的复用通用构件。

8.领域构件的设计框架:标准数据:标识标准的全局数据结构;标准接口协议:三个层次(构件内、外、人机接口);

程序模板:成形的结构模型作为新程序的体系结构设计的模板

9.几种流行的构件技术:组件对象模型技术(COM )、公共对象请求代理体系结构(CORBA)、开放式文档接口。

10.建立可复用构件库目前最常用的有三种分类模式: 枚举分类、呈面分类(呈面<=8)、属性-值分类。

11.应用系统工程(ASE):定义:在基于构件的软件开发中,通过复用构件系统开发某个特定应用系统的构件工程。

12.ASE过程的基本步骤:获取需求(建立用例模型)、分析(用用例模型输入来组装和特化分析构件)、

设计应用系统(用分析模型输入来组装和特化设计构件)、实现应用系统(用设计模型输入来组装和特化实现构件)、测试应用系统(组装和特化测试构件,测试应用系统)、应用系统打包。

13.OO方法对软件复用的支持:OOA模型、OOA与OOD的分工、对象的表示、一般---特殊结构、整体---部分结构、

实例连接、类描述模板、用例。

14.复用技术对OO方法的支持:类库、构件库、构架库、工具、OOA过程。

题目1:多模块程序的测试有哪些层次?各层测试主要解决什么问题?

解答:

题目1:软件维护有哪些种类?他们的目标分别是什么?

解答:软件维护的种类以及对应目标依次是:

a)完善性维护

在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。

b)适应性维护

让软件适应运行环境的改变而进行的一种维护。

c)纠错性维护

纠正在开发期间未能发现的遗留错误。

d)预防性维护

为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。

题目2:软件配置管理的主要功能是什么?

解答:系统的管理软件系统中的多重版本;

全面记载系统开发的历史过程,包括为什么修改,谁做了修改,修改了什么;

管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化;

对开发过程进行有效的管理和控制。

表7.1 “电话号码”的等价分类

表7.2 有效等价类的测试用例

表7.3 无效等价类的测试用例

阅读下列程序:

PROCEDURE SAMPAL (A,B:REAL; VAR X:REAL);

BEGIN

IF (A>3) AND (B=2)

THEN X:=X/A

IF (A=6) OR (X>4)

THEN X:=X+1

END;

为上述程序设计测试用例(参考教材相关例题)。

实验要求:形成相应的实验报告。包括:

1、画出程序流程图,程序图

2、实现语句覆盖用例设计

3、 实现判定覆盖用例设计

4、 实现条件覆盖用例设计

5、 实现判定/条件覆盖用例设计

6、 实现条件组合覆盖用例设计

7、 实现路径覆盖用例设计(完全覆盖)。

第一部分:程序流程图、程序图

开始

(A>3) AND (B=2)

(A=6) OR (X>4)

设本例中的两个判断IF (A>3) AND (B=2) 记为P1,IF (A=6) OR (X>4) 记为P2。 第二部分:语句覆盖用例设计——使程序中每个语句至少执行一次。

第三部分:判定覆盖用例设计——使每个判定的真假分支都至少执行一次。

第四部分:条件覆盖用例设计——使每个判定的每个条件的可能取值至少执行一次。

第一判定表达式:

设条件 A>3 取真 记为 T1 假 -T1 条件 B=2 取真 记为 T2 假 -T2 第二判定表达式:

设条件 A=6 取真 记为 T3 假 -T3 条件 X>4 取真 记为 T4 假 -T4

未覆盖c、d分支,不满足判定覆盖的要求。

条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。

第五部分:判定/条件覆盖用例设计——选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。

能同时满足判定、条件两种覆盖标准。

第六部分:条件组合覆盖用例设计——所有可能的条件取值组合至少执行一次。

A>3, B=2 ;A>3, B≠2 ;A≯3, B=2 ;A≯3, B≠2

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程重点整理

软件工程重点 (吐血整理——林新发) 红色的是重点中的重点 前面数字是课本页码 第一章概论 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.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

2018管理学原理知识点总结

管理学原理复习资料 第一章:管理与管理学 【考核知识点与考核要求】 (一)管理概述 识记:(1)管理的概念;(2)管理的特征;(3)管理的职能 领会:(1)管理的产生及必要性;(2)管理有效性的衡量 应用:联系实际说明管理的必要性 (二)管理者 识记:(1)管理者的概念与分类;(2)管理者的角色;(3)管理者的技能 领会:(1)不同层次管理者应重点掌握的技能;(2)举例说明管理者扮演的角色(3)有效的管理者与成功的管理者 (三)管理学 识记:管理学的概念 领会:管理学的特点 第一节:管理概述 一、管理的产生及必要性 1.管理的产生:①管理产生于欲望的无限性和资源有限性之间矛盾的协调 ②管理是人类群体活动的产物 2.管理的必要性:管理是组织不可缺少的要素,有组织就需要管理,管理与组织如影相随。 ①从整个社会发展来看,管理是社会进步与发展的物质力量 ②管理是任何组织生存发展的重要条件 ③管理活动具有的普遍性 二、管理的概念 概念:管理就是组织为了更有效地实现组织目标而对各种资源进行计划、组织、领导、控制的一系列协调活动的过程 ①管理是对组织的管理,组织是管理的载体 ②管理是一项有目的的活动,管理的目的是为了实现组织目标 ③管理是由一系列活动构成的 ④管理是一个追求有效的过程 ⑤管理的实质是协调 三、管理的特性 ①管理活动不同于作业活动 ②管理工作既具有科学性又具有艺术性 ③管理的核心是以人为本(处理好人际关系) 四、管理的职能(计划、组织、领导、控制) ㈠计划是对组织未来活动的预先筹划和安排 ㈡组织是为了完成计划而对分工协作关系所做的整体安排 ㈢领导是指挥和影响下属为实现组织目标而努力工作的过程

《管理学原理》总复习

A, 题型: 一、 单项或多项选择题 二、 判断题 三、 名词解释 四、 简答题 五、 论述 / 案例分析 B,复习内容 一、选择 1. 中层管理人员的主要工作是( )。 A 、战略管理; B 、现场管理; C 、组织协调; D 、开拓创新; E 、组织实施 2. 之于管理,最形象的描述是( )。 A 、艺术; B 、科学; C 、知识; D 、能力; E 、以上都不是 3. 下面几项,能够被列入技术技能范畴的是( )。 A.生产技能 B.财务技能 C.营销技能 D.协调技能 E.激励技能 4. 下列属于在整个组织的管理活动中,领导者发挥的主要作用的有( )。 A.协调作用 B.指挥作用 C.打击作用 D.激励作用 E.宽容作用 5. 根据“双因素理论”,激励因素的缺失将导致员工( )。 A.满意 B.没有满意 C.不满 D.很不满 6. 决策过程中,不能只是着眼于需要,而不考虑可能性,这一观点体现 装 订 线

了决策的()。 A. 可行性的原则 B. 系统性的原则 C.对比择优原则 D. 风险性 D、下属部门工作非管理特征明显; E、以上皆是 7.行为科学最基本的理论核心是()。 A.动机激励理论 B.组织与冲突理论 C.企业管理中的“人性”理论 D.领导方式的理论 8.培训和发展项目是否有效的检验标准是( )。 A、培训是否影响生产工期; B、培训者是否实现了教学目标; C、被培训者的工作绩效在培训后是否得到了提高; D、被培训者实际工作能力提升; E、被培训者是否乐于参加培训 9.中层管理者比基层管理者更多地依靠() A.正式权力与沟通技巧 B.个人权力与技术技能 C.人际关系技能与技 术技能D.沟通技能与人际关系技能E.规划能力 10.20世纪80年代以来产生了许多组织变革举措。下列属于这些举措的 有()。 A.组织文化多样化 B.组织结构扁平化 C.组织运行柔性化 D.组织协作团队化 E.大企业内部的“小企业化经营” 11.为了强调决策是管理的核心和决策贯穿于管理活动的全过程,由此而 提出的 论断是____ 。

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 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、白盒测试技术(逻辑覆盖、基本路经测试)

管理学原理知识点总结共12页

管理学原理》考试知识点 第一章管理与管理学管理的任务是:设计和维持一种环境,使用权在这一环境中工作的人们能够用尽可能少的支出,实现既定的目标。 管理的职能:计划、组织、人员配备、领导、控制等五项;管理层次为:上中下三层。管理学的内容: 1)根据管理活动总是在一定社会生产方式下进行的,其研究内容可以分为三个方面:生产力、生产关系、上层建筑。2)从历史的角度研究管理实践,管理思想及管理理论的形成与演变过程 3)从管理者的基本职能或工作出发来系统研究管理活动的原理、规律和方法。管理及其性质 概念:管理是管理者为有效地达到组织目标,对组织资源和组织活动有意识、有组织、不断地进行的协调活动 性质:1、管理的二重性,它具有自然属性和社会属性2、管理的科学性,管理的科学性是指管理伙为一个活动过程,期间存在着一系列基本的客观规律3、管理的艺术性,管理的艺术性就是强调管理的实践性,没有管理实践则无所谓管理艺术。 管理理论的形成与发展管理学形成与发展大致可分为: 1)古典管理理论阶段:泰罗科学管理理论;法约尔的过程管理理论。马克斯?韦伯的理想行政组织体系 2)人际关系学说和行为科学理论:30-50 年代;梅奥霍桑试验 3)管理理论丛林 管理过程学派;社会合作学派(巴纳德);经验或案例学派;人际关系行为学派(马斯洛);群体行为学派(梅奥,克里斯);社会技术系统学派(塔维斯托克研究所);决策理论学派(西蒙);沟通中心学派(纽曼);数学或管理科学学派;权变理论学派(卢桑斯) 4)学习型组织理论:卓越绩效模式、六西格玛、BPR标杆超越法 法约尔的过程管理理论的十四原则 分工;职权与职责;纪律;统一指挥;统一领导;个人利益服从整体利益;个人报酬;集中化;等级链;秩序;公正;作用期稳定;首创精神;集体精神。 霍桑试验内容包括:工场照明试验;继电器装配室试验;大规模的访问与普查;电话线圈装配工试验;霍桑试验的结论: 职工是社会人;企业中存在着非正式组织;新型的领导能力在于提高职工的满足度;存在着霍桑效应。管理过程学派的基本观点是: 1)管理是一个过程; 2)管理过程的职能有五个:计划、组织、人员配备、指挥和控制; 3)管理职能具有普遍性; 4)管理应具有灵活性。 第二章计划计划工作的具体含义(5W1H): 预先决定做什么What,讨论为什么Why要做,确定何时When做、何地Where做、何人Who做,以及如何How做. 计划工作的基本特征: 目的性;主导性;普遍性;经济性。 计划工作的意义: 1)弥补不肯定性和变化带来的问题; 2)有利于管理人员把注意力集中于目标; 3)有利于更经济地进行管理; 4)有利于控制。 综上所述,计划工作是一个指导性、科学性、预见性很强的管理活动,但同时又是一项复杂而又困难的工作。 计划的种类

最新管理学原理复习资料资料

对外经济贸易大学远程教育学院 2011-2012学年第一学期 《管理学原理》复习大纲 一、单选题 1.传统上来讲,管理跨度为——合适?() A. 3 B. 5 C. 15 D. 7 E. 20 2.战略决定了——做,而组织决定了——做。() A. 如何,什么 B. 如何,为什么 C. 什么,如何 D. 什么,为什么 E. 何时,什么 3.——是管理人员进行决策的正式和法定权利() A. 授权 B. 责任 C. 职权 D. 管理跨度 E. 领导 4.以下哪个选项是代表了识别和解决问题的过程?() A. 组织 B. 控制 C. 决策 D. 计划 E. 领导 5.——决策模型适用于——环境?() A. 行政模型;程序化决策 B. 古典模型,非程序决策 C. 古典模型,程序化决策 D. 古典模型,模糊决策 E. 行政模型,结构良好的决策。 6.战略决策经常是哪种决策的很好的例子?()

A. 非程序化 B. 程序化 C. 不重要的 D. 重复发生的 E. 结构良好的 7.程序化决策是针对哪一类组织问题进行的?() A. 不寻常的 B. 反复发生的 C. 重要的 D. 不重要的 E. 偶尔发生的 8.非程序化决策的例子包括:() A. 对供应商下订单 B. 开发一种新的产品 C. 对于生产用机器进行定期的维护 D. 寻找人员填补职位空缺 E. 按照规定开除一名违反公司纪律的员工。 9.某公司正在遵循成本领先战略,以下哪个方面的职能层战略内容与他们的业务层战略相关?() A. 庞大的广告支出 B. 标准化的产品 C. 大规模的的营销 D. 对于人力资源的扩张需求 E. 用高薪雇用名人做代言人 10.以下哪种战略更加倾向于将组织视为整体?() A. 业务层战略 B. 职能层战略 C. 公司层战略 D. 运作层战略 E. 竞争层次战略 11.职能层战略会涉及到以下问题:() A. 我们目前在哪些业务中呢? B. 我们如何竞争? C. 我们如何支持我们选定的战略 D. 我们需要买入什么样的业务 E. 到哪里去销售我们的产品? 12.为了达到组织目标,采用一系列决策和行动制定战略和实施战略,以在组织和环境之间获得竞争力,这一活动被称为:()

软件工程知识点汇总

软件工程知识点汇总 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.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

管理学原理复习总结

管理学原理复习总结 当今世界的管理 管理与组织的定义: 管理:是指通过与其他人的共同努力,既有效率又有效果地把工作做好的过程。P8 组织:是为了达到某些特定的目标而将一定的人员有系统地安排在一起的实体。P6 管理的职能和属性: 职能:计划:定义目标,制定战略,构建层级计划并协调活动。P10 组织:决定需要做什么工作,怎么做,谁去做。领导:指导并激励相关人员并解决冲突。控制:监督活动,确保能够按计划实施。 属性:自然属性:不以人的意志为转移,不因社会制度、意识形态的不同而不同(PPT) 社会属性:从来都是为生产资料占有者服务的,从国家管理到企业管理再到自我 管理,无不是社会生产关系的反映。 什么是管理者,类型和角色。 管理者:指的是在一个组织中有权利和责任直接督导他人工作的那类群体。管理者通常可以分为高层、中层和基层三个层级。P7 角色类型:人际角色:挂名者,领导人,联络人。P11 信息转换角色:讯息收集人,讯息传达人,发言人。 决策角色:企业家,危机处理者,资源分配者,谈判者。 管理者所需具备的一般技能:P13~P14 理念技能:也称“概念技能”,是指分析和判断复杂形势的心智能力。 人际关系技能:是指管理者了解、指导、激励与之相关的个体和团队工作的能力。技术性技能:是指管理者应用专业性知识或经验的能力。 政治技能:是指提高个体在组织中的职位,建立权力基础并维系社会关系方面的能力。计划与战略规划

人们常说“计划永远赶不上变化”,美国的一位管理学者也曾说过“长期计划根本就是无效的”,就此请你说说自己的看法。 优势:计划能够提供指导、减少变化的影响、减少浪费、为便于控制而提供了标准。P24(计划可以预测结果。计划可以了解轻重缓急。计划可以让各项资源配置效率最高。)---PPT 弱势:计划工作会导致僵化、计划难以在一个动态环境中得到发展、正式计划不能代替直觉和创造性、计划使管理者关注今天的竞争,而不是明天的存亡。P25 比较“正式计划”与“非正式计划”;战略计划与战术计划的异同之处。正式计划与非正式计划:P24 异:非正式计划很少形成书面形式。要做什么样的事情常常装在个人或少数人的脑子里。而且,组织的目标很少以文字的形式记录下来。这种计划一般出现在小型组织中。。这种计划工作往往是一般性的并且缺乏连续性。 正式计划,即把具体目标以文字的形式记录下来让组织成员贯彻实行。这也就意味着管理者非常明确自己究竟想通过一种什么样的途径来达到组织的目标。同:都主要关注:目的(做什么)以及手段(怎么做)。P24 战略计划与战术计划:P27 异: 战略计划是指那种应用于整个组织,为组织设定总目标,并且依据环境对组织进行定位的计划。 战术计划有时也称作业计划,就是将组织要达到的总体目标进行专门细化 战术计划一般是短期的; 战略计划跨越的时间间隔较长,通常为五年或更长。它所覆盖的领域范围更广,涉及的细节也更少。最后,战略计划还包括目标的正式化,而战术计划则假设目标已经存在,进而描述怎样才能达成目标。 在什么情况下“短期计划”更为适用?在什么情况下“专项计划”更为适用? 短期计划:组织的当前计划对未来的承诺影响较小,管理层使用的时间期限较短。那也就是说,所制定的计划应该有足够的时间保证今天所作出的承诺能够执行。在变化的程度方面,不确定性越大,针对短期变化的计划就越多。也就是说,如果发生突然的或重要的技术、社会、经济、法律及其他方面的变化,那些精心设计、精确规划的路径可能不是帮助而是妨碍了组织绩效的改进。时期较短的计划往往有更大的灵活性。P27 专项计划:有着清晰明确的目标,既没有模棱两可的东西,也不会产生令人误解的问题,

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

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

软件工程基础知识点总结

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

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

管理学知识点整理

管理学原理知识点整理 第一章管理与管理学 一、管理的概念与性质 1.管理的定义 (1)世界著名管理学家对管理下的定义: 科学管理之父泰罗对管理下的定义:确切知道你要别人去干什么,并使他用最好的方法去干。 诺贝尔经济学奖获得者赫伯特·西蒙对管理学下的定义:管理即制定决策。“现代经营管理之父”亨利·法约尔认为:管理是所有的人类组织都有的一种活动,这种活动由5项要素构成:计划、组织、指挥、协调和控制。 ! 现代管理大师哈罗德·孔茨对管理下的定义:管理是设计并保持一种良好的环境,使人在群体里高效地完成既定目标的过程,他认为管理包括计划、组织、人事、领导和控制5个职能,管理的目标就是创造盈余 斯蒂芬.P.罗宾斯认为,管理就是同别人一起或通过别人使活动完成得更加有效的过程,这个过程包括计划、组织、领导和控制4个职能。 综合以上各种管理的定义,可给出如下定义: 管理是在特定的环境下,运用和整合组织资源,通过计划、组织、领导、控制等来协调组织中的群体行为,达成组织既定目标和责任的动态创造性活动。 2.管理的二重性 管理的自然属性是与生产力的发展相联系的,它反映了社会化大生产要求生产过程中的各个方面能协调一致,有序进行,以提高生产的效率的客观要求。 管理的社会属性是与生产关系、社会制度相联系的,它要代表一定社会制度中的一定阶级的意志,反映一定阶级的利益要求。因此从管理学的社会属性来看,社会主义的管理和资本主义的管理存在着本质的区别。 ! 3.管理的科学性和艺术性 管理的科学性是管理作为一个活动过程,人们通过一个多世纪的不断研究和探索,已经抽象总结出了一套比较完整的、反映管理过程中客观规律的知识体系。人们一方面利用这些理论和方法来指导自身的管理实践,解决新的管理问题,另一方面又以管理活动的结果来衡量管理过程中所使用的理论和方法是否正确,是否行之有效,从而使管理的科学理论和方法在实践中得到不断的验证、丰富和发展。因此,管理是一门科学,是有规律可循的。 管理不是一门不精确的科学,而且还是一门正在发展的科学。管理科学没有,也不可能为管理者提供解决一切问题的标准答案,他只是探索管理的一般规律,指导人们按照客观规律的要求,从实际出发,创造性地进行管理工作。从这个意义上讲,管理又是一门艺术,即利用系统化的知识——科学,并根据实际情况发挥创造性的艺术。 二、管理的要素、职能、任务和作用 1.管理的要素:

软件工程知识点总结

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

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

天津财经大学 管理学原理题库

管理学原理知识点总结 一、选择 1、管理者的角色(或者简答) 人际关系方面的角色:挂名首脑、领导者、联络者 信息传递方面的角色:监听者、传播者、发言人 决策制定方面的角色:企业家、调解人、资源分配者、谈判者 2、基层管理者侧重短期的作业计划。 3、在这样的背景下,19世纪末20世纪初,美国出现了持续四五十年的社会性管理研究潮流,这一时期被人们称为“管理运动”。 4、法约尔的一般管理理论是西方古典管理理论的重要代表,后来成为管理过程学派的理论基础。 5、韦伯认为等级、权利和科层制度是一切社会组织的基础。对于权力,他认为有三种类型:超凡权力、传统权力和法定权力。法定权力是法律规定的权力,只有它才能作为科层组织体系的基础。 6、韦伯被后人称为“组织理论之父”。 7、以泰勒、法约尔、韦伯等人的理论为代表的古典管理理论广泛传播和实际应用,大大提高了效率。 8、古典管理理论学派的理论前提是“经济人”假设。 9、经验主义学派主张通过分析大企业的管理经验来研究管理问题。 10、系统管理学派将企业作为一个有机整体,以系统的观点分析企业内部和企业同周围环境的关系。 11、权变理论学派认为,在管理中要根据企业所处的内外部条件随机

而变,没有什么一成不变、普遍适用的“最好的”管理理论和方法。 12、企业文化包括精神文化、制度文化和物质文化三个层次,其中精神文化是核心。 13、管理的14条基本原则:劳动分工、权力与责任、纪律、统一指挥、统一领导、个人利益服从整体利益、人员报酬、集中、等级链、秩序、公平,人员稳定、首创精神、团队精神 14、根据环境不确定性的程度,把环境分为动态环境和稳定环境 15、根据环境内容的性质,把环境分为政治法律环境、经济环境、社会文化环境、科学技术环境和自然环境 16、管理的特殊环境主要包括顾客、供应商、竞争者、管理机构和战略联盟伙伴 17、滚动式计划发:分段编制,近细远粗 18、组织目标是环境因素、组织系统本身以及组织成员需要三方力量相互协调的产物 19、定向预测方法:是专家调查法,包括专家会议法和德尔菲法。 20、按照决策的重复程度可分为程序化决策和非程序化决策。 21、预测种类包含:经济预测、技术预测、社会和政治预测。其中经济预测包括宏观经济预测和微观经济预测。 22、宏观经济预测内容:最终产品的社会需要量、非生产性的社会需求、再生产的社会条件、财政税收信贷储蓄等的变动、国民生产总值、国民收入、社会总需求、劳动力的需求与供给等。 23、宏观经济预测的用途:为制定国民经济规划,经济计划和经济政

软件工程复习知识点

软件工程复习知识点 1. 软件危机的概念,内容,原因及消除的途径; 软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机产生的原因: 软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。 消除软件危机的途径: (1)对计算机软件应当有一个正确的认识;(2)应当有组织、有计划、通过严格的管理手段进行软件的开发;

(3)及时总结软件开发的成功技术和方法并加以推广; (4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。 2. 软件工程的定义,基本原理; 定义:软件工程是指导计算机软件开发和维护的一门工程学科

基本原理:软件工程的7条基本原理: (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性 3. 软件工程方法学的基本概念、内容; 基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。 内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。 4. 软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子 来理解做软件项目主要分那几个个阶段。 ①问题定义:确定要求解决的问题是什么 ②可行性研究:决定该问题是否存在一个可行

管理学原理知识点汇总

管理学知识点汇总 第一章管理概述 管理的概念:是指在一定条件下,组织中的管理者通过计划、组织、领导、控制等职能,协调各类资源,以实现共同目标的过程。管理的主体是管理者;载体是组织;手段是计划、组织、领导、控制;本质是协调;对象是人,财,物,信息等各类资源;目的是实现共同目标。 管理的核心:决策管理的基本职能(四个):计划、组织、领导、控制 管理者的技能:①技术性技能②人际关系技能③概念性技能(构想技能) 管理的性质:①管理的二重性,即自然属性和社会属性。(马克思主义的基本观点)②管理的科学性和艺术性。3普遍性 管理者分类:按层次分:高层中层基层(中层管理者比基层管理者更多地依靠正式权力与沟通技巧)按内容分:战略战术执行 按综合程度分:综合专业 管理者素质:①良好的思想品德素质②知识能力素质③身体素质 亨利.明茨伯格[加]—角色 人际关系角色:代表人(挂名首脑)领导者联络者 信息传递角色:监听者传播者发言人 决策制定角色:企业家谈判者混乱驾驭者资源分配者 科学管理理论:泰勒吉尔布雷斯夫妇甘特 泰罗(勒)[美],1911年《科学管理原理》—科学管理之父 科学管理原理内容:1工作定额原理2为工作挑选“第一流的工人”3标准化原理4有差别的计件工资制5劳资双方的密切合作6职能工长制7把计划职能同执行职能分开8例外原则 科学管理理论着重研究如何提高单个工人的生产率。 组织管理理论亨利.法约尔马克斯.韦伯切斯特.巴纳德 亨利.法约尔[法],1916年《工业管理与一般管理》—组织管理理论之父【第一个概括和阐述一般管理理论的管理学家】 一、区别经营和管理:六大活动:商业,安全,技术,财务,会计,管理 二、管理的职能:五大职能:计划,组织,指挥,协调,控制 三、管理的十四项原则:14条基本原则:分工,权利与责任,纪律,统一指挥,统一领导,个人利益服从集体利益,报酬合理,等级制度与跳板,适当的集权与分权,秩序,公平,人员稳定,首创精神,人员的团结 四、管理教育的重要性。管理是一种独立的适用于所有类型事业的活动;随着管理层级的不断上升,管理能力越重要;管理是能够传授的。 五、管理的普遍性。 马克思.韦伯[德],《社会组织和经济组织》—行政管理理论【组织理论之父】 韦伯理想的行政组织体系的主要特点如下: 权威来源:①合理合法式权威②传统式权威③个人崇拜式权威 行为科学理论(20世纪20年代) 梅奥[美]—霍桑实验 1车间照明实验 2继电器装配试验(福利试验)-工作环境和物质条件间接影响着劳动生产率的提高 3大规模访谈计划-社会归属和人际关系 4接线板绕线组的工作室试验-正式组织中存在着非正式组织 霍桑实验结论①工人是社会人,而不是经济人*企业中存在着非正式组织*新的领导能力在于提高工人的满意度 正式组织以效率逻辑为主要标准,非正式组织以感情逻辑为主要标准 行为科学的主要研究内容:个体行为研究#动机与激励理论#群体行为研究#组织行为

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