软件工程复习重点讲述.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程复习重点讲述

软件工程复习重点 温馨提示:紫魏嫒你的个人盘点,有任何遗漏记得通知一下哦,亲~ 题型: 一、名词解释 5个 15分 二、简答题 6个 50分 三、综合设计与计算 21分 四、软件架构 14分 第一章 1、软件危机定义:软件危机(Software Crisis)是指软件在开发和维护过程中所遇到的一系列严重问题。 2、产生软件危机的原因:既与软件本身的特点有关,也和软件开发和维护的方法不正确有关。 ? 软件是逻辑产品而不是物理产品,进度和质量难于评价,开发过程难于管理和控制; ? 软件规模庞大,程序的复杂性随程序规模的增长而呈指数增长; ? 开发过程中或多或少地采用了错误的技术和方法(如忽视需求分析、认为开发软件就是写程序、轻视软件维护等)。 3、软件的生命周期:软件从定义、开发、使用和维护,直到最终 被废弃这个漫长的时期称为软件的生命周期。 4、消除软件危机的途径: ? 对软件的定义有一个正确的认识。 ? 必须认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、协同配合、共同完成的工程项目。必须吸收和借鉴人类长期从事工程项目所积累起来的原理、概念、技术和方法以及计算机硬件研究和开发的经验和教训; ? 推广使用在实践中总结出来的成功的技术和方法,消除错误的概念和做法,使用和开发更好的软件工具,形成更好的软件工程支撑环境. 总之,需要通过一定的技术措施(技术和方法)和管理措施来消除软件危机。 5、软件工程:软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,即把工程化应用于软件中;②研究①中提到的途径。 6、软件工程的本质特性: ? 软件工程关注于大型程序的构造; ? 软件工程的中心课题是控制复杂性; ? 软件经常变化; ? 开发软件的效率非常重要; ? 和谐地合作是开发软件的关键; ? 软件必须有效地支持它的用户; ? 软件工程领域是由具有一种文化背景的人替具有另一种文化背景的人创造产品(跨文化)。 7、软件工程的基本原理: ? 用分阶段的生命周期计划严格管理 ? 坚持进行阶段评审 ? 实行严格的产品控制 ? 采用现代程序设计技术 ? 结果应能清楚地审查 ? 开发小组人员应该少而精 ? 承认不断改进软件工程实践的必要性 8、软件工程方法学:通常把软件生命周期过程中使用的一整套技术的集合称为软件工程方法学(Methodology),也称为范型(Paradigm),它包括方法(如何做)、工具(支撑平台)和过程(工作步骤)。 (对于软件生命周期,计算机的说可能出在最后一题) 9、软件生命周期:软件的生命周期由软件定义、软件开发、软件维护(运行维护)三个时期组成,每一个时期又进一步划分为若干个阶段。 10、软件生命周期每个阶段的基本任务: ? 问题定义阶段(要解决的问题是什么) ? 可行性分析阶段(上一阶段所确定的问题是否有行得通的解决办法)必要性、可能性 ? 需求分析(确定系统必须完成那些工作)做什么 ? 总体设计(怎样实现目标系统)怎样做 ? 详细设计(应该怎样具体的实现这个系统) ? 编码和单元测试(写出正确的容易理解、容易维护的程序模块) ? 综合测试(通过各种类型的测试(及相应的调试)使软件达到预定的要求) ? 软件维护(通过各种必要的维护活动使系统持久的满足用户的需要) 11、软件过程定义:软件过程(Software Engineering Process)是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 12、软件过程: ? 瀑布模型(重点) ? 快速原型模型(重点) ? 增量模型(重点) ? 螺旋模型 ? 喷泉模型 ? Rational统一过程 ? 敏捷过程与极限编程 ? 微软过程 13、极限编程(XP): (1)极限编程的有效实践: ? 客户作为开发团队的成员 ? 使用用户的素材 ? 短交付周期 ? 验收测试 ? 结对编程 ? 测试驱动开发 ? 集体所有 ? 持续集成 ? 可持续的开发速度 ? 开放的工作空间 ? 及时调整计划 ? 简单的设计 ? 重构 ? 使用隐患 (2)极限编程的整体开发过程 ? 项目组针对客户代表提出的“用户故事”(用户故事类似于用例,但比用例更简单,通常仅描述功能需求)进行讨论,提出隐喻,在此项活动中可能需要对体系结构进行“试探”(所谓试探就是提出相关难点的试探性解决方案) ? 项目组在隐喻和用户故事的基础上,根据客户制定的优先级制定交付计划(为了制订出切实可行的交付计划,可能需要对某些技术难点进行试探) ? 开始多次迭代过程(通常每个迭代历时1-3周),在迭代期内产生的新用户故事不在本次迭代内解决,以保证本次开发过程不受干扰 ? 开发后的新版本软件通过验收测试之后交付用户使用 思考题:(这些是

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档