QMP之后如何发展是我非常关心的问题。目前,QMP要好处也有毛病,好处是好歹也能用,功能还是挺多的,如果用户没有自己的特殊要求,也具有一定的容忍性的话,那咱们的东西也还是不错。
但我们都是爱浪漫的人,都是有追求的人,我们不能做吃山空呀。因此,我们需要分析QMP的优点和缺点,特别是要改进缺点,以使得QMP更加复合客户的要求。
那么,QMP到底应该怎么发展呢?三种选择:
1. 直接到新版本吧。这个版本根据我们获取的需求做重新的实现,满足用户对灵活性的要求:过程定制灵活性,界面定制灵活性以及数据定制的灵活性要求。满足公司的产品规划策略,满足企业按需选择等等要求。而上面说的这些要求:可以说是非常重要的非功能要求以及约束,会对整个软件系统的架构产生非常严重的影响。因此,该如何做,三思而行。
2. 维护两套版本的开发。一套人马专门做旧版本的维护,另外一套人马来考虑新版本的开发,新版本还必须要保证和旧版本之间的兼容关系。这个,不太现实。我们还没有力量,没有资金去做这个工作。
3. 改革旧版本。其实说,旧版本也是按旧不旧,一方面,旧版本还是需要继续添加新功能,力争把整个功能都给做出来。另外一方面,也需要对旧版本进行渐进改革。这里渐进改革的意思是:不对旧版本进行大手术,咱们好歹先做点小修小补,整理整理,重构重构,将以前没有划分清楚的地方划分清楚,将以前没有做好的东西做好。这个估计是最现实的方法,如果做好的话,对后续的版本开发也是相当有好处的。
根据一般的软件开发过程,总是经历从需求到架构设计,到详细设计,到编码,一直到测试,到发布的过程。那么,这里,我主要将渐进改革的步骤集中在我们研发团队可以控制的三个步骤:需求,架构设计,编码。
为什么要考虑需求这个方面?因为考虑到一个比较现实的情况:咱们的需求主要来自于市场调研、用户反馈以及项目组内部的需求。但是咱们一般收集功能需求比较多,重视程度高,但是对于非功能需求以及客户提出的约束条件,重视程度不是很够。这样,往往做出来的产品不能满足用户对于安全性,稳定性,健壮性以及持续可用性,集成性等需求。这些非功能需求以及约束条件对于我们后续的架构设计以及编码实现都是有非常大的影响的。如果前期这些需求没有收集上来,或者权衡不当,会造成软件项目的失败。
因此,第一个需要改进的地方在于需求收集和需求分析。
在架构设计上:我们产品有个特点,在于产品并没有一个清晰的实际架构设计。并不是说我们没有架构,我们还是遵循的J2EE三层架构以及MVC架构的嘛:),另外,我们还是有流程图嘛,那里头还是划分了系统的流程图嘛。OK。这些都是架构,但是没有真正能够导致项目开发实践的架构设计,这里也就是说的关于系统组件以及组件之间的交互接口,交互关系都没有描述。这个是我们缺乏的,要对产品进行渐进改革,好歹也把之前的架构设计给补全一下子吧。这个就是我们需要做的事情,尽力将系统现有的架构给描述出来。
是骡子是马拉出来溜溜,总不能老是待嫁闺中吧。ps:终于看到最早的软件架构设计文档了,按照《软件架构设计》书的说法,应该还主要是停留在高来高去的层面上。所以,组件之间的交互,这个构成架构的两大最主要特性之一,就随风消逝了。
在详细设计上:我们的项目当中缺少有效的详细设计文档。做维护的人以及后来需要做升级开发的人不能得到该模块有效的设计文档。要看设计,只能看页面跳转以及Struts-config文件了,造成了很多不必要的麻烦。如果现在没有的话,那么需要补全。如果现在没有确定的格式的话,那么需要确定。
在编码方面:冰冻三尺,非一日之寒呀。项目中的代码形形色色,林林总总。把代码全部扔掉,重新写过。这不是我们第三种方式采用的做法。就像治病一样,刚开始的时候不能下猛药,要先条理好病人的身体机能,然后再下补药。那么,对于代码来说也是这样。我们不能一上来就改变整个软件系统的架构,改变系统的开发技术和框架。我们首先要做的事情,就是将系统中不良的代码重构,将烂代码变成好代码,尽量去除系统中隐藏者的各种BUG,增强代码的可读性,可维护性,建立良好的代码结构,做出良好的代码设计。然后,我们再看是否需要做其它的改良。
总体来说:我认为,要对QMP进行渐进式改革,需要依次做到如下几点:
1. 在代码级上做代码重构。整理目前系统的架构设计,整理目前系统的详细设计,并成档。
2. 整理系统的需求,特别需要注意是否遗留了哪些非功能需求以及约束关系。同时,根据需求,编写用例实现,提取领域模型。
3. 如果可能的话,对系统进行实际的架构设计,描述系统组件、确定组件接口、明确组件之间的交互关系。对需要更改的模块进行更为合理的详细设计,更为合理的进行OO设计。形成基于领域模型的业务层。(这个是我们系统最宝贵的东西)
分享到:
相关推荐
"QMP32 MP3顺序调整" 提供了一种解决方案,帮助用户根据自己的喜好或者行车路线的需求来定制播放列表。这个工具可能包含了对MP3文件进行排序、编辑元数据以及创建播放列表的功能。下面我们将详细探讨这一主题。 ...
QMP6988 数据手册知识点总结 QMP6988 是一款高精度小型气压传感器,具有低电流消耗和高精度测量能力。下面是根据手册提炼出的知识点: 一、气压传感器概述 * 气压传感器是一种测量大气压力的设备,应用于各种场景...
《QMP与QEMU在虚拟化技术中的应用详解》 在IT行业中,虚拟化技术扮演着至关重要的角色,它能够使一台物理机器运行多个独立的操作系统实例,极大地提高了硬件资源的利用率。QMP(QEMU Monitor Protocol)和QEMU是...
这是一款mp3排序软件,可以随心所欲的调整MP3机内歌曲的播放顺序,使大家欣赏音乐时更加舒适。新版本改变了界面,重新设计了算法,整理速度超快,增加了各种排序方式,方便实用。附带了其他mp3工具(*Mp3(闪存)无法拔...
1.3 -cpu host -hda disk.img \ -net tap,ifname=tun0,script=no -net nic,vlan=0 -smp 2 -m 2048 \ -gdb tcp::1234 -vnc :0] -qmp unix:/tmp/qmp-sock,server,nowait 或通过提供以下配置文件[chardev "qmp"] ...
节点-qemu-qmp 用于连接到 QEMU 机器协议 (QMP) 的 Node.js 库 例子 var QMP = require ( 'qemu-qmp' ) ; var qmp = new QMP ( ) ; qmp . connect ( '/tmp/qmp-sock' , function ( err ) { if ( err ) throw err ...
批量调整mp3音量(QMP3Gain) 用来一次调整多个MP3音频文件的音量大小的工具 不管是自己製作的 MP3或是从网路下载,当混合在一起播放时,通常会碰到音量不一致的麻烦,若是将其烧成音乐光碟,也会是同样的状况。QMP3...
本文重点讨论了基于聚类技术的QMP(Quantitative Movement Pattern)模型的建立及其在知识发现中的应用。 首先,QMP模型的提出旨在解决传统关联规则在处理时间序列数据时存在的问题。传统的关联规则,如市场篮分析...
QMp3Tag能够编辑id3v1和id3v2 mp3标签。
python-qemu-qmp Qemu Monitor Protocol(QMP)的Python实现依存关系快速开始构建库,测试和CLI: make 尝试CLI: ./dist/build/cli/cli 安装: make install [DESTDIR=]
QMP1第一次迭代java-base-project 这是一个项目模板,旨在: Java 8。 :warning: 尽管该项目没有明确限制,但mvn verify命令不适用于Java的较新版本。 JUnit 5。 :warning: JUnit版本5是框架的最新版本,相对于...
QMPADM 使用 Qemu 机器协议 (QMP) 管理正在运行的 KVM 区域。 qmpadm连接到位于/zones/<zone>/root/tmp/vm.qmp下的 KVM 区域的 vm.qmp 套接字,并将消息/zones/<zone>/root/tmp/vm.qmp和传出该套接字。安装下载...
2. **无损处理**:与许多音频编辑工具不同,QMP3Gain在调整音量时不会对音频质量造成损失,因为它不涉及重新编码,而是直接修改文件的内部增益信息。 3. **批量处理**:用户可以一次性选择多个MP3文件或整个目录,...
从标签“U盘文件排序”和“歌曲排序”来看,这款软件的核心功能集中在对U盘内的MP3文件进行排序,无论是通过专辑、艺术家、发行日期还是自定义顺序,都可以满足用户的个性化需求。在日常生活中,我们常常需要将U盘...
Go-qemu go-qemu是Go软件包的集合,用于与正在运行的QEMU实例进行交互。 Apache 2.0许可。 如果您想讨论该项目, ... qmp :软件包qmp允许通过QEMU机器协议(QMP)与QEMU实例进行交互。 通常不被该存储库外部的使用
2. **文件命名规范**:保持一致的文件命名规则可以帮助软件更准确地分类。 3. **了解软件功能**:阅读软件的用户手册或在线帮助,熟悉其各项功能,以便充分利用。 4. **定期更新**:软件开发者会不断改进产品,因此...
知识点2:AL8807QLED驱动器的工作原理 * 步骤降压转换:AL8807Q采用步骤降压转换技术,能够将输入电压降低到输出电压,提高效率和稳定性。 * PWM调制:AL8807Q支持PWM调制,能够实现LED亮度的调节和控制。 * 输出...
MP3闪存伴侣是一款专为音乐爱好者设计的实用工具,主要功能是帮助用户对MP3文件进行有效的排序,以便在MP3播放设备或扩音器上实现理想的播放顺序。这款软件解决了传统方式下手动调整播放列表繁琐的问题,使得管理...
2. **快速搜索**:内置强大的搜索功能,用户可以通过关键词快速定位到想要的歌曲,无需逐个文件浏览。 3. **批量重命名**:对于文件名不规范或者混乱的MP3文件,MP3伴侣可以批量进行重命名,使其符合统一格式,便于...
【专题资料】QMP7.51R02业主房屋验收确认表是房地产开发商与购房者在房屋交付过程中使用的重要文档,用于确保房屋的质量符合国家建筑规范和购房合同中的约定。这份文档详细列出了验收的各项标准,帮助业主全面检查...