三分钟也谈“系统设计”

news/2024/7/16 9:03:38 标签: 设计模式, UML, 企业应用, 网络应用, Web
今天,一位部门同事在上午的tea time时间,突然问我:“能否告诉我,如何学习做系统设计呢?对一个新系统,如何从一开始的想法变成一套具有可执行性的设计方案?”

面对这么一个复杂的而庞大的问题,我以为,任何人的第一感觉是,“这个不是一下子能说清的事!”,至少在那一时刻,我的脑海里蹦出的第一念头就是这个。当时,我没有用我的第一感觉回答他。一是因为,问我问题的这位同事,虽然刚毕业,入司不到半年,但他是一个非常认真上进的人,他问我的态度也是那么诚恳的希望有一个正式的回答;二是因为,这个问题是一个对大多新人来说,都挺有意义的提问,但我自己似乎从没有认真的去思考过。因此,我沉默了.......

再回想了自己历年的项目经历后,我跟他说,以我个人的感受,进行系统设计大体分以下几个阶段:
1.用户需求分析
分析用户的初始需求,弄清楚,并尽可能的挖掘用户没说明白的,真实的潜在需求。

2.将用户需求转化成软件需求
用户需求是我们现实世界的客观需求。而程序设计很重要的过程就是使用计算机上能操作的行为模式来描述用户需求的实现,比如:用户说要收邮件,变成软件需求,就是要设计什么样的操作按钮,什么样的展示窗体,是web形式的,还是客户端形式的。收邮件是用户需求,而使用web应用的操作来收邮件就是软件需求了。

3.在软件需求的基础上运用你学到的各种架构和模式
比如:开发传统的MIS系统,采用web应用形式,就可以使用人见人知的MVC模型;而如果开发的是网络协议通讯平台,就可能要参考IOCP模型,等等。。

我的同事又问,那设计是否一定要使用UML呢?

我对他的建议是,UML是一门对设计模型描述用的语言,目标是将你的设计思想使用统一的模式固化下来,以便在团队协作中,你的设计能有一致的理解和继承,但UML本身并不能帮助你实现设计。对于刚开始学习系统设计的人,你完全可以抛开UML,用你自己最自由的方式去开拓你的思维,哪怕是一把白板笔,在白板上乱涂乱画,没人看得懂,都没有关系。如果你的一开始就学习UML,那么你的心思将会重于如何使用UML的符号,而不是如何设计好系统。就好比一个开始学习英语的人用英语作文,他的重点会集中在英语的语法上,而不是文章的构思上。

交流的时间很短,只有3分钟。我的那位同事听了后若有所思,而对于我自己,却有一种“温故而知新”的痛快感受。

http://www.niftyadmin.cn/n/763162.html

相关文章

Graceful Java Programming 优雅Java编程 之Socket Client

老久没有动手写Socket程序了,今天应同事的要求上了一段程序。这是一段很简单与C编写的服务端通讯的java客户端,咋一看上去,没有任何问题。[b]貌似没有问题的程序[/b]public static String sendSynMsg(String ipAddr, byte[] datas) throws Ex…

分享开源表达式解析器IK-Expression2.0

[sizexx-large][b][aligncenter]IKExpressionV2.0简易表达式解析器使用说明[/align][/b][/size][sizelarge][b]目录[/b][/size] [list] [*][sizelarge]1. IK表达式介绍(IK Expression Introduction)[/size] [*][sizelarge]2. 快速入门(Quick …

久违的令人欣喜的一天

2009年2月23日,这是一个平凡的不能再平凡的日子,但对鄙人而言又是一个难得欣喜的日子。这一天里,去年一年的工作成绩得到了领导的肯定;这一天里,发布了自己开发的第二个开源项目;这一天里,又一个…

项目经验分享:Hibernate与充血模型的“冲突”

“冲突”问题发生在将旧有项目进行充血模型改造的过程。我们给原有Bean的set方法中加入了业务逻辑(如上下文状态改变,事件触发等)。接下来程序的执行出问题了,症状五花八门但常常都是不可重现的问题。通过好一番的代码走查&#x…

巧用数据库事务拦截器解决流程内外的事务一致性问题

在使用流程引擎,如JBPM开发应用的时候,经常会遇见以下情况,即在流程引擎中要嵌入很多的Event Handler或者Action Handler来处理业务相关的事务,这其中就包括了写业务数据表等。 我们知道,在JBPM对于Event Handler或者A…

讨论:关于OSGi Based 应用服务器

目前本人所知的只有IBM ,BEA等有商用版的OSGi Based 应用服务器,谁有的,Free一下啊 :D 传说Jboss也在进行式中,不清楚何时能见到社区版的 8) 。要是web应用能搭载在OSGi框架上,那真是HotFix easy咯!&#x…

发布IK-Expression升级V2.0.1

Version2.0.1的变更: [list1] [*]添加了对表达式的折行书写的支持(即对表达式中出现CRLF的支持),方便于用户编写逻辑复杂的长表达式,增强表达式可阅读性。 [/list][urlhttp://linliangyi2007.iteye.com/blog/337069]详…

我是谁

[sizelarge][list] [*]刚毕业的时候,感觉自己从软件到硬体、从程序设计到PhotoShop啥都会一些,在同学中算个“小牛”吧; [*]后来进了公司,做了一段时间,得到领导认可,他对我说,你的职位叫“开发…