两种开发流程
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进行描述
分享到:
相关推荐
Java OOA & OOD & UML
OOA&OOD面向对象分析实验报告.doc
HeadFirst系列OOA和OODPart4
OOA和OOD方法,Shlaer&Mellor的OOA方法,Rumbaugh的OOAD方法等。不同的方法 体系都分别体现了人们对OOA、OOD,以及面向对象软件开发过程的不同认识。本文的主要 目的就是,试图通过对现有OOA与OOD方法的共性进行纵观...
文中给出实习实例:系统功能需求说明,OOA,OOD,JBOO 3.0使用方法说明等
图书管理系统OOA-OOD报告.pdf
面向对象软件开发技术(OOA-OOD-OOP)
面向对象分析(OOA)、面向对象设计(OOD)与UML的基础教程
ooa,ood介绍的入门资料,请想用,谢谢
首先对传统管理信息系统开发途径进行简单介绍,在此基础上分别从基本原理、具体研发思路以及开发方法的特点等方面对面向对象的系统开发方法进行阐述。
大学面向对象OOA&OOD;所有做过的实验整合
HeadFirst系列OOA和OODPart3
IBM的软件建模培训资料,里面丰富的PDF演讲资料.
HeadFirst系列OOA和OODPart2
HeadFirst系列OOA和OODPart6
HeadFirst系列OOA和OODPart7
HeadFirst系列OOA和OODPart5
HeadFirst系列之OOA和OODesign
UML复习资料,里面包含有详细的UML各个方面的问题与答案,其中有对象技术,RUP,OOD,OOA的问题。