- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象分析与设计
Object-Oriented Analysis and Design
第五章 软件开发方法学
学习目标
理解软件开发的典型阶段
比较静态(结构化)建模和动态(基于时间的)建模
了解UML表示法
软件开发方法学
软件过程(Software Process)
编写优秀软件的步骤以及在此过程中得到的产品
软件开发方法学
软件过程、步骤及其产品
无论大、小系统均应在软件的整个生命周期中采用某
种方法学,以避免造成混乱
有时候也称为软件过程模型
使用软件开发方法学的必要性
小型系统
以利于在编码时强制贯彻一些原则
即使只完成方法学的基本步骤,也有利于提升对问题
的理解,提高解决方案的质量
编写代码只是方法学的一个步骤,完成其他步骤有利
于提交编写代码之前找出错误
方法学指出了下一步要完成的任务
方法学有利于编写扩展性好、重用性好以及易于调试
(有较多说明)的代码
使用软件开发方法学的必要性
大型系统
每个阶段的文档使得系统易于理解
减少延迟
• 明确定义工作流程、活动、角色以及交互依赖,减少人力及其他
资源浪费
提高在规定时间、规定预算内交付软件的机会
有利于用户、销售人员、管理人员以及开发人员的交流
• 易于抓住重点,开发更有序,减少误解和浪费
可重复性
• 类似项目可按类似的时间和成本交付
• 甚至可以将部分开发工作外包
更精确的成本计算
软件开发方法学
好的方法学解决的问题
计划:规定做什么
调度(Sheduling)
资源估计与获取
工作流(Workflow)
活动
角色
制品(Artifacts)
培训
教材的方法学
Ripple:RUP的简化版本
软件生产的典型阶段
需求
上下文是什么?
试图获得什么?
业务建模、系统需求建模(功能性描述)
• 确定做什么、不做什么
分析
处理哪些实体:实体、属性及其关联
如何确保处理实体的正确性?
设计
包括系统设计和子系统设计
完成系统需要什么硬件及软件?
如何实施?
代码及支持文件看起来是什么样?
基于经验、估计以及直觉进行决策
软件生产的典型阶段
类规格说明(Class Specification,类规约)
清晰、明确地描述程序组件的期望行为:如何使用、
如何行动
Design by Contract:调用者与被调用者按照事先的约定
履行义务
关键问题
• 组件之间的接口由什么规则控制?
• 能否去除模糊,确保正确?
类规格说明的使用
• 作为设计测试的基础
• 验证软件的正确性
• 文档化软件组件,并可由第三方实现
• 描述代码如何被其他应用安全地复用
软件生产的典型阶段
实现
编写代码,形成子系统,再通过子系统协作形成系统
测试
根据需求对系统进行功能、性能测试,以判断系统是否符合预期
目标
程序员可以做一些小测试,但主要测试不应该由编写软件的开发
人员完成
部署
向用户交付软件、硬件以及相应的文档
系统管理员必须做什么?如何对用户进行培训?
维护
改正性维护
完善性维护
预防性维护
软件工程和瀑布方法学
软件工
文档评论(0)