搜档网
当前位置:搜档网 › 软件工程-原理、方法与应用【第三版】重点

软件工程-原理、方法与应用【第三版】重点

软件工程-原理、方法与应用【第三版】重点
软件工程-原理、方法与应用【第三版】重点

第一章绪论

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

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

2.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。

3.软件工程方法学:把在软件生命周期全过程中使用的一整套技术方法的集合。三要素:方法、工具、过程

4.软件工程学的范畴:

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

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

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

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

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

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

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

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

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

12.软件工程的分化:1、传统软件工程2、面向对象软件工程3、基于构件的软件工程

13.消除软件危机的途径:①正确认识计算机软件;②充分认识到软件开发是一种组织良好、管理严密、各类人员协

同工作的工程项目;推广使用在实践中总结出来的开发软件的成功的技术和方法;③开发和使用更好的软件工具。第二章软件生存周期与软件过程

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

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

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

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

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

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

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

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

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

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

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

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

计划、软件分发计划。

第三章结构化分析与设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4、改进初始的SC图。

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

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

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

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

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

控制域规则。

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

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

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

第四章面向对象和UML

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

2.面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性、面向对象符合人类习惯的思维方式。

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

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

5.UML的2类图:

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

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

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

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

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

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

8.UML中用例图由系统边界、用例、参与者、关联组成。用例之间存在的关系:扩展关系、包含关系。

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

9.根据类/对象之间的具体情况,可分为普通关联,递归关联、多重关联、有序关联、限制关联、或关联、关联类

10.消息(类里面的方法加参数):简单消息、同步消息、异步消息。状态图有:初态、终态、中间态。

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

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

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

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

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

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

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

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

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

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

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

5.需求获取的方法:1、建立联合分析小组2、用户访谈。

6.获得用例的方法通过问问题:1、系统用户是谁?系统维护时谁?从哪获得信息?给谁?

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

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

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

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

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

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

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

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

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

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

第六章面向对象分析

1.建立面向对象分析模型步骤:1、建立类/对象层(抽象出类和对象)、2、建立属性层(设计静态属性和关系)、3、

建立服务层(定义动态属性和消息通信)、4、建立结构层(定义层次结构关系)、5、建立主题层

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

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

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

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

6.每个参与者与用例之间确定一个边界类,每个用例设置一个控制类,而实体类为现实生活中的对象,类(属性与

方法)或用于保存和更新信息的有关对象。

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

8.控制类分离边界类和实体类,可用来建立系统的动态行为模型。实体类用于保存和更新一些对象的有关信息。

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

10.对象-关系模型的内容:分析类的属性、分析类的关联、分析类图、分析类的合并。(用类图来表示)

11.对象行为模型用状态转换图、时序图、协作图、活动图来表示。

12.面向对象分析时:1、确定分析类,2、静态模型建立画类图,3、动态模型建立画时序图和协作图。

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

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

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

第七章面向对象设计

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

软件复用。

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

3.软件设计的任务:把分析阶段产生的分析模型转换为软件设计模型。

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

5.面向对象设计准则:模块化;抽象;信息隐藏;弱耦合;强内聚;可重用

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

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

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

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

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

强耦合(内容耦合)。

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

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

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

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

13.传统的软件设计任务包括:概要设计和详细设计

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

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

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

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

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

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

18.面向并行需求,任务管理策略主要3种解决方案:多处理机方案、操作系统方案、应用程序方案。

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

20.a向b发送消息的必要条件是a能够引用b,a可以通过4种方式引用b,对应于从a到b的4种连接可见度:

1、全局:b是可以在全局范围内直接引用的对象。

2、参数:b作为a的某一项操作的参数或返回值。

3、局部:b在a的某一操作中充当临时变量。

4、域:b作为a的数据成员。

21.操作的可见性:公有:除了累本身以外,操作对其他模型元素也是可见的;也可以用“+”表示;

保护:操作只对类本身、它的子类也是可见的;也可以用“#”表示。

私有:操作只对类本身是可见的,也可以用“—”表示。

第八章编码和测试

1.编码的风格:1、追求“聪明”和“技巧”---〉提倡“简明”和“直接” 2、使用标准的控制结构3、清晰的前提下求取效率

2.编码的目的:设计模型(不可执行的)---->(编码)源程序-- 可执行代码

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

4.测试和纠错:

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

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

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

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

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

7.黑盒测试分类(根据被测试程序功能来进行测试):等价类法、边界值法、错误猜测法。

8.白盒测试分类(以程序结构为依据的测试方法):路经测试(点覆盖、边覆盖、路径覆盖)、逻辑覆盖测试(语句

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

第九章软件维护

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

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

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

4.软件配置项包括:程序(源代码和可执行程序),文档,数据

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

6.维护的代价

i.有形代价:

ii.无形代价:

占用资源以致延误开发;修改不及时引起用户不满;维护引入新错误,降低了软件质量;等等。

维护工作量的经验模型:M = P + Ke^(c-d)

其中:M = 维护用的总工作量;P = 生产性活动(如. 分析,评价,修改设计, 编码, 测试等); K = 经验系数;

c = 复杂度(非结构化设计和缺少文档会增加复杂度)

d = 维护人员对软件的熟悉程度.

第十章软件复用

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:多模块程序的测试有哪些层次?各层测试主要解决什么问题?

解答:

软件测试

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

表有效等价类的测试用例

表无效等价类的测试用例

阅读下列程序:

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

第七部分:实现路径覆盖用例设计——覆盖每一个可能的路径。

1、什么是软件危机?为什么会产生软件危机?

答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题,如软件费用、软件可靠性、软件维护、软件生产、软件重用等。(1).软件维护费用急剧上升,直接威胁计算机应用的扩大。(2).软件生产技术进步缓慢 2、何谓面向对象软件工程?简述它与传统软件工程的差别和联系?

传统方法学:采用结构化技术;软件生命周期的全过程依次划分为若干阶段;自顶向下顺序完成; 优点:便于分工协作,每个阶段采用科学的管理技术和良好的技术方法,提高软件开发的成功率; 缺点:只能面向行为或者数据。

面向对象方法学:是一种以数据为主线,把数据和对数据的操作结合起来的方法。把对象作为融合数据及数据上的操作 的统一的软件构件;划分类;按照继承关系;通过发送消息互相联系;

优点:①降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作;②提高了软件的可重用性。 缺点:只能面向对象和行为。

第二章

1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?

答:软件生存周期是指一个软件从提出需求开始直到该软件报废为止的整个时期。需求分析、软件分析、软件设计、编码、软件测试、运行维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。

2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?

答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。

3.什么是快速原型法?其快速表现在哪里?

答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型改进,最终建立完全符合用户要求的新系统。它的快速表现在能够缩短开发周期的语言和工具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。

6.比较增量模型和螺旋模型的特点,有什么不同和相似的地方?

答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。增量模型每个增量具有高内聚低耦合,高度的独立性。而螺旋模型它在结合瀑布模型与快速原型的基础上还增加了风险分析。

8.哪些开发模型适用于面向对象的软件开发?

答:构件集成模型、转换模型、净室模型。

第三章问题

1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?

答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。

2.需求分析要经过哪些步骤?

答:需求获取、需求提炼、需求描述、需求验证。

3.有哪两种主要的分析模型,它们有什么联系?

答:面向对象分析模型、结构化分析模型。前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。

5.什么是面向对象分析?其主要思想是什么?

答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要思想是采用面向对象的思想。

7. 为什么DFD要分层?画分层DFD要遵循哪些原则?

答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。原则:由顶向下,逐步细化。

第四章问题

1、面向对象有哪些基本特征?

封装,继承,抽象,多态

2、uml中提供了哪9种图?试诉每种图所描述的内容

1、用例图

??? 描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。

2、类图

??? 类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。

3、对象图

??? 与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。

4、活动图

??? 描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。

5、状态图

??? 描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。

6、序列图(顺序图)

??? 序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。

7、协作图

??? 和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。

8、构件图(组件图)

??? 描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。

9、部署图(配置图)

??? 是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。

3、用uml所提供的图形符号建立工资管理系统的静态模型

第五章问题

1、软件需求的任务是什么?要经过哪些步骤?

2、有哪两种主要的需求模型?它们各由哪些部分组成?

1.结构化需求模型

该模型主要由3部分组成:即包括数据流图和加工规格说明书的功能模型;主要由数据字典和E-R图组成的数据模型;由状态转换图,控制图和控制规格说明书等组成的行为模型。

2.面向对象需求模型

由三部分组成:用例模型,补充规约和术语表。其中用例模型包括用例图跟用例规约。

3、建立用例模型时,如何确定参与者和用例?

参与者泛指所有存在于系统外部并与系统进行交互的人,硬件或其他系统。通俗地讲,参与者主要是待开发系统的使用者,寻找参与者可从以下问题入手:

a.系统开发完成后,有那些人会使用这个系统?

b.系统需要从那些人或其他系统中获取数据?

c.系统会为纳西尔或者其他系统提供数据?

d.系统会与哪些其他系统相关联?

e.系统是由谁来维护和管理?

第六章问题

1、软件分析的目标是什么?包含哪些任务?

2、软件模型包含哪些内容?它们之间有什么联系?

3、用哪种uml图可以表示对象间的交互?

第七章问题

1、面向对象设计的任务是什么?

设计阶段的主要任务是数据设计,体系结构设计,接口设计和过程设计

2、什么是模块独立性?可用什么来度量?

答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。

3、系统架构设计包括哪些内容?

系统高层结构设计,确定设计元素,确定任务管理策略,实现分布式机制,设计数据存储方案,人机界面设计

信息隐藏:把系统分解成模块时应遵守的指导思想。

高内聚,低耦合。内聚:从功能的角度对模块内部聚合能力的量度。耦合:对软件内部块间联系的度量。

第九章问题

1、怎样避免维护的副作用?

要加强对维护的管理尤其是配置管理,有效第对软件的配置尽心跟踪和控制,避免造成文档的混乱。对于微小的修改,也要严格遵守规定的步骤和标准,决不能掉以轻心。

2、什么是软件配置?说明做好维护时期配置的意义与方法?

答:软件配置是一个软件在生存周期内,它的各种形式、各种版本的文档与程序的总称。

对软件配置进行科学的管理,是保证软件质量的重要手段。配置管理贯穿于整个生存周期,在运行和维护时期,其任务尤为繁重。

为了方便对多种产品和多种版本进行跟踪和控制,常常借助于自动的配置管理工具:配置管理数据库工具和版本控制库工具

3、计算软件价格时,应不应该把维护费用计入成本,为什么?

4、什么是软件再工程?软件再工程的主要活动有哪些?

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

主要活动有6类:

第十章问题

1.什么是软件复用?为什么要复用软件

答:在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。

2、当前流行的构件技术有哪几种?

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

其他问题

2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。

答:模块是一个拥有明确定义的、输出和特性的程序实体。

模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

6. 需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?

答:引言、信息描述、功能描述、行为描述、质量描述、接口描述、其他描述。

引言:主要叙述在文体定义阶段确定的关于软件的目标与范围,简要介绍系统背景、盖帽、软件项目约束和按考资料等。

信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。

功能描述:对软件功能要求的说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等。

行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件内部的控制特征。

质量描述:阐明在软件交付使用前需要进行的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。

其他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。

一、面向对象方法主要应用的概念(准则)

i.模块化

ii.对象(Object)

iii.类(Class)

iv.继承(Inheritance)

v.消息(Message)

vi.封装(Encapsulation)

vii.对象结构和类结构

viii.多态性(Polymorphism)

a)Booch的方法

b)Jacobson的面向对象软件工程(OOSE)

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

软件工程导论简答题大全

1.软件工程的七条基本原理是什么? 答:软件工程的七条基本原理是: 用分阶段的是的生存周期计划严格管理; 坚持进行阶段评审; 严格实施的产品控制; 采用现代程序技术; 结果应能清楚地审查; 开发小组的成员应该少而精; 承认不断改进软件工程的必要性。 2.良好的编码风格应具备哪些条件? 答:应具备以下条件: (1)使用标准的控制结构; (2)有限制地使用GOTO语句; (3)源程序的文档化(应具备以下内容) ①有意义的变量名称——“匈牙利命名规则”。 ②适当的注释——“注释规范”。 ③标准的书写格式: ——用分层缩进的写法显示嵌套结构的层次(锯齿形风格); ——在注释段的周围加上边框; ——在注释段与程序段、以及不同程序段之间插入空行; ——每行只写一条语句; ——书写表达式时,适当使用空格或圆括号等作隔离符。 (4)满足运行工程学的输入输出风格。 3.简述文档在软件工程中的作用。 答: (1) 提高软件开发过程的能见度 (2) 提高开发效率 (3) 作为开发人员阶段工作成果和结束标志 (4) 记录开发过程的有关信息便于使用与维护; (5) 提供软件运行、维护和培训有关资料; (6) 便于用户了解软件功能、性能。 4.可行性研究包括哪几方面的内容? 答: (1)经济可行性:是否有经济效益,多长时间可以收回成本; (2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足; (3)运行可行性:系统操作在用户内部行得通吗? (4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。 5.结构化的需求分析描述工具有哪些? 答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。 6.一般面向对象分析建模的工具(图形)有哪些?

软件工程基本原理教材

软件工程基本原理 软件的生命周期 一个软件产品从构想到不再使用,期间会经历若干阶段,我们称其为软件的生命周期(life cycle)。生命周期中的3个主要阶段是:开发阶段(development),使用阶段(use)和维护阶段(maintenance)。通常情况是:客户提出需要解决的问题,软件开发者就构思并开发相应的软件,并藉此获得酬劳。新的软件是在开发阶段建立的。 软件开发完毕之后就交付用户使用。用户在使用过程中,通常都会发现各种问题(错误)及提出各种修改建议。这些信息都会反馈给开发者,这就进入了维护阶段. 在软件维护阶段中,软件中的错误被修改(标识),功能被增强。如果需要进行较大的修改,通常会开发一个新版本的软件并发布和使用。 当一个软件的维护费用过于昂贵时,开发者就考虑不再使用该软件,也不再发布新的版本。 软件开发阶段是生命周期中的第一个阶段,也是最重要的阶段。如果一个软件开发得好,后续的维护将十分容易,相应的也就节约维护成本。

软件开发阶段 软件工程师通常将软件的开发阶段分为下面4个子阶段: ●分析阶段 ●设计阶段 ●实现阶段 ●测试和调试阶段 分析阶段 分析问题是第一步也是最为重要的一部。在这一步中。您需要做以下事情: ●全面理解所要解决的问题 ●进行需求分析(requirement analysis):理解问题需求,包括程序是否需要和用户进行交互,是否操纵数据,是否有输出结果以及输出结果的格式等等。举一个列子,如果您需要编写一个自动取款机(ATM)的程序。在分析阶段,您要给出该ATM机可以进行的操作,如:取款,存款,转账及余额查询等等。您会和使用该ATM机的客户进行讨论,理解他们的需求,增加必要的操作,以便是您的程序是用户友好的。 ●如果程序需要对数据进行操作,开发人员必须了解数据类型及它们的表示方法。这时候可能会接触一些样本数据。如果程序有输出信息,必须确定它们所生成的结果及输出格式等。

第八章 细胞工程基本原理

第八章细胞工程基本原理 8-1 什么是细胞工程? 答:所谓细胞工程是指应用现代细胞生物学、发育生物学、遗传学和分子生物学的理论与方法,按照人们的需要和设计,在细胞水平上的遗传操作,重组细胞的结构和内含物,以改变生物的结构和功能,即通过细胞融合、核质移植、染色体或基因移植以及组织和细胞培养等方法,快速繁殖和培养出人们所需要的新物种的生物工程技术。 8-2 动物细胞的主要生理特点是什么? 答:细胞的主要生理特点表现在如下几个方面。 1. 分裂周期长——动物细胞的分裂周期相对长,一般完成一个细胞分裂周期需12-24h。 2.需贴附于基质生长,并有接触抑制现象——大多数二倍体细胞的生长都需要在一定的基质上贴附,伸展后才能生长繁殖;当细胞在基质上进行分裂增殖并逐步汇成片时(细胞与周围细胞接触),细胞就停止增殖——接触抑制现象。 3.生长寿命有限——正常二倍体细胞传代培养都是有限的,大约在50代左右,然后细胞就会逐步死亡。 4.对环境敏感——由于动物细胞没有细胞壁的保护,使得周围环境物理、化学因素的变化均会影响到动物细胞的生长。 5.对培养基要求高——动物细胞的培养不仅需要 12种必须的氨基酸、8种以上的维生素、多种无机盐、微量元素和葡萄糖外,还需要多种细胞生长因子和贴壁因子。 6.蛋白质的合成途径和修饰途径功能与细菌不同——动物细胞蛋白质的合成在游离的核糖体和粗面型内质网上都可以进行。内质网上合成的蛋白质多为糖蛋白,需要糖基化;而细菌细胞则没有糖基化过程。 8-3 植物细胞的主要培养特性是什么? 答:植物细胞的培养特性主要表现在如下几个方面。 1.个体较大——植物细胞个体一般较微生物大,其直径通常约在10-200微米之间(微生物的体形一般只有几个微米),有纤维素细胞壁。 —76—

软件、软件工程的基本概念和特点

2017-2018 学年第一学期第四次作业 专业:计算机科学与技术班级:17级3班学号:1701110140姓名:任亚磊 作业内容: 简述软件、软件工程的基本概念和特点 软件: 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发,维护和使用有关的图文资料。 软件的特点: 1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性 2.软件的生产和硬件不同,在它的开发过程中没有明显的制造过程、没有磨损 3.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 4.软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同的依懒性 5.软件的开发至今尚未完成摆脱手工艺的开发方式,没有实现自动化 6.软件本身是复杂的、实际问题的复杂性、程序逻辑结构的复杂性 7.软件的成本相当昂贵。 8.相当多的软件工作涉及社会因素。 软件的分类: 1.系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序 2.应用软件:商业数据处理软件、工程和科学计算软件、系统仿真软件 软件的其他角度分类: a.按规模划分:微型软件、小型、中型、大型、甚大型、极大型 b.按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件

c.按软件服务对象的范围划分:项目软件、产品软件 软件生产的发展: 1 程序设计时代:这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年) 2 程序系统时代:这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年) 3 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式面向对象技术来开发软件。(1968年至今) 软件工程: 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。主要包括三个方面的内容:软件开发方法,软件过程和软件工具。 软件工程的原则: 1.抽象2.信息隐蔽3.模块化4.局部化5.确定性6.一致性7.完备性8.可验证性。

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

第一章绪论 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.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。 快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。特点:快速开发工具、循环、低成本。种类:渐进型、抛弃型。

细胞工程原理

细胞工程原理 一、名词解释 1、生物工程:是以生命科学为基础,利用生物体系和工程原理生产生物制品和创造新物种的一门综合技术。 2、细胞工程:是指应用细胞生物学和分子生物学的方法,通过类似工程学的步骤,在细胞整体水平或细胞器水平上,有目的地利用或改造生物遗传性状,以获得特定的细胞、组织产品或新型物种的一门综合性科学技术。 3、细胞全能性:是指分化细胞保留着全部的核基因组,具有生物个体生长、发育所需要的全部遗传信息,具有发育成完整个体的潜能。 4、细胞多能性:有些细胞能分化出多种组织的潜能,却失去了发育成完整个体的潜能。 5、植物组织培养:是指在无菌的条件下,将离体的植物器官、组织、细胞、胚胎、原生质体等培养在人工配制的培养基上,给予适当的培养条件,诱发产生愈伤、潜伏等,或者生长成新的完整植株的一种实验技术。 6、愈伤组织:脱分化后的细胞经过细胞分裂产生无组织结构、无明显极性的松散的细胞团,称之为愈伤组织。 7、继代培养:是愈伤组织在培养基上生长一段时间后,由于培养基枯竭、水分散失、并已积累了一些代谢产物,此时将组织继续转入新的培养基上培养。 8、胚状体:在培养过程中由外植体或愈伤组织产生的与正常受精卵发育的方式或类似的胚胎结构现象。 9、脱分化:已分化的细胞在一定因素作用下重新恢复分裂机能并改变原来的发展方向而沿着一条新的途径发育的过程。 10、再分化:脱分化的细胞团或组织经重新分化而变为具有未分化细胞特性的过程。 11、人工种子:又称合成种子或体细胞种子,是指将植物离体培养的胚状体或芽包裹在含有养分和保护功能的人工胚乳和人工种皮中的类似种子的颗粒。 12、看护培养:是指用一块活跃生长的愈伤组织来看护单个细胞,使其持续分裂和增殖的一种培养方法。 13、饲养层培养:是把处理过的(如X射线处理)无活性的或分裂很慢的细胞来饲养所需培养的细胞,使其分裂和生长的方法。 14、固定化培养:将游离的细胞包埋在多糖或多聚化合物制备成的网状支持物中,培养液呈流动状态进行无菌培养的一种技术。 15、两相培养技术:是在培养体系中加入有机溶剂或者具有吸附作用的多聚化合物。细胞在水相中生长,合成次级代谢物质,分泌出来后转移至有机相中。16、微细胞:又称为微核体,是指含有一条或n条染色体(即含有部分基因组),外有一薄层细胞质和一个完整质膜的核质体。 17、胚胎干细胞:是从着床前胚胎内细胞团或原始生殖细胞经体外分化抑制培养分离的一种全能性细胞。 18、细胞融合:两个或多个相同或不同细胞通过物理、化学、生物的方法使膜融合形成单个细胞的过程。 二、填空题 1、生物工程的六大组成:发酵工程、酶工程、蛋白质工程、基因工程、生物化学工程、细胞工程。 2、基因工程(DNA重组技术)的一般步骤:(1)目的基因的获得,(2)将目的

软件工程基础知识点总结

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

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

软件工程知识点总结

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

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

软件工程导论课程教学大纲

《软件工程导论》课程教学大纲 一、课程性质、地位和作用 《软件工程导论》是是软件工程专业的专业基础课程,属必修课。 本课程主要讲述建造软件系统的基本方法、技术、流程、工具及规范等。通过学习可以使学生了解软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的基本内容和发展动向;学习用工程化的方法开发软件项目,初步掌握开发过程中应遵循的流程、准则、标准和规范。本门课程为将来从事软件开发学生的软件工程师之路奠定坚实的基础。 二、课程教学对象、目的和要求 本课程适用于软件工程、计算机应用等从事软件开发的本科专业。课程教学目的、要求: (一)从教学内容上,应使学生了解软件工程的基本概念,主要包括软件与软件开发的基本过程,软件危机与软件工程。掌握个人软件开发过程的基本内容和方法,了解软件开发模型及结构化软件设计方法,以及软件质量保证基本内容。(二)从能力方面,应使学生通过对软件工程基本概念和方法的学习和课后练习,培养学生养成规范化个人开发的良好习惯,培养学生按照软件工程的基本过程和方法来设计和开发软件。 (三)从教学方法上,在课堂理论教学中,采用学生可以理解的软件开发素材,通过一边实践一边讲解的方法,讲解软件过程的基本思想和方法,通过学生完成与实践结合的作业,调动学生的积极性,使软件工程的基本思想逐步植根于学生头脑中。 三、相关课程及关系 本课程的先修课程是“C语言程序设计”和“数据结构”等程序设计课程,学习应在学生具有一定的编程能力基础上进行。本课程为后续的“软件制造工程”和“软件设计工程”等课程打下了必要的理论基础。 四、课程内容及学时分配 总学时:32学时 (一)绪论1学时 1、软件工程及其重要性 2、软件开发需要软件工程 3、软件工程课程体系架构(需要什么软件工程) 、课堂的组织、学习方法、章节安排与考核4. 要求学生了解软件工程的起源,软件工程在软件开发中的作用,了解软件工程课程体系。 (二)软件与软件工程4学时 1、软件及软件分类 2、软件工程的由来及概念 3、软件生命周期 4、软件开发与软件开发方法 5、软件工程工具和环境 6、软件开发项目管理介绍

计算机二级考试复习软件工程基础

第3章软件工程基础 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。 详细重点学习知识点: 1.软件的概念、软件生命周期的概念及各阶段所包含的活动 2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具 3.软件测试的目的、软件测试的4个步骤、 4.软件调试的任务 3.1软件工程基本概念 考点1 软件定义与软件特点 考试链接: 考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。

软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。 小提示:应用软件是为解决特定领域的应用而开发的软 件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。 考点2 软件工程过程与软件生命周期 考试链接: 考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图3-1所示。

软件工程-原理、方法及应用(史济民第二版)答案

软——应 课习题 件工程原理、方法与用后答案最完整版 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 (1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。 (2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。 软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。5.什么是软件工程环境?谈谈你对环境重要性的认识。 答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。 (1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。 8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?

软件工程的概念

软件工程的概念 教学目的: 让学生明确软件和程序的区别、软件危机等概念 让学生理解软件开发的基本步骤 理解软件生命周期模型 讲解: 通过本课程,引导学生由程序员向项目经理的过渡 程序设计语言(程序员) 面向对象的分析与设计(高级程序员) 软件工程(项目经理) 提问: 软件与程序的关系 软件包括哪些 1.软件的定义 程序和与程序相关的数据、文档的总称。 举例: Main.exe -- 主程序 Main.ini 或Main.xml -- 配置文件 Main.chm -- 帮助文档 Readme.txt -- 自述文件 /Data -- 程序调用数据的存放目录 /UI -- 主程序界面数据的存放目录 软件的特点 1)逻辑产品 2)复杂性高 3)人工开发 软件危机的概念 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。微观:工期拖后、经费超支、软件交付后存在诸多缺陷 宏观:整个社会对软件的供应赶不上对软件需求的增长 软件危机的表现 1)产品不符合用户的需求 2)软件开发的生产率不能满足客观要求 3)软件产品的质量差 4)对软件开发成本和进度估计不准确 5)软件的可维护性差 6)软件文档资料既不完整也不合格 7)软件的价格昂贵 软件危机的产生原因 没有严格而科学地管理和控制软件开发过程。

软件维护是软件开发中的一部分(占55%-70%)。 开发时期引入的问题,在测试阶段没能检测出来的,对今后的维护带来很大的开销。这些开销也是软件开发的费用。 越早发现问题、解决问题对后期的维护工作越有利,对整个软件工程也就越有利。 越早开始写程序,完成它所需要的时间往往越长。 对用户要求没有完整准确的认识,就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。 软件危机的解决途径 1)纠正错误认识。 错误认识举例: 软件就是一个程序 有一个对目标的概括性描述就可以编写程序了,许多细节可以以后补充 所谓软件开发就是编写程序并使它运行 用户对软件的要求不断变化,然而软件是柔性灵活的,可以被轻易地改动 软件投入生产性运行以后,需要的维护工作量不多,而且维护是一种很简单的工作。 将软件开发活动工程化,借鉴其他领域的经验以指导软件开发。 软件开发不是某种个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合共同完成的工程项目。 2)将传统工程学的原理、技术和方法应用于软件开发上,可以使软件生产规范化,有利于提高开发质量,降低成本和控制进度 3)不断开发新的软件工具,以提高软件生产的效率和质量。 如:各种集成开发环境、代码生成环境、集成测试工具、统一建模语言、数据字典、管理系统、流程图绘制工具、项目管理工具。 作业: 谈谈自己对软件危机的认识 软件工程 软件工程的定义 软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一门学科。 简单地讲,软件工程就是制定并使用完整的工程法规、优秀的管理策略、合适的工具和方法,在已知的适当的资源设备条件下,获得具有明确意义的高质量的软件。更具体地讲,就是用工程科学的观点估算费用,指定进度、计划和方案;用管理科学的方法和原理进行生产管理;用数学的方法建立软件开发中的各种模型和算法。 软件工程的目标 1)降低开发成本 2)软件功能达到要求,软件性能良好 3)开发的软件易于移植 4)降低维护费用 5)能按时完成开发任务,及时交付使用 6)开发的软件可靠性高 软件工程研究的问题 软件工程从软件的开发、运行、维护等方面研究软件生存的全过程,主要的研究内容包括开发技术与开发管理两大方面。

软件工程教学大纲正式版

软件工程教学大纲正式 版 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

《软件工程导论》课程教学大纲一、课程基本信息 课程编号: 英文名称名:Software Engineering 总学时:54学时 学分:3 课程类别:专业必修课 适用专业:全校本(专)计算机科学与技术 先修课程:数据结构,大学数学,离散数学,计算机算法设计。 二、课程性质与目的、要求 《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。《软件工程》已成为高等学校计算机软件教学体系中的一门核心课程, 本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。 通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。 本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。 三、教学内容及学时分配 本课程的教学内容共分十三章。

分子对接的原理,方法及应用

分子对接的原理,方法及应用 (PPT里弄一些分子对接的照片,照片素材文件里有) 分子对接 是将已知三维结构数据库中的分子逐一放在靶标分子的活性位点处。通过不断优化受体化合物的位置、构象、分子内部可旋转键的二面角和受体的氨基酸残基侧链和骨架,寻找受体小分子化合物与靶标大分子作用的最佳构象,并预测其结合模式、亲和力和通过打分函数挑选出接近天然构象的与受体亲和力最佳的配体的一种理论模拟分子间作用的方法。 通过研究配体小分子和受体生物大分子的相互作用,预测其亲和力,实现基于结构的药物设计的一种重要方法。 原理: 按照受体与配体的形状互补,性质互补原则,对于相关的受体按其三维结构在小分子数据库直接搜索可能的配体,并将它放置在受体的活性位点处,寻找其合理的放置取向和构象,使得配体与受体形状互补,性质互补为最佳匹配 (配体与受体结合时,彼此存在静电相互作用,氢键相互作用,范德华相互作用和疏水相互作用,配体与受体结合必须满足互相匹配原则,即配体与受体几何形状互补匹配,静电相互作用互补匹配,氢键相互作用互补匹配,疏水相互作用互补匹配) 目的: 找到底物分子和受体分子的最佳结合位置 问题: 如何找到最佳的结合位置以及如何评价对接分子之间的结合强度 方法: 1、首先建立大量化合物的三维结构数据库 2、将库中的分子逐一与靶分子进行“对接” 3、通过不断优化小分子化合物的位置以及分子内部柔性键的二面角,寻找小分子化合物与靶标大分子作用的最佳构象,计算其相互作用及结合能 4、在库中所有分子均完成了对接计算之后,即可从中找出与靶标分子结合的最佳分子 应用: 1)直接揭示药物分子和靶点之间的相互作用方式 2)预测小分子与靶点蛋白结合时的构象 3)基于分子对接方法对化合物数据库进行虚拟筛选,用于先导化合物的发现

细胞工程知识点填空(附答案)

专题2 细胞工程 (一)植物细胞工程 1.理论基础(原理): 全能性表达的难易程度: 2.植物组织培养技术 (1)过程:离体的植物器官、组织或细胞―→愈伤组织―→试管苗―→植物体 (2)用途:。(3)地位:是培育、培育植物新品种的最后一道工序。 3.植物体细胞杂交技术 (1)过程: (2)诱导融合的方法:物理法包括等。化学法一般是用 作为诱导剂。(3)意义: (二)动物细胞工程 1. 动物细胞培养 (1)概念:动物细胞培养就是从动物机体中取出相关的,将它分散成,然后放在适宜的中,让这些细胞。 (2)动物细胞培养的流程:取动物组织块(动物胚胎或幼龄动物的器官或组织)→剪碎→用 处理分散成→制成→转入培养瓶中进行培养→贴满瓶壁的细胞重新用胰蛋白酶或胶原蛋白酶处理分散成单个细胞继续培养。(3)细胞贴壁和接触抑制:悬液中分散的细胞很快就,称为。细胞数目不断增多,当贴壁细胞分裂生长到表面时,细胞就会,这种现象称为。 (4)动物细胞培养需要满足以下条件 ①:培养液应进行处理。通常还要在培养液中添加一 定量的,以防培养过程中的污染。此外,应定期更换培养液,防 止。 ②:合成培养基成分:糖、氨基酸、促生长因子、无机盐、微量元素等。通常需加入 等天然成分。 ③:适宜温度:哺乳动物多是;pH:。 ④:95%+5%。O2是所必需的,CO2的主要作用 是。 (5)动物细胞培养技术的应用: 2.动物体细胞核移植技术和克隆动物 (1)哺乳动物核移植可以分为核移植(比较容易)和核移植(比较难)。

(2)选用去核卵(母)细胞的原因:卵(母)细胞; 卵(母)细胞。 (3)体细胞核移植的大致过程是:(下图) (4)体细胞核移植技术的应用: ①② ③④ ⑤ (5)体细胞核移植技术存在的问题: 克隆动物存在着问题、表现出缺陷等。 3.动物细胞融合 (1)动物细胞融合也称,是指两个或多个动物细胞结合形成一个细胞的过程。融合后形成的具有原来细胞遗传信息的单核细胞,称为。(2)动物细胞融合与植物原生质体融合的原理基本相同,诱导动物细胞融合的方法与植物原生质体融合的方法类似,常用的诱导因素有等。 (3)动物细胞融合的意义:克服了,成为研究 的重要手段。 (4)动物细胞融合与植物体细胞杂交的比较: 比较项目细胞融合的原理细胞融合的方法诱导手段用法 植物体细 胞杂交 细胞膜的流动性去除细胞壁后诱 导原生质体融合 离心、电刺激、 振动,聚乙二醇 等试剂诱导 克服了远缘杂交 的不亲和性,获得 杂种植株 动物细胞 融合 细胞膜的流动性使细胞分散后诱 导细胞融合 除应用植物细胞 杂交手段外,再加 灭活的病毒诱导 制备单克隆抗体 的技术之一 4.单克隆抗体 (1)抗体:一个B淋巴细胞只分泌一种。从血清中分离出的抗体 。 (2)单克隆抗体的制备过程: 注入小鼠 细胞融合 分离 抗原注入小鼠体内 B淋巴细胞骨髓瘤细胞 杂交瘤细胞 细胞培养 选择培养细胞 培养基 体内培养体外培养 从腹水提取从培养液提取 单克隆抗体 核移植 胚胎移植

软件工程基本原理的理解与感悟(刘吉喆)

软件工程基本原理的理解与感悟 一、软件工程基本原理 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时问考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程.自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或信条。美国著名的软件工程专家 BOehm 综合这些专家的意见,并总结了TRW公司多年的开发软件的经验,于1983年提出了软件工程的七条基本原理。 (一)用分阶段的生命周期计划严格管理 这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。 Boehm 认为,在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、

运行维护计划。 (二)坚持进行阶段评审 统计结果显示:大部分错误是在编码之前造成的,大约占63%;错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。因此,软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。 (三)实行严格的产品控制 开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。 (四)采纳现代程序设计技术 从六、七时年代的结构化软件开发技术,到最近的面向对象技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方法大似气力。采用先进的技术即可以提高软件开发的效率,又可以减少软件维护的成本。 (五)结果应能清楚地审查 软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。

软件工程重点难点

软件工程(本科)复习重点难点 各章重点、难点和复习要求说明 第一章软件工程概述 重点掌握的内容:软件和软件工程的基本概念 软件: 软件定义:由以下三部分组成: (1)在运行中能提供所希望的功能和性能的指令集(即程序); (2)使程序能够正确运行的数据; (3)描述程序研制过程、方法所用的文挡。 软件是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。 软件的特点:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。⑤软件的开发至今尚未完全摆脱手工的开发方式。⑥软件的开发费用越来越高,成本相当昂贵。 软件的分类:软件依据不同的标准,可划分为不同的分类,详见1.1.3节。 软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程准则可以概括为六条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)应能清楚地审查结果;(6)合理安排软件开发小组的人员。详细阐述见书中1.2.1节。 软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。 软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。 一般掌握内容:软件生存周期及软件开发的各种模型

软件工程复习 ()

1.什么是软件工程?他的基本原理是什么? 1)软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。 2)用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。 2. 是什么导致了软件工程? 主要是软件危机的出现导致了软件工程 3. 通常我们所见的软件工程模型有哪些? 瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。 21.软件危机的现象: 1)经费超出预算,项目一再拖延。 2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。 3)开发工具落后,手工方式,开发效率低。 22.软件工程的三要素 1)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量开发出软件。 2)“方法”为软件开发提供“如何做”的技术。它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。 3)“工具”可为过程和方法提供自动的或半自动的支持。这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为计算机辅助软件工程,即CASE。CASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。 23.简述软件工程的目标,过程和原则 1)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。 软件工程的目标:降低成本,及时交付高质量的软件产品。 实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程 进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。 24.对比瀑布模型,原型模型,增量模型和螺旋模型 1)瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作 2)原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。 3)增量模型:对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量试一次迭代。增量模型的新版本叫做“极限编程 (XP)”。 4)螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但是,风险分析的正确性是左右软件演进的关键因素。 25. 当需求不能一次搞清楚,且系统需求较复杂时应选用什么模型? 开发模型不是孤立或排斥的,他们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适合于鼻尖复杂的系统。

相关主题