软件工程
- 格式:doc
- 大小:756.50 KB
- 文档页数:36
软件工程专业方向简介软件工程是一个专注于设计、开发和维护高质量软件系统的学科。
随着信息技术的快速发展,软件工程专业逐渐成为了许多大学和学院的热门专业之一。
本文将为您介绍软件工程专业的方向及其相关内容。
一、软件工程专业的概述软件工程是一个涉及众多领域的综合学科,包括软件开发、软件测试、软件质量管理、软件架构等等。
软件工程专业的目标是培养具备全面软件开发能力和软件项目管理知识的专业人才。
学生在专业学习中主要掌握软件工程的基础理论、软件开发技术和软件项目管理方法,以便在实际工作中能够独立设计、开发、编码和测试软件系统。
二、软件工程专业的方向1. 软件开发方向软件开发方向是软件工程专业最核心的方向之一。
在这个方向上,学生将学习软件开发的理论和实践知识,包括编程语言、数据结构、算法设计、软件架构等。
学生将通过课程实践和项目实践,掌握软件需求分析、系统设计、编码实现和软件测试等技能。
2. 软件测试方向软件测试是保证软件质量的重要环节,软件测试方向就是培养软件测试专家的方向之一。
在这个方向上,学生将学习软件测试的基本理论和实际技术,包括测试策略与计划、测试用例设计、测试执行和缺陷跟踪等。
学生将通过课程实践和实际项目,熟练掌握软件测试的方法和工具,能够发现并解决软件开发中的问题。
3. 软件项目管理方向软件项目管理方向是培养软件项目管理专家的方向之一。
在这个方向上,学生将学习项目管理的基本理论和实践方法,包括项目计划、需求管理、团队协作和风险管理等。
学生将通过项目实践,掌握项目管理的技能,能够高效管理和组织软件开发团队,确保项目顺利完成。
4. 软件工程研究方向软件工程研究方向是培养软件工程科学家和学术研究人员的方向之一。
在这个方向上,学生将进行深入的学术研究,探索软件工程领域的新理论和新方法。
学生将在导师的指导下,参与科研项目,发表学术论文,为软件工程的发展做出贡献。
三、软件工程专业的就业前景随着信息技术的迅速发展,软件工程专业的就业前景广阔。
软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
软件工程的目标是提高软件生产效率、提高软件质量、降低软件成本。
比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程的研究范围广泛,主要包括以下几个方面:1.软件需求分析与定义:软件需求是针对待解决问题的特性的描述,所定义的需求必须可以被验证。
通过需求分析,可以检测和解决需求之间的冲突、发现系统的边界、并详细描选出系统需求。
2.软件设计、测试与维护:软件设计是根据软件需求,产生一个软件内部结构的描述,并将其作为软件构造的基础。
通过软件设计,描述出软件架构及相关组件之间的接口,然后进一步详细地描述组件,以便能构成这些组件。
软件测试是为了评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
测试是为了验证软件是否符合其规格说明。
此外,软件维护是为了改正运行时或运行后的错误,或者为了提高软件性能和软件可维护性而对软件进行的修改。
3.软件工程管理:包括项目管理、质量管理、风险管理等。
4.软件工具与环境:包括软件开发工具、软件工程环境等。
5.软件工程过程:包括软件开发、软件测试、软件维护等过程中的方法和规范。
软件工程的应用场景非常广泛,包括但不限于以下领域:1.软件开发:这是软件工程最主要的应用场景,通过软件工程的方法,可以规范化软件开发流程,提高软件开发效率和质量。
2.软件测试:在软件工程中,测试是非常重要的一部分。
通过测试,可以发现软件中的缺陷和错误,从而提高软件的质量和可靠性。
3.项目管理:软件工程中的项目管理是为了合理规划软件开发过程,合理分配资源,提高项目效率和质量。
软件工程简介及其应用领域软件工程是一门研究如何以系统化、规范化和可量化的方法开发、运行和维护软件的学科。
它旨在通过科学化的方法解决软件开发过程中的问题,确保软件质量、效率和可靠性。
本文将对软件工程的基本概念和应用领域进行介绍。
一、软件工程的基本概念1. 软件工程的定义软件工程是一门综合性学科,它借鉴了工程学的方法和原则,并应用于软件开发过程中。
其目的是通过系统化的方法,将软件开发过程转化为可管理和可控制的活动,从而实现高质量的软件产品。
2. 软件开发生命周期软件开发生命周期是指软件从创建到废弃的整个过程。
它包括需求分析、设计、编码、测试、部署和维护等阶段。
每个阶段都有特定的任务和产出物,通过这些阶段的有序进行,可以有效提高软件开发的效率和质量。
3. 软件工程的原则软件工程遵循一些基本原则,以确保开发出高质量的软件。
其中包括适应性原则、可管理性原则、可测量性原则、可靠性原则和可重复性原则等。
这些原则帮助开发团队规范开发过程,降低开发风险,提高软件的稳定性和可维护性。
二、软件工程的应用领域1. 软件开发软件工程的最主要应用领域是软件开发。
在这个领域中,软件工程师通过需求分析、系统设计、编码和测试等步骤,将用户需求转化为可运行的软件。
软件开发领域的不断发展使得软件工程师的需求量逐年增加。
2. 软件测试软件测试是软件工程中至关重要的一环,旨在保证软件的质量和稳定性。
软件测试工程师通过编写测试用例和执行测试,发现和修复软件中存在的问题。
他们努力确保软件在不同环境下正常运行,并具有预期的功能。
3. 软件项目管理软件项目管理涉及到对软件开发项目的计划、组织和控制。
软件工程师在此领域中承担着项目经理的角色,负责制定项目计划、分配任务、协调团队成员以及监控项目进度。
他们的目标是确保项目按时交付,并满足客户需求。
4. 软件需求工程软件需求工程是软件开发过程中重要的一环,旨在准确收集和分析用户的需求。
软件工程师在此领域中通过与客户的沟通和需求调研,确定软件的功能和性能要求,为后续的开发工作提供指导。
软件工程1.什么是软件工程?构成软件工程的要素是什么?软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。
它由方法、工具和过程三部分组成。
软件工程方法是完成软件工程项目的技术手段。
它支持项目计划和估算、系统和软件需求分析、软件设计、编码、测试和维护。
软件工程使用的软件工具是人类在开发软件的活动中智力和体力的扩展和延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成。
软件工程中的过程贯穿于软件开发的各个环节。
管理者在软件工程过程中,要对软件开发的质量、进度、成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证、配置管理等。
软件工程的方法、工具、过程构成了软件工程的三要素。
它们既有区别又有联系。
2.什么是软件危机?其产生的原因是什么?人们在大型软件项目开发面前显得力不从心,一些公司或团体承担的大型软件开发项目预算经常超支,软件交货时间经常延迟,软件质量差,维护困难,在软件维护过程中很容易引起新的错误,软件的可移植性差,两个类似的软件很少能够重用,等等。
工业界为维护软件支付的费用占全部硬件和软件费用的40%-75%。
许多重要的大型软件开发项目,在耗费了大量的人力和财力之后,由于离预定目标相差甚远不得不宣布失败。
从软件危机的种种表现和软件作为逻辑产品的特殊性可以发现软件危机的原因:①用户对软件需求的描述不精确,可能有遗漏、有二义性、有错误,甚至在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求。
②软件开发人员对用户需求的理解与用户的本来愿望有差异,这种差异必然导致开发出来的软件产品与用户要求不一致。
③大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。
各类人员的信息交流不及时、不准确、有时还会产生误解。
④软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。
软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。
通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。
软件工程三级学科软件工程是一门计算机科学的分支学科,主要研究如何使用系统化、规范化、可量化的方法来开发和维护高质量的软件。
软件工程三级学科包括软件工程基础、软件开发技术和软件工程应用。
一、软件工程基础1. 软件需求工程软件需求工程是指对用户需求进行分析和描述的过程,目的是确保开发出符合用户需求的高质量软件。
该领域研究如何收集、分析和描述用户需求,并将其转化为可执行的任务。
2. 软件设计与架构软件设计与架构是指将用户需求转换为具体的设计方案和系统架构。
该领域研究如何将系统划分为不同模块,并定义它们之间的关系,以及如何选择合适的编程语言和技术来实现这些模块。
3. 软件测试与验证软件测试与验证是指通过一系列测试活动来评估和验证开发出来的软件是否符合预期要求。
该领域研究如何进行测试计划、测试用例设计、测试执行等活动,以及如何评估测试结果并提供反馈。
4. 软件质量保障软件质量保障是指通过一系列管理和技术手段来确保软件开发过程中的质量,并在软件交付后维护其质量。
该领域研究如何制定软件开发流程、规范和标准,以及如何进行配置管理、版本控制、缺陷跟踪等活动。
二、软件开发技术1. 软件工程方法论软件工程方法论是指一系列系统化的方法和技术,用于实现高质量的软件开发。
该领域研究如何选择合适的开发模型(如瀑布模型、敏捷开发等)、项目管理方法(如SCRUM、XP等)、需求分析方法(如面向对象分析、用例驱动等)等。
2. 软件编程语言与工具软件编程语言与工具是指用于实现软件功能的程序语言和辅助工具。
该领域研究各种编程语言和框架,以及各种辅助工具如IDE、代码生成器等。
3. 软件架构与设计模式软件架构与设计模式是指在系统设计中常用的一些通用解决方案。
该领域研究各种架构风格(如分层、客户端-服务器、RESTful等)和设计模式(如单例模式、工厂模式等),以及如何应用它们来解决实际问题。
4. 软件开发工具链软件开发工具链是指一系列工具和流程,用于支持软件开发的各个环节。
对软件工程的理解和认识哎呀,说起软件工程这个话题,我就觉得有点儿头疼。
毕竟,这可是一个相当复杂、高科技的领域啊!不过,既然咱们要聊聊这个话题,那我就尽量用大白话来说说吧,希望能让大家对软件工程有个初步的认识。
咱们得明白,软件工程是什么。
简单来说,软件工程就是用来开发、维护和管理软件的一门学科。
你知道吗,现在的世界已经离不开软件了,无论是手机、电脑、平板还是各种智能设备,都是靠软件来运行的。
所以,软件工程师就像是给这些设备编写“大脑”的人,他们负责设计、编写和测试代码,确保这些设备的正常运行。
那么,软件工程师需要具备哪些技能呢?首先当然是编程语言啦!现在市面上有很多种编程语言,比如Java、Python、C++等等。
不同的编程语言有不同的特点和用途,软件工程师需要根据项目的需求来选择合适的编程语言。
除了编程语言之外,软件工程师还需要掌握一些基本的计算机知识,比如数据结构、算法、操作系统等等。
这些知识对于编写高效、稳定的代码非常重要。
说到软件工程,我们还得提到一个概念,那就是“软件开发生命周期”。
简单来说,软件开发生命周期就是一个软件从开始到结束的整个过程。
这个过程通常包括以下几个阶段:需求分析、设计、编码、测试、维护。
在每个阶段,软件工程师都需要完成相应的任务,确保项目的顺利进行。
接下来,我们来看看软件工程师的工作环境。
现在的软件工程师可不是坐在办公室里敲敲键盘就能完成工作的。
随着科技的发展,很多软件工程师都需要在家里或者咖啡馆这样的地方工作。
这也意味着他们需要具备一定的自律性和抗压能力。
毕竟,一旦出现问题,他们需要立刻解决,不能让项目停滞不前。
好了,说了这么多,我们再来聊聊软件工程师的职业发展。
其实,软件工程师的职业发展道路非常广阔。
他们可以选择成为一名技术专家,专注于某个领域的研究;也可以选择成为一名项目经理,负责管理整个项目的进度;还可以选择成为一名架构师,设计出高效率、易维护的系统架构。
只要你有足够的能力和潜力,软件工程师这个职业可以为你提供无限的可能性。
软件工程的主要课程
软件工程的主要课程包括:
软件工程导论、计算机软件技术基础、算法设计、操作系统、数据结构、数据库、UML系统建模基础、软件项目管理案例等。
此外,软件工程专业的同学还需要学习外语、高等数学、线性代数、高等代数、电子技术基础、离散数学、计算机引论(C 语言)、数据结构、C++程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000等课程。
除此之外,软件工程专业的同学还需要学习一些实践性的课程,比如软件开发实践、软件工程实践、软件测试实践等。
这些课程通常会要求学生参与到真实的软件开发项目中,通过实践来巩固和运用所学的理论知识。
在软件工程的学习过程中,学生需要具备扎实的计算机科学基础和数学基础,同时也需要掌握一些商业和管理方面的知识。
此外,学生还需要具备创新思维和解决问题的能力,因为软件工程是一个充满挑战和创新的领域。
总之,软件工程是一个充满挑战和机遇的领域,需要学生具备全面的知识和技能。
通过学习软件工程的课程,学生可以掌握软件开发和维护的技能,成为一名优秀的软件工程师。
(一)一. 单选题(共30题,共30分)1. 可行性研究的步骤中不包括(C)的内容。
(1分)A.复查初步分析结果B.研究现有的系统C.导出新系统高层逻辑模型D.建立新系统的物理模型解法2. 从事物的属性侧面来描述事物的方法就是(B)的方法。
(1分)A.面向对象B.面向数据C.面向过程D.面向属性3. 为了提高模块的独立性,模块内部最好是(C)(1分)A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚4. 需求分析的任务不包括(B)。
(1分)A.问题分析B.系统设计C.需求描述D.需求评审5. 软件需求分析阶段的测试手段一般采用(C)。
(1分)A.总结B.阶段性报告C.需求分析评审D.不测试6. 以下说法错误的是(A )。
(1分)A.文档仅仅描述和规定了软件的使用范围及相关的操作命令B.文档也是软件产品的一部分,没有文档的软件就不成软件C.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量D.高质量文档对于发挥软件产品的效益有着重要的意义7. 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因此必须给出(B)的回答。
(1分)A.确定B.行或不行C.正确D.无二义8. 软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是(B)。
(1分)A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用9. 下列选项中(D)是软件开发中存在不正确的观念、方法。
(1分)A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是10. 在详细设计阶段所使用到的设计工具是(D)(1分)A.程序流程图,PAD图,N-S图,HIPO图,判定表,判定树.B.数据流程图,Yourdon图,程序流程图,PAD图,N-S图,HIPO图C.判定表,判定树,数据流程图,系统流程图,程序流程图,PAD图,N-S图D.判定表,判定树,数据流程图,系统流程图,程序流程图,层次图11. 瀑布模型本质上是一种(C)。
(1分)A.线性迭代模型B.顺序迭代模型C.线性顺序模型D.及早见产品模型12.下列UML图中展示系统交互模型是哪种图?(D)(1分)A.状态图B.用例图C.活动图D.协作图13.在软件结构设计的后处理中,下列说法错误的是(D)(1分)A.为模块写的处理说明及接口说明可采用IPO图B.数据结构的描述可用Warnier图或Jackson图C.在概要设计评审中,应着重评审软件需求是否得到满足及软件结构的质量等D.设计的优化工作主要放在软伯结构设计的后处理阶段14. SA方法的基本思想是( C ) (1分)A.自底向上逐步抽象B.自底向上逐步分解C.自顶向下逐步分解D.自顶向下逐步抽象15. 在软件开发中,(A)是指对将要开发的系统的开发成本进行估算,然后与可能取得的效益进行比较和权衡。
(1分)A.成本—效益分析B.可行性分析C.结构化分析D.软件需求分析16.需求分析中开发人员要从用户那里了解(A)(1分)A.软件做什么B.用户使用界面C.输入的信息D.软件的规模17. SA法中,DFD图的某个处理过程分解后,一般不超过(B)处理过程。
(1分)A.10B.7C.5D.1218. 模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,具有最强内聚的一类是(D )。
(1分)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚19.必须等前一个阶段的工作完成后才能开始后一阶段的工作,前一阶段的输出文档是后一阶段的输入文档,每个阶段结束前都要对所完成的文档进行评审,这种软件过程模型我们称之为(B)(1分)A.螺旋模型B.瀑布模型C.增量模型D.喷泉模型20.结构化设计是一种面向(A)的设计方法。
(1分)A.数据流B.模块C.数据结构D.程序21.人机界面的风格大致经过了(B)代的演变。
(1分)A.三B.四C.五D.六22.软件危机”产生的主要原因是(A)。
(1分)A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件23. 变换型和事务型是程序结构的标准形式。
从某处获得数据,再对这些数据作处理,然后将结果送出是属于(A)。
(1分)A.变换型B.演化型C.事务型D.归纳型24.某大企业最近决定采用高性能微机开发人事管理系统,该系统可供操作员和程序员使用,也可供人事处负责人和主管人事的副厂长等查询人事信息用。
人事管理系统通过录入人事数据和修改、删除等操作,产生和更新各类人事文件,通过搜索这些文件进行各类人事信息的查询。
考虑到人事处有大量的查询信息要求、频繁的人事信息修改和文件存档、查阅等特点,系统设计师决定认真设计人机交互界面,首先设计好在终端上的交互式会话的方式。
系统工程师张某通过调查收集到如下4条意见,请问下面4条意见中哪条是不可接受的:(B)(1分)A.某程序员认为:由于本企业中有很多较大的文件,文件的查找很费时间,交互式会话系统在响应时间较长时应给予使用者以提示信息。
B.某程序员认为:终端会话也应当符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。
C.某操作人员认为:既然是交互式会话,那么对所有的输入都应当作出响应,不应出现击键后,计算机没有任何反应的情况。
D.某操作人员认为:在出错的时候,交互式会话系统应当给出出错信息,并且尽可能告诉我们出错的性质和错在什么地方。
25.偶然内聚指(A)(1分)A.一个模块内的各处理元素之间没有任何联系B.指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能C.需要同时执行的动作组合在一起形成的模块为时间内聚模块D.块内所有处理元素都在同一个数据结构上操作26.下列模型属于成本估算方法的有(A)(1分)A.COCOMO模型B.McCall模型C.McCabe度量法D.时间估算法27.软件详细设计的主要任务是确定每个模块的(A)(1分)A.算法和使用的数据结构B.外部接口C.功能D.编程28.在软件生命周期中确定要实现的目标系统中每个模块的算法和数据结构的阶段是(D)(1分)A.编码B.概要设计C.需求分析D.详细设计29.数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。
(1分)A.SAB.SDC.SPD.SC30.变换型数据流图通常是(A)形态。
(1分)A.线性B.层次C.网状D.无规则二. 判断题(共10题,共10分)1.用例模型的基本组成部件是用例、角色和用例之间的联系。
(1分)正确2.面向对象的分析是面向计算机系统建立软件系统的对象模型。
(1分)错误3.结构化方法和OO方法都是一种面向过程的软件开发方法。
(1分)错误4.Halstead方法根据程序控制流的复杂程度定量度量程序的复杂程度。
(1分)错误5.在软件开发中,只要我们写出了程序并使其正常运行,我们的工作就结束了。
(1分)错误6.程序功能与用户需求不相符合的错误属于结构性错误。
(1分)错误7.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(1分)错误8.判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
(1分)错误9.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(1分)错误10.软件工具是指为支持计算机软件开发、维护、模拟、移植或管理而研制的程序系统,所以软件工具是一个需求分析工具。
(1分)错误三.问答题(共2题,共20分)1.需求工程包括哪些基本活动?(10分)★标准答案:需求工程过程包括如下主要活动:⑴获取需求。
⑵需求分析与建模。
⑶需求规格说明。
⑷确认需求。
⑸需求管理。
2.成本--效益分析可用哪些指标进行度量?(10分)★标准答案:⑴.投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率。
⑵.投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。
⑶.纯收入:整个生存周期之内的累计经济效益(折成现在值)与投资之差。
四.操作题(共4题,共40分)1.图形用户界面具有一个主菜单和一个带有文件打开命令的文件菜单,在每个菜单上都有一条退出命令。
假设每次只有一个文件能够打开。
建立图形用户界面的状态图。
(10分)★标准答案:2.当有新同学入学时,将会给新同学创建一个新的账号,新同学可以用这个账号去选课。
一般来说,每个人的选课数目是有限的,如选择6门课程后将不能再选课。
如果已经选了6门课程还要再选课,就必须删除已选的课程。
直到这位同学毕业,将其账号删除。
请创建学生账号类的状态图。
(10分)★标准答案:3.为方便旅客,某航空公司拟开发一个机票预订系统。
旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞的前一天凭取票通知和帐单交款取票,系统校对无误即印出机票给旅客。
请分两层画出该系统的数据流图。
(10分)★标准答案:4.多个软件工程师合作开发一个项目,各开发者之间需要两两互相通信。
假设每一条通信路径的开销为300 LOC/年(LOC为代码行数)。
(1)设有6名软件工程师,如果单独工作,每个人的生产率是6500 LOC/年,那么由这6名软件工程师组成的项目组的生产率是多少?(2)在这一年期限的最后两个月,又增加了两名工程师,新增成员的个人生产率为4500 LOC/年,那么这8人组成的项目组全年完成的开发工作量又是多少条代码行?(10分)★标准答案:(1)6名软件工程师之间需要建立的通信路径为:6* ( 6 -1 ) / 2 = 15 (条)每一条通信路径的开销为300 LOC /年,所以共计花费300 * 15 = 4500 ( LOC/年)由于每人的生产率是6500 LOC /年,则共计生产率为:6 * 6500 – (300*15 ) = 34500( LOC/年)(2)如果从第11月开始增加2个人,则通信路径增加了:8* ( 8 -1) / 2 – 15 = 13(条)所以通信开销增加了:(300 / 12) * 2 * 13 = 650 (LOC)而这2人的开发工作量为:(4500 / 12) * 2 * 2 = 1500 (LOC)则总计工作量为:34500 + 1500 – 650 = 35350 (LOC)(二)一.单选题(共30题,共30分)1.图中哪个关系没有在图中出现?(D)(1分)A.关联B.泛化C.实现D.依赖2.技术可行性是可行性研究的关键,其主要内容一般不包括(C)。
(1分)A.风险分析B.资源分析C.人员分析D.技术分析3.一个项目是否开发,从经济上来说是否可行,归根结底是取决于(A)。