软件开发流程(不全,仅供参考)
一、人
-
人员编配:
1. BA: (Business Analys 缩写) 业务需求分析师 编配: 1 名 职责: 负责与客户对接,分析客户需求,整理需求分析文档(或线框图、手绘图等) (注:中小型公司可能由项目经理或者产品经理兼任) 2. PM:(Project Manager 缩写) 项目经理 编配: 1 名 职责: 管控项目质量、项目进度,组织项目设计等 3. PG: (Programmer 缩写) 程序员 编配: 4-5 名 SE(Senior Engineer): 高级工程师 TL(Team Leader):项目组长 Coder: 程序员 4. Tester(QA): 测试工程师 编配: 公有 5. UI:(User Interface 缩写) 界面设计 编配: 公有 职责: 对软件的人机交互、操作逻辑、界面美观的整体设计 6. FE: (Front-End Development) 前端开发 编配: 公有
-
顺带提一嘴:
成长路线:
- 抬头仰望星空,不做低头苦干的码畜(Coder眼里有Designer的站位,Designer眼里有Architect的站位)
- 或者走上管理层
二、事
1.项目本身
1. 项目立项
2. 需求分析: Architect
1. 谈需求
对象: BA 或 PM -> 客户
输入: (客户)提出需求
输出: (PM/BA)整理需求分析文档
2. 快速原型
对象: BA 或 PM
输入: (PM)需求分析文档
输出: 线框图、手绘图
3. UI(效果)
对象: BA -> UI
输入: 线框图、手绘图
输出: UI效果图
3. 项目设计: Designer
1. 概要设计:
对象: 架构师(Architect) 小型一般由PM、SE等
输入: 效果图 + 需求分析文档
输出: 概要设计文档
2. 详细设计
对象: Designer 小型一般由SE、TL等
输入: 概要设计文档、需求分析文档+UI效果图
输出:项目架构、详细设计文档
3. 数据库设计
对象: DBA (Database Administrator)
输入: 效果图、需求分析文档
输出: 数据库表结构、数据库模拟数据
4. 项目开发:Coding
1. 开发规范
输入:公司、行业内的开发规范文档
输出:编码规范的代码
2. 编码
对象: Coder
输入: PM 下达的开发任务
输出: 可以提交到 开发库的代码
技术:
JavaSE
JCF
IO
MultiThread
Reflection
Annotation
Mybatis/Hibernate/JDBC
Spring
SpringMVC
SSM/SSH整合
Spring Boot
Spring Security 认证(安全)
Spring Cloud
辅助性技术
maven
git
Spring Test
中间件
Tomcat
JBoss
WebLogic(银行)
Nginx
消息中间件MQ
Active MQ
Rabbit MQ
Rocket MQ
Kafka
.....
单元测试
输入: 开发库中的代码
输出: 测试结果
注意: 尽量自己多测试代码,少让测试工程师测试,指出自身代码的bug
5. 集成测试: Tester
1. 黑盒测试
2. 白盒测试
3. 压力测试(不一定有)
6. 项目验收/交付
1. 项目打包部署
2. SAAS(软件即服务)部署
3. 由实施工程师负责交付
分布式项目
复杂的大型项目
7. 项目结项
2. 保障项目成功的辅助性事务
1. 人的辅助
1. PM: 整个项目的进度管控
2. 工具的辅助
-
问题跟踪系统(或者普通的Email)
1. Open issue 2. ReOpen issue 3. Fixed issue
-
项目过程管控
1. 需求变更 客户签字 可以合理的需求变更 2. 项目进度 一般面试项目经理会问到 WBS(工作结构分解) Milestone(里程碑) 向甲方汇报项目进度 开发计划 任务计划 任务的基本时间规划 第三方认证(让客户认可公司) 软件开发认证: CMMI(一般的公司CMMI3就够),但是大多数小公司没有此资质 ......
-
项目质量管控
参考: 快程乐码!致谢:乐码课堂
文末: 配上整理好的思维导图 !!!
以及概略图!!!
上述资源连接:https://pan.baidu.com/s/1llS7S-6jOyOjRYlPQBlizg
提取码:52tj