单元测试软件工程概述

软件工程简介

软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。

在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。

软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。

(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。      (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

一、软件工程概述

概念:应需而生

软件工程是一类工程。工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量和成本的管理。   软件工程这一概念,主要是针对20世纪60年代“软件危机”而提出的。它首次出现在1968年NATO(北大西洋公约组织)会议上。自这一概念提出以来,围绕软件项目,开展了有关开发模型、方法以及支持工具的研究。其主要成果有:提出了瀑布模型,开发了一些结构化程序设计语言(例如PASCAL语言,Ada语言)、结构化方法等。并且围绕项目管理提出了费用估算、文档复审等方法和工具。综观60年代末至80年代初,其主要特征是,前期着重研究系统实现技术,后期开始强调开发管理和软件质量。

70年代初,自“软件工厂”这一概念提出以来,主要围绕软件过程以及软件复用,开展了有关软件生产技术和软件生产管理的研究与实践。其主要成果有:提出了应用广泛的面向对象语言以及相关的面向对象方法,大力开展了计算机辅助软件工程的研究与实践。尤其是近几年来,针对软件复用及软件生产,软件构件技术以及软件质量控制技术、质量保证技术得到了广泛的应用。目前各个软件企业都十分重视资质认证,并想通过这些工作进行企业管理和技术的提升。软件工程所涉及的要素可概括如下:

根据这一框架,可以看出:软件工程涉及了软件工程的目标、软件工程原则和软件工程活动。 目标:我的眼里只有“产品”

软件工程的主要目标是:生产具有正确性、可用性以及开销合宜的产品。正确性意指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜性是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多问题有待解决,它们形成了对过程、过程模型及工程方法选取的约束。

软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。主要包括需求、设计、实现、确认以及支持等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、每一模块接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。支持活动包括修改和完善。伴随以上活动,还有管理过程、支持过程、培训过程等。        框架:四项基本原则是基石

软件工程围绕工程设计、工程支持以及工程管理,提出了以下四项基本原则:       第一,选取适宜开发范型。该原则与系统设计有关。在系统设计中,软件需求化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

第三,提供高质量的工程支持。“工欲善其事,必先利其器”。在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

第四,重视开发过程的管理。软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。

这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范型、设计方法、支持过程以及过程管理。根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发范型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)
及软件经济学等。

时间: 2024-08-01 10:44:29

单元测试软件工程概述的相关文章

软件工程——概述

上次因为临时需要就直接看了系统架构那一章,现在打算从头看起.不求对<软件工程>有多么深入的理解,只求把书变薄就行了. 软件工程定义: 采用工程的概念.原理.技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能得到的最好的技术方法相结合. 软件工程的目标: 采用工程化的方法,提高软件生产质量和软件生产率,降低软件开发成本,成功地构建一个满足用户需求的软件系统. 软件工程开发活动: 需求获取 分析 系统设计 对象设计 实现 测试 软件工程过程: 在软件工程的定义中,过程是一组将输

构建之法现代软件工程概述

程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言. 程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法. 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件. 软件开发技术的进步未能满足发展的要求.在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机. 表现方面: (1) 用户对开发出的软件很难满意. (2

软件工程概述

⒈项目计划阶段:确立项目开发的经济或社会效益,说明项目开发的必要性和初步计划. ⒉需求分析阶段:通过对客户业务的了解和客户对流程的讨论,对需求进行基本建模,最终形成求规格说明书. ⒊概要设计阶段:通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档. ⒋详细设计阶段:此部分在需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明). ⒌开发编码阶段:按详细设计文档要求编码,并完成单元测试. ⒍测试与系统集成阶段:对所有功能模块进行模拟数据测试及其他相关性测

1.1软件工程概述之软件危机

典型表现 1.对软件开发成本和进度的估计不够准确.2.用户对"已完成的"软件系统不满意的现象经常出现.3.软件产品的质量往往靠不住.4.软件常常是不可维护的.(不可重用)5.软件没有适当的文档说明.6.软件成本在计算机系统总成本中占比越来越高.7.软件开发生产率提升的速度远远跟不上计算机应用迅速普及和深入的趋势.(供不应求) 原因: 1.软件不同于硬件,是一种逻辑组织形式,进度很难被衡量,管理和控制软件开发很困难.2.软件运行出错时,是开发过程中没有检测出来的bug,想要修正和维护难度

软件工程01:软件工程概述

1. 定义 软件:是包括程序.数据及其相关文档的完整集合. 程序和数据是构造软件的基础,文档是软件质量的保证,也是保证软件更新及生命周期长短的必需品. 2. 特点 软件是一种逻辑实体,具有抽象性. 软件开发过程中没有明显的制造过程 ,应理解为"创作". 不存在机械磨损和老化问题,但存在软件退化问题 . 软件的开发和运行受到计算机系统的约束和限制. 软件开发至今未完全摆脱手工艺的开发方式. 软件是复杂的原因:(1).实际需求的复杂性 (2).程序逻辑的复杂性 3. 分类 根据软件服务对象

面向对象软件工程知识点

面向对象软件工程知识点  1.封装是指把对象的(A)结合在一起,组成一个独立的对象. A.属性和操作 B.信息流 C.消息和事件 D.数据的集合 2.状态图和活动图建立了UML面向对象开发过程中的对象动态(B)模型. A.交互      B.状态       C.体系结构     D.软件复用 3.UML的(C)模型图由活动图.顺序图.状态图和合作图组成. A.用例 B.静态 C.动态 D.系统 4.在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用(A). A.活动图     B.

程序员教程-5章-软件工程基础知识

先给出目录结构 5.1 软件工程概述 5.1.1 软件生存周期 1 问题定义 2 可行性分析 3 需求分析 4 总体设计 5 详细设计 6 编码和单元测试 7 综合测试 8 维护 5.1.2 软件生存周期模型 1 瀑布模型 2 增量模型 3 演化模型 4 螺旋模型 5 喷泉模型 6 统一过程 7 敏捷方法 5.1.3 软件过程评估 1 软件能力成熟度模型 2 能力成熟度模型集成 5.1.4 软件工具 1 软件开发工具 2 软件维护工具 3 软件管理和软件支持工具 5.1.5 软件开发环境 5.2

(4)软件工程基础知识

4.1 软件工程概述 4.2 软件过程模型 4.3 软件开发方法 4.4 软件工具与开发环境 4.5 软件项目管理 4.6 风险管理 4.7 软禁读量

西安建设科技专修学院高考软件工程专业常见问题解答

#软件工程概述# #简介# 软件工程是研究和应用如何以系统性的.规范化的.可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的一门学科. #软件工程学什么# 本科阶段主要学习并研究开发软件的一些基本理论.开发工具.开发过程.编程技巧.软件开发的过程组织等相关内容,主要偏向软件开发(就是编程啦~). 专业课方面会学一些程序语言比如C++,java,汇编语言,编译原理,还有数据结构,算法分析,统一建模语言,数据库,操作系统,计算机组成