软件工程课后小节

  • 格式:docx
  • 大小:72.67 KB
  • 文档页数:7

软件工程课后小节

本章简要阐述了软件开发的本质,即实现问题空间的概念和处理逻辑到解空间的概念和

处理逻辑之间的映射。

在此基础上,概括地介绍了实现这一映射的差不多途径,即系统建模。

所谓系统建模,是指运用所把握的知识,通过抽象,给出该系统的一个结构一系统模型。因此,模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

在软件开发领域,系统模型分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。软件模型又可进一步分为设计模型、实现模型和部署模型等。

总之,正确认识软件开发的本质,认识建模的意义,了解模型概念以及模型分类,直截了当关系到对软件工程开发逻辑、开发途径有关知识的明白得、把握和正确应用。正如章首语所言:〝正确认识软件开发,是从事软件开发实践和软件工程项目治理的思想基础。〞

第二章

本章第一介绍了需求的定义,即〝一个需求是一个‘要予构造’的陈述,描述了待开发产品(或项)功能上的能力、性能参数或者其他性质〞,并指出了需求的5个必备的差不多性质:必要的(Necessary),即该需求是用户所要求的;无歧义的(Unambiguous ),即该需求只能用一种方式说明;可测的(Testable),即该需求是可进行测试的;可跟踪的(Trace-able),即该需求可从一个开发时期跟踪到另一个时期;可测量的(Measurable ),即该需求是可测量的。需求的5个差不多性质可作为需求发觉和评估的基础。

其次,为了更好地明白得需求,介绍了需求的分类。软件需求能够分为功能、性能、外部接口、设计约束和质量属性,并把性能、外部接口、设计约束和质量属性这4类需求统称为非功能需求。除此之外,还给出了功能需求和非功能需求的差不多关系。

然后,介绍了5种常用的需求发觉技术:自悟(Introspection )、交谈(Individual in-terview )、观看(Observation )、小组会(Group session)和提炼( Extraction),并指出采纳系统化方法,例如,结构化方法和面向对象方法,可使发觉的需求差不多满足以上5个性质。

最后,详细地介绍了需求规约(SRS)。其中,不仅给出了需求规约的定义、需求规约的差不多性质和需求规约的格式,而且还介绍了表达需求规约的3种风格:非形式化的规约、半形式化的规约和形式化的规约。

需求规约的作用可概括为以下4点:

(1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的表达。

(2)关于项目的其余大多数工作,需求规约是一个治理操纵点。

(3)关于产品/系统的设计,需求规约是一个正式的、受控的起始点。

(4)需求规约是创建产品验收测试打算和用户指南的基础。

第三章

本章比较详细地介绍了结构化方法,包含结构化需求分析方法和结构化软件设计方法。一下面对结构化方法作一小结。

1)一样来说,分析是系统化地使用信息,对一个问题的估算。软件需求分析是这一概念的特化,即系统化地使用由〝数据流’,、〝加工〞、〝数据储备〞、〝数据源〞和〝数据潭〞等术语所表达的信息,对待建系统〝是什么〞给出一个估算—系统概念模型,而〝软件设计是定义满足需求所需要的结构〞。结构化方法作为一种特定的软件开发方法学,是从事系统分析和软件设计的一种思想工具。

2)结构化方法的提出,是基于看待客观世界的差不多观点,即一切信息系统差不多上由信息流构成的,每一信息流都有自己的起点一数据源,有自己的归宿一数据潭,有驱动信息流淌的加工,所谓信息处理要紧表现为信息的流淌。

3)人们解决问题的一样途径是,第一对那些非结构化和半结构化的问题,通常采纳已把握的知识,建筑它们的模型定义问题;而后基于已定义的问题,给出相应的解决方案;最后采纳一定的工具,实现这一解决方案,如图3-55所示。

其中,使用数学作为工具,对一个特定的问题建筑了一个模型:Y=x*x+5

结构化方法遵循了人们解决问题的一样途径,其中需求分析确实是通过建筑待开发系统/产品的概念模型,定义需要解决的问题当采纳一定技术验证后,说明该模型是可用的情形下,就可进行总体设i}和详细设计,给出求解软件的一种方案,进而采纳一种程序设计工具实现。当说明该模型不可使用时,那么就需要修改模型,重新验证。

4)所谓模型,简一单地说,确实是对任意事物的一个抽象,特性以及所描述的各个方面。进一步说,其中包括系统的一些差不多能模型是在特定意图下所确定的角度和抽象层,对一个物理系统的描述,给出系统内各模型元素以及它们之间的语义关系对该系统边界的描述。因此,采纳结构化方法建立的系统功能模型,通常还包含力上求为目的,从系统行为的角度,在由〝数据流〞、〝加工〞、〝数据储备〞、〝数据源〞等术语所定义的需求层上,对待开发系统的描述,包括系统环境的描述。

5)为了支持系统功能建模, 紧紧围绕〝问题分离〞、〝过程抽象〞、〝数据抽象〞等差不多原那么,结构化分析方法提出了5个概念,它们是数据源、数据潭、数据流、加工和数据存,并给出了相应的表示。其中,〝数据流〞和〝数据储备〞支持对系统数据的抽象,〝加工〞支持系统功能/过程的抽象;〝数据源〞、〝数据谭〞一级相关的数据流支持对系统环境的描述。应该说,这些概念关于规约软件系统的功能是完备的,即它们能够〝覆盖〞客观世界的一切事物,同时这些概念的语义还相当简单,容易明白得和把握。

为了支持软件求解,紧紧围绕〝功能/过程抽象〞、〝逐步求精〞和〝模块化〞等差不多软件设计原理或原那么,给出了模块、模块调用等概念以及相应的表示,给出了模块结构图、PAD图、N-S图、伪码等设计工具,给出了自顶向下、功能分解的过程指导—变换设计和事务设计,并给出了实现模块化的差不多准那么,以提高模块的独立性。

所谓模块化,是指按照〝高内聚低藕合〞的设计原那么,形成一个相互独立但又有较少联系的模块结构的过程,使每个模块具有相对独立的功育歇过程。

所谓逐步求精,是指把要解决问题的过程分解为多个步骤或时期,每一步是对上一步结果的精化,以接近问题的解法。逐步求精是人类解决复杂问题的差不多途径之一。抽象和逐步求精是一对互补的概念,即抽象关注问题的要紧方面,忽略其细节;而逐步求精关注底层细节的揭示。

可见,结构化方法为了支持系统建模和软件求解,基于一些软件设计原理或原那么,给出

了完备的符号集,给出了相应功能模型的表达工具,给出了自顶向下、逐层分解的过程指导,如图3-56所示。

(6)依据5,我们能够认识到,〝软件方法学是以软件方法为研究对象的学科。要紧设计指导软件设计的原理和原那么,以及基于这些原理、原那么的方法和技术。侠义的软件方法学也指某种特定的软件设计指导原那么和方法体系〞。

(7)从软件方法学研究的角度,结构化方法仍旧存在一些问题,其中最要紧的问题是仍旧没有〝摆脱〞冯.诺依曼体系结构的阻碍,捕捉的〝功能〞和〝数据〞恰恰是客观失误的易变性质,由此建筑的系统结构专门难与客观实际系统的结构保持一致。模块构造图及相关的数据结构,如下图3-57所示。

其中,模块B, G, C, H访问数据结构1,而模块L, I, D, J访问数据结构2。

明显,如此的模块结构一样可不能保持客观系统的结构,同时也专门难爱护,这是因为数据是客观事物的易变属性,一旦数据发生变化,那么不但要修改相应的数据结构,专门可能还需要修改相关的那些模块,甚至受这些模块修改的阻碍,还需要修改模块结构中的其他模块,从而为系统的验证和爱护带来相当大的困难,甚至是〝灾难性〞的。在某种意义上来讲,确实是这些问题促使了面向对象方法学的产生和进展。

第四章

(1)UML作为一种图形化语言,紧紧围绕〝面向对象方法是一种以客体和客体关系来创建系统模型的系统化软件开发方法学〞,给出了比较丰富的表达事物和事物关系的术语,并给出了表达模型的工具,其要紧目的是支持软件开发人员从不同角度(静态、动态)、针对不同粒度(系统、子系统、类目等),从不同抽象层来创建模型,并建立相应的文档。

(2)为了支持抽象分析和设计中的事物,UML给出了8个差不多术语,即类、接口、协作、用况、主动类、构件、制品、结点,并给出了这些差不多术语的一些变体。每个术语都表达着一定的软件设计原理,例如类表达了数据抽象、过程抽象、局部化以及信息隐藏原理;用况表达了问题分离、功能抽象等原理;接「。表达了功能抽象等。当使用这些术语创建{系统模型时,它们的语义就映射到相应的模型元素中。}本章重点讲解了其中的类·接口和用况,简单地说明了协作、主动类·构件、制品和结点,在第s章中可能会使用它们。期望读者在需要时能参阅有关文献,以便对它们有更深人地了解并使用。

(3)为了表达模型元素之间的关系,UML给出了4个术语,即关联、泛化、细化和依靠,以及它们的一些变体。能够作为UMI.模型中的元素,用于表达各种事物之间的差不多关系。这些术语都表达了结构抽象原理,专门是泛化概念的使用,能够有效地进行〝一样/专门〞结构的抽象,支持设计的复用。为了进一步描述这些模型元素的语义,还给出一些特定的概念和表示,例如给出限定符这一概念,以便增强关联的语义。

4)为了组织以上两类模型元素,UMI给出了包这一术语,在实际应用中,能够把包作为操纵信息复杂性的机制。

5)为了使创建的系统(或系统成分)模型清晰、易明白,UML给出了〝注解〞这一术语。

6)为了表达概念模型和软件模型,UML提供了13种图形化工具,它们是类图、对象图、构件图、包图、部署图、组合结构图,以及USE CASE图、状态图、顺序图、通信图、活动图、交互概观图,定序图。前6种图可用于概念模型和软件模型的静态结构方面;而后7种模型可用于概念模型和软件模型的动态结构方面。

本章比较详细地讲解了4种表达系统(或系统成分)模型的工具。其中,类图可用于创建系统的结构模型,表达构成系统各成分之间的静态关系,给出有关系统(或系统成分)的一些说明性信息;Use Case图可用于创建有关系统(或系统成分)的功能模型,表达系统(或系统成分)的功能结构,给出有关系统(或系统成分)在功能需求方面的信息;状态图可用于创建有关系统(或系统成分)的行为生存周期模型,表达有关系统(或系统成分)的一种动态结构,给出有关系统(或系统成分)在生存期间可有哪些时期、每一时期可从事的活动以及对外所出现的特点等方面的信息;顺序图可用于创建有关系统(或系统成分)的交互模型,表达系统(或系统成分)中有关对象之间的交互结构,给出系统(或系统成分)中的一些对象如何协作的信息。

本章没有讲解的模型表示工具包括对象图、构件图、包图、部署图、组合结构图,以及活动图、通信图、交互概观图和定序图。期望读者在需要时能参阅有关文献,以便对它们有好了解并正确使用。

另外,尽管在有的内容中提及一点UML的〝公共机制〞,例如衍型,但没有详细地解。