软件工程

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来

工程方法:有目的、有计划、有步骤地解决问题的方法

软件的发展阶段经历了个人程序时期、软件作坊时期,现在进入了软件工程时期,以应对软件危机和提高软件开发的质量和效率

软件的定义及特点

软件(中国大陆及香港用语,台湾称作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分

特点

软件工程的起源

软件的种类

软件开发的本质和基本手段

批注 2019-07-04 195822 批注 2019-07-04 200037

软件工程框架

软件过程

软件生存周期过程的概念

软件生存周期过程的分类

软件生存周期模型

与 软件开发模型

批注 2019-07-05 195246

常见的软件生存周期模型

瀑布模型

graph TD
  A[问题的定义及规划]
  A -->|需求文档<br/>可行性研究报告| B[需求分析]
  B -->|需求分析文档| C[软件设计]
  C -->|架构设计文档| D[程序编码]
  D -->|可运行的程序代码| E[软件测试]
  E -->|测试报告| F[运行维护]
  F -->|使用说明文档| G[软件开发完成]

优点:

缺点:

瀑布模型让让软件开发过程有序可控,同时也让分工写作成为可能,最重要的是提升了软件质量

原型模型

先迅速建造一个可以运行的软件原型,然后收集用户反馈,再反复修改确认,使开发出的软件能真正反映用户需求

增量模型

把待开发的软件系统模块化,然后在每个小模块的开发过程中,应用一个小瀑布模型,对这个模块进行需求分析、设计、编码和测试

迭代模型

每次只设计和实现产品的一部分,然后逐步完成更多功能。每次设计和实现一个阶段叫做一个迭代

喷泉模型