当前位置:文档之家› 软件工程--理论与实践

软件工程--理论与实践

软件工程--理论与实践
软件工程--理论与实践

前言

理论研究与实践的桥梁

自从年会议首次提出“软件工程”概念以来,它经历了一条漫长的道路。在几十年前,“软件”这个概念本身还不能被多数人接受。因而软件工程理论研究和实践必须建立一个坚固的统一标准使得人们懂得在我们现今生活中如何建立良好软件和怎样评价软件的风险、概率。本文融合了当前两种软件工程的潮流:从实践者角度,实践者的焦点在于建立高质量的软件产品,提供实用的功能;从研究者角度,侧重于寻找提高质量途径,提高实践者的生产效率。

本书用于研究生软件工程教材,描绘了实用的软件工程理论和实践概况,由于学生的经历有限,本书中所举的例子可能是超出我们的经验,但这些例子足以清楚地阐述大型软件项目从设计到实现的整个开发过程。

此书还可作为本科生软件工程概念和实践的入门教材,或用于软件开发人员扩充该领域知识。本书中涵盖的各种样例:大型项目,小型项目,面向对象和面向过程,实时处理,事务处理,开发案例,维护,适合各种读者群。章、章和章提供的材料用于激励学生启发思想,培养研究兴趣。

核心特征

与其他书相比本书具有如下特征:

●本书将许多评价标准综合运用于软件工程,测量标准是软件工程策略的完整部分,不能孤立看待。这种综合看待软件工程

测量标准的办法可以使学生学会如何将定量分析,定量改进运用到日常活动中。可以评价在个人方面、团体以及项目基础上的进步。

●本书将许多概念,如:重用、风险管理、质量工程融于软件工程中,而非分裂处理。

●每章用两个实例说明该章中的主要概念,两个例子均来源于实际的项目。信息系统实例描述了一个软

件系统怎样确定一家英国大型电视公司广告时间价格,实时系统实例给出火箭控制软件;在这些实例的问题报告中,我们还可以探索软件工程中的技术怎样定位问题所在及如何解决、避免这些问题。学生可以从这些实例中学到如何把软件工程技术运用到实际的系统中。

●每章末尾,给出该章主要内容对于小组开发的意义、个人开发意义、研究意义。学生可以选择阅读,查找相关部分。

●本书给出相关的网址,文献,网上相关的工具,方法和学习指南。从网上学生可获得许多实际的需求文档、设计、代码、

测试计划等相关信息。一些声誉较好的网站上还有进一步深入的信息。

●本书包含许多实例和文献中的样例。其中的简略例子详细内容可在相关网页上查询。从中可了解理论概念是怎样运用于实

践的

●每章末尾给出启发式问题,这些问题涉及到软件工程的合法与伦理等方面。学生可以从社会、政治环境出发考虑这些问题。

和其他科学一样,必须从他给人们生活带来的后果角度看待软件工程决策。

●面向过程和面向对象两种思想方法在每章中都有体现。此外将有一章专门阐述面向对象的发展过程,面向对象的开发过程。

此处使用描述通用概念。面向对象开发的每一步均有实例说明。

●本书给出注解文献的出处,网址,讨论小组以及专业领域如:软件可靠性、容错、计算机安全等的相关联接。

●本书给出解决方案手册,可以在得到,格式。

●每章介绍一个项目,比如抵押处理软件系统开发,老师可以针对这些项目介绍,项目变体作为课堂作业。

●每章后给出概念索引。

内容与组织

本书分为三部分:第一部分(第一章至第三章)启发读者阐述软件工程知识对于实践者和研究人员的重要性,讨论了问题

理解,项目计划意义;第二部分(第四章至第十一章)详细阐述开发维护主要步骤,可以不考虑创建软件的处理模型:需求检查、需求获得、设计问题解决方案,代码编写和测试、提交用户;第三部分(第十二章到第十四章)集中讨论评价与改进。这里将阐述我们如何看待软件产品的质量和怎样提高质量。

第一章:为何需要软件工程

在本章中,我们首先说明每种关键问题均出现在后面的那些章节中。然后参考’的核心因素给出软件工程的定义:抽象、分析、方法设计、专用符号、模块和体系结构,软件生命周期、出版,重用、测量,工具,环境集成,用户界面。接着讨论计算机科学和软件工程之间的差别,解释一些可能遇到的问题,给本书其它部分打下地基。最后阐明了实用系统方法建立软件的必要性,给出的两个实例是各章中都将用到的,同时给出这些实例的工程背景。

第二章:过程模块与生命周期

给出各种不同类型的处理和生命周期模块概要,包括:瀑布模式,模式,螺旋模式以及其他原型。我们还将讨论几种建模技术,工具,包括系统动力,和常用方法。对于两个实例我们都给出模块分析。

第三章:项目计划与管理

本章主要讲解项目计划和进度安排。引入几个概念,比如:工作量,里程碑,进度安排表,任务图,风险管理,成本估算。同样我们将用估算模型评价两个实例的成本代价。集中于飞行器软件开发系统和’项目的软件开发与管理的成本估算。

第四章:需求分析

本章讲解需求分析和需求说明书,阐明功能需求与非功能需求的差别,分别用几种不同的方式说明他们之间的差别,讨论如何建立需求原型。并且使用各种正式的方法说明和评价需求。此外还包括需求文档书写,需求文档回顾,需求质量及评价,需求可测性。

第五章:系统设计

本章主要考虑系统结构问题。首先讨论和的软件体系结构框架。接着描述概念设计和技术设计的区别。讨论负责设计的人员的角色,两种基本设计方法:组合法与分解法。然后给出良好设计特征,介绍几个设计策略,给出若干系统设计技术的实例,工具。在本章中读者还将学到客户服务器体系结构,可重用设计组件,人机接口设计,安全与可靠性设计(包括出错处理和容错技术),设计模式,正式的设计方法,设计协议评价。在解释了如何评价设计质量和正确性证明,怎样书写结果文档,我们转向代码设计阶段。

代码设计分别用模块化设计和独立设计用两种方法:自顶向下,自底向上解释,并给出逻辑设计和物理设计的区别。针对并发与安全性要求较高的系统,我们检查其设计上的因差错而导致的的功能故障。举出若干设计工具,彻底讨论设计质量以及怎样衡量。最后结合信息系统和时实系统两个实例给出软件设计的实例。

第六章:关于对象

第六章从间接的角度考虑面向对象开发的特殊性质。我们先给出使用案例的背景,讨论如何从需求中获得对象、对象特征。其次要检查系统设计。接着扩充系统设计,加入非功能性需求,编程设计的代码细节。使用和构造图,我们可以产生面向对象的系统说明和系统设计,这里所用的实例是空军服务站系统。

对于面向对象开发的评价,我们使用普通的面向对象规则评价服务站系统。可以从中学到如何在规则中加入适当的改变有助于我们决定如何分配资源,寻找错误。

相关主题
文本预览
相关文档 最新文档