针对之前发的软件工程的问题,给的一些解答:
1.什么是软件工程?
2.什么是敏捷流程?敏捷体现在什么方面?
3.MSF?PM?的含义是什么?
4.个人,两个和团队该怎么开发一个项目?具体流程是什么?
解答:
- 软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
软件工程包括下列领域:软件需求分析、软件设计、软件构架、软件测试软件维护。
软件工程和下列学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。
2. 敏捷开发概述:
第一步:找出完成产品需要做的事情—Product Backlog。
第二步:决定当前的冲刺(Sprint)需要解决的事情—Sprint Backlog。
第三步:冲刺(Sprint)。
第四步:得到软件的一个增值版本,发布给用户。然后在此基础上又进一步计划增量的新功能和改进。
现有做法VS敏捷的做法
现有的做法 |
敏捷的做法 |
流程和工具 |
个人和交流 |
完备的文档 |
可用的软件 |
为合同谈判 |
与客户合作 |
执行原定计划 |
响应变化 |
3. PSP用来衡量一个团队能力的一套模型。
个人:
一个软件工程师在收到一个任务后应该:
(1) 计划
估计这个任务需要多长时间。
(2) 开发
分析需求
生成设计文档
设计复审(和同事审核设计文档)
代码规范(为目前的开发制定合适的规范)
具体设计
具体编码
代码复审
测试(包括自测,修改代码,提交修改)
(3) 记录用时
(4) 测试报告
(5) 计算工作量
(6) 事后总结
(7) 提出过程改进计划
两人:
(1) 萌芽阶段(Forming)。
(2) 磨合阶段(Storming)。
(3) 规范阶段(Norming)。
(4) 创造阶段(解体阶段)。
团队:
RUP(Rational Unified Process)把软件开发的各个阶段整合在一个统一的框架里。
要完成一个复杂的软件项目,团队大的各种成员在不同阶段做不同的事情,这些不同类型的工作在RUP中叫做规程或者工作流。
(1) 业务建模
(2) 需求
(3) 分析和统计
(4) 实现
(5) 测试
(6) 部署
(7) 配置和变更管理
(8) 项目管理
(9) 环境
3. MSF(Microsoft Solution Framework)是微软解决方案框架。
MSF的基本原则:
(1) 推动信息共享与沟通
(2) 为共同的远景而工作
(3) 充分授权和信任
(4) 各司其职,对项目共同负责
(5) 交付增量的价值
(6) 保持敏捷,预期和适应变化
(7) 投资质量
(8) 学习所有的经验
(9) 与顾客合作
4. PM:Product Manager、Project Manager、Program Manager.
Product Manager:产品经理-正确的做产品。
Project Manager:项目经理-正确的做流程。
Program Manager:微软的职位名称。微软团队三足鼎立的角色分配就是PM、开发、测试。PM负责除产品开发和测试之外的所有事情。