程序员第六期:全程模之软件设计指南 -管理类软件示例 4.docVIP

程序员第六期:全程模之软件设计指南 -管理类软件示例 4.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序员第六期:全程模之软件设计指南 -管理类软件示例 4

PAGE  PAGE 6 《程序员》第六期 全程建模之软件设计指南——管理类软件示例 撰稿 高 展 摘要:本文在上期需求分析基础上,阐述如何使用“全程建模”方法进行软件的总体设计与详细设计,力求全面利用业务分析、需求定义的成果,推导软件设计方案,大幅度减少设计差错,全面提高软件设计自动化水平。 一 软件设计,烫手的山芋 1 现象 自从人类步入工业文明以来,无论哪一个行业都躲不开产品设计必要环节。可笑的是,中国软件开发在方面无论从观念上还是在行动上落后了230年。1772年,著名社会学家亚当.斯密在《国富论》(the wealth of the nations)中指出,分工是工业文明高度发达的根本原因。以建筑业为例,天才建筑大师贝律明设计的北京香山饭店,堪称凝固的音乐,可是泥瓦匠活还是由普普通通的民工组成的工程队来干,建筑业的成功充分地体现了各种资源的有效组合的结果。反观软件行业,没人专做需求分析,没人专做软件设计,没人专做软件测试,……,几乎成为软件公司上上下下的“共识”,大家有一千个理由专注于编程。后果是软件开发强烈依赖发挥(实际上是发散),质量得不到有效的控制,各种资源极大浪费。 如果说软件公司一点设计工作没做是有点冤枉:一张粗糙的软件系统框架,一幅马马虎虎的接口关系图,寥寥几页的程序流程图。究竟谁在糊弄谁,谁也不想搞明白,反正最后是费了牛劲才能把软件拼凑出来,能否蒙混过关只有天晓得。 2 原因 我们可以以下三个方面分析为什么没人愿意踏踏实实坐下来把软件设计做好。首先从社会大环境来看,中国工业化进程缓慢,封建意识浓厚,从国民整体意识上就缺乏分工协作的基本常识;其次从个体小环境来看,中国的高等教育做的是知识灌输的工作,缺乏职业教育精神,没有工程化教育的目标,培养的人才往往是四体不勤,五谷不分;最后从具体运作来看,软件公司或者搭草台班子唱戏应付差事,或者占山为王打打杀杀不亦乐乎,很难静下心来考虑设计软件这种“苦累”差事。 3 出路 全程建模提倡软件设计由需求分析推导而来,而用户对软件的需求则紧密结合业务活动本身???这一点深刻反映了开发管理软件的根本理念:源于管理、用于管理。全程一体化建模的原理可以总结成下面的镜子模型: 图  SEQ 图 \* ARABIC 1镜子模型 在这种全程镜像一体化建模思想指导下,软件设计自动化变得切实可行。从实际效果来看,对定制软件来说,直接根据实际企业模型得到的总体设计自动化程度为90%,详细设计为70%,对产品软件来说,首先要假设一个标准的企业模型,在此基础上,总体设计自动化程度将能达到80%,详细设计将能达到60%。另外,毫不夸张地讲,无论多么大软件系统,如果不包括可行性论证过程,需求定义只需几个小时就可以填空方式完成。 二 软件设计的要点 1 主要内容 从开发过程来看,软件设计包括总体设计、详细设计这两大部份,其中总体设计主要包括系统结构设计、系统流程设计、系统接口设计、全局数据结构设计、硬件配置设计、集成测试设计,详细设计包括模块设计、本地数据结构设计、报表设计、屏幕设计。 2 模块化是设计的根本原则 软件工程的核心思想是模块化。实际上,模块化的方法是所有工程领域的基本方法,如机械工程的零部件、建筑工程的砖瓦和预制件,其优势显而易见:一方面,模块化设计降低了系统的复杂性,便于修改,另一方面,推动了系统各个部分的并行开发,提高生产效率。 模块独立性是模块化的基石,独立化程度越高,模块化的优势就越发明显。模块独立性可以从两个角度来测量:模块间的耦合性、模块中的内聚性。一般说来,松耦合、强内聚是模块独立程度高的标志。耦合性由小到大分为七级:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合;内聚性由强到弱的级别也为七级:功能内聚、信息内聚、通信内聚、过程内聚、逻辑内聚、巧合内聚。限于篇幅,有关模块独立性的详细论述请参见有关软件工程教材。 3 照猫画虎使设计水到渠成 经验告诉我们,如果只从软件角度实现模块化,难度是很大的。幸运的是管理制度运行良好的企业为我们提供了很好的设计素材:组织结构的分工合理体现了模块的独立性,业务流程的通畅体现了模块便于协调使用,业务单证的完整清晰体现模块间信息交流准确无误。 在此基础上,全程镜像一体化建模使设计方案一步到位,水到渠成:组织结构的分工合理保证了软件模块的独立性,业务流程的通畅保证了软件模块便于协调使用,业务单证的完整清晰保证了软件模块间数据通信准确无误。 三 总体设计 1 系统级结构设计 在本刊上期需求分析基础上,我们只保留结构树节点盒子的下半部分,所谓软件结构就“自动推导”出来了,如图2所示。一般来讲,这种推导出来的系统结构可以作为设计的第一个版本,对于定制软件而言,软件结构的变化体现为增加纯计算机处理过程

文档评论(0)

zizhi3755771 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档