资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件工程第一章1. 软件 = 程序 + 数据 + 文档2. 软件危机及表现:二十世纪六十年代中期,在美国就出现了软件危机(Software Crisis),这种危机表现在研发大型软件时,软件开发的成本增大、进度延期、维护困难和质量得不到保障。 所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。3. 软件工程定义:权威杂志IEEE对软件工程的定义是:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。软件工程大师Roger S Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。软件工程是研究软件开发和软件管理的一门工程学科。4. 软件工程基本原理:(1)用分阶段的生命周期计划严格管理软件开发。阶段划分为计划、分析、设计、编程、测试和运行维护。(2)坚持进行阶段评审。上一阶段评审不通过,就不能进入下一阶段开发。(3)实行严格的产品版本控制。(4)采用现代程序设计技术。(5)结果应能清楚地审查。因此,对文档要有严格要求。(6)开发小组的成员要少而精。(7)要不断地改进软件工程实践的经验和技术,要与时俱进。上述七条原理,虽然是在面向过程的程序设计时代(结构化时代)提出来的。但是,直到今天,在面向元数据和面向对象的程序设计新时代,它仍然有效。(8)二八定律5. 软件工程三要素:习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。6. 4种开发方法的比较: 7. 面向流程分析,就是面向流程进行需求分析。8. 面向元数据设计,就是面向元数据进行概要设计。9. 面向对象实现,就是面向对象进行详细设计和编程实现。10. 面向功能测试,就是面向功能进行模块测试、集成测试、Alpha测试和Beta测试。11. 面向过程管理,就是面向软件生命周期过程,对软件生命周期各个阶段进行过程管理与过程改进。12. 软件工程中的三类管理过程:第二章1.瀑布模型的特点:(1)里程碑或基线驱动,或者说文档驱动。(2)过程逆转性很差或者说不可逆转,因为根据上游的错误会在下游进行发散性传播的原理,所以逆转将会延误工期,增加成本,造成重大损失。2.迭代模型的四个阶段:(1)初始阶段。本阶段主要工作是确定系统的业务用况和定义项目的范围。(2)精化阶段。本阶段主要工作是分析问题域、细化产品定义,定义系统的构架并建立基线,为构建阶段的设计和实施工作提供一个稳定的基础。(3)构建阶段。本阶段主要工作是反复地开发,以完善产品,达到用户的要求。(4)产品化(移交)阶段。本阶段主要工作是将产品交付给用户,包括安装、培训、交付、维护等工作。3. 简述瀑布模型、增量模型、迭代模型、原型模型、XP等模型的优缺点。序号模 型 名 称优 点缺 点适 用 范 围1瀑布模型简单好学逆转性差面向过程开发2增量模型可以分阶段提交有时用户不同意系统可拆卸和组装3迭代模型需求可变风险大有高素质软件团队4原型模型开发速度快不利于创新已有产品的原型5螺旋模型需求可变建设周期长庞大、复杂、高风险项目6喷泉模型提高开发效率不利于项目的管理面向对象开发7XP模型提高开发效率不适合大团队、大项目小团队,小项目第三章1. 什么是订单软件,什么是非订单软件? 答:软件项目(或产品)来源有两个渠道“非订单软件”:通过市场调研之后,认为某产品将会有巨大的市场空间,而软件公司在人力资源、设备资源、抵抗风险、资金和时间上都具备开发该产品的能力,于是决定立项。“订单软件”:与固定的用户签订软件开发合同2.下达任务的时机及三个条件, (1)软件企业已签订了项目合同;(2)立项建议书已通过了项目评审;(3)作为特殊情况,软件组织的上级下达了某项目的指令性软件开发计划。例如:由跨组织跨部门的某个大系统项目,它的系统总体设计组分配给软件的需求。3.下达任务书的三个条件第四章1需求分析定义1997年,IEEE软件工程标准词汇表中定义需求为:(1).用户解决问题或达到目标所需的条件或能力(Capability)。(2).系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。 (3).一种反映上面(1)或(2)所描述的条件或能力的文档说明。 2.需求分析为什么重要需求分析特别重要。这是因为: (1).许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。(2).用户需求报告既是软件生命周期中的第一个里程碑,又是客户、软件开发人员、软件测试人员和项目管理人员四者共同工作的基线,是项目Alpha测试和Beta测试的准则,是供方交付产品和需方验收产品的依据。 (3).需求分析要占用整个软件开发时间或工作量的30%左右。(4).需求获取中的错误,属于软件开发中的早期错误,将给项目成功带来极大风险,因为这些错误会在后续的设计和实现中进行发散式的传播。根据以上四项原因,IT企业的高层经理,对需求分析特别重视,常常派经验最丰富的人员去作项目需求。 3. 软件需求的三个层次:软件需求包括三个不同层次:高层领导的战略决策需求、中层管理的查询统计需求、基层人员的实时操作需求。这个上中下三层需求,构成一个需求金字塔。4. 需求分析的目的、重点与难点 需求分析的重点是:通过弄清业务流程和数据流程的手段,达到与客户共同确定业务模型、功能模型、性能模型、接口模型的目标。“开发者与客户达成完全一致的需求”,既是需求分析的目的,也是需求分析的难点5. 需求分析名词解释:(1)基线:基线是软件工作产品,它是要经内部和外部评审通过的,是下一阶段工作的基础。(2)里程碑:里程碑是一个标记,只需要经过内部评审。一个里程碑是一个检查点,但不一定对应一条基线。(3)评审:评审,是对软件工程产品质量的一次开会(或汇签)活动。(4)审计:审计,是复查评审活动程序的合法性,是否按程序与规范进行等。6. 需求分析描述工具有:(1)实体关系图。(2)数据流图。(3)用例图。(会画用例图)(4)活动图。 7. 提取需求技术(1) 会谈(2) 场景(3) 原型(4) 实地观察8. 数据流图的符号:9.“图书管理系统”顶层用例图:10.“图书管理系统”的“借书登记”用例图11.需求评审检查的项目包括:(1). 需求是否描述清楚,不存在歧义。(2). 需求是否是可量化的,可验证的。(3). 需求间是否存在冲突,以及它们之间的依赖关系。(4).非功能性需求是否明确、合理。(4). 需求是否注明来源。(5). 每个需求是否分配了唯一的标识。12. 同行评审,是软件工作产品验证的活动,其目的是为了及早和高效地从软件产品中识别并消除缺陷。与技术鉴定不同,同行评审的对象一般是部分软件产品,其重点在于发现软件产品中的缺陷。13. 所谓同行,是指在软件企业内部,与生产者在被评审的软件产品上有相同的开发经验和知识的人员。第五章1. 软件策划,既是为软件开发者和管理者制定合理的工作计划,又是为软件项目跟踪和监控提供考核依据,属于软件管理和软件决策的范畴,是项目经理以上人员的职责范围,是软件企业管理的重大事件之一。2. 软件策划的步骤(1)估计软件工作产品的规模、 工作量、 费用及所需的资源 (2) 制定时间表 (3) 鉴别和评估风险 (4)与相关的组或人协商策划中的有关约定3.软件策划的目标 (1) 对供项目策划和跟踪用的三个软件估计已建立文档。这三个估计是:工作产品规模估计 工作量及成本估计 计算机资源估计; (2) 软件项目活动和约定,是有计划的并巳建立文档。这里的活动,包括开发活动和管理活动。这里的约定,是指对项目的各种标准、规范、规程的约束; (3) 受影响的组和个人,同意他们对软件项目的约定。4.所谓定义软件过程,就是根据选定的生命周期模型,规定软件的开发阶段,及每一阶段的工作步骤和文档标准等内容5.软件规模估计方法:Delphi 法、类比法、功能点估计法、无礼估计法6.P89例题7.软件策划文档就是软件开发计划书第六章1.三个模型的定义及表示方法:(1)功能模型FM(Function Model)实质上是用户需求模型,是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。功能模型的表示方法为:系统功能需求列表、性能需求列表、接口需求列表、界面需求列表。UML规定主要采用“用例图”来描述功能模型。(2)业务模型OM(Operation Model)实质上是业务逻辑模型,是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。在UML中,完整的业务模型由用例图、时序图、交互图、状态图、活动图来表述。但是,时序图在表述中起到核心作用。 (3)数据模型DM(Data Model)实质上是实体或类的状态关系模型,即对系统的数据结构进行定义。UML规定,主要采用“类图”来描述数据模型第七章1. 模块独立性:指每个模块只完成系统要求的独立的子功能,并与其他模块的联系最少,且接口简单2.3.面向过程详细设计的描述工具五种:1.程序流程图,2.N-S图,3程序设计语言PDL,4.决策表,5,PAD4.【例7-1】 使用程序流程图,描述并打印N的阶乘,如图所示【例7-2】 使用N-S图,描述并打印N的阶乘,如图所示【例7-3】 使用程序设计语言描述打印N的阶乘。读入N置F的值为1,置M的值为1当M = N时,执行:使F = F * M使 M = M + 1打印F例7-5】 使用PAD图描述打印N的阶乘,如图read N;i=1; p=1;i =N; p=pi ; i =i+1;Print p;5.习题7.6 请用面向过程详细设计中的程序流程图,描述求,以及求。(1)使用程序流程图,描述求。(2)使用程序流程图,描述求。7.7 请用面向过程详细设计中的程序设计语言PDL和PAD图两种方法,来描述求(N1)。(1)程序设计语言PDL:读入N置S的值为0,置I的值为1当I = N时,执行:使S =S+I*I*I使 I= I + 1打印 S(2)PAD图:read N;S=0; I=1;I=N;S=S+I*I*I; I=I+1Print S;第八章1. 测试定义:所谓测试,就是通过一定的方法和工具,对被测
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号