您好,欢迎访问三七文档
软件工程导论作业Chapter11.1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件开发和维护过程中所遇到的一系列的严重问题。它的典型表现:1.软件开发成本高,成本难以控制。2.研究周期长,软件开发进度难以控制,周期拖得很长。3.正确性难以保证,软件质量差,可靠性难以保证。4.软件维护困难,维护人员和维护费用不断增长。5.软件发展跟不上硬件的发展和用户的要求。它出现的原因一方面是由于软件生产本身存在着复杂性,另一方面是与软件开发所使用的方法和技术有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发工程相当困难,软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业技术人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成为软件危机的主要原因。1.2什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是将系统化的,规范化的,可度量的方法应用于软件开发,运行和维护的过程,即将工程化应用于软件中。它的本质特性:1.软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性3.软件经常化4.开发软件的效率非常重要5.和谐地合作是开发软件的关键6.软件必须有效地支持它的用户7.在软件工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品。基本原理:1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计的技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性。1.3什么是软件?它有什么特点?答:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。它的特点是:1.抽象而非具体2.开发而非制造3.退化而非磨损4.定制而非基于构件5.不可见6.复杂7.易改变8.易复制1.4什么是软件过程?它与软件工程方法学有何关系?答:软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采用的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。软件工程的基础是软件过程。1.5什么是软件生命周期模型?试比较瀑布模型、原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。答:软件生命周期模型是软件开发全部过程,活动和任务的结构框架,它能直观表达软件开发全过程,明确规定要完成的主要活动,任务和开发策略。也叫软件开发模型。瀑布模型优点:有利于大型软件开发过程中人员的组织,管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。缺点:1,开发过程一般不能逆转,否则代价太大2.实际的项目开发很难严格按照该模型进行3.客户往往很难清楚地给出所有的需求,而该模型却要求如此4.软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。适用范围:1.用户的需求非常清楚全面,且在开发过程中没有或变化很少2.开发人员对软件的应用领域很熟悉3.用户的使用环境非常稳定4.开发工作队用户参与的要求很低。原型模型优点:1.可以得到比较良好的需求定义,容易适应需求的变化2.有利于开发与培训的同步3.开发费用低,开发周期短且队用户更友好。缺点:1.客户与开发者对原型的理解不同2.准确的原型设计比较困难3.不利于开发人员的创新适用范围:1.对所开发的领域比较熟悉而且有快速的原型开发工具2.项目投标时,可以以原型模型作为软件的开发模型3.进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型非常合适。增量模型优点:1.采用增量模型的优点是人员分配灵活,刚开始不用投入大量的人力资源2.如果核心产品很受欢迎,则可增加人力实现下一个增量3.可先发部分功能给客户,对客户起到镇静剂的作用。缺点:1.并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构2.增量模型的灵活性可以使其适应这种变化的能力大于优于瀑布模型和原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。适用范围:1.进行已有产品升级或新版本开发,增量模型是非常适合的2.对完成期限严格要求的产品,可以使用增量模型3.对所开发的领域比较熟悉而且已有原型系统,增量模型也非常适合。螺旋模型优点:1.实际上的灵活性,可以再项目的各个阶级进行变更2.以小的分段来构建大型系统,是成本计算变得简单容易3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性4.随着项目推进,客户始终掌握项目的最新消息,从而是他或她能够和管理层有效地交互。缺点:1.采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失2.过多的迭代次数会增加开发成本,延迟提交时间。适用范围:只适合于大规模的软件项目。1.6怎么理解软件工程的概念及其意义?答:软件工程是一门将理论和知识应用于实践的工程,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。它是一种层次化技术。意义:从历史上讲,软件工程的作用,是为了克服上个世纪60年代出现的软件危机,这种危机表现为软件开发的成本大、进度慢、维护难和质量得不到保障。从当前来讲,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。1.7软件过程的通用过程框架包含哪两类活动?答:一类是框架活动,还有一类是保护性活动。1.8描述基于构件开发的思想以及目前的发展情况。答:基于构件开发强调将被设计的系统分解成功能的或逻辑的构件,构件用定义好的接口进行通信。它是现在软件复理论实用化的研究热点,在构件对象模型的支持下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造应用软件,这样即可以节省时间和经费,提高工作效率,也可以产生更加规范,更加可靠的应用软件。1.9请简要说明RUP的9个规程(disciplines)及之间关系?答:RUP的9个规程为:业务建模,需求,分析与设计,实现,测试,部署,配置与变更管理,项目管理以及环境。对于一个大型项目,RUP九个规程的活动不可或缺,但对于有些项目可能不需要经过所有九个规程,在项目开发时需要对这些规程涉及的活动做具体的裁剪,以适应具体项目的开发需要。1.10说明面向切面编程的特点,有什么优势?答:该范型以一种称为切面的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或函数中分离出来可以大大增强程序的模块性。优势:他把特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来进行封装,维护。优势:面向切面编程的特点是针对业务处理过程中的切面提取,所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果,降低了耦合性。1.11模型驱动工程中MDA的基本思想是什么?答:MDA的基本思想是系统的功能性是用合适的规约语言以平台无关的模型的方式定义,然后为实际的实现翻译到一个或多个平台相关的模型上。Chapter22.1描述面向对象的基本概念和思想。答:面向对象是一种以对象为基础,以事件或消息来驱动对象执行处理和程序设计技术。面向对象的基本思想是认为客观实体和实体之间的联系构成了现实世界的所有问题,而每一个实体都可以抽象为对象。2.2面向对象分析设计的基本思路和过程是怎样的?答:分析过程主要包括理解、表达和验证。设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。过程:识别系统的用例和角色,进行系统分析并抽象出类,设计系统并设计系统中的类及其行为。2.3面向对象程序设计中的概念主要包括哪些?分别阐述其主要思想。答:对象:封装了数据和操作这些数据的代码的逻辑实体。类:具有相同类型的对象的抽象。封装:保证软件部分具有优良的模块性的基础。继承:让某个类型对象获得另一个类型的对象特征。多态:使不同内部结构的对象可以共享相同的外部接口,减少代码复杂度。动态绑定:多态实现的具体形式,将一个过程调用与相应代码链接起来的行为。消息传递:使得对现实世界的描述更容易。方法:定义一个类可以做的,但不一定去做的事。2.4描述UML的主要概念和历史。答:UML是统一建模语言,用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。历史:Rumbaugh和Booch将Booch93和OMT-2统一起来,发布了UM0.8;后经过Booch,Rumbaugh和Jacobson的共同努力,发布了UML0.9和UML0.91,并将UM重命名为UML。97年,Rational组织成立了UML合作者联盟,以完善、加强和促进UML的定义工作。2000年启动了UML2.0标准的制定工作。2.5RUP是什么?应用RUP对软件开发有什么意义?答:RUP(RationalUnifiedProcess)是统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。应用RUP为软件开发提供了一个模版,使得软件开发过程规范化,统一化。Chapter33.1为什么要进行业务建模?业务建模适用什么场合的软件项目开发?答:进行业务建模的原因:业务人员、IT技术的业务知识、IT技术知识彼此之间存在着较大的差异,而规模较大的软件开发项目是不太可能让所有参加项目的IT技术人员都先熟悉业务知识而再进行开发的,所以需要通过“业务建模”将“业务需求”准确地转换为IT技术人员所熟悉的“软件需求”。适用场合:规模较大的软件项目开发。3.2业务建模可以分哪些工作流进行?答:评估业务状态、描述当前业务、定义业务、探索流程自动化、开发领域模型。3.3什么是领域模型?与业务模型的关系是什么?答:领域模型:领域模型是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。领域模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。关系:开发领域模型是一个备选活动,领域模型是业务分析模型中独立的一部分,注重于说明对于业务领域很重要的概念、产品、可交付成果和事件。这样一个模型仅描述业务中的重要信息,并不包括人员承担的职责。3.4什么是系统上下文?明确目标系统的上下文有什么意义?答:系统上下文:指的是目标系统、与之交互的用户和外部系统。意义:业务建模作为软件需求的前一阶段,了解目标系统的上下文是很有必要的,便于确定目标组织和业务范围。3.5什么是业务涉众?业务涉众可能来自哪些方面?答:业务涉众:所有跟目标业务有利害关系的人。方面:可能来自目标组织内部及目标组织外部且跟目标组织有关系的人和组织。3.6什么是业务愿景?怎么理解业务愿景的重要性?答:业务愿景:定义业务建模工作所针对的一组目标。重要性:要了解组织的业务过程,对业务进行建模,首先必须理解组织的共同愿景,业务建模时期的重要任务就是确定项目涉众的共同愿景,而了解最有影响力的涉众的愿望和目标是非常重要的环节。所以业务愿景对整个业务建模过程来说是十分关键和重要的。3.7业务建模的作用是什么?哪些人和组织是潜在的业务执行者?答:作用:(1)了解目标组织(将要在其中部署系统的组织)的结构和机制;(2)了解目标组织中当前存在的问题并确定潜在改进的可能性;(3)确保客户、最终用户、开发人员和其他各方就目标组织达成共识;(4)导出支持目标组织所需的系统需求;(5)了解要部署的软件系统将如何融入组织。潜在的业务执行者:客户、合作伙伴、供应商、权威机构(法律、法规等制订机构)、
本文标题:软件工程导论作业
链接地址:https://www.777doc.com/doc-1990933 .html