软件工程相关(整理总结)

作者 Marlous 日期 2019-02-28
软件工程相关(整理总结)

一 过程

1 软件过程

  • 瀑布模型:规范、文档驱动;最终产品可能不是用户真正需求;难以按模型进行,开发过程逆转代价大。

  • 快速原型模型:快速构建可在计算机上运行的原型系统,让用户反馈,开发周期短;客户与开发者对原型的理解不同,准确的设计原型困难。

  • 螺旋模型:可看作增加了风险分析过程的快速原型模型;风险驱动,适用内部大型项目的开发。

  • 增量模型:短期提交可完成部分,逐步增加功能;软件需具备开放性会导致失去整体结构,也可能有无法集成的问题。

  • 喷泉模型:体现了面向对象软件开发过程无缝迭代特性。

  • 敏捷开发:是一套价值观和原则,大项目由各个可独立运行的小项目组成,此期间软件一直处于可使用状态。迭代式开发与增量交付。敏捷开发视频课程敏捷开发之 Scrum 视频课程

2 文档

  1. 需要文档的几个方面:
  • 立项文档
  • 需求分析文档
  • 概要设计和架构设计
  • 详细设计
  • 源代码
  • 配置文档
  • 单元测试文档
  • 集成测试文档
  • 验收文档
  • 维护文档
  • 用户操作手册
  • 项目管理文档
  1. 具体文档:
  • 项目管理文档:
    《软件项目计划》、《项目进度报告》、《项目开发总结报告》

  • 管理控制文档:
    《配置文档》、《维护文档》

  • 软件开发文档:
    《需求规格说明》、《概要设计说明》、《详细设计说明》、《软件源码文档》、《测试计划》、《软件测试分析报告》

  • 产品文档:
    《用户操作手册》、《演示文件》

二 方法

1 软件工程知识图谱

  • 参考一:
    参考一

  • 参考二:
    参考二
    参考二

  • 参考三:
    参考三

2 开发流程

开发流程

三 工具

参考博文 《DevOps 与 CI/CD 的概念》。

1 工具集

  1. 项目管理:
  • 任务跟踪:禅道、Trello、Teambition 等。
  • 项目计划:禅道、Trello、Teambition 等。
  • 团队沟通:Slack、Teambition 等。
  1. 需求分析:
  1. 设计:
  1. 开发:
  • 源代码管理:GitHub、GitLab、SubVersion 等(Git、SVN)。
  • 持续集成:Jenkins、CireleCI、AppCenter、Travis CI、flow.ci 等。
  1. 测试:
  • 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。
  1. 运行维护:
  • 自动化部署:Jenkins、ElectricFlow、DeployBot、CireleCI、AppCenter、Travis CI 等。
  • 日志分析:Logstash、CollectD、StatsD 等。
  • 线上监控:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana 等。

2 补充,开发过程中相关工具

参见博文 《我的工具集/工具链(持续更新)》。