欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    现代软件工程复习要点.docx

    • 资源ID:10523074       资源大小:123.52KB        全文页数:24页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    现代软件工程复习要点.docx

    1、现代软件工程复习要点第一章软件是什么?1、软件是指在执行时提供所需的功能和性能的指令(计算机程序)instructions。2、软件是使程序能够充分处理信息的数据结构data structures。3、软件是描述程序操作和使用的描述性信息descriptive imformation。为什么说软件是双重角色dual roles?1、软件是一种产品。能提供计算潜在的生产、管理、获取、修改、显示或传递信息。2、软件是交付产品的工具。能够实现计算机的控制(如操作系统)、信息的传播(如网络软件)和其他程序的创建和控制(如软件工具和环境)。软件的失败曲线软件不会损坏,所谓的软件“坏了”指1、出现了Bug

    2、。2、软件的环境变了。3、软件不能满足新的需求了。软件和硬件的区别:1、软件是设计开发的,不是传统意义上的生产制造的。2、软件不会“磨损”3、虽然整个工业向着基于构件模式发展,然而大多数软件仍是根据顾客需求定制的。为什么软件必须改变(上图的change)1、软件必须适应新的计算机环境或者技术的需要。2、必须增强软件来实现新的业务需求。3、软件必须扩展,来实现与其他更现代的系统或数据库的互操作。4、软件必须重新架构,使其在网络环境中可运行。软件的种类:系统软件,应用软件,工程/科学软件,嵌入式软件,产品线软件,网络/手机应用程序),人工智能软件(机器人、神经网络、游戏)。云计算为网络计算设备提供

    3、分布式数据存储和处理资源。计算资源驻留在云之外,并且可以访问云中的各种资源。产品线软件是一组软件密集型系统,具有共同的特点,满足特定市场的需求。软件产品线共享一组资产,包括需求、体系结构、设计模式、可重用组件、测试用例和其他工作产品。Webapp的特点1、网络密集性。大量用户可以一次访问webapp2、不可预测的负载。网络应用的用户数量可能会因每天的数量级而变化。3、性能。用户等待时间太长,可能会取消访问。4、可用性。5、数据驱动的。6、内容敏感。内容的质量和审美性是重要决定因素。7、持续的进化。8、即时性。9、安全性。10、美学。第二章CMMI capability maturity mod

    4、el integration能力成熟度模型集成PSP personal software process 个人软件过程TSP team software process 团队软件过程IEEE 给出的定义 软件工程的定义:1、将系统化、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。2、在1中所述方法的研究。软件工程是一种层次化的技术。软件工程的根基在于质量关注点quality focus。软件工程的基础是过程process。过程:活动的集合,行动,和任务执行时要创建一些工作产品软件工程方法method为建造软件提供了技术上的解决方法(“如何做”)。软件工程工具too

    5、l为过程和方法提供自动化或半自动化的支持。工具集成起来称为计算机辅助软件工程(computer-aided software engineering)自上而下软件工程的层次是:工具、方法、过程、质量关注点。通用过程框架(generic process framework):1、沟通communication2、策划planning3、建模modeling 包括需求分析analysis of requirements和设计design4、构建construction 包括编码code generation和测试testing5、部署deployment软件保护活动umbrella activit

    6、ies:1、软件项目跟踪和控制2、风险管理3、软件质量保证4、正式技术评审5、测量6、软件配置管理7、可复用管理8、工作产品的准备和生产过程模式定义:过程模式提供了一个模板一种描述软件过程中重要特征的一致性方法。通过过程模式,软件团队可以定义能最好满足项目需求的开发过程。过程模式process model的模板:1、模式名称。模式名称应该清楚表达该模式在软件过程中的的功能。2、目的。简介描述模式目的。3、类型。定义模式类型。4、启动条件。模式应用的前提条件。5、问题。模式将要解决的问题。6、解决方法。描述模式的实现。7、结束条件。模式成功执行后的结果。8、相关模式。9、已知应用实例。过程评估p

    7、rocess evaluation模板:1、启动initiating2、诊断diagnosing3、建立establishing4、执行acting5、学习learningPSP个人软件过程模板:1、策划2、高层设计。3、高层设计评审。4、开发。5、后验。解决问题步骤:1、理解问题。2、计划解决方案。3、执行。4、测试结果正确性。第三章过程模型种类:1、惯例过程模型。2、瀑布模型。3、增量过程模型。4、演化过程模型。5、专用过程模型。惯例过程模型提供了一个过程框架,由对应于软件工程动作的明确的任务集组成。瀑布模型。又称经典生命周期。沟通-策划-建模-构建-部署出现问题:1、实际项目很少严格遵守

    8、这个顺序。2、客户通常难以清楚地描述所有需求。而瀑布模型要求客户明确需求。3、客户必须有耐心,只有在项目接近尾声的时候,他们才能得到可执行程序。增量过程模型1、增量模型增量模型以迭代的方式运用瀑布模型。第一个增量往往是核心产品。增量模型侧重于每个增量都提交一个可以操作的增量。优点:1/可以规避技术风险。2/可以保证部分功能按时交付给最终客户,不至于造成过分的延期。2、RAD模型RAD rapid application development 快速应用程序开发,是一种侧重于短暂的开发周期的增量软件过程模型。通过基于构件的构建方法实现快速开发。能使开发团队在非常短的时间内创造出“全功能系统”。R

    9、AD模型建模部分包括三个主要阶段:业务建模、数据建模、过程建模。不足之处:1/需要大量人力资源。2/如果开发者和客户没有为短时间急速完成整个系统做好准备,RAD项目将会失败。3/如果系统不能很好地模块化,RAD构件建立会有很多问题。4/如果系统需求是高性能,并且需要通过调整构建接口的方式来提高性能,不能采用RAD模型。5/技术风险很高的情况下,不宜采用RAD。演化过程模型演化模型是迭代的过程模型。1、原型开发模型 0otyping model优点:客户对实际的系统有了直观的认识,开发者也迅速建立了一些东西。缺点:1/客户看到了软件的工作版本,但不知道整个软件是粗糙的。2/开发者为了使一个原型快

    10、速运行起来,往往在实现过程中采用折衷的手段。2、螺旋模型spiral model优点:1/采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。2/确定一系列里程碑,确保共利益者都支持可行和令人满意的系统解决方案。螺旋模型是开发大型系统和软件的理想方法。开发者可以在产品演进的任何阶段使用原型开发方法。3、协同开发模型concurrent development model专用过程模型1、形式化方法模型2、面向方面的软件开发统一过程unified process UPUP的起始,包括客户沟通和策划活动UP的细化,包括用户沟通和通用过程模型的建模活动UP的构建,与软件过程中构建活动一致UP的转

    11、换UP的生产,与通用过程的部署活动一致五个UP阶段并不是顺序进行,而是阶段性并发进行。第四章Agile development 敏捷开发敏捷的含义:1/有效地响应变化。2/所有利益相关者之间的有效沟通。3/将客户吸引到团队。4/项目计划必须是灵活的。5/快速、增量地交付软件。敏捷过程必须具有自适应性。应使用增量式开发策略,必须在很短的时间间隔内交付软件增量来适应不可预测的变化的步伐。敏捷开发中的人的因素human factors1、基本能力。2、共同目标3、精诚合作4、决策能力5、模糊问题解决能力6、相互信任和尊重7、自我组织。包括三点:a、组织自身完成工作。b、团队组织最能适应当前环境的过程

    12、。C、团队组织最好的进度安排以完成软件增量交付极限编程extreme programming XPXP的关键活动:1、策划。策划活动开始于建立一些列描述待开发软件必要特征与功能的“故事”。2、设计。XP设计严格遵循KIS keep it simple 保持简洁原则。XP鼓励重构。重构定义:是以不改变代码外部行为而改进内部结构的方式来修改软件系统的过程。3、编码。4、测试。第七章RE requirement engineering需求工程。需求工程定义:需求工程和其他软件工程活动类似,必须适应过程、项目、产品和工作人员的要求。从软件过程的角度来看,需求工程是一个软件工程动作,开始与沟通并持续到建

    13、模。需求工程过程通过执行七个不同的活动来完成:1、起始。Inception2、导出。Elicitation3、精化。Elaboration4、协商。Negotiation5、规格说明。Specification6、确认。Validation7、管理。Management1、起始A、建立基本的理解B、识别利益相关者stakeholdersC、识别多种观点D、协同合作2、导出A、会议讨论B、QFD质量功能部署 普通需求、期望需求、令人兴奋的需求C、用例场景用例图3、精化精化的最终结果是形成一个分析模型,该模型定义了问题的信息域、功能域和行为域。数据流图data flow diagram活动图act

    14、ivity diagram分析模型的元素:A、基于场景的元素B、基于类的元素C、行为元素D、面向信息流的元素4、协商A、识别每个利益相关者,这些相关者参与协商B、确定每个利益相关者的赢得条件C、谈判5、规格说明规格说明是需求工程师完成的最终工作产品,它将作为软件工程师后续活动的基础。6、确认A、对需求工程的工作产品进行质量评估B、检查不一致、遗漏、错误的规格说明C、正式技术评审是最主要的需求确认机制7、需求管理帮助项目团队识别、控制和跟踪需求并更改需求。软件配置管理SCM第八章分析模型必须实现三个目标:1、描述客户需要什么2、为软件设计奠定基础3、定义在软件完成后可以被确认的一组需求分析的经验

    15、原则:1、模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高一些。2、分析模型的每个元素都应能增加对软件需求的整体理解,并提供对信息域、功能和系统行为的深入了解。3、关于基础结构和其他非功能的模型应推延到设计阶段再考虑4、最小化整个系统内的关联5、确认分析模型为所有共利益者都带来价值6、尽可能保持模型简洁分析建模的方法:1、结构化分析。一种考虑数据和处理的分析建模方法,其中数据作为独立实体转换。2、面向对象分析。该方法关注于定义类和影响客户需求的类之间的协作方式。分析模型的元素1、基于场景的元素A、用例文本B、用例图C、活动图D、泳道图2、面向信息流的元素A、数据流图B、控制流图C、

    16、处理说明3、基于类的元素A、类图B、分析包C、CRC模型D、协作图4、行为元素A、状态图B、顺序图分析建模通常开始于数据建模数据对象是几乎任何必须被软件理解的复合信息的表示。ERD实体/关系图面向对象的分析1、在客户和软件工程师之间必须对基本的用户需求进行交流2、必须确定类(也就是说,定义属性和方法)3、定义类的层次结构4、表现对象与对象的关系(对象连接)5、必须为对象行为建模6、上述1-5的工作步骤重复迭代直至模型完成PSPEC 处理规格说明CRC建模 class-responsibility-collaborator类-职责-协作者行为模型显示了软件如何响应外部事件或刺激。要创建模型,分析

    17、师必须执行以下步骤:1、评估所有的用例,以充分理解系统内交互的顺序2、识别驱动交互序列的事件,并理解这些事件如何与特定对相关联3、为每个用例创建一个序列4、为系统构建状态图5、检查行为模型以验证正确性和一致性。需求模型描述中最基本的元素是用例。为webapp需求建模1、内容分析2、相互作用分析3、功能分析4、配置分析第九章设计工程的目标是创作出坚固、适用和赏心悦目的模型或设计表示。坚固性firmness:一个程序不应该有任何阻碍其功能的错误适用性commodity:一个程序应该适合它的目的赏心悦目delight:使用这个程序的体验应该是令人愉悦的通用框架活动:1、沟通2、策划3、建模 需求分析

    18、和设计4、构建 编码和测试5、部署评价良好设计演化的三个特征:1、设计必须实现所有包含在分析模型中的明确需求,而且必须满足客户期望的所有隐含需求。2、对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的,可理解的指南。3、设计必须提供软件的全貌,从实现的角度说明数据域功能域和行为域。FTP正式技术评审质量属性FURPSF 功能性functionalityU易用性usabilityR可靠性reliabilityP性能performanceS可支持性supportability设计模式模板design pattern template模式名称目的类别动机适用性结构参与者协作

    19、结果相关的模式模块化P184为什么要信息隐蔽information hiding:1、减少“副作用”的可能性2、限制本地设计决策的全球影响3、强调通过控制接口进行通信4、不鼓励使用全局数据5、导致封装高质量设计的一个属性6、导致更高质量软件的产生功能独立独立性可以使用两条定性的标准评估:内聚性cohesion和耦合性coupling。内聚性显示了某个模块相关功能的强度;耦合性显示了模块间的相互依赖性。内聚性是信息隐蔽的自然拓展。一个内聚的模块执行一个独立的任务,与程序的其他部分只需要很少的交互。耦合性表明软件结构中多个模块之间的相互连接。在软件设计中,我们将尽力得到尽可能低的耦合。一个组织良好

    20、的设计类的四个特征:1、完整性与充分性sufficient2、原始性primitiveness3、高内聚性high cohesion4、低耦合性low coupling设计模型中的元素1、数据设计元素 data elements2、体系结构设计元素 architectural elements3、接口设计元素 interface elements a、用户界面(UI)b、和其他系统、设备、网络或其他的信息生产者或使用者的外部接口。C、各种设计构建之间的内部接口。4、构件级设计元素 component elements5、部署级设计元素 deployment elements第十章什么是体系结构

    21、:一个程序和计算系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。体系结构不是可运行软件。它能使软件工程师能够:1、分析设计在满足规定需求方面的有效性。2、在设计变更相对容易的阶段,考虑体系结构可能的选择方案。3、降低与软件构件相关联的风险。为什么体系结构这么重要:1、软件体系结构的表示有助于对计算机系统开发感兴趣的各方(共利益者)开展交流。2、体系结构突出了早期设计决策。这些决策对随后的所有软件工程工作有深远影响,同时对系统作为一个可运行实体的最后成功有重要作用。3、体系结构“构建了一个相对小的,易于理解的模型,该模型描述了系统如何构成

    22、以及其构件如何一起工作”。什么是体系结构风格:每种体系结构风格描述一种系统类别:1、一组构件a set of components完成系统需要的某种功能。2、一组连接器a set of connectors,它们能使构件间实现“通信、合作和协调”。3、约束constraints,定义构件如何继承为一个系统。4、语义模型semantic models,它能使设计者通过分析系统的构成成分的性质来理解系统的整体性质。体系结构风格简单分类:1、以数据为中心的体系结构 data-centered architectures2、数据流体系结构 data flow architectures3、调用和返回体

    23、系结构 call and return architectures4、面向对象体系结构 object-oriented architectures5、层次体系结构 layered architectures体系结构模式三种特性:1、并发性concurrency2、持久性persistence3、分布性distribution体系结构设计1、系统的环境表示软件架构师用体系结构环境图ACD对软件和外部实体交互方式进行建模2、定义原始模型A、结点 nodeB、探测器 detectorC、指示器 indicatorD、控制器 controller3、将体系结构精化为构件4、描述系统实例ADL体系结构描

    24、述语言 ,为描述软件体系结构提供一套语义和语法。映射数据流到软件体系结构1、变换流信息必须以“外部世界”信息的形式进出软件2、事务流事务流通过数据沿某输入路径的移动来呈现其特征,对输入路径将外部信息转换成一个事务。3、变换映射变换映射是一组设计步骤,可以将具有变换流特征的DFD映射为某个特定的体系结构风格。A、评审基本系统模型。B、评审和精化软件的数据流图。C、确定DFD是否含有变换流或事务流特征D、通过确定输入和输出流的边界,分理处变换中心E、完成“第一级分解”F、完成“第二级分解”G、使用提高软件质量的设计启发式方法,精化第一次迭代得到的体系结构。P2154、事务映射P222第十一章什么是

    25、构件:构件是系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列接口。构件有三个重要观点:1、面向对象的观点object-oriented view2、传统观点 traditional view传统构件也被称为模块它承担下列三个重要角色之一:a、控制构件。B、问题域构件。C、基础设施构件。3、过程相关的观点 process-related view构件级设计的基本设计原则:1、开关原则OCP2、Liskov替换原则 LSP3、依赖倒置原则 DIP4、接口分离原则 ISP5、发布复用等价性原则 REP6、共同封装原则 CCP7、共同复用原则 CRP内聚性耦合性最简单的OCL语

    26、言语句由四个部分组成:1、语境context定义了哪些情况语句是正确的。2、特性property描述语境的一些特征。3、操作operation用来操纵和限定一个特性。4、关键字keyword用于说明条件表达式。PDL程序设计语言第十二章界面设计的三条黄金规则:1、置用户于控制之下A、以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式B、提供灵活的交互C、允许用户交互被中断和撤销D、当技能级别增长时可以使交互流线化并允许定制交互E、使用户与内部技术细节隔离开来F、设计应允许用户与出现在屏幕上的对象直接交互2、减少用户的记忆负担A、减少对短期记忆的要求B、建立有意义的缺省C、定义直观的快捷

    27、方式D、界面的视觉布局应该基于真实世界的象征E、以不断进展的方式揭示信息3、保持界面一致A、允许用户将当前任务放入有意义的环境中B、在应用系统家族内保持一致性C、如果过去的交互模型已经建立起了用户期望,除非有迫不得已的理由,否则不要改变他。分析和设计用户界面要考虑四种模型:1、工程师建立用户模型2、软件工程师创建设计模型3、最终用户在脑海里对界面产生的映像,称为用户的心理模型或系统感觉4、系统的实现着创建现实模型。要保持四个模型一致用户界面分析和设计过程包括四个不同的框架活动:1、用户、任务和环境分析及建模2、界面设计3、界面构造(实现)4、界面确认界面分析:1、用户分析A、用户访谈B、零售输

    28、入C、市场输入D、支持输入2、任务分析和建模A、用例B、任务细化C、对象细化D、工作流细化E、层次表示3、显示内容分析4、工作环境分析界面设计步骤:1、使用界面分析中获得的信息,定义界面对象和行为2、定义那些导致用户界面状态发生变化的事件(用户动作)。对这个行为进行建模。3、描述每一个界面状态,就像最终用户实际看的那样。4、简要说明用户如何从界面提供的界面信息来解释系统状态。第十三章传统软件的测试策略1、单元测试2、集成测试自顶向下集成自底向上集成回归测试冒烟测试调试策略三种调试方法:1、蛮力法2、回溯法3、原因排除法第十五章软件质量定义:一种有效的过程,它能创造出一种有用的产品,为生产它的人和使用它的人提供可衡量的价值。


    注意事项

    本文(现代软件工程复习要点.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开