- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构的艺术-read
软件体系结构介绍
软件开发的演变
1. 结构化程序设计方法(70年代)
提出了层次化、模块化的结构化程序设计思想,以解决大型程序开发问题;
2. 面向对象的程序设计模式(80年代出现,90年代初、中期应用达到高潮)
提出了封装、隐藏、抽象和继承等机制和思想,较好解决了信息隐藏、代码重用等问题;
OO建模语言:将设计设计过程集成到管理环境中,软件工程师利用OO建模语言可以对问题和方案域建模;
“软件体系结构”术语,开始在文献中出现和应用,但还没有规范和方法;
3. 面向对象技术扩充与发展(90年代中期以后)
基于接口的组件编程技术/分布式程序设计模型;
用例分析的设计技术出现和使用;
许多建模表示方法、建模语言出现,并向OO建模方向发展,典型的有:
Grady Booch, OO AD(1994,发展自1991):提出一种面向设计和构造的方法;重点:迭代的软件开发方法和软件体系结构,很好支持工程密集型系统的表示;
James Runbaugh及其合作者:OMT(对象建模技术),在工作复杂算法和数据结构的语境中应用
Ivar Jacobson,OOSE:A Use Case Driven Approach(1994),提出把OO技术应用于业务重建和工业化软件开发领域(被誉为用例之父),该方法能很好支持业务工程和需求分析表示;
这3人后来都加入了Rational公司,他们的方法逐步朝统一方向发展,形成UML(这3人因三剑客(the three Amigos) 。
★ UML结合了许多方法学的建模概念和表示法,三剑客统一UML的目标是:
使用OO范型和概念对系统(不仅仅是软件)建模;
使概念上和可执行的制品相结合;
解决复杂的关键系统的可执行问题;
使人和机器都能使用该语言;
★ UML发展简史
1996.6 UML 0.9版(三剑客)
1996.10 UML 0.91版(三剑客)
1997.1,Rational成立UML伙伴组织,发布UML1.0版并提交OMG【以响应OMG OOAT Group:建立OO AD工具标准的请求建议(RFP),该建议的目的是希望统一定义OO技术语义和元模型】
1997. 11,OMG加入UML伙伴组织,共同发布UML1.1版本,并将其采纳为标准;
1998年后,UML1.2/1.3版本
4. UML后,软件体系结构为中心的观点被提升到方法学的层次,
并进一步完善了体系结构的概念
★ 软件体系结构
是(软件开发)方法学和模型的综合;
是有助于控制软件开发复杂性的一个方法和技术的集合体;
是软件工程学的自然扩展;
提出了组件和连接器的观点;
并非与现有的软件设计方法完全不同,只是用附加的系统观点补充了它们
适合于较大型的企业/业务/信息/数据体系结构
可以在一个名为“体系结构描述”的文档中规定软件系统的体系结构
★ 软件系统设计根据其组件和连接器的构成,实现一定的质量;
1.2软件工程基础
1. 概述
★ 软件工程是软件开发技术和问题域的某种结合;
★ 在软件工程对具体技术、工具和方法的大量应用会带来问题,会使集成这些技术的系统复杂化,使质量成本难以控制;
较小系统――可以只集中或关注:功能的正确性和完整性;
较大系统――还需满足:可移植性、安全性、可靠性和可维护性;
利用现有的软件工程技术,方法和程序设计语言、工具,能解决一定程度复杂性问题,但为了 突破(问题复杂性带来的)障碍/建立较大的系统,还需更好的系统方法和工具。
两种常用的软件工程划分方法:
按技术路线或水平分层划分工作:
将系统分解为“UI或表示”、“中间层”和“数据层或后端”;
采用垂直分层划分:每个开发人员负责一组功能需求,并且从前到后地实现。
但是如果没有有效的体系结构,无论哪种工程专业划分也无助于产生高质量的系统
★ 软件开发中的两个未圆满解决的问题
系统成本的有效性和质量的有效性
提高生产率,提高设计质量,有助于提高成本的有效性
质量的有效性有时对更安全和更有效完成业务目标更重要
解决的主要障碍:软件开发中固有的复杂性
有几个基本的软件工程技术,可帮助提高软件的质量和成本的有效性;
可重用资源(代码重用(组件重用)/通用程序设计语言/专用程序设计语言/建模语言和表示法
2. 专用程序设计语言
对具体问题,比通用程序设计语言好用, 如RDB:SQL;
Web设计:ASP,JSP,PHP, HTML(显示表示), XML(数据表示), XSLT(数据转换)
3. 建模语言和表示法
作为提供软件设计质量的方法出现,提高设计软件能力和质量
ERD:软件工程师设计和交流表达数据的模型,已是一种很好的建模语言和表示法;
语言的形式化使不同人能够以精确的方式理解一个模型;
UML是建模表示法的一个丰富
您可能关注的文档
最近下载
- 自动控制原理(第七版)课后习题答案解析.pdf
- 事件与概率(古典概率、条件概率、全概率公式、贝叶斯公式)小题综合解析- 十年(2015-2024)高考真题数学分项汇编(全国).pdf VIP
- (2025)小学生诗词大会竞赛试题及标准答案.docx VIP
- 临建工程施工组织设计.docx VIP
- 儿童吉兰-巴雷综合征谱系疾病与抗糖脂抗体相关性研究进展 .pdf VIP
- 2025年钛铁项目建设总纲及方案.docx
- AB-罗克韦尔PowerFlex755变频器操作说明.pdf
- 幼儿园小班科学活动《颜色变变变》含课件.pptx VIP
- 2025诗词大会精选100题题库(含答案).docx VIP
- 小学诗词大会精选100题题库(含答案).docx VIP
文档评论(0)