内容简介:很多人说,软件工程是1门枯燥无味的课程,听着就想睡觉。不过,打算你能腾出5-10分钟的时间看看这份讲义,如果还是决定挺无聊的,再放弃也不迟。这里,我们对软件工程进行一些简单的介绍,并会对如下一些问题进行回答:当然,还对如下一些内容有所涉及:
很多人说,软件工程是1门枯燥无味的课程,听着就想睡觉。不过,打算你能腾出5-10分钟的时间看看这份讲义,如果还是决定挺无聊的,再放弃也不迟。
这里,我们对软件工程进行一些简单的介绍,并会对如下一些问题进行回答:
- 软件工程是怎样一门学科?
- 软件工程的定义是什么?
- 软件工程学的内容有哪些?
当然,还对如下一些内容有所涉及:
- 软件的开发模型有哪些?
- 软件的生命周期有哪些?
下面我们开始学习。
引言与术语定义
软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件。其目的是在规定的时间、开发费用内,开发出满足用户需要的、质量合格的软件产品。
在该学科中,简单地说, 软件 指的是计算机程序及其有关的数据和文档。其中,数据是程序能适当处理的信息,其具有适当的数据结构。而 软件文档 是以人们可读的形式出现的技术数据和信息。
而之所以要进行软件工程化的原因,在于软件危机的出现。 软件危机 指的是计算机软件开发和维护时所遇到的一系列问题,其主要包含:
- 如何让开发的软件满足社会对软件日益增长的需求
- 如何维护数量不断增长的已有软件
可以看到,软件危机的出现主要在于新的需求出现以及对已有软件的维护。而为了解决软件危机,需要在技术措施(好的方法和工具)和组织管理措施等方面入手。而软甲工程正是从技术和管理这2方面来研究如何更好地开发和维护计算机软件的。
软件工程学的内容
在软件工程学中,其研究的主要内容有:
- 软件开发技术
- 软件工程管理
其中软件开发技术包括:
- 软件工程方法学
- 软件工具:为支持计算机软件的开发和维护而研制的程序系统。例如,设计阶段使用的编辑程序,测试阶段使用的跟踪程序等
- 软件开发环境
而软件工程管理学包含:
- 软件工程经济学
- 软件管理学
软件工程方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段的活动、产品、验收的步骤和完成准则。其目的是按预定的时间和费用,成功地生产软件产品。其内容主要包括:
- 软件费用管理
- 人员组织
- 工程计划管理
- 软件配置管理
而软件工程方法学由如下部分组成:
- 方法:完成软件开发任务的技术方法,其中最广泛的应用有传统的结构化(结构化分析、设计与实现)和面向对象这2种方法
- 工具:为方法的运用提供自动或半自动的软件支撑环境
- 过程:规定完成任务的工作阶段、工作内容、产品、验收的步骤和完成准则
软件生命周期
软件的生命周期(Software Life Cycle)是从设计软件产品开始到产品不能使用为止的时间周期。1个软件产品从问题的定义开始,经过开发、使用和维护,直到最后被淘汰的整个过程就是1个软件的生命周期。
我们可以按照软件规模、种类、开发方式和开发环境等方面来划分软件生命周期的阶段,不管采用哪种方法进行划分,其划分阶段的原则都是相同的。
而软件生命周期可以可以由如下3个时期组成:
- 软件计划,包括问题定义、可行性研究和需求分析
- 软件开发,包括软件设计(概要设计和详细设计)、软件实现和综合测试
- 软件运行维护
软件开发模型
根据软件生产工程化的需要,软件生命周期的划分也会有所不同,于是形成了不同的软件生命周期模型(Software Life Cycle Model)或软件开发模型。
总体而言,软件开发模型主要包括:
- 传统的瀑布模型
- 快速原型模型
具体地说可以划分为:
- 瀑布模型(用户需要到运行维护时期才能参与进来)
- 快速原型模型(用户可以尽早参与进来)
- 增量模型(增量开发与提交)
- 喷泉模型(典型面向对象软件开发模型,主张分析与设计过程的重叠)
- 螺旋模型(适用大型、资金多,安全要求高的项目)
- 统一过程(使用UML,采取用例驱动和架构优先的策略,采用迭代增量建造方法)
在具体的软件项目开发过程中,可以选用某种生命周期模型,按照某种开发方法,使用相应的 工具 进行系统开发。
其中结构化方法可以使用瀑布模型、增量模型和螺旋模型进行开发,而面向对象方法可以采用快速原型、增量模型、喷泉模型以及统一过程来进行开发。
参考书籍:
《实用软件工程(第3版)》P1-17
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Essential PHP Security
Chris Shiflett / O'Reilly Media / 2005-10-13 / USD 29.95
Being highly flexible in building dynamic, database-driven web applications makes the PHP programming language one of the most popular web development tools in use today. It also works beautifully wit......一起来看看 《Essential PHP Security》 这本书的介绍吧!