三大块内容:软件危机与软件工程传统软件开发方法面对对象方法一、软件危机与软件工程:软件、软件危机、软件生存期、软件开发模型、软件管理1、 软件: 软件是能够完成预定功能和性能的可执行的计算机程序 +使程序正常运行所需要的数据 +描述软件开发过程及其管理、程序的操作和使用的有关文档。文档:分开发、管理、用户、维护文档,作用是记录及解决不可视性、通信与沟通、管理与维护、用户服务2、 软件危机a)表现:软件成本高、难于控制开发进度、软件工作量估量困难、软件质量低、软件修改维护困难b)原因:需求问题(描述不精确、理解不一致)、管理问题、方法和工具问题、软 件本身的特点3、 软件生存期:a)三个时期: 定义时期(软件计划、需求分析)—>开发时期(软件设计、编码实现、测试)—>使用和维护时期(维护)b)六个阶段:软件计划需求分析设计编码测试使用与维护c)生命周期方法特点:顺序性、依赖性,推迟程序的物理实现、质量保证的观点(利于尽早发现错误,如阶段文档、评审)4、 软件开发模型a)瀑布模型:文档驱动 i.阶段划分、分而治之、控制开发过程的复杂性ii.自顶向下、由抽象到具体,顺序进行 优点:法律规范管理开发过程、文档驱动 缺点:初期系统的需求难以完全确定、文档驱动、周期长b)原型模型:i.针对:软件开发初期需求难以确定ii.基本思想:快速建立原型,完善用户需求iii.优点:用户参加、快速iv.缺点:快速弱功能、对开发环境要求高c)螺旋模型(风险驱动)d)增量模型(模块、功能驱动)e)迭代模型f)喷泉模型5、 软件管理a)区别于其他工业产品生产管理的特点b)主要内容:开发计划与进度管理、文档管理、人员组织管理、成本管理、质量管理二、传统软件工程方法:a)软件计划i.问题定义ii.可行性讨论1.经济可行性2.技术可行性3.法律可行性b)需求分析i.结构化分析 SAii.面对数据流的分析方法1.DFD 四个组成部分(表示方法、命名)2.DFD 作图:需求描述DFD3.层次分解法(保持父图和其子图的平衡)4.数据字典(符号)c)软件设计i.总体设计1.模块独立性:高内聚2.作用域是控制域的子集3.单入单出4.规模、深度、宽度、扇入、扇出适当ii.传统设计方法1.面对数据流的设计方法(数据流图)a)结构化设计 SD-对应有 SD 结构化需求分析、SP 结构化实现b)DFD软件结构(层次图)i.变换设计ii.事务设计c)优缺点2.面对数据结构的设计方法a)Jackson 方法b)Jackson 图i.三种元素间的逻辑关系:顺序、选择、重复ii.可描...