1.项目启动阶段:
- 项目描述
- 项目目标
- 项目实施:
- 项目调研(业务调研,技术调研,编写项目调研报告)
- 工作量评估(注册/登录:3天,房屋管理:5天…)
- 风险评估(技术风险,管理风险)
- 项目里程碑阶段(采用瀑布式:项目启动阶段,需求分析阶段,系统设计阶段,编码实现与测试阶段–(采用迭代开发思路:进行每一个功能迭代开发,每一个功能迭代作为一个"项目"开发,涉及"功能需求、设计、实现"),验收和关闭阶段)
- WBS工作任务分解(五层,每层均可有可交付成果,方法:类比分解法、自上而下分解法、自下而上汇集法)
- 项目计划(甘特图)
2.需求分析:
- 项目描述
- 项目目标
- 项目实施:
- 系统功能: 项目介绍、用户特征、系统用例图
- 功能需求分析:
注册/登录 房屋管理… - 数据需求分析:
系统的数据信息来自于流程处理、事务描述、信息传递、信息存储、统计报表、界面操作等,可通过数据字典、E-R图、概念类(UML高层类图)等方式来表示
3.系统设计:
分为概要设计(或称为逻辑设计/高层设计)和详细设计(或称为模块化设计、底层设计),涉及模块设计、程序结构设计、界面设计、数据库设计、异常处理设计等。设计过程的输入时需求规格说明书,描述系统要"做什么",输出是系统设计说明书,描述系统"怎么做"
- 项目描述
- 项目目标
- 项目实施:
- 模块设计:注册、登录/退出、房屋管理、租赁管理、系统管理
- 程序结构设计:
- 框架设计:三层架构
- 界面设计:
- 数据库设计:数据分析、概念结构分析、逻辑结构分析、物理结构分析、数据库构建、数据库验证
常见不良设计习惯:
- 不进行数据库设计,利用可视化工具,根据编程需要直接右键建表
- 不进行数据库设计和建模,根据项目需要直接手动编制sql脚本
- 数据库设计不合理,不规范,冗余
- 异常处理设计:自定义异常类,向上抛出,直至表示层统一处理
例如:dao catch(){throw new AppException(“XXDao.func1()”)}当数据访问层某个方法发生异常时,向上抛出自定义异常,异常信息为类名和方法名(如:com.apple.dao.addUser ) 直至表示层(web)作出处理,并经请求导向异常信息页面
AppException:
int exceptionCode:异常编号 String message:异常信息
三个构造方法:message code和message 空构造
方法:
getDetailMessage() detailMessage:
exceptionCode+message getMessage-message getCode-code
可以在构造方法中进行初始化,进行处理,以免在异常处理后面的代码显得很臃肿!
- 详细设计(类设计):
实体类,表示层类(web层–controller,ssh中struts2充当表示层,也就是Action类)
业务逻辑层类,数据访问层类,工具类(DBUtil,上传处理类,常量类/枚举类)
举例:注册这个业务逻辑 在service中先判断用户是否存在,在插入
登录业务逻辑:先根据账号密码判断是否
在设计方法的时候可以按照如下步骤:
自顶向下,自底向上
逐步求精:大问题–易于处理的小问题
优点:
- 更简单的程序
- 重用方法
- 易于开发调试测试
- 更方便团队合作