软件设计与体系结构 第一章 软件工程与软件设计_第1页
软件设计与体系结构 第一章 软件工程与软件设计_第2页
软件设计与体系结构 第一章 软件工程与软件设计_第3页
软件设计与体系结构 第一章 软件工程与软件设计_第4页
软件设计与体系结构 第一章 软件工程与软件设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计与体系结构概述(ɡàishù)共三十页前言(qiányán)书上说的太文艺,我们说通俗的。为什么要学习《软件工程与体系结构》?你有没有试过自己开发小app代码一多就乱了?有没有试过修改一个简单的功能(gōngnéng),发现该功能(gōngnéng)的一个字段引用甚多,改起来麻烦,且容易漏改?又有没有试过和人合作编程序,搞笑了,完全看不懂小伙伴写得是啥啊!那么《软件工程与体系结构》这门课就能帮到你,连998都不用!共三十页前言(qiányán)共三十页前言(qiányán)共三十页PART01PART02软件(ruǎnjiàn)工程与软件(ruǎnjiàn)危机软件体系结构的定义(dìngyì)主要内容PART03软件体系结构的发展历程PART04软件体系结构的意义PART05软件开发过程模型与软件设计共三十页软件工程(ruǎnjiànɡōnɡchénɡ)(SoftwareEngineering)软件工程(SoftwareEngineering):是将系统的、规范的、可度量的方法应用于软件的开发、运行(yùnxíng)和维护过程,以及对上述方法的研究。一般认为,软件工程由方法、工具和过程三个要素组成。计算机软件是与计算机系统操作有关的程序、规程、规则及任何与之有关的文档及数据。共三十页软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可复用性、可适应性、可移植性和可追踪性并满足用户需求(xūqiú)的软件产品。在软件开发过程中必须遵循下列软件工程原则:抽象、信息隐藏、模块化、局部化、一致性、完全性和可验证性。共三十页软件(ruǎnjiàn)危机(SoftwareCrisis)在计算机软件开发和维护过程中所遇到(yùdào)的一系列严重问题。软件危机的表现:软件成本日益增加:开发、部署于应用成本高开发进度难以控制:不能按期完成软件质量差:错误率高,不能满足用户的需求,没有生命力软件维护困难:成本高,维护效果不理想,可能带来潜在的错误共三十页软件(ruǎnjiàn)危机(SoftwareCrisis)软件危机的原因:(1)用户对软件需求的描述不精确。(2)软件开发人员对用户需求的理解与用户期望有差异(3)多数管理人员缺乏(quēfá)开发大型软件系统的经验。(4)软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支。(5)缺乏有力的方法学和工具方面的支持。(6)软件产品的特殊性和人类智力的局限性。共三十页软件体系结构(SoftwareArchitecture)一般描述软件体系结构(SoftwareArchitecture)最初被称为“大型软件设计”,主要对大规模的复杂软件系统进行总体的结构设计和规格说明。软件体系结构是软件工程学的自然延伸。在软件需求与软件设计之间的一座桥梁,着重解决软件系统的结构和需求向实现平坦过渡(guòdù)的问题。共三十页软件体系结构(SoftwareArchitecture)定义(dìngyì)软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。软件体系结构主要由构成系统的元素的描述、这些元素的相互作用关系、指导元素集成的模式以及这些模式的约束组成。共三十页软件体系结构(SoftwareArchitecture)定义Garlan&Shaw模型:软件体系结构(SA)={构件(Component),连接件(Connector),约束(Constraint)}。构件是组成系统的基本元素。它可以是一组代码,如程序的模块;也可以是一个独立的软件,如数据库服务器。连接件把不同的构件连接起来形成(xíngchéng)软件系统。它可以是过程调用、管道、远程方法调用等等。约束一般为构件连接时的规则、条件或方式。共三十页软件体系结构(SoftwareArchitecture)Garlan&Perry的定义:软件体系结构是一个软件系统各个构件(gòujiàn)的结构、它们的相互关系,以及进行软件系统设计的原则和方针。在此定义中重点强调了设计原则,即如何进行系统设计和组装构件。共三十页软件体系结构(SoftwareArchitecture)定义IEEE610.12-1990中的定义:软件体系结构(SA)={构件(Component),连接件(Connector),环境(Environment),原理(Principle)}。软件体系结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一软件系统的组织结构以及(yǐjí)指导上述内容设计和演化的原理。共三十页软件体系结构(SoftwareArchitecture)补充在基于构件和体系结构的软件开发方法下,程序开发模式也相应地发生(fāshēng)了变化:软件开发不再是“算法+数据结构”,而是“构件开发+基于体系结构的构件组装”。软件体系结构不是整个系统的描述,而仅仅是系统内的软件和构建软件所需环境的描述。同时,体系结构描述中不应该包含诸如算法流程、数据表格式等等底层的实现细节。共三十页术语(shùyǔ)软件体系结构设计(SoftwareArchitecting)是指建立(jiànlì)软件体系结构的过程。软件体系结构设计师/架构师(SoftwareArchitect)指的是进行软件体系结构设计,并获得软件体系结构的专业人员。软件体系结构描述(SADescription)是指通过形式化和标准化的描述工具将设计得到的软件体系结构转化为文档产品过程。软件体系结构风格(SAStyle)是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。共三十页概念(gàiniàn)软件重用(Reuse)软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过程。可重用的元素包括(bāokuò)程序代码、测试用例、设计文档、需求分析文档甚至领域知识。可重用的元素越大,我们就说重用的粒度(Granularity)越大。软件重用是软件产业工业化、工程化的重要手段。软件重用对提高生产率,降低开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。共三十页概念(gàiniàn)构件(Component)构件是语义完整、语法正确和有重用价值的单位(dānwèi)软件。一般来说,任何在系统运行过程中承担一定功能、发挥一定作用的软件体都可以看作是构件,譬如设备驱动程序、函数库、文件、各种服务器软件等等。构件与外界的若干个交互点称作“端口”或“接口”。通过端口可以发现构件提供的功能、可以描述的数据以及访问它们的消息传递方式。可以通过形式化的规格说明方式描述构件,也可以用一般的描述语言描述构件。共三十页概念(gàiniàn)基于构件(gòujiàn)的软件开发模型共三十页概念(gàiniàn)连接件(Connector)连接件是用来建立构件之间的交互以及支配这些交互的软件体系结构模块(mókuài)。从一般意义上来看,连接件是实现构件之间联系的特殊机制或特殊构件。构件之间的联系包括:消息或信号的传递功能或方法的请求或调用数据的传送和转换构件之间的同步或依赖关系连接件的接口由一组角色组成,连接件的每一个角色定义了该连接件表示的交互参与者。共三十页概念(gàiniàn)约束(Constraint)约束是构件连接时的规则,如构件是否正确连接,接口是否匹配,连接件形成的通信是否有效等等。约束以特定的结构(jiégòu)反映了软件体系结构(jiégòu)的基本准则。共三十页概念(gàiniàn)构件(gòujiàn)、连接件和约束之间的关系共三十页发展(fāzhǎn)历程“无体系结构”设计阶段:以汇编语言(huìbiānyǔyán)进行小规模应用程序开发。萌芽阶段:出现了程序结构设计主题,以控制流图和数据流图构成软件结构。初期阶段:出现了从不同侧面描述系统的结构模型,以UML为典型代表。高级阶段:该阶段以Kruchten提出的“4+1”模型为标志,以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统的软件结构的界限。共三十页软件体系结构的意义(yìyì)软件体系结构是风险承担者进行交流的手段:系统的各个风险承担者(客户、项目管理人员、设计开发人员、测试人员、集成人员)把软件体系结构作为各自(gèzì)关心的不同方面的描述,并以此作为相互沟通,达成共识的基础。共三十页软件体系结构的意义(yìyì)软件体系结构是早期设计决策的体现:明确了对系统实现的约束条件决定了开发和维护(wéihù)组织的结构制约着系统的质量属性通过研究软件体系结构可以预测软件的质量使推理和控制软件更新更加有效有助于循序渐进的原型设计可以作为培训的基础共三十页软件体系结构的意义(yìyì)软件体系结构是可传递(chuándì)和可重用的模型:软件体系结构级的重用意味着体系结构的设计决策能够在具有相似需求的多个系统中发生影响,这比代码级的重用有更大的好处。通过软件体系结构的抽象,可以使设计者能够对一些经过实践证明是非常有效的体系结构构件进行重用,从而提高设计的效率和可靠性。共三十页主要研究(yánjiū)内容软件体系结构理论模型的研究:如何表示体系结构的问题软件体系结构描述的研究:规范化的体系结构描述语言(ADL)体系结构设计研究:体系结构设计方法、体系结构风格以及计算机辅助实现等方面(fāngmiàn)的研究体系结构分析与验证基于体系结构的软件开发过程的研究研究特定领域的体系结构框架共三十页软件体系(tǐxì)设计概述软件体系结构设计(shèjì)包括早期的设计(shèjì)决定,体现了系统的全局结构,对于整个系统的质量有着决定性的影响。为了确保各种质量因素,正确地对体系结构进行抽象很有必要。成功的体系结构设计是开发一个成功的软件系统的决定性因素之一。成功的体系结构有如下特征:可伸缩、简单、关系清楚明了、职责分布明确、高效益和技术平衡。共三十页a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论