ARC110 软件构架设计的原则和指南.

Slides:



Advertisements
Similar presentations
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
Advertisements

§2 计算机系统结构、组成与实现 计算机系统结构、组成与实现的定义和内涵 计算机系统结构、组成和实现的相互关系.
校第六届“新天瑞”杯创业计划大奖赛 赛前培训
——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
软件工程实践 软件学院 高海昌 作业提交 课件下载
绩效考评表格设计 班级:15服务4班 姓名:杨冬茜.
顏協邦 慧盟資訊 商業智慧導入服務部 資深經理
网页设计师的职业成长规律 主讲:刘万辉 淮安信息职业技术学院.
初级会计电算化 (用友T3) 制作人:张爱红.
实用操作系统概念 张惠娟 副教授 1.
UI(用户界面)集训班 Illustrator 高级班.
会计学专业基础课堂之 基础会计(初级会计) 安徽财经大学会计学院.
施耐德电气(中国)投资有限公司 运动控制部技术经理 李幼涵 高级工程师
Information & Security System in China China North Eastern Air Traffic Control Bureau (CAAC) Customer Background Subsidiary of General Administration of.
TinyLink: A Holistic System for Rapid Development of IoT Applications
Chapter 4/5 初始阶段的需求.
北京移动(中国移动的子公司)是中国主要的无线运营商之一。中国移动做为无线市场的开拓者,拥有中国70%的无线通信市场,也是世界上第二大的无线提供商,北京移动拥有上亿的手机用户,支持60多个国家的漫游业务。 为北京移动创造的价值 … 优秀的性能,支持了庞大的用户群 标准化了系统接口 加强了系统的灵活性.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
.NET Framework 3.0 Windows WorkFlow Foundation 工作流设计
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Windows 8 more simple more powerful more free.
Windows Mobile 轻松接轨GPS
Chapter 3 Case Studies.
SVN的基本概念 柳峰
R in Enterprise Environment 企业环境中的R
SOA – Experiment 3: Web Services Composition Challenge
李杰 首都经济贸易大学 安全与环境工程学院 个人主页:
鼎捷易飞 实战课程 老卓 ERP资深实施者 讲师的CSDN博客地址
项目管理 Project Management
SVN服务器的搭建(Windows) 柳峰
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
Programmable Logic Architecture Verilog HDL FPGA Design
SDM 120 软件开发项目管理中 运用敏捷模式的实践指南
Harvard ManageMentor®
Web Services 开发 杨永智 MCT/MVP 微软校园大使.
商业计划书模板 框架完整 内容实用 严谨专业 BUSINESS PLAN POWERPOINT TEMPLATE LOGO.
What have we learned?.
顧武雄 Jovi Ku Microsoft特約資深講師
化学品清单 类型.
数据挖掘工具性能比较.
DevDays ’99 The aim of this mission is knowledge..
实习前你需要知道的 PRESENTED BY Yisa.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
程序设计工具实习 Software Program Tool
何勉 新浪微博: Scrum框架及其背后的原则 原始图片 何勉 新浪微博:
Sensor Networks: Applications and Services
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
《产品设计工程应用》课程 陈兴波 顺德职业技术学院/设计学院/工业设计专业.
虚 拟 仪 器 virtual instrument
模式与实践:Windows Mobile 5.0应用程序架构
企业文化内涵体系 持续循环 企业标志 品牌力:…… 服务力:…… 品牌力/服务力 潜规则是…… 1、品质 2、战略 1、价值 2、绩效
更新教学理念,提高教学有效性 感城中心学校 陈利平.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
框架完整的 商业项目计划书 BUSINESS PLAN.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
机械设备的完整性和可靠性管理 Maintenance integrity & reliability.
OWASP中国介绍 作者:RIP 时间:
WEB321 使用ASP.NET2.0快速开发电子商务网站
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
資訊安全概論 樹德科技大學 資訊工程系 林峻立 助理教授.
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
IT 方法 INTOSAI IT 审计培训.
Presentation transcript:

ARC110 软件构架设计的原则和指南

课程内容概述 介绍和引言 软件构架和构架师 软件构架的设计 模式、框架、和参照设计

自我介绍 第一代自费留学生:美国南伊利诺州立大学(SIUE)电机工程学士(1984)及硕士学位(1985) 历任 Owens-Illinois, Reynolds Metals, Attachmate, Motorola 等公司的高级系统工程师、软件开发工程师、产品经理、项目经理 1998年加入微软,98-2001为ActiveSync 3.x产品发行项目经理,2001-2004年 为 Windows XP Embedded 嵌入式操作系统的产品设计项目经理 2004初至今为微软总部中国事务办公室首席项目经理

软件构架和构架师

什么是构架设计和构架师?

建筑构架 建筑构架设计 Ar·chi·tec·ture [áarki tèkchər] 建筑设计:楼房设计和结构建造的艺术和科学 building design: the art and science of designing and constructing buildings building style: a style or fashion of building, especially one that is typical of a period of history or of a particular place 建筑构架设计 建筑设计:楼房设计和结构建造的艺术和科学 建筑风格:反映楼房在特定的时间期间和地域范围的风格 

计算机系统和软件构架 计算机及软件的构架和设计 Ar·chi·tec·ture [áarki tèkchər] Structure of computer system: the design, structure, and behavior of a computer system, microprocessor, or system program, including the characteristics of individual components and how they interact 计算机及软件的构架和设计 计算机系统构架:计算机系统、机芯、和系统程序的设计、结构、和行为,包括组件的特征和它们之间的互动 软件构架:软件系统的结构和风格设计、使用方案和行为的设计,以及软件功能组件的区分、归类、组件接口和它们之间数据交换的规范和标准

软件构架设计的目的 使软件系统能够达到为用户提供最佳的功能和服务的状态 使软件与系统的结合达到最佳运行性能 合理和最佳地利用系统的各项资源 使软件与系统的结合达到最佳运行性能  合理和最佳地利用系统的各项资源 在软件的开发、部署、运行、维护、升级换代上为提供最大的灵活性 为系统提供最大的安全性、稳定性、和可靠性,以及各项质量素质 Add following pages to explain these goals

构架师的素质 探索者 倡导人 设计师 Explorer Advocate Designer Explorers are visionary 构架师的素质  Explorer Advocate Designer 探索者 倡导人 Explorers are visionary Explorers are persuasive Explorers are accountable Advocates must listen Advocates must observe Advocates must think strategically 设计师

软件构架师应该起到的作用 探索者 设计师 倡导人 为企业的商业利益不断探索新技术的运用 为提高竞争能力寻找和尝试优化的解答方案 将优秀的功能和性能(强度)、可用性、和使用性(美观)设计到软件中去 倡导人 为开发出真正能为用户提供最佳服务的软件而做用户利益的倡导人-倾听和观察用户的回馈 推动开发团队建立前瞻性的战略眼光 

软件构架的设计

构架设计的责任和目的 构架设计首先是设计为解决实际问题所需提供的答案的思路和计划 你的责任是创立出一个能够满足这样需要的构架 为了使整个开发团队都能为达到同样的目标而努力,构架师必须对不同的听众用不同的工具和方法,将设计思路准确无误地向大家沟通、建立共识。

构架设计所需要思考的问题 客户和市场最需要解决的问题是什么? 我们是否在解决真正需要解决的正确问题? 开发中的局限是什么? 客户和市场最需要解决的问题是什么?  我们是否在解决真正需要解决的正确问题?  开发中的局限是什么?  我们究竟需要开发什么样的功能、多少功能,才能满足需要?  是否有更灵活或简单的设计? 这个软件在设计、部署、运行、维护、升级等方面是否有特别要求?

构架设计的思考往往从需求开始 我所要开发的软件和系统究竟是解决什么问题,各种需求是什么? 我从哪里得到和总结各种需求? 我所要开发的软件和系统究竟是解决什么问题,各种需求是什么?   我从哪里得到和总结各种需求?  我应该考虑那些因素使我能够得到完整的需求分析?

但是他们能够达到任何比赛的目的吗? 如果一群人来到一个草地进行踢球比赛… 如果既没有球门、球场边界,也没有比赛规则 如果一群人来到一个草地进行踢球比赛…    如果既没有球门、球场边界,也没有比赛规则    他们可以毫无目标地到处跑动以至于筋疲力尽    但是他们能够达到任何比赛的目的吗?

项目的需求是你的“赢球规则”和“球门” 要赢得比赛必须要能够进球… 要进球必须要有比赛规则、场地边界、和球门 要赢得比赛必须要能够进球…   要进球必须要有比赛规则、场地边界、和球门  你的开发项目的“赢球规则”和“球门”是什么?   项目的需求是你的“赢球规则”和“球门” 

你从哪里得到需求分析的信息和数据? 项目的合同书 对市场的调查和对竞争者产品的分析 对使用者的调查及回馈总结 对用户使用产品过程的观察 访问用户的谈话记录 用户对系统的升级要求 以往类似项目的总结分析 现有系统的问题报告和维护历史记录 对用户的售后服务和技术支持的历史 项目资助者的要求

完整的需求分析必须考虑的各种因素 功能需求是描述一个产品或项目该做什么, 该提供什么功能, 该完成什么任务的总结 软件项目需求管理的指南 完整的需求分析必须考虑的各种因素   功能需求是描述一个产品或项目该做什么, 该提供什么功能, 该完成什么任务的总结 软件项目需求管理的指南 功能需求是描述一个产品或项目该做什么, 该提供什么功能, 该完成什么任务的总结 任何一个项目在开发前都有一列功能需求 它可来自客户的要求, 或市场的反馈, 或利用新技术增加新功能以便使产品更新换代的驱动 它是一个项目的最前期的管理, 也是把握项目范围的关键 - 设计是建立于功能需求的基础上的: 功能需求总结越完善, 设计就会越周密, 测试就会越彻底, 项目的质量就越好.

用质量属性的选择帮助确定项目的需求范围 利用质量标准的互相对立和制约因素来决定开发工作的侧重点和优先权 可靠性 效率性 灵活 性 完整性 用质量属性的选择帮助确定项目的需求范围  利用质量标准的互相对立和制约因素来决定开发工作的侧重点和优先权   对客户重要的质量标志 对开发者重要的质量标志 可靠性 效率性 灵活 性 完整性 兼容性 可维护性 多用转换性 稳定性 重复使用性 健全性 可测性 可用性 可靠性 (Availability) + 效率性 (Efficiency) - 灵活性 (Flexibility) 完整性 (Integrity) 兼容性 (Interoperability) 可维护性 (Maintainability) 多用转换性 (Portability) 稳定性 (Reliability) 重复使用性 (Reusability) 健全性 (Robustness) 可测性 (Testability) 可用性 (Usability) 

需求影响到甚至决定了软件的构架… 项目的总体范围 不同功能的开发的重要性和顺序优先权 与外部组件和系统的接口规范和标准 开发资源的分配 开发时间表的制定 软件各质量属性的选择和通过标准的制定 对软件各种质量的测试范围 软件发行通过关口的检测标准

良好的需求分析的特征是什么? S M A R T 具体的:每个所需开发的功能都是清晰地定义了的 可衡量的:整个系统和每个组件的功能完整性和质量程度都具备可以衡量和检测的标准 可付诸行动的:每个需求都可以用具体的功能和性能设计来满足 现实的:每个需求都是符合实际的、可以用现有技术和资源加以解决 有时间限制性的:每个具体功能的开发任务都是可以在目前项目的时间范围内完成得了的 S Specific M Measurable A Actionable R Realistic T Time-Bound

模式、框架、和参照设计

构架设计运用模式(Pattern)

古代埃及的文明征服他们周围地域近三千年。究竟是什么使得他们具备比周边其它文明更强的竞争力呢?   可被学习和重复仿效的文明模式   知识是来之不易的  用模式的方法将知识、经验、和学问代代相传、让后人可以学习前人、超越前人,是一个文明保持竞争力、维护利益和争取优势具有不可替代的关键。

模式在知识理念中的地位 抽象的 (abstract) 具体的 (concrete)

模式的概念 模式(pattern)是人为设计的思路 它是为解决某个或某些具体问题的答案和解答参照 模式并不是一个完成的具体软件设计或源代码,也不是程序中的计算法(Algorithm),而是为解决共有问题的通用的解答思路和方案模版(template) 模式常常被整合在一起或集中使用,提供一个为解决更大和更复杂的问题的解答方案、而组成一个解决问题的通用框架(framework)

框架的概念 框架(framework)是在使用模式的基础上,具体采用一个或多个模式,为解决具体的应用问题而建立的答案 框架为开发软件和系统提供了一个高效率的开发环境 统一的平台和开发工具 最高效率地采用被验证了的模式、技术、组件 推动软件再使用和质量的提高、避免重复开发 充分利用大量共享的开发知识 目前的通用框架 .NET Framework, Web Sphere, etc.

Mobile Client Software Factory RI: AdventureWorks2Go 参照设计的案例 Mobile Client Software Factory RI: AdventureWorks2Go Mobile Device User Experience User Experience Management Business Logic Views WinForms CAB Extensions for Mobile Logging Data and Web Svc Deployment Presenters VS.NET Configuration Mobile Designer Business Logic Form Factor Dot Density (DPI) Orientation Security Business Logic Controllers Business Entities Business Workflows Web Service Credentials CAB Authorization Gateway Staging DB Data Synchronization Occasionally Connected Web Services Connectivity Business Data Configuration Data Deployment Data Managing Connection Managing Subscriptions Queues Physical Addresses Web Services Business Transactions Logging Admin Console Replication Web Services Calls

信息系统的构架设计

信息系统的构架和组件 IT System Architecture Functional Requirements Functional Aspect of Architecture Functional Requirements Operational Requirements Operational Aspect of Konceptuella vyer Conceptual views Logical views Physical views Solution Development Hardware setup and operations Tools Patterns Installation packages Network of computers etc. Configuration tools, standards Components Interface Operation Signature Collaboration Interaction Sub-System Node Connection Deployment Unit Walkthrough Performance Availability Security Viability System Management IT System Architecture Application Focus Infrastructure Focus More abstract views More concrete views

总结 借用模式的概念来进行设计 采用先进的设计框架和工具来提高开发的效率 把信息系统的构架设计的框架来作为进行你的系统的设计思考参照

进一步参照 由笔者所著、由上海交大出版社于2005年8月出版的“软件开发项目管理”一书 书本销售: 批量廉价订购联系: 各地新华书店 互动网上书店:http://www.china-pub.com/computers/common/info.asp?id=27300 当当网上书店:http://www.dangdang.com/product_detail/product_detail.asp?product_id=9035233 批量廉价订购联系: 上海交通大学出版社发行科 地址:上海市番禺路877号 [200230] 电话:021-64071208,64473136 联系人:常韶伟(13916217583);李辉(13817554140) 

社区资源 参加中国项目管理俱乐部的社区论坛讨论 阅读作者和其他读者的留言 向作者提问及提供反馈意见 交流学习心得   www.chinapmclub.com 

问答 谢 谢 大 家 ! 微软公司 中国事务办公室 首席项目经理 栾跃

Add link to external Community website List top 3 newsgroups related to this slide 1 2 3 Advise when your next chat is Next user group meeting you will be at Add Other related 3rd party sites

讲师的Chalk Talk和其他Session

与本次主题有关的Session和活动