SA00 - 软件架构 - 课程描述
- 格式:pdf
- 大小:726.49 KB
- 文档页数:26
软件架构师培训大纲1. 企业软件构架简介•Zachman架构框架•Meta Group/Open Group/Gartner企业架构•IBM企业架构/Microsoft架构框架•美国国防部架构框架(DODAF )•美国联邦政府架构框架(FEA)•集成化结构框架(IAF)•企业业务架构及描述语言(EBA-ML)•企业架构与分区迭代•企业架构的不同视图•从企业架构到软件架构2. 架构方法论1)管理架构视图•软件架构规范的制订o需求规范o设计规范o编码规范o测试规范•软件架构文档管理与配置管理o软件配置管理o软件架构模版设计o软件架构文档管理o设置软件架构基线•软件架构风险管理o软件架构风险管理模型o如何识别和规避软件架构的风险o软件架构风险管理与控制•如何描述和评估软件架构质量o软件的质量建模o软件架构设计的技术性评估o软件架构设计的经济性评估o评估软件架构质量的价值o怎样改变软件架构的质量o如何评价软件架构2)业务架构视图•业务现状及评估o业务战略定位o业务现状调研及评估o信息化现状调研及评估•领域(业务)分析,获得领域架构o领域规范获取o领域建模方法o使用DSL定义领域语言•需求分析及需求建模,获得业务架构o需求获取o建立需求模型o需求评审o业务规则和业务流程描述o使用OCL对业务定义业务规则o利用26种业务模式进行业务建模3)技术架构视图•构建信息化总体建设蓝图o信息化总体架构设计(MTSS)o应用系统规划(REJ)o基础设施规划(MSA)o信息安全规划(MSA)o IT管控规划•软件架构的多维度o面向对象(OOAD)▪面向对象本质论▪面向对象的软件架构设计▪设计模式精要▪设计模式原则▪GOF设计模式实现方法及其扩展▪设计模式的整合与拆分▪设计模式与软件架构▪如何应用设计模式来实现好的结构▪如何使测试改进架构o面向方面(AOSD)▪同时使用用例和方面▪使用用例捕获关注▪保持关注点的分离▪对用例片和方面建模▪保持对等用例的分离▪保持扩展用例的分离▪保持基础结构能力的分离▪保持平台具体细节的分离o面向服务(SOA)▪服务的设计与原则▪BPM与SOA▪面向服务架构的消息模式▪ESB实现模型▪评估基于服务的集成技术的过程和准则▪服务模式与反模式▪Web服务的体系结构▪改善web服务的协同工作能力▪基于SOA的软件构件的复用模式▪基于SOA的软件构件的管理模式•软件架构模式o软件架构的设计原则o软件架构的设计模式o软件架构的组织方式o软件架构的行为方式3. 企业信息化架构设计实现•定义企业关键策略:o企业业务发展策略o信息技术策略o企业IT策略•规划企业信息化架构(IT planning)o基于MTSS/REJ/MSA实现企业信息化架构规划o定义企业内/外集成模型o规划企业应用系统及设计应用系统集成o剖析动态架构(DYA)模型•实现企业集成框架o数据集成、应用集成、服务集成等设计思路o EAI参考模型与实现o IBM SOA实现企业集成框架o Microsoft SOA实践4. 软件架构设计实现•软件架构与软件过程o统一软件过程(RUP)与MSFo XP/Agileo实现CMMI的软件过程o选择软件过程与架构•软件架构设计总体流程o软件架构设计的输入o软件架构设计的风险管理o软件架构分析▪全局分析与局部分析▪选取关键用例o软件架构设计:▪软件架构选择▪软件架构实现的科学与艺术▪全局设计与局部设计▪基于UML实现架构设计流程o软件架构设计的平台及互操作性问题考虑▪不同级别的架构设计与平台选择▪.NET/J2EE架构比较▪互操作性问题考虑: SOA还是点到点的互操作性▪互操作性安全考虑•WSE与JWSDP•Web Logic/Websphere与.NET Framework/WSE协同o分层软件架构设计▪用户界面/表现层设计•微软用户界面设计精要•实现Web Form和Win Form统一的几种方法及相应设计模式•基于MVC模式的表现层设计•CUI(Common User Interface)组件设计•UIP(用户界面处理组件)设计与用户界面框架•WPF与三维用户界面设计考虑•基于B/S和C/S的用户界面集成的设计思想•Smart Client设计•动态界面设计•表现层数据缓存与验证的设计•表现层安全控制与通讯设计▪业务逻辑层/ 中间层设计•把业务规则融合到业务逻辑层组件•基于服务的中间层设计•基于SOA/BPM的业务工作流设计•工作流的选择与设计•业务逻辑层安全设计•跨组件及跨不同分层的安全设计•业务逻辑层事务设计思想•组件依赖的解耦设计•多种服务模式设计▪持久层/数据层设计•关键抽象与实体组件•数据访问层组件设计•不同设计模式在持久层设计中的应用•多种数据访问模型的考虑(实时数据访问、离线数据访问、通用数据访问对象模型等)•ORM/Hibernate/CMP设计思想•XML与业务实体•通过动态实体支持动态表单•连接对象管理▪数据库设计•数据库设计原则•数据库性能规划与海量数据存储设计•由实体模型实现数据库模型•数据库设计与XML设计整合•数据库封装业务逻辑设计▪基础框架设计考虑•软件架构与服务模式•SSO(Single Sign-on)设计思想★基于异构平台的SSO★基于B/S和C/S融合的SSO•企业服务总线(ESB)设计•消息管理服务设计•配置管理服务设计•缓存思想与设计5.商用软件/开源架构分析•SAP与Axapta•Biztalk与Tuxedo•Team Foundation Server与Sharepoint Portal•Spring/JBoss•Hibernate/NHibernate•NUnit/JUnit6.软件架构师素养•沟通技巧与表达力提升•团队技巧提升7.软件架构设计案例分析•政府行业大型业务应用项目设计分析•大型企业应用集成项目系统架构分析•大型商业软件系统架构分析。
《软件系统架构》理论课教学大纲一、课程基本信息二、课程目标与任务软件系统架构是计算机科学与技术专业的选修课程,主要强调及兼顾理论体系的体系性及技术题材的实用性。
将全部课程时间讲解实际案例分析,案例代表性强、大型案例丰富,多为实践一线的实际案例。
在完成本课程后,使学生达到:(1)掌握软件架构的原理, 方法及技巧;(2)了解常见的架构模式以及它们在企业应用;(3)能够对软件架构进行分析,撰写软件架构文档;(4)在实际工作中胜任软件设计师及初级软件架构师的工作。
三、课程主要内容、要求及学时分配四、主要教学组织形式与方法手段注重理论联系实际,培养学生正确的思维方式和动手能力,培养学生的分析和解决问题的能力,激发学生对软件系统架构学习和研究的兴趣。
重点讲解背景知识,引导为主,涉及具体模型结构,合理安排实验教学作品的内容,激发学生对本课程的学习兴趣。
采用多媒体教学手段、任务驱动式教学方法教学。
五、课程考核和成绩评定《软件系统架构》实验课教学大纲一、课程基本信息二、课程目标与任务《软件系统架构》的实验是本课程教学的极其重要的实践环节。
通过实验使学生加深对理论知识和基本原理的理解;更重要的是训练了针对实际问题进行软件开发的能力。
通过《软件系统架构》实验设计,使学生熟悉软件设计工作规范,掌握常见的体系结构风格和体系结构设计方法,培养科学作风,真正具备利用计算机解决实际问题的能力。
课程以软件设计知识为主线,包括:软件设计的要素、软件设计的支持与评价、软件设计方法、体系结构设计、详细设计、基于中间件的设计、基于复用的设计和设计演化。
该课程强调案例教学,培养学生综合运用设计知识为实际问题设计和选择解决方案的能力。
三、实验教学的组织和安排(见附表)1.实验项目的设置、要求软件系统架构实验课与理论课同步进行,每个实验学生都必须提前预习。
实验课以学生自己动手为主,教师辅助指导。
软件系统架构实验课的类型有:验证性、综合性实验,通过实验课的训练,学生应达到下列要求:①理解软件设计的要素,掌握常用的软件设计方法、技术与手段,能够为复杂系统创建成功的设计方案,能够完成复杂系统的设计的演化;②理解软件设计要素、过程和方法,能够识别复杂应用的关键设计要素,并进行分析、折中和设计解决;③理解体系结构的概念,掌握常见的体系结构风格和体系结构设计方法,能够为简单的应用完成体系结构设计;④掌握详细设计常用的方法、技术与手段,能够为应用系统的复杂组件完成详细设计;⑤理解软件设计的建模与描述方法,能够正确的描述复杂系统的设计方案,能够为简单系统的设计方案进行准确的评价。
《软件体系结构》教学大纲一、课程概述《软件体系结构》是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。
体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为相同设计的抽象,为实现框架和构件的重用、基于体系结构的软件开发提供了有力的支持。
作为计算机科学与技术专业软件工程方向的重要专业课程,本课程主要系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展。
既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。
本课程的先修课程为“软件工程”。
二、课程目标1.知道《软件体系结构》这门学科的性质、地位、研究范围、学科进展和未来方向等。
2.理解该门学科的主要概念、基本原理和策略等。
3.掌握软件体系结构的建模方法、描述方法,通过对不同软件体系结构风格的掌握,能够采用正确的基于体系结构的软件开发。
4.能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。
三、课程内容与教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。
掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。
学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。
教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。
本标准中打“*”号的内容可作为自学,教师可根据实际情况确定要求或不布置要求。
教学内容及教学要求表四、课程实施《软件体系结构》是计算机软件专业类必选课。
一般情况下周课时为3课时,共54课时。
软件架构详解(附图)软件架构(software architecture)软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件架构描述的对象是直接构成系统的抽象组件。
各个组件之间的连接则明确和相对细致地描述组件之间的通讯。
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。
软件体系结构是构建计算机软件实践的基础。
与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。
从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。
一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。
软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。
架构是在组件,彼此间和与环境间的关系,引导设计发展原则中体现的系统的基本结构。
软件体系结构是构建计算机软件实践的基础。
与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。
软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。
特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。
软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。
组件的外部可见属性是指其他组件对该组件所做的假设。
在“软件构架简介”中,David GArlan和 Mary Shaw认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。
目录1.软件架构设计的阶段和大致流程 (2)2.软件架构预备阶段的主要内容 (2)3.概念架构阶段的主要内容(一个决定四个选择) (2)3.1概念架构设计方法: (3)3.2概念架构设计的核心:(p69) (3)4.细化架构的主要内容 (4)4.1五视图法: (4)5.确定关键功能规则P50: (5)6.总体架构规划P59: (5)7.子模块级或者是子问题级P63 (5)8.分层技术(如何分P93。
、处理好接口P95) (5)9.软件设计步骤P175 (5)9.1静态设计P176 (5)9.2模块间通信及耦合设计P179 (5)9.3动态设计P181 (5)9.4模块调整P182 (5)1 / 51.软件架构设计的阶段和大致流程软件架构设计分为三个阶段:(1)预备架构设计阶段(2)概念架构设计阶段(3)细化架构设计阶段大致流程为:先通过需求分析和领域建模,完成需求成果;再通过确定关键需求和概念架构设计完成高层架构成果;最后为细化架构设计和架构验证,完成架构设计规格。
2.软件架构预备阶段的主要内容在预备架构设计阶段,主要内容有需求结构化、分析约束影响、确定关键质量、确定关键功能;主要工作内容为:在架构设计之初,就全盘考虑架构设计要重点支持的关键质量目标,在第一时间就判断这些关键质量之间有没有冲突关系,并制定权衡取舍策略。
同时,要明确需求,架构源自需求,可以采用需求矩阵完成需求分析;确定关键功能时,要区分核心功能:主要是指业务层的接口要反应这些功能,必做功能:在用户愿景中的主要特征,高风险功能和独特功能,在确定关键质量的时候要可以采用质量属性关系矩阵,确定关键质量。
预备架构:1、需求矩阵(需求结构化)2、非功能性需求定量化(场景法)通过以上两种方法识别出核心功能最好架构3.概念架构阶段的主要内容(一个决定四个选择)决定:如何划分顶级子系统选择:架构风格选型开发技术选型二次开发技术选型集成技术选型2 / 5概念架构界定系统的高层组件、以及他们之间的关系,意在对系统进行适当分解、而不陷入细节。
软件需求分析--结构化分析(SA)⽅法结构化开发⽅法(Structured Developing Method)是现有的软件开发⽅法中最成熟,应⽤最⼴泛的⽅法,主要特点是快速、⾃然和⽅便。
结构化开发⽅法由结构化分析⽅法(SA法)、结构化设计⽅法(SD 法)及结构化程序设计⽅法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)⽅法是⾯向数据流的需求分析⽅法,是70 年代末由Yourdon,Constaintine 及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤。
它适合于分析⼤型的数据处理系统,特别是企事业管理系统。
SA 法也是⼀种建模的活动,主要是根据软件内部的数据传递、变换关系,⾃顶向下逐层分解,描绘出满⾜功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是⾯向数据流的需求分析⽅法,是70年代由Yourdon,Constaintine 及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤。
结构化分析⽅法的基本思想是“分解”和“抽象”。
分解:是指对于⼀个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把⼤问题分解成若⼲⼩问题,然后分别解决。
图4 是⾃顶向下逐层分解的⽰意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每⼀个细节,⽽中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进⾏,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直⾄涉及到最详细的内容,这种⽤最本质的属性表⽰⼀个⾃系统的⽅法就是“抽象”。
2.SA 法的步骤⑴建⽴当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统⽤DFD 图描述出来。
这样的表达与当前系统完全对应,因此⽤户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得⽤DFD 图描述的当前系统的“逻辑模型”。
软件架构课程设计介绍软件架构课程设计旨在培养学生对软件架构设计的理解和能力。
本课程将介绍软件架构的基本概念和主要设计原则,并通过实践项目帮助学生应用所学知识。
课程目标本课程的目标如下:- 理解软件架构的基本概念和原则- 掌握常见的软件架构模式和技术- 通过实践项目,培养学生在软件架构设计和开发方面的能力- 培养学生团队合作和沟通的能力课程大纲本课程将包括以下主题:1. 软件架构概述- 软件架构定义和重要性- 软件系统的组成和层次结构2. 软件架构设计原则- 模块化和耦合性- 可扩展性和灵活性- 可维护性和可测试性3. 常见的软件架构模式- 分层架构- 客户端-服务器模式- 主从模式- 微服务架构4. 软件架构技术- 设计模式- RESTful API设计- 数据库设计与管理5. 实践项目- 学生将根据所学知识设计和开发一个软件系统的架构- 学生将以小组为单位完成项目,并进行展示和评估评估方式本课程的评估方式将包括以下组成部分:1. 作业和项目成果:学生需要完成指定的作业和实践项目,并提交相应的成果物。
2. 考试:学生将参加一次期末考试,考查对课程内容的理解和掌握程度。
3. 参与度和团队合作:学生的参与度、课堂表现和团队合作能力也将纳入评估考虑。
4. 课程报告:学生需撰写一份对所学知识的总结和反馈报告,体现对软件架构设计的理解和能力。
参考资料1. Bass, L., Clements, P., & Kazman, R. (2012). Software architecture in practice (3rd ed.). Addison-Wesley.2. Garlan, D., & Shaw, M. (1994). An introduction to software architecture. Advances in Software Engineering, 1(1), 1-43.3. Fowler, M. (2003). Patterns of enterprise application architecture. Addison-Wesley.以上是《软件架构课程设计》的简要内容介绍和大纲。
软件架构Software Architecture叶红星博士技术总监yehx@神州数码系统集成服务有限公司培训中心课程描述-1《软件架构》课程通过一个享有软件著作权的完整案例-“神州数码岗位能力测评系统”(登记号2009SRBJ3251)软件开发项目向架构师(Architect)介绍了有效运用ISO/IEC 42010 架构描述国际标准、由用例捕获的系统需求(用例模型)、模型驱动开发(MDD)方法构架(architecting)模型驱动架构(MDA)所必须的理(概)念和技巧。
架构框架课程描述-2在这门含有讨论和实战的高端课程里,学员将学会如何贯穿软件项目生命周期进行构架,即构思、定义、描述、记录、确认合适实施、改进、维护架构活动。
软件构架活动课程描述-3课程在一个用例驱动的、以架构为中心的以及迭代和增量的统一软件开发过程中,通过在整个软件项目生命期中充分运用架构描述语言UML和大量可重用的架构资产去捕获和交流软件架构决策,学员将掌握如何构架符合功能需求、质量和约束的大型的、复杂的和分布式的企业应用软件系统的软件架构以及如何基于架构框架使用软件架构文档记录软件架构。
软件架构资产的概念模型软件架构资产的属性参考架构参考模型模式语言架构风格架构模式设计模式编程模式架构决策粗粒度细粒度粒度打包应用遗留应用应用框架架构机制组件库组件规约实施清晰度课程目标-1学完本课程后,学员将具备以下能力:•熟练掌握软件架构的起源、定义、范围、目的、风格、框架、描述、验证和评估等;•熟练掌握软件架构师的定义、职责、分类以及与系统/业务分析师、软件设计师和项目管理等角色的重要区别和内在联系等;•熟练掌握贯穿软件系统生命周期的构架过程;•掌握设计出反映和平衡不同涉众需要的架构的方法;•掌握和涉众一起交流架构并且论证架构满足其需要的方法;课程目标-2学完本课程后,学员将具备以下能力:•使用架构框架和一组相关的视图文档化架构;•使用透视图确保架构满足系统的性能、伸缩性和安全等重要质量特性;•熟练掌握几种重要的架构风格和架构模式;•熟练掌握不同层级的架构机制,例如:分析机制、设计机制和实施机制;•熟练掌握UML 模型驱动的开发(MDD)过程;课程内容1.软件架构导论2.需求3.架构描述语言4.架构集成开发环境5.软件开发方法6.可重用的架构资产7.架构描述8.架构分析9.用例分析10.架构设计的基本原理11.架构实施课程对象此门课程适合于有面向对象的软件系统开发经验的项目经理、系统分析师、架构师和设计师。
软件系统架构实践课程一、课程简介软件系统架构实践课程是一门旨在教授学生如何设计和构建高质量软件系统架构的课程。
在本课程中,学生将学习软件架构的基本概念、原则和方法,并通过实际案例分析和实践项目来应用所学知识。
这门课程旨在培养学生的系统思维和架构设计能力,使其成为优秀的软件架构师。
二、课程目标本课程的主要目标是让学生掌握以下内容:1.理解软件架构的基本概念和原则;2.掌握常用的软件架构模式和架构风格;3.熟悉软件架构设计方法和工具;4.能够分析和评估现有的软件系统架构;5.能够设计和实施高质量的软件系统架构;6.培养团队合作和沟通能力。
三、课程安排本课程分为以下模块:模块一:软件架构基础本模块介绍软件架构的基本概念和原则,包括软件架构的定义、关键属性、设计原则等。
学生将学习如何应用这些基础知识来理解和评估现有的软件系统架构。
模块二:软件架构模式和风格本模块介绍常用的软件架构模式和架构风格,包括分层架构、客户-服务器架构、微服务架构等。
学生将学习这些模式和风格的优缺点,以及如何根据具体需求选择合适的架构。
模块三:软件架构设计方法本模块介绍软件架构设计的方法和工具,包括需求分析、系统建模、架构评估等。
学生将学习如何使用这些方法和工具来设计和实施高质量的软件系统架构。
模块四:实践项目本模块为学生提供一个实践项目,学生将组成小组并根据给定的需求设计和实现一个软件系统架构。
在项目过程中,学生需要运用课程中所学的知识和技能,并进行团队合作和项目管理。
四、学习方法1.理论学习:学生通过课堂教学、教材阅读等方式掌握软件架构的基本原理和方法。
2.案例分析:学生通过分析实际案例,了解并评估不同系统架构的优缺点,提升自己的分析能力和判断能力。
3.实践项目:学生通过实践项目,应用所学知识解决实际问题,培养团队合作和沟通能力。
4.讨论和分享:学生参与课堂讨论,与同学分享自己的见解和经验,拓宽自己的软件架构视野。
五、评估方式1.课堂表现:包括出勤情况、课堂参与、作业完成情况等。
软件架构
Software Architecture
叶红星博士
技术总监
yehx@
神州数码系统集成服务有限公司培训中心
课程描述-1
《软件架构》课程通过一个享有软件著作权的完整案例-“神州数码岗位能力测评系统”(登记号2009SRBJ3251)软件开发项目向架构师(Architect)介绍了有效运用ISO/IEC 42010 架构描述国际标准、由用
例捕获的系统需求(用例模型)、模型驱动开发(MDD)方法构架(architecting)模型驱动架构(MDA)所必须的理(概)念和技巧。
架构框架
课程描述-2
在这门含有讨论和实战的高端课程里,学员将学会如何贯穿软件项目生命周期进行构架,即构思、定义、描述、记录、确认合适实施、改进、维护架构活动。
软件构架活动
课程描述-3
课程在一个用例驱动的、以架构为中心的以及迭代和增量的统一软件开发过程中,通过在整个软件项目生命期中充分运用架构描述语言UML和大量可重用的架构资产去捕获和交流软件架构决策,学员将掌握如何构架符合功能需求、质量和约束的大型的、复杂的和分布式的企业应用软件系统的软件架构以及如何基于架构框架使用软件架构文档记录软件架构。
软件架构资产的概念模型
软件架构资产的属性
参考架构参考模型
模式语言架构风格
架构模式设计模式编程模式
架构决策
粗粒度细粒度粒度打包应用遗留应用
应用框架
架构机制组件库
组件
规约实施
清晰度
课程目标-1
学完本课程后,学员将具备以下能力:
•熟练掌握软件架构的起源、定义、范围、目的、风格、框架、描述、验证和评估等;
•熟练掌握软件架构师的定义、职责、分类以及与系统/业务分析师、软件设计师和项目管理等角色的重要区别和内在联系等;
•熟练掌握贯穿软件系统生命周期的构架过程;•掌握设计出反映和平衡不同涉众需要的架构的方法;
•掌握和涉众一起交流架构并且论证架构满足其需要的方法;
课程目标-2
学完本课程后,学员将具备以下能力:
•使用架构框架和一组相关的视图文档化架构;•使用透视图确保架构满足系统的性能、伸缩性和安全等重要质量特性;
•熟练掌握几种重要的架构风格和架构模式;
•熟练掌握不同层级的架构机制,例如:分析机制、设计机制和实施机制;
•熟练掌握UML 模型驱动的开发(MDD)过程;
课程内容
1.软件架构导论
2.需求
3.架构描述语言
4.架构集成开发环境
5.软件开发方法
6.可重用的架构资产
7.架构描述
8.架构分析
9.用例分析
10.架构设计的基本原理
11.架构实施
课程对象
此门课程适合于有面向对象的软件系统开发经验的项目经理、系统分析师、架构师和设计师。
前提课程
•统一建模语言(UML)和建模工具•统一软件开发过程
•软件需求工程
•面向对象的设计模式
后续课程
•Java EE 5架构和程序设计•企业应用架构模式
架构集成开发环境(IDE)实验•IBM R ational S oftware A rchitect (RSA)
V7.5
•IBM Rational Unified Process (RUP)
软件工程过程和软件项目生命期项目管理
开发环境
业务建模
实施测试分析和设计
初次迭代迭代#1阶段工程学科
迭代
管理学科迭代#2迭代#n 迭代#n+1迭代
#n+2迭代#m 迭代#m+1
部署配置和变更管理
需求
细化移交初始构造沿时间轴的组织结构沿内容轴的组织结构学科
软件工程过程和软件项目生命期
课程日程安排(见讲义第2页)
参考文献-1
•Peter Eeles, Peter Cripps,The Process of Software Architecting, Addison Wesley,2009,ISBN 9780321617484
•Nick Rozanski and Eoin Woods ,Software Systems Architecture –Working with Stakeholders using Viewpoints and Perspectives, Addison Wesley, ISBN 0-321-11229-6, 2005
•Len Bass, Paul Clements and Rick Kazman, Software Architecture in Practice,2nd edition, Addison Wesley, ISBN 0-321-15495-9, 2003
参考文献-2
•Dean Leffingwell and Don Widrig, Managing Software Requirements, A Use Case Approach, 2nd Edition, Addison Wesley, ISBN 0-321-12247-X, 2003 。
•Grady Booch, James Rumbaugh, and Ivar Jacobson, The Unified Modeling Language User Guide, 2nd Edition, Addison Wesley, ISBN 0-321-26797-42005.
•Martin Fowler, Patterns of Enterprise Application Architecture, Addison Wesley, ISBN 0-321-12742-0,2002.
参考文献-3
•Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Peter Sommerlad, Michael Stal, Pattern-Oriented Software
Architecture, Volume 1: A System of Patterns,1996 •Mary Shaw and David Garlan,Software
Architecture –Perspectives on an Emerging
Discipline,Prentice Hall,ISBN 0-13-182957-2,
1996
•Scott Pressman, Software Engineering: A
Practitioner's Approach. Sixth Edition, McGraw-
Hill Education, 2005
课程遵循的标准
•ISO/IEC 24744:2007 Software Engineering —Metamodel for Development Methodologies (SEMDM)
•ISO/IEC 15288:2008 Systems and software engineering —System life cycle processes
•ISO/IEC 12207:2008 Systems and software engineering —Software life cycle processes
•ISO/IEC 15289:2006 Systems and software engineering —Content of systems and software life cycle process
information products (Documentation)
•ISO/IEC 42010:2009 Systems and software engineering —Architectural description
•ISO/IEC TR 17959:2005
ISO/IEC TR 17959:2005 Guide to the Software
Engineering Body of Knowledge
课程立意
1.高度决定视野
2.角度改变观念
3.尺度把握人生
学员背景调查
•在企业中担任部门经理以上职务的人数?有财务签字权限的人数?参加过财务预算的人数?参加过事业部/研发中心级别业务规划的人数?
•在企业中担任项目经理的人数?
•在企业中担任系统分析师的人数?
•在企业中担任软件架构师的人数?
•在企业中担任软件设计师的人数?
参考架构调查
•使用J2EE 1.4/Java EE 5的人数?•使用.NET的人数?。