软件概论
- 格式:docx
- 大小:27.89 KB
- 文档页数:10
一、单选题1、软件产品与物质产品有很大的区别,软件产品是一种()产品。
A.有形B.消耗C.逻辑D.文档正确答案:C2、在()年的NATO会议上,软件工程的术语被首次提出。
A.1966B.1968C.1970D.1972正确答案:B3、软件开发中实现映射的基本手段是()A.抽象B.分层C.隔离D.建模正确答案:D4、下列哪项不属于软件工程框架的三元组。
()A.目标B.范围C.原则D.活动正确答案:B5、下列哪个不是软件维护的类型。
()A.完善性维护B.纠错性维护C.适应性维护D.更新性维护正确答案:D6、只有高水平的(),才能生产出高质量的软件产品。
A.软件开发技术B.软件开发工具C.软件工程管理D.项目开发经验正确答案:C二、多选题1、下列关于软件的说法正确的是()A.软件是通过定制进而生产制造出来的B.软件没有磨损老化问题。
C.软件开发的成本很高D.软件开发和运行必须依赖计算机环境正确答案:B、C、D2、下列软件属于系统软件的是()A.操作系统B.编译器C.中间件D.浏览器正确答案:A、B3、下述软件属于支撑软件的是()A.财务管理软件B.编译器C.中间件D.数据库正确答案:C、D4、下述软件属于应用软件的是()A.财务管理软件B.数据库C.编译器D.浏览器正确答案:A、D5、软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的?A.数学B.计算机科学C.管理科学D.工程科学正确答案:A、B、C、D6、下列属于软件模型的是()A.概念模型B.设计模型C.实现模型D.部署模型正确答案:B、C、D7、软件需求阶段所要完成的任务包括()A.需求获取B.需求完善C.需求定义D.需求规约正确答案:A、C、D三、填空题1、软件工程概念的提出是为了解决()。
正确答案:软件危机2、软件设计阶段包括()和()两个阶段。
正确答案:总体设计、详细设计3、软件开发是实现()的概念和处理逻辑到()的概念和处理逻辑的映射。
软件工程概论期末复习题Document number【980KGB-6898YT-769T8CB-246UT-18GG08】期末总复习1.选择、判断、简答2.判定树和判定表3.用例图、类图、对象模型、顺序图等4.McCabe环路复杂性度量;5.黑盒测试和白盒测试6.数据流图7.成本效益分析习题一、判定树和判定表1.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装;天气可能下雨,也可能不下雨;天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
2. 某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。
20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。
请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。
二、McCabe环路复杂性度量某程序的描述如下:if (( a > b && i > 10)|| (a < b && i <= 5) ) k = a;else k = b;1)画出单个条件的嵌套的分支结构;(5分)2)计算该结构的McCabe环路复杂性度量;(5分)3)为完成基本路径测试,求它的一组独立的路径。
(5分)三、测试:变量的命名规则一般规定如下:变量名的长度不多于30个字符,第一个字符必须为英文字母,其他字母可以是英文字母、数字以及下划线的任意组合。
请用等价分类法设计测试用例。
四、数据流图某教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,根据请求进行分类处理,可进行如下功能的处理:1)查询成绩:查询成绩以及从名次表中得到名次信息。
2)学籍管理:根据学生总成绩确定名次信息。
3)成绩处理:处理单科成绩并输入成绩表中。
软件工程概论知识点软件工程是研究和应用计算机科学原理、方法和工具来开发和维护高质量的软件系统的工程学科。
它涉及到软件开发的整个生命周期,从需求分析到设计、编码、测试、部署和维护。
以下是软件工程概论的一些重要知识点。
1. 软件开发生命周期软件开发生命周期是软件工程中重要的概念,它包含了软件开发的各个阶段和活动。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
每个模型包括不同的阶段,如需求分析、设计、编码、测试、部署和维护等。
了解软件开发生命周期有助于理解软件开发过程中的活动和任务。
2. 软件需求工程软件需求工程是软件开发的第一步,它涉及到收集、分析、定义和记录软件系统的需求。
需求工程包括需求获取、需求分析、需求规格和需求验证等过程。
通过需求工程,软件开发团队可以确保对用户需求的准确理解,为软件系统的设计和开发提供清晰的目标和指导。
3. 软件设计原则软件设计是软件开发的关键环节,它决定了软件系统的结构、功能和性能。
软件设计原则是指导软件设计过程的一些基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则等。
遵循这些原则可以提高软件系统的可维护性、可扩展性和可重用性。
4. 软件开发方法和工具软件开发方法是根据软件开发生命周期的需求,结合特定的软件开发模型,选择合适的方法和工具来开发软件系统。
常见的软件开发方法包括敏捷开发、结构化开发和面向对象开发等。
软件开发工具包括集成开发环境、版本控制工具、测试工具等。
5. 软件质量保证软件质量保证是确保软件系统满足用户需求和规定标准的一系列活动。
软件质量保证包括软件测试、代码审查、性能优化和配置管理等。
通过软件质量保证,可以降低软件系统的缺陷率,提高软件的可靠性和可用性。
6. 软件项目管理软件项目管理是指对软件项目进行规划、组织、协调和控制的一系列活动。
软件项目管理包括项目计划、需求管理、进度管理、风险管理和团队管理等。
有效的软件项目管理可以提高软件项目的成功率和开发效率。
第1章软件与软件工程的概念1、1 举出您所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1、2 认为“软件就就是程序,软件开发就就是编程序。
”这种观点就是否正确?为什么?认为“软件就就是程序,软件开发就就是编程序。
”这种观点就是错误的。
首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。
1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本与进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常就是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的就是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1、5 什么就是软件工程?软件工程就是指导计算机软件开发与维护的工程学科。
软件的概念:软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。
(它是包括程序,数据及其相关文档的完整集合。
)软件= 程序+数据+文档程序= 算法+数据结构软件危机:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
软件危机主要包括的问题(两方面):①如何开发软件,以满足对软件日益增长的需求。
②如何维护数量不断膨胀的已有软件。
软件工程:① 把系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程应用于软件中。
②对① 中提到的各种方法的研究。
软件工程包括“管理”和“技术”两方面内容:管理——对人、财、物的合理使用和配置;技术——指软件开发中采用的方法、工具和过程。
软件工程方法学三要素:工具、方法和过程。
软件工程目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。
软件工程原则:在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:1.抽象2.信息隐藏3.模块化4.局部化5.一致性6.完整性7.可验证性软件生命周期:软件产品从形成概念开始,经过开发、运行和维护直到退役的全过程称为软件生命(存)周期。
软件生命周期组成:包括软件定义、软件开发、软件运行与维护三部分。
软件过程:1.为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
2.软件过程是软件工程三要素之一。
3.通常用软件生命周期模型来描述。
软件生命周期模型,又称软件开发模型/软件过程模型/软件工程范型。
指软件项目从需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
瀑布模型优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段的所有产品都必须经过质量保证小组的仔细验证。
软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。
2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。
3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。
4.合同法:________规定软件开发过程中的合同签订与履行等事项。
第一章《软件工程概述》作业一、名词解释1.软件2.软件危机3.软件工程4.软件生存周期5.软件过程模型二、填空题1、在信息处理和计算机领域内,一般认为软件是、和。
2、软件生产的发展经历了时代、时代和时代,各时代的生产方式分别是、和。
3、软件生存周期的8个阶段分别是、、、、、、、。
4、软件工程是利用工程化的原理和方法来进行、和软件的一门学科。
5、描述软件开发过程中各种活动如何执行的模型称为模型。
6、瀑布模型适应需求可变的软件开发,只有到才能见到整个软件系统。
7、软件产品的生产主要是研制,软件产品的成本主要体现在上。
8、软件工程面临的问题有、、、。
三、单项选择题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.软件开发工程化 B.消除软件危机C.实现软件可重用D.程序设计自动化7、由于软件生产的复杂性和高成本,使大型软件的生成出现危机,软件危机的主要表现包括了下述【】方面。
①生产成本过高②需求增长难以满足③进度难以控制④质量难以保证A.①② B.②③ C.④ D.全部8、软件的主要结构和功能是在【】阶段决定的。
A.分析设计B.编程C.测试D.维护9、有关计算机程序功能、设计、编制、使用的文字或图形资料称为【】。
A.软件B.文档C.程序D.数据10、软件生成周期模型有多种,下列选项中,【】不是软件生存周期模型。
概述一、填空题1、软件由计算机程序、数据和文档组成;2、软件是一种逻辑产品,它与物质产品有很大的区别;3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成;4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程;5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化;6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科;7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统;8、软件工程研究的主要内容是方法、过程和工具等三个方面;9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同;10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型;它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落;11、演化模型是一种非整体开发模型;先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品;12、螺旋模型将开发过程分为几个螺旋周期;在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估;13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型;它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法;二、单项选择题1、软件产品的生产主要是C;A.制造B.复制C.开发D.研制2、个体手工劳动是B时代的软件生产方式;A.程序系统B.程序设计C.软件工程D.程序编码3、软件工程是一门C学科;A.理论性B.原理性C.工程性D.心理性4、软件开发费用只占软件生存期全部费用的B;35、在软件开发过程中大约要花费C%的工作量进行测试和调试;、准确地解决“软件系统必须做什么”是B阶段的任务;A.可行性研究B.需求分析C.软件设计D.程序编码7、软件生存期中时间最长的是D阶段;A.需求分析B.软件设计C.软件测试D.软件运行/维护8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念;A.喷泉模型B.基于知识的模型C.瀑布模型D.螺旋模型9、在软件生存期中,用户的参与主要在A;A.软件定义阶段B.软件开发阶段C.软件维护阶段D.整个软件生存期过程中10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误;A.检验B.验证C.度量D.评审11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的BA.产品检验B.产品控制C.产品标准化D.开发规范12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D;A.可靠性B.可使用性C.安全性D.可维护性13、为了提高软件开发过程的A,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准;A.可见性B.生产率C.安全性D.有效性14、随着开发小组人数的A,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加;A.增加B.降低C.稳定D.不稳定15、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程C;A.原则B.工具C.过程D.方法三、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件是计算机系统中与硬件相互依存的另一部分,它是包括②、⑦及⑤的完整集合;其中,②是按事先设计的功能和性能要求执行的指令序列;⑦是使程序能够正确操纵信息的数据结构;⑤是与程序开发、维护和使用有关的图文材料;供选择的答案:A~C.①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;开发软件时对提高软件开发人员工作效率至关重要的是①;软件工程中描述生存周期的瀑布模型一般包括计划、①、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成③和⑥两步;供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;有人将软件的发展过程划分为4个阶段:第一阶段1950~1950年代末称为“程序设计的原始时期”,这时既没有A ,也没有B ,程序员只能用机器指令编写程序;第二阶段1950年代末~1960年代末称为“基本软件期”;出现了①,并逐渐普及;随着④的发展,编译技术也有较大的发展;第三阶段1960年代末~1970年代中期称为“程序设计方法时代”;这一时期,与硬件费用下降相反,软件开发费急剧上升;人们提出了⑤和⑧等程序设计方法,设法降低软件的开发费用;第四阶段1970年代中期~现在称“软件工程时期”;软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如⑤、④、编码、单元测试、综合测试、①及其整体有关的各种管理技术;供选择的答案:A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E~G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品;软件工程技术应遵循⑦、④、⑥、③、一致性、确定性、完备性、可验证性、抽象和信息隐蔽;原型法适用于开发较复杂的系统,原型可分为三种:②、⑤和④;供选择的答案:A~D①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽E~G:①复用型②实验型③废弃型④演化型⑤探索型项目管理一、填空题1、要成功地完成软件开发工作的一个主要的决定性因素是项目管理;2、软件过程是软件生存期中的一系列相关工程活动集合;3、所有的软件开发都可以看成是一个问题循环解决过程,其中包括4个截然不同的阶段:状态捕捉、问题定义、技术开发和方案综合;4、在制定软件项目计划之前,必须先明确项目的目标和范围;项目的目标标明了软件项目的目的但不涉及如何去达到这些目的;5、对软件进行度量,是为了表明软件产品的质量,弄清软件开发人员的生产率,建立项目估算的基线,帮助调整对新的工具和附加培训的要求;6、软件质量的事后度量包括正确性、可维护性、完整性和可使用性;其中完整性包括危险性和安全性;7、软件范围包括功能、性能、限制、接口和可靠性;8、软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算;资源包括人与工具;9、对于一个大型的软件项目,要进行一系列的估算处理;主要靠分解和类推的手段进行;10、基本COCOMO模型是一个静态单变量模型,它用一个已估算出的源代码行数LOC为自变量的经验函数来计算软件开发工作量;11、成本-效益分析的目的,是从经济角度评价开发一个新的软件项目是否可行;12、风险估计从两个方面估价风险;一是估计一个风险发生的可能性;一是估价与风险相关的问题出现后将会产生的结果;13、一个软件任务由一个人单独开发,生产率最高;14、在与软件成本相关的影响因素中,人员的能力是最大影响因素;15、软件开发所需的人力随开发的进展逐渐增加,在编码与单元测试阶段达到高峰,以后又逐渐减少;16、在建立项目组织时应注意的原则有三:①尽早落实责任,指定专人负责;②减少接口,要有合理的人员分工、好的组织结构、有效的通信,减少不必要的生产率的损失;③责权均衡;17、风险出现概率可以使用从过去项目、直觉或其它信息收集来的度量数据进行统计分析估算出来;18、用各种不同的方法对风险进行分类是可能的;从宏观上来看,可将风险分为项目风险、技术风险和商业风险;二、选择题1、所有的软件开发都可以看成是一个问题B过程;A.顺序解决B.循环解决C.分类解决D.分组解决2、软件项目管理所涉及的范围覆盖了整个软件D;A.开发过程B.运行与维护过程C.定义过程D.生存期3、为使软件开发获得成功,一个关键问题是必须对软件范围、风险、资源、任务、里程碑、成本,进度等做到心中有数,而C可以提供这些信息;A.计算机辅助工程B.软件开发工具C.软件项目管理D.软件估算4、软件范围标明了软件要实现的基本功能,并尽量以A的方式界定这些功能;A.定量B.规范C.统一D.定性5、只要事先建立特定的度量规程,很容易做到B开发软件所需要的成本和工作量、产生的代码行数等;A.间接度量B.直接度量C.间接估算D.直接估算6、为了计算特征点,可以像计算功能点那样,对信息域值进行计数和加权;此外,需要对一个新的软件特征A进行计数;A.算法B.计算误差C.程序复杂性D.效率7、对于软件的D,有一种简单的面向时间的度量,叫做平均变更等待时间MTTCMeanTimeToChange;这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它、以及把这种变更发送给所有的用户;A.可靠性B.可修改性C.可测试性D.可维护性8、软件的完整性是度量一个系统抗拒对它的C攻击事故的和人为的的能力;A.可靠性B.正确性C.安全性D.容错性9、对每一种软件资源,应说明4个特性:资源的描述,资源的有效性说明,资源在何时开始需要,使用资源的持续时间;最后两个特性统称为A;A.时间窗口B.时间安排C.日程安排D.资源定义10、业务系统计划工具借助特定的C建立一个组织的战略信息需求的模型,导出特定的信息系统;A.过程性语言B.形式化语言C.元语言D.伪码11、软件开发成本主要是指软件开发过程中所花费的B及相应的代价;A.劳动力B.工作量C.资源D.持续时间12、自顶向下估算软件成本的方法主要是从项目的整体出发进行B,即根据已完成项目的总成本或总工作量,来推算待开发软件的总成本或总工作量,然后按比例将它分配到各开发任务单元中去;A.分解B.类推C.推导D.评估13、自底向上估算软件成本的方法主要是把待开发软件A,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量;A.分解B.类推C.推导D.评估16、系统的经济效益B因使用新系统而增加的收入加上使用新系统可以节省的运行费用;A.大于B.等于C.小于D.不等于17、项目复杂性、规模和结构的不确定性构成C估算风险因素;A.技术B.经济C.项目D.商业18、识别风险的一种最好的方法就是利用一组A来帮助人们了解在项目和技术方面有哪些风险;因此,Boehm建议使用一个“风险项目检查表”;A.提问B.项目C.脚本D.场景19、在做风险评价时常采用的一个非常有效的方法就是定义D;A.风险评价标准B.风险影响因子C.风险调整因素D.风险参照水准21、当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的A 问题,即所谓通信问题;A.接口B.衔接C.调用D.控制22、假设一个人单独开发软件,生产率是5000行/人年;若4个人组成一个小组共同开发这个软件,在每条通信路径上耗费的工作量是250行/人年;则组中每人的生产率降低为C、PERT技术叫做B技术,它是采用网络图来描述一个项目的任务网络,安排开发进度,制定软件开发计划的最常用的方法;A.日程安排B.计划评审C.关键路径D.因果图24、在进度压力下赶任务,其成果往往是以B产品的质量为代价的;A.浪费B.牺牲C.抵押D.维持三、选择填空题1、从供选择的答案中选出与下列有关软件过程叙述相对应的正确答案,将其编号填入到相应的括弧内;软件过程是软件4中的一系列相关软件工程3的集合;每一个软件过程又是由一组6、项目8、软件工程产品和交付物以及质量保证SQA点等组成;一个软件过程可以用右图的形式来表示;首先建立一个2过程框架,其中定义了少量可适用于所有软件项目的框架3,再给出各个框架3的任务集合,最后是保护伞活动,如软件质量保证、软件配置管理以及测量等;软件过程模型的选择基于项目和应用的特点、采用的5和工具、要求的控制和需交付的产品;A.④B.③C.⑥D.⑧E.②F.⑤供选择的答案:A~F.①工程②公共③活动④生存期⑤方法⑥工作任务⑦功能⑧里程碑2、从供选择的答案中选出与下列有关软件项目管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 由于软件工程有如下的特点,使软件管理比其它工程的管理更为困难;软件产品2;6标准的过程;大型软件项目往往是3项目;2的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量;在制定计划时,应当对人力、项目持续时间、成本作出4;5实际上就是贯穿于软件工程过程中一系列风险管理步骤;最后,每一个软件项目都要制定一个1,一旦6制定出来,就可以开始着手5;供选择的答案:A.②B.⑥C.③D.②E.④F.①G.⑥H.⑤A~C.①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在D~H.①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划3、从供选择的答案中选出与下列有关软件度量叙述相对应的正确答案,将其编号填入到相应的括弧内;软件的度量包括A1和B4;软件产品的A1包括产生的代码行数、执行速度等;软件产品的B则包括若干质量特性;我们还可进一步将软件度量如右图所示那样分类;软件C度量主要关注软件工程过程的结果;D度量则指明了软件适应明确和不明确的用户要求到什么程度;E度量主要关注软件的一些特性而不是软件开发的全过程;从图中还可看到另一种分类方法:面向F的度量用于收集与直接度量有关软件工程输出的信息和质量信息;面向G的度量提供直接度量的尺度;面向H的度量则收集有关人们开发软件所用方式的信息和人们理解有关工具和方法的效率的信息;A.①B.④C.④D.①E.②F.⑤G.⑦H.③供选择的答案:A~B.①直接度量②尺度度量③二元度量④间接度量C~E.①质量②技术③成本④生产率F~H.①过程②对象③人④存取⑤规模⑥进程⑦功能⑧数据4、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;估算资源、成本和进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气;通常估算本身带有A;项目的复杂性越高,规模越大,开发工作量B,估算的A就C;项目的结构化程度提高,进行精确估算的能力就能D,而风险将E;有用的历史信息F,总的风险会减少;供选择的答案:A.③B.②C.⑦D.①E.③F.②A.①风范范型②风格③风险④度量B~F.①增加②越多③降低④不变⑤越少⑥越高⑦越大5、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:一是作为一个估算变量,度量软件每一个A的大小;一是联合使用从过去的项目中收集到的B和其它估算变量,进行成本和C估算;LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的D不同;当用E作为估算变量时,功能分解是绝对必要且应达到很详细的程度,而用F作为估算变量时,分解程度可以不很详细;E是直接估算,F 是间接估算;若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值,记作a,m,b,则LOC或FP的期望值E的公式为G,m是加权的最可能的估计值,遵循H;供选择的答案:A.③,B.⑦,C.⑤,D.①,E.②,F.①,G.②,H.③;A~C.①模块②软件项目③分量④持续时间⑤工作量⑥进度⑦基线数据⑧改进数据D.①详细程度②分解要求③改进过程④使用方法E,F.①FP②LOCG.①E=a+m+b/3②E=a+4m+b/6③E=2a+3m+4b/3④H.①χ概率②γ概率③β概率④泊松6、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在考虑各种软件开发资源时,A是最重要的资源;如果把软件开发所需的资源画成一个金字塔形:在塔的上层是最基本的资源A,在底部为B;B包括硬件资源和软件资源;C、D和其它硬件设备属于硬件资源;IPSE工具属于软件资源中的E;为了提高软件的生产率和软件产品的质量,可建立F;供选择的答案:A.②B.③C.②D.④E.⑥F.⑤A,B.①方法②人力③工具④上下文环境C,D.①虚拟机②目标机③自动机④宿主机E,F.①维护工具②分析设计工具③支持工具④编程工具⑤可复用构件库⑥框架工具⑦原型化模拟工具7、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;定义一个人参加劳动时间的长短为A,其度量单位为PM人月或PY人年;而定义完成一个软件项目或软件任务所需的A为B,其度量单位是人月/项目任务,记作PM人月;进一步地,定义单位A所能完成的软件C的数量为软件D,其度量单位为LOC/PM;它表明一般指E的一个平均值;例如,一个软件的开发工作量如下表所示;该软件共有源代码2900行,其中,500行用于测试,2400行是执行F的源代码;则劳动生产率是GLOC/PM;供选择的答案:A.④B.②C.④D.①E.①F.②G.④A,B,D.①生产率②工作量③成本④劳动量E.①开发全过程②某开发阶段③软件生存期④某开发任务F,C.①软件②程序③进程④产品G.①520②120③320④2408、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;对于一个大型的软件项目,由于项目的复杂性,需要进行一系列的估算处理;主要按A和B手段进行;估算的方法分为三类:从项目的整体出发,进行B的方法称为C估算法;把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发总工作量的方法称为D估算法;而把待开发的软件项目与过去已完成的软件项目做类比,区分出类似部分和不同部分分别处理的方法称为E估算法;F是由多位专家进行成本估算的方法;供选择的答案:A.③,B.①,C.②,D.③,E.①,F.④A,B.①类推②类比③分解④综合C~F.①差别②自顶向下③自底向上④专家判定技术⑤循序渐进⑥比较10、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内; 一个规模为10KDSI的商用微机远程通信的嵌入型软件,使用中间COCOMO模型进行软件成本估算;程序的名义工作量MM=A;程序实际工作量MM=B;开发所用的时间TDEV=C;如果软件开发人员的工资都按每月6000美元计算,则该软件项目的开发人员的工资总额=D;表1中间COCOMO模型的名义工作量与进度公式表2影响工作量的因素fi的取值A.③,B.②,C.①,D.④供选择的答案:A,B.①②③④.①月②月③月④月D.①万美元②36万美元③万美元④万美元11、从供选择的答案中选出与下列有关软件成本-效益分析叙述相对应的答案,将其编号填入到相应的括弧内; 假设开发某个计算机应用系统的投资额为3000元,该计算机应用系统投入使用后,每年可以节约1000元,5年内可能节约5000元;3000元是现在投资的钱,5000元是5年内节省的钱,两者不能简单地比较;假定年利率为12%,利用计算货币现在价值的公式,可以算出该计算机应用系统投入使用后每年预计节省的金额的现在价值;A.④,B.②,C.③则该系统的纯收入是A,投资回收期是B,投资回收率为C;供选择的答案:A.①元②元③元④元B.①年②年③年④元C.①25%②30%③20%④15%12从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 在特定情况下,是否必须进行风险分析,是对项目开发的形势进行A后确定的;A可以按如下步骤进行:明确项目的目标、总策略、具体策略和为完成所标识的目标而使用的方法和资源;保证该目标是B,项目成功的标准也是B;考虑采用某些条目作为项目成功的C;根据估计的结果来确定是否要进行风险分析;一般来说,风险分析的方法要依赖于特定问题的需求和有关部门所关心的方面;具体分3步进行;第一步识别潜在的风险项,首先进行D过程;第二步估计每个风险的大小及其出现的可能性,选择一种E,它可以估计各种风险项的值;第三步进行风险评估;风险评估也有三个步骤:确定F,确定G,把风险与“参照风险”做比较;供选择的答案:A.②B.①C.②D.②E.③F.④G.③A.①风险管理②风险估计③风险评价④风险测试B.①可度量的②不可度量的③准确的④不确定的C.①规范②标准③过程模型④设计要求D,E.①信息分类②信息收集③度量尺度④标准⑤度量工具⑥信息获取F,G.①风险的范围②风险的特性③风险的级别④风险的评价标准⑤风险的排除策略13、从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 风险分析实际上是4个不同的活动,按顺序依次为A、B、风险评价和C;在风险评价时,应当建立一个三元组:ri,li,xi,ri是风险描述,li是D,而xi是风险的影响;一个对风险评价很有用的技术是定义E;F、G、H是三种典型的E;在做风险分析的上下文环境中一个E就存在一个单独的点,叫做参照点或I;在这个点上要公正底给出判断;实际上,参照点能在图上表示成一条平滑的曲线的情况很少,多数情况它是一个J;供选择的答案:A.②,B.③,C.①,D.②,E.①,F.③,G.④,H.⑥,I.②,J.④A~C.①风险驾驭和监控②风险识别③风险估计④风险消除D.①风险的大小②风险的概率③风险的时间④风险的范围E.①风险参照水准②风险度量③风险监控④风险工具F~H.①生产率②功能③成本④进度⑤范围⑥性能I,J.①凹点②崩溃点③终点④区域⑤拐点⑥原点14、从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 任何软件项目都必须做好项目管理工作,最常使用的进度管理工具是A,当某一开发项目的进度有可能拖延时,应该B;对于一个典型的软件开发项目,各开发阶段需投入的工作量的百分比大致是C;各阶段所需不同层次的技术人员大致是D,而管理人员在各阶段所需数量也不同,相对而言大致是E;供选择的答案:A.①数据流图②程序结构图③因果图④PERT图B.①增加新的开发人员②分析拖期原因加以补救③从别的小组抽调人员临时帮忙④推迟预定完成时间。
软件工程•概述o软件▪定义•软件 = 程序 + 数据 + 文档o数据▪程序加工处理的对象。
▪包括数据的表示、组织与存储。
▪数据 = 初始化数据 + 测试数据o文档▪开发、使用和维护程序所需的图文资料。
▪文档 = 开发文档+管理文档+用户文档+维护文档。
o程序▪能完成预定功能和性能的指令集合。
o软件和程序的区别▪程序只是完整软件产品的一部分。
▪编写程序只是软件开发过程数据中的一个阶段,一般来说,其工作量仅仅是软件开发全部工作量的10%-20%▪软件的特点•抽象性o逻辑实体。
可记录。
但看不到,开发过程可视化程度低,开发结果难以直观表示。
•可复制性o与开发成本相比,复制成本很低。
•无折旧•受硬件制约•未完全摆脱手工工艺•开发费用高▪软件分类•按适用范围分o定制软件(Custom Software)项目软件▪满足特定客户的特定需要的软件。
例如网站。
o通用软件(Generic Software)产品软件▪满足市场潜在客户的通用需求的商业成品软件。
例如:Office、Windows等。
•按软件功能分o系统软件▪管理计算机自身的资源、提高计算机的使用效率并为计算机用户提供各种服务的基础软件。
例如操作系统OS、数据库管理系统DBMS等o应用软件▪解决某一具体领域的实际问题的软件。
例如CAD。
o支撑软件▪协助用户开发的工具软件,如编辑程序、程序库、图形软件包等。
•按软件体系结构分o桌面软件▪全部工作由在单一机器上的一个软件系统完成。
o分布式软件▪由多个软件协调工作来完成任务。
例如客户端与服务器C/S、浏览器与服务器B/S软件。
o并行软件▪基于多CPU环境能完成并行计算的软件。
•按规模分o小型软件(1-5人年)o中型软件(5-50人年)o大型软件(50人年以上)•按工作方式分o实时软件o分时软件o交互式软件o批处理软件o嵌入式软件(Embedded Software)▪运行于特定硬件设备中的软件。
例如:手机、汽车等中的软件。
软件工程概论课程教学大纲一、课程简介《软件工程概论》是软件工程专业中的一门综合性和实践性很强的核心课程。
课程将系统的介绍软件工程的基本概念和基本原理,这些内容覆盖整个软件生命周期,包括软件工程过程、软件工程方法、软件工程模型、软件需求、软件设计、软件实现、软件测试、软件项目管理等内容。
学生通过本课程的学习,了解软件项目生命周期中在不同阶段如何使用不同的软件工程方法进行分析和解决问题,使得学生逐步学会遵循软件工程方法论,以提高软件开发的成功率,显著减少软件开发和维护中的错误,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程目标(一)课程具体目标1. 掌握软件工程的基础知识,具有发现问题、分析问题和解决问题的能力;2. 能基于软件工程的专业知识,正确表达一个软件工程问题的解决方案;3. 能客观评价软件工程领域的相关发展对社会、安全以及文化的影响;4. 能及时跟踪软件工程领域及相关行业发展状况,并就当前的热点问题发表自己的见解。
(二)课程目标与专业毕业要求的关系表1 本课程对专业毕业要求及其指标点的支撑(三)课程对解决复杂工程问题能力的培养在课程理论知识讲授环节,注重培养学生对软件工程中方法、过程和技术的深入理解,使学生掌握解决软件工程领域复杂工程问题所需的基本理论和工程原理,并通过适当的课后作业锻炼和检验学生解决复杂工程问题的能力。
在实验教学环节,以培养学生解决复杂工程问题的能力为目标,围绕课程支撑的毕业要求指标点安排实验项目,设计实验内容,明确实验要求,指导实验实施,严格实验成果考核。
在课程考核环节,根据课程支撑的课程目标选择合适的考核方式,考题设置应完全覆盖课程支撑的课程目标,考题设计应充分考虑学生解决复杂工程问题所需知识和能力的考查,考题的难度和深度应能够体现复杂工程问题的特征。
总之,本课程的教学通过在理论讲授、课后作业、课内实验、课程考核等环节充分贯彻培养学生解决复杂工程问题能力的理念和要求,实现本课程支撑课程目标的达成。
软件工程概论考试要点及备选试题软件工程概论考试要点考试形式为开卷考试,主要考学生的分析、设计与测试的能力开卷形式可以带进考场的可以是教材和手写笔记,不可以用任何形式的打印稿和复印件一、基本知识题考试形式为填空形式,或文字说明形式二、系统分析题给出问题画出系统的数据流图、数据字典的定义、加工说明、ER图三、系统设计题给出问题的数据流图,画出系统的软件结构图给出问题,写出过程设计的程序流程图或PAD图四、软件测试题给出问题,进行墨盒测试的等价分类法和白盒测试的路径测试法备选:一、基本知识题:(20分)填空题1.在信息处理和计算机领域内,一般认为软件是 _程序____、_文档____ 和_数据____ 。
2.数据流图的基本组成部分有 _数据的源点与终点____、数据流_____、加工_____、数据文件_____。
3.数据流图和数据字典共同构成了系统的_逻辑____模型,是需求规格说明书的主要组成部分。
4.划分模块时尽量做到__高内聚、低耦合______,保持模块的独立性,尽量使用公共模块。
5.类的实例化是_对象_______。
6.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,将得到软件的总开发量。
这种成本估算方法称为_自底向上_______。
10.确认测试计划应该在可行性研究阶段制定(错)11.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(错)12.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(对)13.耦合是指一个模块内各个元素彼此结合的紧密程度。
(错)14.概要设计阶段完成的主要文档是概要设计说明书。
(对)15.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。
(错)16.随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。
(对)文字说明:1、论述如果你在毕业设计中选择一关于软件系统设计与实现的题目,你的毕业论文设计内容的结构是如何的?大致分为几个部分,每部分内容要说明哪些内容?二、系统分析题:(30分)给出问题画出系统的数据流图1、欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理;(1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;(2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;(3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。
软件工程概论课后习题答案第一题:答案:软件危机是指在软件开发过程中所遇到的一系列问题和挑战。
具体表现为软件项目超过预算、延迟交付、功能缺陷等现象。
造成软件危机的原因包括需求不明确、项目管理不善、技术问题等。
解决软件危机的方法包括引入软件工程的概念和方法、改善需求管理、加强项目管理等。
第二题:答案:软件生命周期是指软件从被提出需求到废弃的整个过程。
常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
瀑布模型是最经典的软件生命周期模型,按照顺序划分为需求分析、系统设计、编码、测试、运维等阶段。
迭代模型是将开发过程划分为多个迭代周期,并在每个迭代周期中完成需求分析、设计、编码、测试等工作。
螺旋模型则是将开发过程划分为多个风险评估和迭代的阶段,将风险管理纳入软件开发的全过程。
第三题:答案:软件过程是一组相互关联的活动,用于开发和维护软件系统。
常见的软件过程模型包括瀑布模型、迭代模型、敏捷开发等。
瀑布模型是将软件开发过程划分为需求分析、系统设计、编码、测试、运维等阶段,按照顺序逐个进行。
迭代模型则是将软件开发过程划分为多个迭代周期,每个迭代周期都包含需求分析、设计、编码、测试等活动。
敏捷开发则是一种以人和交互为核心的开发方法,强调迭代开发和灵活响应变化。
第四题:答案:软件质量是指软件产品满足用户需求和期望的程度。
常见的软件质量特性包括正确性、健壮性、可靠性、可维护性、可移植性等。
正确性是指软件是否满足用户需求和规格说明。
健壮性是指软件在异常情况下的容错能力。
可靠性是指软件在一定条件下的稳定性和可信度。
可维护性是指软件是否容易进行修改和维护。
可移植性是指软件在不同环境下的可移植性和兼容性。
第五题:答案:软件测试是通过对软件进行测试活动,检测和预防软件中的缺陷和错误。
常见的软件测试方法包括黑盒测试、白盒测试、灰盒测试等。
黑盒测试是基于需求规格说明进行测试,主要检查软件的功能是否满足需求。
白盒测试是基于软件内部结构进行测试,主要检查软件的代码是否符合规范和逻辑正确。
第一章软件工程概论1. *软件:是计算机程序、方法、规则、相关的文档以及运行计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+文档)2. *软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的和软件质量难以稳定。
3. *软件的质量特性:功能性、可靠性、易用性、效率、维护性、可移植性。
4. 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
5. 软件危机的主要表现:对软件开发成本和进度估计常常很不准确用户对"已完成"的系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件成本在计算机系统总成本所占的比例逐年上升6. 软件危机产生的主要原因:软件日益复杂和庞大软件开发管理困难和复杂软件开发技术落后生产方式落后开发工具落后软件开发费用不断增加7. 软件危机如何解决:既要有技术措施(方法和工具),又要有必要的组织管理措施。
8. 软件工程:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
9. 软件工程以关注软件质量为目标,包括方法、过程、工具、范式四个要素。
10. 软件工程方法学:把软件生命周期全过程中使用的一整套技术方法的集合成为方法学(也称范型paradigm),包括三个要素:方法,工具和过程.目前使用最广泛的是传统方法学和面向对象方法学传统方法学(也称生命周期方法学或结构化范型):采用结构化技术(结构化分析,结构化技术,结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件环境来支持结构化技术的运用...略太过了面向对象方法学:有4个要点;它是一个多次反复迭代的演化的过程;特有的继承性和多态性进一步提高了面向对象软件的可重用性11. 软件生命周期问题定义:确定要解决的问题是什么(通过客户的访问调查,系统分析员写出问题的性质,工程目标和工程规模的书面报告,并得到客户的确认)可行性研究:不是具体解决问题,而是研究问题的范围,探索问题是否值得去解,是否有可行的解决方法需求分析:准确确定"为了解决这个问题,目标系统必须做什么",主要是确定目标系统必须具备哪些功能总体设计:设计出目标系统的多种方案;设计程序的体系结构详细设计:详细的设计每个模块,确定要实现模块功能所需要的算法和数据结构编码和单元测试:写出正确的容易理解,容易维护的程序模块综合测试:通过各种类型的测试(及相应的的调试)使软件达到预定的要求软件维护:通过各种必要的维护活动使系统持久地满足用户的需要12. 软件过程:指为了获得高质量软件所需完成一系列任务框架,它规定了完成各项任务的工作步骤;通常使用生命周期模型简洁地描述软件过程13. 生命周期模型:也称过程模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序14. 瀑布模型①瀑布模型特点:阶段间具有顺序性和依赖性:必须等前一阶段的工作完成后之后,才能开始后一段的工作;前一段的输出文档就是后一阶段的输入文档推迟实现的观点:在编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑目标系统的逻辑模型,不涉及物理实现质量保证的观点:每个阶段必须完成规定的文档;每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题②瀑布模型适用:在开发的早期阶段软件需求被完整确定③瀑布模型的优点: 可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证④瀑布模型缺点:瀑布模型是由文档驱动;最终产品不能真正满足客户的需求15. 快速原型模型:首先建立一个反映用户主要需求的原型系统,让用户体验,之后提出意见,随之进行修改,再让用户体验...直至用户完全满意,据此写出规格说明文档16. 增量模型:也称渐增模型,融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
增量模型优点:人员分配灵活,刚开始不用投入大量人力资源;可先发布部分功能给客户,对客户起到镇静剂的作用;增量能够有计划地管理技术风险。
增量模型缺点:需要软件具备开放式的体系结构;容易退化为边做边改模型,从而使软件过程的控制失去整体性;增加系统内部的耦合复杂性。
17. 螺旋模型:把它看作在每个阶段之前增加了风险分析的快速原型模型。
18. *螺旋模型与增量模型的区别:(1)两者迭代层级不同:增量模型在活动级迭代;螺旋模型在过程级迭代;(2)两者需求分析的时间不同:增量模型常常是先做总体需求分析和设计,然后在编码和测试中逐个增量开发;螺旋模型在开发周期内采用简化瀑布模型或快速模型;(3)两者提交软件的方式不同:增量开发在上次增量的基础上提交新的一部分软件;螺旋模型每次迭代都提交一个新的完整的软件版本;(4)两者减少风险的方式不同:增量模型使用未成熟技术和经常的客户反馈等方法减少风险;螺旋模型中直接加进风险识别,风险分析、风险控制,计划性较强.19. 喷泉模型:典型的具有面向对象软件开发过程迭代和无缝的特性20. Rational 统一过程(Rational Unified Process Rational,RUP): RUP核心:RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。
RUP特点:用例驱动;以体系结构为中心(高内聚低耦合);增量和迭代开发。
21. RUP最佳实践迭代式开发:允许每次迭代过程中需求都可以有变化;采用可验证的方法来减少风险管理需求:RUP采用用例分析来捕获需求,并由它们驱动设计和实现使用基于构件的体系架构:使用现有的或新开发的构件定义体系结构的系统化方法,从而降低软件开发的复杂性,提高软件重用率可视化建模:建立软件系统的可视化模型,提高管理复杂软件的能力,如UML验证软件质量:软件质量评估贯穿整个开发过程,由全体成员参与控制软件的变更:RUP描述了如何控制,跟踪和监控修改,以确保迭代开发的成功22. RUP软件开发生命周期①核心工作流(纵轴代表核心工作流,横轴代表时间) 前6个为核心过程工作流, 后3个为核心支持工作流业务建模:深入了解使用目标系统的机构及商务运作评估目标系统对使用它的机构的影响需求:捕获客户的需求并且使开发人员和用户达成对需求描述的共识分析与设计:把需求分析的结果转化为分析模型和设计模型实现:把设计模型转化为实现结果测试:检查各子系统的交互与集成,验证所有需求是否都被正确实现,识别,确认缺陷并确保在软件部署之前消除缺陷部署:成功生成目标系统的可运行版本,并将软件移交给用户配置与变更管理:跟踪并维护在软件过程中产生的所有制品的完整性和一致性项目管理:提供项目管理框架,为软件开发制定计划,人员配备,执行和监控等方面的使用准则,并为风险管理提供框架环境:向软件开发机构提供软件开发环境,包括过程管理和工具支持②工作阶段初始阶段:建立业务模型,定义最终产品视图,并确定项目的范围精化阶段:设计并确定系统的体系结构,制定项目计划确定资源需求构建阶段:开发出所有构件和应用程序,把它们集成客户需要的产品,并且详细地测试所有功能移交阶段:把开发出的产品提交给用户使用③RUP迭代式开发第二章可行性研究23. 可行性研究的目的不是为了解决问题,而是确定问题是否值得去解决24. 可行性:技术可行性、经济可行性、操作可行性、运行可行性、法律可行性。
25. 可行性研究过程:复查系统规模和目标研究正在使用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查26. *系统流程图:是概括地描绘物理系统的传统工具。
用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。
表达的是数据在系统各部件之间流动的情况27. *数据流图表示方法:实线表示数据流;虚线表示控制流;圆框代表处理数据的过程;矩形框表示产生与接收数据的对象;平行线表示数据存储区。
28. 数据字典定义组成:数据流;数据流分量(即数据元素);数据存储;处理30. 成本效益分析的方法及如何运算:第一步估计开发成本、运行费用和新系统将带来的经济效益。
需从货币时间价值,投资回收期,纯收入,投资回收率方法有三种:代码行技术:软件成本=每行代码的平均成本*估计的源代码总行数任务分解技术:单本任务成本=任务所需人力估计值*每人每月平均工资;软件开发项目总成本=每个单独任务成本估计总和自动估计成本技术:采用自动估计成本的软件第三章需求分析31. 需求分析的任务确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划32. 分析建模与规格说明模型: 就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
通常,模型由一组图形符号和组织这些符号的规则组成需要建立的三种模型:数据模型、功能模型和行为模型实体-联系图:描绘数据对象、数据对象的属性及数据对象之间的关系,用于建立数据模型数据流图:描绘当数据在软件系统中流动和被处理的逻辑过程,是建立功能模型的基础状态转换图:描绘了系统的状态及引起状态转换的事件,是建立行为模型的基础34. 层次方框图:是用树形结构的一系列多层次的矩形框描绘数据的层次结构。
最顶层矩形框:代表完整的数据结构;下面各层的矩形框代表数据的子集;最底层的矩形框代表实际数据元素第四章形式化说明技术35. 按形式化程度分为三类:非形式化,如用自然语言描述规格说明半形式化,如用数据流图或实体-联系图建立模型形式化,如描述系统性质是基于数学的技术36. 非形式化的缺点矛盾性:在需求规格说明书中对同一问题前后存在不同的描述二义性:读者可以用不同的方式理解的陈述含糊性:需求规格说明书对某一问题描述不清晰,不可理解不完整性:需求规格说明书对某一问题只说明了局部,没说明整体抽象层次混乱:指在非常抽象的陈述中混入了关于低层次的细节陈述37. 形式化的优点:能够简洁准确的描述物理现象、对象或动作的结果在不同的软件工程活动之间平滑过渡提供了高层确认的手段38. 应用形式化准则选用适当的表示方法应该形式化,但不要过分形式化应该估算成本应该有形式化顾问随时提供咨询不应该放弃传统的开发方法应该建立详尽的文档不应该放弃质量标准应该测试,测试再测试应该重用第五章总体设计39. 设计过程:2个阶段(系统设计阶段:确定系统的具体实现方案和结构设计阶段:确定软件结构); 9个步骤:设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构设计数据库制定测试计划书写文档审查和复审40. 设计原理的相关概念模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求抽象:抽出事物本质特性而暂时不考虑细节逐步求精:为了能集中精力解决最主要问题而尽量推迟对问题细节的考虑。