项目管理中的结构化分解有什么区别?

【导读】软件和程序的区别?程序是为了解决某个特定问题二用程序设计语言描述的适合计算机处理的语句序列。a.对软件开发成本和研制进度的估计常常很不精确;b.“已完成”的软件不能满足用户要求;c.软件产品质量差,可靠性得不到保证;d.软件产品可维护性差,没有统一、公认的规范和完整规范的文档资料;e.软件成本在计算机系统总成本中所占的比例逐年上升;开发费用不断增加,维护费用急剧上升;,生产效率提高缓慢;要有良好的组织、严密的管理,各类人员协同配合、共同完成的工程项目;对已完成的文档进行复审,以便尽早发现问题,消除隐患。快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。强调严格的全过程风险管理。为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。

【正文】 1、什么是软件?软件和程序的区别?
答:(1)软件是计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必
(2)程序是为了解决某个特定问题二用程序设计语言描述的适合计算机处理的语句序列。
软件是程序+文档,没有相关文档,仅有程序是不能成为软件产品的
2、什么是软件生存周期?划分生存周期的主要原则是什么?
(1)定义:软件生存周期是指某一软件项目被提出来并着手实现开始直到该软件报废或停
(2)原则:各阶段的任务尽可能独立
3、什么是软件危机?它有哪些主要表现?为什么会产生软件危机?
(1)软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
(2)a.对软件开发成本和研制进度的估计常常很不精确;
b.“已完成”的软件不能满足用户要求;
c.软件产品质量差,可靠性得不到保证;
d.软件产品可维护性差,没有统一、公认的规范和完整规范的文档资料;
e.软件成本在计算机系统总成本中所占的比例逐年上升;
f.软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入的趋势。
(3),软件产品往往规模庞大,结构复杂;
开发费用不断增加,维护费用急剧上升;
4、什么是软件工程?怎样利用软件工程消除软件危机?
(1)软件工程是:①是把系统的、规范的、可度量的途径应用于软件开发、运行和维护过
程,也就是把工程应用于软件;②研究①中提到的途径。
(2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念;
要使用并且不断研究探索更好、更有效的技术和方法;
要有良好的组织、严密的管理,各类人员协同配合、共同完成的工程项目;
应该开发和使用好的软件工具。
5、简述度量软件质量的六个特性,在软件开发中如何保证软件质
(1)功能性、可靠性、易用性、效率、可维护性、可移植性等
6、说明文档和复审对于软件质量控制的作用。
答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务
。软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人
员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。每一阶段都要
对已完成的文档进行复审,以便尽早发现问题,消除隐患。愈是早期潜伏下来的故
障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件
质量,降低开发成本的重要措施。
7、什么是软件生存周期模型?试比较本章介绍的四种模型的优缺
点,说明每种模型的使用范围。
(1)软件开发模型是描述软件开发过程中各种活动如何执行的模型。
为项目提供了按阶段划分的检查点,当前一个阶段完成后,只需要关注后续阶段。
提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织与管理
在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其
由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发
早期的错误可能要等到开发后期才能发现,进而带来严重后果。
适用范围:瀑布模型是以文档作为驱动,适合于软件需求很明确的软件项目即一般适用于功
能明确、完整、无重大变化的软件系统的开发,例如:操作系统、数据库管理系统等系统软
件的开发,其应用有一定的局限性。
快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显
所选用的开发技术和工具不一定符合主流的发展;
快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员
原型模型适合于那些不能确切定义需求的软件系统的开发。
强调严格的全过程风险管理。
强调各开发阶段的质量。
强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期。
为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。
很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,
所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。
适用范围:螺旋模型只适合于大规模的软件项目。
(1)软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风
(1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造
好的系统部分,这需要软件具备开放式的体系结构。
(2)在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化
的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过
(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求
的产品,可以使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型
1、在软件开发早期阶段为什么要进行可行性研究?可行性研究的任
务是什么?应该从哪几个方面研究目标系统的可行性?
(1)原因:用最小的代价在尽可能短的时间内确定问题是否能够解决。
(2)任务:进行该要的分析研究
确定项目的规模和目标、约束和限制
分析几种可能揭发的利弊
判定原定系统的目标和规模是否现实,系统完成后带来的效益是否达到值得投
(3)方面:技术可行性:使用现有的技术能实现这个系统吗?
经济可行性:这个系统的经济效益能超过它的开发成本吗?
操作可行性:系统的操作方式在这个用户组织内行得通吗?
法律可行性:系统是否侵犯他人、集体或者国家的利益,是否违反法律?
2、成本-效益分析可用哪些指标进行度量?
开发成本、运行费用和新系统将带来的经济效益,经济效益包括有形效益和社会效益
有形效益用货币的时间价值,投资回收期,纯利润度量
问题定义阶段必须回答的关键问题:“要解决的问题是什么?”如果不知道问题是什么就试
图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果很可能是毫无
意义的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽
通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
通过对系统的实际用户和使用部门负责人的访问调查,分析员扼要地写出他对问题的理解,
并在用户和使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不精的地方,改正理
解不正确的地方,最后得出一份双方都满意的文档。
问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。
其他与设计有关选择方案
其他与设计有关的专门问题
1、为什么要进行需求分析?需求分析要经过哪些步骤?
(1)原因:精化软件的作用范围,分析和确认软件系统构成的过程,以确定未来系统的主
要成分以及它们之间的接口细节
(2)步骤:需求获取:调查研究
2、需求分析阶段的基本任务是什么?怎样理解分析阶段的任务是决
定“做什么”,而不是“怎样做”?
(1)任务:确定系统必须完成哪些工作,对目标系统提出完整、准确、清晰且具体的需求
3、什么是结构化分析方法?该方法使用什么描述工具?
(1)结构化分析方法是一种从问题空间到某种表示的映射方法。
(2)数据流图:结构化建模的工具。
数据字典:关于数据信息的集合,用于定义数据流图中的数据和加工;
描述加工逻辑的结构化语言、判定表和判定树等
4、什么是数据流图?其作用是什么?其中的基本符号各表示什么含
(1)定义:数据流图(DataFlowDiagram,DFD)是一种图形化技术,用于表示系统逻辑模
型,它以直观的图形清晰地描述了系统数据的流动和处理过程。是分析员与用户之间极好的
(2)作用:描述数据在软件中流动和被处理的逻辑过程。
(3)源点或者终点(矩形):通常是系统之外的实体
加工(圆或椭圆):是对数据进行处理的单元,一个处理框可以代表一系列程序、单个程
数据流(箭头):是数据在系统内传播的路径,由一组固定的数据项组成。描述所有可能
数据存储(双杠或单杠):用来存储数据,可以表示一个文件、文件的一部分、数据库的
元素或者记录的一部分等。
5、画数据流图的步骤是什么?应该注意什么事项?
(1)步骤:第一步,先找外部实体(可以是人、物或其他软件系统)
第二步,找出外部实体的输入和输出数据流;
第三步,在图的边上画出系统的外部实体;
第四步,从外部实体的输出流(源点)出发,按照系统的逻辑需要,逐步画出一系列变
换数据的加工,直到找到外部实体处所需的输入流(终点),形成数据流的封闭;
第五步,按照上述原则进行检查和修改。
最后按照上述步骤画出所有子图。
画数据流图时,只考虑数据流的静态关系,不考虑其动态关系(如启动、停止等与时间有关
的问题),也不考虑出错处理问题。
画数据流图时,只考虑常规状态,不考虑异常状态,这两点一般留在设计阶段解决。
画数据流图不是画程序流程图,二者有本质的区别。数据流图只描述“做什么”,不描述“怎
么做”和做的顺序。而程序流程图表示对数据进行加工的控制和细节。
不能期望数据流图一次画成,而是要经过各项反复才能完成。
描绘复杂系统的数据流图通常很大,对于画在几张纸上的图很难阅读和理解。一个比较好的
方法是分层的描绘这个系统。在分层细画时,必须保持星系的持续性,父图和子图要平衡;
6、什么是数据字典?其作用是什么?它有哪些条目?
(1)定义:数据字典(DataDictionary,DD)是关于数据的信息的集合,也就是对数据流
图中所包含元素的定义的集合。
(2)作用:对数据存储(文件)和加工(处理)等名字进行定义
7、描述加工逻辑有几种工具?各是什么?写出其优缺点。
(1)描述加工逻辑一般用结构化语言、判定表和判定树。
(2)结构化语言:它既有结构化程序的清晰易读的优点,又有自然语言简单易懂的优点,
只有顺序,循环,条件三种控制结构
判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关
判定表能清晰地表示复杂的条件组合与应做的动作之间的对应关系
1、总体设计阶段的主要目的和任务是什么?
(1)目的:基本目标回答“概括地说,系统应该如何实现?”这个问题,确定系统中的每
个程序是由哪些模块组成的,每个模块的功能以及模块和模块之间的接口、调用关系等
(2)任务:划分模块,确定软件结构
2、为每种类型的模块耦合和模块内聚各举一个具体例子。
耦合:是对一个软件结构内不同模块之间互联程度的度量
无直接耦合(不可能)、数据耦合(数据耦合是理想的目标)、标记耦合、控制耦合、公共环
境耦合、内容耦合(最高程度的耦合是内容耦合)
应该采用下述设计原则:
少用控制耦合和标记耦合,
限制公共环境耦合的范围,
内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩
偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚
偶然内聚、逻辑内聚和时间内聚属于低内聚,通信内聚属于中内聚,顺序内聚和功能内聚属
4、如何区分数据流图的类型?试述“变换型数据流图”和“事务型
数据流图”的设计步骤。
(1)变换型数据流图基本呈线性形状的结构,由输入、变换、输出三部分组成,变换是系
在事务型数据流图,数据项沿着输入同路到达一个处理T,T根据输入数据的类型在若干动
作序列中选出一个来执行。处理T称为事务中心。
(2)变换型:确定逻辑输入和逻辑输出的边界,找出变换中心
设计软件结构的顶层和第一层
事务型:.在数据流图上确定事务中心、输入流和活动路径
设计事务结构的顶层和第一层
1、软件详细设计的基本任务是什么?有哪几种描述方法?
(1)确定应该怎样具体实现所要求的系统。经过这个阶段的设计工作,应该得出对目标系
统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序
描述程序处理过程的工具称为详细设计工具,可以分为图形、表格和语言三类。
程序流程图、N-S图、PAD图、过程设计语言
2、结构化程序设计的基本要点是什么?
结构化程序设计所使用的结构有顺序、条件和重复三种。
结构化程序设计采用自顶向下,逐步求精的设计方法和单入口单出口的控制结构。
1、在软件项目开发时,选择程序设计语言通常考虑哪些因素?
2、举例说明各种程序设计语言的特点及适用范围?
答:以常见的一些编程语言为例:
FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算
Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构
严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统
C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及
数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特
别是在操作系统等方面有较大优势。
Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法
描述分开。结构严谨层次分明,广泛用于商业数据处理。
SQL:结构化查询语言,用于对数据库进行存取管理。
汇编语言和Ada语言,主要用于实时处理和编写系统软件。
Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用
于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识
表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。
这两种语言主要用于人工智能系统开发。
C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。
3、什么是程序设计风格?为了具有良好的程序设计风格,应该注意
程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效
4、第4代语言有哪些主要特征?为什么受到广大用户欢迎?
特征:友好的用户界面,非过程化,程序员只需告诉计算机做什么,而不必描述怎样做
软件测试的基本任务是什么?简述测试的目标和基本原则。
(1)软件测试是为了发现错误而执行程序的过程。
一个好的测试用例能够发现至今尚未发现的错误。
一个成功的测试是发现了至今尚未发现的错误的测试。
(2)测试阶段的基本任务
根据软件开发各阶段的文档资料和程序内部结构,精心设计一组“高产”的测试用例,
利用这些用例执行程序,找出软件中潜在的各种错误缺陷。
原则:测试用例既要有输入数据,又要有对应的输出结果
测试用例不仅要选用合理的输入数据,还应选择不合理的输入数据
检查程序是否做了它应该做的工作,也应检查程序是否做了它不应该做的工作
应该远在测试开始之前就制定测试计划
测试计划、测试用例、测试报告必须作为文档长期保存
Pareto原理说明,测试发现的错误中80%很可能是由程序中20%的模块造成的
为了达到最佳的测试效果,程序员应该避免测试自己的程序
简述静态测试与动态测试的含义。它们之间有什么不同点和相
(1)静态测试就是静态分析,查找错误或收集一些度量数据,采用两种分析手段对程序检
测后进行特性分析。动态测试是指通过运行程序发现错误。
(2)静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、
接口等来检查程序的正确性。
动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮
性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。
白盒测试用例和黑盒测试用例设计的基本方法。
白盒:逻辑覆盖,判定覆盖,条件覆盖,判定-条件覆盖,条件组合覆盖,路径覆盖,循环
黑盒:等价类划分法,边界值分析法,错误推测法,因果图法
简述测试和调试的含义,它们之间有什么区别?
软件测试是保证软件质量的关键,它是对需求分析、设计和编码的最终复审。
调试是在测试发现错误之后排除错误的过程
区别:软件测试的目的是为找出软件中存在的错误,即通过测试来发现错误,而调试的目的
是为了解决存在的错误,即对错误定位、分析并找出原因改正错误,因此调试也称为纠错。
软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有
软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。
单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从
而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。
集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理
确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。
系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在
一起进行测试。以确定软件是否可以支付使用。
什么是单元测试,什么是集成测试,什么是确认测试?
单元测试单元测试是对软件基本组成单元进行的测试。
集成测试集成测试是将已分别通过测试的单元按设计要求组合起来再进行的测试,以检查
这些单元之间的接口是否存在问题。
确认测试确认测试是检查所开发的软件是否满足需求规格说明书中所确定的功能和性能
1、为什么软件需要维护?维护有哪几种类型?简述它们的维护过
(1)为了改正软件运行错误,或者因满足新的需求而加入新功能的修改软件的过程
(2)改正性,适应性,完善性,预防性
2、什么是软件可维护性?可维护性度量的特性是什么?提高可维护
(1)纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改,扩充或压缩的容易
(2)可理解性,可测试性,可修改性,可移植性,可靠性,可使用性,效率
(3)建立明确的软件质量目标和优先级
使用提高软件质量的技术和工具
选择便于维护的程序设计语言
采取明确的,有效的质量保证审查措施
3、改正性维护与“排错”是否是一回事?为什么?
5、什么是程序修改的副作用?程序修改的副作用有哪几种?试举例
(1)由于修改软件而导致新的错误的出现,或者新增加一些不希望发生的情况
(2)修改代码的副作用
什么叫UML,简述UML的构成。
述、可视化处理、构造和建立软件系统的文档。
(2)由元模型和图组成
(1)统一的标准、面向对象、可视化、表示能力强大、独立于过程、易于掌握应用
UML中有哪些视图,“4+1”视图中的各图有什么功能?
视图:用例视图(表示了角色和用例以及它们之间的关系)、逻辑视图()、进程视图、
简述UML中主要图之间的关系,各种图在软件开发阶段的作用?
答:图有:用例,类,对象,构件,协作,部署,活动,状态,序列
支持UML的软件开发工具主要有哪些,简述Rose的主要功能。
对面向对象模型的支持、对螺旋上升式开发过程的支持、对双向工程的支持、对团队开发的
什么叫对象,面向对象方法的要点包括哪些内容?
(1)在软件领域中,与所要解决的问题有关系的任何事物都可以作为对象
(2)认为客观世界是由各种对象组成的、把所有对象都划分成各种对象类(简称类,class),
每个对象类都定义了一组数据和一组方法、按照子类(或称为派生类)与父类(或称为基类)
的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)、对象彼此之间仅能通过
传统软件开发方法存在哪些问题?
(2)开发出的软件不能满足用户需要
面向对象方法学有哪些优点?
(1)与人类习惯的思维方式一致
(4)较易开发大型软件产品
(5)可维护性好,易于测试
什么叫对象关联,常见的对象关联有哪些,试举例说明各种关
(1)对象类的关联是面向对象技术中的实例链接,它是通过对象的属性所建立的对象之间的
(2)单相关联与双向关联
分别解释聚集、组合、继承和多态的概念,并举例说明。
(1)一个类有时可以由一个或多个部分类组成,这种特殊形式的关联,称为聚集
(2)组合(position)表示的也是类之间的整体与部分的关系,但组合关系中的整体与部
分具有同样的生存期。也就是说,组合是一种特殊形式的强类型的聚集。
(3)继承定义了一般类和特殊类之间的分类关系。
(4)多态指的是使一个实体在不同上下文条件下具有不同意义或用法的能力。
举例说明对象和属性之间的区别。
在软件领域中,与所要解决的问题有关系的任何事物都可以作为对象。
一个对象由一组属性和对属性进行操作的一组方法组成
面向对象方法学中的对象具有两个基本的因素:属性和方法(服务)。
属性是用来描述对象静态特征的一个数据项
举例说明UML规定的属性和操作的三种可视性。
可视性(即可访问性)通常有下述3种:
public(+)公有的:模型中的任何类都可以访问该属性。
private(-)私有的:表示不能被别的类访问。
protected(#)受保护的:表示该属性只能被该类及其子类访问。
可视性标记放置在属性名前,说明该属性的可视性。若未声明可见性,则表示该属性的可
注意,没有默认的可见性。
什么叫对象设计模式,设计模式有哪些分类?
(1)模式是在一个上下文中,对一个问题的解决方案。GOF提出了模式的四个要素,即模式
名称、问题、解决方案和效果。
(2)按设计模式的目的(purpose)划分,可分为创建型模式、结构型模式和行为型模式3种。
按设计模式的范围(scope)划分,即根据设计模式是作用于类还是作用于对象来划分,可
以把设计模式分为类设计模式和对象设计模式。
(1)复用现有的、高质量的、针对常见的重复出现问题的解决方案。
(2)建立通用的术语以改善团队内部的沟通。
(3)将思考转移到更高的视角。
(4)判断是否拥有正确的设计,而不仅仅是一个可以工作的设计。
(5)改善个人学习和团队学习。
(6)改善代码的可修改性。
(7)促进对改良设计的选用,甚至在没有明确使用模式的时候也可以这么做。
(8)发现“庞大的继承体系”的代替方案。
职责链设计模式的一般结构及特点有哪些,结合本章中给出的
web浏览器事件模型,说明职责链设计模式的适用条件。
职责链模式的适用范围:
1、有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。
2、想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
3、可处理一个请求的对象集合需要被动态指定。
Facade模式的特点有哪些,结合本章中给出的客户与子系统交
互的例子,介绍Facade模式的适用条件。
①对Client来说屏蔽了子系统中的类,减少了Client需要直接处理的对象,使得子系统更容
②降低了Client和子系统之间的耦合度。
③有助于对象之间依赖关系的分层,建立具有层次结构的系统。
④子系统中的类不需要了解关于Client的知识,也不需要了解关于Facade类的知识,即没
⑤如果需要,Client也可以直接存取子系统中的类。
①为复杂系统提供一个简单的接口
②构建层次结构系统时,使用Facade模式定义每层的入口点。
③采用Facade模式可将子系统与客户程序分离,提高了子系统的可移植性
统,介绍抽象工厂模式的适用条件。
①Client只通过抽象产品操作产品对象,产品对象的具体名字不出现在Client中。
②在应用系统中增加或删除具体工厂的种类很容易。
③可以保证应用系统在某一时刻只使用一个产品系列。
④AbstractFactory接口中已确定了可以创建的产品集合,如果要支持新的产品种类,需要
扩展AbstractFactory类及其所有子类中的方法,这种修改比较困难。
什么叫抽象类,举例说明抽象类与一般类的异同。
(1)抽象类(AbstractClass)是不能直接生产实例的对象类,抽象类的作用仅仅是为了其
他的非抽象对象类继承和重用它说明的属性、服务及其他性质。
什么叫接口,举例说明接口的功能和应用。
(1)接口(Interface)是一组外部可访问的操作,用于为对象类或组件提供服务。接口可以
看作为一种特殊的抽象类,它不包含属性,没有操作的实现,仅有抽象运算。
UML中的扩展机制有哪些,分别举例说明版型、约束、标记的
组件、包、结点的定义是什么?分别举例说明其用途。
(1)组件是相对独立的部分软件实体,有自己特有的功能,并可在系统中安装使用。
(2)包(Package)是一种对模型元素进行成组组织的通用机制。包用于定义一个名字空间
或容器,它本身是UML的一种模型元素。
(3)结点(node)是可以运行软件的实实在在的东西,如工作台或服务器,它运行时有处
举例说明包之间的关系。
包之间的非传递依赖关系,包之间继承关系
解释名词:软件开发过程、RUP过程、RUP生命周期、软件开发产
(1)软件开发过程是一个将用户的需求转化为软件系统所需要的活动的集合,按业务建模
的术语,软件开发过程是一个业务流程。
(2)RUP把软件开发生命周期划分为多个循环(Cycle),每个Cycle生成产品的一个新的
版本,每个Cycle依次由4个连续的阶段(Phase)组成
(3)RUP中的软件生命周期在时间上被分解为四个顺序的阶段(如图3-2所示),分别为
RUP过程分为哪些阶段,每一阶段的主要工作是什么?
(1)初始(Inception)阶段:定义最终产品视图和业务模型,并确定系统范围。
(2)细化(Elaboration)阶段:设计及确定系统的体系结构,制定工作计划及资源要求。
(3)构造(Construction)阶段:构造产品并继续演进需求、体系机构、计划直至产品提
(4)交付(Transition)阶段:把产品提交给用户使用。
每个阶段完成确定的任务,这4个阶段体现了RUP软件开发过程的动态结构。
RUP过程有何优缺点?
1.RUP是建立在非常优秀的软件工程原则基础上的,例如迭代,需求驱动,基于结构化的
2.RUP提供了几个方法,例如每一次迭代产生一个工作原型,在每一个阶段的结束决定项
目是否继续,这些方法提供了对开发过程的非常直观的管理。
3.rational公司已经并将继续对RUP进行开发,使这个基于html的软件工程能够被裁减
以适合你的组织的实际需要。
1.RUP仅仅包含了开发过程。它没有完全覆盖软件过程,从图1能够明显看出,它丢失了维
护和技术支持这两个重要的阶段。
2.RUP不支持组织内的多项目开发,导致组织内的大范围的重用无法实现。
3.RUP缺少开发商的支持。你能自动完成软件过程的每一个方面?rational提供了所有的
RUP在度量管理,重用管理,人员管理和测试上有缺陷。
软件开发项目管理包括哪些工作,如何组织大型软件项目的开发?
软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,
风险管理,软件质量保证,软件过程能力评估,软件配置管理等。
RUP如何解决软件开发中用户需求的变更问题?
RUP过程开发软件将得到哪些模型和文档?
1、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。
2、软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和
方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技
3、数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集
4、模块化:是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来
组成一个整体,可能完成指定的功能满足问题的需求。
5、类:对具有相同数据和相同操作的一组相似对象的定义。
6、软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
7、软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程.
8、继承:子类自动地共享基类中定义的数据和方法的机制.
9、投资回收期:就是使累计的经济效果等于最初投资的需要的时间。
10、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。
11、软件的生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃所经历的一系
12、投资回收期:就是使累计的经济效果等于最初投资的需要的时间。
13、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。
14、模块:数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访
15、宽度:是软件结构内同一个层次上的模块总数的最大值。
16、事务流:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序
列中选出一个来执行。这类数据流应该划分为一类特殊的数据流,称为事务流。
17、耦合:衡量不同模块彼此间互相依赖的紧密程度。
18、事件:是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的
现实世界中的事件的抽象。
19、函数重载:指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。
20、存根模块:用以模拟被测模块运行过程中所调用模块或是被测模块下层模块的替代程序。
21、变换流:信息沿输入通呼进入系统,同时由外部形式变换成内部形式,进入系统的信息
通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统,当数据流图具
有这些特征时,这种信息流就叫变换流。
22、内聚:衡量一个模块内部各个元素彼此结合的紧密程度
23、扇出:是一个模块直接控制的模块数目。
24、多态性:子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以
25、驱动模块:用以模拟被测模块的上级调用模埠,或向被测模块输以数据输出一些必要信
1、软件生命周期分为哪三个时期?每一时期所完成的基本任务是什么?
软件定义时期,开发时期,维护时期。
定义时期的任务:问题定义;可行性研究;需求分析。
开发时期的任务:总体设计;详细设计;编码与单元测试;综合测试。
维护时期的任务:使软件持久地满足用户的需要。
2、简述需求分析阶段的具体任务有哪些?
软件定义时期,开发时期,维护时期。
定义时期的任务:问题定义;可行性研究;需求分析。
开发时期的任务:总体设计;详细设计;编码与单元测试;综合测试。
维护时期的任务:使软件持久地满足用户的需要。
3、什么是结构化程序设计?结构化程序设计采用几种控制结构?
结构程序设计:是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出
口的控制结构。顺序,选择,循环。
4、程序设计语言的特点?
1、名字说明2、类型说明3、初始化4、程序对象的局部性5、程序模块
6、循环控制结构7、分支控制结构8、异常处理9、独立编译
5、软件测试的基本任务是什么?测试与调试的区别是什么?
任务是在软件投入生产性运行之前,尽可能多地发现软件中的错误。
与测试的区别:测试是为了发现软件中的错误,而调试是诊断并改正错误。
6、管理复审与技术审查的任务是什么?
管理复审:复查各个阶段的经费、开销、成本以及进度,投资回收期前景的展望。
技术审查:对每个阶段进行严格的审查,从而保证了各个阶段技术的正确性,防上错误的积
7、可行性研究的步骤?
(1)复查系统规模和目标。
(2)研究目前正在使用的系统。
(3)导出新系统的高层逻辑模型。
(5)导出和评价供选择的解法。
(8)书写文档提交审查
8、从哪些方面验证软件需求的正确性?
(1)一致性,即所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
(2)完整性,需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
(3)现实性,指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
(4)有效性,必须证明需求是正确有效的,确实能解决用户面对的问题。
(1)以数据为中心。(2)对象是主动的。(3)实现了数据封装。(4)本质上具有并行性。
10、用面向对象方法开发软件时,通常需要建立哪三种形式的模型?
(1)描述系统数据结构的对象模型。(2)描述系统控制结构的动态模型。(3)描述系统功
11、什么是模块的作用域?什么是模块的控制域?
模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个模块
本身以及所有直接或间接从属于它的模块的集合。
12、简述两种不同集成测试策略的比较?
自顶向下测试方法主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统
的主要功能,而且能在早期发现上层模块的接口错误。自顶向下测试方法的主要缺点是需要
存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种
方法在早期不能充分展开人力。自底向上测试言法的优缺点与自顶向下测试方法的优缺点刚
13、什么是类?类与对象间是什么关系?
类是对具有相同数据和相同操作的一组相似对象的定义。类是对具有相同属性和行为的一个
或多个对象的描述,而对象是某个特定类所描述的一个具体对象。
14、面向对象方法特征有哪些?
(1)客观世界是由各种对象组成的。
(2)所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。
(3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。
(4)对象彼此之间仅能通过传递消息互相联系。
15、可行性研究的目的?应该从哪些方面研究目标系统的可行性?
用最小的代价在尽可能短的时间内确定问题是否能够解决。
(1)技术可行性(2)经济可行性(3)操作可行性(4)法律可行性
16、什么是软件工程?构成软件工程的要素是什么?
答:软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和
方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技
术方法结合起来。要素是:方法、工具、过程。
17、简述软件测试的步骤?
(1)模块测试(2)子系统测试(3)系统测试(4)验收测试(5)平行运行
18、对象有哪几种定义?
(1)对象是具有相同状态的一组操作的集合。(2)对象是对属性值和操作的封装。(3)对
象::=<ID,MS,DS,MI>ID:是对象的标识或名字MS是对象中的操作集合
DS:是对象的数据结构MI:是对象受理的消息名集合
19、类—&—对象间的关系可以概括为哪三种?
(1)、归纳关系:它反映了一个类与若干个互不相容的子类之间的分类关系。
(2)、组合关系:它反映了对象之间的构成关系。
(3)、关联关系:反映对象之间相互依赖、相互作用的关系。
20、简述渐增模型的特点?
(1)在整个开发过程中需求都可能有变化。(2)对应用领域不熟悉。
(3)高风险项目(4)用户完全参与到整个开发过程中。
(5)使用面向对象语言或第四代语言。
21、总体设计的过程如何?
答:(1)设想供选择的方案。(2)选取合理的方案。
(3)推荐最佳方案。(4)功能分解。(5)设计软件结构。(6)数据库设计。
(7)制定测试计划(8)书写文档(9)审查和复审
22、有几种效益的分析方法?
(1)货币的时间价值(2)投资回收期(3)纯收入(4)投资回收率
23、面向对象方法的主要优点有哪些?
答:(1)与人类习惯的思维方法一致。
(2)稳定性好。(3)可重用性好。(4)可维护性好。

}

我要回帖

更多关于 结构化方法的基本手段 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信