Posted on 2006-02-24 11:08
锋出磨砺 阅读(1544)
评论(0) 编辑 收藏 所属分类:
杂谈
软件设计时往往最多考虑的是最基本的实现需求。后来,随着设计工具和思想的发展,
我们考虑到了可扩展,可伸缩,可维护,可管理,可靠,可使用,安全等等。这些因素
是设计过程中的非功能性的设计,因为每个产品的背景不一样,所以,我们往往只是借助
于成熟的架构(如mvc),产品提供的性能(容器的事务,安全等能力)等,简单的实现
了一些解决非功能性需求。从来没有很仔细的考虑过自己的产品中如何来进行这些需求的
设计。
根据经验,下面简单讨论一下。
一个软件产品所运行的环境有二,一是硬件环境,二是软件环境(操作系统,数据库系统,中间件)。
那么我们就从这两个方面入手,进行一下非功能需求设计的讨论。
1,硬件产品的资料统计,和运行平台的界定。对潜在用户的运行平台进行大范围的统计。并
最终确定出共性。
2,从性能角度,考虑硬件的横向(和软件的集群有关)和纵向升级。来解决产品的性能(扩展和伸缩)问题。
3,硬件产品的安全来解决部分产品的安全问题
4,操作系统的支持和兼容
5,中间件(消息,安全,事务)的支持和兼容,同时考虑集群问题。
6,数据库系统的兼容以及利用数据库的性能解决部分问题