一 过程
1 软件过程
瀑布模型:规范、文档驱动;最终产品可能不是用户真正需求;难以按模型进行,开发过程逆转代价大。
快速原型模型:快速构建可在计算机上运行的原型系统,让用户反馈,开发周期短;客户与开发者对原型的理解不同,准确的设计原型困难。
螺旋模型:可看作增加了风险分析过程的快速原型模型;风险驱动,适用内部大型项目的开发。
增量模型:短期提交可完成部分,逐步增加功能;软件需具备开放性会导致失去整体结构,也可能有无法集成的问题。
喷泉模型:体现了面向对象软件开发过程无缝迭代特性。
敏捷开发:是一套价值观和原则,大项目由各个可独立运行的小项目组成,此期间软件一直处于可使用状态。迭代式开发与增量交付。敏捷开发视频课程,敏捷开发之 Scrum 视频课程。
2 文档
- 需要文档的几个方面:
- 立项文档
- 需求分析文档
- 概要设计和架构设计
- 详细设计
- 源代码
- 配置文档
- 单元测试文档
- 集成测试文档
- 验收文档
- 维护文档
- 用户操作手册
- 项目管理文档
- 具体文档:
项目管理文档:
《软件项目计划》、《项目进度报告》、《项目开发总结报告》管理控制文档:
《配置文档》、《维护文档》软件开发文档:
《需求规格说明》、《概要设计说明》、《详细设计说明》、《软件源码文档》、《测试计划》、《软件测试分析报告》产品文档:
《用户操作手册》、《演示文件》
二 方法
1 软件工程知识图谱
参考一:
参考二:
参考三:
2 开发流程
三 工具
参考博文 《DevOps 与 CI/CD 的概念》。
1 工具集
- 项目管理:
- 任务跟踪:禅道、Trello、Teambition 等。
- 项目计划:禅道、Trello、Teambition 等。
- 团队沟通:Slack、Teambition 等。
- 需求分析:
- 需求跟踪:禅道、Teambition、Trello 等。
- 原型制作:Adobe XD CC、Axure、Sketch 等,参考:16种原型制作工具及使用介绍。
- 设计:
- UML 建模:Violet UM、ProcessOn、StarUML、Visio 等。(类图、对象图;用例图、状态图、活动图、序列图。参考:UML 各种图总结精华、各种图含义作用 )
- 图表制作:Excel、亿图等。
- 开发:
- 源代码管理:GitHub、GitLab、SubVersion 等(Git、SVN)。
- 持续集成:Jenkins、CireleCI、AppCenter、Travis CI、flow.ci 等。
- 测试:
- Bug 跟踪:禅道、Teambition、Trello、The Bug Genie 等。
- 测试管理平台:TestLink、Redmine、禅道、TestCenter 等。
- 自动化测试:常用的:QPT、LR。/ 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject。/ 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator。
- 补充,自动化构建和测试: Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit。
- 运行维护:
- 自动化部署:Jenkins、ElectricFlow、DeployBot、CireleCI、AppCenter、Travis CI 等。
- 日志分析:Logstash、CollectD、StatsD 等。
- 线上监控:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana 等。
2 补充,开发过程中相关工具
参见博文 《我的工具集/工具链(持续更新)》。