gshmtz.com gshmtz.com yaobangcy.com yaobangcy.com mysytle.com mysytle.com http://www.blw0.com http://www.blw0.com eat13.com eat13.com http://www.bln4.com http://www.bln4.com http://www.cfh7.com http://www.cfh7.com http://www.cks2.com http://www.cks2.com http://www.cqr2.com http://www.cqr2.com http://www.cdw4.com http://www.cdw4.com
美娱彩票平台
flowisepump.com zuobiaohb.com http://www.bjx5.com http://www.ckn9.com http://www.clt9.com zjwangzu.com http://www.clf2.com xuhuixing.com 93462mn.com http://www.bjg0.com cxlongteng.com cxwwxy.com http://www.chz0.com http://www.chf7.com http://www.bkd9.com http://www.cjk0.com

      <kbd id='huxr'></kbd><address id='devi'><style id='7otv'></style></address><button id='i9tx'></button>

          美娱彩票平台


          时间:$时间$    文章来源:美娱彩票平台    点击次数:32073    参与评论 86481人


          在20世纪60年代后期,人们已经淸楚地知道,软件开发与物理结构的建造 不一样:不能通过简单地雇用更多的编程人员来加快一个滞后的项目(Brooks, 19乃)。软件已经变成了许多系统的一个关键组件,而且由于太复杂,不一定 能按计划或质量进行开发。这引起金融和公共安全方面的关注。这种状况发栈 成了所谓的软件危机(software crisis),为应对这种悄况,软件开发闭体创立 了软件工程(software engineering)这门学科。它要求软件制造业述立相传统 的用于丄程部门的理论基础和规程之上。

          一般来说,每隔I0年软件开发领域在软件设计模式方面都要经历一次转变。 随着问题和技术越来越复杂,设计方法和工具必须有所发展,软件开发大约诞 生于丨949年,当时创造了第一台存储程序计算机,剑桥EDSAC。程序最初是 作为二进机器指令建立的。这种程序设计方法很慢也很困难,因为人不容易记 住长长的复杂的二进制串。当时为设计程序构思f—种容易阅读的简写方式。 最初,程序设计简写方式所依輓的概念是让一个程序设计员设计程序,另一个

          1.2.2通用程序设计语亩

          笫二次模式转变发生在20世纪70年代前半期.那时,结构设计和软件幵发 模切已经取得f进展。它们基于更为有机的发展方法,有别于硬件「.程的基f 淨布的方法,软件设计的定坫研究已经开始,但从未在主流行业中发展起来, 部分原闪足山于软件系统的阂有特件所决定的。这一时期的研究人员开始将粞 力集中在软件设计上,H的是解决幵发复杂软件系统的问题。这个工作假设. 软件歼发中的软件设计是一项独立于软件实现的活动,它需要自己的二具、技 术和违模语言。

          ?可在编译时链接到某个程序或在运行时加载和绑定的二进制代码“啤” (如 socket库)。

          术语工程(engineering)在应用于软件时,并不总是完仝恰3的。本人认 为,软件作为一个专业来说,其范围太宽了。软件开发涉及许多子学科这些 子学科包括诸如数据库设计和实现、结构S询语言(Structured Query Language,SQL)、Java、C++程序设计、可扩展样式表语言转换(eX丨cnsihle Stylesheet Language Transformations,XSLT )编码等专门研究9 这些专业甚至 还可以史为详细地划分。就俅电子和机械工程学科中龟々家那样,这些技术中 的每一种技术都滿要专家。这些领域的每一种技术都可以进一步专收化。丨1前, 我们认为软件开发是一个印一的工程学科。实际上,它炝儿个相关的学科、、想 像一下给予XSLT的组件开发人员非常淸楚的规格说明,这呰规格说明必须与 给定的转换或样式表一致,其中包括良好定义的输入和输出。该XSLT设计者 可利用现有的工具和方法生成一个样式表,有可能的话,茧用现冇XSLT库的 组件。这要假定我们能够提供良好定义的规格说明。

          济/肴

          库组件时,程序员利用数据定义语a (Data Definmon Languages,D丨儿)科 SQL来实现数据存储和访问方案。SQL是专门用于关系数椐库领域的。专用语 言提崧了牛产率.它允许开发人M用特定技术的袖象概念(押解起来史简中? 思考问题.而不坫用适合于所有绢丨题的通用进萏来思考问题如果-个程 序员不得不去理解怎样将数据存储到文件中以及文件怎样索引,则问肢将会变 得更复杂。当然,专州语H也有丹己的复杂性..业界通过违立备效使用特定技 术的指导准则和税式来解决这个问题。在关系数据库中,可迮立范式理论来活 助程序员设计具冇一定质6的数据库。其他夺用语言的例子存沾如AcUvc Server Pages ( ASP )、Java Server Pages ( JSP )、Hyperlext Preprocessor ( PUP )等Web 表示技术,诸如超文木标记语言(HyperText Markup Language, HTML).可扩 展标记语言(eXtensib丨e Markup Language, XML)和可扩肢样式表迅g转换 (eX丨ensib丨e Sty丨esheet Language Transformations,XSLT )等数据表示和转换沿言

          ?可在编译时链接到某个程序或在运行时加载和绑定的二进制代码“啤” (如 socket库)。

          当然,货权衡查找、’事挥.集成可束用代码的时间.所以要求可电用代码要存 易找到、快速掌握、集成简申,代码审用在下列情况下很有用:

          将软ft体系结构设计师视为一种软件工程师?他不必在所冇特定软件丁程领域 内都是专家。这个软件专家是体系结构设汁方而的专家,他了解各种技术,足 以把这些技水集成到…个复杂间题的解决方案中。

          为y冇效地琅用组件,必须按照绀件的抽象槪念来表示解决方案很多时 候,某个特定的抽象槪念(如关系实体)不合要求,就橡自然语^不具有表达 某些概念的词汇一样。与创造新的诃汇一样,我们必须创造新的技术a向向讨 象的数据库就楚这种创造的一个例子,当面向对象的程序设计开始取代现打结 构化语言(如C和Pascal )时,在程序设计语n的信息表示和数据序的信息表 示之间就产生了语义间隙许多文章和书供将其称为对象关系映射问挫\ I丨的, 我们已经看到了帮助克脤这个问题的对象关系映射模式方面的文审:

          软件体系结构是软件工程学科的内然扩展。在早期文献中,软件体系结构 被简单地称为大型栈序设计。软件体系结构提出了把一个软件系统分解为组件 (component)和连接器(connector)的观点。组件封装某组扣关的功能;连接 器实现组件之间的实时交互。系统设计根据其组件和连接器的构成实现一定的 质S。可以在一个名为体系结构描述的文档中规定软件系统的体系结构。软件 体系结构设计并非与现有软件设丨丨方法完全不同。它只是州附加的系统观点补 充了它们,这些观点从未由渚如曲向对象设计这样的传统方法处理过。我们将 会认识到,软件体系结构适合于较大的企业体系结构,这种体系结构还包含业 务体系结构、信怠技术体系结构和数据体系结构。

          2

          逹模语言和设计衣示法是作为提高软件设计质诂的方法出现的据说,贫 有表现力的建模表示法可提萵设计软件的能力,这与数学使我们能推理出史复 杂的东曲非常相像,如果没冇数学这样一种语言,我们足不能推埋出那畔复杂 的东西的。例如,实体关系阁(ERD)是使软件工程师能设汁和交流衣达数据 的模费的一种强有力的建模语言和表示法r没有这样一种语言,设计倌息系统 是非常困难的,而且如果没有一种表示法来衣示关系图,4別人交流这咚设汁 也很困难。语言的形式化使不同的人能够以种格确的方式埋解-个揆甩。

          根据Pah丨(Pah丨,丨996>的观点,工程师的主要任务“足将他们的科学和 工程知识应用于技术问勉的解决方案,然后在需求和约束条件的范围内,根据 素材、技术、经济、法律、环境及与人有关的条件优化这些方案。”我们可以 扩充这个定义来说明软件工程师的主要任务。非正式地说,软件L程师的主抝 仟务适将他们的逻辑和程序设计知识应用于技术和务问题的解决方案。然后, 他们在滞求和约束条件的范围内,根据逻辑(软件工程家材)、软件技术和经 济、法徉、环境、安全等条件优化这些解决方案。

          可电用m件,特别是满足大『"】题空间的可里用绀件大大提高了生产宇。想 像一下,你不得不编写自己的中间件、砬用服务器、数据库以建立一个分布式 业务应川系统。所有这些可审用的技术都包含比中个应用系统史多的功能绀作, 共至建立某个设用系统所莴的一个功能了集也是一项令人生畏的耗时的任务,

          C++和Java这样的强有力的通用程序设计语言提供^建立许多复杂问韪解 决方案的能力.它们允许稃序设计R将精力集中于手头的问题.而不用拘心H. 体的硬件功能。通用的面向对象的语言并不能独自解决复杂的问题;它们必顼 与指导原则和设计橡式一起使用。诸如God Class (Riel,丨996)这种类.它实 际上只是结构化子稈序的一个大集合,这种类足不经常吞到的。

          在20世纪60年代,软件开发商和适用于特定市场(如银行和保险)的现成 程序的数H大大增加。术语软件(software)作为一种实体己经得到了广泛的 承认。软件独立于硬件进行交易和出饩.这表示已经饮脱了早期将软件作为硬 件平台的一部分免费发放的惯例。利用抽象程序设丨丨接U隐藏操作系统的内部 细节提离了编程人员的生产率,使程序在不同硬件平台之间的移植史为容场。 程序可以使用逻辑文件而不是磁带或磁盘上的二进制位的物理存储单元。而旦 正是在这一时期,进行了广泛的程序设计语言研究,这种研究一灯持续到20吡 纪70年代。

          第/章

          代妈重用缩短了实现某咚功能所潘的时间,能提布程序设丨丨员的生产韦,

          1.1软件开发的演变

          http://www.bjy3.com http://www.ckt0.com http://www.bkp7.com http://www.cgf6.com http://www.czn9.com http://www.ckm7.com http://www.cfm7.com http://www.bht3.com http://www.bjq3.com http://www.ckp1.com http://www.cjk5.com http://www.cdy7.com youkolife.com tfpajx.com http://www.czq1.com