软件工程概论

一、概述 

1.软件工程过程有哪几个基本过程活动?试说明之。    解答:软件工程过程的基本过程活动有4步:    · P (Plan) : 软件规格说明。规定软件的功能及其运行的限制;    · D (Do) : 软件开发。产生满足规格说明的软件; 

   · C (Check) : 软件确认。确认软件能够完成客户提出的要求;    · A (Action) : 软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。 

2.试说明“软件生存期”的概念。 

解答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存期。它分为6个阶段:(1) 软件项目计划 :在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。 

    (2) 软件需求分析和定义 :在这一步详细定义分配给软件的系统元素。可以用以下两种方式中的一种对需求进行分析和定义。一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。     (3) 软件设计 :软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。 

    (4) 程序编码 :在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。 

    (5) 软件测试 :单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需求是否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。 

(6) 软件维护 :为改正错误,适应环境变化及功能增强而进

行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。 

3.试论述瀑布模型软件开发方法的基本过程,比较它的优点和缺点。 

解答:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。 

瀑布模型为软件开发和软件维护提供了一种有效的管理图式。根据这一图式制定开发计划、进行成本预算、组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。 

瀑布模型的缺点是缺乏灵活性,特别无法解决软件需求本身不明确或不准确的问题。这些问题的存在对软件开发会带来严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉。面对这些情况,无疑需要进行返工或是不得不在维护中纠正需求的偏差。但无论上述哪一种情况都必须付出高额的代价,并将为软件开发带来不必要的损失。 4.试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。 

解答:由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。通常把

第一次得到的试验性产品称为“原型”。  

  演化模型从需求分析开始。软件开发人员与用户一起定义待开发软件系统的总目标,定义需求,确定软件的工作范围。然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。这个过程是一个迭代的过程。 演化模型的优点是: 

   · 演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流; · 演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;     · 演化模型使得开发出来的最终系统更容易维护,对用户更友好; 

    · 演化模型可以降低总的开发费用,缩短开发时间。 演化模型的缺点是: 

   · 对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型; 

   · 原型过快地收敛于需求集合,使得某些基本方面被忽视; 

· 长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实际客户环境之间的差别。 

5、软件工程包括哪些基本要素?请简要说明这些要素及其作用。  

答案要点: 软件工程包括过程、方法和工具三个要素。  软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;  

.软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;  

.  软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境 CASE。 

6.  软件与其他工程学科所产生的制品有什么根本区别? 答案要点:  (1)  软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;(2)软件具有不可见性,它是抽象的,形式化和逻辑化的。 (3)软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化.  (4)软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。 

7. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。 软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序代码易于理解等,而“程序代码易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。

8. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。请设计一个适用于该系统开发的过程模型,并进一步描述该模型。

答案要点: 假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet 访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。 

从该系统的具体情况来看,系统的需求是比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求。 遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选部分,必要时适当修改系统需求,最终确定系统需求和总体结构。设计开发阶段:开发人员一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统并实现与外部付费系统的接口。 系统测试阶段:开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试。根据所报告的测试问题,开发人员调试和修改程序。 系统交付阶段:测试通过后,开发人员将系统及其相关文档交付用户验收。四、需求分析

四、问答题  1、在软件需求分析时,首先建立当前系统的物理模型,再根据物 理模型建立当前系统的逻辑模型。试问:什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?

解答:所谓当前系统可能是需要改进的某个已在计算机上运行的数据处理系统,也可能是一个人工的数据处理过程。当前系统的物理模型客观地反映当前系统实际的工作情况。但在物理模型中有许多物理的因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的因素,去掉那些非本质的因素即可获得反映系统本质的逻辑模型。所以当前系统的逻辑模型是从当前系统的物理模型抽象出来的。

2、 可行性研究主要研究哪些问题?试说明之。

解答:可行性研究主要做4个方面的研究:经济可行性:进行成本∕效益分析。从经济角度判断系统开发是否“合算”。技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。方案的选择:评价系统或产品开发的几个可能的候选方案。最后给出结论意见。 

3、 数据流图的作用是什么?它有哪些基本成份

数据流图的基本成份有4种:

4、Petri网可以描述计算机软件系统的执行。现有一个程序如下(类似于Pascal语言) 

L :

 S1; 

WHILE

P1  DO 

BEGIN  

  IF

P2  THEN  S2   

ELSE

  S3;    

COBEGIN    

S4;   

S5;    

S6;    

COEND     

END;  

GOTO

  L; 

其中,P1和P2为逻辑表达式,S1,S6是单个执行语句,COBEGIN和COEND是并行执行开始和并行执行结束(即S4,S5和S6语句并行执行)。

试用Petri网描述这段程序的执行过程 

解答:采用条件∕事件网(C∕E网,C―Condition, E―Event)式 Petri网。其定义如下:①当事件e激发时条件c开始成立,则称c是e的后继。此关系用“ ”表示; 

②当事件e激发时条件c消失成立,则称ce的前驱。此关系用“ ”表示; 

③当事件e激发时条件c不受影响,则c和e之间没有前驱、后继关系,无边。  根据定义,给定程序的C∕E网如下  :

 


5、软件需求分析说明书主要包括哪些内容? 

解答:软件需求规格说明是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。软件需求规格说明的框架如下:

 

6. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?

答案要点:  

需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:  (1)  需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。 (2)  需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。 (3)  需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。 (4)需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。(5)  需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。 

7.  请比较本章介绍的几种主要需求获取技术,说明每一种技术的优缺点和适用场合。答案要点: (1)用户面谈 优点:可以与项目相关人员一对一地进行交谈和讨论;具有私密性,使被访者可以直率地和无隐瞒地回答问题;便于探查一些附加信息或反馈信息;有利于与客户建立良好的关系。缺点:面谈是一种非常费时和高成本的方式;难以解决不同的项目干系人之间的冲突和矛盾;在地理位置相距较远的情况下很难实施。适用场合:适用于在初步理解整体概念的情况下讨论和交流一些细节问题。(2)需求专题讨论会  优点:有助于了解系统需求;有利于共享系统开发的成果;给用户一种主人的感觉;    可以与足够多的项目干系人进行讨论和交流,且节省时间; 支持头脑风暴式的讨论。   缺点: 需要占用参与人员比较长的整块时间;主持人的能力和会议的准备工作必须是非常好的,否则结果很糟。   适用场合: 适用于讨论和审查软件系统方案和模型,解决不同项目干系人之间的冲突和矛盾。  (3)  观察用户工作流程   优点: 通过直接观察的方式提取用户或系统的特性; 有助于理解难以用语言描述清楚的复杂业务。   缺点:观察可能使用户紧张,从而表现得与往常不同。适用场合:适用于理解难以用语言描述清楚复杂业务过程。(4)原型化方法   优点: 通过一个可以运行的软件原型直观地理解和澄清问题,便于使开发人员与用户达成共识。   缺点: 用户容易产生误解,认为软件系统可以在原型的基础上很容易地构建,但实际上该原型的内部结构和程序质量比较差。   适用场合: 适用于用户需求不明确或描述不清楚的情况。 

8.  哪些人应该参与需求评审?请画出一个需求评审的组织过程模型。

 答案要点:通常情况下,参与需求评审的人员应该包括需求分析员、项目经理、体系架构设计师、软件设计工程师、系统测试工程师、质量保证员、用户或市场代表、文档编写人员、领域专家和技术支持代表。

 

第二篇:软件工程概论

软件开发新方法 ——过程模式

总体说明:

目前 ,软件开发的复杂性不断提高 ,过程模式为减少软件开发过程中的复杂性提供了 一个很好的工具 ,为给定的任务提供了一个结构化的方法 。文中首先阐明了过程 、模式 ,以及过程模 式的定义 ,接着描述了过程模式的 3 种类型 :任务过程模式 ,步骤过程模式 ,阶段过程模式 。过程模式 是实践验证的软件开发方法 ,软件开发机构可用它来提高软件的质量 、可维护性和可扩展性 。

软件开发的复杂性已经达到了一个空前的高度 ,为了使软件以更快的时间占据市场 ,使系统更加 灵活耐用 ,需要采用能够减少现在软件开发固有复杂 性的工具 。过程模式就是这个领域内的一个很好的工 具 。在软件体系结构领域 ,人们比较熟悉的是设计模 式 。设计模式为一般的复用问题提供了一个适用的解决办法 ,而过程模式在开发过程中为如何有效地执行离散的任务提供了指导 ,也就是说 ,过程模式为一个给定的任务提供了一个结构化的方法 。

在需要用设计模式和分析模式提出解决方案的领 域和问题中 ,在处理相同类型问题的情况时有发生 ,不仅 如此 ,在那些软件专业人员用以解决机构内重复发生 的问题的策略中 ,处理相同类型问题的情况也屡见不 鲜 。这些策略都可以用过程模式描述 。过程模式描述 了一系列用来开发面向对象软件的通用技术 、行为以 及各种与/ 或任务 。它们是一些可以复用的积木 ,软件 开发机构可以利用它们来开发满足确切需求的可裁剪的软件过程 。

详细介绍

1.过程模式的定义

所谓“过程”,它被定义为一系列行为 。在这些行为中,有 1 个或多个输入并产生 1 个或多个输出 。给 出“模式”的定义要稍微困难一些 。正如 Alexander 1 在定义模式时暗示的那样 ,尽管模式的主要特性的具 体细节表现不同 ,但其主要特性总是不断发生 。尽管 每一个建筑都是独一无二的 ,但是 Alexander 1 还是向我们展示

1

了每个建筑都可以按照一系列通用模式来建造 。换句话说 ,模式就是对常见问题的通用解决方案 ,而专门的解决方案则由此而来 。

Alexander 1 认为 :模式的重复与部件的重复相比较 ,两者是截然不同的 。事实上 ,因为模式是相同的 , 所以各个部分的不同是唯一的 。

Coplien 2 将“过程模式”定义为 : 过程就是在组织 内部的行为模式 。

本文将“过程模式”定义为一系列用来开发面向对象软件的通用技术 、行为与/ 或各种任务 。过程模式的 一个重要特性在于 ,它只描述了一个软件开发人员应 该做什么 ,而没有确切地说明应该做哪些细节 。当过 程模式能够被有组织地应用在一起时 ,它们就可以被 用来为软件开发机构生成软件过程 。因为过程模式并 没有指定如何完成一个给定的工作 ,它们能够成为可复用的积木 。软件开发人员可以据此来定制一个满足软件开发机构的特定需求的软件过程 。

与过程模式相关的还有组织模式 ,这种模式用来 描述通用的管理技术或者组织结构 。实际上 ,过程模式和组织模式是协同工作的 。

2过程模式的分类

过程模式的一个重要特性就是对于软件开发的所 有方面都可以开发过程模式 。Alexander 1 认为 ,模式可以在各种层次上存在。

过程模式有 3 种类型 ,按规模递增顺序依次为

: a) 任务过程模式 。这类过程模式描述了执行特 定任务的详细步骤 ,例如技术复审过程模式和首次复用过程模式 。

b)步骤过程模式。这类过程模式描述了单个项目步骤中经常反复出现的做法,项目步骤是过程模式更高层的形式 ,通常由多个任务过程模式组成 。软件过程中每个项目步骤都必须提交步骤过程模式 。

c) 阶段过程模式 。这类过程模式描述了在单个 项目阶段中各个步骤过程模式之间的交互 ,例如初始 阶段和交付阶段 。构造阶段作为一个阶段过程模式 , 是 2 个或

2

多个步骤过程模式的集合 。无论是结构化开 发还是面向对象开发 ,项目阶段都被依次完成 。许多 被反复执行的步骤过程模式组成了阶段过程模式 ,而 这些阶段过程模式又顺序地被执行 。

下面分别为这 3 类过程模式提供了一个例子 。这 些例子都来自面向对象软件过程 ( OO SP) 的过程模式 语言 。OO SP 是一个由阶段过程模式 、步骤过程模式 和任务过程模式组成的生命周期 。

3.任务过程模式---技术复审

对在开发阶段创造的可交付使用的产品进行确认,以确保其能满足用户群体的需要及其机构的质量标准。

过程模式 高级的管理技术能确保开发团队开发出满足用户 群体需要的高质量的可交付使用的产品 。对于所创建 的可交付使用的产品以及如何使他们的工作适用于整 个软件开发工程 ,开发团队和复审者应该有一个较好 的沟通理解 。在复审期间 ,每个开发团队成员和复审 者应该学习新的技术 ,包括可交付使用产品的使用技 术 、复审时应用的管理技术以及复审期间提高可交付 使用产品质量而使用的开发技术 。

3 . 1 推动力

有以下几个实用的推动力激发了技术复审过程模 式的产生 : a) 在开发过程 中 产 生 的 可 交 付 使 用 的 产 品 ( 模 型 、原型 、文档 、源代码等) ,帮助详细说明了那些发布 给用户群体的软件和相关产品 ,这样 ,软件开发人员就 可确认每个可交付使用的产品在使用前质量足够好 。b) 在开发生命周期中检测到缺陷越迟 ,则修正这 些缺 陷的花费就像滚雪球一样越滚越大 ,所以 ,软件开 发人 员要尽可能早地检测到缺陷 ,尽早修正这些缺陷 , 当然花费也少 。 c) 因为一个人很难检测自己的工作 ,那么就需要 “第二组眼睛”来检测一个可交付使用的产品 。 d) 在工作上人们进行交流的方法之一就是让同 一开发团队的程序员互相检测其可交付使用的产品 。

3 . 2 前提条件

技术复审的前提条件是 : a) 有 1 个或多个可交付使用的产品 。 b) 这些产品已

3

经准备好了被复审 。 c) 开发团队准备好了复审这些产品 。

3 . 3 解决方案 图 1 显示了技术复审 ( 模型复审 、文档复审 、原型 复审 、需求复审和代码检查是紧随着技术复审过程模 式的所有指定过程) 的 6 个基本步骤 :开发团队为检测 进入构造阶段的途径有从初始阶段进入或从操作 维护阶段进入两种 。在创建阶段可能开始之前肯定会 遇到以下情况 : a) 应提供和更 新 关 键 的 项 目 管 理 文 件 ( 项 目 计 划 、估价 、进度表 、风险评估等) 。 b) 定义项目的底部结构 ,至少是项目底部结构的 大部分 ,这样 ,工具 、过程和标准就可以被软件开发团 队利用 。 图 2 编程步骤过程模式 c) 对程序员的软件的高层次要求以及计划表应 该被代替 。

4 步骤过程模式 ———编程

确切地讲 ,软件开发的一个重要方面是源代码的 3 任务过程模式 ———技术复审 对在开发阶段创造的可交付使用的产品进行确 实际开发 。有经验的开发者知道 ,有很多事情需要去 设计而不是简单地坐在计算机前面输入源代码 。编程 步骤过程模式描述了设计中反复执行的任务及行为 。

4 . 1 推动力 编程的推动力是 : a) 程序员开发软件以满足用户群的需要 。 b) 源代码反映了可交付产品包含的信息 ,同时 , 当程序员获得对领域的详细的理解 ( 通常比建模者更 加详细) 时 ,促进这些可交付产品产生变化 。 c) 许多机构希望开发的软件具有及时性和高效 性 ,同时还具有可维护性和可扩展性 ,这样便于以后进 行及时和有效的修改 。

4 . 2 前提条件 在开始编码以前肯定会遇到以下 几种情况 : a) 程序员的设计模型要代替其想要编写的源代 码 。 b) 在初试化阶段定义底部结构步骤的期间 ,替换 程序员的项目底部结构 ,并进行定义 。这个底部结构 包括了程序员用到的开发和支持工具以及程序员需要 遵守的标准和指导方针 。 c) 程序员必须有能力做这项工作 。

4 . 3 解决方案 图 2 描述了编程步骤过程模式 ,图中显示了与简 单地编写源代码相比需要做更多的工作 :理解模型 ,找 出可复用的部分以减轻工作压力 ,证明要编写的内容 , 编写代码 ,检查和改进 ,测试和修正 ,最后打包 。 在开 始编写代码以

4

前 ,程序员首先要花费一些时 认 ,以确保其能满足用户群体的需要及其机构的质量 标准 。技术复审任务过程模式描述了如何对 1 个或多 个可交付使用产品的复审进行组织 、处理和继续研究 。

5 阶段过程模式

创建阶段的主要目标 ,即 OO SP 的第 2 个阶段 ,是创建过程模式 要创建准备被检测的工作软件并把它交付给用户群 。 这个软件将会附带模型和用于开发的源代码 、一个用 于确认软件工作的检测计划 、可以用于以后项目中的 任何可复用的内容 ,初始化文档和培训计划也支持该 软件 。

5 . 1 推动力

推动力适用于创建阶段 : 对高级管理和开发

5 . 2 解决方案

在开始编写源代码以前 ,首先应撰写文档 。经验 显示 ,在开始工作时 ,写下关于编码逻辑的简要内容的 程序员比不这样做的程序员明显具有更强的创造性 。 在整个编码过程中 ,程序员必须坚持不懈地使源 代码和模型同步 。 一个开发团队编制的源代码将被 全部或部分地被 检测 。准备代码检测要应用到技术复审任务过程模 式 ,程序员应该相当确信他的代码会通过检测 ,这意味 着这些代码确保了设计 ,遵守了标准 ,组织结构很好 , 很容易被理解 ,编写得也很好 。 如果一个程序员想在最后进行优化 ,那么他需要 这样做 :如果他的一小部分代码占据了绝大部分的运 行时间 ,这些代码就是他需要优化的 。一个没有经验 的程序员所犯的典型错误就是努力优化所有的代码 , 甚至那些已经运行得足够快的代码 。 创建一个结构就是用例如 J ava 和 C++ 语言来编 辑和连接程序员的源代码 ,或者用 Smalltalk 语言把程 序员的代码打包 。 应考虑下面这些在编程阶段前遇到的情况 : 代码 通过了检测 ;代码正常工作 (通过了检测) ;代码被充分 优化 ;完整和打包应用软件以便交付 。 图 3 显示了创建阶段过程模式 。其中一个很重要 的暗示是 :程序员进入一个创建阶段时 ,并不是一切从 零开始的 ,而是已经定义好了重要的管理文件 ,例如项 目计划 、最初的风险评估 、最初的应用需求 、项目底部 结构 ,项目的资金和计划也已经得到 。创建阶段的 4 个

5

步骤是紧密相连的 。通过应用图表 、文档和原型 ,建 模步骤关注于技术与/ 或问题域的提取 。编程步骤关注的是程序源代码的开发和文件 ,归纳步骤着 重于程序员的所属机构对复用所做的努力 ,它关注于 识别可复用的项目或那些经一个软件项目修改后就变 得可复用的项目 。SMALL S TA GE 测试的目的 ,是为 了检验和确认创建阶段的其他步骤中开发的可交付使 用的产品 。在许多方面 ,这个阶段和建筑界的单元检 查是等同的 ,并与质量保证技术 (例如代码检查和技术 检测) 结合在一起 。

5 . 3 终止条件

宣布代码冻结后 ,构造阶段便成功结束 。正式冻 结一个代码或冻结一个开发过程后 ,随后的可交付产 品必须放在它本来位置 :模型 (典型模型 、实例模型 、流 程图等) 、需求分配矩阵 ( RAM) 、源代码 、熟练检测/ 质 量保证计划 、用户文件 、操作文档 、支持文件 、软件本 身 、训练计划 、发布计划和课程学习 。这时 ,程序员的 小规模测试 、归纳 、大规模测试 、重写 、发布 、评估 、支 6 软件开发中采用过程模式的必要性 过程是很好的针对软件开发的通信机制 ,这个机持 、识别缺陷和增强 ,每一个步骤都被描述成一个步骤 过程模式 。在一个单独的项目阶段范围内 ,项目步骤 以不断反复的方式执行 。在 OO SP 内 ,项目阶段以连 续方式执行 。 在软件开发的执行过程中 ,过程模式为有效地执 行任务提供了具体的指导 。在软件开发方法和过程专 家的指导下 ,过程模式的实际应用以一个高效 、可预见 的方式加速了高质量软件的设计 。如上所述 ,过程模 式是一个软件开发机构定制及定义一个成熟软件过程 的关键 。 制在实践中证明是行之有效的 。过程模式是可重复使 用的积木 ,通过它 ,一个软件开发机构可以裁剪一个成 熟的软件过程 。例如 ,图 4 描述了 OO SP 。OO SP 由 4 个连续的阶段 (初始化 、创建 、发布 、维护和支持) 组成 , 这 4 个阶段分别由反复执行的步骤组成 。简 要说明了对于项目成功至关重要的若干任务 ,这些任 务又被应用到开发的每个步骤中 。步骤过程模式和阶 段过程模式就像图 4 底部指出的那样 ,其内容依次被 任务过程模式增强 。在 OO SP 形式下 ,过程模式已经 被用于构建成熟软件过程 ,从而开发出使用对象技术 的大规模 、支持关键性任务的软件 。

6

对比分析:

,软件开发的复杂性已经达到了一个空前的高度 ,为了使软件以更快的时间占据市场 ,使系统更加 灵活耐用 ,需要采用能够减少现在软件开发固有复杂 性的工具 。过程模式就是这个领域内的一个很好的工 具 。在软件体系结构领域 ,人们比较熟悉的是设计模 式 。设计模式为一般的复用问题提供了一个适用的解决办法 ,而过程模式在开发过程中为如何有效地执行离散的任务提供了指导 ,也就是说 ,过程模式为一个给定的任务提供了一个结构化的方法 。

过程模式描述 了一系列用来开发面向对象软件的通用技术 、行为以 及各种与/ 或任务 。它们是一些可以复用的积木 ,软件 开发机构可以利用它们来开发满足确切需求的可裁剪的软件过程 。

心得体会:

软件工程概论是一门很好的课程,虽然我是一名会计专业的学生,但是老师深入浅出的讲解,让我懂得了很多我以前都不明白的知识,为我以后的学习打下了扎实的基础。现我的课程总结如下:软件工程学科具有知识面广、发展迅速、实践性强等特点。《软件工程概论》作者针对软件工程的学科特点,在系统讲解软件工程理论、方法和工具的同时,注重结合实例分析软件工程方法、技术和工具的综合应用;在兼顾传统的结构化方法的同时,注重介绍广为采用的面向对象方法。我学习此课程受益良多。

7

相关推荐