声明:本文为作者阅读《软件系统架构与开发环境》后摘录的笔记。
1 软件系统的流程要素
1.1 系统工程概要
钱学森于1978年给出的定义“系统工程是组织管理的技术。把极其复杂的研究对象称为系统,即由相互作用和相互依赖的组成部分结合成具有特定功能的有机整体,而这个系统本身又是其从属的一个更大系统的组成部分。系统工程则是组织管理这种系统的规划、研究、开发、设计、制造、实验和使用的科学方法,是一种对所有系统都具有普遍意义的科学方法。”
2004年国际系统工程协会(INCOSE)给出的定义是:“系统工程是一种实现成功系统的跨学科的工业方法和手段”。
为实现特定目标,在一定准则和规范指导下的系统开发过程称为系统工程。
系统生命周期按瀑布模型分为7个阶段:
1、需求分析:分析用户需求,确定系统的目标,包括功能需求和非功能需求。
2、系统设计:核心思想就是分而治之,分解子系统,定义接口
3、子系统开发:
4、系统集成:
5、系统安装:
6、系统演化:目的是延长系统生命周期,提高系统效益。由于随着时间,会与环境不适宜,或出现新的需求。
7、系统退役:系统停止服务。
1.2 软件工程概要
IEEE定义为“把系统话、规范化、可度量的途径应用于软件开发、运行和维护的过程”。有三要素组成:1方法与技术 2 工具 3 流程
1、软件的生命周期:通常分为五个阶段,将系统工程的7个阶段中后三个合并为一个,系统维护。
2、软件工程流程:是软件工程的主导作用的形式化流程,用于指导、规范软件工程和把输入转化为输出的一组彼此相关的资源和活动,其输入主要指用户要求,输出主要为软件产品,相关资源包括开发人员、软/硬件工具,时间等。
2 软件系统的架构要素
2.1 软件设计的模块化、形式化与层次化
软件设计时软件生命周期中的第二个阶段。主要思想就是“分”。
包括:
1、软件设计的模块
2、软件设计的形式化,其核心内容是对软件模块化和模块化之间的关系进行形式化描述。
3、软件设计的层次化,就是把连续的模块设计,分几段完成:①软件概念设计②软件架构设计③软件详细设计
2.2 软件架构与软件框架
软件架构英文为 softwarearchitecture 是软件体系结构,即软件架构是软件主体模块之间的逻辑关系总和。
软件架构的两种模型:
1 组合模型
分为构件、连接器、端口
2 视图模型:用例视图(需求分析)、结构视图(架构设计)、实现视图(模块开发)、行为视图(系统集成)、部署视图(系统维护)。
软件框架(softwareFramework),即随着软件产业的发展,可复用的、具有某种优势的框架以及实现上述架构的代码被逐步固定下来,并被商品话,这就是最原始的软件框架。它实际上是一种软件半成品,允许客户添加可插拔的定制构件来满足细化的需求。软件框架另一个主要是标准化,这类框架以标准/协议为基础实现系统中某些连接器与/或构件的专业化开发与大范围复用,也是相关标准与协议的重要推广手段。
根据软件架构中所处的不同层次位置,常用软件框架可分为应用框架和支撑框架等。应用框架还可以分为通用框架和领域框架,两类框架的区别在于后者指见于特定的应用领域,前者则适用于各种系统。支撑框架在应用系统与基础设施两者之间起承上启下的作用。一方面,它向应用系统提供标准的应用接口;另一方面,它能够支持多种基础设施。
软件框架一般允许应用开发者通过两个途径进行适应性修改(或定制):①对框架原有的某些构件进行客户化修改,②添加可插拔(pluggable)的客户构件,常以组件的形式提供,于是形成了一种框架-组件开发方式。
在框架-组件开发方式中,组件实现的功能通常通过回调函数提供。常见的回调机制有两种:
1、事件驱动,指框架在事件驱动下回调客户化程序模块中的时间处理句柄方法的机制。
2、流程驱动,指框架在自身流程的控制下回调定制程序模块的机制。