斗----自尊、自强、自信

蜗牛慢慢爬,只要不停下来就好~~

博客园 首页 新随笔 联系 订阅 管理
原文地址:http://hurryguy.spaces.live.com/blog/cns!11D1743716676DEB!146.trak
Q: 什么是系统工程?
A: 系统工程关注于如何构造一个系统,关注于组成该系统的一系列元素,以及如何按一个系统分析,设计和组织这些元素。该系统可以是针对信息处理的产品服务或技术。
X: 以上并不是系统工程的定义,仅仅描述了系统工程的一个特性。对于任何一个构造基于计算机系统的软件产品/项目的活动而言,一个核心的概念始终是要牢记的:
                                         我们关注的永远是系统
    软件只是系统的一部分。
 
    系统工程将解决问题的对象分解成不同的元素.eg:软件,硬件,人员,数据库,文档,规程等,  再定义元素与元素之间的关系和行为。软件工程可以认为是系统工程中的一个步骤。
 
    针对系统工程所要解决问题对象的不同,可以将系统工程分为两类:
    1. 信息工程。着眼于信息系统的建立和处理
    2. 产品工程。着眼于一个产品的构造。
 
Q: 什么是系统建模?
A: 当一个系统被构造时,以下问题需要解决:
    1. 定义可满足系统需要的需求。                              ----  定义需求
    2. 定义满足该需求所需要过程的行为和行为基于的假设。    ----  定义过程
    3. 显示的定义系统/子系统内外部的输入。                 ----  定义输入
    4. 显示的定义系统/子系统内外部的输出。                 ----  定义输出
 
    我们通过建模来解决以上问题。建模只是一种手段,用来帮助我们分析一个系统。一个模型通常只是对系统某个方面的抽象。对于一个复杂系统而言,往往需要建立多个不同视角的模型来描述该系统。
X: 分解,抽象和建模也是人类解决复杂问题的一种通用的方法。
 
Q: 信息工程与产品工程有什么区别?
A: 信息工程的目标是为企业业务能够有效的使用信息而定义的体系结构。信息工程的核心是数据库。
    产品工程的目标是将一组已定义好的功能产品化(通用化,文档化)。
 
Q: 信息工程的简要方法论?
A: 对于信息工程,一般有三种体系结构需要定义
    1. 数据体系结构
        定义了数据对象和数据对象在业务功能见得流动
    2. 应用软件体系结构
        定义了软件构件及构件与构件之间的交互
    3. 技术基础设施
        定义了运行该信息平台的基础设施。eg:网络结构,客户端/服务器等
 
    一般来说采取如下步骤来分析和设计该系统:
    1. 对企业的业务域的划分
    2. 对每一个子业务域的分析,从而界定出信息系统的功能和边界。
    3. 对信息系统的设计
    4. 构造和集成
 
    对于每一步来说我们分析的方法是类似的。通常要建立以下三种模型
    1. Structure Model 将分析对象分解为多个概念独立的子对象。
          eg: 对信息工程而言可将企业业务系统划分为:
               1) 工程 2) 制造 3) 市场 4) 财会 5) 销售 等子业务域
    2. Function Model 定义每一个子对象的功能性行为。针对业务处理建模
    3. Dynamical Model 定义子对象之间的交互行为。针对数据流建模
X: 信息工程也就是我们通常说的做项目。这类开发活动的复杂性在于:
    1. 业务领域的复杂性。
    2. 业务的多变性。
    3. 业务领域到计算机领域映射的复杂性。
    这类系统的设计师必须要具备多个领域内的知识。由于沟通的问题,这类工程的开发活动很容易造成混乱。这也是软件工程最应该大展拳脚的领域。
 
Q: 产品工程的简要方法论?
A: 产品工程也是一个问题求解的活动,分析产品的数据,功能和行为,并分配给单个的工程构件。
    1. 系统工程师从客户为产品定义的目标开始,进而分配它们到一组工程构件 -- 软件,硬件,数据和人员 -- 的方式来对这些需求建模。
       
        对需求建模可以帮助我们更精确的理解产品,并便于在产品干系人之间沟通。同时需求建模必须解决以下问题:
        1) 如何建模?需要创建哪些模型?
        2) 采用什么方式建模?对可视化模型而言,统一的符号十分重要。这也是UML的目的。
        3) 如何验证模型已经满足了需求?
    2. 建立起这些构件和支撑的基础设施并集成。
 
Appendix:
    很难理解作者的意图。不过有两点是看出来了的
    1. 要从系统的角度,站在所有干系人的角度来问题。单单的只从软件,从研发的角度来看问题是很狭隘的。这也是系统工程师与软件工程师的区别。
    2. 项目和产品的研发是有着很大的不同的。由于我的经验主要集中在产品研发上,所以很难理解项目开发的方法。
    呵呵,不多想了,不求甚解,不求甚解^_^
posted on 2007-12-17 16:59  a斗  阅读(173)  评论(0编辑  收藏  举报