问题定义
1、问题:现实与理想的差距
需要解答的问题
需要解决的疑问和矛盾
2、基本任务:
分析需要解决的问题,给出问题定义报告
3、问题内容
1)问题背景
2)提出系统开发的总体目标
3)明确问题的范围、性质
4)明确要实现的目标、功能
5)提出开发的标准、技术等条件
确定形式:合作(开发)意向书,描述用自然语言
参与人员:企业工程师、项目经理
时间:是生命周期最短时期 <= 1天
手段:走访、调查、座谈、现场参观
项目组 <= 3人
可行性研究
1、目标:用最小的代价,在尽可能较短的时间确定项目是否能够开发,是否值得开发
2、结论:可以、不可、满足某些条件后可行
3、可行性研究的任务
1)技术可行性
2)人员可行性
3)经济可行性
4)社会效益,法律等
4、步骤:
1)确定项目目标、规模
2)研究正在运行的系统
3)建立系统方法、逻辑模型
4)给出、评价各种方案
5)推荐可行方案
6)编写可行研究报告
时间 <= 2周
分析
1、OOA目标:
运用OO方法,对问题域和系统责任进行分析和理解,找出描绘问题域和系统责任的对象,定义它们的
属性操作及之间的关系,建立一个符合问题域、满足用户需求的OOA模型
2、OOA过程:
1)需求分析:明确用户需求
2)需求分析模型化:用UML规范描述,形成OOA模型,是设计的依据
形成OOA模型,是设计的依据
3、OOA与OOD的责任划分
OOA建立OOA模型,不考虑与具体实现有关的因素,使OOA模型独立于具体实现。
4、OOA模型:需求模型(用例图)、基本模型(三个层)、辅助模型(交互图、行为图、包图等)、模型规约(对元素详细说明)
图示:
OOA建模步骤
图示
设计
OOD针对实现,用OO方法设计
1、将OOA结果进行必要的调整和修改,是OOD的基础
2、建立人机界面、数据存储、控制驱动模型
强调:OOA 和 OOD 采用概念方法与OOA相同。
OOA和OOD面临的主要问题
1、问题域和系统责任越来越复杂
问题域:被开发系统所在的应用领域
系统责任:所开发系统应该具备的功能
2、交流问题:
开发人员、专家、用户因知识储备不一样
3、需求的不断变化
社会发展迅速
用户的主客观因素
经费、技术
需求变化改变功能、外系统接口、数据(属性)、系统对象,改变容易程度依次递减
4、软件复用要求
不只是程序代码,还有分析结果,都变成可复用部件