目前位置: VCer资源中心 >>> VCer文章 >>> 软件工程

[本帖已阅读3202次 分值100 回复0次] 张贴资源 发回信箱 控制面板

白乔原创:实战软件DIY[4]

提供者:bluejoe 张贴时间:2004-04-25 11:40:47.0 出处:vcer.net 作者:不祥

白乔原创:实战软件DIY[4](2004-04-25 11:40:47.0)


白乔


 
级别: VCer师长
头衔: VCer创始人

经验: 21060
作品: 511
分会: 华北分会
注册: 2003-12-01 09:20:32.0
登录: 2008-10-03 08:16:54.0

3. 实战策略

确定了FlashNow!的功能需求之后,接下来就是系统设计的工作。很简单,“怎样解决用户需求所提出的问题”,“在多种解决方案中,哪一种方案最合适”,如此如此,就是具体的系统设计的过程。系统设计一般分成概要设计和详细设计,大抵是“逐步求精”的思路。

如何设计我们的FlashNow!呢?不要慌,我们从系统流程设计、系统模块设计和系统类设计三个方面入手。

3.1 系统流程设计

FlashNow!包括两个重要的流程,用户可以直接启动FlashNow!,或者从一个.swf文件关联过去;另一种方式,用户可以从文件夹的Shell菜单中选取“启动FlashNow!动画浏览器(F)”来启动FlashNow!,对应于不同的系统入口,FlashNow!的系统流程设计如下:

 

流程一(浏览视图):

 

 流程二(查看视图):

 

流程很简单,但愿软件实现起来也同样的简单。

3.2 系统模块设计

总体来说FlashNow!可以分成以下几大模块:

²        Flash动画播放控制模块

包括动画播放(Play)、停止(Stop)、跳转(Seek)、拖放(Drag)、放大(ZoomIn)、缩小(ZoomOut)、全屏显示(FullScreen)模块;包括动画循环播放、画面质量和动画背景色设置等模块;

²        Explorer文件目录树模块

包括Explorer文件目录树(ShellTree)的显示、操作模块;包括跳转上级目录、前进、后退等模块;

²        Explorer文件列表模块

包括Explorer文件列表(ShellList)的显示、操作模块;包括文件删除、更名、预览模块;包括文件信息显示、排序模块;

²        Flash动画文件操作模块

包括动画文件顺序播放、文件跳转、本地/远程文件保存、文件格式转换模块;

²        ShockwaveFlash控件自动检测安装模块

包括ShockwaveFlash控件自动检测模块、安装模块;

²        系统设置模块

包括用户系统设置、系统关闭和启动时自动保存和载入系统配置模块;

这六大模块具有交错的部分,例如Explorer文件目录树模块和Explorer文件列表模块,当用户选取目录树其中的文件夹时,该文件夹下的文件列表也要相应地显示出来。

3.3 系统类设计

类设计是更具体的面对对象(OO)的系统设计。

对应于系统流程与系统模块,FlashNow!系统类设计列表如下:

²        应用类

CFlashNowApp:FlashNow!应用类

²        框架窗口类

CBrowserFrame:浏览视图框架类

CViewerFrame:查看视图框架类

CBrowserFolder:Explorer文件目录树视图类

CBrowserList:Explorer文件列表视图类

CFormBar:地址栏类

CLogoBar:广告条类

CViewerClient:查看视图类

CDropDownToolBar:支持下拉菜单的工具栏类

CViewerToolBar:动画播放控制工具栏类

CNavigatorToolBar:Explorer文件目录树操作工具栏类

CProgressStatusBar:显示动画装载进度的状态栏类

²        CShell*类:Explorer实现类

CShell:Shell文件基础类

CShellTree:Shell文件目录树类

CShellList:Shell文件列表类

CShellTreeItemData:Shell文件目录树项数据类

CShellListItemData :Shell文件列表项数据类

²        应用数据类

CHistory:Explorer历史类

CHistoryRecord :Explorer历史记录类

CStringQueue:字符串队列类

CUserData:系统配置数据类;

²        Flash动画操作类

CShockwaveFlash:ShockwaveFlash控件窗口类

CFlashWnd:ShockwaveFlash控件窗口扩展类

CFlashOCX:ShockwaveFlash控件自动检测安装类

²        对话框类

C2HtmlDlg:HTML文件输出对话框类

CAboutDlg:About对话框类

CFileOpenDlg:文件打开对话框类(支持动画预览)

CPropertyDlg:动画属性对话框类

CSetupDlg:系统设置对话框类

以上枚举了FlashNow!的所有类,完整的类设计还应该还包括类的属性方法的原型定义,限于文章篇幅,在此略去;对于其他项目,可能的话,还要进行系统的数据库设计,FlashNow!没有这方面的需求,亦略去。

系统流程设计、系统模块设计和系统类设计只是系统设计的部分内容,以上的内容也仅仅属于系统概要设计的层次,系统详细设计还需要对这些系统流程、系统模块和系统类设计进行更进一步的细化。

系统设计的辅助工具很多,常用工具有Microsoft Visio、Sybase PowerDesigner和Rational Rose等等,图6为使用Microsoft Visio进行系统设计的工作界面。

 

 

图7 使用Microsoft Visio进行系统设计

 

值得一提的是,系统设计主要还是大脑的活动,辅助工具毕竟只是工具,好的设计方案即便使用Microsoft Word——或者更简单些——圆珠笔和一些小纸片(但要保证能正确地表达你的思路)都能奏效。笔者在此不再展开,我们继续以下的实战过程。

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1076417661417.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

1082687209616[385,308字节]

得意,我用他的代码;

自豪,他用我的代码!

[回复该贴] [加入个人书签]
[连载系列]

[1] 白乔原创:实战软件DIY
[2] 白乔原创:实战软件DIY[2]
[3] 白乔原创:实战软件DIY[3]
[4] 白乔原创:实战软件DIY[4]
[5] 白乔原创:实战软件DIY[5]
[6] 白乔原创:实战软件DIY[6]

[投票结果]

A: 评分 10 100% (2 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 0% (0 票)