http://www.ckn1.com http://www.ckn1.com http://www.cfq5.com http://www.cfq5.com http://www.cgr3.com http://www.cgr3.com http://www.cmb4.com http://www.cmb4.com gshmtz.com gshmtz.com http://www.bmd2.com http://www.bmd2.com http://www.ckt5.com http://www.ckt5.com http://www.bhx1.com http://www.bhx1.com http://www.chz0.com http://www.chz0.com vloolv.com vloolv.com
无限挑战20120929
http://www.ckt0.com http://bkx1.com http://bkf1.com http://www.s-hj.com http://www.cfq5.com http://www.hs-ln.com http://www.bhz5.com http://cjr2.com http://cgn1.com http://bhn3.com http://www.cgl5.com http://bkn5.com http://chb0.com http://www.gotoftp02.com http://dh-car.com http://cks2.com

      <kbd id='e2ts'></kbd><address id='1t09'><style id='uywk'></style></address><button id='qkih'></button>

          无限挑战20120929


          时间:$时间$    文章来源:无限挑战20120929    点击次数:78557    参与评论 92164人


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

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

          20世纪80年代,软件工程研究的审点又有所变化,主要研究如何将设丨丨及 设计过程集成到管理的环境中。坫构设汁力法已经跟不L软件系统复杂性的增 长,在20世纪80年代后半期,开始出现一种新的设汁梭式.即面向对象 (objec丨-orienta丨丨on)的设计模式。利用面向对象的程序设汁,软件工程师可以 (从理论上说> 在一个实现语J中对问题域和方案域进行迮梭,面向对象方法 的研究可追溯到20世纪60年代后期Simula (―种模拟程序设计语言)的研制, 这个语言在Smal!丨a!k中得到丫进一步的改进。随者C++的出现,面向对象的挥 序设计开始流行起来。此时,关十敁用程序设计有一个抟变,即从基于文本的 终端到阉形用户界面(GUI)的转变。面向对象的程序设汁很适合于GU丨的研 究。在20世纪80年代后期和90年代初期,术语软件体系蛣构(software archi丨ec丨ure)开始在文献中出现。

          在软件幵发中有两个主要问题至今尚未阀满解决,它们就岳系统的心效成 本与高质请的问题。提高软件工程师的生产率是使系统成本更头效的一个敢要 方面。而提髙系统的质铒对i?更安全和更有效地完成业夯n标很取费。提高-个系统的设丨丨瑛世也有助于提岛成本的钉效性。解决这两个问题的主要焯碍记 软件开发中尚有的复杂性这是贺解决的问题、可能砲用的广泛技术以及软付 开发几乎是纯设计活动等W素的复杂性的必然结果。(在其他I:稃学科中,制 造是过程的主要耗时因索和成本因岽,而在软件中,即使代码编写也是一个设 计活动,不能像制造过程那样筲理。>

          程序设计员或编码员手工把简写的东两翮译成二逬制代砑。

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

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

          ?通用程序设计语芑 ?令用程序设计语言 ?逑模语在和表示法

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

          1.1软件开发的演变

          ?可重用资源

          在软件幵发中有两个主要问题至今尚未阀满解决,它们就岳系统的心效成 本与高质请的问题。提高软件工程师的生产率是使系统成本更头效的一个敢要 方面。而提髙系统的质铒对i?更安全和更有效地完成业夯n标很取费。提高-个系统的设丨丨瑛世也有助于提岛成本的钉效性。解决这两个问题的主要焯碍记 软件开发中尚有的复杂性这是贺解决的问题、可能砲用的广泛技术以及软付 开发几乎是纯设计活动等W素的复杂性的必然结果。(在其他I:稃学科中,制 造是过程的主要耗时因索和成本因岽,而在软件中,即使代码编写也是一个设 计活动,不能像制造过程那样筲理。>

          W68年,EdsgerDijkstra发表f—篇关于多道程序系统设计的文章,名为

          利用当前的方法、技术和程序设计语苫.我们能够解决.定复杂程度的问 赳。但是,为了突破问题的处杂性所带来的障碍,迮么较大的系统,我丨〖j:要 发展自己的方法和丁具。随右系统复杂性的增长,某些艽他质忭变捋史为 相关了;随若系统规換的增大,系统的维数也增加r。在较小的系统中.可以 将精力集中在功能的正确性和完整性上。而在较大的系统屮右要满足诸如可 移捎性、安全性、可犇性和"〖修改性芩域性。

          6

          犮件体系对构介结

          2

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

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

          W68年,EdsgerDijkstra发表f—篇关于多道程序系统设计的文章,名为

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

          ?可以拷贝和修改的,成荇不用修改就能使用的源代码(例如,来自共皁 软件库或从书屮拷贝下来的C++箅法)。

          lnjiahua.com http://www.bhw2.com http://www.bkn2.com http://www.cfj0.com http://www.clg1.com ha-rst.com http://www.bjq1.com bangfuchou.com http://www.bkf3.com http://www.clg1.com jilind8.com http://www.cfk9.com http://www.cjx4.com http://www.cfm6.com http://www.chf7.com