一、软件开发方法
常见的软件开发方法有面向过程的开发方法,面向数据结构的开发方法和面向对象的开发方法。其中面向过程的开发方法也称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化方法强调过程抽象和功能模块化。它一般利用图形表达用户需求,使用的手段有数据流图、数据字典、结构化语言、判定表及判定树等。面向数据结构的开发方法适合于求解算法依赖于问题描述的数据结构之类的情况。这种方法最适合在完成了软件结构设计之后,用它来设计每个模块的处理过程。它根据问题的数据结构定义一组映射,把问题的数据结构转换为问题求解的程序结构。面向对象开发方法思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块话的,可重用的,维护性好的软件,同时限定软件的复杂性和降低开发维护费用。它是通过面向对象的分析(OOA)、面向对象的设计(OOD)和面向对象的程序设计(OOP)等过程,将现实世界的问题空间平滑地过渡到软件空间的一种软件开发过程。目前,典型的面向对象的开发方法是UML和统一开发过程(RUP)。
二、软件生命周期
软件生命周期是指软件从立项、功能确定、设计,到开发成功投入使用,并在使用过程中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。
阶段 |
研究问题 |
给出的标准和文档 |
问题定义 |
问题是什么 |
目标和规模报告书 |
可行性研究 |
有可行的方法吗 |
高层逻辑模型、数据流图、成本效益分析 |
需求分析 |
系统做什么 |
逻辑模型、数据流图、数据字典、算法描述 |
总体设计 |
如何解决问题 |
系统流程图、系统结构层次图 |
详细设计 |
怎样具体实现 |
编码规格说明、HIPO图或PDL |
编码和单元测试 |
给出正确的程序模块 |
源程序清单、单元测试方案和结果 |
综合测试 |
给出符合要求的软件 |
综合测试方案和结果、一直的软件配置 |
维护 |
持久地满足用户需要 |
完整地维护记录、文档、软件新版本 |
三、软件开发模型
软件开发模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。分为:瀑布模型、原型模型、螺旋模型、增量模型和喷泉(迭代)模型。
四、面向对象方法的特点
面向对象的方法学可以概括为下列方程:OO=Object+Classes+Inheritance+Communication with Messages 也就是说面向对象就是既使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。
五、面向对象分析(OOA)
面向对象分析的关键,是识别出问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。分析就是抽取和整理用户需求并建立问题域精确模型的过程。基本步骤有 问题域分析、发现和定义对象和类、识别对象的外部联系、建立系统的静态结构模型和建立系统的动态行为模型。
六、面向对象设计(OOD)
面向对象设计是把分析阶段的需求转变成符合成本和质量要求的、抽象的系统实现方案过程。细分为系统设计和对象设计。设计准则包括 模块化、抽象、信息隐藏、弱耦合、强内聚和可重用。设计过程包括 设计对象和类、设计系统结构、设计问题域子系统、设计人-机交互子系统、设计任务管理子系统、设计数据管理子系统和设计优化。
七、面向对象方法和工具
面向对象方法主要有 Booch、Jacobson、Coad-Yourdon、James Rumbauth开发方法。已发展成当前最流行的系统分析方法和软件开发技术,并且已经逐步统一、融合形成UML语言。
参考文献:
[1] 唐学忠等著. UML面向对象分析与建模. 电子工业出版社. 2008
[2] 蔡敏等著. UML基础与ROSE建模教程. 人民邮电出版社. 2006
[3] Carlo Ghezzi等著. 施平安译. 软件工程基础(第2版) 清华大学出版社. 2003
[4] 参考网站: