By 高焕堂 2010/10/29
需求分析:对映到系统行为(Behavior)设计
1. 前言
Use Case上一篇文章里,提到从Use Case连结到Layout画面的设计,也连结到UI(如Activity或View子类)事件处理类别的设计上。由于UI事件的处理工作分散于Android应用框架的基类别(Super class)和应用子类别(Subclass)上,所以会触发应用框架(Framework)与应用程序(Application)之间的讯息传递(或函数呼叫)。
在Framework-based平台上开发应用软件时,呈现框架与应用程序之间的沟通是一项重要事情,因为这是框架开发者与应用软件开发者之间的分工界面,也是框架与应用程序两个模块之间的API。凸显这个API是非常重要的,可以在类别图上呈现之,也可以在顺序图(Sequence Diagram)里呈现之。顾名思义,顺序图可以呈现详细的讯息传递顺序;而类别图则能呈现模块与接口之关系,也就是呈现系统的架构性意义,而不是执行(Execution)的行为意义。
2. 表达需求的Use Case图
一般的Use Case是用来表达User的需求。例如,一般Use Case图如下:
这表达了User在Layout_01画面上,按下”Play”按钮(Button),就可以播放MP3歌曲了。
3. 框架与应用程序的事件传递情形
依循上图的需求,设计师规划出事件讯息的处理类别,如下:
4. 以Sequence图呈现行为设计
在应用程序启动时,Android框架就送出onCreate()给ac01子类别。这子类别就准备Layout_01画面,并呼叫Android框架的setContentView()去要求框架显示出UI画面。当User在Layout_01画面上,按下”Play”按钮时,Android框架就送出onClick()给ac01子类别。这子类别就呼叫MediaPlayer的play()函数,在幕后进行播放MP3音乐的工作。[歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]
于是,可以拿UML的Sequence图来呈现上述的设计思维。由于每位设计师想要凸显的焦点会有些不同,所以会出的Sequence图的造型,也可能有些细微的差异。
Sequence图的造形(一)
特别凸显:User的事件是由Android框架先接到,然后才传送到ac01子类别;而且由Android框架来显示出Layout画面,如下图:
Sequence图的造形(二)
不凸显由Android框架来显示出Layout画面,如下图:
Sequence图的造形(三)
不凸显由Android框架先接收及显示出Layout画面,如下图:
Sequence图的造形(四)
凸显团队分工:Android框架和MediaPlayer类别都是Google团队所开发的。而且呈现出:从应用程序看Android框架的观点,如下图:
Sequence图的造形(五)
呈现出:从Android框架看应用程序的观点,如下图:
Sequence图的造形(六)
隐藏Android框架,只呈现应用程序,如下图:
5. 结语
上一篇是以状态机图来呈现「控制角度」的系统行为;而本篇则以Sequence图来呈现「执行角度」的系统行为。◆
[Go Back]