第一章绪论1.每18个月芯片的性能和速度均提高一倍,每隔12年软件生产大约提高一倍。2.软件:是能够完成预定功能和性能的可执行的计算机诚信度。包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档。即:软件=程序+文档3.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。4.软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,是家居软件危机的重要原因。--------------------------------------------------------------------------------------------------------------------------------------------------------------------5.软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。6.软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。7.软件的发展:大体经历了程序、软件、软件产品3个阶段。8.工具和方法是软件开发技术的2大支柱。9.3种编程泛型:过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型10.面向对象程序设计中,数据和操作被封装在一个对象中对象之间则是通过消息相互联系。11.构件:标准化/规格化的对象类。12.常用变成力度的大小来比较3种编程泛型的差异。粒度由小到大依次是:过程式编程范式、面向对象编程范式、基于构件的编程泛型。13.软件工程的分化:传统软件工程:结构化分析-》结构化设计-》面向过程编码-》软件测试面向对象软件工程:OO分析与对象抽取-》对象详细设计-》面向对象的编码与测试基于构件的软件工程(以可复用构件和测试工具为后盾):领域分析和测试计划定制-》领域设计-》建立可复用构件库-》按‘构件集成模型’查找与集成构件14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。第二章软件生存周期与软件过程1.软件生存周期:计划、开发、运行3个时期。需求分析-》软件分析-》软件设计-》编码测试-》软件测试-》运行维护2.需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。3.软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。4.软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。5.单元测试通常与编码同时进行。6.软件测试:单元测试、集成测试、系统测试。7.Boehm软件生存周期的划分:系统需求、软件需求、概要设计、详细设计、编码纠错、测试和预运行、系统维护。--------------------------------------------------------------------------------------------------------------------------------------------------------------------8.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。9.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。特点:快速开发工具、循环、低成本。种类:渐进型、抛弃型。10.常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。11.增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。增量:小而可用的软件一般情况下,第一个增量是软件的核心部分。如(增量一:需求-设计-实现和集成-交付客户)12.螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计划、风险分析、建立原型、用户评审4种活动。(高风险的大型软件采用此方法)13.构件集成模型:适应于面向对象的软件开发。利用预先封装好的构件来构造应用软件系统。14.软件开发方法可区分:形式化方法、非形式化方法。15.形式化开发模型:转换模型、净室模型16.转换模型:是将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。转换模型的开发过程:确定性实话的需求规格说明书、进行自动化的程序变换、对形式化开发记录进行测试。转换模型的常用技术:基于模型的需求规...