2014软件工程各章节重要知识点(按考试大纲总结)
- 格式:doc
- 大小:6.08 MB
- 文档页数:30
概论1.软件的定义软件是计算机系统中与硬件相互依存的一个部分,它是包括程序、数据及其相关文档的完整集合。
其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
2.软件工程的定义和三要素IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
三个要素:方法、工具和过程。
方法为软件开发提供了“如何做”的技术。
它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
工具为软件工程方法提供了自动的或半自动的软件支撑环境。
目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。
CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。
过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
3.软件工程和软件危机的关系现有软件危机后有软件工程为了解决软件危机,既要有技术支持措施(方法和工具),又要有必要的组织管理措施。
软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。
4.软件生命周期的概念,划分的三个时期和八个阶段概念:软件生命周期是软件的产生直到报废的生命周期三个时期:软件定义,软件开发,运行维护8个阶段:问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃5.理解结构化软件开发方法和面向对象软件开发方法结构化开发方法:早期的程序开发,如C语言,都是用结构化开发方法。
软件工程复习资料2014软件概念:是计算机系统中的一个重要组成部分,从系统工程的角度来看,它作为系统元素,与计算机硬件、人、数据库、过程等共同构成计算机系统。
它由两部分组成,计算机程序及其相关文档。
其中,计算机程序是按事先设汁的功能和性能要求执行的指令序列,文档是与程序开发、维护和使用有关的图文资料,它又可以分为系统文档,用户文档和web 站点。
系统文档用于描述系统的结构,用户文档针对软件产品解释如何使用系统,web站点用于下载系统信息。
软件也是用户与硬件之间的接口。
软件危机:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。
主要体现在软件开发进度无法预测,成本增长无法控制,软件可靠性没有保证,软件维护费用大幅上升,开发人员无限增多,软件产品无法满足用户的要求。
解决办法:采用先进的开发技术和方法;使用好的软件开发工具,提高软件生产率,有良好的组织,严密的管理,各类人员相互配合共同完成任务。
总之,消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
原因:(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加。
(4)软件开发技术落后。
(5)生产方式落后。
(6)开发工具落后,生产率提高缓慢。
软件的发展阶段:a.程序设计阶段(1946~1956)b.程序系统阶段(1956~1968)c.软件工程阶段(1968年以来)。
实现满足用户要求的软件产品的定义开发发布和维护的工程或进行研究的学科。
是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念原理技术和方法进行软件的开发与维护,把经过时间考验而证明是正确的管理技术和软件的生存周期:是软件产品的一系列相关活动的整个生命期,即从形成概念开始,经过开发,交付使用,在使用中不断修改和演进,直到最终被废弃,让位于新的软件产品位置的整个时期。
软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述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.合同法:________规定软件开发过程中的合同签订与履行等事项。
2014软件工程各章节重点知识点(按考试大纲总结)第1章:软件工程的范畴THE SCOPE OF SOFTWARE ENGINEERING1掌握软件工程、软件危机、生命周期的概念1%Software engineering is a discipline学科aim is the production生产of software.fault-free;delivered on time ;within budget;satisfies the client’s needs;be easy to modify when the needs changeSoftware crisis:the quality of software was unacceptably low,deadlines and budgets were not being met. Life-cycle model:The steps to follow遵循when building构建software,A theoretical description理论描述of what should be done.Life cycle:The actual steps实际步骤performed执行on a specific具体product.2掌握维护的3种分类并能够结合具体例子进行判断1%Postdelivery maintenance:Corrective纠错性maintenance;Perfective完善性maintenance;Adaptive适应性maintenanceCorrective纠错性maintenance:removal去除of residual faults残留错误;leaving the specifications规格说明文档unchangedPerfective完善性maintenance:additional functionality额外功能;decreased response time减少响应时间Adaptive适应性maintenance:changes made in response to changes in the environment3掌握为什么没有计划、文档和测试阶段1%Why There Is No Planning Phase计划阶段, Testing Phase测试阶段or Documentation Phase文档阶段?Planning, continual持续的testing and documentation activities活动are carried out执行throughout贯穿于the life cycle.There is no separate独立的planning, testing or documentation phase.This testing is the responsibility职责ofEvery software professional专业人员, and The software quality assurance group软件质量保证小组(SQA group)Documentation Must Always be Current:Key individuals may leave before the documentation is complete.We cannot perform a phase without having the documentation of the previous phase.We cannot test without documentation.We cannot maintain without documentation.4掌握软件工程的传统生命周期模型(瀑布模型)的阶段划分和各阶段的主要任务1%Classical(Waterfall瀑布) Life-Cycle Model1. Requirements phaseExplore研究the concept概念;Elicit提取the client’s requirements客户需求2. Analysis (specification) phaseAnalyze分析the client’s requirements;Draw up制定the specification document规格说明文档(specifications);Draw up the software project management plan软件项目管理计划(SPMP);“What the product is supposed期望to do”3. Design phaseArchitectural design结构设计, followed by;Detailed design详细设计;“How the product does it”4. Implementation phaseCoding编码;Unit testing单元测试;Integration集成;Acceptance testing验收测试5. Postdelivery maintenanceCorrective纠错性maintenance;Perfective完善性maintenance;Adaptive适应性maintenance6. Retirement5掌握传统的维护观念与现代的维护观念之间的区别1%Classical maintenance is Development-then-maintenance model开发-维护模型This is a temporal时间性definition,Classification归类as development or maintenance depends on取决于when an activity is performed.Modern Maintenance is nowadays defined as:The process过程that occurs when a software artifact软件制品is modified被修改because of a problem or because of a need for improvement改善or adaptation适应.Maintenance occurs whenever software is modified修改.Regardless of不管whether this takes place before or after installation of the software product.Modern maintenance is corrective, perfective, or adaptive maintenance performed at any time.第2章:软件生命周期模型SOFTWARE LIFE-CYCLE MODELS1 掌握编码-修补模型、瀑布模型、快速原型开发模型、开源模型、敏捷过程模型、同步-稳定模型、螺旋模型等这些模型的模型图(如果有图的话)以及优缺点和适用场合,并能绘制。
2014软件工程各章节重点知识点(按考试大纲总结)第1章:软件工程的范畴THE SCOPE OF SOFTWARE ENGINEERING1掌握软件工程、软件危机、生命周期的概念1%Software engineering is a discipline学科aim is the production生产of software.fault-free;delivered on time ;within budget;satisfies the client’s needs;be easy to modify when the needs changeSoftware crisis:the quality of software was unacceptably low,deadlines and budgets were not being met. Life-cycle model:The steps to follow遵循when building构建software,A theoretical description理论描述of what should be done.Life cycle:The actual steps实际步骤performed执行on a specific具体product.2掌握维护的3种分类并能够结合具体例子进行判断1%Postdelivery maintenance:Corrective纠错性maintenance;Perfective完善性maintenance;Adaptive适应性maintenanceCorrective纠错性maintenance:removal去除of residual faults残留错误;leaving the specifications规格说明文档unchangedPerfective完善性maintenance:additional functionality额外功能;decreased response time减少响应时间Adaptive适应性maintenance:changes made in response to changes in the environment3掌握为什么没有计划、文档和测试阶段1%Why There Is No Planning Phase计划阶段, Testing Phase测试阶段or Documentation Phase文档阶段?Planning, continual持续的testing and documentation activities活动are carried out执行throughout贯穿于the life cycle.There is no separate独立的planning, testing or documentation phase.This testing is the responsibility职责ofEvery software professional专业人员, and The software quality assurance group软件质量保证小组(SQA group)Documentation Must Always be Current:Key individuals may leave before the documentation is complete.We cannot perform a phase without having the documentation of the previous phase.We cannot test without documentation.We cannot maintain without documentation.4掌握软件工程的传统生命周期模型(瀑布模型)的阶段划分和各阶段的主要任务1%Classical(Waterfall瀑布) Life-Cycle Model1. Requirements phaseExplore研究the concept概念;Elicit提取the client’s requirements客户需求2. Analysis (specification) phaseAnalyze分析the client’s requirements;Draw up制定the specification document规格说明文档(specifications);Draw up the software project management plan软件项目管理计划(SPMP);“What the product is supposed期望to do”3. Design phaseArchitectural design结构设计, followed by;Detailed design详细设计;“How the product does it”4. Implementation phaseCoding编码;Unit testing单元测试;Integration集成;Acceptance testing验收测试5. Postdelivery maintenanceCorrective纠错性maintenance;Perfective完善性maintenance;Adaptive适应性maintenance6. Retirement5掌握传统的维护观念与现代的维护观念之间的区别1%Classical maintenance is Development-then-maintenance model开发-维护模型This is a temporal时间性definition,Classification归类as development or maintenance depends on取决于when an activity is performed.Modern Maintenance is nowadays defined as:The process过程that occurs when a software artifact软件制品is modified被修改because of a problem or because of a need for improvement改善or adaptation适应.Maintenance occurs whenever software is modified修改.Regardless of不管whether this takes place before or after installation of the software product.Modern maintenance is corrective, perfective, or adaptive maintenance performed at any time.第2章:软件生命周期模型SOFTWARE LIFE-CYCLE MODELS1 掌握编码-修补模型、瀑布模型、快速原型开发模型、开源模型、敏捷过程模型、同步-稳定模型、螺旋模型等这些模型的模型图(如果有图的话)以及优缺点和适用场合,并能绘制。
软件工程一二章知识点总结一、软件工程概述1.1 软件工程定义软件工程是指将系统化、规范化、可靠化、高效化地开发、维护和管理软件的过程。
它包括了一系列的方法和工具,旨在提高软件开发的质量和效率。
1.2 软件危机软件危机是指在软件开发和维护过程中所出现的一系列问题,包括进度滞后、成本超支、质量不高等。
软件工程的出现正是为了解决这些软件危机。
1.3 软件工程的目标软件工程的主要目标是提高软件开发的质量、提高开发效率、降低开发成本,并且使得软件能够满足用户的需求。
1.4 软件工程的原则软件工程有七大原则,包括可管理性、稳定性、可维护性、灵活性、可重用性、可移植性和高效性。
1.5 软件工程的特点软件工程有其自身的特点,包括软件的不可见性、复杂性、变化性和一致性。
软件开发过程要充分考虑这些特点。
1.6 软件危机的原因软件危机主要是由于软件的复杂性、需求的不断变化、开发过程的管理不善和技术水平的不足等诸多原因导致的。
要解决软件危机,就需要采用科学的方法进行软件开发。
二、软件生命周期2.1 软件生命周期模型软件生命周期模型是描述软件开发过程中不同阶段的模型。
常见的软件生命周期模型包括瀑布模型、原型模型、迭代模型、螺旋模型、敏捷开发模型等。
2.2 软件生命周期阶段软件生命周期通常包括需求分析、设计、编码、测试、部署和维护等不同阶段。
每个阶段都有其特定的任务和目标。
2.3 瀑布模型瀑布模型是软件开发中最经典的一种模型,它将软件开发过程分为需求分析、设计、编码、测试和维护五个阶段,严格按照顺序进行。
该模型适用于需求变化不大的项目。
2.4 原型模型原型模型是一种以原型开发为基础的模型,它能够快速生成原型,帮助用户更好地理解需求,并且在软件开发过程中充分考虑需求的变化。
2.5 敏捷开发敏捷开发是一种迭代、灵活、快速响应需求变化的软件开发方法。
它强调团队合作、交付价值、持续改进和迭代开发。
三、需求工程3.1 需求工程定义需求工程是指对需求进行理解、规范、记录和验证的过程。
软件工程知识点总结(一)引言概述软件工程是一门与软件开发相关的学科,它关注的是通过系统化的方法和工具来开发高质量的软件。
本文将对软件工程的一些重要知识点进行总结和概述,帮助读者更好地理解软件工程的基本原理和应用技术。
正文内容一、软件生命周期管理1.需求分析:明确软件系统需要实现的功能和性能要求,通过与用户的沟通和讨论来获取需求。
2.软件设计:根据需求分析的结果,设计软件系统的架构和组件的结构,定义软件模块和接口。
3.编码与测试:根据设计文档,编写软件代码,并进行单元测试、集成测试和系统测试,确保软件的质量。
4.软件发布和维护:将软件部署到用户环境中,并进行后续的问题修复和版本升级。
5.软件退役:当软件不再需要使用时,进行软件的退役和数据的保存,确保软件系统的安全和可靠性。
二、软件开发模型1.瀑布模型:将软件开发过程划分为一系列确定的阶段,每个阶段都有明确的输入和输出。
2.敏捷模型:强调迭代和增量的开发过程,通过短周期的迭代周期来逐步完善软件。
3.螺旋模型:将风险管理引入到软件开发过程中,通过不断迭代的过程来降低风险。
4.原型模型:在软件开发之前,先快速创建一个原型,与用户进行交互,以获取用户的反馈和需求。
5.增量模型:将软件系统分解为多个部分,逐步完成各个部分的开发和测试。
三、软件需求工程1.需求获取:通过需求访谈、直接观察、问卷调查等方式来获取软件需求。
2.需求分析:对收集到的需求进行详细分析和整理,确保需求的准确性和完整性。
3.需求建模:使用UML等建模工具将需求转化为可视化的模型,明确需求的关系和结构。
4.需求验证:通过测试和评审等方式,验证需求是否满足用户的期望和系统的要求。
5.需求变更管理:在软件生命周期中,对需求进行变更管理和控制,确保软件开发的稳定性。
四、软件设计原则和模式1.单一责任原则:一个类或模块只负责完成一个职责或功能。
2.开闭原则:软件实体应对扩展开放,对修改关闭。
3.依赖倒置原则:高层模块不依赖于底层模块,二者都依赖于抽象接口。
第1章1. 重要1.软件的定义2.软件危机的6个表现3.软件工程定义4.软件工程3要素5.软件开发方法2. 次重要1.软件的特点2.软件的分类3.产生软件危机的原因4.如何解决软件危机5.软件工程目标6.软件工程原则7.软件工程原理第2章1. 重要1.什么是软件生产周期2.软件生命周期的阶段划分3.什么是软件过程模型4.瀑布模型5.原型模型2. 次重要1.螺旋模型2.喷泉模型3.增量模型4.构件组装模型5.RUP模型第3章1. 重要1.可行性研究的目的2.可行性研究的内容3.效益估算技术的几种计算公式4.绘制系统流程图2. 次重要1.问题定义的目的2.可行性研究的步骤3.成本估计技术有哪些4.软件计划任务书包含的内容第4章1. 重要1.需求的定义(IEEE)2.需求的分类(FURPS+模型)3.需求工程的定义4.需求工程的内容5.两种常见的建模与分析方法6.需求规格说明书的作用7.需求规格说明书的内容2. 次重要1.造成需求问题的根本原因2.需求的层次3.需求工程的分类4.需求过程的两种模型5.需求工程的方法6.需求开发过程7.需求获取技术第5章1. 重要1.结构化系统软件开发方法主要包括的3个重要部分2.结构化分析的核心思想3.Data Flow Diagram的作用4.数据流图的主要图形结构5.绘制分层数据流图6.绘制数据流图的注意事项7.什么是数据字典8.数据字典的定义符号和编写格式9.绘制判定表2. 次重要1.结构化分析过程2.结构化分析常用的描述工具3.数据流的方向的要求4.数据流的表示的约定5.数据流与加工之间的关系6.数据字典中的五类条目7.判定树第6章1. 重要1.面向对象的软件开发过程2.统一建模语言UML的作用3.UML的构成2. 次重要1.面向对象的基本概念2.几种典型的面向对象方法第7章1. 重要1.用例驱动的面向对象分析一般过程2.绘制用例图3.三种分析类4.建立对象模型5.绘制顺序图2. 次重要3.第8章1. 重要1.软件设计的目标2.软件设计的任务3.结构化软件设计内容4.什么是模块和模块化5.什么是模块的独立性6.衡量模块独立性的两个准则2. 次重要1.结构化设计过程2.内聚的种类3.耦合的种类4.几种典型的软件体系结构风格第9章1. 重要1.概要设计的关键点是什么2.什么是变换型数据流3.什么是事务型数据流4.系统结构图的主要成分5.由数据流图推导系统结构图6.详细设计阶段的主要工作7.绘制盒图2. 次重要1.结构化设计过程2.优化系统结构图的启发式规则3.什么是PAD 图4.什么是PDL5.什么是HIPO 图第10章1. 重要1.面向对象设计原则2.单一职责原则含义3.开放−封闭原则含义4.Liskov 替换原则含义5.接口隔离原则含义6.依赖倒置原则含义7.分析类与设计类之间的映射关系8.关系数据库与面向对象概念的对应关系9.对持久类的存储设计10.对关系的存储设计——关联关系的映射11.对关系的存储设计——继承关系的映射12.对关系的存储设计——组合聚合关系的映射2. 次重要1.3方面的具体工作2.设计糟糕的系统的症状3.典型的三层结构设计4.软件系统体系结构模型的作用5.硬件系统体系结构模型的作用6.设计模式的作用和研究意义7.抽象工厂(Abstract Factory)模式8.适配器(Adapter)模式9.策略(Strategy)模式10.外观(Facade pattern)模式第11章1. 重要1.用户界面设计原则2.系统响应时间的两个属性2. 次重要1.交互模型和框架2.人类工程学3.用户界面风格第12章1. 重要1.2. 次重要1.第13章1. 重要1.软件缺陷的定义2.软件测试的定义(IEEE)3.黑盒测试含义4.白盒测试含义5.等价类或等价划分的含义6.划分等价类关键原则7.根据等价类设计测试用例8.代码覆盖的含义9.语句覆盖的要求10.分支覆盖的要求11.条件覆盖的要求12.判定/条件覆盖的要求13.条件组合覆盖的要求14.路径覆盖的要求15.集成测试的策略16.面向对象测试包含哪些测试17.软件调试含义2. 次重要1.软件测试的基本认识2.软件测试基本原则3.静态测试含义4.动态测试含义5.失效性测试含义6.通过性测试含义7.单元测试含义8.集成测试含义9.确认测试含义10.Alpha测试含义11.Beta测试含义12.系统测试含义13.面向对象测试策略14.调试方法第14章1. 重要1.软件维护定义2.软件维护的分类3.软件可维护性定义4.软件可维护性的7种度量5.再工程定义2. 次重要1.软件维护的实施过程2.软件维护的副作用3.逆向工程定义第15章1. 重要1.软件项目管理的主要职能2.软件项目组织分类3.软件开发成本估计方法4.成本估算模型5.软件配置管理的定义6.2. 次重要1.甘特图法2.箭线图3.顺序图第16章1. 重要1.2. 次重要1.XP 技术含义2.净室软件工程方法含义3.AOP 编程含义4.软件复用技术含义。
软件工程知识点归纳第1章软件工程学概述 (3)1.1 软件危机 (3)1.2 软件工程 (3)1.3 软件生命周期 (3)1.4 软件过程 (3)第2章可行性研究 (4)2.1 可行性研究的任务 (4)2.2 可行性研究过程 (4)2.3 系统流程图 (4)2.4 数据流图 (4)2.5 数据字典 (5)2.6 成本/效益分析 (5)第3章需求分析 (5)3.1 需求分析的任务 (5)3.2 与用户沟通获取需求的方法 (5)3.3 分析建模与规格说明 (5)3.4 实体-联系图 (5)3.5 数据规范化 (5)3.6 状态转换图 (6)3.7 其他图形工具 (6)3.8 验证软件需求 (6)第4章形式化说明技术 (6)第5章总体设计 (6)5.1 设计过程 (6)5.2 设计原理 (7)5.3 启发规则 (7)5.4 描绘软件结构的图形工具 (7)5.5 面向数据流的设计方法 (8)第6章详细设计 (8)6.1 结构程序设计 (8)6.2 人机界面设计 (8)6.3 过程设计的工具 (8)6.4 面向数据结构的设计方法 (8)6.5 程序复杂程度的定量度量 (8)第7章实现 (9)7.1 编码 (9)7.2 软件测试基础 (9)7.3 单元测试(模块测试) (10)7.4 集成测试(子系统测试和系统测试) (10)7.5 确认测试(验收测试) (10)7.6 白盒测试技术 (10)7.7 黑盒测试技术 (11)7.8 调试(修改测试发现的错误) (11)7.9 软件可靠性 (11)第8章维护 (11)8.1 软件维护的定义 (11)8.2 软件维护的特点 (11)8.3 软件维护过程 (12)8.4 软件的可维护性 (12)8.5 预防性维护 (12)8.6 软件再工程过程 (12)参考书目 (12)第1章软件工程学概述1.1 软件危机1. 软件危机的定义、表现、产生原因2. 消除软件危机的途径3. 软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。
第一章软件工程概述1.1 软件危机1. 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2. 软件危机主要有以下一些典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产效率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
3. 软件危机和软件工程的关系消除软件危机的途径是软件工程。
1.2 软件工程1. 软件工程的7条基本原理(1)用分阶段的生命周期计划严格管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。
2. 软件工程方法学,分别是传统方法学和面向对象方法学。
1.2 软件生命周期1. 软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步分成若干阶段。
(1)软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
(2)开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
(3)维护时期的主要任务是使软件持久地满足用户的需要。
1.4 软件过程1. 瀑布模型(1)瀑布模型一直是唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。
传统软件工程方法学的软件工程,基本上可以用瀑布模型来描述。
(2)传统的瀑布模型的特点:1)阶段间具有顺序性和依赖性。
2)推迟实现的观点。
3)质量保证的观点。
2. 快速原型模型(1)快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
2014软件工程各章节重点知识点(按考试大纲总结)第1章:软件工程的范畴THE SCOPE OF SOFTWARE ENGINEERING1掌握软件工程、软件危机、生命周期的概念 1%Software engineering is a discipline学科 aim is the production生产 of software.fault-free;delivered on time ;within budget;satisfies the client’s needs;be easy to modify when the needs changeSoftware crisis:the quality of software was unacceptably low,deadlines and budgets were not being met.Life-cycle model:The steps to follow遵循 when building构建 software,A theoretical description 理论描述 of what should be done.Life cycle:The actual steps实际步骤 performed执行 on a specific具体 product.2掌握维护的3种分类并能够结合具体例子进行判断 1%Postdelivery maintenance:Corrective纠错性 maintenance;Perfective完善性 maintenance;Adaptive 适应性 maintenanceCorrective纠错性maintenance:removal去除of residual faults残留错误;leaving the specifications规格说明文档 unchangedPerfective完善性 maintenance:additional functionality额外功能;decreased response time减少响应时间Adaptive适应性 maintenance:changes made in response to changes in the environment3掌握为什么没有计划、文档和测试阶段 1%Why There Is No Planning Phase计划阶段, Testing Phase测试阶段 or Documentation Phase文档阶段?Planning, continual持续的 testing and documentation activities活动 are carried out执行throughout贯穿于 the life cycle.There is no separate独立的 planning, testing or documentation phase.This testing is the responsibility职责 ofEvery software professional专业人员, and The software quality assurance group软件质量保证小组(SQA group)Documentation Must Always be Current:Key individuals may leave before the documentation is complete.We cannot perform a phase without having the documentation of the previous phase.We4掌握软件工程的传统生命周期模型(瀑布模型)的阶段划分和各阶段的主要任务1%Classical(Waterfall瀑布) Life-Cycle Model1. Requirements phaseExplore研究 the concept概念;Elicit提取 the client’s requirements客户需求2. Analysis (specification) phaseAnalyze分析 the client’s requirements;Draw up制定 the specification document规格说明文档(specifications);Draw up the software project management plan软件项目管理计划(SPMP);“What the product is supposed期望 to do”3. Design phaseArchitectural design结构设计, followed by;Detailed design详细设计;“How the product does it”4. Implementation phaseCoding编码;Unit testing单元测试;Integration集成;Acceptance testing验收测试5. Postdelivery maintenanceCorrective纠错性 maintenance;Perfective完善性 maintenance;Adaptive适应性 maintenance6. Retirement5掌握传统的维护观念与现代的维护观念之间的区别1%Classical maintenance is Development-then-maintenance model开发-维护模型This is a temporal时间性 definition,Classification归类 as development or maintenance depends on取决于 when an activity is performed.Modern Maintenance is nowadays defined as:The process过程 that occurs when a software artifact 软件制品 is modified被修改 because of a problem or because of a need for improvement改善 or adaptation适应.Maintenance occurs whenever software is modified修改.Regardless of不管 whether this takes place before or after installation of the software product.Modern maintenance is corrective, perfective, or adaptive maintenance performed at any time.第2章:软件生命周期模型SOFTWARE LIFE-CYCLE MODELS1 掌握编码-修补模型、瀑布模型、快速原型开发模型、开源模型、敏捷过程模型、同步-稳定模型、螺旋模型等这些模型的模型图(如果有图的话)以及优缺点和适用场合,并能绘制。
5-10%Code-and-Fix Model代码-修复模型1.without requirements or specifications or design3.the easiest way to develop software —— and by far目前 the worst wayWaterfall Model1. with feedback loops2. documentation driven文档驱动no phase is complete until thedocumentation for that phase hasbeen completed;The waterfall model, depending on依赖于 specifications, can leadto导致 the products that do notmeet the client’s needs.Rapid Prototyping Model快速原型1. linear development2. rapid3. meet the client’s needOpen-Source Life-Cycle Modelpostdelivery maintenance life-cycle model Two informal非形式的 phasesCore group核心小组Peripheral group外围小组Open-source software isgenerally maintained by unpaidvolunteers志愿者Users may submit defect reports缺陷报告, both failure reportsand fault reportsAn initial working version is produced when using The rapid-prototyping model;The code-and-fix model; and The open-source life-cycle modelThen:Rapid-prototyping model:The initial version is discarded丢弃Code-and-fix model and open-source life-cycle model:The initial version becomes the target product目标产品Agile Processes敏捷过程stories特性;pair programming成对编程;Extreme programming极限编程:XP is one of a number of new paradigms collectively referred to as统称为 agile processes.A principle原则 of XP is to minimize 最小化 the number of features.One way of achieving this is to use timeboxing时光盒技术Another common feature of agile processes is stand-up meetings站立会议Stand-up meetings and timeboxing techniques are instances实例 of two basic principles原则 that underlie应用 all agile methods敏捷方法:ommunication沟通;satisfying the client’s needs as quickly as possible尽可能快地1. Agile processes have had some successes with small-scale小型 software development2. Agile processes are good when requirements are vague模糊不清 or changingSynchronize-and Stabilize Model同步-稳定模型Microsoft’s life-cycle modelAt the end of the day — synchronize同步 (test and debug调试)At the end of the build构件— stabilize稳定化 (freeze冻结 the build)Spiral Model螺旋模型a rapid-prototyping model with each phase preceded by之前带有 risk analysis风险分析Strengths优点risk-driven风险驱动Weaknesses缺点For large-scale大型and internal内部software onlySummary:第3章:软件过程SOFTWARE PROCESS1掌握每个工作流(包括需求流、分析流、设计流、实现流、测试流)的目标 2%The Requirements WorkflowAim: to determine what the client needs,not what the client wantsThe Analysis WorkflowAim: analyze分析 and refine提取 the requirementsPS:Why not do this during the requirements workflow?The artifacts of the requirements workflow be comprehensible能被理解 by the client and be expressed in a natural language用自然语言描述;All natural languages are imprecise不精确Two separate workflows are needed:the language of the client(natural language);complete enough for the designers(UML)The Design WorkflowAim: to refine细化 the analysis workflow until the material材料 is in a form that can be implemented by the programmersPS:Many nonfunctional requirements need to be finalized at this time, including choice of programming language,reuse issues,portability issues.The Implementation WorkflowAim: to implement the target目标 software product in the selected implementation language The Test WorkflowAim: to find defect(mistake过错, fault差错, failure故障)PS:The test workflow is the responsibility of Every developer and maintainer, and The quality assurance groupTraceability可追踪性 of artifacts is an important requirement for successful testingThe analysis artifacts should be checked by means of a review评审:walkthrough走查;inspections 审查kinds of running test cases测试用例:unit单元 testing;integration集成 testing;product产品testing;acceptance验收 testingThe COTS software is released for testing by prospective clients潜在客户:alpha release (α版) beta release (β版): the correct α release终期限、可靠性、成本),掌握以下观点:开发者能够给予客户的应该是客户需要的而不是客户想要的 1% Requirements Workflow Tasks:(1) gain an understanding of the application domain应用领域:Thatis, the specific business environment in which the software product is to operate(2) build abusiness model业务模型:Use UML to describe the client’s business processes(3)determine the client’s constraints限制条件:deadline期限;portability可移植性;reliability可靠性;response time响应时间;cost成本:The client will rarely inform告知 the developer how muchmoney is available,A bidding procedure招标程序 is used instead.Developer should do what the client needs,not what the client wants3掌握设计流的两个步骤:结构设计和详细设计的设计内容2%Classical Design传统范型的设计:architectural design结构设计decompose分解 the product into modulesdetailed design详细设计design each module:data structures数据结构;algorithms算法4掌握统一过程的四个阶段以及每个阶段的目标 1%The Phases of the Unified Process:inception phase开始阶段 Aim: to determine whether the proposed software product is economicallyviable经济上可行elaboration phase细化阶段 Aim: to refine细化 the initial requirementsconstruction phase构建阶段 Aim: to produce the first operational-quality version可工作版本 ofthe software producttransition phase转换阶段 Aim: to ensure that the client’s requirements have indeed been met5.掌握规格说明文档中可能出现的问题(包括模糊、不完备和矛盾),掌握软件项目管理计划的组成部分(包括可交付的东西、里程碑和预算)1%Specification document规格说明文档It constitutes构成 a contract合同;It must not have imprecise phrases like:optimal最优;98% complete;if 0<=num<=30, green light is lit被点亮; if 30<num<=45, yellow light is lit. The specifications must not have:contradictions矛盾;ambiguity模糊;incompleteness不完整Software Project Management Plan 软件项目管理计划Once the client has signed off签署 the specifications, we draw up the software project management6.掌握回归测试概念及方法。