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

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

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

同类推荐
  • 计算机应用基础案例教程

    计算机应用基础案例教程

    本书是根据教育部对高等院校计算机公共基础课程的基本要求,结合计算机技术的最新发展及高职高专类院校计算机基础课程改革的最新动向编写而成。其主要内容包括计算机基础知识、WindowsXP操作系统、Word2003文字处理软件、Excel2003电子表格软件、PowerPoint2003演示文稿制作软件、计算机网络与安全及常用工具软件的使用。本书将理论知识与项目实践相结合,既对理论有较为系统全面的讲解,又通过案例突出了操作技能的培养。本书内容新颖,体系结构合理,可作为高职高专学校、成人高等学校的计算机公共基础课教材,也可以作为广大计算机爱好者的自学参考书。
  • 智能计算方法概论

    智能计算方法概论

    本书以智能计算领域的若干前沿技术为主线,内容包括数字水印技术在版权保护区和身份认证中的应用,量子算法在信号处理、图像处理中的应用,量子数据挖掘技术,小波方法在医学图像处理中的应用等。
  • 体感交互技术

    体感交互技术

    本书提出了体感计算的研究,探讨了基于体验性认知的个性化电子学习方式,并且分析了面向儿童的艺术创造体验,在体感虚拟化身的帮助下,用户可以通过身体运动,促进情感心智的全面发展,
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

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

    三维动画审美谈

    数字时代,美的标准充满更多的不确定性。而三维动画以数字图像形式成为这个图时代的代表。三维动画及三维图像不仅仅是由于应用了仿真数字图像技术而带来的虚拟空间,还有更多的是由三维图像技术所引发或引导的被扩展的图像技术,这些技术无不应用在现代视觉设计领域的各个方面,并且,由此引起社会的追热,引起审美观念的改变。这些改变是在进行中的,变化中的,也是在发展中的。对于未知的美,我们做的只是追寻和记录,我们不知道以后的美将会是什么样,尽管我们苦苦追寻,孜孜探讨,同时也在默默审视。我们在追寻中享受美,在探讨中认知美,在审视中体验美……
热门推荐
  • 梦断

    梦断

    有些事像梦一样,美好到使人流连。然而梦都会断掉。醒来。就像一切都没有发生过。你是你,我是我,活在各自的角落,不曾见过。往往是手心残留的温度,唇边的一抹清甜,心口的滚滚热血,让人明白:终是有什么事,发生过。你说,所有的事情都是注定的悲剧。还好我们笑过。但那终究会像你刻意忽略掉的眼角的泪痕,嘶哑的喉咙---抹不掉,丢不掉,忘不掉。所以很多悲剧的命运;所以很多散失的兄弟;所以很多风中的爱情;都等着某一天,被改变。
  • 水之魅影

    水之魅影

    水声滴答,梦中声声呼唤。推理系高材生阮潚玉。白天理智冷静,夜晚却为恶梦纠缠。博物馆发生窃案,宝玉不翼而飞,展场更无来由涌出诅咒之水。为探查梦境之谜,阮潚玉卷入神秘案件。他能否为自己洗刷嫌疑?案件与他的梦境又有何骇人连系?世纪交替,宿世难题一一浮现,原来梦境中的黑暗魅影竟是....悬疑、推理、灵异、惊悚等元素交错融合,开展你未曾见过的推理新境界。
  • 我的超能公会

    我的超能公会

    这个世界很奇怪,恶魔的诅咒会让人得懒癌、长胖、脱发……这个世界很奇葩,修士、武者、忍者、萨满、机械师、魔法师等职业乱入,一起对抗恶魔。妹妹被恶魔诅咒居然得了懒癌,哥哥一边开公会,一边寻找治疗之法。(本书宗旨:将沙雕进行到底)
  • 宫主不容易

    宫主不容易

    这是一个繁复的江湖世界,高手如云,适者生存。深陷其中者善恶难分,是非难断,唯有心之所往方为净土。划重点:剧情多元化多视角,逻辑性较强非小白,非爽文,偏虐,微耽。
  • 耀世灵域

    耀世灵域

    无极之道,唯我独尊!天地之间,谁主浮沉?混沌源生出,万世哭;域外异族侵,天下劫。应运而生,耀世临天下!
  • 舞风华

    舞风华

    她以温润做伪装,阴如毒蛇,幽幽冷香,冻结一切。他,天人之姿,清冷之下狡诈如狐,是除圣灵四国外各国皇帝都要礼让三分的人。两人初见之时,剑拔弩张,一言不合就开打。再次见面,冷嘲热讽。直到最后,以命相护,惟愿对方安好。片段:“听公子的语气是不愿离开了。那,只好我亲自请您离开了!”“本公子倒想看看,景大小姐打算怎么请本公子,离开......”
  • 墨麒传

    墨麒传

    千世界战乱崩坏,万物初域消失无踪,诸多雄霸人物纷纷陨落,星图混乱,界门渐损,遂各界渐无来往,各族亦修养生息万余年。然墨城墨家诞下瑞儿,旁生麒麟。故事就此开始,看麒麟真血如何复苏,成就混沌神魂体,霸绝天下!
  • 信鸽

    信鸽

    信鸽在面对自己子女的生命受到猎狗的威胁时,会采取什么态度呢?是顾命逃走,还是奋力护子?人类从动物身上会得到什么启示呢?
  • 反派总要我保护

    反派总要我保护

    京中谁人不知,最是五皇子清心寡欲,淡泊名利,不参与党派纷争,一心为国为民。只有天天缠着陆易辞的姜姜知道,这人看似不争不抢,其实什么都想要,权利,民心,金钱,凡他所想,无不得手,毕竟是反派,有这些追求也都正常。待这位功成名就,每个人对这位各有所求,可姜姜不同,她对陆易辞没啥想法,要是一定要说,好好活着别作死就成。可随着重生的次数叠加,姜姜发现,每次她都以为反派要凉,结果最后凉的都是自己。这都凉成黄花菜了,她还能回去吗?看着越发奇怪的反派,姜姜顿感前途堪忧。回家路漫漫,少女仍需继续努力。
  • 天行

    天行

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