面向构件的组织级开发模式探讨魏琼东魏琼东探讨问题及目标软件企业为何总是不能按时交付高质量的软件产品是什么在制约软件企业的有效生产率?如何在研发管理和开发技术上提高软件有效生产率基于构件思想的组织级策略展示&交流4软件危机20世经60年代提出软件危机,即在软件在开发和维护过程中遇到的一系列问题。软件成本居高不下软件质量得不到保证进度难以控制维护非常困难魏琼东软件危机的根源逻辑产品,逻辑复杂性,远高于硬件复杂性,软件的复杂性随规模呈指数级上升规模大,并且越来越大影响软件生产率和质量的因素比较复杂缺乏有效、系统原理、原则、方法和工具的指导和辅助魏琼东过程管理部分方法技术手段工具自动或半自动地支持软件的开发和管理过程方法工具软件工程软件生命周期魏琼东传统方法学/瀑布模型魏琼东危机解决了吗?软件危机到目前为止没有解决软件危机只能通过技术与管理有限的规避风险组织应该持续改进其管理过程与技术魏琼东项目规模大项目周期长业务变化快020%40%60%80%52.7%12.6%74.2%12.1%30.8%35.7%缩短实施周期个性化需求快速适应变化减少投入跨平台可扩展性好中国企业用户对于信息系统建设的需求来源:计世资讯(CCWResearch)关于软件的有效生产率企业存在的前提和存在的唯一理由就是在合法的前提些提高企业的利润什么是软件有效生产率为什么软件有效生产率如此重要有效生产率与快速响应市场魏琼东如何提高软件的有效生产率提高企业的技术/开发能力选择适合企业的过程/方法论,并适度裁切以适合企业,并有效执行过程策略技术与管理持续改进魏琼东内容进度软件工程现状1持续过程改进2构件技术体系3展示&交流4为什么要过程改进因为企业自身的发展或者外部环境因素,原来管理过程已经不再适应或者制约软件生产我们必须修改过程以适应软件开发管理,使过程与企业经营更贴近魏琼东CMM/CMMI的五级模型魏琼东持续改进的内容/演进体系开发技术改进1.结构化开发2.面向对象开发3.面向构件开发软件有效生产率管理过程改进1.瀑布模型2.增量模块3.原型化方法4.螺旋模型5.CMM/CMMI6.RUP/UML7.敏捷方法魏琼东技术演进面向对象技术构建技术体系过程式技术以过程/函数为基本编程单位,组成模块为代码单元,自顶向下进行设计在过程式技术的基础上增加面向对象的思想,代码以类为基础组成单元,以成员属性及成员函数为其基础编程单位基于面向对象技术提供的一种对象可复用技术,进面衍射为构件复用/重组技术过程演进迭代原型化方法增量模型瀑布模型敏捷方法增量模型/原型化方法魏琼东敏捷方法-Scrum魏琼东内容进度软件工程现状1持续过程改进2构件技术体系3展示&交流4构件体系核心-构件魏琼东提供接口依赖接口构件名构件类型•构件本身•构件插口•构件协作能力构件是一个自包含的软件概念。它具有明确用途,具备运行时接口,能自动部署,并需要预先知道具体的构件插口才能构造构件Component……servicesreferencespropertiesImplementation-Java-BPEL-Composite…构件技术体系下的应用软件标准构造单元用以构造更为高层和更粗粒度的应用软件模块(Services,References,Properties)用以封装更为低层和更细粒度的逻辑实现(Implementation)Services:服务是被使用的功能References:实现时所要引用于其他构件的服务Properties:实现时影响构件运作的可设置数值Implementation:支持各种实现技术(C#,C++,Java,PHP,JavaScript,BPEL,SQL,XQuery,Composite…)面向构件魏琼东面向构件体系的软件开发模式基于构件,以组装(Assembly)为方法的开发模式(ProgrammingModel)(Composite,Wire,Properties,PropertySetting)组装出的组合构件(Composite)是应用的来源(Interface,Binding)CompositeAComponentAServiceBindingWebServiceSCAJCAJMSSLSB…BindingWebServiceSCAJCAJMSSLSB…ComponentBInterface-Javainterface-WSDLPortTypeInterface-Javainterface-WSDLPortTypeWireWireWireReferencePropertysettingProperties敏捷并行开发以面向构件为技术基础,敏捷方法/Scrum为其过程支持,融合Sprint/构件/迭代开发模式魏琼东构件并行开发过程针对不同的业务构件进行并行开发,即各构件独立开发和单元测试,并纳入企业业务构件库系统解构过程是如何根据构件技术体系来进行分解系统,即以构建技术为基础进行系统架构、功能设计,把系统分解为一个的业务构件.使用开发好的业务系统构、已纳入企业构件之中进行系统组装,即根据企业业务需要装配必须的业务组件构成一个业务系统解构开发结构魏琼东构件技术体系/构建平台业务构件库构件支撑系统/平台通信总线契约监控配置管理展示&交流4AgileEAS.NET简介AgileEAS.NET平台(简称EAS.NET平台)是以“敏捷并行开发方法”为其过程指导思想、基于Microsoft.Net构件技术和模型驱动架构的企业级快速开发平台,AgileEAS.NET使的构建企业级分布式应用系统变得简单,它提供了可灵活扩展应用架构,并且革命性的改变了软件的生产方式,用于帮助中小型软件企业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。魏琼东Agile开发管理解决方案AgileEAS.NET平台及其相关体系旨在为中小软件企业的的开发管理解决方案,以敏捷并行开发方法为其过程理论依据、以AgileEAS.NET平台为过程实践与指导、以AgilePM.NET为其项目管理工具,在开发技术、软件工程、技术架构、管理工具等方面帮助中小软件提供走向卓越。魏琼东AgileEAS.NET平台的技术体系、BS、CAS、BAS方法论的支持并行开发、构件技术丰富的基础类库UDA、ORM、IOC、SL、AOP、分布式通信卓越的扩展体系平台与插件集成报表系统基于RDL的报表系统丰富的辅助工具对象设计器、插件调试工具、部署配置工具AgileEAS.NET平台组成魏琼东辅助工具基础类库平台与插件平台与插件•插件契约•运行容器•管理组件基础类库辅助工具UDA、IOC、ORM、AOP、Session、SL数据对象设计工具、插件开发调试环境、升级部署工具、报表设计工具魏琼东