1)计算机系统:适当地组织在一起的一系列系统元素的集合,这些系统元素相互配合、相互协作,通过对信息的处理而完成预先定义的目标。
系统元素有:计算机软件、计算机硬件、人员、数据库、文档和过程。
2)软件过程:是为了获得高质量软件产品所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。又称软件生存周期过程,是在软件生存周期内达到一定目标而必须实施的一系列相关过程的集合。
3)安装在软件生命周期全过程中应完成的任务的性质,在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等8个阶段。
4)瀑布模型的缺点:最终交付的产品可能不是用户真正需要的。
快速原型模型改进了瀑布模型,在各阶段加入了用户反馈。
增量模型具有能在软件开发的早期阶段,使投资获得明显回报和易于维护的优点,但软件不具有开放结构。
风险驱动的螺旋模型适用于大规模的内部开发项目。
喷泉模型是一种典型的、适合于面向对象范型的过程模型,其软件生命周期是循环的。
5)依据复用的对象,软件复用分为产品复用和过程复用。
产品复用:复用已有的软件构件,通过构件集成得到新系统。
过程复用:指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地输出所需系统。
依据对可复用信息进行复用的方式,软件复用可分为黑盒复用和白盒复用。
黑盒复用:指对已有构件不需作任何修改,直接复用。
白盒复用:指已有构件并不能完全复合用户需求,要根据用户需求进行适应性修改后才可使用。
6)实现软件复用的关键因素:
软件构件技术 Software Component Technology
领域工程 Domain Engineering
软件体系结构 Software Architecture
软件再工程 Software Reengineering
开放系统 Open System
软件过程 Software Process
7)软件构件技术
构件:指应用系统中可以明确辨识的构成成分;
可复用构件:指具有相对独立的功能和可复用价值的构件。
可复用构件的属性:有用性、可用性、质量、适应性、可移植性。
软件构件技术是支持软件复用的核心技术,其主要研究内容有:构件获取、构件模型、构件描述语言、构件分类与检索、构件复合组装、标准化。
8)领域工程:是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。
领域:指一组具有相似或相近软件需求的应用系统所覆盖的功能区域。
领域工程的3个主要阶段:领域分析、领域设计、领域实现。
9)软件再工程:是一个工程过程,它将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。
再工程的基础是对系统的理解,包括对运行系统、源代码、设计、分析、文档等的全面理解。
10)开放系统技术:
基本原则:在系统开发中使用接口标准,同时使用符合接口标准的技术。
开放系统技术具有在保持(甚至是提高)系统效率的前提下降低开发成本、缩短开发周期的可能。
开放系统技术为软件复用提供了良好的支持。特别是分布对象技术。
11)软件体系结构:是对系统整体结构设计的刻画,包括全局组织与控制结构,构件间通讯、同步和数据访问的协议,设计元素间的功能分配、物理分布、设计元素集成、伸缩性和性能、设计选择等。
在基于复用的软件开发中,为复用而开发的软件体系结构可以作为一种大粒度的、抽象级别较高的软件构件进行复用,而且软件体系结构还为构件的组装提供了基础和上下文,对于成功的复用具有非常重要的意义。
研究点:软件体系结构原理与风格、软件体系结构的描述和制约、特定领域软件体系结构、构件化软件体系结构的集成机制等。
12)软件工厂:是一个以计算机为依托,并由计算机控制的编程环境,程序的制作、检查和使用都应当在此环境中,并用其中的工具来实现。
软件工厂围绕软件设计与开发的目标,将支持模型和方法相关的软件工具组织在一起,形成一个有机的集合。
软件生产线中,开发人员分为3类:构件生产者、构件库管理者和构件复用者。
13)软件体系结构:指建立系统时的构造范型、构造风格和构造模式,软件体系结构对于软件系统的构造所起的是指导性的作用,着重于软件系统的总体框架。
软件体系结构的内容:
(1)软件的成分及系统框架;
(2)软件成分的选择、各成分之间的相互作用、软件成分的进一步复合以及指导复合过程的总体模式;
(3)系统的功能、性能、设计以及从多种方案及选项中进行选择的决策。
14)软件体系结构研究动态
目前分为4类:
(1)研究体系结构的表示;体系结构描述语言ADL(Architectural Description Language)
(2)体系结构的分类;软件体系结构分析方法SAAM
(3)特定领域软件体系结构框架的研究;
(4)研究有关软件体系结构的形式化问题。
研究难点和待解决的问题:
软件体系结构还不够成熟,没有统一的体系结构划分标准和设计原则,缺乏形式化技术对它进行完整性和一致性的分析,缺乏有效的计算机辅助工具帮助开发人员进行软件体系结构的设计。
阅读(1992) | 评论(0) | 转发(0) |