软件工程复习总结第1章软件工程介绍1.软件的定义软件是包括程序、数据及其相关文档的完整集合。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。软件的定义:1、指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求2、数据结构,它使得程序可以充分利用信息3描述程序操作和使用的文档2.软件的特征a)软件是设计开发的,而不是传统意义上的生产制造的b)软件不会磨损c)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的3.软件与硬件的区别a)软件是一种逻辑实体,而不是具体的物理实体b)软件的生产与硬件不同,软件开发过程中没有明显的制造过程c)软件在运行、使用期间没有磨损、老化问题d)软件的开发、运行受到计算机系统的限制,不同程度地依赖于硬件和环境,导致了软件升级和移植地问题e)软件复杂性越来越高f)软件开发成本相当昂贵g)大多数软件是新开发的,而不是通过已有的构件组装而来的h)软件工程涉及诸多的社会因素4.遗留软件与软件的演化系统演化的原因:a)系统需要修改其适应性,从而满足新的计算环境或者技术的需求b)软件必须根据新的业务需求进行升级c)软件必须扩展以具有与更多现代系统和数据库的协作能力d)软件架构必须进行改建以适应多样化的网络环境30年来软件发展的规律:1、持续变化规律,2、复杂性增长规律,3、自我调控规律,4、组织稳定性守恒规律,5、保证通晓性规律,6、持续增长规律,质量衰减规律,7、反馈系统规律。5.软件神话:1、管理神话。软件项目经理依赖信条,减轻提高软件进度和质量的压力。如开发宝典、增加人员、软件外包。2、用户神话。开发小组没有和用户进行有效沟通,导致没有达到用户期望。如没有详细了解就开始写程序,认为软件容易适应变更。3、从业者神话:软件开发者深信各种神话,旧的方式根深蒂固。6.软件新的挑战:遍在计算。无线网络的快速发展也许将很快促成真正的分布式计算的实现网络资源。万维网已经快速发展为一个计算引擎和内容提供平台。开源软件。开源软件就是将系统应用程序源代码开放,新经济。第2章过程综述1.软件工程定义:(1)将系统的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法用于软件开发(2)在(1)中所述的方法的研究2.软件工程的层次:工具方法过程质量关注点(根基)软件工程的基础是过程(process)层。软件过程是将各个技术层次结合在一起并实施合理地、及时地开发计算机软件。过程定义一个框架,为有效交付软件过程技术,这个框架必须建立。软件过程构成了软件项目管理控制的基础,并且建立了一个环境以便于技术方法的采用、工作产品的产生、里程碑的建立、质量的保证、正常变更的正确管理。软件工程方法(method)为建造软件提供技术上的解决方法("如何做")方法覆盖面很广,包括沟通、需求分析、设计建模、编程、测试和支持。软件工程方法依赖于一组基本原则,这些原则涵盖了软件工程所有技术领域,包括建模和其他描述性技术等。软件工具(tool)为过程和方法提供自动化或半自动化的支持。这些工具可以集成起来,使得一个工具产生的信息可被另外一个工具使用,这样就建立了软件开发的支撑系统,称为计算机辅助软件工程(computer-aidedsoftwareengineering)3.通用过程框架Genericprocessframework的框架活动:沟通策划建模构建和部署communication(沟通)这个框架活动包含了与客户(和其他共利益者)之间的大量的交流和协作,还包括需求获取以及其他相关活动。planning(策划)指为后续的软件工程工作制定计划。它描述了需要执行的技术任务,可能的风险、资源需求、工作产品和工作进度计划。modeling(建模)它包括创建模型和设计两方面。创建模型有助于客户和开发人员更好的理解软件需求;设计可以实现需求。Construction(构建)它包括编码(手写的或者自动生成的)和测试(测试是为了发现编码中的错误)deployment(部署)软件(全部或者完成的部分)交付到用户,用户对其进行评估并给出反馈意见。4.CMMI的概念和等级(...