软件架构实践SOFTWAREARCHITECTUREINPRACTICE软件系统设计与体系结构•1982年2月计算机系软件专业本科毕业、硕士。•1983年-85年日本东京软件咨询公司(SCC)研修《软件工程》2年、1996年赴美国INTEL公司学习。•03年获国际项目管理协会(IPMP)专业资质B级认证证书•教授级高工自我介绍张家浩电子邮件:zhjh@seu.edu.cn手机:13905161657长期从事软件企业的软件开发、技术管理工作主要工作经历包括:南京有线电厂金融电子化所软件开发室主任、副所长南京同创集团软件开发部、产品项目部、服务器事业部总经理南京欣网视讯科技股份有限公司(上市公司)总经理办公室经理、商务中心总经理、研发中心副总经理、产品部副总经理、电信行业事业部总监、副总经理等职。04-2010年曾任东南大学软件学院软件工程教研室主任、软件工程系(苏州)主任2011年深圳易思博公司技术总监2014年-江苏万和培训中心技术总监曾开设的课程:《软件项目管理》、《现代软件工程》《软件构架实践》、《软件工程导论》《组织行为学(管理心理学)》已出版教材:主编《软件项目管理》(机械出版社:2005年2月)主编《现代软件工程》(机械出版社:2008年10月)主编《软件工程项目实训教程——基于微软VSTS》(清华大学出版社:2011年6月)主编:《软件架构实践教程》(清华大学出版社:2014年8月)•社会兼职–中国软件行业协会•行业支撑专家组成员•UML认证专家组成员•《支付保障与生产力》杂志编委(兼职)•《软件》杂志编委(兼职)–其他:•2011年2月进入江苏省科技厅专家库•CSSPI2010年、2011、2012年会程序委员•PIC-2010年会技术和程序委员。•苏州亿迪电脑有限公司•无锡开拓信息系统有限公司•南京紫金支点技术有限公司•公安部交通管理科学研究所•江苏金税计算机系统工程有限公司•南京欣网视讯科技股份有限公司•江苏意源科技有限公司•南京鼎盟科技有限公司•中国国际航空公司软件中心•江苏省引江水利水电设计研究院•南通同方计算机系统集成有限公司•鼎华通信技术(苏州)有限公司•苏州新区欧索软件有限公司•江苏蓝深远望系统集成有限公司•南京普天通信股份有限公司•南京熊猫信息产业股份有限公司曾接受培训的学员单位:•江苏安防科技有限公司•苏州市世跃计算机系统集成公司•南京皓都信息科技有限公司•镇江联盟计算机网络有限公司•南京东大智能化系统有限公司•苏州市广讯通讯工程有限公司•南京莱斯大型电子系统工程公司(电子部28所)•江苏省电子商务有限公司•南京大汗网络有限公司•南京同创天地环网有限公司•江苏华丽计算机网络工程有限公司•镇江新科海计算机网络有限公司•南京擎天科技有限公司•扬州恒春电子有限公司•浙江奥乐智能系统工程有限公司•江苏赛杰科技发展有限公司•江苏国泰国际集团新技术有限公司•南京南大金利得电子科技有限公司曾接受培训的学员单位:•江苏省高信集成电路设计有限公司•江苏瑞鼎科技有限公司•南京卡索系统工程有限公司•江苏盛华系统集成工程技术有限公司•江苏苏源高科技有限公司•南京寒德森科技股份有限公司•南京西三艾电子系统工程有限公司•南京优创科技有限公司•南京联创科技股份有限公司•苏州广大信息产业有限公司•江苏省无线电科学研究所有限公司•南京明泽科技有限公司•南京南瑞集团•南京新华海电脑有限责任公司•江苏省纵横软件有限公司•江苏天技科技实业有限公司•南京瑞仪泰克系统集成有限公司•南京因泰莱电器股份有限公司•江苏金中天计算机网络有限公司•江苏省依迪计算机软件发展公司•南大苏福特•中国电信系统集成公司•国航软件中心指定教材《软件体系结构》(第2版)张友生等编著清华大学出版社2006年11月使用教材《软件架构实践教程》(PDF版+PPT)张家浩主编清华大学出版社2014年6月参考资料《软件构架实践》(第2版)SoftwareArchitectureinPractice(美)林.巴斯[LenBass]保罗.克莱门茨[PaulClement]瑞克.凯兹曼[RickKazman]著车立红译清华大学出版社2004年3月(本书有多个中文译本)参考资料软件工程项目实训教程——基于微软VSTS张家浩主编清华大学出版社2010年6月其他参考书目[1]覃征等编著,软件体系结构(第2版)[M].北京:清华大学出版社,2008年3月.[2]张宏主编,系统分析与设计[M].北京:清华大学出版社,2008年9月.[3]万建成、卢雷编著,软件体系结构的原理、组成和应用[M].北京:科学出版社,2002年8月[4]XinChen著、温昱、靳向阳等译,应用框架的设计与实现——.NET平台[M].北京:电子工业出版社,2005年7月.[5]DiomidisSpinellis&GeorgiosGousios编、王海鹏等译,架构之美[M].北京:机械工业出版社,2010年2月.[6][美]MohannedE.FayadRalphE.Johnson著、姜晓红等译,特定领域应用框架:行业的框架体验[M].北京:电子工业出版社,2004年8月.[7][美]RockfordLhotka著、候伯薇译,C#企业应用开发艺术-CSLA.NET框架开发实战[M].北京:人民邮电出版社,2010年4月.[8][美]ClemensSzyperskiDominikGruntzStephanMurer著、王千祥等译,构件化软件——超越面向对象编程(第二版)[M].北京:电子工业出版社,2004年9月.[9]IvarJacobsonPan-WeiNg著、徐锋译,AOSD中文版——基于用例的面向方面软件开发[M].北京:电子工业出版社,2005年10月.[10][美]JamesTurnerKevinBedell著、孙勇译,StrutsKICKSTART(中文版)[M].北京:电子工业出版社,2004年9月.[11][美]GeorgeShepherdScotWinge著、赵剑云等译,深入解析MFC[M].北京:中国电力出版社,2003年10月.[12]张家浩主编,现代软件工程[M].北京:机械工业出版社,2008年10月.备查课程资源书稿(PDF):=4017195013&uk=1445069895密码:mm3v课件(PPT):=4037798651&uk=1445069895密码:deel项目代码:=4041742356&uk=1445069895密码:oh83课程大纲、实践大纲与教学计划=4062215923&uk=1445069895密码:hxld使用方法:将上述链接(含密码)复制到IE地址栏即可。课程目标与职业生涯“屠龙术”与“政治课”我对什么课有兴趣?课程目标:假定1:毕业后从事软件开发和相关行业不仅仅满足编码、希望获得职业生涯提升5-10年以后,成为项目经理、架构师、需求分析师、更高…假定2:希望在编码的基础上提升素质能力希望学习软件架构设计技术愿意动手、不怕吃苦学生的目标:以现代软件企业软件开发管理为职业生涯目标不要以为这是北大、清华的学生才能梦想的课程的目标:以未来软件架构师的岗位素质需求为课程目标软件工程:工程背景,想象为:一条流水线管理岗位,想象为:一个车间主任第一个检验标准:企业应聘的时候(潜质)…….南大、东大的学生都在哪里?对课程目标的理解——现代软件企业在干什么?对课程目标的理解——动车组开始商业运行,需要什么条件同样是2分钟,银行为什么办不到?现代软件企业要什么?无序优化定量定性有管理过程是如何保证结果的?问题:软件大赛的中期检查看什么?为什么我们的很多管理措施,作用有限?无序优化定量定性有管理过程管理的五级机制任何过程都能够借鉴CMM对于软件工程的过程而言,是一种机制约束,由此保证结果在软件企业中,架构师的作用对课程目标的理解——软件架构实践课程构件3构件2构件1第一章《知道软件架构的定义》第二章《了解软件架构的作用》第三章《认识与知晓软件架构》从需求到架构需求功能需求非功能需求设计约束物理架构开发架构运行架构逻辑架构数据架构功能功能1功能1.1功能1.2功能2功能2.1构件3构件2构件1第四章《从需求到架构》架构师的需求过程第五章《架构概要设计》第六、七、八章静态模型动态模型功能模型软件架构设计构件3构件2构件1第六章《基于接口、设计模式、组件、SOA的架构设计》第七章《基于SSH框架的架构设计》第八章《基于关键质量属性的架构设计》第九章《企业应用的架构设计》课程目标:目标1:理解软件架构的概念和作用(1-2章)能阅读并分析简单应用系统架构(3章)初步掌握从需求到架构设计的变换(4章)能够进行基本的架构设计规划(5章)目标2:能运用接口、组件等方法,设计软件架构(6章)初步掌握SSH框架的应用(7章)理解基于关键需求架构设计、验证、评审(8章)知晓企业架构设计的一般方法(9章)课程的基础(先修课程)编程基础应用系统开发基础软件工程基础对课程目标的理解——程序设计基础与语言48面向对象程序设计132语言课程设计面向对象程序设计264一上一下短学期数据结构与算法64二上二下软件项目实训软件工程导论32大型系统设计和体系结构48短学期软件项目管理与实践48三上数据库系统(实验)48+16操作系统(Linux)64编译原理64网络及应用48软件设计模式(外)32离散数学64计算机硬件基础(含数字电路、单片机)64网络与信息安全32人机交互32计算机文化32(含成才导论、专业的认识、学习方法)组织行为学32人力资源管理32算法分析与设计32三下各种选修课大类学科基础专业主干软件测试基础32非核心必修嵌入式系统32选修模糊数学32概率统计32物理导论网络编程32软件质量保证32UML32外教课东大软件学院的本科课程软件工程课程群的关联性导论UML系统结构项目管理测试1、用一种形式,把过程关联起来,控制关键节点软件产品关联:功能、性能软件项目关联:计划、成本、质量软件过程关联:需求可追踪、需求稳定性、可重用性、灵活性、可维护性、2、找出过程的质量属性、进行定性/定量度量分析、进行基准比较、持续改进课程内容的组织——每一章概念介绍-1/3案例分析-1/3动手实践-1/3装系统、工具(很多)分析别人的代码(不少)自己写代码(不太多,但很关键)课程目标检验知道(你知道什么是“惯性”吗?)领会(汽车转弯的时候身体倾斜是因为惯性作用)应用(可以向反方向用力来抵消惯性)实践课:时间:16学时,实际可能远远不止按照老师的“操作手册”上机独立完成每个阶段的任务得到开发结果,体验开发过程软件:老师提供部分软件(百度网盘上)自己下载自己编写开发环境:保存的问题(最好用自己的笔记本)考试:笔试70%+平时成绩30%笔试部分:基本概念基本方法实践体会平时成绩:独立完成每次实践课的内容平时作业、实验报告上课提问点名、签到