- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 新型软件开发方法 掌握:基于构件的软件开发方法、敏捷方法的概念与由来、Agent系统的定义及其特点。 12.1 基于构件的软件开发方法 12.1.1 软件复用与构件的定义 1.软件复用 是指一种重复使用软件资产或过程的软件开发方法。 可以从不同的角度对软件复用进行分类: (1)依据可复用信息进行复用的方式,可以将软件复用分为黑盒复用和白盒复用。 (2)依据复用的对象,可以将软件复用分为产品复用和过程复用。 软件复用的形式很多,根据复用级别的大小,大致有以下形式: (1)基于源代码的复用 (2)基于目标代码的复用 (3)基于类库的复用 2.构件及其概念 一般可以认为构件是封装了设计和实现的细节并仅向外部提供独立接口的可重用软件单元,该构件可以与其他构件组成更大规模的构件。 构件具有以下基本性质: (1)粒度。 (2)可重用。 (3)相对独立。 (4)封装性。 (5)可组装性。 (6)构件可以完成特定的功能。 (7)构件遵循一套接口标准。 12.1.2 基于构件的软件开发方法 图12-1 基于构件的软件开发方法与传统软件开发方法之间的比较 基与构件的开发方法的优点: (1)提高产品资源的可复用性。 (2)版本控制更为简单。 (3)有效利用人力资源。 (4)从软件销售到软件实施,从做项目和做产品之间找到平衡点。 (5)开发效率提高,编译、调试更加方便。 基于构件的开发方法中的开发角色 (1)构件开发者。 (2)应用构件集成者。 (3)应用系统部署者。 (4)开发平台服务器供应商。 (5)应用系统开发工具供应商。 (6)系统管理员 配置硬件、网络和操作系统,监督和维护应用系统者。 12.2 敏捷方法 12.2.1 敏捷方法的概念与由来 2001年初,一批软件工程专家聚集在美国犹他州的雪鸟滑雪胜地,概括了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则。在价值观方面,他们认为: (1)个体和交流重于过程和工具。 (2)可运行的软件重于面面俱到的文档。 (3)客用户合作重于合同谈判。 (4)响应变化重于遵循计划。 同时,他们还提出以下原则: (1)对程序员而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。 (2)欢迎需求的变化,即使是在开发后期。敏捷过程能够驾驭变化,保持用户的竞争优势。 (3)经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。 (4)业务人员和开发者应在整个项目过程中始终朝夕在一起工作。 (5)由斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。 (6)在开发小组中最有效率也最有效果的信息传达方式是面对面地交谈。 (7)可以工作的软件是进度的主要度量标准。 (8)敏捷过程提倡可持续开发。出资人、开发人员和用户应总是维持不变的节奏。 (9)对卓越技术与良好设计的不断追求将有助于提高敏捷性。 (10)简单——尽可能减少工作量的艺术至关重要。 (11)最好的架构、需求和设计都源自自我组织的团队。 (12)每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。 敏捷方法具有以下两个主要特征: (1)敏捷开发的第一个特征是开发采用适应性方法,经过多次小型迭代的开发过程逐步逼近实际需求,从而为用户提供实际需要的软件。 (2)敏捷开发的第二个特征是以人为本。传统计划驱动方法以文档、过程为核心,而忽视了人的重要性。在敏捷方法里,程序员在软件开发中不再是单纯被管理的对象,而是开发的主体。 12.2.2 敏捷方法的典型代表 1.XP方法 2.水晶系列方法 3.适应性软件开发方法ASD 4.SCRUM 5.特性驱动开发方法FDD(Feature Driven Development) 12.3 基于Agent的软件开发方法 12.3.1 Agent系统的定义及其特点 在软件工程领域较为人们所接受的Agent的定义是:Agent是一个处于特定环境中,能感知并灵活、自主适应环境,可以代理设计者或使用者实现一定任务的具有较高自治能力的计算机实体;其根本目标是接受另外一个实体(可以是人、Agent、系统等)的委托或请求,并为之提供帮助和服务,能在该目标的驱动下主动采取包括社交、学习等手段在内的各种必要的行为,以感知、适应并对动态环境的变化进行适当的反应。 Agent的特点包括: (1)代理性。 (2)自制性。 (3)主动性。 (4)反应性。 (5)社会性。 (6)智能性。 代理在一定程度上可能表现的其他属性: (1)
文档评论(0)