1.什么是生产函数? 其主要特征是什么?
答:生 产函数是指一定时期内生产要素的数量与某种组合同其所能出产的最大产量之间存在的函数关系。
生产函数通常满足以下三个特征:
(1 ) 资本 与劳动力的边际产出总是为正值, 在劳动力(或者资本)投入滥不变的情况下, 资本(或者劳动力)的增加将引起产出的增加;
( 2) 边际产量递减特性。当其他生产要素固定不变,时随着某一要素投入量的增加, 其边际产量将逐渐减少;
(3) 生产函数具有非负性, 总产出必须是正值, 且总产堂是生产要素组合的结果, 单一要素的投入是不能获得产出的。
2.规模经济是如何判断的?
答:规模报酬又称为规模经济。规模报酬主要研究所有要素都同比例增加时, 产噩发生变化的情况。当所有投 入均增加一倍时, 产出也相应的增加一倍, 则称 该生产技术是规模报酬不变; 当所有投入均增加一倍时,产出的的增加是小千一倍的,则称 该生产技术是规模报酬递减; 当所 有投入均增加一倍时, 产出的增加是大千一倍的,则称 该生产技术是规模报酬递增。现实生产活动中, 究 竞出现哪 一种情况,通常依赖千规模所达到的 程度。在规模较小时,增加 投入可以促进规模报酬递增, 而当规模达到一定程度时, 则会出现规模报酬递减的情况。
3.什么是软件生产率? 影响软件生产率的因素有哪些?
答:软件生产率是指软件开发的效率,是衡翟软件开发水平的一个重要因素。影响软件生产率的因素众多, 主要有技术因素、管理因素以及文化因素。
4.提高软件生产率的主要措施有哪些?
答: 提高软件生产率的主要举措有以下几个方面。
( 1 ) 技术方面
► 强 调对企业研发人员个人职业能力的综合评估。为了提升个人对软件企业的贡献, 有必要从专业、技能、经验、学历以及年龄等多方面进行考溢。
► 软件技术领域最好根据研发人员所擅长的技术能力来划分不同的专业技
术组。
► 培养研发人员对新技术的学习掌握, 并创新应用。
(2) 管理方面
► 建立良好的人才激励机制, 通过物质、精神奖励以及职务晋升制度提高研发人员的工作热情。
► 建立科学、合理的研发人员梯队制度, 明确 划分管理与技术领域人才。
► 依据软件企业所处的市场环境及企业自身发展的要求适时变革管理, 用以应对不断变化的 IT 市场, 进而增强软件企业的核心竞争力。
( 3 ) 文化方面
► 建立良好的企业学习氛围。通过研发人员个人知识的学习、交流及其共享来形成群体效应,提 升整个企业的知识资源。
► 注重软件工程项目团队建设, 加强团队 合作精神, 提高团队沟通能力。
5.为什么要进行不确定性分析?不确定分析的步骤是如何的?
在进行软件工程项目的财务分析和经济分析时,所依据的项目的现金流量是估算和预测的,这些估算或预测值难免与将来实际发生的费用不一致,导致 这些数据因素的不确定性。这些不确定性是决策者事先不知道决策的可能结,果
其变化会对项目的评价产生影响。因而要进行不确定性分析.
不确定性分析的步骤是:
( 1) 鉴别不确定性因素。
( 2 ) 界定不确定性因素的性质。
( 3 ) 选择不确定性分析的方法。
( 4 ) 明确不确定性分析的结果。
6.
7.网络计划主要有哪两种资源优化方式?软件工程项目的网络计划资源优化主要使用哪种方法?
答: 网络计划主 要有“ 资源 有 限 , 工 期最短 ”和“工 期固 定 , 资源均衡 ” 的两种资源优化 方式.软件工 程 项目的网络计划资源优化主要使用“工期固定, 资源均衡”的优化方式。
8.软件工程项目团队的特点主要有哪些?
(1 ) 软件工程项目团队的目的性。
(2)软件工程项目团队的临时性。
(3)) 软件工程项目团队的合作性。
(4)软件工程项目团队的凝聚力。
9.软件工程项目经理的基本职责有哪?些答: 软件工程项目经理的基本职责有:
(1 ) 确保软件工程项目目标的实现, 领 导项目团队按时并优质地完成全部项目相关工作。
(2)) 保持与客户的沟通了解项目的整体需求,能即时的反馈阶段性成果, 并对客户提出的合理需求进行相应的变更。
(3)制订软件工程项目开发计划文档, 量化各阶段任务, 并合理分配给相应的团队人员。
(4)跟踪软件工程项目的进度, 协调项目组团队成员之间的合作。
(5)监督软件工程项目进展中各阶段的文档, 保持与质量保证人员的沟通, 保证文档的完整与规范性。
(6 ) 如果项目开发过程中有需求的变更, 项目经理需要向客户了解需求, 在无 法判断新的需求对项目的整体影响的情况下 ,需同项目 组团队成员商谎,最后决定是否接受客户的需求,再跟客户协商; 在确定要变更需求的情况下 ,需产生需求变更文档, 更改开发计划, 同步通知质量保证人员。
(7)项目提交测试后, 项目 经理需了解测试结果, 根据测试的 bug (漏洞)严 重程度更改开发计划。
(8)及时向上级汇报项目的进展情况、需求变更等所有项目相关信息。
软件工程项目完成的时候项目经理需要做项目总结,产生软件工程项目总结文档。
10.关于软件 工程 项目的先行工作 A 与后继工作 B ,主要包括的依赖关系有哪些?
关千软件工程项目的先行工作A与后继工作B, 主要包括的四种依赖关系有:1.完成对开始: 指 后继工作B的开始要等到先行工作 A 的完成;2.开始对开始: 指后继工作 B 的开始要等到先行工作 A 的开始。例如,开始写测试结果(后继工作)必须在测试(先行工作)开始之后开始; 3.完成对完成: 指后继工作 B 的完成要在先行工作A 完成之后完成。例如,文 档(后继工作)的完成要等到系统架构(先行工作)的完成; 4. 开始对完成: 指一个工作A 的完成要在后继工作B 开始之后。
11.软件工程项目后评价的特点是什么?作用是什么?
软件工程项目后评价的特点有 :
(1)现 实 性
(2)全面性
(3)反馈性
(4)合作性
(5)独立性
(6)可信性
3.软件工程项目后评价的作用是:
( 1) 提高建设软件工程项目决策的科学化水平服务
( 2 ) 为政府制订和调整有关经济政策提供参考
( 3 ) 为银行调整信贷政策提供依据
( 4 ) 为提高出资人建设软件工程项目监管水平提出建议
( S) 有利于提高生产能力和经济效益
( 6 ) 有利于提高引进技术和装备的成功率
( 7) 有利于控制项目造价
12. 影响软件质量的因素有哪些?
影响软件质量的因素有人的因素、过程因素和技术因素
13.软件质量保证的内容有哪些?
软件质量保证( Software Qualit y Assurance, SQA) 的主要工作内容有:
(1 ) 与软件质益保证计划直接相关的各项工作。
(2)参与软件工程项目的阶段性评审及其审计。
(3)) 对软件工程项目常规活动与规程的符合性进行检查。
(4)对项目的配置管理工作的检查及其审计。
(5)跟踪所发现问题的解决情况。
(6)在软件质量保证过程中收集新方法, 提供过程改进的相关依据。生成软件质量审计报告。
14.按开发阶段划分软件测试类型,并简要介绍其测试方法。
按照开发阶段划分测试类型主要有单元测试、集成测试、系统测试与验收测试。
1)单元测试
单元测试又称为模块测试, 是指对软件中的最小可测试单元进行检查与验证。关于单元, 要根据实际开发语言的情况来判定,如 Java 中的单元指一个类,C 语言则指一个函数,而图形化 软件中的单元是指一个窗口或一个菜单。单元测试是在软件开发过程中进行的最低级别的测试活动,通常将独 立单元与程序的其他部分相隔离后再进行测试。
单元测试可作为无错编码的一种辅助手段,可看作是编码工作的一部分,由 程序员负责,也就是说,经过了单元测试的代码才是已完成的代码,且提交产品代码时也要同时提交相关单元测试代码 。无论在软件修改,还是移植到新的运行环境过程中必须是可重复的。单元铡试要把握尽早、自动化、可重复性等原则。 测试的主要内容包括: 单元功能测试、单元接口测试、单元局部数据结构测试、单元的各类错误处理路径测试、单元中重要的执行路径测试以及单元边界条件测 试。
2)集成测试
集成测试又称为组装测试、子系统测试、联合测试或部件测试,是指在单位测试的基础上,将所 有模块按照概要设计的要求组装成一个系统或子系统来进行的测试活动, 它是单元测试的逻辑扩展。
集成测试通常由专门的测试人员来负责。测试依据主要来自千软件的概要设 计规格说明,集成测试组装的对象与单元测试相比较其对象级别要高很多。测试 的主要内容包括模块间的接口测试(把各个模块连接起来时,所穿越模块接口的数据是否会丢失; 全 局数据结构是否会有问题; 会 不会被异常修改等)和模块集成后的功能测试(将软件的各个子功能组合起来,测试能否达到父功能的预期要 求。一个模块的功能是否会对另一个模块的功能产生不利的影响。单个模块的误 差积累起来, 是否会放大,从 而达到不可接受的程度)。
3)系统测试
系统测试 是对已集成好的软件系统所进行的测试, 将软 件、硬件以及操作人员看成一个整体,以验证其正确性以及性能是否能满足规约 所指定的要求。系统测试由测试工程师依据项目需求来负责贯彻和执行,验证最 终软件系统是否满足用户规定的需求。测试的主要内容包括功能测试(测试软件 系统的功能是否正确)和健壮性测试(测试软件系统在异常情况下能否正常运行, 主要包含容错能力测试与恢复能力测试)。
4)验收测试
验收测试 又称为确认测试、交付测试或发布测试, 是在软件产品完成系统测试之后、产品正式交付或软件产品发布之前所进行的软 件测试活动。
验收测试通常由用户或者独立的测试人员负责,依据项目任务书或合同、供 需双方约定的验收依据等文档,对整个软件系统进行的测试与评审,根据测试结 果决定是否接受软件系统。测试的主要内容包括安装测试、易用性测试、兼容性 测试以及用户手册、操作手册等文档的测试。
15.动态测试与静态测试的主要区别是什么?
4.静态测试与动态测试的区别主要有
静态测试主要用千预防, 而动态测试则主要用千校正。
1.多次静态测试通常比动态测试的效率要高。
2.静态测试需要综合测试程序代码。
3. 在短时间的测试过程中, 静态测试的覆盖率能达到100%, 而动态测试却只能达到 50%。
4.静态测试的执行可以在程序的编码编译前,而动态测试只能在程序编译后才能执行。
16.按照质量属性可将软件测试分为哪些类型?
按照质量属性划分软件测试分为容错性测试、可靠性测试、兼容性测试、维护性测试、安全性测试和可移植性测试。
17. 什么是黑盒测试,白盒测试,灰盒测试?三者的区别是什么?
1.黑盒测试
黑盒测试:也可叫功能测试,是一种从用户角度出发的测试。把被测程序当作一个黑盒子,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。主要的测试方法有等价划分类,错误推测法等。
2.白盒测试
白盒测试也称为结构测试。它根据程序的控制结构设计测试用例,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。
3.灰盒测试
灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑。