第一章软件工程概述1软件的概念软件由两部分组成:计算机程序及其相关文档8软件三层含义:一、个体含义,软件是指计算机系统中的某个程序及其文档,二、整体含义,软件指在特定计算机系统中所有个体含义的软件的总体,三,科学含义,软件指在开发、使用和维护前述含义下的软件按所涉及的理论、原则、方法、技术所构成的学科,在这种含义下,软件也可称为软件科学。2特点:1)软件是一种逻辑实体,而不是具体的物理实体2)软件是开发出来的,而不是创造出来的3)软件可能被废弃,但不会被用坏4)以往的软件大多是定制的,而不是装配的5)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖。3软件的分类:1)系统软件:操作系统,编译软件,设备驱动2)应用软件:3)支撑软件:工具软件,需求分析工具,设计工具,测试工具,配置管理工具。4)可复用软件:标准函数库,数据结构。4软件工程的定义:指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念,原理,技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好技术方法结合起来,以较少的代价获得高质量的软件并维护它。5软件生存周期P121)问题定义与可行性研究:到底要解决什么问题,能否解决问题。是否值得做。2)需求分析:目标系统应当做什么3)软件设计:目标系统如何做。4)程序编码与单元测试:编写正确的,可维护的程序代码5)综合测试6)软件维护6瀑布模型p141)需求分析与定义:通过会商建立起系统功能,限制,目标,然后详细的定义他们,编制系统规格说明。2)系统与软件设计:系统设计将需求分配给系统硬件和软件,软件设计标识和描述基本的系统构件以及他们之间的关系。3)实现和单元测试:实现是将软件设计转化为一组程序或程序单元;单元测试检查每个程序单元是否满足设计要求。4)集成和系统测试5)运行和维护7Ratinal统一开发过程:用例驱动的,以体系结构为核心的,迭代的增量过程。(p24)动态视角,给出模型随时间所经历的各个阶段。静态视角,给出所规定的过程活动。实践视角,建议在过程中采用最佳软件工程实践。1)初始阶段:建立一个系统业务的用例。2)细化阶段3)构造阶段4)移交阶段v第二章计算机系统工程宏元素:基于计算机的系统本身可以成为一个更大的基于计算机系统的一个元素,称为那个更大系统的宏元素。1可行性研究可行性研究从经济、技术、法律、用户操作等方面分析所给出的解决方案是否可行。这是项目立项的依据。只有当解决方案可行并且有一定的经济效益或社会效益时才能开始系统的开发。2生成系统需求规格说明系统需求规格说明是在后续阶段中开发硬件系统、软件系统、数据库系统和人机接口系统的时候使用的一个文档。它描述了一个基于计算机系统的功能和性能,以及管理该系统开发的一些限制条件。3业务过程业务过程工程的目的是定义一个能有效利用信息进行业务活动的体系。用于建立实施计算机体系架构总体规划的一种方法。6.层次图是自顶向下逐层分解得到的一个树形结构。4CLSS类图CLSS用例图P455IPO图:为层次图中每一功能框详细地指明输入,处理及输出。处理操作在列中间,输入和输出在其左右。第三章1.面向对象=对象+类+继承+消息通信1消息通信消息是一个对象向另一个对象传递的信息:1)发送对象请求接收对象提供服务2)发送对象激活接收对象3)发送对象询问接收对象4)发送仅传送信息给接收对象2对象的创建称为实例化3UML视图(p66)1)用例视图2)静态视图3)设计视图4)状态机视图5)活动视图6)交互视图7)部署视图8)模型管理视图9)剖面6.通信图在2.0版本以前叫做协作图或合作图。4UML中的关系依赖、关联、泛化和实现5顺序图画法P79第四章1软件需求工程是软件生存周期中重要的一步,也是决定性的一步。2需求的层次业务需求、用户需求、功能需求和非功能需求业务需求:反映了组织或客户高层次的目标要求,通常记录在项目范围文档中。用户需求:描述了他们要求系统必须完成的任务,即用户对系统的目标。功能和非功能需求:功能需求定义了开发者应提供的软件功能或者...