11.4主要的软件开发方法①结构化开发方法②面向对象的方法2开发队伍最熟悉哪种开发方法?提供的软/硬件资源和开发工具?开发方法在计划、组织和管理方面的可行性?对开发项目所涉及领域的知识的掌握情况?选择方法要考虑如下的几个因素3⑴结构化开发方法也称为面向功能开发方法或面向过程方法,是由E.Yourdon和L.Constantine提出的.结构化分析方法SA结构化设计方法SD结构化编程方法SP4按照功能分解的原则;自顶向下、逐步求精;直到实现软件功能为止。简单、实用。结构化方法的特点5①它以功能分解为基础,而用户的功能是经常改变的,必然导致系统的框架结构不稳定。②从数据流程图到软件结构图之间的过渡有明显的断层,导致设计回溯到需求有困难。结构化方法的主要问题6⑵面向对象的方法①Booch方法:该方法的分析能力较弱,是一种偏重设计的方法。②OMT方法:通过建立对象模型、动态模型、功能模型,来实现对整个系统分析和设计工作。③OOSE方法:最大特点是用用例(Use-Case)与外部角色的交互来表示系统功能,用例贯穿于整个开发过程。④Coad/Yourdon的面向对象分析和设计方法:即OOA和OOD方法,它是最早的面向对象的分析和设计方法之一。⑤UML:统一建模语言,国际对象管理组织OMG已批准将UML1.1作为面向对象技术的标准建模语言。7①将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。②以数据为中心,而不是基于对功能的分解③使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。缺点:较难掌握。优点:面向对象方法的特点8可视化开发技术及其特点可视化开发技术是随着图形用户界面的兴起而发展起来的,是通过事件驱动实现应用软件的工作。可视化开发技术的优点:①简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。②软件开发简单,易学、易上手。③专业或非专业人员都能参与软件开发活动。9⑶软件工程中的“五个面向”面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理。10面向流程的业务分析面向流程分析,就是面向流程的需求分析。在需求分析时,系统分析员要面向业务流、资金流、信息流。这“三个流”分析透了,才能建立好系统的业务模型和功能模型。这“三个流”,可以用“数据流”这一个流程来代替,或者说“三个流”是“数据流”在三个不同方向的投影。11面向数据的设计面向数据设计,就是面向元数据进行设计。系统设计采用面向数据的方法。设计的主要任务是建立系统的数据模型,包括概念数据模型CDM和物理数据模型PDM,以数据模型为支撑,去实现系统的业务模型和功能模型(包括性能和接口)。在管理软件中,数据设计主要指数据库设计。12面向对象实现面向对象实现,就是面向对象设计和编程。在多层结构的表示层和逻辑层上,设计和编程时,采用面向对象的方法。用构件化的设计方法实现业务模型和功能模型。只有对系统的三个模型(业务模型、功能模型、数据模型)吃透了,才能设计和编写出好的程序。面向对象实现,实质上是面向类实现,因为实例化的类称为对象。13面向功能测试测试的种类包括:单元测试、集成测试、Alpha测试、Beta测试等。测试内容包括:系统的功能、性能和接口等。面向功能测试大多采用黑盒测试。白盒测试只适合构件生产和核心代码的编程。14面向过程管理面向过程管理是指面向软件过程的生命周期各阶段进行管理和控制。软件产品质量的提高与改进,完全取决于软件过程的改善。无论是CMM、ISO9000、企业文化,都是通过对软件过程的管理来提高软件企业的素质。软件危机的出现正是由于忽视了软件中的过程管理。15⑷软件工程的最新发展动向①形式语言的研究②体系结构技术③质量保证④过程控制16思考题①主要的软件开发方法?②软件工程中的“五个面向”?