5.面向对象需求分析(OOA)
面向对象这个概念很简单但也很复杂我在这里不做深入探讨。我将从实际出发来和大家一起探讨下在实际开发中我们应该怎么做。
OOA的精髓在于世间万物均为对象采用OOA方法在整个过程中包括2个工作任务:建立一个反应问题域静态关系的概念模型,就是我们通常所说的类图;另一个反应系统行为的动态模型,即用例模型那么我们在实际开发中到底怎么做呢?
1)建立域模型
寻找类:在寻找类时有多种方法典型的是根据需求文档用“名词动词法”来寻找,找出备选类后再从中寻找出真正的类。(注意在用此方法时切记不要咬文嚼字专牛角尖在这里花费很长的时间)
确定类之间的关联:这个过程是迭代的我们需要理清楚这些类之间的关系如关联、继承、聚合等然后通过UML记录下来。类之间的关系不是一下子就能确定下来的是要慢慢完善的为类添加职责:这里就可以理解成为类添加所需要的属性和方法。
域模型的详细度:这里不做太多要求可以写的很详细也可以写的简单写,可以把握好一个原则:只要能有利于团队更好的开发就是好模型。
2)建立用例模型
什么是用例:
用例实例是在系统中执行的一系列动作,这些动作将生成对特定参与者可见的价值结果。(用例实例就是常说的“使用场景“)一个用例定义一组用例实例。
识别参与者:
用例主要是为了让客户直观的理解需求那么这里参与者是必不可少的这样才能形象的勾画出系统某个特定场景下的流程。
注意参与者不仅可以是人也可以是其他的事物如(其他系统、硬件设备、时钟等等)
合并需求获得的用例
绘制用例图(如果对用例图不清楚请参考UML相关文章)
细化用例描述
用例描述可以包括以下几个部分:
用例名称
简要说明
事件流:是该用例要完成的工作步骤
非功能需求
前置条件
后置条件
扩展点
优先级别
3)要想做好需求分析光上面的用例是不够的还有写建模技术也要有如:协作图、顺序图和状态图
协作图:是一种用以显示对象如何被协调在一起执行用例的图,用来识别协作完成给定业务的对象。
顺序图:是一种用以显示用例对象之间消息顺序的图,他与协作图表达的信息是一样的知识显示的方式有差别。
顺序图以图形化的方式强调消息的顺序,而非协作对象间的顺序。他和协作图统称为交互图。
状态图:是一种用以显示对象在生命周期和转换期情况的图