登陆注册
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建模工具简介

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

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

同类推荐
  • 大话设计模式

    大话设计模式

    本书主要采用JAVA语言介绍设计模式中比较常见的23种设计模式,分29章具体介绍,以现实生活中常见的事情为例来具体分析讲解。
  • 初级会计电算化

    初级会计电算化

    本书是作者根据历年会计从业资格考试的考试大纲以及多年对真题的分析,并结合多为专家、学者的实践经验而编写的。本书主要分为八套模拟试卷,以对考生考前的学习进行模拟实战,达到提高考生成绩的目的。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

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

    《Internet实用技术》作业集

    随着计算机应用的普及和社会信息化水平的提高,Internet已走进我们的生活。《Internet实用技术》这门课将带领我们走进网络的神秘殿堂,让我们认识网络,了解网络,进而学会使用网络,维护网络。其范围涵盖了在授课过程中所讲授的内容,题型多样,内容丰富,并附有两套模拟题,最后附有答案。学生可按照课程进度做习题来巩固和掌握知识。本作业集由李琳编写,由西北工业大学网络教育学院负责组稿和审定。因为时间仓促,水平有限,错误和不当之处在所难免,敬请读者批评指正。
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

    《中国移动智能手机的秘密》是一本关于移动终端和移动互联网的科普书。作者将这18年通信行业中的学习、思考、实践积累成《中国移动智能手机的秘密》与大家分享。书本系统总结了手机的发展历史、TD产业界“从2G向3G演进”的移动终端产业分化重组进程、智能手机的使用方法用方法和应用指南,以及对移动互联网发展独特思考。
热门推荐
  • 刺客转型记

    刺客转型记

    这是钱小莫由刺客转型的记录史,书写的是钱小莫精彩的一生。江湖纷争、庙堂漩涡,美女、权力,这个世界充斥着诱惑,所以背叛同样的多。
  • 公共服务创新

    公共服务创新

    针对中国目前存在的城乡发展、区域发展、经济社会发展不平衡等问题,我们又提出树立以人为本,全面、协调、可持续的科学发展观。要求各级政府围绕全面建设小康社会的目标,进一步推进政府职能的转变,在继续搞好经济调节、市场监管的同时,更加注重履行社会管理和公共服务方面的职能,更加重视就业、教育、文化、体育、公共卫生、社会保障和社会救助、环境保护等方面的工作,逐步完善我国的公共服务体系。同时,加快建立和完善各种突发公共事件的应急机制,提高政府应对公共危机的能力。
  • 为你不饮忘情水

    为你不饮忘情水

    你有没有体验过带着前世记忆的人生?苏云霓就有过,她为了自己所爱的人,拒绝喝下了孟婆茶,获得了新生。世界这么大,她以为自己不会遇见他,一次假面舞会,老天爷却让她重新遇见了他。她对裴翎寒说:“你好!”崭新的一世即将开始。
  • 爱上小萌妹:总裁大人求放过

    爱上小萌妹:总裁大人求放过

    色狼?这让她惊恐失措!某日机场内‘喂.....别.....别过来....’‘哟,小妞长得不错嘛,来陪哥哥玩玩!’色男欺压上身贪婪的稀释它她的味道“敢动本少爷的女人,那我就让你尝尝生不如死的滋味”某暖男大怒,世界都要抖三抖两人第一次见面就来个英雄救美却不料腹黑男主以此为理由三番两次找她麻烦,还带上他老妹把她骗回家每次半夜都怕上她床......卧草!!!“你....你可别乱来啊.....唔...”某男含住她的小嘴‘为什么我不能乱来呢......’
  • 暴走的镜中人

    暴走的镜中人

    为了找回镜中人,他决定留在镜子之中,可镜世界里危机四伏,四面楚歌。到处都是恶灵残念,意识生物,还有各种强大的魂怪,他们称霸一方,占山为王。殷天要怎样才能生存下去,并一步步揭开真相,找回镜中人呢。
  • 他的蓁蓁

    他的蓁蓁

    “俞白,你念念这句诗。”江燃指着书上的一处。“江碧鸟逾白,山青花欲燃。”俞白念出之后愣了。“你看,咱俩注定就得在一起,所以你就赶紧从了我吧。”江燃倚在她旁边笑得及其风骚。
  • 仙成

    仙成

    纵神功利器,道法无穷,又经千年万载,不得长生,不成仙,是何道理?中国古神话中四海龙海也姓熬,不知和这里的蛟龙究竟有没有联系,当然神话中的四海龙王可是比这里的蛟龙强大太多,他们才是真正的海上霸主,万兽之王。情节虚构,切勿模仿
  • 重生三国军团

    重生三国军团

    不一样的三国时代里面众军都有神,,,,,,,,,,,
  • 穿越小说做主角

    穿越小说做主角

    当你进入你一本为未完结的小说时,拥有了预知未来的能力的你会如何走下去
  • 七月雨圣

    七月雨圣

    君权神授,割据分封,男尊女卑,风雨飘摇,腐朽的帝国将行就木……且看这从七月雨天里走出的孩子,将如何逐步打碎这世间的罪恶与不公,走上一条不一样的圣途!