FXT352097_1112软件工程

FXT352097_1112软件工程
FXT352097_1112软件工程

软件工程复习题

一、单项选择题

1.以下不属于面向对象开发方法的是 ( A )

A)SA/SD方法 B)Coad与Yourdon方法 C)OMT方法 D)Bootch方法

2.以下不是调试的任务的是( A )。

A)找出程序是否有错 B)找出错误的位置

C)找到程序错误原因 D)纠正找到的错误

3.若有一个计算型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的

角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( D )。

A)条件覆盖法 B)等价分类法 C)错误推测法 D)边界值分析法

4.软件需求分析就是把软件功能和性能总体概念描述为具体的( B )。

A)项目开发计划 B)软件需求规格说明 C)设计说明书 D)可行性分析报告

5.目前流行的C语言属于第( C )代程序设计语言。参看: P192

A)一 B)二 C)三 D)四

6.软件开发的资源中,(C )是最重要的资源。

A)人力资源 B)硬件资源 C)软件资源 D)软件复用性及软件部件库7.数据流图(DFD图)中表示“加工”的图形符号是( D )。

A)箭头 B)双横线 C)矩形框 D)圆

8.N-S图,也称盒图,是( B )时使用的一种图形工具。

A)系统结构设计 B)过程设计 C)数据设计 D)接口设计

9.结构化程序设计的原则中要求每一个控制结构( A )。

A)只能有一个入口和一个出口 B)可以有一个入口和多个出口

C)可以有多个入口和一个出口 D)可以有多个入口和多个出口

10.可行性研究主要集中在以下四个方面,其中( B )是最难决断的方面。

A)经济可行性 B)技术可行性 C)法律可行性 D)抉择

11.允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所

有逻辑路径进行测试的测试用例设计方法是( B )。

A)黑盒测试 B)白盒测试 C)选择测试 D)穷举测试

12.软件需求分析的主要任务是解决目标系统的( A )的问题。

A)做什么 B)怎么做 C)是否做 D)对谁做

13.以下不是软件需求分析时进行系统动态分析的图形工具是( D )。

A)状态迁移图 B)时序图 C)Petri网 D)E-R图

14.CASE是( D )的英文简称。

A)计算机软件 B)软件工程 C)计算机工程 D)计算机辅助软件工程

15.因计算机外部环境或数据的变化而做出的修改软件的过程称为( C )。

A)纠正性维护 B)完善性维护 C)适应性维护 D)预防性维护16.版本控制是属于( B )的一项技术。

A)软件分析 B)软件配置管理 C)软件设计 D)软件编码

17.软件项目计划的第一项活动是确定软件的(B )。

A)定义 B)范围 C)用户 D)成本

18.α测试和β测试是在( C )阶段进行的。

A)单元测试 B)组装测试 C)确认测试 D)系统测试

19.数据流图(DFD图)是( C )中使用的图形表达工具。

A)JSD方法 B)OMT方法 C)SA方法 D)Booch方法

20.数据字典是对数据定义信息的集合,它所定义的对象都包含于( A )

A)数据流图 B)程序框图 C)软件结构 D)方框图

21.以下不是软件需求分析时进行系统动态分析的图形工具是(D )。

A)状态迁移图 B)时序图 C)Petri网 D)E-R图

22.以下过程设计表达工具中,不是图形工具的是( D )。

A)PFC B) N-S C)PAD D)PDL

23.软件度量各种方法中的LOC度量法是一种( B )。

A)面向规模的间接度量 B)面向规模的直接度量

C)面向功能的间接度量 D)面向功能的直接度量

24.在以下度量模块独立性的内聚准则的部分内聚类型中,内聚性最弱的是( A )。

A)逻辑内聚 B)时间内聚 C)功能内聚 D)通信内聚

25.软件模块结构改进的几种试探性原则中,控制范围和作用范围原则是指( C )。

A)控制范围在作用范围之外B)作用范围在控制范围之外

C)作用范围在控制范围之内D)控制范围在作用范围之内

二、填空

1.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试

用例,并利用这些测试用例去______运行程序_____________,以发现程序错误的过程。

2.软件工程过程通常包含_____软件规格说明___、软件开发、___软件确认__和软件演

进四个基本活动。

3.可行性研究主要集中在_____经济可行性、技术可行性、法律可行性和抉择

_______________________四个方面。其中_____技术_______可行性理最难决断的方面。

4.______需求分析__________所要做的工作是深入描述软件的功能和性能,确定软件设

计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。

5.如果系统结构图是___________完全因子分解_______________的,就是最好的系统。

6.一个适中的模块大小是其语句行数在____50~100_________左右,最多不超过500行。

7.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试

用例,并利用这些测试用例去______运行程序_____________,以发现程序错误的过程。

8.在SC中不能再分解的低层模块称为_____原子模块_____。

9.软件模块的三个基本属性是_____功能、逻辑和状态____。

10.______功能需求_________是软件最主要的需求。

11.软件设计的“最佳”方案是指具有较高的的生产率、较高的___可靠性和可维护性____

的方案。

12.软件质量度量的方法有___精密度量___、全面度量和简易度量3种。

13.由一个用户在开发环境下,或者由开发机构内部的用户在模拟实际操作环境下进行的

确认测试称为____α测试______。是受开发者控制的测试,注重于软件产品的_____界面和特色_______。

14.如果一个判定的作用范围包含在_____________这个判定所在模块的控制范围

_____________________之内,则这种结构是简单的。

15.从转储的内存数据进行排错的方法叫做______强行排错_________。

16.OOP中,每个对象可用其一组___属性_____和它可以执行的一组____操作___来定义。

17.在DFD中,圆表示一个________加工________。

18.需求分析是解决软件____做什么______的问题;软件设计是解决软件___怎么做

______的问题。

19.大量工业研究表明:在软件生存期的开发阶段中,软件设计这一步将引入大约

_______50%~65%_________________%的错误。

20.JSD方法是一种面向_____数据结构____________的分析和设计方法。

21.在一个类中,每个___对象__都是类的实例。

22.SADT是指__________结构化分析设计方法_________________________。

23.软件需求的______逻辑视图(逻辑模型)____________给出软件要达到的功能和要处

理的数据之间的关系,而不是实现的细节。

24.在事件或数据产生时,立即予以处理,并及时反馈信号,控制需要监测和控制的过程

的软件称为____实时处理___________软件。

25.CASE是指__________计算机辅助软件工程_______________,它将各种软件工具、开

发机器和一个存放开发过程信息的工程数据库组合起来形成一个_________软件工程环境______________。

26._____软件需求___________是度量软件质量的基础。

27.McCall的质量模型中制定了____11_______个质量特性。

28.软件__生成______技术是利用可复用的模式,通过生成程序产生一个新的程序或程序

段。

29.PSL/PSA是一种_______系统分析__________工具。

30.从软件工程的观点,程序语言的特性应着重考虑_________软件开发项目的需要

_______________。

31.软件测试的目标是___________想以最少的时间和人力找出软件中潜在的各种错误和

缺陷__________________________________。如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与____需求说明____________相符。

32.根据经验一个设计得较好的软件模块结构,平均扇出是___3~4__________。

33.典型的系统结构形式有_____________变换型系统结构和事务型系统结构

_____________________________两种。

34.软件生存期模型是从___________软件项目需求定义__________直至软件被废弃为止

的生存过程。

35.从一些错误征兆着手,通过分析它们之间的关系来找出错误的方法叫做____归纳____

法。

36.计算机中的数据包括数据流、数据内容和__数据结构__。

37.一个面向对象的程序的每一成分应是____对象_______,计算是通过新的对象的建立

和对象之间的通信来执行的。

38.____语句_______覆盖是通过测试使得程序中每一可执行的语句至少执行一次。

39.软件________生存期模型___________是描述整个软件生存期的系统开发、动作和维

护所实施的全部过程、活动和任务的结构框架。

40.成本效益分析是从_____经济______角度评价开发一个新的软件项目是否可行。

41.模块间共享同一全局变量的耦合称为___外部___耦合。

42.按记录的组织方式,文件分为顺序文件、直接存取文件、索引顺序文件、分区文件和

虚拟存储文件以及___倒排文件__六种。

43.DFD的中文名称为数据流程图,它以图形的方式刻画数据流从_______输入到输出

__________的移动变换过程。

44.所有软件定义与开发工作最终是为了解决_____数据处理_________问题,也就是将一

种形式的数据转换成另一种形式的数据。其转换过程必定经历___输入________、加工数据和产生结果数据。

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

46.自顶向下,逐步细化的过程实际上是一个________反复推敲_________的过程。

47.机器语言和汇编语言都称为面向______机器______的语言。

48.软件的特点之一是开发过程中没有明显的_______制造过程________。

49.如果数据设计得好,往往能产生很好的_______模块独立性________,具有很强的

_____________和较低的________程序复杂性_____________。

50.结构环境图建立了待实现系统与系统运行环境之间的_____信息边界___________。

51.软件_____质量保证___________是指为保证产品和服务充分满足消费者要求的质量

而进行的有计划、有组织的活动。

52.程序效率是指程序的____执行速度__以及程序___占用的存储空间___。

53.软件需求分析将____软件计划___阶段所确定的软件范围逐步细化到可详细定义的程

度,并分析出各种不同的软件元素,然后为这些元素找到可行的__解决方法__。54.软件的____可靠______性表明了一个程序按照用户的要求和设计的目标,执行其功能

的正确程度。

55.软件的可移植性是指当把软件移植到不同的运行环境时,不需改变其___规格______

就能照原样工作的特性。

56.大型软件是指由_____5到10_____人在两年多的时间里完成的5万到10万行的程序。

57.SC图中_____模块________是用矩形框来表示的。

58.为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误使用,应当进

行的诊断和改正错误的过程,叫做_____改正______性维护。

59.___软件的需求______是软件发展的动力。

60.测试用例是指输入数据及其__________预期的输出结果________________。

61.软件是一种_____逻辑________实体。

62.JSD方法把____数据结构__的描述映射成程序结构描述。

63.JSD方法以_____进程模型_________来反映现实系统的抽象。

64.瀑布模型最突出的缺点是缺乏__灵活__性。

65.判定覆盖是通过测试使得程序中____每一判定的每一分支____至少执行一次。

66.OMT是指________对象模型技术____________________。

67.软件需求的__逻辑_描述是软件设计的基础。

68.模块内的所有功能部分都是基于同一数据结构,则它属于______信息内聚_________

模块。

69.软件效率应以_____需求_________为准,不以人力所及为准。

70.度量模块独立性的两个准则是模块间的____耦合_____和模块的__内聚_______。

71.在需求分析过程中___数据模型___是首先要集中考虑的问题。

72.Goto语句对程序的______清晰性________有很大的破坏作用。

73._______数据结构_________是数据的各个元素之间的逻辑关系的一种表示。

74.第一个真正广泛使用的高级语言是_____PL/1________

75.

三、简答

1.有人说软件就是程序,这种说法正确吗?请从软件的概念分析你的结论。

参考答案纲要:(另请参考教材P1进行更详细的阐述。)

软件≠程序,软件=程序+数据+文档。

其中程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。

将软件片面的同程序等同起来,没有清楚地认识到文档的重要性。

2.系统工程师在需求分析中扮演着什么样的角色?它(们)应具备什么样的素质?

参考答案纲要:(另请参考教材P42-46进行更详细的阐述。)

系统工程师处于用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁的作用。

系统工程师应当具备如下6个方面的素质:

1)能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。

2)善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成份,并给出简明、清晰的描述。

3)善于从相互冲突或混淆的原始资料中抽出恰当的条目来。

4)善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件5)能够倾听他人的意见,注意发挥其它人员的作用。

6)具有良好的书面和口头交流表达能力。

3.试述调试的原则。

参考答案纲要:(另请参考教材P254进行更详细的阐述。)

在确定错误的性质和位置时应该用头脑去分析思考,避开死胡同,适当借助调试工具,避免用试探法

在修改错误时应该注意错误错误的群集现象,修改要彻底,避免引入新的错误,修改源代码而不是修改目标程序

4.简述在编码阶段实现算法的指导原则。

参考答案纲要:(另请参考教材P189进行更详细的阐述。)

1)在编程序前,尽可能化简有关的算术表达式和逻辑表达式;

2)仔细检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面;

3)尽量避免使用多维数组;

4)尽量避免使用指针和复杂的表;

5)采用“快速”的算术运算;

6)不要混淆数据类型,避免在表达式中出现类型混杂;

7)尽量采用整数自述表达式和布尔表达式;

8)选用等效的高效率算法。

5.试述白盒测试和黑盒测试的特点和测试内容。

参考答案纲要:(另请参考教材P208-209进行更详细的阐述。)

1)黑盒测试把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构

和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能

说明。因此墨盒测试又叫做功能测试或数据驱动测试。

2)白盒测试是对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个

打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择

测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定

实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测

试。

6.什么是软件工程?它包括哪些要素?各要素的作用是什么?

参考答案纲要:(另请参考教材P15进行更详细的阐述。)

软件工程是指用工程化的原则(科学的方法技术和管理手段)进行软件的开发和维护。

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

软件工程方法为软件开发提供了“如何做”的技术;软件工具为软件工程方法提供了自动或半自动的支撑环境;软件工程的过程是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。

7.试述Pressman对数据规格说明的原则。

参考答案纲要:(另请参考教材P110进行更详细的阐述。)

有如下7个原则:

1)用于软件的系统化方法也适用于数据

2)要确定所有的数据结构和在每种数据结构上施加的操作

3)应当建立一个数据字典并用它来定义数据和软件的设计

4)低层数据设计的决策应推迟到设计过程的后期进行

5)数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道

6)应当建立一个存放有效数据结构及相关操作的库

7)软件设计和程序设计语言应当支持抽象数据类型的定义和实现

8.结构化程序设计有哪些原则?

教材P175~176。包括6条原则!

9.哪几种情况的软件可以称为容错软件?它们有哪些共同的方面?

教材P362~363。分4种情况,有3种共同面。

10.简述UML中视图、图的概念。说明视图与图的关系,说明各种视图、各种图的作用。答:视图用来表示被建模系统的各个方面。

视图由多个图(Diagrams)构成,它不是一个图片(graph),而是在某一个抽象层上对系统的抽象表示。

如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊的方面。

有5种视图,分别是

1)用例视图(Use-case view):用于描述系统应该具有的功能集,它是系统的外部用

户所能观察到的系统功能的模型图。

2)逻辑视图(Logical view):展示了系统内部如何提供系统的功能。它利用系统的

静态结构和动态行为来刻画系统功能,

3)构件视图(Component view):用来显示代码构件的组织方式。它描述了实现模块

(implementation module)和它们之间的依赖关系。

4)并发视图(Concurrency View):用来显示系统的并发工作状况

部署视图(Deployment View):用来显示系统的物理架构,即系统的物理部署。

UML 中包含用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图、部署图共九种。

1)用例图定义的是系统的功能需求

2)类图用来表示系统中的类和类与类之间的静态关系。

3)对象图是类图的一个实例。它及时具体地反映了系统执行到某处时系统的工作状

况。

4)状态图显示了类的所有对象可能具有的状态以及引起状态变化的事件。

5)顺序图反映若干个对象之间的动态协作关系,主要用来显示对象之间发送消息的

顺序,显示了对象之间的交互。

6)协作图,反映的也是动态协作.除了显示消息变化(称为交互)外,协作图还显示了

对象和它们之间的关系(称为上下文有关)。

7)活动图反映一个连续的活动流。活动图常用于描述某个操作执行时的活动状况。

8)构件图用来反映代码的物理结构。

部署图用来显示系统中软件和硬件的物理架构。

四、应用

1.某业务是将学员发来的信件收集分类后,按几种不同的情况处理。

1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,

检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。

2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文

件上做相应的修改,并给学生注销单。

3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。

要求:画出数据流程图和软件结构图。

参考数据流程图:

参考软件结构图:

2.图书馆的预定图书子系统有如下功能:

(1)由供书部门提供书目给订购组;

(2)订书组从各单位取得要订的书目;

(3)根据供书目录和订书书目产生订书文档留底;

(4)将订书信息(包括数目,数量等)反馈给供书单位;

(5)将未订书目通知订书者;

(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。

要求:画出数据流程图和软件结构图。(15分)

3.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键

入系统。如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

要求:画出数据流程图和软件结构图。

参考数据流程图:

参考软件结构图:

软件工程实训心得体会3篇

软件工程实训心得体会3篇 软件工程实训心得体会一:软件工程实训心得体会 这次软件工程实训是从2010.12.26号开始的,截至2010.12.31号.实训内容是用java相关知识(主要是jsp)做一个物流配送系统.下面谈谈对这次实训的看法. 因为自己平时对java知识储备不足,特别是jsp这一块基本不了解怎么回事,所以一拿到这个项目,我心里都是没有底的,再加上我被分到的那个组,我知道就意味着是我一个人在战斗了.呵呵,26号,实训开始了,我们的老师是来自中软国际公司的程序员,一个是周褀,一个是朱映,都是一身朴素的着装,让我感觉做软件的也没什么两样.老师介绍了自己之后,就直接切入正题了,分析了下我们各个组的系统,即将用到的知识,然后就总体把觉得需要补充的知识(jsp和数据库连接等这几块)给我们实际操作了下,因为当时看到用jsp,还讲的那么认真,当时我就后悔了,平时要是多听点,现在老师这么认真的给我们讲,这是一个多么难得的机会啊.后悔也没用啊,开始还勉强能理解一点,后来就直接晕了.然后再给大家介绍了一些即将用到的工具,比如rationalrose,svn,myeclipse等等.接下来的几天就不再细讲了.下面谈谈通过这次实训的心得体会吧. 通过这次实训,让我了解到工程开发的过程,可行性分析——> 需求分析——> 概要设计——> 详细设计——> 代码编写——> 测试——> 验收.从技术方面上,我开始jsp基础基本上就是零的,在老师和syz2(另外一个物流小组,我一个人基本上是跟她们做的,或者说是

看着她们做的)的帮助下,对jsp有了一个大概的认识.其实实训开 始前,我还以为做个系统没什么大不了,可是当真正拿到一个项目,我却真的无从下手了,而且就是在知道需求分析和详细设计,在代码编 写时,一样寸步难行.通过这个实训,也让我了解到,团队协作是多么 的重要.一个人的精力是多么的有限.进一步理解到,企业为什么如此重视团队协作.同时借用老师的话就是团队协作固然重要,但是是建 立在个人素质的基础上,假设你个人素质不行,将会影响到整个团队,就别提对团队作更多贡献了.**老师说这几句话的时候,朝向了我,估计是有特殊意义的吧,所以,我将谨记老师的教导. 还有一个收获是从一个同学(小胖)那里得到的,他的那组成员跟我的这组大体一样,我倒是觉得没什么了,不过他倒是很重视这个 问题吧.然后他说出来,我也觉得这个问题确实其实是个大的问题.就是不管你会不会这门技术,会不会做这个东西,态度要正确才好,就算你不会做,你也应该认真的对待,将来出身到社会,就不是说像你现在,不会做就不做,跑去玩游戏了.小胖说出了这段话,也在我身上有了一个印证,虽然我jsp技术知识为0,但我也还是在认真的跟着他们一 起做,不会做,就多问,毕竟现在我们是学生,可以毫不顾忌的询问各 种问题,老师也会尽力为你回答.将来出身社会就不一样了.虽然,我 就算个打酱油的水平,但是这个酱油也要打得有涵量啊.不管怎么样,我能对自己有个交待,虽然我不会,但是这次实训我确实是认真对待了,六天的实训,除了晚上加班外,还花了2个通宵来完成不同阶段的任务,完成与否也不重要了,我至少我做了,这点,是这次我应该对自 己的一个肯定. 这次实训的心得基本上就是这些了,最后特别感谢中软国际带我们的那两个老师(周褀,朱映),这两个老师对待我们很平易近人,对我们提出的问题,总是不光解决了,还进行了扩展,晚上也跟我们一起加班加到很晚,印象尤其深刻就是朱映老师为了给小胖解决一个问题, 脸都变红了,还在继续努力,这点我并不会觉得老师知识储备不够,我想应该是这个问题的突发吧,一时没想到怎么处理.相反让我感觉更 多的就是老师很认真,很负责.还要感谢就是syz2小组的倾力支持, 辅导. 软件工程实训心得体会二:软件工程实践学习心得(2607字)

软件工程期末试题(含答案)解析

填空题(每空 1 分,共25 分) 1.软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试 和运行和维护。 2.基于软件的功能划分,软件可以划分成___系统软件_、支撑软件、应用软件__三种。 3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方案 可行性等方面研究。 4.系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式 描绘系统里面的每个部件 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据 存储文件。 6.结构化分析方法是面向_数据流_进行需求分析的方法。结构化分析方法使用_数据 流图DFD_与_ 数据字典_来描述。 7.继承性是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为 3 类,即_图示工具_、_设计语言_和_表格工具_。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查__、复查和管理复审、___ 测试_。 10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。单项选 择题(每小题2分,共20 分) 1.软件设计中划分模块的一个准则是( C )。 A、低内聚低耦合 B.低内聚高耦合 C.高内聚低耦合 D. 高内聚高耦合 2.Jackson 设计方法是由英国的M. Jackson 提出的,它是一种面向( C )的软件设计方法。 A 、对象 B.数据流 C.数据结构 D.控制结构 3.试判断下列叙述中,哪个(些)是正确的( C )。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B 、b C 、c D 、 b 和 c 4.( A )是用户和设计交换最频繁的方法。 A 、原型化方法B、瀑布模型方法 C. 螺旋模型方法D、构件组装模型 5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主 要保证是( C )。 A 、硬件环境 B 、软件开发的环境 C. 软件开发工具和软件开发的环境D 、开发人员的素质 6.20 世纪50 年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言 ( D )。 A、PASCAL B、VISUAL BASIC C. C++ D、汇编语言 7.软件测试的目的是?( D ) A 、证明软件的正确性 B. 找出软件系统中存在的所有错误 C.证明软件系统中存在错 误 D. 尽可能多的发现软件系统中的错误 8.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。A、程序的内 部逻辑 B 、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 9.软件维护工作的最主要部分是( C )。

软件工程心得体会

软件工程心得体会 未接触软件工程之前一直都很想学这门课程,因为觉得这门课很牛,是那些有工程师称号的高手才摆弄的东西。学了一个学期的软件工程课,终于知道了个软件工程的大概。学的时候总觉得很抽象,理解起来好像不难,但总是摸不着头脑一种很茫然的感觉。 曾经以为程序就是软件,软件就是程序。学习这门课程第一个收获是,知道了二者的不同之处。以前做过的一些小型的软件比如加密软件,我也只是在程序旁边附上一个软件的说明,看来已经很接近作坊了。不过大的项目没有接触过,用软件工程的方法还是第一次。我想也是程序的不断复杂化导致了软件危机的发生,使得人们不得不探索新的解决方法。 经过倪老师的讲解,理解了软件工程,就是一套用于软件的团队开发,以提高软件质量和程序员工作效率为目的的规范。其核心就是,对于软件开发的5个重要组成部分:需求分析,设计,编码,调试,维护,如何组织这5个部分的工作,以及如何完成每一个工作。 吾生也有涯,而知也无涯,学习永无止境。起初,对软件工程处于一知半解的状态,分工比较混乱。在划分模块后明确了各自分工,渐渐形成良性循环。 在学习过程中,知道了团队合作十分重要,争议固然存在,但通过讨论、协商,群策群力,在不断磨合中能够达成一致与默契。团队成员中能力各有高下,互相尊重,各取所长,不宜妄自菲薄。组长多加协调,组员积极配合,才能合作愉快。 学习能力体现在能尽快接受新的知识,顺应变化,学为所用。上《软件工程导论》这门课,我的收获大概如下: 我们为什么需要软件工程呢?上面已经给出了一些原因。专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见(我是这么认为的)。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。 其实开发软件,就像是解决一个逻辑问题。想想自己平时是怎样写程序的。首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和DEBUG。在我看来,除了第一步外,其余的步骤应该是一个循环的过程。在编码的过程中,你总是需要不断地回过头来修改原先的模块设计,甚至最初选定的实现算法。 具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。 1.可行性分析就是关于当前项目能不能干的分析结果。 2.项目描述这是在决定立项以后,对当前项目的一份扼要说明。 3.需求分析就是对客户要求的功能的定义。 4.软件设计这就是对程序的每一个模块的详细设计的说明文档。 5.开发日志我一直都认为这是文档中最有趣的部分。开发日志相当于编码阶段的文档,它的形式可以很随意,主要是记录一些在写程序时突然萌发的灵感,或对代码的一些微小的修改,或对程序结构的一些微小变动等,还要对上述这些修改变动作些说明。 6.测试分析用于指出程序存在或潜在的缺陷和错误,以及程序性能的数字描述。

软件工程实习心得体会-

软件工程实习心得体会| 软件工程实习心得体会一 时间过的很快,转眼间已经实习将近5个月,其中有2个月是属于完全被流放的。 最先在内部系统组参与内部管理系统开发 (struts+mysql+spring+hibernate),之后是去做网络交换机软件的脚本测试。现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。 至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。 1、浅谈测试 一直以来,我都认为测试是脱离了软件工程范围的工作,不以为屑。但在实际情况中,测试是既重要且难以精湛的.其真正的压力,在于找不到bug,责任在你,而不在于编码人员。一般的测试人

员不懂编码,他们靠的是日以累计的经验总结和想象力。而要做到高级测试工程师,则一定要懂编码,因为这是你完全掌握整个系统的方方面面具体运作的前提。但占主导地位的,还是大型系统的集成测试经验。实际项目中,编码时间一般只占30%左右,真正耗费时间的是it阶段的找bug与对应bug,此阶段基本评定了coder的编码质量。 2、程序员的困惑 有些人,以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那?如何定位?如何解决?通通跟一样能力有关,debug追踪能力,也称调试。在项目组工作不愁源码资源,但问题是蛋糕摆在面前,你如何去消化? 有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题。但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然

软件工程导论-期末题库(完整版)

1.填空题 1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。 2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。 3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。 4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。 5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试) ____ 6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。 7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。 8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。 9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。 10.实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。 11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。 12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。 13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

软件工程试题与答案 (6)

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程实习总结

实习总结 光阴荏苒,时光飞逝,转眼间到了实习结束的日子。从进公司实习到现在,我已经到公司近6个月了,感受颇多,收获颇多。期间,通过公司领导的关心和帮助,同事的指导,使我能够很快地了解公司的管理与运作程序,我了解了公司的发展概况,熟悉了公司的流程和行业的基础知识,使我逐步学会如何从一个刚出校门不久的实习生转变成一个职员。以下是我这一阶段的工作总结。 学习无止境,职业生涯只是学生生涯的一种延续。对于一个实习的学生,初踏入职场,进入专业的软件公司,对开发软件没有一点经验。不论在人生的哪个阶段,学习的脚步都不能停歇,要把工作视为学习的殿堂。所以在这几个月当中,我一边学习,一边从最基础的事情做起,这样的好处在于能够在工作的过程中,了解项目的整体布局,了解项目中的业务逻辑,了解项目中尚未完成的工作并以此作为下个阶段的工作目标。在这几个月的工作中,我的主要任务是对客户使用的map系统进行测试,并且做相应的文档记录和一些简单的配置修改。几个月里,我工作勤勤恳恳,并按时完成安排的任务。尽最大的努力解决客户在工作中遇到的问题,从中我也学到了在学校里学不到的东西,也明白了很多道理,我相信对我以后的工作都将大有裨益。其它方面,我全力协助公司的工作,在公司人手较忙的时候,为公司分担事务,圆满地完成公司委派的任务。 在这几个月的工作中,最初我会遇到一些我解决不了的问题,我会咨询公司另两位同事王鹏、孙距均。在他俩的指导和帮助下,我的技术技能不断提升,对整个MAP 系统和配置工具的使用逐步熟练,思维方式和工作方法也不断提升,直至到目前我基本能解决客户在使用MAP系统过程中遇到一般问题的问题。 在近6个月的工作过程中,我在领导和同事们的帮助和支持下取得了一定的进步,但我深知自己还存在很多缺点和不足,与工作需要还有一定的差距。在工作中未能考虑的各种因素还有很多,比如:对整个MAP系统的掌握还不够熟练、工作的灵活性还不够、服务意识还有待提升等等,这都有待于在今后的工作中改进。虽然我目前的工作只是做基础方面,希望在下一年度公司能够委派我做一些其它工作,使我在工作中不断提升自己,同时也为公司分担一些事务,使我逐步做一名合格的项目实施人员。做软件的人必须要随时充电,在今后的工作中,我要积累经验教训,

软件工程作业第一章

1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。 危机原因: 1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。 2、主客观不相适应。 ●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; ●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ?基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。 ?软件工程定义:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. ?软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。 本质特性:P6 消除软件危机:软件工程基本原理7条。 1-6 什么是软件过程?它与软件工程方法学有何关系? ?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任

务的工作步骤。

?过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。 1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。优点:文档驱动。 强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。 缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品 适用范围:软件需求明确。 原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。需求分析入手快速、表达直观、容易交流。重点解决瀑布模型需求分析入手难的问题。 优点:关注满足需求。

期末软件工程资料整理

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

软件工程实训报告总结

软件工程实训报告总结 软件工程实践作为软件工程专业本科生企业实习前的综合实践课程在培养体系中占有重要地位,怎样写软件工程实训报告? 篇一:软件工程实训总结转眼间实训已过去一段时间,之前的兴奋、喜悦如今已经让我熟悉,在实训的每一天都会让我有成为一名真正的财富者拥有的冲动。也许,在这期间不一定会让一个人有着翻天覆地的变化,但变化就是这样一点一点产生的。通过这一期的实训,虽然倍感折磨,但是收获却是很大的,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦。 在实训的过程中,我深深的体会到了自己在专业知识方面的欠缺和不足,也意识到了自己作为计算机软件专业的学生,要想在以后的 职业中崭露头角,除了要有过硬的理论知识,健康的体魄之外,还必须具备良好的心理素质,是自己在以后的途中无论经历什么样的困难,都立于不败之地。通过实训老师的课堂讲解与企业文化标准的培训,使我加深了对自己专业的认识,从而确定自己以后的努力方向,要想在短暂的实训时间内尽多的学到东西,就需要我们跟老师或同学进行良好的沟通,加深彼此的了解,只有我们跟老师多沟通,让老师更了解我们,才能更真切的对我们进行培训工作。由此,班级

的文化“共享”就在生活中慢慢形成了。 “纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学来专业知识的匮乏。让我真真领悟到“学无止境”这句话的涵义。而老师在专业认识周到中所讲的,都是课本上没有而对我们非常有实际意义的。这又给我们的实训增添了浓墨淡彩的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。在这些过程中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中的各个成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每一个成员的意见,是我们的组合达到更加完美。 这次实训除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心就由然而生,这应该就是工作的乐趣。有时候不懂的就需要问别人了, 虚心请教,从别人的身上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功。还有学会了在工作中与人的合作与交流,同乐同累,合作互助,这是团体的精神,也是必须学习的东西。

软件工程课后练习1

第一章 1、软件由计算机程序、数据和组成。 2、软件与硬件有很大的区别,它是一种抽象的实体。 3、软件的发展经历了三个时期:程序设计、程序系统和。 4、软件工程的三个基本要素包括、和。 5、瀑布模型是将软件生存周期的各个活动规定为以顺序连接的若干阶段的模型。它规定了各阶段的活动由前至后,相互衔接的固定次序。 6、原型模型是一种非整体开发模型。先开发一个软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意产品。 7、螺旋模型将开发过程分为若干个螺旋周期。在每个螺旋周期内分为四个工作步骤:制定计划、、实施工程、。 1、软件产品的生产过程主要是 ____。 A. 制造 B. 复制 C. 开发 2、是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护。 A. 软件过程 B. 软件生存周期 C. 软件工程 3、全面准确地描述“软件系统必须要做什么”是以下____阶段的主要任务。 A. 可行性研究 B. 需求分析 C. 软件设计 D. 程序编码 4、软件生存周期中持续时间最长的是____阶段。 A. 需求分析 B. 软件设计 C. 软件测试 D. 软件运行/维护 5、以下叙述中不属于软件危机的主要表现是____。

A. 软件成本太高 B. 软件产品无法满足用户需求 C. 软件开发人员明显不足 D. 软件开发效率低 6、在以下软件过程模型中,___适合于大型软件的开发,并引入了风险分析的概念。 A. 瀑布模型 B. 原型模型 C. 螺旋模型 D. 增量模型 7、为保证软件开发过程能够跟上技术的进步,必须不断地灵活地改进软件工程____。 A. 工具 B. 过程 C. 方法 8、软件工程中描述瀑布模型一般包括计划、____、设计、编码、测试、维护几个阶段。 A. 需求分析 B. 需求调查 C.问题定义 D. 可行性研究 1、什么是软件,有哪些特点。 2、软件危机的主要表现有哪些? 3、什么是软件工程,包括哪些基本要素,简要说明这些要素的作用。 4、什么是软件生存周期,通常划分为哪些阶段? 5、比较瀑布模型、增量模型、原型模型和螺旋模型各自的特点。 6、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该软件将被抛弃。选用哪种软件过程模型比较合适?说明选择的理由。 7、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了

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

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

软件工程模型

软件开发的V模型的优缺点? V模型是最广为人知的测试模型。 最典型的V模型版本一般会在其开始部分对软件开发过程进行描述 图1 V模型的各级开发阶段 这是古老的瀑布模型。作为开发模型, 在V模型中,测试过程被加在开发过程的后半部分,如下图所示: 图2 V模型示意图 单元测试所检测代码的开发是否符合详细设计的要求。集成测试所检测此前测试过的各组成部分是否能完好地结合到一起。系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。而验收测试则检测产品是否符合最终用户的需求。 预验收测试 可行性分析-------> 验收测试 ↘预系统测试↗ 需求分析-----> 系统测试 ↘预集成测试↗ 概要设计----> 集成测试 ↘预单元测试↗ 详细设计-> 单元测试 ↘↗ 编码 这就是软件测试的V模型 V模型的缺陷 仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段 忽视了测试对需求分析,系统设计的验证,一直到后期的验收测试才被发现。 W 模型: 上次说到V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则。在V模型中增加软件各开发阶段应同步进行的测试,演化为W模型。在模型中不难看出,开发是“V”,测试是与此并行的“V”。基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE1012-1998《软件验证与确认(V&V)》的原则。 W模型由Evolutif公司提出,相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。 W模型也有局限性。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。 W模型也被称为双V模型,在每个开发阶段,测试都可以介入,并执行编写、评审、基线化的过程。双V模型的第一条线代表开发,第二条线代表测试准备,第三条线是测试执行。他的模型是这样的: SRS编写 STP编写 SRS评审STP评审 ST系统测试 SRS基线化 STP基线化HLD编写 ITP编写 HLD评审 ITP评审IT集成测试 HLD基线化 ITP基线化 LLD编写UTP编写 LLD评审 UTP评审 UT单元测试

《软件工程》学习心得

《软件工程》学习心得 时光匆匆,不知不觉间《软件工程》的课程已经快学完,虽说没有具体的项目来开发应用,但我们知道软件工程就是将系统化的,规范化的,可度量的方法应用于软件的开发,运行与维护的过程,在整个学习期间,总的来说还就是学到了很多实用的东西,老师的介绍,教会我们如何去分析与处理问题,教会我们编写项目软件的流程与注意事项,总的来说还就是获益匪浅的。 初学软件工程,或许很多人都会迷茫,不知道软件工程学有何用,其实,软件工程还没有精确地定义,但老师的实例我就是深有体会,比如巧用建筑学知识,软件工程可以指导您分析出框架结构,项目实现的大体步骤及具体的细节等等,高效的开发、使用及维护软件,软件工程就是必不可少的。 下面我来回顾一下各章的内容,第一章初识软件工程,这一章主要讲解的就是一些概念性与基础性的内容,例如软件的概念、特性,软件危机的主要表现,软件工程的概念以及软件生存期、典型生存期模型等等。第二章软件需求分析,这一章主要讲了需求分析的任务,需求分析的步骤及各种描述工具、分析文档;需求的各种描述工具有实体关系图、数据流图、数据字典、等等;这就是软件项目开发的第一步。第三章软件设计,本章详细介绍了概要设计、详细设计及用户界面设计,我们掌握概要设计方法及详细设计方法。第四章程序编码,这一章重点讲解了结构化程序设计,设计风格及效率,程序设计语言的选择。第五章面向对象技术,这一章重点讲解了面向对象的概念、分析及设计,掌握什么就是面向对象,面向对象有哪些优缺点,了解面向对象的分析与设计方法。第六章统一建模语言UML,本章讲解了静动态建模机制,理解UML的形成、内容、特点及应用领域并掌握例图、类图进行静态建模的方法。第七章软件测试,本章详细介绍了软件测试方法及黑白盒测试用例设计方法,还讲解了软件测试步骤。第八章软件维护,本章主要介绍软件维护的任务、软件维护活动以及软件维护方法进行了介绍。 在学习软件工程过程中,或许有诸多不解,我们要从整体概念上较好地理解与把握、学好软件工程,学习时要注意多瞧多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决。但就是还要注意什么都学,肯定就是什么都学不透的,要集中精力打攻坚战,学习软件工程首先要明白自己的学习目标究竟就是什么,根据自己的实际工作出发,有针对性的在相应的学习方向上进行提高,制定出详细的学习规划。还要注意与其她科目的相辅相成,就像我们在学习面向对象分析的时候要结合大一学习的面向对象及其方法学这一专业科目进行研究拓展,多思多想,把从各个科目学到的知识通汇贯通。 在写软件的时候,我们首先要有整体的结构与思路,这样才能照着一定的思想一定思路去写下去,有人说其实写软件并不难,只要给您一个思路您就可以不断地往下写。我觉得确就是如此,其实我们平时写软件我觉得并不就是很难的事,平时即使遇到处理不了的技术问题,哪里编译出现错误等等其实都可以在网上提问。技术问题一般我们都可以在网上得到答案,但软件的思想不就是我们瞧了一下就能真正理解的。

2020年软件工程的实习心得体会

软件工程的实习心得体会 导语:这学期学习了软件工程实践这门课,我觉得这是对上学期的软件工程课程学习的检验,上学期学习软件工程只是我们浅显的认识,相比之下,这学期就更加全面的说明了开发一个项目所需要的步骤以及开发项目过程中所需要注意的诸多细节。以下是为大家分享的软件工程的实习心得体会,欢迎阅读参考。 在这次软件工程课程中,我学到了很多东西,第一次深刻的体会到了什么叫做用工程化的思想来编写软件,以前自己也写过一些小型软件,没有做过大型的项目,直到这次课堂我担任组长并组织组员共同完成“个人图书管理系统”这个项目,第一次和别人合作,才发现运用工程化的思想来做是如此的有必要。 从这里,我才真正的意识到实施一个软件工程并不是说简单的会编码就能够解决问题的,我们更多的精力不是放在编码上,编码只是一个很小的模块,只占到那么小的一个部分。这个事实在很大程度上颠覆了我以前的思想,在我以前的认识中,似乎整个软件就是编码,除此无它,还好有老师的指导,不然真的会出现老师所说的,撞得头破血流之后才想起来用软件工程的思想来完成这个工作。 刚真正开始工作之前,我们费了很多的时间来完成一些前端工作,如需求分析和可行性分析,这块工作在别人看来可能是相对无关紧要,甚至是多于的,其实,换做在以前,我也会这么认为。可是,我现在算是深深地明白了磨刀不误砍柴工的道理,这些工作的完成太

有必要了,太重要了,要想你的软件有用有市场,能被别人接受和认可,在进行过程中不会出现崩溃性的问题,这些工作缺一不可。 还有就是接下来的一些设计模块,此模块与软件编码涉及比较紧密,主要是解决一些参数传递和接口通讯的问题,此模块对我的触动远没有上两个模块对我的影响大,因此再次也不做过多的介绍。 在整个活动的完成过程中,作为组长,我收获很多,我发现,要是组里有个人不怎么想做事情时,他对于整个组织的影响是毁灭性的,正所谓“一颗老鼠屎,能坏一仓谷”,以后我的组织里要是出现这样的人,我绝不会给他继续留下来的机会,我会在第一时间将他清除出去。还有就是,作为组长,你要做的最重要的事情,不是发挥自己的聪明才智,而是创造出一个平台,让别人去发挥,你所要做得,出了保证这个平台的完整性和公平性外,还有就是协调好各组员之间的关系。 这就是我的实习感想。 时间过的很快,转眼间已经实习将近5个月,其中有2个月是属于完全被流放的。最先在内部系统组参与内部管理系统开发(struts+mysql+spring+hibernate),之后是去做网络交换机软件的脚本测试。现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。 至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。 1、浅谈测试

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

复习整理 一、绪论 1.软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 ●是指导计算机软件开发和维护的一门工程学科; ●采用工程化的原理及方法对软件进行计划、开发和维护; ●把证明正确的管理技术和最好技术综合运用到软件开发中; ●研究经济地开发出高质量的软件方法和技术; ●研究有效维护软件的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1) 过程式编程范型:把程序理解为一组被动的数据和一组能 动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小 (2) 面向对象编程范型:数据及其操作被封装在对象中;程序 =对象+消息;着眼于程序中的对象,粒度比较大 (3) 基于构件技术的编程范型:构件是通用的、可复用的对象 类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大 二、软件生存周期及软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么, 有哪几个主要活动 ●定义:一个软件从开始立项起,到废弃不用止,统称为软件的 生存周期 ●目的:软件生存周期划分为计划、开发和运行3个时期;把整 个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的 任务,就能够化简每一步的工作内容,使因为软件规模而增长 而大大增加了软件复杂性变得较易控制和管理。 ●主要活动:需求分析、软件分析、软件设计、编码、软件测试、 运行维护(P19) 2、软件生命周期划分为哪几个阶段

软件工程论文 ——心得体会

软件工程课程 ——心得体会 院系:经管学院 姓名:赵歆 学号:100510128

目录 摘要 (2) 关键字 (2) 绪论 (2) 一、需求分析和概要设计。 (3) 1)需求分析 (3) 2)概要设计 (4) 三、软件工程课程设计——心得体会 (5)

软件工程课程 ——心得体会 摘要:高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每个教职工的出勤率,加班时间计算出每个教职工的月工资,还能根据每个月的情况计算出年终奖金。利用此系统能减少工资计算管理教职工数量,增加教职工效率,同时还能使公司工资管理更加合理、透明,为高校节约成本。在进行软件需求说明书设计及概要设计的心得体会。 关键字:工资管理功能心得 绪论:软件工程课程设计的题目是高校教职工工资管理系统,本文主要是对于软件工程课程设计中需求分析与概要设计分析的心得。 我们进行设计的项目是高校教职工工资管理系统。高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每个教职工的出勤率,加班时间计算出每个教职工的月工资,还能根据每个月的情况计算出年终奖金。利用此系统能减少工资计算管理教职工数量,增加教职工效率,同时还能使公司工资管理更加合理、透明,为高校节约成本。

一、需求分析和概要设计。 1)需求分析 按照软件工程的软件过程来说: 1需求分析产生了软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。 2.概要设计产生了软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。 在进行需求分析时,我们既是开发者又是用户,本系统的业务流程与业务分类的定义比较难。我们的团队进行了研讨,还充分运用了身边的各种资源,大量的查找了很多网络上关于工资系统的资料。通过资料的进行讨论、根据我们的课题进行分析,最后确定了用户的需求为: 1.本系统在高校应用后高校工资管理方面的教职工将减少至目前的50%左右; 2.本系统在高校应用后将在高校各方面的成本将会有所降低; 3.本系统在高校应用后将教职工的工资达到完全透明,计算更加精确教职工因纠纷事件减少到1%。 根据分析将系统的功能从一般教职工与系统管理者两个角度将功能划分为7个模块,当然介于我们的知识有限,有的功能没有实现:

相关文档
最新文档