`
lgl669
  • 浏览: 169490 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

OOA&OOD(三)

    博客分类:
  • java
阅读更多

两种开发流程
1、瀑布模型
需求、分析、设计、实现、测试
特点:
是一个至上而下的过程,每一个阶段都是相互独立的。
缺点:
1、需求不是一成不变的,这种过程不能适应需求的变化
2、每个阶段相互独立,导致人力资源的极大浪费
2、统一软件开发过程
把大项目划分成若干个子项目,以架构为中心,迭代的 增量的 软件开发流程
统一软件开发过程各个阶段:
初始化阶段:
需求
细化阶段:
分析和设计
构建阶段:
代码及功能的实现

移交阶段(过渡阶段):
测试和上线
在统一软件开发过程中迭代的工作流
需求与初始分析 -> 分析 -> 设计 -> 实现 -> 测试
迭代:重复执行上述的工作流
递增:每一次迭代以后,产生比上一次迭代更加优秀的产品
优点:
1、能够适应客户需求的变化
2、能够更好的控制项目的顺利进行
3、充分利用项目组的人力资源
--------------------------------------------------------------------------------------------
OOP的主要特征
1、普通关联(association)
public class Person{
private Computer computer;
private String name;
public Person(String name){
this.name = name;
}
public void use(Computer computer){
this.computer = computer;
System.out.println(name + " use " + computer);
}
}
class Computer{
}
2、聚合(aggregation也是关联关系的一种,但是要比普通关联关系更强)
public class Car{
public String name;
public Wheel wheel;
public Car(String name, Wheel wheel){
this.name = name;
this.wheel = wheel;
}
public void a accerate(){
this.wheel.accerate();
}
}
class Wheel{
public void accerate(){
System.out.println("wheel is accerating");
}
}
class Test{
public static void main(String [] args){
Wheel wheel = new Wheel();
test(wheel);
System.out.println(wheel);
}

public void test(Wheel wheel){
Car car = new Car("baoma",wheel);
car.accerate();
}
}
3、组合(composition也是关联关系的一种,但是要比聚合关系更强)
public class Circle{
private Center center;
private int radius;
public Circle(int x, int y, int radius){
this.center = new Center(x,y);
this.radius = radius;
}
public void draw(){
center.draw();
System.out.println("radius=" + radius);
}
}
class Center{
private int x;
private int y;
public Center(int x, int y){
this.x = x;
this.y = y;
}
public void draw(){
System.out.println("x=" + x + " y=" + y);
}
}
普通关联 < 聚合 < 组合
4、依赖
-----------------------------------------------------------------------------------------------
需求和初始化分析
1、通过多种渠道去收集信息,在收集信息的时候要从一些系统需要关注的角度去收集
2、通过收集到的信息描述问题陈述,以文档形式出现
3、通过需求信息,初步确定系统的架构
4、确定系统的问题域
5、挑选问题陈述中出现的名词作为系统的候选对象
6、对候选对象中出现的专业名词进行解释,形成数据字典
   数据字典一般由项目经理负责修改,其他人员可以阅读数据字典不是一成不变的,随着项目的进行,
会进行局部的修改,
   所以需要进行版本的控制(cvs)。
7、根据需求的信息,确定系统的活动者以及列出系统的时间列表,根据事件列表确定用例,使用UML
画出用例图
8、然后对每一个用例进行分析,对每一个用例的主要场景描述出来
9、对每一个用例使用一个活动图来描述用例执行的流程
10、对每一个用例进行风险评估,高风险的用例在早期迭代中优先开发

11、如果使用基于组件开发的话,使用组件图描述系统的组成
    如果需要,可以将系统的部署图也通过UML进行描述

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics