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

软件工程答案整理

软件工程答案整理
软件工程答案整理

填空

1.软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

2.测试阶段的基本任务是根据软件开发各阶段的和程序的,精心设计一组,利用这些实例执行,找出软件中潜在的各种和。

3.测试用例由和预期的两部分组成。

4.软件测试方法一般分为两大类:方法和方法。

5.动态测试通过发现错误。根据的设计方法不同,动态测试又分为与两类。

6.静态测试采用和的手段对程序进行检测。

7.人工审查程序偏重于的检验,而软件审查除了审查还要对各阶段进行检验。

8.计算机辅助静态分析利用工具对测试程序进行分析。

9.黑盒法只在软件的处进行测试,依据说明书,检查程序是否满足要求。

10.白盒法必须考虑程序的和,以检查的细节为基础,对程序中尽可能多的逻辑路径进行。11.白盒测试是测试,被测对象是,以程序的为基础设计测试用例。

12.逻辑覆盖是对程序内部有存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为、、、、和 6种覆盖技术。

13.实际的逻辑覆盖测试中,一般以覆盖为主设计测试用例,然后再补充部分用例,以达到覆盖测试标准。

14.循环覆盖是对程序内部有存在的逻辑结构设计测试用例,它通过限制来测试。

15.基本路径测试是在程序基础上,通过分析控制构造的复杂性,导出集合,从而设计测试用例。

16.黑盒测试是测试,用黑盒技术设计测试用例有4种方法:、、

和。

17.等价类划分从程序的说明,找出一个输入条件(通常是或),然后将每个输入条件划分成两个或多个。

18.边界值分析是将测试情况作为重点目标,选取正好等于、刚刚大于或刚刚小于的测试数据。如果输入或输出域是一个有序集合,则应选取集合的元素和元素作为测试用例。

19.在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为。

20.因果图的基本原理是通过画图,把用自然语言描述的转换为,最后为每一列设计一个测试用例。

21.测试的综合策略是在测试中,联合使用各种方法。通常先用法设计基本的测试用例,再用法补充一些必要的测试用例。

22.软件测试过程中需要3类信息:、和。

23.软件测试一般经过4个测试:、、和。

24.指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及和的文档。

25.单元测试主要测试的5个基本特征:、、、和。

26.在单元测试中,需要为被测模块设计模块和模块。用来模拟被测模块的上级调用模块,用来代替被测模块所调用的模块。

27.集成测试指在测试基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。也称测试或测试。

28.集成测试的方法有两种:和。

29.渐增式测试有两种不同的组装模块的方法:和。

30.自顶向下渐增式测试不需要编写模块,只需要编写模块,其步骤是从模块开始,沿着被测程序的的控制路径逐步向下测试,它有两种组合策略:和。

31.自底向上渐增式测试不需要编写模块,只需要编写模块。

32.确认测试指检查软件的与是否与说明书中确定的指标相符合,又称测试。

33.确认测试在模拟环境下运用测试方法,由和参加的测试。

34.确认测试开始前需要制定计划,结束后要写出报告。其测试用例要选用的数据。

35.软件配置审查的任务是检查软件的所有文档资料的和。

36.调试也称,是在成功的测试之后才开始进行,其目的是确定错误的和,并改正错误。37.调试技术包括、、和。

38.回溯法调试是从出发,而归纳法调试是从入手。

39.被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为

测试。

40.用等价类划分法设计一个测试用例时,使其覆盖尚未被覆盖的合理等价类。

41.用等价类划分法设计一个测试用例时,使其覆盖不合理等价类。

42.在单元测试时,需要为被测模块设计。

43.在集成测试时有两种测试方法,它们是。

44.软件测试是为了而执行程序的过程。

45.运行被测程序的方法称为测试。

46.动态测试中,主要测试软件功能的方法称为法。

47.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为。48.要覆盖含循环结构的所有路径是不可能的,一般通过限制来测试。

49.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等在和。

50.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是。

51.集成测试中的具体方法是。

52.确认测试阶段的两项工作是。

53.在单元测试中,测试一个模块时,需要设计。

54.软件配置管理,简称SCM,它用于整个软件工程过程。其主要目标是:、、、。

55.SCM是一组管理整个软件生存期各阶段中的活动。

56.基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个。

2. 文档资料内部结构测试用例程序错误缺陷

3. 输入数据输出数据

4. 动态测试静态测试

5. 运行程序测试用例黑盒测试白盒测试

6. 人工检测计算机辅助静态分析

7. 编码质量编码软件产品

8. 静态分析特性

9. 接口需求规格功能10. 内部结构处理过程处理过程测试11. 结构源程序内部逻辑12. 判定语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖13. 条件组合路径14. 循环循环次数15. 控制流程图环路基本路径16. 功能等价类划分边界值分析错误推测因果图17. 功能一句话一个短语等价类18. 边界边界值第一个最后一个19. 错误推测法20. 因果功能说明判定表判定表21. 测试黑盒白盒22. 软件配

置测试配置测试工具23. 单元测试集成测试确认测试系统测试24. 单元测试编码详细设计25. 模块模块接口局部数据结构重要的执行路径错误处理边界条件26. 驱动桩驱动模块桩模块27. 单元组装联合28. 非渐增式测试渐增式测试29. 自顶向下结合自底向上结合30. 驱动桩顶层软件结构图深度优先策略宽度优先策略31. 桩驱动32. 功能性能需求规格有效性33. 黑盒专门测试人员用户34. 测试测试分析实际运用35. 完整性正确性36. 纠错原因位置

37. 简单调试归纳法调试演绎法调试回溯法调试38. 程序产生错误的地方测试结果发现的线索39.静态40.尽可能多的41.一个42.驱动模块与桩模块43.渐增式和非渐增式44.发现错误45.动态测试46.黑盒法47.判定覆盖48.循环次数49.两个不合理的等价类50.错误推测法51.渐增式和非渐增式测试方法52.进行确认测试和软件配置审查 53.驱动模块和桩模块54.标识变更控制变更确保变更正确地实现报告有关变更55.变更56.检查点

1.程序设计语言的特性主要有心理特性、工程特性和技术特性三个方面。

2.程序语言的工程特性主要表现为可移植性、开发工具的可利用性、软件的可重用性和可维护性。

3.为了提高程序的易读性,同时为减少错误,提高软件开发效率,编码时应注意养成良好的程序设计风格。

4.程序加注释对理解程序提供了明确指导,根据作用不同注释分序言性注释和功能性注释。

5.软件需求分析之后,软件的设计、编码、测试与语言的特性有很大的关系,这个特性主要是语言的技术特性。

6.语句构造的原则是简单直接,不能为了追求效率而使代码复杂化。

7. FORTRAN 语言上世界上第一个被正式推广应用的计算机语言,它不仅面向科学计算,数据处理能力也极强。

8.汇编语言是面向机器的,可以完成高级语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。

9.为了使数据定义更容易理解和维护,一个语句说明多个变量时,各变量名按

字典排列。

10.编码是将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序。

1.软件原来没有帮助信息,使用不方便,现在要增加帮助信息。这种维护性活动称之为完善性维护。

2.调试也称纠错,是在成功的测试之后才开始进行,其目的是确定错误的原因和位置,并改正错误。

3.调试技术包括简单调试、归纳法调试、演绎法调试和回溯法调试。4.回溯法调试是从程序产生错误的地方出发,而归纳法调试是从测试结果发现的线索入手。

简答题

1简述1983年IEEE为软件下的定义。5822926

计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。

2简述软件危机的表现有哪些以及解决软件危机的途径有哪些

软件危机的主要表现包括:

(1) 软件开发进度难以预测,开发成本难以控制,导致超预算、超时;

(2) 产品功能难以满足用户需求;

(3) 软件产品质量无法保证;

(4) 软件缺少适当的文档资料,维护困难;

(5) 软件成本超过硬件成本;

(6) 软件开发生产率的提高速度跟不上计算机应用普及深入的趋势;

解决软件危机的途径有:

1管理措施:项目管理、配置管理、过程管理、质量控制

2技术措施:开发过程、开发技术与方法和开发工具

3 软件工程的定义

1993年IEEE给出的定义:软件工程是:

①系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;

②研究①中提到的途径。”

软件工程是围绕软件开发的一门交叉学科:软件工程=计算机科学+工程学+管理学

4 软件工程的10个知识领域

软件工程过程 ( Software Engineering Process)

软件工程工具和方法 ( Software Engineering Tools and Methods )

软件需求(Software Requirement)l

软件设计 (Software Design )

软件构造 (Software Construction)

软件测试 (Software Testing)

软件维护 (Software Maintenance)

软件配置管理 (Software Configuration management)

软件工程管理 ( Software Engineering management )

软件质量 ( Software Quality)

5 软件工程的目标是什么,软件工程的三要素都是什么

软件工程的目标:软件工程必须以有组织的质量保证为基础,进行全面质量管理,不断地过程改进使软件工程方法走向成熟。

软件工程的三要素包括:过程、方法和工具

过程为及时合理地开发出满足用户需求的计算机软件而进行一系列有组织的活动。过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。

方法为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的开发活动如何来做。开发方法经历了从面向结构、面向对象、面向组件到面向服务的发展工程。

工具为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程 (CASE ,Computer Aided Software Engineering)。

6 软件工程的七条基本原理

美国著名的软件工程专家巴利?玻姆(Barry Boehm)提出了软件工程的七条基本原理:

1.用分阶段的生命周期计划严格管理;

2.坚持进行阶段评审;

3.实行严格的产品控制;

4.采纳现代程序设计技术;

5.结果应能清楚地审查;

6.开发小组的人员应少而精;

7.承认不断改进软件工程实践的必要性。

7 简述软件过程的定义,软件过程又可以分为那几个类型

软件过程(Software Procedure)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。

软件过程可概括为基本过程、支持过程和组织过程等三种类型。

其中,基本过程包括:获取过程、供应过程、开发过程、运作过程和维护过程。支持过程包括:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程和问题解决过程等过程。组织过程包括:管理过程、基础设施过程、改进过程和培训过程。

8 里程碑( Mile Stone )思想

阶段工作的目标进行总结、评审、调整和部署下一个里程碑。目的:合理分配,细化管理“粒度”,降低项目风险。

9 基线思想

基线是指一个(或一组)配置项在项目生命周期的不同时间点的一种状态,各阶段有各阶段的基线:需求基线、设计基线、测试基线等。基线一旦建立后变化需要受控制。

10 简述软件生存周期的概念,说明软件生存周期划分为那几个主要时期每个时期有包括哪些主要阶段

软件生存周期是指软件产品从定义到开发、使用和维护,直到最终被弃用的时期,称为生存周期。

生存周期的可划分为计划时期、开发时期和运行时期等三个主要时期。

其中计划时期包括问题定义和可行性研究两个阶段。开发时期包括需求分析、总体设计、详细设计和实现等四个阶段。运行时期的又称为运行和维护阶段。

11 简述教材中介绍了那些软件开发模型这些模型各有什么特点

教材中重点介绍了瀑布、原型、增量、螺旋四个传统模型和RUP、XP两个现代模型。

其中,瀑布模型严格按照生存周期开发软件,每个阶段必须完成规定的、完整、准确的合格文档,前一阶

段的输出文档就是后一阶段的输入文档。

其主要特点包括:①活动间具有顺序性和依赖性;②推迟实现的观点;③质量保证的观点;

快速原型模型法是开发人员在一个基本的需求的基础上快速开发出一个软件原型,然后由用户使用和评价原型、开发人员根据用户意见再修改原型,然后再使用评价再修改、直至将原型进化为最终产品。

快速原型模型的特点包括:①做出系统原型,及早向用户展示系统要实现的界面及功能,增强用户的合作信心;②直观化的表达,容易交流,消除理解上的歧义;③修改集中在前期的原型确认上,较大程度减少后期实施中的返工。④入手快,加快开发进度;

增量模型是一种演化模型,先完成一个系统子集的开发,再按同样的开发步骤增加子集,如此递增下去直至满足全部系统需求。每个增量可按快速原型法进行。

增量模型的特点包括:①无须等待获取完整需求就可入手,尽快见到成果,增强双方信心;②分步开发,降低复杂性和难度,减少技术风险,并可并行开发;③边开发边投入,可及早发现问题,减少投资风险;

④各个子集是逐渐并入已有的系统中,加入子集不能破坏已构造好的部分,这需要软件具备开放式的体系结构;⑤适用于需求不完整的软件开发,指的是需求逐渐摸清、逐步完善,并非随意改变,需求改变过大会导致整体性失控。后面要介绍的XP(极限编程)属于该模型。

螺旋模型(Spiral model)是一种融合了瀑布模型、快速原型模型和增量模型的演进模型,并引入风险分析机制。适合大型复杂的系统开发。

螺旋模型特点包括:①多种模型结合的一种演进模型,融合了瀑布模型、快速原型和增量模型的所有特点,融进了循环往复、迭代演进的思想;②增加风险分析,一旦风险成立,原方案应终止、修订,力求风险可控③客户始终参与每个阶段的开发,每个阶段的成果需客户确认,避免错误的积累。

统一过程RUP (Rational Unified Process)是由Rational 公司在推出统一建模语言UML后,推出的一个软件开发框架RUP,称为软件统一开发过程。

12 统一过程RUP定义了那几个主要阶段

初始阶段(Inception):主要完成商业需求,确定项目边界。里程碑是生命周期目标(Lifecycle Objective),评价项目基本的生存能力。

细化阶段(Elaboration):主要完成领域问题分析和软件设计。获取用户需求(功能和非功能需求),建立需求模型;进一步确立体系结构和设计软件结构等工作。里程碑是生命周期结构(Lifecycle Architecture)。

构造阶段(Construction):主要完成系统实现、测试,里程碑是初始功能(Initial Operational),产品版本常被称为“beta”版。

交付阶段(Transition):重点是确保软件对最终用户是可用的。里程碑:产品发布(Product Release) 13 统一过程RUP工作流

6个核心过程工作流(Core Process Workflows)

商业建模(Business Modeling):弄清项目边界和约束,做出计划。

需求(Requirements):描述系统应做什么,开发人员和用户达成需求基线。

分析和设计(Analysis & Design):将需求转化成计算机可以实现的模型。

实现(Implementation):用程序设计语言将设计模型组织成可执行的文件、数据。

测试(Test):是发现软件中的错误,在实验环境下验证所有的需求是否被正确的实现。

部署(Deployment):将软件分发给最终用户,安装在真实的环境下,由用户操作运行。

3个核心支持工作流(Core Supporting Workflows)是对核心过程工作流的配套支持和管理,保障核心过程工作流顺畅、高效运行。

配置和变更管理:工作文档的管理,在版本更新、需求变更中做到各类文档及时、同步跟踪,

保证各文档内容完整、一致。

项目管理(Project Management):资源配置、评估监控、风险控制、计划调整等管理工作,目

的效益最大化。

环境(Environment):软件开发环境,包括人员、设备、过程和工具,以及各种规范、指导手册

和保障措施。

14 简述rup模型中基线与里程碑的概念,二者之间的关系。

基线,是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础,也可以理解成为一个阶段的起点并已经制定了相应的工作标准,并且只有经过授权后才能变更这个标准。

里程碑,是计划中确定的阶段性工作完成目标,要求提交阶段交付物,作为阶段评估的标准。

基线和里程牌的关系:基线是为了建立参照点,是阶段的起点;里程牌是建立阶段性目标,是阶段终点,最后的里程牌可能是一次迭代的终结。

15 简述软件计划的目标和主要工作.

软件计划的目标:研究项目的可行性,研究合理地运用软件项目开发所需的资源、经费,掌握开发进度,控制项目开发过程按此计划进行。

主要工作包括:确定项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。

16软件计划的活动有哪些这些活动的内容是什么

软件计划主要活动包括:问题定义,可行性研究,项目计划。

这些活动的内容是:

问题定义:确定项目实施范围,回答项目“做什么”的问题。

可行性研究:项目的必要性和可能性。

制定项目计划:编制项目开发计划。

17 简述问题定义的目的和主要任务。

问题定义的目的:弄清要计算机解决的根本问题所在(要解决的问题是什么),确定新系统的作用域,以及项目所需的资源、工期和经费。

问题定义的主要任务:编写项目报告提交审查,作为可行性分析的依据。

18 简述可行性分析的目的、任务和内容。

可行性分析的目的:确定项目的必要性和可能性。

可行性分析的任务包括:可行性分析;写可行性研究报告;编制开发计划。

可行性分析的内容包括:技术、经济和社会三个方面的可行性:

19简述需求分析的目的、必要性和参与角色

需求分析的目的是:弄清用户对系统的细节要求,完整、准确、清晰、具体地回答目标系统“做什么”。准确地理解用户提出的软件功能、性能及其环境的要求。

需求分析的必要性:用户与开发者的知识领域不同,产生歧义;软件开发失败50%是需求不合理,早期错误易放大。

参与角色:开发方包括分析师、设计师和架构师。用户方包括领域专家、用户和部门负责人。

20 需求开发的任务有哪些

需求开发的任务包括

需求获取:收集用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。

需求分析:通过符号和文字说明描述系统模型,使用户和开发者间建立共同语言基础,消除理解上的歧义的过程。

需求说明:既编写需求文档,也称编写需求规格说明书。需求说明书是需求分析阶段的最终成果,也是需求分析阶段复审的依据;是用户领域专家、软件分析师、软件设计师共同交流的途径和媒介;是交付给用户文档的一部份;

需求验证:即需求评审。根据需求说明书,分析师、设计师、客户会审文档,对需求的正确性、一致性、完整性、无二义行进行评审、确认。

21 需求的层次

软件需求包括三个不同的层次:业务需求、用户需求、功能需求,也包括非功能需求。

1.业务需求(business requirement)

业务需求是反映企业/组织对软件系统的高层次目标要求,即软件系统的建设目标。

业务需求通常是“问题定义”或“可行性研究”阶段获取的内容;在需求规格说明书中反映在项目背景、系统目标或任务概述的描述中。

获取的主要对象是客户方的高管、专家、部门负责人。

2.用户需求(user requirement)

用户需求:用来描述用户使用产品必须要完成的任务;使用业务领域的术语描述,采用开发者与用户都能理解的语言和图形表达。用户需求是经过调查、归纳后双方认同的结果。

获取的主要对象是部门负责人、软件的操作者或称终端用户。

3. 功能需求(functional requirement)

功能需求定义了开发人员必须实现的软件功能,结果在需求规格说明书中;功能需求用软件行业术语表达:通常是需求建模的结果即目标系统的逻辑模型,如结构化的功能模型、数据模型、行为模型,面向对象的类模型等。

4. 非功能需求

特性是指一些非功能需求,是满足业务需求的性能要求。如界面的交互性、数据的安全性、数据的事务性、用户的并发性、响应的快速性、操作的实时性、错误与异常的恢复性、软件的容错性等等。项目的失败或拖延一般不是在功能上,而恰恰倒是在性能要求上,因为这些性能与软件的体系结构有关,与构成系统的

网路与硬件环境等底层技术有关,往往超越一般开发人员的技术能力。

22 需求获取的一般方法

①需求获取方法以采访、观察、座谈、对先前的系统版本的测试等。必要时采用快速原型法。

②先集中在使用者对系统的观点上,以收集用户原始资料,数据、工作方式、工作流程、使用要求等为工作起点,深入到部门、车间、班组,做好原始纪录;

③然后根据对问题及环境的理解与开发经验,改正用户需求的模糊、歧义和不一致性要求,排除用户的不合理要求,挖掘用户尚未提出但具有价值的潜在需求,使用户需求逐步精确化、一致化和完全化;

④需求获取非一次完成:需要往复进行、逐步深化。

⑤需求获取的内容:写进“需求规格说明书”,确认。

23需求获取的策略

①循序渐进的策略;

②确定优先级:先进行重点的需求调研,有助于识别出重大的风险,并为制定迭代计划提供指导;

③不要陷入技术:需求未明确,应回避对技术问题讨论。

④挖掘用户需求: “诱导式”就是挖掘用户需求。客户并非IT专业人士,需求的概念是模糊的、笼统的,而且尺度难以把握,预测潜在需求。

⑤区分不必要的需求:客户对有些需求提不出来,自然也会提出一些不必要的需求。

24 简述概要设计和详细设计的内容。

软件设计包括概要设计和详细设计。概要设计又分为体系结构设计和领域问题结构设计。

体系结构设计:是支撑和管理软件运行的环境设计。由于现代的软件是处在操作系统、网络、各种服务器共同搭建的环境下运行,并且具有并发、安全、事务等多方面的管理,是软件设计优先考虑的问题。

领域问题结构设计:满足需求的软件功能设计,核心所在。将领域问题的分析模型细化成软件结构模型,也就是划分软件的模块结构及确定模块之间的关系。

②详细设计又分为如下三个部分:

对模块内部的过程和数据结构进行设计。也就是对模块内进行算法分析和程序设计。

人机交互界面的具体设计,还有与其它外部系统接口设计。

完成对数据库的物理设计

概要设计是根据需求确定软件和数据的总体框架;详细设计是进一步精化成软件的算法和数据结构。

25

25 简述衡量软件模块独立性的度量标准有哪些

模块独立性是指模块能够完成独立的功能;模块符合信息隐藏和信息局部化原则;模块间关连和依赖程度尽量小。

衡量软件模块独立性的度量标准的指标有取决于模块的内部特征的指标内聚度和取决于模块的外部特征的指标耦合度。

内聚度:一个模块内部各个元素间(语句和程序段)彼此的紧密程度的度量。

耦合度:指软件结构中各模块间相互联系紧密程度的一种度量。

26 简述内聚度的七个等级

内聚度表示一个模块内部各成分之间彼此结合的紧密程度。内聚度按其高低程度可分为七级,高内聚度模块独立性强,设计尽可能提高模块内聚度。

①偶然性内聚:是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,

也很松散。

②逻辑性内聚:模块内完成的诸任务逻辑上相关。该类内聚的缺点是执行中要从模块外引入用作判

断的开关量,从而增加了块间偶合(控制偶合)。

③时间性内聚:如果一个模块包含的诸任务必须在同一时间段内执行,则称之为时间性内聚

④过程性内聚:模块的过程性内聚度是指模块内成份彼此相关,并且必须按特定的次序在本模块内

执行;

⑤通讯性内聚:是指模块中各组成成分都将对某个数据结构的同一区域进行操作,以达到通信的目

的。

⑥顺序性内聚:一个模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,通常,一

个处理成分的输出是另一个处理成分的输入。

⑦功能性内聚:模块内所有成分形成一个整体,完成单个功能,则称功能内聚,功能内聚是最高程

度的内聚形式。

27耦合度的七个等级

耦合度是模块独立性最显著特征。耦合度按其高低程度可分为七级,松耦合是软件设计一直追求的目标。

①非直接耦合: 模块不依赖另一个模块能独立工作,这是最松的耦合。

②数据耦合: 两模块间通过参数交换数据信息,则称这两模块为数据耦合。

③特征耦合: 模块之间除传递关键数据外还附加公共数据。

④控制耦合: 如果两模块间通过参数交换信息,此时若传递的信息中含有控制信息,则为

控制耦合。

⑤外部耦合: 当若干模块均与同一个外部环境关联,它们之间便存在外部耦合。

⑥公共耦合: 当若干模块通过全局的数据环境相互作用时,它们之间存在公共耦合。

⑦内容耦合:当一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一

个模块内部等,模块间的耦合就是内容耦合。

28 简述模块的作用域与控制域的概念及其相关设计原则。

模块的作用域:从功能方面考虑,受模块内一个判定影响的所有模块的集合;

模块的控制域:从结构方面考虑,包括它自己及其所有下属模块的集合。

相关设计原则是:模块的作用域应在控制域之内。

29详细设计的表达方式有哪些

1.伪代码(Pseudocode):是一种算法描述语言,也称PDL语言(Program Design Language)。伪代码介于自然语言与编程语言之间,用伪代码描述的算法可以容易用任何一种编程语言实现。伪代码表达算法必须结构清晰、代码简单、可读性好。

2.程序流程图:用图形符号表达算法,直观表达循环、分支等复杂结构,是喜闻乐见的表现形式。

3.盒图(N-S) (Nassi和Shneiderman):也是一种图形符号表达方式,同样可以表达各种流向控制,但比程序流程图紧凑、功能域明确。

图(PAD-Problem Analysis Diagram)[28]:同样是用图形符号表达算法,但它具有结构化的表达方式,因此结构十分清晰,很容易翻译成程序代码。PAD支持自顶向下,逐步求精方法的使用。判定表与判定树:对于规则较多,判定条件较复杂的情况,宜采用这两种方法表达。

5.判定表与判定树:对于规则较多,判定条件较复杂的情况,宜采用这两种方法表达。

30 简述面向数据流的结构化分析SA方法中,有哪些建模方法

功能建模:数据流图DFD(Data Flow Diagram)+ 数据字典DD(Data Dictionary);

数据建模:实体关系图ERD(Entity Relation Diagram);

行为建模:状态转换图STD(State Transform Diagram);

加工说明PESPEC(Process SPECification)和判定表等辅助工具。

31 简述数据流图(DFD)的图形符号有哪些

①数据流:表示数据流的名称和数据的流向(从加工出发或流向加工);

②外部实体:系统外与系统交互的人或实体;

③数据加工:数据处理;

④数据存储:数据进行持久保存的环节;

32简述数据字典的作用、内容和组成元素有哪些

数据流图描述了数据加工,但没有描述数据的内容。数据流图必须与描述并组织数据条目的数据字典DD(Data Dictionary)配套使用。

数据字典描述的对象:描述数据流图中出现的所有数据和加工。这里的数据描述是概念性的,属数据结构的抽象描述;加工采用加工小说明进行概念性的描述。

数据字典的组成元素包括:数据流条目、数据存储条目、数据项条目;加工条目(也称为小说明);

33 简述面向对象的基本概念有哪些

1.对象与面向对象

对象(Object):即表示客观世界中的某个具体的事物。面向对象(Object Oriented):是人类的活动,是人类认知、观察客观事物的方法论。

2.面向对象的抽象与分类

3.类的封装与对象的整体性

4.关联性与交互性

客观事物都不是孤立存在的,万物之间相互依存、相互交流。关联性表达客观事物的社会性、共存性、组织性,是静态的结构描述。消息机制是对象的交互性,表示对象生存环境的依赖性。

5.继承性

对事物的分类本身就体现继承性。软件开发利用继承性可对Object更好地分类,软件结构更严谨,代码的复用性更强。

6.多态性

对象在不同的条件下,同样的行为会表现不同的效果,这就是Object的多态(polymorphism)。

面向对象编程语言提供抽象类、接口、重载等技术支持多态的实现。

34面向对象的五大特性有哪些

面向对象的特性有抽象性、封装性、继承性、多态性和消息机制等五大特性。

35 简述面向对象开发过程的内容有哪些

①需求获取:开发者以OO的观点(OOV)来观察客观世界的目标即获取需求,然后用自然语言写到需求规格说明(OOS)中,也就是对客观世界的最高层抽象。

②面向对象分析OOA (Object Oriented Analysis)与面向对象设计OOD(Object Oriented Design)。

③面向对象编程Object Oriented Program(OOP)与面向对象测试Object Oriented Testing (OOT)是代码实现过程,它依赖于编程语言和工具。

④软件维护Object Oriented Software Maintenance(OOSM)。

36 与传统的软件开发方法相比较,面向对象开发的主要优点有哪些

1.自然性即客观性

2.操作数据对象而非数据实体

3.阶段衔接平滑

4.结构性好、复用性强

5.提高扩展性和维护性

37 简述UML中定义了那些图形符号并简述起作用。

38 简述用例图中有哪些模型元素并简述其含义

①参与者:指存在于系统外部并与该系统发生交互的人或其他系统,代表系统的使用者或使用环境。

②用例(Use Case) ,用例用于表示系统提供的服务,它定义了系统是如何与参与者交互,描述了参与者与系统之间的交互过程。

③角色与用例间的关系关联,它表示参与者与系统中的哪些用例交互。

用例之间的关系:包含<>和扩充<>关系以及泛化关系。

参与者之间的泛化关系。

39 简述类图中有哪些模型元素并简述其含义

提示:一切可以出现在类图中的元素。

类:

类名、属性、方法(可见性、作用域)

特殊类:接口

类之间的关系的定义、表示和属性:

关联、依赖、聚合、组合、泛化、实现。

各种类关系之间的关系。

40 简述包图中有哪些模型元素并简述其含义

提示:一切可以出现在包图中的元素。

包和包之间的关系。

41简述活动图中有哪些构成元素并简述这些元素的含义

42 简述OOA模型的结构

OOA的核心任务是搞清用户需求,最终要建立起OOA模型。UML的OOA模型由“用例模型”和“概念模型”两大部分组成。

①用例模型,是将用自然语言描述的领域问题,转换成UML语言表达的模型,主要面向用户,反映用户需

求。

完整的用例模型由用例图和业务场景描述两个部分组成,用例图表示功能的划分;

业务场景描述则对每个用例的事件流进行描述;

②概念模型(类模型/结构模型/静态模型)。

将用例模型映射成类模型:从用例模型中找出类,面向设计人员。

主要工作是:根据用例图进行类的划分与封装;描述类间的静态关系与结构;用交互图表达类对象间的消息传递。

43 对象间的可访问性

①属性可见性:B是A的一个属性(关联、聚合);

②参数可见性:B的对象是A的一个方法的参数;

③局部声明可见性:B的对象是在A的一个方法中声明的一个局部变量;

④全局可见性:B的对象在某种程度上全局可见;

44对象持久化对象持久化常用技术

实体类的实例称为数据对象,对象持久化主要用于数据对象的持久化,简称数据持久化。

一个数据对象的持久化就是保存到实体表中的一条记录,对实体对象的访问就是操作属性的值。

对象持久化常用技术

①对象的序列化

指将对象的相关信息(对象序列号、属性名、属性值等)转换为字节流,然后再把字节流写入数据流。可以把对象这些信息存储在本地的文件里,也可以把它通过网络传输到远程。通过对象反序列化,得到原对象完全相同的副本。

②对象持久化到数据库中

数据库可以是对象数据库或关系数据库。

③用XML(eXtensible Markup Language)存储。

45 “实体模型”到“关系模型”的OR映射

(1) 一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。

(2) 对象关系(一对一、一对多、多对多)的映射可能有多种情况,但一般映射为一个表或多个表,在表间定义相应的主键PK(Primary key)和外键 FK(Foreign key )建立实体间的关系。

(3) 单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性;反之,也可以不定义子类表而让父类表拥有全部子类属性。

(4) 对多重继承的超类和子类分别映射表,对多次多重继承的泛化关系也映射一个表。

(5) 对映射后的库表进行冗余控制调整,使其达到合理的关系范式。

46软件测试的定义

软件测试是为了发现错误而运行程序的过程;软件测试的目的是发现程序中的错误,是为了证明程序有错, 而不是证明程序无错;测试对象不仅是程序,还应该包括开发过程中产生的所有产品,包括文档,其目的是为了尽早地、尽可能多的发现并排除软件中潜在的错误。

47软件测试的基本原则

① Who来测试

测试工作应该由独立的、专业的软件测试机构来完成,设计人员和程序员要参与测试;对测试结果一定要有一个确认的过程,一般由角色A测试出来的错误,一定要有一个角色B来确认,严重的错误可以召开评审会进行讨论和分析;

②测试What

程序员交付的模块、系统和文档;

③测试Extent

设计测试用例,充分覆盖所有条件或所有语句即可;

④ When测试

尽早和不断的测试,即将这种“测试”贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错误;

⑤ How测试

设计测试用例时不仅要考虑到合法的输入,还要考虑到不合法的输入以及各种边界条件;对发现错误较多的程序模块,应进行重点测试。

48软件缺陷,软件缺陷的属性:

从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。

软件缺陷的属性:

缺陷标识、缺陷类型、缺陷严重、程度缺陷、优先级、缺陷状态、缺陷起源、缺陷来源、缺陷根源等。

49 简述测试用例的概念

测试用例(Test Case)是关于具体测试步骤的文档,以判断被测软件的工作是否正常。

内容包括:测试目标、测试环境、输入数据、测试步骤、预期结果等。从表现形式上看,测试用例可以是纯文本的文档,也可以是用程序设计语言编写的一段代码。

50简述基本测试方法的分类情况

软件工程重点整理

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

软件工程试题含答案案.docx

软件工程期末试题(1) 一, 判断题(正确的在括号内打上"√",错误的打上"×".每题1.5分,共15分) Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×) PAD图在设置了五种基本控制结构后,还允许递归调用. (×) 你为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×) 当验收测试通过,软件开发就完成了.(×) 完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×) 系统结构图是精确表达程序结构的图形表示法.因此,有时也可以将系统结构图当作系统流程图使用.(×) 在程序调试时,找出错误的位置和性质比改正该错误更难.(√) 以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.(√) 二,单项选择题(每小题2分,共10分) 试判断下列叙述中,哪个(些)是正确的(D) a,软件系统中所有的信息流都可以认为是事务流 b,软件系统中所有的信息流都可以认为是变换流 c,事务分析和变换分析的设计步骤是基本相似的 A,a B,b C,c D,b和c 进行需求分析可使用多种工具,但(B)是不适用的. A,数据流图B,PAD图C,判定表D,数据词典 在详细设计阶段,经常采用的工具有(A).

A,PAD B,SA C,SC D,DFD 详细设计的结果基本决定了最终程序的(C) A,代码的规模B,运行速度C,质量D,可维护性 使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准. A,程序的内部逻辑B,程序的复杂程度 C,该软件的编辑人员D,程序的功能 三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.) (ABCD)可以作为模块. A,子程序B,函数C,过程D,编译文件 下面哪些测试属于黑盒测试(BCD). A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试下列属于度量效益方法的是(ABCD). A,货币的时间价值B,投资回收期C,收入D,投资回报率 软件维护的策略包括(BCD). A,定期检测维护B,改正性维护C,适应性维护D,完善性维护 下列属于软件测试过程的是(ABE). A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试 四,简答题(每题6分,共24分) 1、耦合性和内聚性有几种类型其耦合度,内聚强度的顺序如何答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高

最新公司内部管理系统资料

内部管理系统(人事管理系统+客户关系管理系统) 需 求 分 析 说 明 书 2015.10.9

一、人事管理系统部分 1、系统人员类型 公司的人员类型有以下几种:普通员工、部门经理、总经理、人事部经理和人事助 2、系统基本功能图解 2.1 基本机构图

2.2用例图解

3、功能详情 3.3.1 登录页面 需要登录的人员,对于不同的身份,他们的权限是不一样的。当用户输入ID和密码时,查询数据库,如用户名和密码正确,则进入相应的员工信息页面,若不正确,则提示用户用户名或密码错误,仍显示当前页面

3.3.2 查询员工资料 该模块主要查看自己/同事的资料,以更好促进公司员工之间的相互了解。同时也可以修改自己的部分信息。 主要功能包括: ●查询自己的详细信息:员工ID、员工姓名、电子邮件、所在部门名称(不是部门ID)、经理、 分机和自我介绍等 ●修改自己的自我介绍 ●修改自己的登录密码 ●查询、搜索其他同事的相关信息 3.3.3 员工资料管理 人事部门负责维护员工的基本资料。当员工第一天来公司报道时,人事部门将员工的基本资料(姓名、性别、出生日期、电子邮件及所属部门等)录入到数据中,并打印一份报道单给员工,上门列出了该员工的登录ID、公司邮件的地址、该员工的部门名称以及该员工的同部门同事列表。 主要功能包括: ●添加/修改/删除员工 ●按任意条件搜索员工(支持模糊查询) ●打印员工报道单 上传/修改员工的照片。

3.3.4请假模块 请假申请: 员工根据工龄享受年假。如果员工是本年度才加入公司的,则需根据报到日期按公司规章制度计算假期期数。员工请假不可以超过规定的请假小时数。员工可以通过本模块提交/查看/取消申请。 主要功能包括: ●显示员工本人年假总小时数、已使用小时数、当前可用小时数 ●用日历的方式显示可请假的日期,并突出显示国定节假日 查看员工本人某段时期内的请假记录、申请、批准状态等。 请假审核: 该模块只允许经理访问。经理可以查看下属的请假记录,批准/否决其中申请。 主要功能包括: ●显示经理下属名单 ●显示某段时间内所有/部分员工的请假记录汇总,包括年假总数、已使用小时数、当前可用小时 数、请假理由 显示当前所有待批准的请假记录,可以在上面执行“批准/否决”操作 请假管理: 人事部可以查看公司所有员工的请假记录,同时可以设定国定假日。 主要功能包括: ●设定国定假日 ●按部门汇总某段时期内的请假记录。 请假功能流程图:

软件工程问题整理版

1、软件危机定义、发生原因、常见表现,如避免软件危机? (1)软件危机定义:课本Page 8(开发和维护过程) (2)发生原因、常见表现:课本Page 8-9,练习册Page 1 (3)如避免:Page 10 (采用软件工程的法) 答案(由于大部分答案参考ppt,故仅供参考,下同) 软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列重问题。 表现在: (1)对于软件开发的成本和进度的估计很不准确。 (2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。 (3)开发的软件可靠性差。 (4)软件通常没有适当的文档。 (5)软件的可维护性差。 (6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 原因: (1)软件的规模愈发庞大; (2)软件开发的管理困难。 (3)成功的软件开发经验没被很好地应用。 (4)软件开发和维护中千金错误认识和法的形成可以归结与计算机发展早期软件开发的个体化特点。 (5)软件开发技术落后。 (6)生产式落后。 (7)开发工具落后,生产率提高缓慢。 如避免(参考,可以自己总结): 从软件开发的工程化法入手,即用现代工程的概念原理、技术和法去指导软件的开发、管理和维护,这就是软件工程思想和法。具体措施: (1)使用好的软件开发技术和法; (2)要有良好的组织、密的管理,各类人员协同配合,共同完成任务; (3)使用好的软件开发工具,提高软件生产率; (4)建立格的文档资料,重视软件开发过程的阶段评审。 2、软件生命期模型(软件生命期?)的组成,每个阶段的容? (1)组成:Page 21 (2)容:Page 22—25) 答案: 软件生存期定义: 一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存期。 软件生存期一般可分为以下阶段: (1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计) (5)详细设计(6)编码(7)测试(8)维护 也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护

软件工程知识点总结

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

软件工程试题与答案整理版

软件工程试题 一、简述题(4 * 10 = 40) 1 简述生命周期方法学及其特点。 2 什么是软件过程?简述RUP及其特点。 3 简述面向对象的基本思想。 4 简述控制软件复杂性的基本方法。 二、判断题(判断命题正确与否,如错误,请改正)(10 * 2 = 20) 1 ()在建立了设计模型之后,就可以开始制定测试计划。 2 ()耦合是指一个模块内各个元素彼此结合的紧密程度。 3 ()数据流程图是描绘物理系统的传统工具。 4 ()软件工程标准有5个不同的级别层次:国际标准、国家标准、行业标准、企业规范、项目规范。 5 ()软件重用是指在软件开发过程中重复使用相同或相似软件元素的过程。 6 ()模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。 7 ()如果测试数据满足条件覆盖,则必然满足判定覆盖。 8 ()软件开发模型是跨越整个软件生命周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。 9 ()能力成熟度模型是评价程序员程序设计能力的一种全面而客观的评审依据。 10()好的测试具有较高的发现错误的可能性。 三、选择题(将正确的答案代号填入括号中,每小题2分,共20分) 1.需求分析阶段最重要的技术文档是() A.设计说明书 B.需求规格说明书 C.可行性分析报告 D.用户手册 2.所谓软件过程的里程碑,通常是指()。 A.一定的时间间隔 B.每个项目活动 C.基线 D.开发项目月报 3.耦合度最高的是()耦合。 A.环境 B.内容 C.控制 D.数据 4.软件工程学中除重视软件开发的研究外,另一个重要的组成内容是软件的()。 A.成本核算 B.项目管理 C.工具开发 D.人员培训 5.下列不属于软件工程方法学三要素的是()。 A.方法 B.工具 C.过程 D.操作 6.()分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。 A.增量模型 B.喷泉模型 C.变换模型 D.螺旋模型 7.软件测试方法中的()属于静态测试方法。 A.人工检测 B.路径覆盖 C.黑盒法 D.边界值法 8.在数据流程图中,符号“□”用来表示()。 A.处理 B.外部实体 C.数据存储 D.数据源点 9.()是基于形式化规格说明语言及程序变换的软件开发模型。 A.增量模型 B.喷泉模型 C.变换模型 D.螺旋模型 10.对象类之间的归纳关系就是()关系。 A.一般-特殊 B.整体-部分 C.相互依赖 D.层次关系 四、填空题(每小题10分,共20分) 1. 信息系统是一个复杂的人机系统,系统内外环境以及各种人为的、机器的因素都在不断地变化。为了使系统能够适应这种变化,充分发挥软件的作用,产生良好的社会效益和经济效益,就要进行系统的维护工作。系统的维护对于延长系统的生命周期具有决定意义,请列出系统开发中能够提高系统可维护性的要求。 ① ② ③ ④ ⑤ 2. 软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。请列出软件开发过程中软件质量保证的主要措施。 ① ② ③

软件系统项目建设项目管理文档

目录 1.项目管理 (1) 1.1项目范围管理 (1) 1.2项目时间管理 ......................................................................... 错误!未定义书签。 1.3项目里程碑 (6) 1.4培训方案 (6) 1.5技术支持与售后服务 (7) 1.6项目进度管理 (8) 信息系统项目建设项目管理文档 1.项目管理 1.1项目范围管理 (1)概述 项目范围管理就是要明确项目目标是什么,界定哪些工作必须做,并将项目目标分解到可以独立分包的程度,形成工作分解结构(WBS),并以此作为控制项目范围变更的基准。即项目范围管理是确保项目包含且只包含项目所必须完成的工作。 很多项目经常由于有做不完的报表、解决不完的问题而导致项目无法验收,很大一部分原因就是因为项目的范围没有定义清楚或者项目范围经常发生无可控制的变更所致。事实证明,缺少正确的项目范围定义和范围的核实是导致项目失败的主要因素。 因此,项目管理最重要的也是最难做的一项工作就是确定项目范围,并使项目范围在控制中,这就是项目范围管理的范畴,即项目范围管理就是项目该做什么,不该做什么,以及确保该做的事情必须做到,不该做的事情不能做。 在项目的规划阶段和蓝图设计阶段的前期,我们通过售前阶段的资料和项目

现场的需求调研,确定项目该做什么,这就是经常说的定义项目范围。 (2)管理内容 1、定义项目范围 1)定义项目范围重要的参考资料和依据一般如下: ●项目售前实施方案; ●项目主合同; ●许可软件通用条款及清单; ●咨询实施服务和工作任务书; ●支持服务条款; ●战略合作承诺书; ●建设单位内部正式发问的项目实施意见书。 2)口头承诺 定义范围除了依据上述可见的项目资料外,售前阶段的一些口头承诺也是定义项目范围的重要信息来源,因此在项目准备阶段与售前进行内部交接时,一定不能忘记交接口头承诺的内容,实践证明,口头承诺的往往是在项目实施过程中难以交付的或者需求范围不好清晰界定的,正是范围管理的难点。 通过范围定义,可形成详细的范围说明书,以及对项目管理计划进行更新。 2、项目范围 范围是指项目所提供的产品或服务的总和,它包括以下两种含义: ●产品范围:产品或者服务的特性与功能,其衡量标准为产品要求,即产 品需求说明书。 ●项目范围:为交付所需产品(具有特定属性和功能)和服务而必须完成 的工作,其衡量标准为项目管理计划、项目范围说明书、WBS及WBS词汇 表。 项目实施的产品范围的描述一般应该通过两个维度,即产品功能模块和公司范围两个维度,清晰的描述出哪些公司具体实施、哪些产品的功能模块,对于集团型企业一定要以企业法人作为实施的公司范围。借用EXCEL建立功能模块与法人

软件工程知识点汇总

软件工程知识点汇总 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. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、工程开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、工程开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程基础知识点总结

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

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

软件工程教材资料整理

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

《软件工程》试题及参考答案(第1套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.经济可行性研究的范围包括() A.资源有效性 B.管理制度 C.效益分析 D.开发风险 2.结构化设计方法在软件开发中用于()。 A、概要设计 B、详细设计 C、程序设计 D、测试用例设计3.程序的三种基本控制结构是() A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 4.软件测试中,白盒法是通过分析程序的()来设计测试用例的。 A、应用范围 B、内部逻辑 C、功能 D、输入数据 5.软件维护费用高的主要原因是()。 A、人员少 B、人员多 C、生产率低 D、生产率高 7.确认测试主要涉及的文档是()。 A、需求规格说明书 B、概要设计说明书 C、详细设计说明书 D、源程序 8.模块的内聚性最高的是( ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 9.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( ) A.生存期 B.面向对象设计 C.面向对象程序设计 D.面向对象分析 10.原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。 A.需求不确定性高的 B.需求确定的 C.管理信息D.实时 12、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 13.下列关于瀑布模型的描述正确的是( )。 A.利用瀑布模型,如果发现问题修改的代价很低

人事档案管理软件系统

为了提高人事档案规范化管理水平,加强和规范公司员工档案管理,推进人事档案资料管理系统化、科学化、规范化,很多企业公司都选择了使用现代信息化的管理软件系统。该软件是一款功能丰富、易于使用的人员管理软件,不仅方便用户使用,还大大提高了工作效率。 一、人事档案管理软件系统功能包括: 1.灵活配置人事业务流程: 不得使用转移流程、黑名单管理、合同管理、培训奖惩等数十项人员职能,支持定制功能的灵活配置,以满足企业在开发过程中的个性化管理需求。 2.员工完整生命周期在线管理: 基于人事管理和不同业务场景的不同业务角色,提供员工就业,成长,交易等流程管理,实现员工生命周期的闭环管理。 3.组织规划和调整既高效又方便: 支持多组织结构共存和调整,明确各部门的准备和管理,实现人员配置规划和调整,支持权限管理的灵活配置和切换,推动内部流程

的有效运行。 二、该系统产品特色功能: 组织结构管理、员工流失管理、黑白名单管理、多场景自动提醒管理、固定岗位管理、员工电子档案管理、多维人事报告、公共参数设置。 三、人事档案管理软件系统产品作用: 1.实现人事信息的透明管理: 实现人员信息的在线管理,确保人员信息的透明性和清晰度。 2.降低企业合规风险: 实现对不同就业模式的遵守,并显着降低就业风险。 3.提高人力资源生产力: 减少人力资源部门的交易工作,大大提高工作效率。 4.提高员工敬业度: 建立多维度的员工关怀机制,以减少员工流动。 5.实现数据资源的集成: 基础人员数据的可视化和制图推动了企业的有效运作。

喔趣科技,作为中国劳动力综合管理专家品牌,致力于为大中型企业实现劳动力预测、劳动力管理、劳动力满足全过程的信息化、数字化、智能化,是为企业提供人事管理、智能排班、智慧考勤、绩效薪资、数据罗盘,灵活用工服务等全链劳动力综合管理与满足的云服务商。目前,有超过12万家企业和超过400万的企业员工在使用喔趣科技的产品服务,主要分布在零售连锁、生产制造、现代服务业、餐饮行业、国企事业单位等多个行业。

软件工程知识点总结

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

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

关于计算机软件系统复习资料

关于计算机软件系统复习资料 程序,香港和台湾对英文procedure的中文翻译,编程语言中的procedure在大陆翻译为“过程”,在港台和其他领域则翻译为“程序”。下面是的关于计算机软件系统复习资料,欢迎大家参考! 1.程序 程序是计算任务的处理对象和处理规则的描述.必须装入机器 内部才能工作。它控制着计算机的工作流程,实现一定的逻辑功能,完成特定的设计任务,计算机解题也要完成模型抽象、算法分析和程序编写三个过程。 2.程序设计语言 程序设计语言是软件的基础和组成,也称为计算机语言,是用来定义计算机程序的语法规则,由单词、语句、函数和程序文件等组成。按其指令代码的类型分为机器语言、汇编语言和高级语言。 (1)机器语言 在计算机中,指挥计算机完成某个基本操作的命令称为指令。所有的指令集合称为指令系统,直接用二进制代码表示指令系统的语言称为机器语言。 机器语言是唯一能被计算机硬件系统理解和执行的语言。因此,机器语言的处理效率最高,执行速度最快,且无需“翻译”。但机器语言的编写、调试、修改、移植和维护都非常繁琐,程序员要记忆几百条二进制指令,这限制了计算机的发展。 (2)汇编语言

汇编语言是机器语言中地址部分符号化的结果,或进一步包括 宏构造。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言(目标程序),这种起翻译作用的程序叫汇编程序,再链接成可执行程序在计算机中执行。 (3)高级语言 高级语言的表示方法比低级语言的表示方法更接近于待解问题,高级语言是最接近人类自然语言和数学公式的程序设计语言,基本上脱离了硬件系统,所以高级语言具有可读性好、可移植性好的特点。使用高级语言编写的源程序在计算机中是不能直接执行的,必须翻译成机器语言程序.所以执行效率低。常见的高级语言有BASIC语言、FORTRAN语言、C语言、Pascal语言等。一般一个高级语言源程序必须经过“缩译”和“连接装配”两步后才能成为可执行的机器语言程序。 目前,常用的编译程序有C、Visual C++、Visual Basic等高 级语言。 3.进程与线程 进程,顾名思义,是指进行中的程序。是操作系统中的一个核 心概念。进程=程序+执行,进程是一块包含了某些资源的内存区域,操作系统会利用进程把工作划分为一些功能单元。当一个程序正在执行时,进程会把该程序加载到内存空间,系统就会创建一个进程,但程序执行结束后,该进程也就消失了。进程是动态的,程序是静态的,

软件工程整理

第一章 软件工程研究的主要内容:为了在有限的资金、资源和时间条件下开发满足客户要求的高质量软件,需要研究与软件开发和管理相关的模型、方法、技术等。 在《计算机科学技术百科全书》中,对计算机软件作出如下定义:计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据或信息。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。 软件工程的定义:⑴IEEE在软件工程术语汇编中的定义:①软件工程是将系统化的的方法用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究⑵软件工程是应用计算机科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源等管理。 软件工程的框架:目标,过程和原则 软件工程目标是指生产具有正确性、可用性、和开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜指软件开发、运行的整个开销满足用户要求的程度。 软件工程原则包括围绕工程设计、工程支付和工程管理所提出的以下4条基本原则 (1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑 (4)重视软件工程的管理 软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。 软件生存周期分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护 软件过程是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。 软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合;二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型、并结合软件产品的具体要求进行实例化,以及在用户环境,并结合软件产品的具体要求进行实例化,以及在用户环境下运作,以此进一步提高软件生产率,降低成本。 软件过程模型也称软件开发模型,是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有:瀑布模型、演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 瀑布模型是1970年由W.Royce提出的,它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件产品。其特征是:接受上一阶段活动的结果作为本阶段活动的输入 依据上一阶段活动的结果实施本阶段应完成的活动 对本阶段的活动进行评审 将本阶段活动的结果作为输出,传递给下一阶段 瀑布模型也逐渐暴露出它的不足(1)不少软件的需求存在着不确定性,(2)如果发现不满足客户需求的问题,那么修改软件的代价是巨大的 演化模型,是从构造初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 增量模型融合了瀑布模型的基本成分和演化模型的迭代特征,强调每一次增量都发布一个可运行的产品。特征:(1)适用于需求经常发生变化的软件开发(2)在市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品,此时也适宜用增量模型进行开发(3)能有计划的管理技术风险

软件工程知识点

第一章软件工程概述 一、软件的定义和特性(P2—P3) 定义:软件=程序+数据+文档 程序:按照事先设计的功能和性能要求执行的指令或语句序列 数据:程序能正常操纵信息的数据结构 文档:描述程序操作和使用的文档 特性: (1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体; (2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理; (3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件; (4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题; (5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。 * 掌握P4图1-2(b)软件失效率曲线 二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2) 共经历了四个阶段 特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术 第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机 第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件 第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。 三、什么是软件危机?其产生的原因是什么? 定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。(P4) 原因:(P5) (1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求; (2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致; (3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验; (4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误; (5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化 (6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。 四、什么是软件工程?它的目标和内容是什么? 定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并对方法的研究。(P6) 目标:在给定的成本和进度前提下,开发出具有可修改性、可理解性、可维护性、有效性、可靠性、可适用性、可重用性、可移植性、可跟踪性和互操作性并且满足用户需求的软件产品。(P7) 内容:主要内容包括软件开发技术和软件工程管理两方面。(P6) 要素:方法,工具,过程 五、什么是软件生存周期?它有哪几个活动? 定义:(software life cycle)把软件产品从形成概念开始,经过定义、开发、使用和维护直到最后退役的全过程。 活动:软件定义、软件开发、软件使用维护和退役(P9)

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