软件工程第九章课后题
- 格式:docx
- 大小:16.41 KB
- 文档页数:3
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
第九章测验一、单选题(共40.00分)1. 以下哪项不是选择面向对象程序设计语言时需着重考察的技术特点?()A. 支持类与对象概念的机制B. 实现整体-部分结构的机制C. 实现一般-特殊结构的机制D. 实现单入口-单出口结构的机制正确答案:D2. 设计模型中的一条由类A的某个实例向类B的某个实例发送的同步消息,在实现时一般映射为()。
A. 类A的一个方法B. 类B的一个方法C. 类A的某个方法实现中对类B对象某方法的一次调用D. 类B的某个方法实现中对类A对象某方法的一次调用正确答案:C3. 在用C++语言进行面向对象编程时,为了重用使用C语言编写的已有代码,比较好的办法是()。
A. 将已有代码封装在类中B. 将已有代码作为全局函数调用C. 将已有代码用C++重新实现D. 先将C++程序转换为C程序,再修改生成的C程序调用已有代码正确答案:A4. 解决名字冲突,指的是处理在()中可能出现的重名问题。
A. 类定义B. 派生类和基类C. 多个基类正确答案:C二、多选题(共33.00分)1. 常用的面向对象集成测试策略包括()。
A. 自顶向下测试B. 基于线程的测试C. 基于使用的测试D. 集群测试正确答案:B C D2. 面向对象编程时,采用的程序设计语言的特点和程序设计风格将对程序的()产生深远的影响。
A. 可维护性B. 可靠性C. 可重用性D. 规模正确答案:A B C3. 面向对象语言中常用的对象内存管理方法包括()。
A. “垃圾收集”机制B. 程序员自行编写释放内存的代码C. 内存换入/换出D. 虚拟内存正确答案:A B三、判断题(共27.00分)1. 所谓参数化类,就是一个类的构造方法具有参数。
()A. 正确B. 错误2. C++语言中没有接口类型,因此无法实现“接口与实现相分离”。
()A. 正确B. 错误正确答案:B3. 使用面向对象语言编写的程序,其执行效率一定低于使用非面向对象语言编写的程序。
习题九一、用适当内容填空1.计算机系统运行和操作的最小功能单位是指令,一台计算机中全部指令的集合称为指令系统。
2.计算机能够直接识别的程序设计语言是机器语言,其直接使用机器指令或二进制格式编写程序。
3.汇编语言是一种低级语言,它是面向过程的语言。
高级语言书写的源程序可以通过解释或编译方式来执行。
4.字符型是一种基本数据类型,一般程序设计语言中都采用 8位二进制位来表示,其对应值的范围是 0-255 。
5.在程序中要处理200名学生一门课的成绩信息,应该定义数组类型变量;要处理200名学生的档案资料应该定义记录或结构类型变量。
6.在程序运行过程中值不可改变的量称为常量,可改变的量称为变量。
7.结构化程序设计的3种基本逻辑结构为顺序、分支或选择和重复或循环,合理使用这3种控制结构可以表现任何复杂的控制关系。
8.过程是功能独立或需要多次调用的程序段,它也可以称为函数或子程序。
9.一段程序代码需要多次反复执行,需要使用重复或循环结构来表达;根据判断条件结果决定是否执行一段程序,应该使用分支或选择结构表示。
10.循环也称为重复,其对应两种类型,分别为当型结构和直到型结构。
11.面向过程程序设计的核心是算法和数据结构;面向对象程序设计的核心是类和对象。
12.结构化程序设计应遵循自顶向下、逐步求精、模块化和限制使用goto语句原则。
13.采用结构化程序设计方法能够使程序易读、易理解、易维护和结构良好。
虽然这种方法具有许多优点,但它仍是一种面向过程的程序设计方法。
14.VB是一个可视化操作界面、面向对象的程序设计语言;在VB中可以直接创建Access 数据库。
15.在VB窗口中添加的对象都具有若干属性,在窗口设计阶段改变对象属性可以在①属性窗口中操作,在程序运行时改变属性应该在相关对象事件代码中操作。
16.类是一组数据及该组数据能够实现操作的封装体。
在类与对象的关系中,类是对对象的抽象,而对象是类的实例。
17.在面向对象方法中,信息隐藏是通过对象的封装性来实现的;同样的消息被不同的对象接收时可导致不同的行为,这是对象的多态性。
2010121337 李佳俊 10科技三班6、什么是对象模型?建立对象模型时主要使用那些图形符号?这些符号的含义是什么?答:对象模型表示静态的、结构化的系统的“数据”性质。
它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。
通常使用UML提供的类图来建立对象模型。
在UML中术语“类“的实际含义是,一个类及属于该类的对象。
7、什么是动态模型?建立功能模型时主要使用哪些图形符号?这些符号的含义是什么?答:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。
通常,用 UML 提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。
每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。
也就是说,动态模型是基于事件共享而互相关联的一组状态图的集合。
8、什么是功能模型?建立功能模型时主要使用哪些图形符号?答:功能模型表示变化的系统的功能性质,它指明了系统应该做什么,因此更直接地反映了用户对目标系统的需求。
功能模型由一组数据流图组成。
在面向对象方法学中,数据流图远不如在结杂对象提供的服务,简单的处理(或用例)对应于更基本的对象提供的服务。
有时一个处理(或用例)对应多个服务,也有一个服务对应多个处理(或用例)的时候。
(1)数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。
(2)数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。
(3)用例图中的行为者,可能是对象模型中的对象。
(4)功能模型中的处理(或用例)可能产生动态模型中的事件。
(5)对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。
第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
●软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。
例如:编译软件、操作系统。
2.支撑软件支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境。
3.应用软件应用软件是特定应用领域专用的软件。
例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.3简述软件语言的分类,并举例说明。
1.需求定义语言是用于书写软件需求定义的语言。
例如:PSL/PSA。
2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。
例如:广谱语言、Z 语言。
3.设计性语言是用于书写软件设计规约的语言。
例如:PDL。
4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。
例如:C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言是用于书写软件文档的语言。
通常用自然语言或半形式化语言书写。
1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。
2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
第九章习题一、简答题1.为什么应该尽量使用面向对象语言来实现面向对象分析和设计的结果?2.什么是强类型语言?这类语言有哪些优点?3.用动态联编实现多态性是否会显著降低程序的运行效率?4.为什么说参数化类有助于提高可重用性?5.把策略方法与实现方法分开后,为什么能提高可重用性?6.面向对象软件的哪些特点使得测试和维护变得比较容易?哪些特点使得测试和维护变得比较困难?7.试用C++语言编程实现下述简单图形程序的类继承结构。
在显示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”。
8.设计测试用例以测试第7题类继承结构中的各个类。
第九章习题解答一、简答题1. 答:面向对象语言充分支持对象、类、封装、继承、多态、重载等面向对象的概念,编译程序能够自动地在目标程序中实现上述概念,因此,把面向对象的设计结果翻译成面向对象程序比较容易,这就不仅降低了编程工作量而且减少了编程错误。
更重要的是,从面向对象分析到面向对象设计再到面向对象程序设计,始终使用统一的概念,既可以保证在软件开发过程的各个阶段之间平滑过渡,又有助于提高软件的可重用性和可维护性。
2. 答:按照编译时对程序中使用的数据进行类型检查的严格程度,可以把程序设计语言划分成两类。
如果语言仅要求每个变量或属性隶属于一个对象,则是弱类型的;如果语言规定每个变量或属性必须准确地属于某个特定的类,则这样的语言是强类型的。
强类型的语言主要有两个优点:一是有利于在编译时发现程序错误,二是增加了优化的可能性。
因此,强类型语言有助于提高程序的可靠性和运行效率。
3. 答:绝大多数面向对象语言都优化了动态联编时查找多态操作入口点的过程,由于实行了高效率查找,因此并不会显著降低程序的运行效率。
第9章面向对象方法学引论1.什么是面向对象方法学?它有哪些优点?答:(1)面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现解法的解空间在结构上尽可能一致的方法学科。
(2)面向对象方法学优点:①与人类习惯的思维方法一致。
②面向对象软件稳定性好。
③面向对象软件可重用性好。
④较易开发大型软件产品。
⑤可维护性好。
2.什么是“对象”?它与传统的数据有何异同?答:(1)对象是对问题域中某个实体的抽象。
(2)相对于传统数据结构的静态被处理,对象既有静态的属性,也有动态的行为,是进行处理的主体。
3.什么是“类”?答:类是对具有相同数据结构和相同操作的一组组相似对象的定义,即类是对具有相同属性和行为的一个或多个对象的描述,包括对怎样创建该类的新对象的说明。
4.什么是“继承”?答:继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。
5.什么是模型?开发软件为何要建模?答:(1)模型是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。
模型是一种思考工具,利用这种工具可以把知识规范地表示出来。
(2)由于建模忽略了事物的非本质属性,因此模型比原始事物更容易操作。
对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,模型通过吧系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。
6.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?答:(1)对象模型表示静态的、结构化的系统的数据性质。
它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。
(2)通常使用UML提供的类图来建立对象模型。
(3)在UML中“类”的实际含义是。
第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。
例如:编译软件、操作系统。
2.支撑软件支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境。
3.应用软件应用软件是特定应用领域专用的软件。
例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.3简述软件语言的分类,并举例说明。
1.需求定义语言是用于书写软件需求定义的语言。
例如:PSL/PSA。
2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。
例如:广谱语言、Z 语言。
3.设计性语言是用于书写软件设计规约的语言。
例如:PDL。
4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。
例如:C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言是用于书写软件文档的语言。
通常用自然语言或半形式化语言书写。
1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。
2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
第九章练习题:一、填空题1.当一个系统已经在实际环境中投入使用了,可以进行正常的操作,我们就说系统开发完成了,而以后对系统变更所做的任何工作,称为维护。
2.软件的可维护性是指纠正软件系统出现的错误和缺陷以满足新的要求而进行修改、扩充或压缩的容易程度。
3.一个可移植的程序应该具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。
4.软件维护的类型主要包括改正性维护、适应性维护、完善性维护和预防性维护等。
5.预防性维护也称为软件再工程。
6.软件的逆向工程是一个恢复设计结果的过程。
7.如果软件是可测试的、可理解的、可修改的、可移植的、可靠的、有效的、可用的,则软件一点是可维护的。
二、判断题1.可维护性、可使用性、可靠性是衡量软件质量的几个主要质量特性,其中软件的可使用性是软件各个开发阶段的关键目标。
(×)2.可理解性表面人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。
(√)3.可测试性表明验证程序正确性的容易程度,程序越简单,验证其正确性越容易。
(√)4.适应性维护是针对系统在运行过程中暴露出来的缺陷和错误而进行的,主要是修改错误。
(×)5.完善性维护主要是为了改善系统的某一方面而进行的变更,可能这种变更是因为出现错误而进行的变更。
(×)三、选择题1.度量软件的可维护性可以包括很多方面,下列(A)不在措施之列。
A.程序的无错误性B.可靠性C.可移植性 D.可理解性2.软件按照设计的要求,在规定时间和条件下达到不出故障、持续运行要求的质量特性称为(A)。
A.可靠性B.可用性C.正确性D.完整性3.为适应软件运行环境的变化而修改软件的活动称为(B)。
A.纠错性维护B. 适应性维护C.完善性维护D.预防性维护4.在软件生存期的维护阶段,继续诊断和修正错误的过程称为(D)。
A.完善性维护B. 适应性维护C.预防性维护D.纠错性维护5.软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以(C)维护所占的维护量最小。
软工第1章:1)P2的§1.1,软件工程的概念和软件的含义2)软件工程框架P2图1.1软工第2章:1)软件开发模型的定义P4第一段2)几种模型的比较:特点、优缺点3)重点模型:演化模型、螺旋模型、喷泉模型(其实这个最重要了,可是96期末考过了,不知道这次考不考)软工第3章:1)需求分析的目标和任务,以及阶段划分P102)P13 人们常用的组织信息的三条基本原则3)P14,什么是结构化方法§3.2的第二段4)如何绘制DFD和加工小说明5)P22-25需求验证正确性的11个方面,只要知道有哪11个方面就可以了软工第4章:1)设计的任务和目标2)结构化设计的阶段3)总体设计的任务4)三种主要表示方式5)数据流图的分类(这个比较重要)6)DFD->MSD(一定要掌握,必考)7)设计准则,其中耦合的概念和分类,内聚的概念和分类8)启发式规则,其中模块独立性,深度,宽度,扇入,扇出的概念9)P52的模块的作用域应在控制域的要求重要(曾经是一年的考研题)软工第5章:1)程序流程图->PAD 2)程序流程图->N-S应该是其中之一,个人认为,王老师比较喜欢PAD,呵呵,不过,好像应该都看,反正不难:)软工第6,7章:都是OO的内容,我就不多说了,因为很多都学过OO的只是要注意,控制信息组织复杂度的概念和控制文档复杂度的概念是什么(前面我都回答过了的)还有就是描述对象类行为的概念——状态(这个非常非常重要)还有一点点差别,就是对象的三个层次上的概念差别面向对象方法的世界观——P64第二段其他的都差不多软工第8章:OSA的三种模型,以及每种模型中的基本概念,分别看各节后的模型小结软工第9章:1)P132的测试定义2)P133的图9.1,软件错误的分类和软件测试技术的分类(§9.2第一段)3)P134-135的控制流程图,路径测试策略,测试路径的选择(一般是大题:选择一个具体程序段的测试用例)4)P138的第二段软工第10章:1)软件过程的分类,以及三大类下的小类,记记就行了2)还有一个重点就是P165的图10.1个人认为,这章不重要,大概看看就行了软工第11章:1)P174的CASE的概念和几种定义,看看,有个印象,觉得不会考这个,如果考的话,因为有印象,也能写出来2)P176的表11-13)P178的图11.24)P179的五级模型的组成部分5)P188的Case工作台分类(7个)6)P193的图11.13(96的期末考题)7)P198的图11.168)P200的图11.17以及下面的Brown中的解释,4层观点9)P202的图11.19以及下面的软件工程环境提供的服务(5个)10)P203的表11-3(96的期末考题)11)P204的表11-4第一章1.软件:计算机系统中的程序及其文档工程:将理论和所学的知识应用于实践的科学软件工程:应用计算机科学、数学及管理科学等原理,开发软件的工程。
第一章:1.1 简述软件的定义、软件的特点和软件危机的表现。
ﻩ软件的定义:软件是由计算机程序、数据和文档组成的。
ﻩ软件的特点:1)抽象性,2)软件生产无明显的制造过程,3)无磨损性,4)对计算机系统的依赖性,5)软件的手工开发方式,6)软件本身复杂性,7)软件的高成本ﻩ软件危机的表现:1)软件开发周期大大超过规定日期,2)软件开发成本严重超标,3)软件质量难于保证。
1.2什么是软件工程和软件工程化?软件工程:ﻩ软件工程化:把软件工程理论应用到软件开发组织中,以改进软件产品开发的时间(T)、质量(Q)、成本(C)和服务(S)。
1.3简要说明软件工程三要素与质量关注点之间的关系。
ﻩ软件工程的三要素:方法、工具和过程。
关系看P41.4如何构造软件过程?软件过程构造时首先应建立一个公共过程框架,其中定义了少量可用于所有项目的框架活动;再给出各个框架活动的任务集合,使得框架活动能够适合于项目的特点和项目组的需求;最后是保护性活动。
1.5什么是软件生存周期?软件生存周期分为哪几个阶段?各阶段的任务是什么?ﻩ软件生存周期:是软件产品或软件系统从设计、投入使用到被淘汰的全过程。
软件生存周期:定义、开发、维护。
1)定义:包括问题定义、可行性研究和需求分析。
2)开发时期包括设计、编码和测试。
3)维护时期包括维护阶段。
1.6常用的软件工程方法和开发模型各有哪些?软件工程方法:生命周期法(又称传统方法或结构化方法)、面向对象方法和原型法。
ﻩ软件开发模型:瀑布模型、快速原型模型、演化模型、面向对象模型、形式化方法模型。
1.7什么是软件工具、软件开发环境和软件工程环境?软件工具:是用来辅助软件开发、运行、维护、管理和支持等过程中活动的软件。
1.8软件工程的基本原理:ﻩ1)按软件生存期分为阶段制定计划并认真实施。
2)坚持进行阶段评审。
3)坚持严格的产品控制。
ﻩ4)使用现代程序设计技术。
5)明确责任,使得工作结果能够得到清楚的审查。
1.以下哪一项最能表现某个项目的特征()
A. 运用进度计划技巧
B. 整合范围与成本
C. 确定期限
D. 利用网络进行跟踪
2. 项目管理需要在相互间有冲突的要求中寻找平衡,除了()
A. 甲方和乙方的利益
B. 范围,时间,成本,质量
C. 有不同需求和期望的项目干系人
D. 明确的和未明确表达的需求
3. 以下都是日常运作和项目的共同之处,除了()
A. 由人来作
B. 受制于有限的资源
C. 需要规划、执行和控制
D. 都是重复性工作
4. 有效的项目管理要求项目管理团队理解和利用以下专业知识领域的知识和技能,除了()
A. 项目管理知识体系
B. 应用领域知识、标准与规章制度
C. 以项目为手段对日常运作进行管理
D. 处理人际关系技能
二、填空题
1.项目目标成功实现的制约因素有:(),成本,进度计划,客户满意度。
2.项目管理的五要素:(),方法,团队建设,信息,沟通答案。
3.软件项目管理分为(),项目计划,项目执行控制,项目结束。
4.对于一个组织的管理而言,主要包括战略管理,运作管理,()。
1.软件项目的特点主要表现为哪几个方面?
2.软件管理的主要功能包括哪些方面?
答案:
一、1.C 2.A 3.D 4.C
二、
1.项目范围
2.技术
3.项目初始
4.项目管理
三、
1.(1)智力密集,可见性差。
软件工程过程充满了大量高强度的脑力劳动。
软件开发的成果是不可见的逻辑实体,软件产品的质量难以用简单的尺度加以度量。
对于不深入掌握软件知识或缺乏软件开发实践经验的人员,是不可能做好软件管理工作的。
(2)单件生产。
在特定机型上,利用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的开发环境。
这种建立在内容、形式各异的基础上的研制或生产方式,与其他领域中大规模现代化生产有很大的差别,也自然会给管理工作造成许多实际困难。
(3)劳动密集,自动化程度低。
软件项目经历的各个阶段都渗透了大量的手工劳动,这些劳动十分细致、复杂和容易出错,使得软件的正确性难以保证。
(4)使用方法繁琐,维护困难。
用户使用软件需要掌握计算机的基本知识,或者接受专门的培训,否则面对多种使用手册、说明和繁琐的操作步骤,学会使用要花很大力气。
另一方面,如果遇到软件运行出了问题,且没有配备专职维护人员,又得不到开发部门及时的售后服务,软件的使用者更是束手无策。
(5)软件工作渗透了人的因素。
为高质量地完成软件项目,不仅需要软件人员具有一定的技术水平,而且还要求他们具有良好的心理素质。
软件人员的情绪和他们的工作环境对他们d 工作有很大的影响。
与其他行业相比,它的这一特点十分突出,必须给予足够的重视。
2.(1)制定计划:规定待完成的任务、要求、资源、人力和进度等。
(2)建立组织:为实施计划,保证任务的完成,需要建立分工明确的责任机构。
(3)配备人员:任用各种层次的技术人员和管理人员。
(4)指导:鼓励和动员软件人员完成所分配的工作。