部分内容:
如何进行需求工程
建立业务模型
    --建立业务用例模型
    --用UML活动图表示业务流程
    --根据业务流程发掘业务对象的操作
    --建立业务对象模型(领域模型+业务规则)
根据业务模型确定临时系统用例
    --从每个业务角色的角度出发建模
捕获用例的非功能性需求
捕获用户补充需求(不与用例关联)
如何进行需求工程
根据临时系统用例建立GUI流转模型
    --以每个用例为单位建模
    --用UML状态图表示:状态节点表示界面;状态转换表示界面变换,guard condition表示非人为转换触发条件、event表示人为触发行为,etc.
建立GUI示意原型
    --用户用以验证业务用例的准确性
如何进行需求工程
业务流程实例GUI界面流转模型实例GUI界面原型实例如何进行需求工程
精化(refine)临时系统用例
系统用例重用分析
    --形成用例间extend及include (‘use’ in UML1.1)关系
在每个用例中描述非功能性需求
需求工程产物与系统架构关系
系统用例是系统架构的驱动力
    --根据用例需求确定架构风格或Pattern
    --系统架构迭代过程:领域通用架构,根据领域模型构建;系统专用主架构,选取对构架影响重大的系统用例并实施
系统架构会影响系统用例
    --主架构影响尚未实现的次要用例
    --业务需求向系统需求映射时,尽量考虑根据可重用的系统架构修订用例
如何建立稳定的架构—分层
N层架构(一)
    Views-Controllers-Model (MVC)
    表示-[Web-APP]-资源(DBMS, EIS, etc.)
N层架构(二)
    OS-中间件1层-中间件2层-…-中间件n层(领域层)-应用系统
中间件是N层架构的核心和关键
如何建立稳定的架构—粗粒度组件
领域组件层
        通常一个业务领域内的可重用组件在10个左右即可
跨领域组件层
        外购J2EE组件:业务规则(JRules, Blaze Advisor);MVC组件(JViews);数据异步传输组件(Sm@rtware);工作流组件(BEA BPM, Sm@rtflow);etc.
如何建立稳定的架构—粗粒度组件
粗粒度组件特征
    --提供API(有些API甚至是国际标准)
    --提供组件管理和配置工具
    --平台无关性
    --Standalone
粗粒度组件化方法特点
    --外购成本高;自建周期长(需要积累)
    --领域层组件需要通过领域工程获取
如何建立稳定的架构—变化因素参数化
方法
    --配置文件
    --配置数据库
    --配置工具(可生成配置类源代码)
特点
    --要求开发组能够预见到所有变化因素
    --开发周期足够长(变化因素太多)
如何建立稳定的架构—业务逻辑变化由用户维护
方法
    --提供业务编程脚本
    --脚本程序允许不停机运行
    --脚本程序由用户编写
特点
    --要求脚本程序必须简单易用
何谓OO的系统架构
  OO概念中对象的演化过程
    --数据与作用在数据集合上的运算的结合体(ADT)
    --万物皆对象,对象是属性与可能引起属性变化的操作的结合体(classes)
    --对象是对外部承诺提供服务的事物(interfaces)
何谓OO的系统架构
  面向规格(或接口)设计
    --C头文件
    --Design By Contract (Eiffel, by Bertrand Meyer)
    --Interface-Oriented Patterns (Analysis Patterns)
分布式系统架构与J2EE
 J2EE的作用
    --规范若干标准从而简化开发模型
    --支持应用的工业级部署
    --支持遗留的企业信息系统
    --提供中间件、工具和组件的选择机会
    --灵活的安全模型
分布式系统架构与J2EE