文档库 最新最全的文档下载
当前位置:文档库 › 软件工程问答题

软件工程问答题

软件工程问答题
软件工程问答题

/*****************************简答题********************************************/

1.什么是软件工程?软件工程的目标是什么?

答:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。目标:1合理预算开发成本,付出较低的开发费用。2实现预期的软件功能,达到较好的软件性能,满足用户的需求。3 提高软件的可维护性,降低维护费用。4 提高软件开发生产率,及时交付使用

2.指出瀑布模型中下列任务的顺序:验收测试,项目计划,单元测试,需求评审,成本估计,概要设计,详细设

计,系统测试,设计评审,编码,需求规格说明书。

答:项目计划,成本估计,需求规格说明书,需求评审,概要设计,详细设计,设计评审,编码,单元测试,系统测试,验收测试

3.可行性研究报告的主要内容是什么?

答:可行性研究主要包括以下几个部分:

(1)概述(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明的必要的方面(10)结论

4.什么是需求分析?需求分析阶段的基本任务是什么?

答:所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。

任务:确定软件项目的目标和范围。调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作

5.什么是结构化分析方法?该方法使用什么描述工具?

答:结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。

结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止

描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图 5层次方框图6实体—关系图

7状态—变迁图

6.结构化分析方法通过哪些步骤来实现?

答:1)确定系统的功能要求 2)确定系统的数据要求 3)确定系统的操作要求和界面要求 4) 确定系统的性能要求

5)确定系统的运行要求 6)获得当前系统的物理模型 7)抽象出当前系统的逻辑模型 8)建立目标系统的逻辑

模型。9)修正开发计划 10)如果需要则开发系统原型

7.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?

答:数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

数据流图的基本符号的意思: 1.矩形表示数据的外部实体;2.圆角的矩形表示变换数据的处理逻辑; 3.少右面的边矩形表示数据的存储; 4.箭头表示数据流。

8.什么是数据字典?其作用是什么?它有哪些条目?

答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。

作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。

包括的条目:数据流词条数据元素词条数据存储词条数据加工处理词条数据源点及终点词条

9.什么是概要设计?有哪些基本任务?

答:概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则

基本的任务:设想供选择的方案。推荐最佳方案。功能分解,确定软件结构。设计软件结构。制定测试计划。数据设计。书写文档。包括总体设计规格说明书。用户手册。测试计划。设计审查和复审。

10.详细设计的基本任务是什么?有那几种描述方法?

答:详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。主要方法有设计程序流程图,表格设计符号以及过程设计语言。

11.什么是变换流?什么是事物流?

答:变换型数据流可以划分为明显的三部分:逻辑输入,中心变换,逻辑输出。事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务

12.模块的内聚有哪几种?模块间的耦合有哪几种?

答:内聚分为七种类型:巧合内聚:一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚逻辑内聚:当一个模块执行一系列相关的动作时,称其有逻辑内聚。时间性内聚:当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。过程内聚:模块执行的若干动作之间有顺序关系。通信内聚:模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。信息内聚:一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。功能性内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分

耦合分为七类:内容耦合:如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。公共耦合:如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。外部耦合:如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。控制耦合:如果

模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的。数据结构耦合:当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。数据耦合:如果两个模块传递的是数据项,则这两个模块是数据耦合。非直接耦合:如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。

1.举例说明类和对象的关系。

答:学生可作为一个类---学生类,每个学生就是这个学生类的一个实例,例如,学生张三就是学生类的一个实例。2.面向对象分析的关键步骤有哪些?应建立哪几个模型?

答:关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。

3.什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?

答:(1)实体类保存要存入永久存储体的信息。实体类通常在事件流或交互图中,是对用户最有意义的类。边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。控制类负责协调其他类的工作。每个用例中至少应该有一个控制类,它控制用况中的事件顺序。(2)分为三种类型是因为它们各自的功能不同。界面类——描述系统与角色之间的接口。控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。

实体类——为需要长久保存的信息进行建模的类。

4.UML中有哪几类个视图,它们的作用分别是什么?

答:(1)用例视图(Use-Case view),用例视图用于描述系统的功能集。它是从系统外部以用户角度,对系统做的抽象表示。用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。(2)逻辑视图(Logical view),如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。(3)组件视图(Component view),组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。组件视图由组件图实现,主要供开发者和管理者使用。(4)并发视图(Concurrency View),并发视图用来描述系统的动态和行为特征。并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。(5)配置视图(Deployment View)配置视图体现了系统的实现环境,反映系统的物理架构。配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。

5. 顺序图在分析阶段的作用?

答:顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序

6. 活动图在分析阶段的作用?

活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动图特别适合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。

7.比较结构化设计和面向对象设计区别?

答:结构化设计:系统被划分成多个模块,这些模块被组织成一个树型结构。根就是主模块,叶子是最低级的功能模块。这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。顶层模块负责收集应用程序最重要的那些执行策略,底层模块实现处理细节。在这个体系结构中越靠上层位置,概念的抽象层次就越高。但是,由于上层模块需要调用下层模块,所以这些上层模块就依赖于下层模块的处理细节。也就是说,当实现细节发生变化时,抽象也会受到影响;如果想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。

面向对象设计:上层创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽象。这种依赖关系的变化正是结构化设计与面向对象设计的根本区别。

8.什么是框架,它与“设计”有什么关系?

答:框架是一组可用于不同应用的类的集合。框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类,当面向对象设计进行底层设计时,对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,就可以设计成框架来对类的设计进行构架和优化。

9.系统的物理构架中应该包括哪些信息?

答:用UML的配置图描述系统的物理构架,然后将需求分析阶段捕获的系统功能分配到这些物理节点上。包括的信息为节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。

1.为建立良好的编程风格应遵循什么原则?

答:1)节简化①不使用不必要的变量和函数②避免变量重名,变量重名可导致很难被发现的错误。③尽量减小代码量。④尽量减少代码的执行时间,提高执行效率。⑤避免功能冗余的模块。⑥尽量不使用全局变量。2)模块化①确保物理和逻辑功能密切相关。②限定一个模块完成一个独立的功能,提高模块的内聚度。③检查代码的重复率,重复多的代码,要抽出来作为一个单独的模块。3)简单化①采用直接了当的算法,避免使用技巧性高和难懂的代码。

②使用简单的数据结构,避免使用多维数组、指针和复杂的表。③注意对象命名的一致性。④以手工的方式简化算术和逻辑表达式。4)结构化①按标准化的次序说明数据;②按字母顺序说明对象名③使用读者明了的结构化程序部件;

④采用直截了当的算法;⑤根据应用背景排列程序各个部分;⑥不随意为效率而牺牲程序的清晰度和可读性;⑦让机器多做烦琐的工作,如重复、库函数;⑧用公共函数调用代替重复出现的表达式;⑨避免循环、分支的嵌套层数过高;⑩单入口单出口。5)文档化(documentation)①有效、适当地使用注释。②协调使用程序块注释和程序行注释。③

保持文档和程序的同步。6)格式化(layout)①始终采用统一缩进规则;②适当插入括号表明运算次序、排除二义性;

③有效地使用空格符以区别程序的不同意群。

2.什么是软件测试?

答:软件测试从广义上讲,是指软件产品生存周期内所有的检查、评审和确认活动。从狭义上讲,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各个阶段的规格说明和程序内部结构而精心设计一批测试用例,用这些测试用例运行程序,以发现程序错误的过程。

3.软件测试的原则是什么?

答:软件测试的原则有:

1)应该把测试贯穿在整个开发过程之中。事实上,从需求分析阶段开始,每个阶段结束之前都要进

行阶段审查,目的是尽早发现和纠正错误。

2)每个测试用例都应该包括测试输入数据和这组数据输入作用下的预期输出结果。在实际操作中可

以列出一张表格,包括每个测试用例的编号、类型、输入数据、预期输出结果、实际输出结果、出错原因分析。

3)要对每个测试结果进行全面检查,不要漏掉已经出现的错误迹象。

4)程序员应该尽量避免检查自己编写的代码。测试工作需要严格的工作作风,程序员在测试自己编写的代码时往往

会带有一些倾向性,使得他们工作中常常出现一些疏漏。而且,程序员对设计规格说明书的理解错误而引入的错误更是难于发现。

5)在设计测试用例时,应该包括有效的、期望的输入情况,也要包括无效的和不期望的输入情况。既能够验证程序

正常运行的合理输入,也能够验证对异常情况处理的不合理输入数据以及临界数据。在测试程序时,人们常常过多地考虑合法的和期望的输入条件,以检查程序是否做了它应该做的事情,而忽视了不合法的和预想不到的输入条件。事实上,用户在使用系统时,输入一些错误指令和参数是经常发生的,如果软件遇到这种情况不能做出适当的反应,给出相应的提示信息,就可能会误导用户,甚至造成严重损失。

6)软件中遗留的错误数量与已经发现的错误数量成正比。根据这个规律,对测试中发现错误成堆的模块更要仔细测

试。例如,在某个著名的操作系统中,44%的错误仅与4%的模块有关。

7)回归测试的关联性要特别引起注意,修改一个错误而引起更多错误的现象并不少见。

8)测试程序时不仅要检查程序是否做了它应该做的事情,还要检查它是否做了不该做的事情。例如,工资软件中,

软件只完成在编职工的工资计算和输出,不在编人员的工资是不进行计算和输出的。如果软件将不在编人员的工资信息也输出显然是不合适的。

9)严格执行测试计划。在测试之前应该有明确的测试计划,内容包括:要测试的软件功能和内容、测试用例和预期

结果、测试的进度安排、需要的工具和资源、测试控制方式和过程等。

10)做好测试记录,为统计和维护提供基础数据。

4.请说明集成测试、系统测试和验收测试有什么不同?

答:集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。

系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。

验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。

5.简述单元测试的内容。

答:单元测试的内容有

1)模块接口测试:对通过被测模块的数据流进行测试。为此,对模块接口,包括参数表、调用子模块的参数、全程数据、文件输入/输出操作都必须检查。

2)局部数据结构测试:设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要查清全程数据对模块的影响。

3)路径测试:选择适当的测试用例,对模块中重要的执行路径进行测试。对基本执行路径和循环进行测试可以发现大量路径错误。

4)错误处理测试:检查模块的错误处理功能是否包含有错误或缺陷。例如,是否拒绝不合理的输入;出错的描述是否难以理解、是否对错误定位有误、是否出错原因报告有误、是否对错误条件的处理不正确;在对错误处理之前错误条件是否已经引起系统的干预等。

5)边界测试:要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。

此外,如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。这类信息对进行性能评价是十分有用的。

6.什么是白盒测试?它适应哪些测试?

答:白盒测试也叫结构测试,测试者需要了解被测程序的内部结构。白盒测试通常根据覆盖准则设计测试用例,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和条件组合覆盖。

白盒测试适用与单元测试、集成测试、系统测试

7.非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?

答:1)渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现此类错误。

2)非渐增式需要较多的人工 3)渐增式有利于排错。如果模块界面间有错,如果用非渐增式,这类错误到最后联合测试时才能发现,此时很难判断错误发生在哪一部分,但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的模块有关。 4)渐增式比较彻底。 5)渐增式需要较多的机器时间。 6)非渐增式方式,开始时

允许几个测试人员并行工作,对大型系统来说,是很有意义的。

8.采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?

答:黑盒测试设计测试用例的方法有1)等价类划分法特点是:a、测试的内容相同 b、一个等价类中的某个测试可以发现缺陷,那么这个等价类的其他测试也能发现缺陷 c、一个等价类中的某个测试不能发现缺陷,那么这个等价类的其它测试也不能发现缺陷2)边界值分析法特点是:用边界值分析时时常收获较大,它是在等价类的边界上选择测试用例3)错误推测法特点是:没有确定的步骤,很大程度上是凭借经验进行的 4)因果图法特点是:考虑输入条件间的组合关系;考虑输出条件对输入条件的信赖关系;测试用例发现错误的效率高;能查出功能说明中的某些不一致或遗漏

9.白盒测试法有哪些覆盖标准?试对它们的检错能力进行比较。

答:白盒测试的覆盖标准有:语句覆盖->判定覆盖->条件覆盖->判定/条件覆

盖->条件组合覆盖->路径覆盖检错能力由弱到强

10.软件的可维护性是软件设计师最关注的性能,谈谈为了获得软件良好的可维护性,在设计时应该注意哪些问题?答:为获得软件的良好可维护性,在设计阶段应该做一些变更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离开来,并且遵循高内聚、低偶合的原则。

11.在软件文档中,你认为哪些文档对于软件的维护最重要?

需求分析文档、设计文档、程序文档对软件维护很重要

12.软件维护时的源程序修改策略是什么?

答:软件维护时的源程序修改策略是:由于软件维护最终落实在修改源程序和文档上。为了正确、有效地修改源程序,通常要先分析和理解源程序,然后才能修改源程序,最后重新测试和验证源程序。

13.软件项目计划包括那些内容?

1.范围。对该软件项目的综合描述,定义起所要做的工作以及性能限制,它包括:(1)项目目标。(2)主要功能。(3)性能限制。(4)系统接口。(5)特殊要求。(6)开发概述。

2.资源。(1)人员资源。(2)硬件资源。(3)软件资源。(4)其他。

3.进度安排。进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软件进度与其他工程没有很大的区别,其方法主要有:(1)工程网络图。(2)Gantt图。(3)任务资源表。(4)成本估算。(5)培训计划。

15.什么是软件配置管理?什么是基线?

答:配置管理能够系统地处理变更,从而使得软件系统可以随时保持其完整性。配置管理又可成为变更控制,可以用来评估提出的变更请求,跟踪变更,并保持系统在不同时间的状态。软件配置管理是一套规范、高效的软件开发基础结构。基线是:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变化控制过程改变。

16.什么是软件工程?请分析软件工程的目标是什么?

答案:软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;②对①中所选方法的研究”。

软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:

a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。

b)增强软件过程的可见性和可控性,保证软件的质量。

c)提高所开发软件的可维护性,降低维护费用。

d)提高软件开发生产率,及时交付使用。

e)合理预算开发成本,付出较低的开发费用。

1.什么是软件危机?软件危机表现在哪几个方面?

由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下:a)“已完成”的软件不满足用户的需求。

b)开发进度不能保障,交付时间一再拖延。

c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。

d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。

e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。

2.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?答案:

对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。

3.根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。答案:没有唯一答案。

a)不遵守标准和规范:职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。自从

人们认识到软件危机以来,总结软件开发的失败教训和成功经验,并把它们总结成为最佳实践,进而形成标准,要充分利用这些最佳实践和标准来指导软件过程。任何闭门造车、想当然的行为都是不被提倡的,注定要走弯路。

b)对待计划不严肃:软件工程强调计划性,计划的内容包括:设备资源、进度安排、人力资源、任

务分配等等。在项目的进行中要跟踪计划执行情况,记录计划执行过程中的偏差,对任何变更都要经过评审和批准才能付诸行动。

c)不主动与人沟通:软件不可见的特性,需要软件工程师进行大量书面的、口头的或面对面的沟通,

沟通的目的是为了使相关的人员了解项目的进展、遇到的问题、应用的技术、采用的方法。

4.软件工程为什么要强调规范化和文档化?答案:

软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。

5.请简单说明结构化分析的主要步骤。答案:根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工

处理说明(IPO图),实体关系图。以初始数据流程图为基础,从数据流程图的输出端开始回溯。在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。系统分析人员与用户一起对需求分析的结果进行复查。根据细化的需求修订开发计划。编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。

6.设计类的属性时必须要定义是哪两项?

设计类的属性时必须要定义的内容:

1)属性的类型:设计属性时必须要根据开发语言确定每个属性的数据类型,如果数据类型不够,设

计人员可以利用已有的数据类型定义新的数据类型。

2)属性的可见性。在设计属性时要确定公有属性、私有属性、受保护属性。

7.请简单分析顺序图和活动图的区别。

活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动图特别适合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。

顺序图用于描述一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

8.面向对象的分析通常要建立三个模型,请问三个模型的作用?

a)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。

b)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构件对象模型的核心工具。

c)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。面向对象方法中,常用状态图、顺序图、合作图、活动图构件系统的动态模型。

1.面向对象的设计活动中,有构架师、用例工程师和构件师参加,他们每个角色的职责是什么?

构架设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的构架设计师主持完成。该活动以用例模型、分析模型为输入,生成物理构架、子系统及其接口、概要的设计类(即设计阶段定义的类)。

根据分析阶段产生的高层类图和交互图,由用例设计师研究已有的类,将它们分配到相应的用例中。检查每个用例的功能,这些功能依靠当前的类能否实现,同时检查每个用例的特殊需求是否有合适的类来实现。细化每个用例的类图,描述实现用例的类及其类之间的相互关系,其中的通用类和关键类可用粗线框区分,这些类将作为项目经理检查项目时的重点。

经过前面两个活动,构架设计师已经将系统的构架建立起来,用例设计师按照用例的功能将每个类分配给相应的用例。现在要由构件工程师详细设计每个类的属性、方法和关系。

2.提高程序可读性有哪些招数?对你来讲比较灵验的是哪些?

a)源程序文件头说明,函数应有函数头说明,内容包括:程序标题;有关该模块功能和目的说明;主

要算法说明;接口说明,包括调用形式、参数描述、子程序清单、有关数据的说明。

b)主要变量(结构、联合、类或对象)的定义能够反映其内在含义。

c)变量定义最规范化,说明的先后次序固定。

d)处理过程的每个阶段和典型算法前都有相关注释说明。

e)用缩进来显示程序的逻辑结构。

f)嵌套的循环和分支程序层次不要超过五层。

软件项目管理问答题

1.什么是项目?它与多数人的日常工作有什么不同? 项目就是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力;是以一套独特而相互联系的任务为前提,有效地利用资源,在一定时间内满足一系列特定目标的多项相关工作的总称。 项目与日常工作的不同是:项目是一次性的,日常工作是重复进行的;项目是以目标为导向的,日常工作是通过效率和有效性体现的;项目是通过项目经理及其团队工作完成的,日常工作是职能式的线性管理;项目存在大量的变更管理,日常工作基本保持持续的连贯性。 2、项目管理与一般管理有什么不同? (1)从负责人来看,项目管理的负责人是项目经理,而一般管理一般由部门经理负责。 (2)从实施组织来看,项目管理的实施组织是一个项目团队(柔性组织),而一般管理的实施组织一般是一个部门或一个科 室之类的稳定的组织。 (3)从时限性来看,项目管理是一次性的(时间限制),而一般管理是持续不断的(相对无限)。 (4)从目标来看,项目管理是持续不断(相对无限)的,而一般管理具有重复性。 (5)从管理重点来看,项目管理注重效果,而一般管理注重效率。 (6)从资源需求来看,项目管理有多变的资源需求,而一般管理有稳定的资源需求。 (7)从活动性质来看,项目管理有风险和不确定性,一般管理有经验性和确定性。 3、简述软件项目管理的过程。 一般认为项目管理的过程是由以下四个基本工作过程组成的。 (1)项目确立:包括项目评估、立项、招投标、授权等环节。 (2)项目计划:包括软件项目范围计划、成本计划、进度计划、质量计划、人员与沟通计划、风险计划、合同计划等等。 (3)项目执行控制:包括项目集成计划执行控制、核心计划执行控制、辅助计划执行控制等等。 (4)项目结束:包括合同结束和项目结束。 4、项目管理的定义。 项目管理是以项目为对象,通过使用知识、技能、工具和方法来组织、计划、实施并监控项目,使之满足项目目标需求的过程。 5、图示软件项目声明周期与管理过程 6、简述项目生命期中的检查点、里程碑、基线概念。 检查点:它指在规定的时间间隔内对项目进行检查,比较实际现状与计划之间的差异,并根据差异进行调整 里程碑:它是完成阶段性工作的标志,不同类型的项目里程碑不同 基线:它指一个(或一组)配置项在项目生命期的不同时间点上,通过正式评审而进入正式受控的一种状态

软件项目管理大作业

软件项目管理大作业 软件项目购销合同 本合同由下述双方签署: 甲方: 联系电话: 乙方: 联系电话: 根据《中华人民共和国合同法》及其他有关规定,甲乙双方在平等、自愿、公开、

诚实信用的基础上就XXXXXX储蓄软件项目事宜,经甲乙双方友好协商如下: 第一条储蓄软件项目实施所需的条件(人工及人工费由甲方负责,但技术和质量全部由乙方负责),所进行项目开发所需的事宜明细见附件,附件与本合同不可分割,具有同等法律效力。 第二条产品交付甲方验收前所有质量问题由乙方负责,当交付甲方验收合格后,所有利害由甲方负责。 第三条交货方式双方见面交易。合同为证。 第四条交货时间为2014年9月17日,交货地点xxx。对于产品的数量、质 量等问题,全部由乙方负责。 第五条合约执行内容 经甲乙双方协商约定,整个软件项目设计由乙方提供专业人员和技术进行开发,甲方不用参与,按照乙方技术进行开发且监工由乙方负责,开发完成后,应达到国家验收标准,当与国家标准发生冲突时,按国家标准执行,测试达到标准后,视为乙方工程全部验收合格。如未达到验收标准时,所人工费由乙方负责承担,如能补救,由乙方尽快全部负责,直至达到验收标准。 第六条补充说明 乙方计算的全部材料已全部包含软件项目的全部,甲方不再支付任何费用,经乙方设计与预算得出以上内容与附件包含的内容外,不再有任何增项费用,如有乙方全部承担。 第七条双方职责 1、甲方职责 甲方负责协调乙方与同期作业的其他工程之间的关系(作业时间、作业面等)。 2、乙方职责 (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、请你自我介绍一下你自己, 回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、 工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能 否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最 积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习 无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得 合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。 2、你觉得你个性上最大的优点是什么?回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。乐于助人和关心他人、适应能力和幽默感、乐观和友爱。 3、说说你最大的缺点?回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。 4、你对加班的看法?回答提示:实际上好多公司问这个问题,并不证明一定要

加班。只是想测试你是否愿意为公司奉献。 回答样本:如果是工作需要我会义不容辞加班。我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班 5、你对薪资的要求? 回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱。他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。 回答样本一:“我对工资没有硬性要求。我相信贵公司在处理我的问题上会友善合理。我注重的是找对工作机会,所以只要条件公平,我则不会计较太多回答样本二:我受过系统的软件编程的训练,不需要进行大量的培训。而且我本人也对编程特别感兴趣。因此,我希望公司能根据我的情况和市场标准的水平,给我合理的薪水。 回答样本三:如果你必须自己说出具体数目,请不要说一个宽泛的范围,那样你将只能得到最低限度的数字。最好给出一个具体的数字,这样表明你已经对当今的人才市场作了调查,知道像自己这样学历的雇员有什么样的价值 6、在五年的时间内,你的职业规划? 回答提示:这是每一个应聘者都不希望被问到的问题,但是几乎每个人都会被

旅游管理系统 软件项目管理大作业

目录 1.合同书-------------------------------------------------------------------2 2.生存期-------------------------------------------------------------------3 3.需求规格说明------------------------------------------------------------4 目标-----------------------------------------------------------------4 用户类和特征-------------------------------------------------------4 运行环境------------------------------------------------------------4功能需求------------------------------------------------------------5确定执行者---------------------------------------------------5 确定用例-----------------------------------------------------5 用例文档-----------------------------------------------------6非功能需求----------------------------------------------------------8故障处理-------------------------------------------------------------8 4.任务分解------------------------------------------------------------------8 5.项目估算------------------------------------------------------------------9 直接成本-------------------------------------------------------------9 间接成本------------------------------------------------------------12 估算的误差----------------------------------------------------------12 6.进度计划-----------------------------------------------------------------13 活动顺序-------------------------------------------------------------13 甘特图----------------------------------------------------------------14

软件工程问答题

/*****************************简答题********************************************/ 1.什么是软件工程?软件工程的目标是什么? 答:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。目标:1合理预算开发成本,付出较低的开发费用。2实现预期的软件功能,达到较好的软件性能,满足用户的需求。3 提高软件的可维护性,降低维护费用。4 提高软件开发生产率,及时交付使用 2.指出瀑布模型中下列任务的顺序:验收测试,项目计划,单元测试,需求评审,成本估计,概要设计,详细设 计,系统测试,设计评审,编码,需求规格说明书。 答:项目计划,成本估计,需求规格说明书,需求评审,概要设计,详细设计,设计评审,编码,单元测试,系统测试,验收测试 3.可行性研究报告的主要内容是什么? 答:可行性研究主要包括以下几个部分: (1)概述(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明的必要的方面(10)结论 4.什么是需求分析?需求分析阶段的基本任务是什么? 答:所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。 任务:确定软件项目的目标和范围。调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作 5.什么是结构化分析方法?该方法使用什么描述工具? 答:结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。 结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止 描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图 5层次方框图6实体—关系图 7状态—变迁图 6.结构化分析方法通过哪些步骤来实现? 答:1)确定系统的功能要求 2)确定系统的数据要求 3)确定系统的操作要求和界面要求 4) 确定系统的性能要求 5)确定系统的运行要求 6)获得当前系统的物理模型 7)抽象出当前系统的逻辑模型 8)建立目标系统的逻辑 模型。9)修正开发计划 10)如果需要则开发系统原型 7.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义? 答:数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 数据流图的基本符号的意思: 1.矩形表示数据的外部实体;2.圆角的矩形表示变换数据的处理逻辑; 3.少右面的边矩形表示数据的存储; 4.箭头表示数据流。 8.什么是数据字典?其作用是什么?它有哪些条目? 答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。 作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。 包括的条目:数据流词条数据元素词条数据存储词条数据加工处理词条数据源点及终点词条 9.什么是概要设计?有哪些基本任务? 答:概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则 基本的任务:设想供选择的方案。推荐最佳方案。功能分解,确定软件结构。设计软件结构。制定测试计划。数据设计。书写文档。包括总体设计规格说明书。用户手册。测试计划。设计审查和复审。 10.详细设计的基本任务是什么?有那几种描述方法? 答:详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。主要方法有设计程序流程图,表格设计符号以及过程设计语言。 11.什么是变换流?什么是事物流? 答:变换型数据流可以划分为明显的三部分:逻辑输入,中心变换,逻辑输出。事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务 12.模块的内聚有哪几种?模块间的耦合有哪几种? 答:内聚分为七种类型:巧合内聚:一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚逻辑内聚:当一个模块执行一系列相关的动作时,称其有逻辑内聚。时间性内聚:当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。过程内聚:模块执行的若干动作之间有顺序关系。通信内聚:模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。信息内聚:一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。功能性内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分 耦合分为七类:内容耦合:如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。公共耦合:如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。外部耦合:如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。控制耦合:如果

软件项目管理案例教程(第2版)课后习题答案(精准版)

课后练习题答案 第三章练习题 一、选择题 1.快速跟进是指(A ) A.采用并行执行任务,加速项目进展 B.用一个任务取代另外的任务 C.如有可能,减少任务数量 D.减轻项目风险 2.赶工一个任务时,你应该关注(C ) A.尽可能多的任务 B.非关键任务 C.加速执行关键路径上的任务 D.通过成本最低化加速执行任务 3.“软件编码完成之后,我才可以对它进行软件测试”,这句话说明了哪种依赖关系? ( A ) A.强制性依赖关系 B.软逻辑关系 C.外部依赖关系 D.里程碑 4.如果用户提供的环境设备需要5月10日到位,所以环境测试安排在5月10日以 后,这种活动安排的依赖依据是:(C) A.强制性依赖关系 B.软逻辑关系 C.外部依赖关系 D.里程碑 5.对一个任务进行进度估算时,A是乐观者,估计是6天完成,B是悲观者,估计是24天 完成,C是有经验者认为最有可能是12天完成,那么这个任务的历时估算是介于10 天到16天的概率是(B ) A.50% B.68.3% C.70% D.99.7% 6.下面哪项将延长项目的进度?(A) https://www.wendangku.net/doc/0a8723073.html,g B.Lead C.赶工 D.快速跟进 7.关于浮动,下面除了哪个都是不正确的?(D) A.每个任务都有浮动 B.只有复杂的项目有浮动 C.浮动是在不增加项目成本的条件下,一个活动可以延迟的时间量

D.浮动是在不影响项目完成时间的前提下,一个活动可以延迟的时间量 8.资源平衡最好用于(C )活动 A.时间很紧的 B.按时的 C.非关键路径 D.关键路径 9.下面哪项可以决定进度的灵活性(B ) A.PERT B.Total float C.ADM D.赶工 二、根据表3-11和图3-32,采用PERT方法估算,说明项目在20天内完成的概率的近似值? 图3-32:项目网络图 表3-11: PERT方法估计项目历时 均值=(8+24+4*10)/6+(1+9+4*5)/6=17,标准差=(约等于)3 所以,17+3=20天完成的概率大概是84.2%。 第四章练习题 一、选择题 1.(A)是用系统的功能数量来测量其规模,与实现产品所使用的语言和技术没有关系 的。() A.功能点 B.对象点 C.代码行 D.用例点 2.如果你是某项目的项目经理,你已经估算出每个单元的成本是¥129。这个项目一共有 1200单元,你采用什么估算方法?( D ) A.自下而上估算法 B.类比估算法

网上购物系统软件项目管理大作业

《网上购物系统》项目管理目录 1.合同 (1) 1.1合同双方 (1) 1.2供应的商品和服务 (1) 1.3时间地点 (1) 1.4专利成果分配 (1) 1.5验收标准 (1) 1.6报酬计算 (1) 1.7违约处理 (1) 2. 生存期 (2) 3.需求管理 (3) 3.1 功能需求 (4) 3.2确定用例 (4) 3.3用例文档 (5) 3.4非功能需求 (6) 3.4.1 性能需求 (6) 3.4.2安全性需求 (7) 3.4.3故障处理 (7) 4.任务分解 (7) 5.项目估算 (9) 5.1直接成本 (9) 5.2间接成本 (9) 5.3网上购物系统总成本 (10) 6. 进度计划 (10) 7.质量计划 (12) 7.1组织机构 (12) 7.2职责 (14) 7.2.1项目负责人的职责 (14) 7.2.1质量保证人员的职责 (14) 7.3质量目标 (14) 7.4质量策略 (15) 7.5软件质量保证活动 (15) 7.5.1审计 (15) 8.风险计划 (15) 8.1风险种类 (16) 8.1.1资金风险 (16) 8.1.2人员风险 (16) 8.1.3时间风险 (16) 8.1.4技术风险 (17) 8.1.5进度风险 (17) 8.2风险控制 (18)

8.2.1风险的化解 (18) 8.3风险监控 (18) 9.团队管理 (18) 9.1项目组织结构 (19) 9.2团队沟通管理 (19) 10.项目结束 (20) 14.1项目终止 (20) 14.2结束计划 (20) 14.3项目收尾 (20)

1.合同 1.1合同双方 甲方:胡某某 乙方:盛某某 1.2供应的商品和服务 供应的软件:乙方为甲方提供所需的网上购物系统 提供的服务:乙方为甲方提供所需的日常维护和服务器管理。 提供的文档:乙方在交付软件时提供详细的软件规格说明书和使用文档。 安装服务:乙方为甲方提供软件的安装。 公文处理:乙方负责将甲方提供的公文资料加载入系统并进行分类。 维护协议:当甲方在使用该产品时,在正常操作的情况下出现BUG或系统错误,乙方免费为甲方提供修复服务以保障软件的正常使用。当由于甲方的错误使用等非软件原因导致出现故障,乙方同样提供修复服务。由于甲方拥有该软件的源代码所有权,因此甲方需要承担部分维修和进一步开发的责任。当软件需要新的功能拓展或改版升级时,由双方共同协商决定。 1.3时间地点 6月10日上午9:00在河北省沧州市黄骅市 1.4专利成果分配 该软件是由甲方向乙方定制,甲方拥有该软件的版权,乙方不能将该软件的任何版本卖个其他客户。软件提交时,项目源代码的所有权自动移交到甲方,乙方不得擅自对源代码进行修改。 1.5验收标准 乙方在开发过程中必须遵守ISO 12207关于软件生命周期和文档的标准。 1.6报酬计算 软件总价为2万元。合同签订后,甲方向乙方支付1万元定金。项目的第二个月,乙方按计划时间表完成需求分析、系统分析、设计和完成系统的基本框架后,甲方向乙方支付0.5万元。该系统完成后,甲方进行验收测试,在签字验收后完成后,甲方向乙方支付全款。 1.7违约处理 任何一方违反本协议导致本协议无法继续履行的,违约方需赔偿守约方违约金人民币2万元,该违约金不足以弥补守约方实际损失的,违约方应赔偿守约方所有实际损失。 甲方法人代表:胡某某

最新软件工程各章作业习题的名词解释和问答题参考答案讲课稿

软件工程各章作业习题的名词解释和问答题参考答案 第一章: 1:什么是软件危机 开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。 2:软件工程过程 指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。 3:软件生成周期 可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护 4:有哪些软件周期模型 瀑布模型、原型模型、增量模型、螺

旋模型。 5:软件 计算机程序及说明程序的各种文档6:个体手工劳动 个人编写程序 7:小生产合作方式 多人编写程序 8:软件的特点 是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。

9:软件文档 有关程序的功能、设计、图形资料等等。 第二章: 三. 名词解释 1.可行性研究 以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发. 2.技术可行性 主要研究开发的软件技术风险有多大 3.经济可行性 主要研究开发成功后能否得到应有的效益 4.社会可行性 主要研究开发的软件是否存在责任和侵

权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决. 四.问答题 1. 可行性研究的任务是什么? 首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见. 2.可行性研究有那些步骤? 确定任务; 分析技术可行性; 分析经济可行性; 分析社会可行性; 作出系统流程图; 作出开发计划。

3.可行性研究的目的. 减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发. 第三章 三. 名词解释 1. 需求分析 指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来 2. DFD 数据流图 四.简答题

java高级软件工程师面试题

java高级软件工程师面试题 招聘java高级工程师,职位描述如下,有兴趣的加394504340交流,打扰了,谢谢! 职位名称:java高级开发工程师(急) 职位描述:互联网产品的开发和维护。 职位要求:1. 熟悉JAVA、J2EE体系结构,熟练掌握Spring、Struts、Hibernate、ibatis 的开发技术。 2. 熟悉MySql等数据库开发,熟练掌握SQL语句,有较好的数据库设计能力。 3. 熟练掌握HTML、javascript、ajax等web开发技术,熟悉http协议。 4. 熟悉SVN、Maven、Junit等工具。 5. 具有良好的学习能力、沟通能力,乐于承担工作压力。 6. 有大型门户或社区网站开发经验者优先。 职位所在城市:杭州 职位所在行业:高科技 -------------------------========================================================= 1.说一下struts中常用的对象 2.怎样整合apatche和tomcat 3.说一下在linx系统中搭建服务器 4.简述一下sql server 建模 5.请写一个程序,把一个10进制转换成16进制 6.表student 列id name age WA(本科以上,大专,高中,初中以下) 毕业学校ID,学校信息表 问:统计出文化学历本科以上,大专,高中,初中以下,每个年龄各有多少人(一条SQL语句) 7.有两位少年从隧道的一端向另一端行走.当他们走过隧道的五分之二时,发现隧道外面迎来一辆火车.火车很快就要进入隧道.两位少年向来时隧道跑去.两位少年都是每小时10公里.两位在千钧一发跑出了隧道.假设火车速度恒定,并且两位少年都在瞬间达到最大速度,请问火车的速度 8.请写出常用的oracle语句及说明,存储过程的语句及说明 ---------------------------------------------------------------------------------------------------------------------------------

软件项目管理复习题

1. 项目开发过程中可以无限制地使用资源。(X ) 2. 项目具有暂时的特征。(√) 3. 项目管理核心的三角形是范围、进度、风险。(X ) 4. 过程管理与项目管理在软件组织中是两项很重要的管理,项目管理用于保证项目的成功,而过程管理用于管理最佳实践。(√) 5. 运作管理(Operation Management)是从宏观上帮助企业明确和把握企业发展方向的管理。(√) 1. 项目经理是一个综合的角色(√) 2. 软件项目都是需要签署合同的(√) 3. 增量式模型可以避免一次性投资太多带来的风险(√) 4. 项目章程类似一个项目授权书(√) 5. 在甲乙合同项目中,提出需求的一方是乙方(X ) 6. 如果是内部项目,在项目初始阶段可以不提交招标书(√) 1. 需求分析过程是确定项目如何实现的过程,并确定项目的技术方案(√) 2. 对于一个重来没有做过的项目,开发WBS时,可以采用用自底向上的方法(X ) 1. 间接成本是与一个具体的项目相关的成本(X ) 2. 软件项目的估算结果是比较准确的(X ) 3. 在进行软件项目估算的时候,可以参照其它企业的项目估算模型(√) 4. COCOMO 81有3个等级的模型: 基本(basic)模型、中等(intermediate)模型、高级(详细(detailed))模型。(√) 1、质量计划中可以确定质量保证人员的特殊汇报渠道。(V) 2、质量计划可以在项目进行过程中编写,不一定在前期完成。(X ) 1、组织分解结构(OBS Organizational Breakdown Structure)是一种特殊的WBS。(V) 2、责任分配矩阵是明确其角色与职责的有效工具(V ) 3、职能型组织结构中项目经理的权利最大(X ) 4、为了创建一个组织结构图,项目管理者首先明确项目需要的人员类型(V ) 1、在项目管理过程中,沟通是项目管理者的一部分工作,而且是很少的一部分工作(X ) 2、沟通计划是项目计划的一部分( V) 3、沟通管理的基本原则是及时性,准确性,完整性,可理解性(V ) 4、在IT项目中,许多专家都认为:对于成功,威胁最大的就是沟通的失败。( V) 1. 如果一个项目的合同类型是固定价格(FFP),合同价格是100万,实际花费160万,则项目结算金额为160万( X) 2. 成本加奖金CPIF(Cost Plus Incentive Fee) 合同具有激励机制(V ) 3. 采购是为了执行项目而从项目团队外部采购或者获取产品、服务或者结果的过程。(V ) 1. 软件配置管理的目的是建立和维护整个生存期中软件项目产品的完整性和可追朔性。(V ) 2. 软件配置项是变更控制系统中的决策系统(X ) 3. 统计被批准的配置项是一种配置审计(X ) 4. 在进行配置管理过程中,一定要采用高档的配置管理工具(X ) 1、进度和成本是关系最为密切的两个目的,几乎成了对立关系,进度的缩短一定依靠增加成本实现,而成本的降低也一定牺牲工期进度为代价的。(V ) 2、项目无论大小,在编写项目集成计划的时候需要按照统一的标准模版进行编写(X) 3、为了编写一个好的集成项目计划,项目经理应该通晓项目知识域的相关知识,与项目团队人员一起协作完成项目计划(V ) 4、为了节约成本,可以适当减低项目过程中的质量标准。(X )

网上购物系统软件项目管理大作业

网上购物系统软件项目管 理大作业 Revised by BLUE on the afternoon of December 12,2020.

《网上购物系统》项目管理目录

1.合同 合同双方 甲方:胡某某 乙方:盛某某 供应的商品和服务 供应的软件:乙方为甲方提供所需的网上购物系统 提供的服务:乙方为甲方提供所需的日常维护和服务器管理。 提供的文档:乙方在交付软件时提供详细的软件规格说明书和使用文档。 安装服务:乙方为甲方提供软件的安装。 公文处理:乙方负责将甲方提供的公文资料加载入系统并进行分类。 维护协议:当甲方在使用该产品时,在正常操作的情况下出现BUG或系统错误,乙方免费为甲方提供修复服务以保障软件的正常使用。当由于甲方的错误使用等非软件原因导致出现故障,乙方同样提供修复服务。由于甲方拥有该软件的源代码所有权,因此甲方需要承担部分维修和进一步开发的责任。当软件需要新的功能拓展或改版升级时,由双方共同协商决定。 时间地点 6月10日上午9:00在河北省沧州市黄骅市

专利成果分配 该软件是由甲方向乙方定制,甲方拥有该软件的版权,乙方不能将该软件的任何版本卖个其他客户。软件提交时,项目源代码的所有权自动移交到甲方,乙方不得擅自对源代码进行修改。 验收标准 乙方在开发过程中必须遵守ISO12207关于软件生命周期和文档的标准。 报酬计算 软件总价为2万元。合同签订后,甲方向乙方支付1万元定金。项目的第二个月,乙方按计划时间表完成需求分析、系统分析、设计和完成系统的基本框架后,甲方向乙方支付万元。该系统完成后,甲方进行验收测试,在签字验收后完成后,甲方向乙方支付全款。 违约处理 任何一方违反本协议导致本协议无法继续履行的,违约方需赔偿守约方违约金人民币2万元,该违约金不足以弥补守约方实际损失的,违约方应赔偿守约方所有实际损失。 甲方法人代表:胡某某 乙方法人代表:盛某某

软件工程的100道经典问答题

软件工程的100道经典问答题 1、什么是软件危机?产生软件危机的原因?怎样消除? 2、什么是软件工程?包括哪些内容? 3、软件生存周期包含哪些内容? 4、软件开发模型有几种?各有什么特点? 7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 8、一个软件开发系统的可行性研究报告应如何编写? 9、数据流图有哪几种基本符号? 10、画数据流图原则是什么? 11、数据流图在软件分析中的作用是什么? 12、数据字典的作用? 13、什么是数据字典?有几个定义?各自特点是什么? 14、有几种效益的分析方法? 15、需求分析的任务是什么? 16、需求分析通常采用哪些分析技术? 17、什么是结构化分析?他的结构化体现在哪里? 18、简述面向对象分析技术的主要步骤? 19、原型开发技术的目的,特点是什么? 20、简述总体设计的一般过程? 21、什么叫软件结构?什么叫软件工程?二者之间关系? 22、解释深度、宽度、扇出、扇入对软件的影响。 23、什么叫模块化?M代表的含义是什么? 24、模块化的三个重要特征是什么?阐明各自的作用。 25、举例说明各种耦合情况和各种内聚情况。 26、简述设计准则的内容。 27、简述层次方框图与软件结构图的异同点。 28、事物型软件结构图有什么特点?原因是什么? 29、详细设计的任务是什么? 30、什么是结构化程序设计?用N-S图表示三种基本结构。 31、简述Jackson程序设计方法的主要内容。 32、简述Wariner程序设计方法的主要内容。 35、C语言属于第几代语言?第四代语言特点是什么? 36、简述高级语言的应用特点和内在特点。 37、试分析程序设计语言特点及软件可*性、可理解性、可修改性、可测试性及成本的关系。 38、选择一种语言的实用标准是什么? 39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。 40、程序的编码风格主要体现在哪几个方面? 41、软件测试的基本任务是什么?测试与调试区别是什么? 42、软件测试的目标是什么? 43、软件测试分几个步骤进行?每个步骤解决什么问题?

CC++软件工程师笔试题...

、估计一下广州有多少理发师,如果允许,你还需要那些调研工作并给出你的推导过程。你认为你的估算结果可信吗? 2、看过那些软件方面的书籍 3、什么是软件,软件开发包括那些步骤,并说出你对这些步骤的理解 4、OSI网络结构的七层模型分别是什么,并说出你认为划分为7层的理由。 5、软件过程中了解、使用过版本控制或建模工具吗对你工作有什么帮助? 6、软件过程中你都写过什么文档分别是什么目的及其对你的帮助? 7、我们知道,C++将内存划分为三个逻辑区域:堆、栈和静态存储,请说出它们的区别及你的理解。 8、字符串A是由n个小写英文字母(a ~ z)构成的,定义为char A[n]。你能用更少的空间表示这个字符串吗请写出从char A[n]到你的新的储存格式的转换函数。(请用C/C++编程,不允许上机操作) 12、对现在的Stack(栈)数据结构进行改进,加一个min()功能,使之能在常数,即O(1),时间内给出栈中的最小值。可对push()和pop()函数进行修改,但要求其时间复杂度都只能是O(1)。 9、C++构造函数为什么不能是虚函数? 10、C++中virtual与inline的含义分别是什么虚函数的特点;内联函数的特点;一个函数能否即是虚函数又是内联函数? 12、请列出实现C++代码你认为需要注意的一些问题。 11、你在原来的项目中有没有遇到什么困难,又是如何解决的? 1 dll,lib处理实现.lib文件中包含什么dll在内存中被多个函数共享,有几个拷贝? 2 template,template等编译的时候作为几个类 3 struct ,class的区别,联系 4 MAcro,inline区别,实现.编译运行时 5 进程与线程区别 6 hdc-cdc区别联系 7 model dialog,modeless dialog,从创建到销毁全过程具体描述 8 各个线程new的内存,别的线程是否可以使用? 9 RUNTIME_CLASS, is what】

《软件项目管理》期末考试题-问答题.

项目的特征有哪些? 有明确的目标 项目之间的活动具有相关性 限定的周期 有独特性 资源成本的约束性 项目的不确定性 项目与日常运作有什么不同? 项目是一次性的,日常运作是重复进行的 项目是以目标为导向的,日常运作是通过效率和有效性体现的 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理项目存在大量的变更管理,而日常运作则基本保持连贯性的。 软件项目有什么特殊性? 为逻辑实体而非物理实体,具有抽象性 没有明显的制造过程,也不存在重复生产 软件项目的开发受到计算机硬件的制约 不可能完全摆脱手工开发模式 软件本身是相当复杂的,涉及因素众多,需求多变软件项目投入大、成本高软件项目管理有什么特征?

软件是纯知识产品,其开发进度和质量很难估计和度量,生产率也难以预测和保证。 项目周期长,复杂度高,变数多。 软件项目提供的是一种服务,需要满足一群人的期望,即需要满足一群想法和利益各不相同的人的需 求。 PMBOK包括哪9个知识领域? 集成管理范围管理时间管理 成本管理人力资源管理沟通管理 风险管理质量管理采购管理 常用的生存期模型有哪些?各适用于什么项目? 瀑布模型:分析、设计、编码、测试和维护严格按步骤进行,适合于项目开始前有明确需求和明确的 解决方案的项目,如公司的财务系统、库存管理系 统、短期项目等。 V模型:是瀑布模型的变种,强调测试的重要性,将开发活动与测试活动紧密联系在一起。适合于对 系统的性能、安全有严格要求的项目。 原型模型:适合于在项目开始前对项目需求不明确,为了减少项目需求的不确定性而先开发项目的

基本原型系统以验证可行性,然后逐步补充完善。 增量模型:由瀑布模型演变而来,假设需求可分阶段,分成一系列增量产品分别开发。适合于项目开 始明确了需求的大部分,但对市场和用户把握不是 很准。对于有庞大和复杂功能的系统也可考虑增量 开发。 螺旋式模型:该模型在四个象限上分别表达了计划制定、风险分析、项目实施、客户评估四个方面的 活动,通过一系列瀑布模型的不断循环来逐步规避 风险。适合于不确定因素较多、风险较大的项目。 渐近式阶段模型:综合了增量模型和螺旋式模型的一个实用模型,渐进式前进,阶段式提交。适合各 种规模的项目,尤其是大中型项目,以及希望随时 看到未来的项目。如何为项目选择合适的生成期模型? 熟悉各种生存期模型 评审、分析项目的特性 选择适合项目的生存期模型 标识生存期模型与项目不一致地方,并进行裁减 何谓需求获取?它包括哪些主要活动?

图书管理系统-软件项目管理大作业

图书管理系统项目管理 2016年6月22日 目录 1.合同管理------------------------------------------------------------------2 2.生存期--------------------------------------------------------------------4 3.需求管理 3.1 软件需求管理过程 ---------------------------------------------------5 3.1 需求概述 ---------------------------------------------------5 3.2 目标 --------------------------------------------------------5 3.4 功能需求 -------------------------------------------------- 5 3.8 编写用例文档 ----------------------------------------------7 4.任务分解---------------------------------------------------11 4.1 任务清单 -----------------------------------------------------------11 4.2 WBS---------------------------------------------------------------14

软件工程简答题

简答题: 软件工程的内容和方法 1.开发文档都有哪些?用图来表示他们之间的关系。 开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如图所示。 2.说明软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 其中软件开发方法的内容又含盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和RationalRose。 软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。 3.请详细解释软件的定义和程序的定义。 软件的定义:软件=程序+数据+文档。这里的程序是指程序系统。这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。 现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。 程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为: 面向过程的程序=算法+数据结构 面向对象的程序=对象+信息 面向构件的程序=构件+构架 4.是否存在这样一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI 和ISO模式只适用于搞应用软件的企业?如果是,为什么?如果不是,又是为什么? 不是。因为CMMI和ISO9000模式规定了严格的管理制度、文档和评估软件能力与成

软件工程师常见面试题及答案.doc

软件工程师常见面试题及答案 需求调查: 全面了解您的系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等根据系统概况进行项目所需的人员、时间和工作量估计及项目报价。 制定初步的项目计划: 在与您充分共同和协商的基础上制定我们的测试计划。 测试准备: 组织测试团队、培训、建立测试和管理环境等。 测试设计: 按照测试要求进行每个测试项的测试设计,包括测试用例的设计及测试脚本的开发等。 测试实施: 按照测试计划进行实施测试。 测试评估: 根据测试的结果,出具测试评估报告。 2、根据你的经验说说你对软件测试/质量保证的理解? 软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及外观排布.。 3、(1) 你对SQA的职责和工作活动(如软件度量)的理解: SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要是可以要高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等;

(2) 说说你对软件配置管理的理解: 项目在开发的过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性能及风险的水平。软件的规模越大,配置管理就显得越重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并且只有经过授权后才能变更这个标准。配置管理工具主要有CC,VSS,CVS等,偶只用过CVS,对其它的不熟悉 (3) 怎样写测试计划和测试用例: 简单点,测试计划里应有详细的测试策略(测试方法等),合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。 (4) 说说主流的软件工程思想(如CMM,CMMI,RUP,XP,PSP,TSP等)的大致情况以及对它们的理解: CMM:SW Capability Maturity Model 软件能力成熟度模型,其作用是用于软件过程的改进、评估及软件能力的评鉴CMMI:Capability Maturity Model Integration 能力成熟度模型集成CMMI融入了大部分最新的软件管理实践,同时弥补了SW-CMM模型中的缺陷 RUP:rational unified process 是软件工程化过程。 XP:extreme program,即极限编程的意思,适用于小型团队的软件开发,想上面第三个问题就可以结合原型法采用这样的开发流程。要明白测试对于xp开发的重要性,强调测试(重点是单元测试)先行的理念。编程可以明显提高代码的质量,持续集成对于快速定位问题很有好处。 PSP ,TSP 分别是个体软件过程(Personal Software Process),群组软件过程(Team Software Process)大家都知道,CMM只是告诉你怎么做但并没有告诉你如何做,所以PSP/TSP就是告诉你企

相关文档
相关文档 最新文档