1.1、什么是分析和设计
分析(analysis):强调的是对问题和需求的调查研究,而不是解决方案,即应该如何使用系统,系统应该具有哪些功能。
设计(design):强调的是满足需求的概念上的解决方案(在软件和硬件方面),而不是其实现。最终,分析可以实现,而实现则表达了真实和完整的设计。
分析和设计一词最好加以限制,如面向对象的设计、数据库设计。
有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)。
1.2、什么是面向对象的分析和设计
在面向对象分析(OOA)过程中,强调的是在问题领域内发现和描述对象(或概念)。如,明确一些概念,这些概念也许对应着一些对象。
在面向对象设计(OOD)过程中,强调的是定义软件对象以及它们如何协作以实现需求。如,明确类的属性和方法。
1.3、分析和设计的大概步骤
1)、定义用例
需求分析可能包括人们如何使用应用的情节或场景,这些情节或场景可以被编写成用例。
2)、定义领域模型
OOA关注从对象的角度创建领域描述。OOA需要鉴别重要的概念、属性和关联。
OOA的结果可以表示为领域模型(domain model),在领域模型中展示重要的领域概念或对象。
需要注意的是:领域模型并不是对软件对象的描述,它是真实世界领域中的概念和想像可视化。因此也被称为概念对象模型。
3)分配对象职责并绘制交互图
OOD关注软件对象的定义----他们的职责和协作。常用UML顺序图来描述。
4)定义设计类图
除了在交互图中显示对象协作的动态视图外,还可以用设计类图来有效的表示类定义的静态视图。这样可以描述类的属性和方法。
1.4、什么是UML
统一建模语言(UML)是描述、构造和文档化系统制品的可视化语言。
UML是一个庞大的语法体系,UML定义了各种UML简档(UML profile),这些简档专用于某些常用主题领域的表示法子集,例如对EJB使用EJB简档。
1.5 应用UML的三种方式
1)、UML作为草图----用于探讨问题或解决方案空间的复杂部分。
2)、UML作为蓝图----相对详细的设计图,用于:逆向工程或代码生成(前向工程)。
3)、UML作为编程语言----用UML完成软件系统可执行规格说明,代码可能被自动生成。
如果不具备良好的OO设计和编程技能,那么即使使用UML,也只能画出拙劣的设计。
敏捷建模(agile modeling)强调了UML作为草图的方式,这也是使用UML的普通方式,而且通常对时间投入具有高回报。
1.5 应用UML的三种透视图
1)、概念透视图:用图来描述现实世界或关注领域中的事物。
2)、规格说明(软件)透视图:用图来描述软件抽象物或具有规格说明和接口的构建,但并不约定特定的实现。
3)、实现(软件)透视图:用图来描述特定技术(如Java)中的软件实现。
1.6 不同透视图中“类”的含义
以上三种透视图中“类”的含义分别为:
1)、概念类----现实世界中的概念或事物。
2)、软件类----软件构建在规格说明或实现透视图中的类。
3)、实现图----特定OO语言中类。
1.7 可视化建模的优点
可视化的工作方式更容易理解和开发大脑,快速掌握符号、单元及关系。
图可以帮助我们更为遍历的观察全景,发现软件元素或分析之间的联系,同时允许我们忽略和隐藏旁枝末节。这是UML或其他图形化语言的本质价值。
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/97908,如需转载请自行联系原作者