登陆注册
8724600000004

第4章 软件工程概述(2)

2.软件配置管理(Software Configuration Management)

在构建软件时,由于种种原因,如用户需求的变化,再如编码时发现了设计阶段的某个错误,这些都会导致变更(Change)的出现。正是这个原因导致了软件过程的复杂,导致了很多软件开发的失败。然而试图逃避这一问题是不现实的,必须坦然接受这一现实。应该说变更是软件开发过程中最为常见的现象,因而在软件开发过程中必须能够有效地控制变更。软件配置管理就是这样一种用来管理软件变更的活动。具体而言,软件配置管理是一组软件工程活动,其中包括软件配置项(Software Configuration Item,SCI)的识别,也就是可能变更的产品、文档、构件、工具的识别,SCI关系的建立,以及SCI的版本控制、变更控制、SCI的状态报告(Status Accounting)和软件配置审计(Software Configuration Audit)。

3.软件质量管理(SoftwareQualityManagement)

在全面质量管理(TotalQualityManagement)的大背景下,软件行业也开始了有其自身特色的质量运动——软件质量保证(Software Quality Assurance,SQA)。

要理解什么是SQA,首先应该明白什么是软件质量(Software Quality,SQ),Pressman,软件质量是指软件要符合显式声明的功能和性能要求、显式文档化的开发标准以及专业人员开发的软件所应具有的隐含特征。

SQA是贯穿于整个软件开发过程中的庇护性行为,通常由SQA组负责实施。SQA活动包括,质量控制计划的制定,软件质量标准的制定或选用、产品的评审,质量的跟踪等。SQA常用的手段包括软件评审,包括走查(walkthrough)和审查(inspection),测试的策略和技术,软件变更控制等。

由于SQA贯穿于整个软件生命周期,其内容和形式与前面谈到的很多主题如软件测试、软件配置管理均有着若干的关联,所以SQA本身非常复杂。这里需要特别提出的是在SQA领域里,近年来谈的比较多的“V&;V”策略。

“V&;V”是指Verification和Validation。Verification要求软件工程过程中每一阶段的结果都能得到验证,这一验证主要是由相关的分析设计或编码人员自身完成,当然也可以聘请该领域的专家共同完成该阶段结果的验证,验证的依据主要是该阶段或者前续阶段的分析设计文档或者相关的行业规范。Validation主要是从最终实现软件的可用性的角度,由最终的用户对软件工程各阶段的结果加以确认核实。

“V&;V”策略本质上是一种防患于未然的策略,这种策略是基于这样的思想,保证软件质量的根本方法在于软件缺陷与错误的预防而非缺陷和错误的纠正。这与传统软件工程中的质量保证仅仅是在软件构造实现后靠软件测试去发现缺陷的做法恰好相反。这一策略已经被很多软件专家推崇为解决软件危机的根本出路。它在很大程度上也是软件质量保证的最为有效的方法。虽然这种策略非常重要,但是它的实现并不困难。前面提到的走查(如程序员对自己的代码检查一遍)与审查(如组织专家对设计方案进行评审)就是最为常见的方法。

4.软件过程管理(SoftwareProcessManagement)

过程管理源于管理科学。最初源于打破按照职能部门进行企业管理的传统管理模式,因为人们觉得,在新的企业环境下,企业必须加强跨部门的合作,以便资源共享,促进沟通,加快市场反应能力。在管理科学中,这无疑是思想上的一次革命性的变革。在这样的大背景下,软件行业也受到启发,以过程的观念审视整个软件开发过程。从20世纪90年代初开始,软件工程组织(Software Engineering Institute,SEI),以Watts Humphrey为代表的众多软件过程管理专家,先后提出能力成熟度模型(Capability Maturity Model,CMM),个人软件过程(Personal Software Process,PSP),小组软件过程(Team Software Process,TSP),对软件过程管理的发展起到了积极的推进作用。

1.2.3软件工具及方法

1.软件工程工具(Software Engineering Tools)

现代软件工程发展的一个极为明显的特征就是计算机辅助软件工程(Computer Aided Software Engineering)有了长足的发展。这其中包括软件工程过程中各个阶段的辅助工具不断出现,现在可以看到可用来进行需求分析的形式化表达工具,如Rational公司的Rose软件;进行软件辅助设计的工具,如Microsoft的Visio,Sybase的Power Design、Erwin等;进行各类自动测试的工具,如Nunit、Csunit、Junit等;还有各类正向反向软件工程工具,比如Visio、Rose都是其中的佼佼者;各种辅助软件项目管理的工具,如Microsoft的Project2000;着名的软件配置管理工具,如Microsoft的Visual Source Safe等。

2.软件工程方法(Software Engineering Methods)

软件工程中最为典型的方法有两种,一是软件工程刚刚开始时提出的方法——结构化方法(Structured Method);二是当今的主流开发方法——面向对象的方法(Object Oriented Methods)。

1)结构化方法概述

结构化方法采用传统的瀑布模型,将软件过程分为:结构化分析,结构化设计,结构化编程等阶段。结构化分析通常使用数据流程图(Data Flow Diagram,DFD)和数据字典(Data Dictionary)来描述系统的需求。结构化设计通常采用模块化的设计思想,将系统划分为多个功能模块。

2)面向对象方法概述

面向对象方法将软件过程分为:面向对象的分析,面向对象的设计,面向对象的编程等阶段。面向对象方法决不仅仅是传统认识上的一种编程方法,而更是一种思维方法,认知方法。面向对象的认知方法认为,人们所需要解决的问题以及最终提供的软件方案都可以看作是由相互关联的实体所组成。面向对象的分析就是要弄清楚待解决的问题(问题域空间)的实体的组成及其相互关系。面向对象的设计其实就是描述清解决方案(又称之为解空间)的实体的组成及其相互关系。面向对象的编程则是面向对象的思维方式和面向对象的一些具体的方法(如继承,多态)在编程中的应用。

下面介绍面向对象方法中的几个概念:

①对象(Object)是一个具体的客观存在,例如,人是一个实体,其中每个具体的人就是对象。

②属性(Attribute)是对象的状态,例如,人的身高,体重。

③方法(Method)是对象的行为,例如,人能说话,走路。

④消息(Message)是对象与环境之间信息的传递,例如,张三要通知李四来吃饭,必须通过“消息”(Message)来实现。

⑤封装(Encapsulation)是指对实体内部实现细节的隐藏,其目的是为了实现信息的隐藏以提高系统的可维护性。

⑥继承(Inheritance)就像每个人都会继承父母的特征一样,每个类或实体也可以继承(Inheritance)另外一些类或实体的特征,这些特征包括一些共有的方法和属性。

⑦多态(Polymorphism)是用不同的实现来完成对同一消息的不同响应。

3.UML概述

UML(统一建模语言)是为软件系统的制品进行描述(Specifying)、可视化(Visualizing)、构造(Constructing)、文档化(Documenting)的一种语言。

UML是一种良好定义,易于表达,功能强大,且普遍使用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它不仅可以支持面向对象的分析与设计,更重要的是能够有力地支持从需求分析开始的软件开发的全过程。UML采用了一整套成熟的建模技术,广泛适用于各种应用领域,它得到了工业界的广泛支持。UML目前已经成为面向对象技术领域内占主导地位的标准建模语言。

UML主要由UML建模规则和UML成员构成,即:UML=UML建模规则+UML成员。其中,UML建模规则相当于建模语言的语法;UML成员=UML基本模型元素+关系+模型图。

下面将对UML成员做一简单介绍。

1)UML基本模型元素

UML基本模型元素类似于电子产品原理图里的集成电路符号,是模型图上包含的基本符号。可进一步细分为:结构模型元素、行为模型元素、成组元素和注解元素。

2)关系

结构模型元素是UML模型的静态组成部分,静态组成部分不是孤立存在的,它们被组合在一起互相协作以完成某项任务。因此,结构模型元素之间存在着某种语义上的联系。在UML中,这种联系是关系(Relationship)。UML中共有4种关系,它们是:关联关系(Association)、依赖关系(Dependency)、泛化关系(Generalization)和实现关系(Realization)。

3)模型图

UML基本模型元素及其关系必须通过某种载体表示,这种载体就是模型图(Diagram)。在UML中,模型图是一组UML基本模型元素的图形表示,它通常由一组节点(UML基本模型元素)及节点之间的连线(关系)组成。一般来说,一个UML基本模型元素既可以出现在所有的模型图中,又可以出现在某些模型图中,甚至可以不在任何一个模型图上出现。

模型图存在以下9种:

①用例图:用例图显示系统中的使用案例与角色及其相互关系。使用案例是系统提供的功能模块,角色是与所建系统交互的对象。

②类图:类图包含类、接口、协同及其关系,它用来描述逻辑视图的静态属性。

③对象图:对象图包含对象及其关系,它用来表示类图的类的对象在系统运行过程中某一时刻的状态,对象也是软件系统的逻辑视图的一个组成部分。

④时序图:显示多个对象之间的动态协作,重点是显示对象之间发送消息的顺序。

⑤协作图:显示多个对象之间的动态协作,重点是显示对象及它们之间的关系。

⑥状态图:用于描述单个对象的动态特性。状态图强调对象对外部事件的响应及相应的状态变迁。

⑦活动图:活动图用于描述对象的动态特性。活动图描述对象之间控制流的转换和同步机制。

⑧组件图:描述系统的物理实现,包括构成软件系统的各部件(运行文件)的组织和关系,类图里的类在实现时最终会映射到组件图的某个组件。一个组件可以实现多个类。

⑨分布图:描述系统的组件在运行时在运行节点上的分布,一个节点可包含一个或多个组件。

其中,类图、对象图、组件图、分布图属于静态结构模型图,用例图、时序图、协作图、状态图、活动图属于动态结构模型图。

4.UML建模工具简介

本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将指导学生学习、熟悉和运用当今被广泛采纳的一些技术去进行综合应用软件设计的有效实践。本教材的主要内容:运用软件工程的理论,进行需求分析及概要设计;制订软件开发进度;运用面向对象程序设计、计算机网络、多媒体技术等相关知识,运用系统软件代码的开发、集成测试、修改、完善与总结等相关技术,全面实现数据库的设计。本教材是上海理工大学曹渠江教授的教学实践经验的积累,也是上海市教委重点课程建设项目的教学研究成果。本书可作为高等院校相关课程的参考教材,也可供从事计算机软件开发的科技人员、工程技术人员及相关部门人员参阅。

本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将指导学生学习、熟悉和运用当今被广泛采纳的一些技术去进行综合应用软件设计的有效实践。本教材的主要内容:运用软件工程的理论,进行需求分析及概要设计;制订软件开发进度;运用面向对象程序设计、计算机网络、多媒体技术等相关知识,运用系统软件代码的开发、集成测试、修改、完善与总结等相关技术,全面实现数据库的设计。本教材是上海理工大学曹渠江教授的教学实践经验的积累,也是上海市教委重点课程建设项目的教学研究成果。本书可作为高等院校相关课程的参考教材,也可供从事计算机软件开发的科技人员、工程技术人员及相关部门人员参阅。

同类推荐
  • 悟道:一位IT高管20年的职场心经

    悟道:一位IT高管20年的职场心经

    本书是一位有20多年职场经验的IT企业高管撰写的一系列有关职场悟道的短文集成,讲述的是在企业里如何修炼自己,如何摆平自己的心态,怎样做到“世事洞明”和“人情练达”,如何“搞定老板”,怎样做到工作和生活平衡等诸多话题,涉及到跳槽、转行、升迁、环境、沟通、老板、下属、老外等等。每一篇都以作者的亲身经历或者身边的故事说明道理,语言简洁流畅,妙趣横生,更有不少经典片段和发人深省的职场警句,读起来就像是一个睿智幽默的老朋友坐在你面前娓娓道来。
  • 信息安全

    信息安全

    我们不得不看到,全球信息化发展,使信息安全成为维护国家安全的重要屏障,信息安全问题正在为国与国之间带来新的制约关系。当然,这只是我们强调信息安全极端重要性的一个原因。事实上,信息安全已经上升为国家安全的重要组成部分,这是信息时代国家安全的明显特征,也是很多国家的共识。但与其他国家安全元素不同,如果脱离信息化发展的环境,“信息安全”只是一个抽象的目标,它要通过对国家的政治、经济、文化等方面的影响体现其对国家安全的意义,并以保障信息化发展为目标取向。因此,我们说信息安全是信息时代国家安全的基石。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
  • 微软360度

    微软360度

    本书是由微软总部华人协会组织编写的第二本书,是《微软360度——企业和文件》一书的姐妹篇,本书将着重向你呈现微软总部的华人专家是如何一步一步地走向成功的及在微软总部成功的心路历程,以及如何应对挑战,揭示了微软成功的最重要秘密之一——人才至上,读者读后收获更多的是这些成功人士的成功经验,从而为自己的成功做出更好的规划。就让我们一起通过此书来看看微软公司人才至上管理的方方面面,聆听微软的心声,感觉微软的脉动吧。
  • 纵横于天地之间——互联网络技术

    纵横于天地之间——互联网络技术

    本书告诉你:不管你是谁,只要生活在当前的时代,你一定知道电话,知道电脑,知道上网……知道许许多多关于电子、关于计算机、关于网络的话题,这就是网络时代。网络的话题可多了:它是怎么来的?什么是“蜘蛛网”?网络的过去和现在,上网的方法,如何使用网络,互联网的安全,网络有“陷阱”吗?网络有“瘾”吗?网络文化和未来又是怎样的?到书中去找答案吧!
热门推荐
  • 剑石天演箓

    剑石天演箓

    这个江湖有点乱,修行,习武,权谋,战争,一样不少。这个江湖有点暖,前世,今生,缘起,缘灭,一样不差。这个江湖慢慢推进,天书,神石,天下气运交叉……这个江湖,流传着一个留着前世残识的陆家少宗主……
  • 小蕊的脱变

    小蕊的脱变

    2008年初,在上海工作的小蕊突然有一天接到小学同学何超的电话,何超是小蕊初中同学,在学校一直是有着高颜值的优等生,何超马上要大学毕业,得知小蕊在上海工作,所以想毕业后来上海有人关照,小蕊是个善良、热心的女孩,听到自己曾经心目中的白马王子要来上海,心中暗喜......两个月后何超来到了上海,两人由同学关系转变成了恋人关系,很快两人过上了柴米油盐的生活,也正式开始了两人的爱恨情仇、酸甜苦辣的爱情长跑线......6年愰眼过去了,小蕊经过失恋,最终到脱变,成为正的女强人,最终获得了自己美好的爱情......
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 万界盟约

    万界盟约

    熔龙鹏两大神脉于一体,集先天诸多妙法于一身。诸天万界,任我纵横寰宇。无垠星空,许我越古穿今。悟大道以逞邪恶,学妙法而济苍生。万年之前的古神预言,百年之后万界浩劫将至。众生惶惶……请不要觉得拖沓,认真看下去。
  • 万古最强天尊

    万古最强天尊

    无尽岁月前,一代天尊陨落!沧海成尘,世间出现了无数的诡异,黑暗笼罩了一个又一个时代。这一世,万族崛起,血染山河,能否破开黑暗,为世间带来光明……
  • 游戏制作

    游戏制作

    一个从95年开始的游戏制作人的故事。第一部作品就从战争开始吧。非专业游戏制作。
  • 江南市镇旅游文化研究

    江南市镇旅游文化研究

    需要向广大读者说明的是:第一,江南市镇是个非常宽泛的概念,而本书在内容的选择上主要是以南浔、周庄、乌镇、同里、西塘、角直六镇为比较研究对象,并兼顾其他市镇。第二,为了使本书具有一定的系统性和完整性,本书在结构上是按旅游主体文化、旅游客体文化、旅游教育主线来分布的。第三,由于各章内容是相对独立的整体(部分内容也已在有关杂志发表),所以各章内容难免有交叉重叠之处,敬请读者谅解。
  • 基因灵帝

    基因灵帝

    一个年轻有为的科学家,在研究超科技产品基因电脑时,不幸被带入到了异界,并穿越到了一个天资卓越的少年身上。穿越后的他因为某种原因却丧失了优秀的修炼天赋,从而变为了家族废物。直到有一天,他的天赋回来了,伴随而来的,还有那台奇妙无穷的基因电脑。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 凡人意识

    凡人意识

    什么是意识?是所有生物都拥有意识,还是人类独有?察觉杀气果断反杀,遭遇GANK提前离开,意识存在万物之间。在不断萎缩的世界反面,少年背负起旧神的灵龛,从灰暗的历史中走了出来,决定带给凡人们新生。