OOA&OOD(三)

两种开发流程
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进行描述

基于Spring Boot搭建的一个多功能在线学习系统的实现细节。系统分为管理员和用户两个主要模块。管理员负责视频、文件和文章资料的管理以及系统运营维护;用户则可以进行视频播放、资料下载、参与学习论坛并享受个性化学习服务。文中重点探讨了文件下载的安全性和性能优化(如使用Resource对象避免内存溢出),积分排行榜的高效实现(采用Redis Sorted Set结构),敏感词过滤机制(利用DFA算法构建内存过滤树)以及视频播放的浏览器兼容性解决方案(通过FFmpeg调整MOOV原子位置)。此外,还提到了权限管理方面自定义动态加载器的应用,提高了系统的灵活性和易用性。 适合人群:对Spring Boot有一定了解,希望深入理解其实际应用的技术人员,尤其是从事在线教育平台开发的相关从业者。 使用场景及目标:适用于需要快速搭建稳定高效的在线学习平台的企业或团队。目标在于提供一套完整的解决方案,涵盖从资源管理到用户体验优化等多个方面,帮助开发者更好地理解和掌握Spring Boot框架的实际运用技巧。 其他说明:文中不仅提供了具体的代码示例和技术思路,还分享了许多实践经验教训,对于提高项目质量有着重要的指导意义。同时强调了安全性、性能优化等方面的重要性,确保系统能够应对大规模用户的并发访问需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值