1、系统架构设计第一章1.1.1 系统架构师的概念现代信息系统“架构” 三要素:构件、模式、规划。规划是架构的基石,也是这三个贡献中最重要的。架构本质上存在两个层次:概念层,物理层。1.2.1 系统架构师的定义负责 理解、管理 并最终确认和评估 非功能性系统需求,给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构建、接口 进行总体设计 并澄清关键技术细节。矚慫润厲钐瘗睞枥庑赖。主要着眼于系统的“技术实现”,同时还要考虑系统的“组织协调” 。要对所属的开发团队有足够的了解,能够评估该开发团队实现特定的 功能需求目标和资源代价。1.2.2 系统架构师技术素质对软件工程标准规范有良好的把握。1
2、.2.3 系统架构师管理素质系统架构师是一个高效工作团队的创建者,必须尽可能使所有团队成员的想法一致,为一个工程订制 清晰的、强制性的、有元件的目标 作为整个团队的动力。聞創沟燴鐺險爱氇谴净。必须提供特定的 方法和模型 作为理想的技术解决方案。必须避免 犹豫,必须具备及时解决技术问题的 紧迫感和自信心。1.2.4 系统架构师与其他团队角色的协调系统分析师,需求分析,技术实现系统架构师,系统设计,基于环境和资源的系统技术实现工程管理师,资源组织,资源实现残骛楼諍锩瀨濟溆塹籟。由于 职位角度出发产生冲突制约,不可能很好地给出 开发规范,搭建系统实现的 核心架构,并澄清技术细节,扫清主要难点。酽锕极
3、額閉镇桧猪訣锥。所以 把架构师定位在 工程管理师与系统分析师 之间,为团队规划清晰的目标。对于大型企业或工程,如果一人承担多个角色,往往容易发生顾此失彼的现象。1.3 系统架构师知识结构需要从大量互相冲突 的系统方法和工具中 区分出 哪些是有效的,那些是无效的。1.4 从开发人员到架构师总结自己的架构模式,深入行业总结规律。几天的培训不太可能培养出合格的软件架构师,厂商的培训和认证,最终目的是培养自己的市场,培养一批忠诚的用户或产品代言人,而不是为中国培养软件架构师。彈贸摄尔霁毙攬砖卤庑。2011年软考系统架构设计第二章计算机网络基础知识计算机系统 由 硬件和软件组成,软件通常分为 系统软件和
4、应用软件。系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但不能随意修改它。常用的系统软件有 操作系统、语言处理程序、连接程序、诊断程序、数据库 等。应用软件指 计算机用户利用 软硬件资源 为某一专门的应用目的而开发的软件。2.1 操作系统基础知识操作系统 Operating System,是计算机系统的核心系统软件。2.1.1 操作系统的原理、类型、结构1、操作系统定义硬件资源包括 中央处理器、存储器、输入输出设备。软件资源是以 文件形式保存在存储器上的 程序和数据。操作系统既 有效组织和管理 系统中各种 软硬件资源,合理地组织计算机系统的工作流程,又控制程序的执行,
5、为用户使用计算机 提供了一个 良好的环境和友好的接口。謀荞抟箧飆鐸怼类蒋薔。2、操作系统分类按功能不同分:单用户操作系统、批处理操作系统。分时操作系统、实时操作系统。网络操作系统、分布式操作系统。嵌入式操作系统。厦礴恳蹒骈時盡继價骚。3、操作系统的特征并发性、共享性、虚拟性、不确定性。4、操作系统的功能进程管理、文件管理、存储管理、设备管理、作业管理。2.1.2 处理机 与 进程管理1、进程的定义及其分类进程通常由 程序、数据、进程控制块 PCB 组成。2、进程的状态转换与控制就绪、运行、阻塞。进程控制是通过 进程控制原语实 现的,进程控制原语主要有:创建原语、撤销原语、挂起原语、激活原语、阻
6、塞原语、唤醒原语。茕桢广鳓鯡选块网羈泪。注:原语不可分割,不允许中断。3、进程互斥与同步 以及 P/V 操作同步是使在异步环境下的各进程按一定的 顺序和速度 执行。互斥 要保证临界资源 一次只能提供一个进程使用,称为 临界资源 CR。PV操作是低级通信原语,在执行期间不可分割,P表示申请一个资源,V表示释放一个资源。P操作定义: S:=S-1,若S=0,则执行P操作的进程继续执行,否则若S0, 则执行V操作的进程继续执行,否则若 S=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。 籟丛妈羥为贍偾蛏练淨。4 、进程通信与管程控制信息的交换称为低级通信,数据的交换
7、称为高级通信。高级通信的类型有 共享存储系统、消息传递系统、管道通信。在任一时刻最多只有一个进程能够真正地进入管程,其他的只能等待。5、进程调度与死锁产生死锁的四个必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件。预防策略,破坏死锁的四个必要条件之一。6、线程线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程只拥有一些运行中必不可少的资源。同一个进程中的多个线程可以并发执行,线程具有:就绪、运行、阻塞,三个基本状态。2.1.3 存储管理存储器的发展方向是:高速、大容量、小体积。存储管理的主要任务是:如何提高主存的 利用率、扩充主存 以及对主存信息实现有效保护。2.1.4 设
8、备管理设备管理的目标是:提高设备的利用率,为用户提供方便统一的界面。磁盘调度算法:先来先服务 FCFS、最短寻道时间优先 SSTF、扫描算法SCAN。2.1.5 文件管理随机访问是指对文件中的信息可以按任意次序随机读写文件中的信息。文件控制块FCB,描述和控制文件的数据结构。2.1.6 作业管理常用的作业调度算法有:先来先服务、短作业优先、相应比高优先、优先级调度算法、均衡调度算法。2.1.7 网络操作系统 NOS网络操作系统分为:集中模式、客户机/服务器模式、对等模式。现代操作系统已经把网络功能包含到操作系统的内核中,作为操作系统核心功能的一个组成部分。2.2.1 关系数据库基础数据库的三要
9、素:数据结构、数据操作、数据约束条件。特别需要指出的是,E-R模型强调的是 语义。关系数据库设计理论的核心是 数据间的函数依赖,衡量的标准是 关系规范化的程度 及分解的无损连接 和 保持函数依赖性。預頌圣鉉儐歲龈讶骅籴。数据依赖包括:函数依赖、非平凡的函数依赖、平凡的函数依赖、完全函数依赖、部分函数依赖、传递依赖、码、主属性、非主属性、外码、值依赖定义、函数依赖的公理系统。渗釤呛俨匀谔鱉调硯錦。事务是数据库环境中 不可分割 的逻辑工作单位。四个特性:原子性、一致性、隔离性、持久性,ACID。SQL语言中事务定义语句有三条:BEGIN TRANSACTION 事务开始、COMMIT 事务提交、R
10、OLLBAK 事务回滚。 铙誅卧泻噦圣骋贶頂廡。并发操作是指:在多用户共享系统中,用户可能同时对同一数据库进行操作。带来的问题主要有:丢失更新、不可重复读、读脏数据。并发控制主要技术是封锁:排他锁(简称 X锁、写锁)、共享锁 (简称 S锁、读锁)。保护数据库的关键技术在于 建立冗余数据、即 备份数据。方法是:数据转储、建立日志。2.2.2 关系数据库设计需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计、运行维护。E-R 方法的数据库概念结构设计可分三步:设计局部E-R模型、设计全局E-R模型、全局E-R 模型优化。擁締凤袜备訊顎轮烂蔷。2.2.3 分布式数据库系统满足 分布性、
11、逻辑相关性、场地透明性、场地自治性 的数据库系统被称为 完全分布式数据库系统。分布式数据库系统的特点:数据的集中控制性、数据独立性、数据冗余可控性、场地自治性、存取有效性。4层模式划分为:全局外层、全局概念层、局部概念、局部内层,各层还有相应的 层间映射。2.2.4 商业智能一般认为:数据仓库、连机分析处理、数据挖掘技术 是 商业智能BI 的三大组成部分。数据仓库的关键特征:面向主题、集成的、非易失的、时变的。三层结构:数据仓库服务器、OLAP服务器(连机分析处理 服务器)、前端工具。数据仓库的实现步骤:规划、需求研究、问题分析、数据的 抽取 清洗 集成 装载、数据仓库设计、数据仓库管理、分析
12、报表查询、数据仓库性能优化、数据仓库部署发布。贓熱俣阃歲匱阊邺镓騷。切片、切块、下钻、上卷、旋转 等多维度分析与跨维度分析。OLAP 系统架构主要分为:基于关系数据库的ROLAP、基于多维数据库的 MOLAP、基于混合数据组织的HOLAP。 坛摶乡囂忏蒌鍥铃氈淚。数据挖掘是在 没有明确架设的前提下 去挖掘信息、发现知识。所得的信息应具有 先知、有效、实用,三个特征。主要功能有5类:自动预测趋势和行为、关联分析、聚类、概念描述、偏差检测。2.3 计算机网络基础知识计算机网络按通信距离分 广域网、局域网、城域网。按信息交换方式分 电路交换网、分组交换网、综合交换网。按拓扑结构分 星型网、树形网、环
13、形网、总线型网。按传输带宽分 基带网、宽带网。蜡變黲癟報伥铉锚鈰赘。按使用范围分 公用网、专用网。按通信传播方式分 广播式、点到点式OSI/RM:把复杂的问题分解开,保持了层次之间的独立性。物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。2.3.2 计算机网络1、广域网、局域网、城域网广域网又称远程网,覆盖范围广,传输速率相对低,以数据通信为主要目的 的数据通信网。数据传输可靠性随着传输介质不同而不同、拓扑结构复杂。買鲷鴯譖昙膚遙闫撷凄。有公共交换电话网、各种公用数据网。局域网是指传输距离有限,传输速度较高,以共享网络资源为目的的网络系统,数据传输可靠 误码率低,网络控制一般为分布
14、式,总线拓扑、环形拓扑、星型拓扑、混合型。綾镝鯛駕櫬鹕踪韦辚糴。城域网 是一种较大范围的高速网络。网络拓扑结构:网络中通信线路和节点的几何排序,反映各节点之间的结构关系,影响着整个网络的 设计、功能、可靠性、通信费用 等重要方面。驅踬髏彦浃绥譎饴憂锦。局域网和城域网 都是IEEE802标准,决定局域网主要技术有:传输介质、拓扑结构、介质访问控制方法。决定了传数据的类型、网络响应时间、吞吐率、利用率,以及网络应用。最重要的是 介质控制访问方法。(CSMA/CD)无线局域网具有以下优点:安装便捷、使用灵活、经济解约、易于扩展。IEEE8.2.112、网络互联网络互联目的是 使一个网络的用户能访问其
15、他网络的资源,使不同网络上的用户能够 互相通信、交换信息。网络互联设备的作用是 连接不同网络。传输介质是信号传输的 媒体,常用的介质分为 有限介质 和 无线介质。局域网中,其基本组成部件为 服务器、客户机、网络设备、通信介质、网络软件 等。猫虿驢绘燈鮒诛髅貺庑。3、Internet 及应用世界上规模最大、覆盖面最广 且 最具影响力 的 计算机互联网络,它将分布在世界各地的计算机利用开放系统互连协议连接在一起,用来进行数据传输、信息交换、资源共享。锹籁饗迳琐筆襖鸥娅薔。TCP/IP作为Internet的核心协议,已被广泛应用于局域网和广域网中,主要特性为:逻辑编址、路由选择、域名解读、错误检测、
16、流量控制、对应用程序的支持 等。構氽頑黉碩饨荠龈话骛。TCP/IP是一个协议族,网际层除了IP 协议外,还有ICMP、 ARP、RARP等几个重要协议Internet的地址主要有两种书写形式:域名格式、 IP地址格式。www也成万维网/全球网,是指在Internet 上 以超文本为基础形成的 信息网。采用统一的资源定位器URL 和 图文声并茂的用户界面。輒峄陽檉簖疖網儂號泶。2.3.3 网络管理与网络安全1、网络管理网络管理是对计算机网络的 配置、运行状态、计费 等进行管理。它提供了 监控、协调、测试 各种网络资源 以及 网络运行状况的手段,还可以提供 安全处理和积分 等功能。尧侧閆繭絳闕绚勵
17、蜆贅。OSI网络协议标准中定义了 网络管理的5大基本功能:配置管理、性能管理、故障管理、安全管理、计费管理。识饒鎂錕缢灩筧嚌俨淒。实际上还应该包括 网络规划、网络操作人员管理 等。2、计算机网络安全计算机网络安全是指 计算机、网络系统的 硬件、软件、数据 收到保护,不因偶然或恶意的原因而遭到 破坏、更改、泄漏,确保系统能 连续、可靠 地运行,使网络服务 不中断。凍鈹鋨劳臘锴痫婦胫籴。网络安全从本质上讲 就是 网络上的 信息安全。信息的 传输、存储、访问 提供安全保护,以 防止信息被 窃取、篡改、非法操作。信息安全的基本要素是 保密性、完整性、可用性、真实性、可控性。完整的信息安全保障体系应包括
18、:保护、检测、响应、恢复。信息安全术语:密码学、鉴别、Kerberos鉴别、公钥基础设施、数字签名、访问控制3 、 VPN所谓虚拟专用网,是建立在公用网上,没有专用物理连接,而通过ISP提供的公共网络来实现通信,VPN内部用户可以实现安全通信。恥諤銪灭萦欢煬鞏鹜錦。关键技术:隧道技术、加密技术、密钥管理技术、身份认证技术。解决方案:内联网VPN、外连网VPN、远程接入VPN 。2.3.4 网络工程网络规划、网络设计阶段、工程组织、实施阶段、维护阶段。2.3.5 存储及负载均衡技术RAID磁盘阵列,目的是 建立数据冗余、增强容错、提高容量、增进性能。网络存储体系结构大致分为三种:直接式存储DAS
19、、网络连接存储NAS、存储区域存储SAN。负载均衡 LoadBalance 从结构上分为:本地负载均衡、全局负载均衡。一般情况下从 传输链路聚合、采用更高层网络交换技术、设置服务器集群策略 三个角度实现。集群 Cluster,大多数模式下,集群中所有的计算机拥有一个共同的名称,各节点服务器通过一个内部局域网相互通讯,集群内任一系统上运行的服务都可被所有的网络客户所使用,当一台鯊腎鑰诎褳鉀沩懼統庫。节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管,客户也能很快自动地连接到新的应用服务器上。硕癘鄴颃诌攆檸攜驤蔹。2.4 多媒体技术及其应用媒体有两种含义:信息的载体、
20、存储信息的实体。根据ITU-T(原 CCITT)建议,媒体有 5种:感觉媒体、表示媒体、显示媒体、存储媒体、传输媒体。International Consultative Committe On Telecommunication And Telegraphy,CCITT,国际电报电话咨询委员会。阌擻輳嬪諫迁择楨秘騖。多媒体技术是指:以数字化为基础,对多种媒体信息进行 采集、编码、存储、传输、处理、表现,使之建立有机的逻辑联系,具有良好的 交互性 的技术。氬嚕躑竄贸恳彈瀘颔澩。多媒体的特征:多样性、集成性、交互性、实时性。2.4.2 多媒体数据压缩编码技术JPEG ,Joint Photogr
21、aphic Experts Group,联合图像专家小组,是一种对静态图像压缩的编码算法。“ 联合”的含义是:CCITT 和 ISO 联合组成的图像专家小组。釷鹆資贏車贖孙滅獅赘。MPEG,Moving Picture Experts Group,运动图像专家小组,是作为一个国际标准来研究制订的,具有很好的兼容性。怂阐譜鯪迳導嘯畫長凉。其次,比其它算法提供更好的压缩比,最高可达 200:1。更重要的是对数据损失很小。不存在专利问题,适合大力推广。数据压缩编码两大类:无损压缩编码法(也称 冗余压缩法、熵编码法),有损压缩编码法 (也称 熵压缩法) 。2.4.4 多媒体技术的研究内容对数据进行有效
22、压缩将是多媒体发展中必须要解决的最关键的技术之一。数据量大、种类繁多、关系复杂,是多媒体数据的基本特征。虚拟现实首先,“逼真” 就是要达到 三维视觉、听觉、触觉 等效果。其次,通过人的感官与这个环境进行交互。最后,为用户提供一个逼真的操作环境。谚辞調担鈧谄动禪泻類。虚拟现实是一种 多技术 多科学 相互渗透集成 的技术。只能多媒体技术将具有推理功能的 知识库 与 多媒体数据库 结合起来,形成 智能多媒体数据库。发展趋势:把 多媒体和通信 功能 集成到CPU 芯片中。其一,专用设备、家电及宽带通信设备,可以取代这些设备中的CPU及大量Asic 和其他新品。其二,与现有的计算机系列兼容,同事具有多媒
23、体和通讯功能。2.5 系统性能系统性能 是一个系统提供给用户的 众多性能指标的集合。既包括 硬件性能,也包括软件性能。既包括部件性能指标,也包括综合性能指标。嘰觐詿缧铴嗫偽純铪锩。系统性能包含 性能指标、性能计算、性能设计、性能评估,四个方面内容。2.5.3 系统性能设计是一系列重复的受控的性能实验,循环的调整过程为 收集、分析、配置、测试。阿姆达尔定律 Amdahl:系统中 对某一部件采用某种更快的执行方式所获得的系统性能改变程度,取决于这种方式被利用的频率,或所占总执行时间的比例。熒绐譏钲鏌觶鷹緇機库。被改进并增强的部分 在总时间中所占的比例,增强比例,永远小于等于1.2.5.4 性能评估
24、对测试结果做出解释,并形成一分文档的技术。目的是为了性能的优化提供参考。用得最多、最频繁 的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序 Benchmark。鶼渍螻偉阅劍鲰腎邏蘞。第三章3.1 信息的特征1、客观性:反映了事物的 运动状态和方式,既事实性。2、普遍性:信息无所不在。3、无限性:事物及其变化是 无限多样的。4、动态性:随着时间变化而变化。5、依附性:不能完全脱离物质而独立存在。6、变换性:可以用不同的载体 以不同的方法来负载。7、传递性:时间上的传递 即存储。空间上的传递 即 转移或扩散。8、层次性:信息可以分为 战略级、管理级、操作级。9、系统性:可以形成与现实
25、世界相对应的信息系统。3.1.1 信息化的定义信息化 Informationalization,是以信息资源开发利用为核心,以网络技术、通讯技术等高科技技术为依托的 一种新技术扩散的过程。纣忧蔣氳頑莶驅藥悯骛。3.2 信息化的内容1、信息资源的开发利用2、信息网络的全面覆盖,计算机网络、电信网、电视网等,逐步实现三网合一。3、信息技术的广泛应用,这是信息化的基础。4、信息产业的大力发展5、信息化人才的培养6、信息化政策和标准规范建设基于web的架构是 松散耦合的,优势在于能够在不同的网络及操作系统中运行。以服务器为中心,客户端瘦小、简单,容易在运行时实现自动升级。颖刍莖蛺饽亿顿裊赔泷。3.3
26、信息化的典型应用电子政务的内容1、政府与政府 G2G2、政府对企事业 G2B3、政府对居民 G2C4、企业对政府 B2G5、居民对政府 C2G3.3.1 企业资源规划的结构和功能物料需求计划 MRP,物料单系统 BOM,制造资源计划 MRPII。1、ERP 的概念企业的所有资源包括三大流:物流、资金流、信息流。ERP是建立在信息技术基础上,全面地集成了企业的所有资源信息,并为企业提供决策、计划、控制、经营业绩评估 的全方位 和 系统化的管理平台。濫驂膽閉驟羥闈詔寢賻。ERP是一种管理理论和管理思想,不仅仅是信息系统。1.生产预测市场需求是企业生存的基础,ERP中首先需要对市场进行较准确的预测,
27、预测主要用于计划。常用的预测方法有:德尔菲方法、移动平移法、指数平滑法、非线性最小二乘曲线拟合法。2.销售管理(计划)销售管理从其计划角度来看,属于最高层计划的范畴,是企业最重要的决策层计划之一。3.经营计划(生产计划大纲)4.主生产计划5.物料需求计划根据主生产计划 对最终产品的 需求数量和交货期,推导出构成产品的 零部件及材料的 需求数量和需求时期,再导出自制零部件的制作订单下达日期和采购件的采购订单发送日期。銚銻縵哜鳗鸿锓謎諏涼。6.能力需求计划 CRP通过分析比较 MRP 的需求和企业现有生产力,及早发现 能力瓶颈所在。7.车间作业计划 PAC将零部件的生产计划以订单的形式下达给适当的
28、车间,属于 ERP 执行层计划。当前主流的车间作业计划模式是 JIT模式。挤貼綬电麥结鈺贖哓类。8.采购与库存管理是ERP的基本模块,从采购订单产生至货物受到的全过程进行 组织、实施、控制,库存管理IM 对企业物料的 进、出、存 进行管理。赔荊紳谘侖驟辽輩袜錈。9.质量与设备管理全面质量管理 TQM,对企业的全过程进行质量管理,而且明确指出执行质量职能是企业全体人员的责任。设备管理对 设备寿命周期内的 所有设备 物资运动形态和价值运动形态 进行综合管理。10.财务管理以货币的形式 反映和监督 企业的日常经济活动,并对数据进行分类、汇总,为企业管理和决策提供必要的信息支持。塤礙籟馐决穩賽釙冊庫。
29、11.ERP 有关扩展应用模块客户关系管理、分销资源管理、供应链管理、电子商务 等。3、ERP 的功能ERP 为企业提供的功能是 多层面的 全方位的。3.3.2 客户关系管理在企业的应用1、CRM 的概念提供的信息要有利于更好地理解客户。流程管理要为客户提供高效、适当的体验。提供那些构件强有力关系、提高客户忠诚度的体验。CRM 的核心思想就是 以客户为中心,从传统的“以产品为中心” 的经营理念解放出来,通过富有意义的交流沟通,理解并影响客户行为,最终实现客户 保留、客户忠诚、客户创利 的目的。裊樣祕廬廂颤谚鍘羋蔺。将客户信息 转化为 积极的客户关系 的 反复循环过程。市场竞争,客户资源逐渐减少
30、,市场主动权让给客户,了解市场和客户 真实需要的基础上 提供令其满意的 产品和服务。仓嫗盤紲嘱珑詁鍬齊驁。客户能根据自己的需求 量身定做 合适自己需要的产品和服务。客户信息是 客户关系管理 的基础。更低成本、更高效率 地 满足客户的需求,与客户建立起 基于学习性关系基础,最大程度提高客户满意度、忠诚度。绽萬璉轆娛閬蛏鬮绾瀧。3.3.3 销售自动化 SFA功能:日历和日程安排、联系和客户管理、佣金管理、商业机会、传递渠道管理、销售管理、建议的生产和管理、定价、区域划分、费用报告 等。骁顾燁鶚巯瀆蕪領鲡赙。产品目录和价格、购买记录、服务记录、存货情况、促销文本资料、信用记录。SFA 应用往往集成
31、电子邮件、办公软件 等 其它各种标准应用。3.3.4营销自动化 MA集成客户商业智能信息、产品信息、“营销百科全书 ”等 信息资源。CRM 中,客户服务与支持主要是通过 呼叫中心 和 互联网 来实现,在满足客户的个性化要求方面,高速度、准确性、高效率 来完成客户服务人员的各种要求。瑣钋濺暧惲锟缟馭篩凉。当把客户服务与支持功能同销售、营销功能比较好地结合起来时,就能为企业提供很多机会。客户服务与支持的内容应包括:客户关怀。纠纷、订货、订单跟踪。现场服务。问题及解决方法数据库。维修行为安排调度。服务协议合同。服务请求管理 等。鎦诗涇艳损楼紲鯗餳類。商业智能是指利用 数据挖掘、知识发现 等 技术 分
32、析和挖掘 结构化的、面向特定领域的 存储与数据仓库的信息,帮用户 认清发展趋势、识别数据模式、获取职能决策支持、得出结论。栉缏歐锄棗鈕种鵑瑶锬。智能的范围:客户、产品、服务、竞争者 等。收集和分析市场、销售、服务 和整个企业的各类信息,对客户进行全方位的了解,从而理顺企业资源与客户需求之间的关系。辔烨棟剛殓攬瑤丽阄应。CRM 尚未有成型的理论出现对市场的设定、跟踪、分析总结。呼叫中心支持由合作的硬件厂商参与并提供全套设备,而不仅仅是提供支持呼叫中心的应用软件。对移动设备的支持。决策者所掌握的信息完全,能更及时地做出决策。不管客户由何种渠道与企业联系,与客户的互动都应该是 无缝的、统一的、高效的
33、。需要任命一名来自企业的 系统管理员,作为内部系统专家。经特殊调整的系统 必须 伴随技术培训。由于数据转换过程工作量极大,因此要精确预测该过程的时间表几乎是不可能的。“ 培训者 ”必须接受由软件供应商 进行的培训,称为新系统专家。对所有用户的 正规培训,用户必须认识到 使用新系统的 即时和明显好处。对系统的持续支持要求公司配备至少一名全职的内部系统管理员,可保证技术上自给自足的灵活性,CRM 系统的支持是艰巨的工作。峴扬斕滾澗辐滠兴渙藺。为保证系统带来所希望的益处,在将其推广到所有用户之前一定要加以测试。间接电子商务,商品是有形货物。直接电子商务,商品是无形的货物或服务,双方越过地理界限直接进
34、行交易。3.3.5 供应链管理供应链是企业赖以生存的商业循环系统,企业供应链可以耗费企业高达 25% 的运营成本。从供应商开始,经由制造商、分销商、零售商,直到最终客户的全要素、全过程的集成化管理模式。正向 推动式 运作模式是 以生产为中心。逆向 拉动式 运作模式是 以用户为中心。两种不同的运作模式 适用于不同市场环境。詩叁撻訥烬忧毀厉鋨骜。第四章4.1 软件开发方法4.1.1 软件开发生命周期传统的软件生命期 是指软件产品 从形成概念(构思)开始,经过定义、开发、使用、维护、废弃,的全过程。可以把软件生命期划分为 软件定义、软件开发、软件运行与维护,三个阶段。1、软件定义时期1.问题定义,目
35、标系统“是什么”,系统的定位以及范围。2.可行性研究,技术可行性、经济可行性、操作可行性、社会可行性。3.需求分析,确定软件系统的功能需求、性能需求、运行环境的约束,写出需求规格说明书、软件系统测试大纲、用户手册概要。则鯤愜韋瘓賈晖园栋泷。充分理解用户的需求,并以书面形式写出规格说明书,这是以后软件设计和验收的依据。用户也许很难 一次性 说清楚系统应该做什么。胀鏝彈奥秘孫戶孪钇賻。系统分析员、软件开发人员、用户,共同完成,逐步细化、一致化、完全化 等。软件需求规格说明 SRS,内容可以有 系统(或子系统)名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则 等。鳃躋峽祷紉诵帮
36、废掃減。2、软件开发时期软件开发时期就是软件的设计与实现,概要设计、详细设计、编码、测试 等。概要设计是在软件需求规格说明的基础上,建立系统的 总体结构(含子系统的划分) 和 模块间的关系,定义功能模块及各功能模块之间的关系。稟虛嬪赈维哜妝扩踴粜。详细设计对概要设计 产生的功能模块 逐步细化,包括 算法与结构、数据分布、数据组织、模块间接口信息、用户界面 等,写出详细设计报告。陽簍埡鲑罷規呜旧岿錟。测试可分成 单元测试、集成测试、确认测试、系统测试 等。通常把编码和测试 称为系统的实现。3、软件运行和维护软件维护就是尽可能地延长软件的寿命,没有维护的价值时,宣告退役,软件的生命结束。4.1.2
37、 软件开发模型软件生存周期模型 又称 软件开发模型 或 软件过程模型,模型的特点是 简单化,是软件开发实际过程的 抽象与概括。沩氣嘮戇苌鑿鑿槠谔應。为软件工程管理提供 里程碑和进度表,为软件开发过程提供 原则和方法。软件过程有各种各样的模型。1、瀑布型瀑布型的特点是 因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入,前一个阶段的错漏会隐蔽地带到后一个阶段,每一个阶段工作完成后,都要进行审查和确认,钡嵐縣緱虜荣产涛團蔺。它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究。2、原型模型根据用户提出的软件系统的定义,快速地开发一个原型,包含目标系统的关键问题和反映目标系统的大致
38、面貌。三种途径:利用模拟软件系统的人机界面和人机交互方式。真正开发一个原型。找来一个或几个正在运行的类似软件进行比较。实际工作中,由于各种原因,大多数原型都废弃不用,仅仅把建立原型的过程 当作帮助定义软件需要的一种手段。懨俠劑鈍触乐鹇烬觶騮。用户对系统模糊不清,无法准确回答目标系统的需求。经过对原型若干次修改,应该收敛到目标范围内,否则可能会失败。对大型软件来说,如果没有现成的,就不应该考虑用原型法。3、螺旋模型是生命周期模型与原型模型的一个结合,分成多个阶段,每一个阶段都由4部分组成:1.目标设定,指定对过程和产品的约束,并且制订详细的管理计划。2.风险分析,制订解决办法。3.开发和有效性验
39、证,即开发软件产品。4.评审,确定是否需要进入螺线的下一次回路。增加一周,软件系统就生成一个新版本,系统应该尽快地收敛到用户允许或可以接受的目标范围内。该模型支持大型软件开发,适用于面向规格说明、面向过程、面向对象 的软件开发方法,也适用于几种开发方法的组合。謾饱兗争詣繚鮐癞别瀘。4、基于可重用构件的模型把软件工程工程所创建的 构件 不断地积累和存储在一个构件库中,系统将依赖构件的健壮性。5、基于面向对象的模型构件重用是非常重要的技术之一。一方面进行构件开发,另一方面进行需求开发,快速建立 OOA、OOD 原型,由重用构件组装而成,甚至通过组装可重用的子系统而创建更大的系统。呙铉們欤谦鸪饺竞荡
40、赚。6、基于四代技术的原型四代语言 完全不用变成方式来构造应用系统,而是利用一些生成器。与通常的软件工程环境或计算机辅助软件工程不同,只侧重于支持应用软件开发过程中的 设计阶段和实现阶段,特别是支持界面以及与界面有关的处理过程莹谐龌蕲賞组靄绉嚴减。4.1.3 敏捷方法1、敏捷方法的特点敏捷方法是“适应性” 而非“预设性”的,重型方法在计划制定完成后拒绝变化,而敏捷方法则欢迎变化。“ 面向人的” 而非“面向过程的”传统的软件开发方法的基本思路一般是 只要图纸设计得合理并考虑充分,施工队伍可以完全遵照图纸顺利构造。但是,一些设计错误只能在编码和测试时才能发现。传统正规开发方法是 个体不重要,角色才
41、是重要的,尽量减少人的因素对开发过程的影响,但是敏捷方法正好相反。麸肃鹏镟轿騍镣缚縟糶。管理人员已经脱离实际开发活动相当长的时间了,如此设计出来的开发过程是难以为开发人员所接受的。只有在第一线的开发人员才能真正掌握和理解开发过程中的技术细节,所以技术方面的决定必须由他们来做出。敏捷方法特别强调 相关人员之间的信息交流。因为工程失败的原因最终都可以追溯到信息没有及时准确地传递到应该接受它的人。納畴鳗吶鄖禎銣腻鰲锬。特别提倡直接的面对面交流,交流成本远远低于文档的交流。按照高内聚、松散耦合的原则 将工程划分为若干个小组,以增加沟通。2、敏捷方法的核心思想1.适应性型,利用变化来发展。2.以人为本,
42、在无过程控制和过于严格繁琐的过程控制中取得一种平衡,以保证软件的质量。3.迭代增量式的开发过程,发行版本小型化,根据客户需求的 优先级和开发风险,制订版本发行计划。3、敏捷方法的含义及其特征重型方法注重开发文档的完备和充分性。而敏捷方法认为最根本的文档应该是源码。4、敏捷方法的适用范围实际上,满足工程设计标准的唯一文档是源代码清单。敏捷方法比较适合需求变化比较大 或者 开发前期对需求不是很清晰的工程。敏捷方法对设计者、开发者、客户 之间的有效沟通和及时反馈要求比较高,不易在开发团队比较庞大的工程中实施。風撵鲔貓铁频钙蓟纠庙。5、敏捷方法的主要内容四个核心价值观:沟通、简单、反馈、勇气。简单:只
43、要满足当前功能需求,不做假象设计。勇气:用于抉择,用于实践,用于重构。12条实践规则:简单设计、测试驱动、代码重构、结对编程、继续集成、现场客户、开发版本小型化、系统隐喻、代码集体所有制、规划策略、规范代码、40小时工作机制。灭嗳骇諗鋅猎輛觏馊藹。6、主要敏捷方法简介极限编程水晶系列方法开放式源码,任何人发现Bug都可以将补丁发给维护者。SCRUMCoad的功用驱动开发方法:短时迭代阶段 和 可见可用的功能,一个迭代周期一般为两周,编程人员分为 类程序员、首席程序员。铹鸝饷飾镡閌赀诨癱骝。ASD方法,猜测、合作、学习。4.1.4 RUPRUP把软件开发生命周期划分为多个循环(cycle),每个
44、cycle生成产品的一个新版本,每个cycle依次由4个连续阶段 (phase)组成:攙閿频嵘陣澇諗谴隴泸。初始:定义最终产品视图和业务模型,并确定系统范围。细化:制定工作计划及资源要求。构造。移交。迭代并不是重复地做相同的事,而是针对不同用例细化和实现,每一个迭代都是一个完整的开发过程。每个阶段结束前有一个里程碑(milestone)评估该阶段的工作。如果未能通过该里程碑的评估,则决策者应该做出决定,是取消该工程还是继续做该阶段的工作。趕輾雏纨颗锊讨跃满賺。RUP中的核心概念角色(Role),who 的问题,某个人或一个小组的行为与职责。活动(Activity) ,how的问题,是一个有明确
45、目的的独立工作单元。制品(Artifact),what的问题,是活动生成、创建、修改 第一段信息。工作流(Workflow) ,when的问题,每个工作流产生一些有价值的产品,并显示了角色之间的关系。RUP的特点RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。用例驱动:需求分析、设计、实现、测试,都是用例驱动的。以体系结构为中心:刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征。不依赖于具体语言,是软件设计过程的一个层次。体系结构层次的设计问题包括:总体组织和全局控制、通讯协议、同步、数据存取、给设计元素分配特定功能、设计元素的组织、物理分布、系统的伸缩性、性能 等
46、。夹覡闾辁駁档驀迁锬減。一个系统不可能在所有特性上都达到最优,对于一个系统,不同人员所关心的内容也是不一样的,对于不同类型的人员,只需提供这类人员关心的视图即可。视絀镘鸸鲚鐘脑钧欖粝。分析和测试人员关心用例图,最终用户关心逻辑视图,程序员关心实现视图,系统工程师关心部署视图。RUB强调采用迭代和增量的方法来开发软件,每次迭代中,之考虑系统的一部分需求,每次增加一些新的功能实现。偽澀锟攢鴛擋緬铹鈞錠。好处:早期就可以对关键的、影响大的风险进行处理。可以提出一个软件体系结构来指导开发。处理不可避免的需求变更。可以较早地得到一个可运行的系统,鼓舞开发团队的士气,增强工程成功的信心。更有效工作的开发过
47、程。没有一个工程会使用RUP中所有的东西,用用RUP时要裁剪,裁剪步骤:1.确定本工程 需要哪些工作流。2.确定每个工作流要产出哪些制品。3.确定四个阶段之间(初始阶段、细化阶段、构造阶段、移交阶段)如何演进。4.确定每个阶段内迭代计划。5.规划工作流内部结构。4.1.5 软件系统工具按软件过程活动将软件工具分为 软件开发工具、软件维护工具、软件管理和软件支持工具。软件开发工具有:需求分析工具、设计工具、编码与排错工具、测试工具 等。需求分析工具,生成完整的、清晰的、一致的功能规范。功能规范是软件开发者和用户间的契约,也是软件设计者的和实现者的依据。正确、完整 表达清晰的、无歧义的。緦徑铫膾龋
48、轿级镗挢廟。需求分析工具分为 基于自然语言或图形描述的工具,基于形式化需求定义语言的工具。工程管理工具:工程的 计划、调度、通信、成本估算、资源分配、质量控制等。4.2 需求管理需求 最终文档 经过评审批准后,则定义了需求基线 Baseline。构筑了 功能需求 和 非功能需求 的一个 约定Agreement 。约定是需求开发和需求管理之间的桥梁。騅憑钶銘侥张礫阵轸蔼。需求管理是一个 对系统 需求变更、了解和控制 的过程,初始需求导出的同时 就启动了需求管理规划。4.2.1 需求管理原则过程能力成熟度模型 CMM,指导软件过程改进,5 个成熟级别,6 个关键过程域KPA。一旦需求 文档化了,开
49、发组和有关团队 需要评审文档。发现问题应与客户或者其他需求源协商解决。软件开发计划是基于 已确认的需求。疠骐錾农剎貯狱颢幗騮。绝不要承诺 任何 无法实现的事。关键处理领域 通过版本控制和变更控制 来管理需求文档。确保与新的需求保持一致。4.2.2 需求规格说明的版本控制版本控制是管理需求的一个必要方面,必须统一确定需求文档的每一个版本,当需求发生变更时,及时通知所有涉及人员。镞锊过润启婭澗骆讕瀘。为了尽量减少困惑、冲突、误传,应该仅允许指定的人员来更新需求。清楚地区分草稿和文档定稿版本。4.2.3 需求变更迟到的 需求变更 会对已进行的工作产生非常大的影响。如果每一个建议的需求变更都采用,该工程将可能永远无法完成。需求文档应该 精确描述 要交付的产品。工程负责人 在信息充分的条件下 做出决策。变更成本计算 应该包括 需求文档的修改、系统修改的设计、实现的成本。变更控制过程 并不是给变更设置障碍,相反,它是一个渠道和过滤器,确保采纳最合适的变更,使变更产生的负面影响降到最低,变更过程应该做成文档。榿贰轲誊壟该槛鲻垲赛。绝不能 删除或者修改 变更请求的 原始文档。变更控制委员会 只要能决定合适的人做正确的事就足够了,在保证权威性的前提下 应尽可能精简人员。对每个变更 权衡利弊 做出决定。“ 利 ”包括 节省资金 或 额外收入、客户满意度、竞争优势、减少上市时间。“ 弊 ”是