http://www.cky3.com http://www.cky3.com http://www.cgk3.com http://www.cgk3.com http://www.cmg4.com http://www.cmg4.com http://www.cqw0.com http://www.cqw0.com http://www.cfy3.com http://www.cfy3.com http://www.bhr4.com http://www.bhr4.com turemaker.com turemaker.com http://www.cdg6.com http://www.cdg6.com iphone4-bj.com iphone4-bj.com http://www.cgt1.com http://www.cgt1.com
亿皇
http://cgr3.com http://cky6.com http://www.cjd2.com http://cn-aupair.com http://cgb2.com http://cgy4.com http://ayylsp.com http://www.bhx1.com http://bhr9.com http://www.dasenf.com http://zw8000.com http://hslcsoft.com http://www.tousen-jp.com http://www.bmd0.com http://cfm9.com http://www.qdberry.com

      <kbd id='1n4l'></kbd><address id='nm4q'><style id='pvma'></style></address><button id='r6pk'></button>

          亿皇


          时间:$时间$    文章来源:亿皇    点击次数:19954    参与评论 70675人


          在20世纪的50年代初,程序设汁员的大多数时间都花费在纠卍软件中的错 误上。对于这种悄形的回应足建立子程序,使程序员能敢用已经编写并调试过 的程序段,从而改进程序员的生产肀。在20世纪50年代后期,手工编程已经变 得很不经济了(即使足在可蜇用子桿序的帮助下 >。因此,开始f内动程序设 计系统方曲的研究。内动程序设计允丨午程序员用高级诏言代码编写程序,然后 用其他程序将它们转换为二进制机器指令,所编写的这些程序人们更容易看僅。 这样,软件开发中的第一次横式转变就发生了。

          《THE》(D丨jkstra,丨968 >。这珐记栽采用层次结构的软忭系统设计的第-篇文献? 抽象层次(丨aycrs of ahs丨rac!丨on )这个短语就足来丹于此文献Dijks丨ra以&次 来绀织系统的设计,以便减少软件的赘体较杂性。虽然当时还没有用术语体系 结构(architecture)来描述软件设计.不过这锃定娃软件体系结构槪念的笫 次出现;1时川来描述软件设计中这个方曲的-个常见术语是大纲程序设汁

          1.2.2通用程序设计语亩

          本人认为,软件工枵划分可能涪鸷技术(数据库、.!ava)和问题域的M种 结合。当然,对个别技术、工具和方法的专门研究仍然会带来工程问题,会使 集成这些技术的系统复杂化。这正是软件体系结构设计师发挥作用的所在。可

          1.2J可霣用资源

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

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

          ?操作环境和平台(例如,操作系统、数据痄、应州服务器从

          ?可重用资源

          济/肴

          有经验的二进制编程人员不愿意改变他们的习惯,不愿意采用新的工作// 式并且抵制闩动程序设汁。但是,在丨ntcrnationa丨Business Machines (!BM) 公司为科学计算程序疰立了一个名为FORTRAN < FORmu丨a TKANs!a〖or)的自 动程序设计系统后,自动程序设计已经成了占支配地位的模式。自动稈汴设计 不仅提高^编程人员的生产率,而且还使程序可以在不同的硬件平台上移棺p 在自动程序设计前,将程序移椬到新硬件上盂要审新编写幣个秤序,这样做成 本很高,妨碍了硬件的销肖。在20世纪60年代中期,FORTRAN成了科学程卞 设计的主要语言。

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

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

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

          第/章

          有几个基本的软件.】:程技术,可衔助提岛软件的质M和成本介效性:

          1.2.4建模语言和表示法

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

          本章从简要讨论软件开发的演变开始,接着讨论构成软件工程学科的基本 工程技术。琺后,作为软件工程的补充学科探讨软件体系结构的技术。

          1.1软件开发的演变

          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)开始在文献中出现。

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

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

          1.2.4建模语言和表示法

          http://www.ckn9.com http://www.bkb5.com zmxqm.com sxjzylb.com zzwzhsw.com http://www.bkm6.com http://www.blj2.com http://www.bhw5.com http://www.ckl5.com http://www.bht3.com http://www.clr2.com zaozaogo.com http://www.bjz7.com http://www.clt9.com http://www.bkc6.com