写给师弟师妹看的软件工程系列-扯淡篇

栏目: 编程工具 · 发布时间: 5年前

内容简介:很多人说,软件工程是1门枯燥无味的课程,听着就想睡觉。不过,打算你能腾出5-10分钟的时间看看这份讲义,如果还是决定挺无聊的,再放弃也不迟。这里,我们对软件工程进行一些简单的介绍,并会对如下一些问题进行回答:当然,还对如下一些内容有所涉及:

很多人说,软件工程是1门枯燥无味的课程,听着就想睡觉。不过,打算你能腾出5-10分钟的时间看看这份讲义,如果还是决定挺无聊的,再放弃也不迟。

这里,我们对软件工程进行一些简单的介绍,并会对如下一些问题进行回答:

  • 软件工程是怎样一门学科?
  • 软件工程的定义是什么?
  • 软件工程学的内容有哪些?

当然,还对如下一些内容有所涉及:

  • 软件的开发模型有哪些?
  • 软件的生命周期有哪些?

下面我们开始学习。

引言与术语定义

软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件。其目的是在规定的时间、开发费用内,开发出满足用户需要的、质量合格的软件产品。

在该学科中,简单地说, 软件 指的是计算机程序及其有关的数据和文档。其中,数据是程序能适当处理的信息,其具有适当的数据结构。而 软件文档 是以人们可读的形式出现的技术数据和信息。

而之所以要进行软件工程化的原因,在于软件危机的出现。 软件危机 指的是计算机软件开发和维护时所遇到的一系列问题,其主要包含:

  • 如何让开发的软件满足社会对软件日益增长的需求
  • 如何维护数量不断增长的已有软件

可以看到,软件危机的出现主要在于新的需求出现以及对已有软件的维护。而为了解决软件危机,需要在技术措施(好的方法和工具)和组织管理措施等方面入手。而软甲工程正是从技术和管理这2方面来研究如何更好地开发和维护计算机软件的。

软件工程学的内容

在软件工程学中,其研究的主要内容有:

  • 软件开发技术
  • 软件工程管理

其中软件开发技术包括:

  • 软件工程方法学
  • 软件工具:为支持计算机软件的开发和维护而研制的程序系统。例如,设计阶段使用的编辑程序,测试阶段使用的跟踪程序等
  • 软件开发环境

而软件工程管理学包含:

  • 软件工程经济学
  • 软件管理学

软件工程方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段的活动、产品、验收的步骤和完成准则。其目的是按预定的时间和费用,成功地生产软件产品。其内容主要包括:

  • 软件费用管理
  • 人员组织
  • 工程计划管理
  • 软件配置管理

而软件工程方法学由如下部分组成:

  • 方法:完成软件开发任务的技术方法,其中最广泛的应用有传统的结构化(结构化分析、设计与实现)和面向对象这2种方法
  • 工具:为方法的运用提供自动或半自动的软件支撑环境
  • 过程:规定完成任务的工作阶段、工作内容、产品、验收的步骤和完成准则

软件生命周期

软件的生命周期(Software Life Cycle)是从设计软件产品开始到产品不能使用为止的时间周期。1个软件产品从问题的定义开始,经过开发、使用和维护,直到最后被淘汰的整个过程就是1个软件的生命周期。

我们可以按照软件规模、种类、开发方式和开发环境等方面来划分软件生命周期的阶段,不管采用哪种方法进行划分,其划分阶段的原则都是相同的。

而软件生命周期可以可以由如下3个时期组成:

  • 软件计划,包括问题定义、可行性研究和需求分析
  • 软件开发,包括软件设计(概要设计和详细设计)、软件实现和综合测试
  • 软件运行维护

软件开发模型

根据软件生产工程化的需要,软件生命周期的划分也会有所不同,于是形成了不同的软件生命周期模型(Software Life Cycle Model)或软件开发模型。

总体而言,软件开发模型主要包括:

  • 传统的瀑布模型
  • 快速原型模型

具体地说可以划分为:

  • 瀑布模型(用户需要到运行维护时期才能参与进来)
  • 快速原型模型(用户可以尽早参与进来)
  • 增量模型(增量开发与提交)
  • 喷泉模型(典型面向对象软件开发模型,主张分析与设计过程的重叠)
  • 螺旋模型(适用大型、资金多,安全要求高的项目)
  • 统一过程(使用UML,采取用例驱动和架构优先的策略,采用迭代增量建造方法)

在具体的软件项目开发过程中,可以选用某种生命周期模型,按照某种开发方法,使用相应的 工具 进行系统开发。

其中结构化方法可以使用瀑布模型、增量模型和螺旋模型进行开发,而面向对象方法可以采用快速原型、增量模型、喷泉模型以及统一过程来进行开发。

参考书籍:

《实用软件工程(第3版)》P1-17


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learn Python the Hard Way

Learn Python the Hard Way

Zed A. Shaw / Addison-Wesley Professional / 2013-10-11 / USD 39.99

Master Python and become a programmer-even if you never thought you could! This breakthrough book and CD can help practically anyone get started in programming. It's called "The Hard Way," but it's re......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码