两种开发流程
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进行描述
分享到:
相关推荐
接下来是OOD,即设计阶段,这一步骤将分析结果转化为具体的软件设计。设计时,我们需考虑软件架构、模块划分、接口设计以及类与对象之间的关系。设计模式在这里起到了关键作用,例如工厂模式、观察者模式、策略模式...
面向对象分析(Object-Oriented Analysis,OOA)与面向对象设计(Object-Oriented Design,OOD)是软件开发过程中的重要阶段,特别是在构建复杂的系统如网上宠物商店时。本实验报告将详细阐述这两个阶段的需求描述、...
HeadFirst系列OOA和OODPart4
图书管理系统OOA-OOD报告 图书管理系统OOA-OOD报告是一个详细的技术报告,旨在设计和开发一个基于计算机的图书管理系统。该系统旨在帮助图书馆管理员更有效地管理图书,包括图书分类、图书信息管理、读者管理、图书...
### 三、OOA 与 OOD 之间的关系 虽然 OOA 和 OOD 在概念上有所区别,但它们之间存在着密切的联系。通常情况下,OOA 结果会直接成为 OOD 的输入,而 OOD 的过程也会不断地回溯到 OOA 的成果进行修正和完善。 - **...
在设计阶段,即面向对象设计(OOD),Booch提倡使用用例驱动的方式,每个用例代表一个用户与系统交互的场景。通过用例,我们可以确定系统的边界,识别出主要的参与者和系统功能。此外,他还引入了设计模式,如工厂...
**对象导向分析(Object-Oriented Analysis,OOA)与对象导向设计(Object-Oriented Design,OOD)是软件工程中的关键步骤,特别是在复杂系统开发中。这些方法论旨在通过模拟现实世界中的实体和关系来创建高效、可...
面向对象分析(OOA)和面向对象设计(OOD)是软件工程领域中两种重要的开发方法,它们在管理信息系统(MIS)的开发中扮演了关键角色。OOA和OOD方法能够帮助系统开发者以更加直观和模块化的方式构建复杂的信息系统,...
面向对象软件开发技术(OOA-OOD-OOP)
面向对象分析(OOA)、面向对象设计(OOD)与UML的基础教程
UML提供了一套图形化的建模工具,RUP提供了一个完整的开发流程框架,而OOA和OOD则关注于分析和设计阶段。IBM的培训资料通过深入浅出的讲解和实例,帮助开发者掌握这些核心技能,从而提升软件项目的规划、设计和实施...
在本教程中,我们将探索面向对象分析(OOA)和面向对象设计(OOD)的基本概念。这些方法是软件开发过程中的关键步骤,特别是在理解和建模复杂系统时。我们的目标是展示如何通过用例分析、场景定义、顺序图和类图来...
HeadFirst系列OOA和OODPart3
HeadFirst系列OOA和OODPart2
HeadFirst系列OOA和OODPart6
HeadFirst系列OOA和OODPart5
HeadFirst系列OOA和OODPart7
HeadFirst系列之OOA和OODesign