信息化是从工业社会到信息社会的演进与变革
信息化的主体是全体社会成员(政府、企业、团体和个人),时域是一个长期过程,空域是经济和社会的一切领域,手段是先进社会生产工具。
信息化六要素:信息化人才、信息技术应用、信息资源、信息网络、信息技术和产业、信息化政策法规和标准规范
企业战略规划:是利用机会和威胁评价现在和未来的环境,用优势和劣势评价企业现状,进而选择核确定企业的总体和长远目标,指定和抉择现实目标的行动方案。解读:确定企业未来发展的大方向。
信息系统战略规划ISSP:早期的BSP、SCF、SST,战略数据规划方法SDP、信息工程方法。关注的是如何通过信息系统来支撑业务流程的运作,进而实现企业的关键业务目标,其重点在于对信息系统远景、组成架构、各部分逻辑关系进行规划。解读:为企业战略开发支撑系统。
信息技术战略规划(IT战略规划):是在信息系统规划的基础上对支撑信息系统运行的硬件、软件、支撑环境等进行具体的规划,它更关注技术层面的问题。解读:为支撑系统运行环境做规划。
信息资源规划:信息化建设具体项目的实施。是在以上规划的基础上,为开展具体的信息化建设项目而进行的数据需求分析、信息资源标准建立、信息资源整合工作。解读:数据与标准相关的规划。业务需求分析→系统功能建模;数据需求分析→系统数据建模;业务与数据关联。

业务与IT整合(BITA):重心是找业务与现有IT系统之间的不一致,并给出转变计划
企业IT架构(EITA):帮助IT企业建立IT的原则规范、模式和标准
将系统的生命周期划分为系统规划、系统分析、系统设计、系统实施和系统维护等阶段
开发目标清晰化;开发工作阶段化;开发文档规范化;设计方法结构化
精髓是自顶向下、逐步分解(求精)和模块化设计
适合数据处理领域的问题,不适用于规模较大、比较复杂的系统开发,局限性体现在开发周期长,难以适应需求变化,很少考虑数据结构。
根据用户初步需求,利用系统开发工具,快速建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求。
按功能分:水平原型(界面)、垂直原型(复杂算法)
按最终方法分:抛弃型原型、演化型原型
系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯
当前大型信息系统的开发,通常把结构化开发方法和面向对象开发方法结合起来(去找描述的例子,准备论文)
SOA方法三个抽象级别:操作、服务、业务流程
SOA分为三个层次:基础设计层(底层服务构建)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排)
服务建模:分为服务发现、服务规约和服务实现三个阶段
(1)服务的封装;(2)服务的重用;(3)服务的互操作;(4)服务是自治的功能实体;(5)服务之间的松耦合;(6)服务位置透明性
实现SOA所采用的常用标准和规范
(1)Web Service;(2)J2EE;(3)WebSphere、WebLogic;(4);(5)CORBA;(6)DCOM;(7)其他中间件技术;
以J2EE为例,阐述它对SOA的支持。J2EE平台通过新的JAX-RPC 1.1 API提供了完整的Web服务支持,这种API支持基于Servlet和企业Bean的服务端点。JAX-RPC 1.1基于WSDL和SOAP协议提供了与Web服务的互操作性。
现有系统(可以是计算机系统,也可以是手工系统)---物理系统
---调整、优化---→逻辑模型(对应分析阶段)
---实例化---→物理模型(对应设计阶段)
---具体化---→物理系统------新系统
线性规划的标准型(standard form oflinear programming)是线性规划模型的标准形式。其主要特征为
三类角色:政府、企事业单位及居民。(或有第四类,公务员)
①政府对政府(G2G,Government To Government)政府之间的互动
---基础信息的采集、处理、利用,如人口/地理/资源信息等;各级政府政策支持;政府间通信。
②政府对企业(G2B,Government To Business)政府为企业提供的政策环境
---包括产业政策、进出口、注册、纳税、工资、劳保、社保等各种规定;政府向企事业单位办法的营业执照、许可证、合格证、质量认证等
③政府对公民(G2C,Government To Citizer)政府对公民提供的服务
---关于社区公安和水、火、天灾等与公共安全有关的信息等,及户口、证件管理等政府提供的服务。
④政府对公务员(G2E,Government To Employee)政府与公务员即政府雇员
---政府机构通过网络技术实现内部电子化管理(如OA系统等)重要形式
软件产品:但不是直接买来就用,需要个性化的开发与部署
监管系统:存在众多的子系统,这些子系统有统一的规划,是互联互通的,便于事前事中监控
理念:将客户看作是企业的一项重要资产, 客户关怀 是CRM的 中心 ,其目的是与客户建立长期和有效的业务关系,在与客户的每一个“接触点”上都更加接近客户、了解客户,最大限度地增加利润。CRM的 核心 是 客户价值管理 ,它将客户价值分为既成价值、潜在价值和模型价值,通过“一对一”营销原则,满足不同价值客户的个性化需求,提高客户忠诚度和保有率,实现客户价值持续贡献,从而全面提升企业盈利能力。 客户服务 是CRM的 关键内容 ,是能否形成并保留大量忠诚客户的关键。功能
---客户服务:CRM的关键内容。
---市场营销:包括商机产生、商机获取和管理、商业活动管理和电话营销等。
---共享的客户资料库:把市场营销和客户服务连接起来。
---分析能力:CRM的一个重要方面在于它具有使客户价值最大化的分析能力。
客户服务与支持:通过控制服务品质以赢得客户的忠诚度,例如,对客户快速准确地技术支持、对客户投诉的快速反应、对客户提供产品查询等;
客户群维系:通过与客户的交流实现新的销售,例如,通过交流赢得失去的客户等;
商机管理:利用数据库开展销售,例如,利用现有客户数据库做产品推广测试,通过电话或电子邮件促销调查,确定目标客户群等。
理念:强强联合,整合和优化“三流”,打通企业间信息孤岛,严格的数据交换标准
需求信息流,如:客户订单、生产计划、采购合同等;
供应信息流,如:入库单、完工报告单、库存记录、可供销售量、提货发运单等。
产品数据管理(Product Data Management,PDM)是一门用来管理所有与产品相关信息(包括零件信息、配置、文档、计算机辅助设计文件、结构、权限信息等)和所有与产品相关过程(包括过程定义和管理)的技术。PDM系统是一种软件框架,利用这个框架可以帮助企业实现对与企业产品相关的 数据、开发过程以及使用者 进行集成与管理,可以实现对设计、制造和生产过程中需要的大量数据进行跟踪和支持。
发展阶段:配合CAD→产品数据管理→产品协同商务
现代化的业务操作会产生大量数据,怎样从业务数据中提取有用的信息,然后根据这些信息采取明智的行动,就是商业智能的功能。
商业智能=数据仓库+数据挖掘+联机分析处理(OLAP)
1.数据预处理:整合原始数据的第一步,包括ETL三大过程,分别是抽取(extraction)、转换(transformation)和加载(load)。
②数据挖掘:目标是挖掘数据背后隐藏的知识,通过关联分析、聚类和分类等方法建立分析模型,预测企业未来发展趋势和将要面临的问题。
集成的:消除源数据的不一致,提供整个企业的一致性全局信息
相对稳定的:主要进行查询,只有少量的修改和删除操作(或是不删除)
反映历史变化(随时间变化):记录企业过去某一时刻到当前各个阶段的信息,可对发展里程和未来趋势做定量分析和预测
源数据--- ---抽取、清理(即,数据清洗)、装载、刷新→数据仓库
查询工具、报表工具、分析工具、数据挖掘工具
关联分析:挖掘出隐藏在数据间的相关关系
序列模式分析:侧重点是分析数据间的前后关系(因果关系)
分类分析:为每一个机理赋予一个标记在按标记分类(监督学习)
聚类分析:分类分析法的逆过程。(非监督学习)
显性知识:规范,系统,结构化,明确
隐性知识:未规范,零星,非正式,未编码,不易保存、传递
价值链分析法:找出或设计出能够使顾客满意,实现顾客价值最大化的业务流程
客户关系分析法:把CRM用在业务流程的分析上。
供应链分析方法:从企业供应链的角度分析企业的业务流程。
基于ERP的分析方法:将企业的业务流程看做是一个紧密连接的供应链,将供应商和企业内部的采购、生产、销售,以及客户紧密联系,对供应链上的所有环节进行有效管理,实现对企业的动态控制和各种资源的集成和优化。
业务流程重组:通过重新审视企业的价值链,从功能成本的比较重,确定企业在哪些环节具有比较优势。
BPR(业务流程再造)是对企业的业务流程进行根本性的在思考和彻底性的在设计,从何获得可以用诸如成本、质量、服务和速度等方面的业绩来衡量的显著性的成就
BPM(业务流程管理)是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法
BPM应用PDCA循环的管理过程:明确业务流程所欲获取的成果;开发和设计系统的方法实现以上成果;系统的部署方法,确保全面实施;根据业务的检查和分析以及持续的学习活动,评估和审查所执行的方法,并进一步提出计划和实施改进措施。
流程管理包含三个层面:规范流程、优化流程和再造流程。
BPM与BPR管理思想最根本的不同就在于流程管理并不要求对所有的流程进行再造。构造卓越的业务流程并不是流程再造,而是根据现有流程的具体情况,对流程进行规范化的设计。
DSS基本结构由4个部分组成:数据库子系统、模型子系统、推理部分和用户接口子系统


企业网站:注重单向信息传递,缺互动。
企业信息门户(EIP):把各种应用系统、数据资源和互联网资源统一集成到企业门户之下(提供个性化界面及单一的访问入口)。
企业知识们还(EKP):企业网站的基础上增加知识性内容。
企业应用门户(EAP)实际上是对企业业务流程的集成。它以业务流程和企业应用为核心,把业务流程中功能不同的应用模块通过们好几十集成在一起。可以通过EAP访问相应的应用系统,实现移动办公、进行网上交易等。
企业通用门户:集以上四者于一身。
经济可行性:项目的底线,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。
技术可行性:也称为技术风险分析,研究的对象是信息系统需要事先的功能和性能,以及技术能力约束。
法律可行性(社会可行性):需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。
用户使用可行性(执行可行性):从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。
①经济可行性: 经济可行性也称为投资收益分析或成本效益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。多数项目只有建设成本能控制在企业可接受的预算内的时候,项目才有可能被批准执行。而经济收益的考虑则非常广泛,可以分为直接收益和间接收益、有形收益和无形收益,还可以分为一次性收益和非一次性收益、可定量的收益和不可定量的收益等。要注意的是,在系统开发初期,由于用户需求和候选系统方案还没有确定,成本不可能得到准确的估算。因此,此时的经济可行性分析只能大致估算系统的成本和收益,判断信息系统的建设是否值得。
②技术可行性: 技术可行性也称为技术风险分析,研究的对象是信息系统需要实现的功能和性能,以及技术能力约束。技术可行性主要通过考虑以下问题来进行论证
技术 :现有的技术能力和信息技术的发展现状是否足以支持系统目标的实现。
资源 :现有的资源(例如,掌握技术的员工、企业的技术积累、构件库、软硬件条件等)是否足以支持项目的实施。
目标 :由于在可行性研究阶段,项目的目标是比较模糊的,因此技术可行性最好与项目功能、性能和约束的定义同时进行。在可行性研究阶段,调整项目目标和选择可行的技术体系都是可以的,而一旦项目进入开发阶段,任何调整都意味着更多的开销。
需要特别指出的是,技术可行性绝不仅仅是论证在技术手段上是否可实现,实际上包含了在当前资源条件下的技术可行性。例如,开发一个计算机操作系统对于美国微软公司来说,这是可行的,但对其他绝大多数企业来说都是不可行的。投资不足、时间不足、预设的开发目标技术难度过大、没有足够的技术积累、没有熟练的员工可用、没有足够的合作企业和外包资源积累等都是技术可行性的约束。实践证明,如果只考虑技术实现手段而忽视企业当前的资源条件和环境,从而对技术可行性分析得出过于乐观的结果,将会对后期的项目实施导致灾难性后果。
对于技术的选择,有的企业钟情于新技术,有的则喜欢使用成熟的技术。具体要根据项目的实际情况(例如,开发环境、开发人员的素质、系统的性能要求等)进行决策,但通常的建议是尽可能采用成熟的技术,慎重引入先进技术。IT业界流行的诙谐语“领先一步是先进,领先两步是先烈”讲的就是对技术的选择原则。
④用户使用可行性 :也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等,可以细分为管理可行性和运行可行性。
管理可行性 :管理可行性是指从企业管理上分析系统建设可行性。主管领导不支持的项目一般会失败,中高层管理人员的抵触情绪很大,就有必要等一等,先积极做好思想工作,创造条件。另外,还要考虑管理方法是否科学,相应的管理制度改革的时机是否成熟,规章制度是否齐全等。
运行可行性 :运行可行性也称为操作可行性,是指分析和测定信息系统在确定环境中能够有效工作,并被用户方便使用的程度和能力。例如,ERP系统建成后的数据采集和数据质量问题,企业工作人员没有足够的IT技能等。这些问题虽然与系统本身无关,但如果不经评估,很可能会导致投入巨资建成的信息系统却毫无用处。运行可行性还需要评估系统的各种影响,包括对现有IT设施的影响、对用户组织机构的影响、对现有业务流程的影响、对地点的影响、对经费开支的影响等。如果某项影响会过多改变用户的现状,需要将这些因素作进一步的讨论并和用户沟通,提出建议的解决方法。否则,系统一旦建成甚至在建设过程中,就会受到用户的竭力反对,他们会抵制使用系统。
有形收益:自愿要求的减少,运行效率的改进,提高了工作效率,每个月节约的人员工资
无形收益:企业形象的改善、提高客户满意度和忠诚度
固定成本:不受业务量变动的影响而保持固定不变的成本,如房屋租金、固定资产折旧费、员工培训费等
变动成本:随业务量的变动而成正比例变动的成本,如直接材料费、产品包装费、外包费用、开发奖金等。
混合成本:混合了固定成本和变动成本性质的成本,如水电费、电话费等,通常有一个基数,超过这个基数就会碎业务量的增大而增大。
沉没成本:已经支出的成本,对于未来的决策而言,无论项目是否继续,成本都已花掉,收不回来了。
销售额=固定成本+可变成本+税费+利润(正常情况下)
销售额=固定成本+可变成本+税费(盈亏平衡时)
不考虑时间成本,为静态;考虑时间成本,为动态。
例:100块,年利率10%,第三年为133.1块。所以有:100=133.1/(1+10%)2
净现值:把各个年份的资金净收益,转成现值累加。如果是投资,则记为负收益。
计算净现值的时候,净现值大于0,就值得投;净现值越高,越值得投。
净现值率:净现值除以一次性投入的资金
投资回收率=1/投资回收期*100%
总投资收益率=投资收益/投资总额*100%
年均投资收益率=运营期年均净收益/投资总额*100%
初步调查、分析系统目标、子系统组成、拟实施方案、可行性研究、制定系统建设方案
产物:系统设计任务书(系统建设方案、实施计划)
业务流程分析、数据与数据流程分析、软件需求分析、网络需求分析
产物:系统需求规格说明书、软件需求规格说明书、系统测试计划
软件架构设计、概要设计、详细设计、网络设计
产物:架构设计文档、概要设计说明书、详细设计说明书、详细测试计划
软件编码、软件单元/集成/系统测试、综合布线
产物:源码、单元测试、集成测试报告、操作手册
产物:确认测试报告、项目验收报告
结构化方法,适用于需求很明确的情况,软件开发的各项活动严格按照线性方式进行,每个阶段都有文档产出。
针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现
第一次迭代(需求->设计->实现->测试->集成) -> 反馈 -> 第二次迭代(需求->设计->实现->测试->集成) -> 反馈-> ……
各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品,然后不断增加新的模块。
第一个增量往往是实现基本需求的核心产品。
以原型为基础,配合瀑布模型,同时用到迭代思想
关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃
无完整的需求说明,只有一些基本要求
项目的整个生存期中还可以嵌入子生存期,就像水喷上去又可以落下来,可以落在中间,也可以落在最底部
包含了底层测试(单元测试)和高层测试(系统测试)
自上而下逐步求精,每个阶段分工明确,便于整体项目的把控
用例驱动,以架构为中心,迭代和增量
思想:给开发人员减负,加强沟通,适用于小项目
水晶方法:探索用最少纪律约束而仍能成功的方法
特性驱动开发(FDD):开发人员分成两类:首席程序员和“类”程序员,首席程序员经验丰富,是项目的协调者、设计者和指导者,“类”程序员主要做源码的编写
SCRUM:明确定义了可重复的方法过程只限于在明确定义了的可重复环境中
短平快的会议;小型版本发布;较少的文档;合作为重;客户直接参与;自动化测试;适应性计划调整;结对编程;测试驱动开发;持续集成;重构
快速反馈、简单性假设、逐步修改、提倡更改、优质工作
1.计划游戏;2. 结对编程;3. 小型发布;4. 案例代码所有制; 5. 隐喻;6. 持续集成;7.简单设计;8. 每周工作40小时;9. 测试先行;10. 现场客户;11. 重构;12. 编码标准
实现级:包括程序的抽象语法树、符号表、过程的设计表示
结构级:包括反映程序分量之间相互依赖关系的信息,如调用图、结构图、程序和数据结构
功能级:包括反映程序段功能级程序段之间关系的信息,如数据和控制流模型(DFD)
领域级:包括反映程序分量或程序各实体与应用领域概念之间相应关系的信息,如实体关系模型(ER图)、UML
与逆向工程相关的概念有重构、设计恢复、再工程和正向工程。
(1)重构(restructuring)。重构是指在同一抽象级别上转换系统描述形式。
(2)设计恢复(design recovery)。设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息。
(3)再工程(re-engineering)。再工程是指在逆向工程所获得信息的基础上,修改或重构已有的系统,产生系统的一个新版本。再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤。它不仅能从已存在的程序中重新获得设计信息,而且还能使用这些信息来重构现有系统,以改进它的综合质量。在利用再工程重构现有系统的同时,一般会增加新的需求,包括增加新的功能和改善系统的性能。
(4)正向工程(forward engineering)。正向工程是指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量。
净室即无尘室、洁净室。也就是一个受控污染级别的环境
使用盒结构规约(或形式化方法。具有高度严谨的逻辑性,数学层面能证明)进行分析和设计建模,并且强调将正确性验证,而不是测试,作为发现和消除错误的主要机制
使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息
软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。
软件需求是指用户解决问题或达到问题所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
需求管理是对需求基线(即,经过确认的计划)进行管理
需求获取、需求分析、需求定义(需求规格说明书,SRS)、需求验证(形成需求基线,经过评审的SRS)
变更控制、版本控制、需求跟踪、需求状态跟踪
性能需求,包括安全性、可靠性等等广义的性能
是一种将用户要求转换成软件需求的技术,七亩地是最大限度的提升软件工程过程中用户的满意度。
用户访谈:1对1-3,有代表性的用户;耗时。开放式问题与封闭式问题相结合
问卷调查:用户多,无法一一访谈
现场观摩:针对较为复杂的流程和操作(看别人做)
联合需求计划(JRP):高度组织的群体会议,各方参与,成本较高
情节串联板:一系列图片,通过这些图片来讲故事。(原型的雏形)
收集资料:把与系统有关的、对系统开发有益的信息收集起来
参加业务实践:有效的发现问题的本质和寻找解决问题的办法(自己亲自做)
阅读历史文档:对收集数据性的信息较为有用
样本大小 = α* (可信度系数 / 可接受的错误) 2
PIECES框架是系统非功能性需求分类的技术
性能(Preformance):性能用于描述企业当前的运行效率,可以分析当前业务的处理速度
信息(Information):信息和数据指标用于描述业务数据的输入、输出以及处理方面存在的各种问题
经济(Economics):经济指标主要是从成本和收益的角度分析企业当前存在的问题
控制(Control):提高信息系统的安全和控制水平
效率(Efficiency):提高企业的人、财、物等的使用效率
服务(Service):提高企业对客户、供应商、合作伙伴、顾客等的服务质量
用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流、加工、数据存储、外部实体
实体:数据模型中的数据对象,如学生
属性:数据对象所具有的属性,例如学生具有姓名、学号、年级等属性
关系:表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系
数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体


属性(数据)+方法(操作)+对象ID
实体类:对必须存储的信息和相关行为建模的类
控制类:描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序
边界类:描述外部参与者与系统之间的交互
用户界面类:帮助与系统用户进行通信的类
系统接口类:帮助与其他系统进行通信的类
设备接口类:为用来监测外部事件的设备(如传感器)提供接口的类
封装:隐藏对象的属性和实现细节,仅对外公开接口
多态:不同对象接收到同样的消息产生不同的结果
接口:特殊的类,只有方法定义,没有实现
重载:一个类可以有多个同名而参数类型不同的方法
消息和消息通信:消息是异步通信的
作用域:给一个名字以特定含义的语境
完整性:事物如何正确、一致地互相联系
执行:运行或模拟动态模型的含义
规格说明:事物语义的细节描述,模型的真正核心
公共分类:类与对象、接口与实现

基本构造块包括事务、关系和图。
结构事务:最静态的部分,包括:类、接口、协作、用例、活动类、构件和节点
行为事务:代表时间和空间上的动作,包括:消息、动作次序、连接
分组事务:看成是个盒子,如:包、构件
注释事务:解释部分,描述、说明和标注模型的元素
依赖关系:一个事物发生变化影响另一个事物。带箭头的虚线,指向被使用者
Include(看课程VS登录)
Extend(看课程VS充值)
泛化关系:特殊 → 一般的关系。带三角箭头的实线,箭头指向父类
关联关系:描述了一组链,链是对象之间的连接
聚合关系:整体和部分生命周期不同,如车子坏了,但车上的零部件还可以用。带空心菱形的实心线,菱形指向整体
组合关系:整体和部分生命周期相同,如人挂了,鼻子、耳朵就没有意义了。带实心菱形的实线,菱形指向整体
实现关系:接口与类之间的关系。带三角箭头的虚线,箭头指向接口
通信图:也叫协作图,它展现了多个对象在协同工作达成共同目标的过程中互相通信的情况,强调对象之间的组织结构。
序列图:也叫顺序图,描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。强调时序。
时间图:具体描述单个或多个对象状态变化的时间点以及维持特定状态的时间段。相当于在顺序图中添加时间约束就可以形成时间图
交互概述图:将活动图和序列图嫁接在一起的图
活动图:描述的是系统的一个活动到另外的一个活动的控制流程。区别于交互图,强调的是对象到对象的控制流
用例图:描述角色以及角色与用例之间的连接关系,说明的是谁要使用系统,以及他们使用该系统可以做些什么
状态图:描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移
类图:描述一组类、接口、协作和它们之间的关系。
对象图:描述一组对象及它们之间的关系,描述了在类图中所建立的事物实例的静态快照。
构件图:描述一个封装的类和它的接口、端口以及由内嵌的构件和连接件构成的内部系统。
部署图:描述对运行时的处理节点及在其中生存的构建的配置,给出了架构的静态部署视图。
部署视图:软件构件到物理节点映射
严格定义法:所有需求都能被预先定,开发人员与用户直接能够准确而清晰地交流,采用图形/文字可以充分体现最终系统----类似于瀑布型的思想
原型法:并非所有的需求都能在开发前被准确地说明,项目参加者之间通常都存在交流上的困难,需要实际的、可供用户参与的系统模型,有合适的系统开发环境,反复是完全需要和值得提倡的,需求一旦确定,就应遵从严格的方法。
定义完成后得到规格说明书SRS,进行需求评审
需求评审(SRS):正式评审和非正式评审。
需求测试:通过场景的模拟,确定开发的系统是否满足将来的需求)
用户签字确认也是将来的验收标准之一,此时,这个需求规格说明书就是需求基线,不可以再随意更新,如果需要更改必须走需求变更流程。
识别出问题→问题分析和变更描述→变更分析和成本计算→变更实现→修改后的需求
用户原始需求---正向/反向跟踪---软件需求---正向/反向跟踪---下游工作产品
IDEF:一系列建模、分析和仿真方法的统称
IDEF0 :业务流程(功能)建模
IDEF1X:数据建模(如ER模型)
IDEF9:场景驱动信息系统设计
需求分析 → 架构 → 软件设计
架构设计就是需求分配,即将满足需求的职责分配到组件上。
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
软件架构为软件提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性
软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础
软件架构是可传递和可服用的模型,通过研究软件架构可能预测软件的质量
核心问题是能否达到架构级的软件复用
架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效的组织成一个完整的系统
软件架构风格定义了用于描述系统的术语表和一组指导构建系统的规则
数据流风格:批处理序列、管道过滤器
调用/返回风格:主程序/子程序、面向对象、层次结构
独立构件风格:进程通信、事件驱动系统(隐式调用)
虚拟机风格:解释器、基于规则的系统
仓库风格:数据库系统、超文本系统、黑板系统
功能内聚、顺序内聚、通信内聚、过程内聚、瞬时内聚、逻辑内聚、偶然内聚
非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合
概要设计 【外部设计】 : 又称为总体结构设计,功能需求分配给软件模块,确定每个模块的功能和调用关系,形成模块结构图。产物:软件结构图、数据流图、数据字典等----偏高层的设计
详细设计 【内部设计】 : 为每个具体任务选择适当的技术手段和处理方法,模块内详细算法设计模块内数据结构设计、数据库的物理设计、其他设计编写详细设计说(代码、输入/输出格式、用户界面)明书、评审。
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成设;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
单一职责原则:设计目的单一的类
开放-封闭原则:对扩展开放,对修改封闭
里氏替换原则:子类可以替换父类
依赖倒置原则:要依赖于抽象而不是具体实现;针对接口编程,不要针对实现编程
接口隔离原则:使用多个专门的接口比使用单一的总接口好
组合重用原则:尽量使用组合,而不是继承关系达到重用目的
迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
架构模式:软件设计中的高层决策,如C/S结构就属于架构模式,反映了开发软件系统过程中所做的基本设计决策
设计模式:主要关注软件系统的设计,与具体的实现语言无关。每个设计模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动,设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便的复用成功的设计和体系结构。
惯用法:最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有他自己特定的模式,即语言的惯用法。例如引用-计数就是C++语言中的一种惯用法
属于类模式的很少,只有:创建型模式中的工厂方法;结构型模式中的适配器模式;行为型模式中的解释器模式与模板方法模式
从架构来看:MVC、MVP、MVVM、Rest、Webservice、微服务
从缓存来看:MenCache、Redis、Squid
从并发分流来看:集群(负载均衡)、CDN
从数据库来看:主从库(主从复制)、内存数据库、反规范化技术、NoSQL、分区(分表)技术、视图与物化视图
从持久化来看:Hibernate、Mybatis
从分布存储来看:Hadoop、FastDFS、区块链
从数据编码来看:XML、JSON
Web应用服务器:Apache、WebSphere、WebLogic、Tomcat、JBoss、IIS
其他:静态化、有状态与无状态、响应式Web设计
负载均衡下会出现“有状态与无状态问题”
就是应用层的请求转发。用户的请求其实已经到了HTTP重定向负载均衡服务器,服务器根据算法要求用户重定向,用户收到重定向请求后,再次请求真正的集群。
在用户的请求到达反向代理服务器时(已经到达网站机房),由反向代理服务器根据算法转发到具体的服务器。常用的apache、nginx都可以充当反向代理服务器。
特点:部署简单,但代理服务器可能成为性能的瓶颈
DNS域名解析负载均衡就是在用户请求DNS服务器,获取域名对应的IP地址时,DNS服务器直接给出负载均衡后的服务器IP
特点:效率比HTTP重定向高,减少维护服务在均衡服务器成本。单一个应用服务器故障,不能及时通知DNS,而且DNS负载均衡的控制权在域名服务商那里,网站无法做更多的改善和更强大的管理
基于NAT的负载均衡讲一个外部IP地址映射为多个IP地址,每次连接请求动态地址转换位一个内部节点的地址
特点:技术较为成熟,一般在网关位置,可以通过硬件实现。像四层交换机一般就是采用了这种技术。
静态算法:轮转算法、加权轮转算法、原地址哈希散列算法、目标地址哈希散列算法、随机算法
动态算法:最小连接数算法、加权最小连接数算法、加权百分比算法
软件负载均衡:LVS、Nginx、HAproxy
用缓存缓解读库的压力。Memcached是一个自由开源的、高性能、分布式内存对象缓存系统。简洁的key-value存储系统。通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
CDN(内容分发网络),全程是Content Delivery Network,基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和缓解,使内容传输的更快、更稳定。
2.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护
JSON(JavaScript Object Notation)一种轻量级的数据交换格式,将原有良好的可读性和便于快速编写的特性。可在不同平台之间进行数据交换。
2.已与解析,客户端JavaScript可以简单的通过eval进行JSON数据的读取
3.支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等服务器端语言,便于服务器端的解析;
4.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护
没有XML格式那么推广的深入人心和使用管饭,没有XML那么通用性
WEB应用服务器可以理解为两层意思
(1)WEB服务器:其职能较为单一,就是把浏览器发过来的Request请求,返回Html页面。
Apache:Web服务器,市场占有率达60%左右。它可以运行在几乎所有的Unix、Windows、Linux系统平台上。
IIS:早期Web服务器,目前小规模站点仍有应用。
Tomcat:开源、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。
JBOSS:JBOSS是基于J2EE的开放源代码的应用服务器。一般与Tomcat或Jetty绑定使用。
WebSphere:一种功能完善、开放的Web应用程序服务器,它是基于Java的应用环境,用于建立、部署和管理Internet和Intranet Web应用程序。
WebLogic:BEA WebLogic Server是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。
Jetty:Jetty是一个开源的servlet容器,它为基于Java的web容器。
MemCache:Memcache是一个高性能的分布式的内存对象缓存系统,用于动态Web应用以减轻数据库负载。Memcache通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
Redis:Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Squid:Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP 协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/0驱动的进程来处理所有的客户端请求。
Redis与Memcache的差异如下
1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。他们都支持key-value数据类型。同时Memcache还可用于缓存其他东西,例如图片、视频等等,Redis还支持list、set、hash等数据结构的存储。
2、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。Memcache挂掉之后,数据就没了。
3、灾难恢复-Memcache挂掉后,数据不可恢复;Redis数据丢失后可以恢复。
4、在Redis中,并不是所有的数据都一直存储在内存中的。这是和Memcache相比一个最大的区别。当物理内存用完时,Redis可以将一些很久没用到的value交换到磁盘。
5、Redis在很多方面支持数据库的特性,可以这样说他就是一个数据库系统,而Memcache只是简单地K/V缓存。
所以在选择方面如果有持久方面的需求或对数据类型和处理有要求的应该选择Reddis。如果简单的key/value存储应该选择Memcache。
REST (Representational State Transfer,表述性状态转移)是一种只使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。
响应式WEB设计是一种网络页面设计布局,其理念是:集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境进行相对应的布局。
(1)采用流式布局和弹性化设计:使用相对单位,设定百分比而非具体值的方式设置页面元素的大小。
既要选择有效、合理的数据,也要选择无效、不合理的数据
尚未发现的错误数量与该程序已发现错误数成正比
语句覆盖、判定覆盖、条件覆盖、条件判断覆盖、修正的条件判断覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖
模块测试模块功能、性能、接口等
制定系统测试计划:进行人员以及任务的确定,明确测试范围,测试方法,测试环境与辅助工具。
设计系统测试用例:如等价类划分、边界值分析等测试方法的应用。
执行系统测试:执行设计好的测试用例,并记录结果。
缺陷管理与改错:消除已发现的错误。
低技术水平,高商业价值:继承,兼容功能性模型和数据模型
1.改正性维护:改bug。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施过程中的误使用,应当进行的诊断和改正错误的过程。
2.适应性维护:适应技术和管理的需求变化,针对环境改变引起的。在使用过程中,外部环境(新的硬件、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生改变。为使软件适应变化而去修改软件的过程
3.预防性维护:针对未来。预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需求”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的一部分重新设计、编码和测试
4.完善性维护:扩充功能和改善性能为以后的维护做准备。在使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
IP:Internet协议,无连接、不可靠
ICMP:网际报文控制,专用发送差错报文,PING命令来自该协议
ARP:地址解析协议,实现IP地址向物理地址(MAC地址)的转换
RARP:逆地址解析协议,实现物理地址(MAC地址)向IP地址的转换
IGMP:负责IP 组播成员管理的协议,用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系
TCP:传输控制协议,是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过 三次“对话” 才能建立起来。可靠
UDP:用户数据报协议,非连接的协议,传输数据之前源端和终端不建立连接,不可靠,但有助于提高传输速率
POP3:110端口,邮件收取
IMAP:143端口,邮件客户端从邮件服务器上获取邮件信息、下载邮件
FTP:20数据端口/21控制端口,文件传输协议
HTTP:80端口,超文本传输协议,网页传输
DHCP:67端口,IP地址自动分配
SNMP:161端口,简单网络管理协议
DNS:53端口,域名解析协议,记录域名与IP的映射关系
租约过半时,客户机需要向DHCP服务器申请续租
租约超过87.5%时,如果仍然没有和放出提供IP的DHCP服务器联系上,则开始联系其他的DHCP服务器,
windows系统假IP:169.254.X.X;linux系统假IP:0.0.0.0
递归查询:服务器必须回答目标IP与域名的映射关系
迭代查询:服务器收到一次迭代查询回复一次结果,不一定是目标IP与域名的映射,也可以是其他DNS服务器的地址。
主机向本地域名服务器的查询采用递归查询,本地域名服务器向根域名服务器的查询差用迭代查询。
如果服务器有向外的箭头,则为递归,没有向外的箭头,则为迭代。
tracert:确定IP数据包访问目标所采取的的路径,若网络不通,能定位到具体哪个结点不同
ipconfig:显示TCP/IP网络配置值,如:IP地址,MAC地址,网关地址等
Netstat:显示网络连接、路由表和网络接口信息
逻辑网络设计:利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,得到逻辑网络设计文档,包括
物理网络设计:对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等确定,,包括
工作区子系统(Work Area):用户工作区域,主要包括插座面板、模块、跳线。
水平干线子系统(Floor distributor):从各区域配线间至工作区用户信息插座,由水平电缆、中间配线设备等组成
管理区子系统(Telecommunications room):设置在楼层配线房、弱电井内,是水平系统电缆端接的场所,也是主干系统电缆端接的场所
垂直干线子系统(Building backbone cabling):把各分层配线架与主配线架相连,用主干电缆提供楼层之间通信的通道,使整个布线系统组成一个有机的整体
设备间子系统(Eqiupment):大楼中数据、语音垂直主干线缆终接的场所,就是我们常说的机房
建筑群子系统(Campus distributor):涉及两幢上的建筑
进程开始先进行P操作,对信号量减1,如果小于0则阻塞,不允许通过
进程结束后进行V操作,对信号量加1,如果小于等于0则从阻塞进程中拿出进程。
初始级:未加定义的随意过程,软件过程的特点是无秩序的
可重复级:规则化和纪律化的过程,以建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。有章可循并能重复以往取得的成功
已定义级:标准的和一致的过程,用过管理的和工程的软件过程均已文档化、标准化
已管理级:可预测的过程,软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制
优化级:持续改进的过程,通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,不断地、持续性地对过程进行改进
能力成熟度模型集成( CMMI )
微型化:从性能和成本角度考虑,希望占用资源和系统代码量少
可定制:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要
实时性:嵌入式操作系统主要应用于过程控制、数据采集、传输通信等需要迅速响应的场合,实时性要求高
可靠性:系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施
易移植性:采用硬件抽象层和板级支持包的底层设计技术,提高系统的易移植性
A类地址:0.0.0.0~127.255.255.255
B类地址:128.0.0.0~191.255.255.255
C类地址:192.0.0.0~223.255.255.255
A类地址前8位是网络前缀,B类地址前16位是网络前缀,C类地址前24位是网络前缀
子网掩码:用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
如:地址202.115.192.0/19,把网络分成31个子网,则子网掩码为?
/19表示前19位是网络位,31个子网需要 5 位表示(2^5 ≥ 31,2^4≤31),所以前19+5位是掩码位,即前24位为1,后8位为0,故子网掩码为:255.255.255.0
再如:将B类IP地址168.195.0.0划分为若干子网,每个子网内有主机700台,则子网掩码为?
B类地址前16位为网络位,700台主机需要10个主机位(2^10 ≥700,2^9≤700),所以前22位为网络位,用掩码1覆盖,故子网掩码为255.255.252.0
网络级:保护整个网络不受非法入侵,隔离内网和外网
应用级:控制对应用程序的访问, 即允许访问某些应用程序而阻止访问其他应用程序
屏蔽子网:安全性最高。在内网和外网之间建立隔离区,称为DMZ非军事区,存放对外通讯的服务器(堡垒机)
事务:访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。
原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。
一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。
1.丢失更新:两个进程在读取同一组数据时,一组commit了更新,另一组未同步此更新,故发生丢失更新
T1进程,读A=10,写A=A-5写回
T2进程,读A=10,写A=A-8写回此时由于进程T1操作,数据库中A已经等于5,但T2进程还是用的A=10进行计算写回,数据库中值为2,覆盖了5的值,造成丢失更新。
2.不可重复读:一个进程两次读取数据的结果不同,原因是另一个进程在两次读取过程中修改了数据
T1进程,读A=20,B=30,求和A+B=50,第二次读(验算)A=70,B=30,求和A+B=100。两次读取计算的结果不同。
T2进程在T1进程两次读操作之间修改了A的值为70。
3.读脏数据:两个进程,一个进程对数据进行修改,还未提交,另一个读取了这个未提交的数据,视为脏数据。或者进程提交之后回滚了提交,回滚前的数据视为脏数据。
由于规范化会使表不断地拆分,从而导致数据表过多,这样虽然减少了数据冗余,提高了增删改的速度,但是增加了查询的工作量,系统需要进行多次连接才能查到数据,使得系统的效率大大的下降。
1.增加派生列:在表中增加可以由本表或其他表中数据计算生成的列,减少查询时的连接操作并避免计算或使用集合函数。
2.增加冗余列:在多个表中保留相同的列,通过增加数据冗余减少或避免查询时的连接操作
3.重新组表:如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
垂直分割表:对列进行分割,把主键和部分列放到一个表里,主键和其他列放到另一张表里,减少查询的是I/O次数
水平分割表:对行进行分割,把某个范围的数据单独拿出放到一张表里,主要用于表数据规模很大,表中数据相对独立或数据需要存到多个介质上时使用。
数据的重复存储,浪费了磁盘空间,可能出现数据的完整性问题。
为了保障数据的一致性,增加了数据维护的复杂性,会降低修改速度
框架1:轮软件系统需求获取技术及应用
1.用户访谈;2.问卷调查;3.采样;4.情节串联版;5.联合需求计划;6.现场观摩
1.功能分析法(功能分解法);2.数据流分析法(结构化分析法);3.信息建模分析法;4.面向对象分析法;5.PDOA法
框架3:论面向对象设计方法及应用
原则:1.开放封闭原则;2里氏替换原则;3.迪米特原则(最少知识原则);4.单一职责原则;5.接口分离原则;6.依赖倒置原则;7.组合复用原则
框架4:论面向对象的信息系统分析方法
建立对象模型的主要活动:1.需求陈述;2.建立对象模型;3.建立动态模型;4.建立功能模型;5.定义服务
风险管理过程:1.规划风险管理;2.风险识别;3.风险定性分析;4.风险定量分析;5.规划风险应对;6.控制风险
框架6:论信息系统开发方法及应用
1.结构化方法;2.面向对象方法;3.面向服务的方法;4.原型化方法;5.快速应用开发;6.敏捷开发
论述“自顶向下”和“自底向上”的开发方法
框架8:论原型法及其在信息系统开发中的应用
原型法过程:1.制定原型开发计划,确认用户基本需求;2.设计可运行的系统原型;3.试用和评价模型;4.修改完善原型;5.整理原型,提供文档。
框架10:论静态测试方法及其应用
方法:1.桌前检查;2.代码审查;3.代码走查;4.静态分析
框架11:论软件设计模式及其应用
设计模式:创建型、结构型、行为型
框架12:论数据灾备技术与应用
请以“信息系统开发方法及其应用”为题,分别从以下三个方面进行论述。
2、简要说明目前比较主流的信息系统开发方法的内涵及特点,并结合项目实际情况,阐述所选择的开发方法及其原因。
3结合你具体参与管理和开发的实际项目,举例说明所选取的信息系统开发方法的具体实施过程,并详细分析实施效果。
本文讨论了某省地税财税库行横向联网系统开发方法的选择与应用,该系统以国库为信息交换中心,以税收征管信息系统、电子申报中间业务平台、同城电子支付系统和国库综合业务核算系统为依托,主要实现征收税款实时清算入库税款自动销号、信息自由查询等功能。在项目开展期间,我担任系统分析师职责。本文以该系统为例,主要论述了信息系统开发方法在该系统中的具体应用。在需求阶段,通过用户访谈、问卷调查等方式获取用户需求,以完成系统的规划与分析;在构建阶段,通过分析该系统包含的对象、对象的属性及对象的关联来产生初始对象模型,以构造初始原型;在迭代阶段,通过和地税专家组交流,在完善需求的基础上完善对象模型,以建造出最终系统。通过以上技术使得项目顺利上线,获得用户一致好评。
2012年2月,我所在的单位承接了某省地税财税库行横向联网系统的开发与设计,我在项目中担任系统分析岗位。该系统是由财政、国税、地稅、人民银行和商业银行等多家单位共同组成的电子缴税入库系统,是以国库为信息交换中心,以税收征管信息系统、电子申报中间业务平台、同城电子支付系统和国库综合业务核算系统为依托,实现征收税款实时清算、入库税款自动销号、相关信息自由查询的管理信息系统。纳税人不必专门到税务机关办理税收申报,足不出户就可以完成缴税。
该系统涵盖的机构包括(市、县区级)中心支库、专业行代理支库、财政前置与信息管理中心、国税地税海关前置、商业银行前置,并可以扩展至乡镇级支库。该系统应用软件主要由四部分组成,包括编码中心子系统、财税库行横向联网业务子系统、系统管理子系统、查询分析子系统。编码中心子系统主要提供联网系统的编码维护功能;横向联网业务子系统是由财政、税务、国库、银行等部门业务系统联网进行财政收入管理的业务系统,它可实现实时扣款;系统管理主要提供参数设置、用户管理、用户日志、编码维护、系统数据备份恢复等系统功能;查询分析子系统主要提供给联网业务单位业务共享的編码信息、政策法规、国民经济参数等信息,以方便财政监督部门可以实时监控、网络查账,体现财政监督的灵敏与高效。因此要高质量的完成该系统,选择一种合适的开发方法至关重要。
目前常用的开发方法主要有三种,包括结构化方法、原型法、面向对象法。结构化方法把整个系统的开发过程分为若干阶段,然后一步一步地依次进行,前一阶段是后一阶段的工作依据。该方法比较注重开发过程的整体性和全局性,理论基础严密,但开发周期长,文档、设计说明繁琐,工作效率低,且不能很好地应对变化。原型法与结构化方法不同,原型法的核心在于先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。该方法适于用户需求开始时定义不清、管理决策方法结构化程度不高的系统开发,更宜被用户接受。面向对象方法强调从现实世界中客观存在的事物(对象)出发来认识问题,使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域;改善了人员之间的交流和协作,对软件复用提供了强有力的支持。
结合上述分析,我们最终决定采用快速原型法与面向对象法组合应用的开发方案。该方案把软件生命周期分为4个阶段:需求阶段、构建阶段、迭代阶段和验收阶段;本文着重从前3个阶段来展开论述。
需求阶段的目标是完成系统的规划与分析。由于该系统涉及部门众多,用户需求很难一次性收集完整,加之地税局业务人员对财税库行横向联网具体能完成些功能不是很明确。我采用用户访谈、问卷调查等方式取得了用户的基本需求,在些基础上利用UML工具 Powerdesigner设计出系统基本用例图,明确系统大概范围,勾勒出大致系统边界。系统整体架构我们决定采用三层C/S、B/S混合方式,因为系统存在“内外有别”的制约,采用单一的架构不能满足系统需求,“内外有别”是指系统与外单位(如银行)数据库不能相互访问,需要通过应用服务器(本系统又称为前置机)来完成纳税人基本信息向银行传递与接收银行返回的纳税人缴纳信息,提高系统安全性和性能;对地税内部,通过浏览器完成纳税人批量代扣税款登记管理、对帐以及统计分析等业务。
构建阶段的目标是构造初始原型。在基本调查的基础上,尽量完整的分析现该系统包含的对象、对象的属性及对象的关联,产生一个初始对象模型,再由对象产生系统数据结构的初始框架,对对象活动、驱动这些活动的事件以及对象在这些事件驱动下的前后状态变化进行分析,进而产生系统的用户界面,得到系统的一个最初始的原型,这个原型只是—个系统框架,很多操作只是空动作,目的是向用户说明系统的功能和操作方法,以后随着开发进程以及需求眀确再逐步求精。如与银行通讯服务功能只有收发数据包等基本功能,安全性及性能暂时不考虑。整个构建过程,让用户也参与到我的设计中来,地税部门成立了一个业务专家小组,里面有业务处室领导、信息技术人员以及来自一线的税收管理人员与操作人员。他们为我构建这个模型提供了工作流程方面、业务领域方面不可或缺的经验,也为以后模型通过评审提供了有力支持。
迭代阶段的目标是通过反复循环最终建造出系统。在每一次迭代过程中,通过和地税专家组交流,在完善需求的基础上,完善对象模型。同时,在完善需求交互的基础上进一步明确用户界面间关系,通过交互完成功能模型,并验证它的正确性。每一次迭代开发都是一个小项目,对要求的用例进行分析、设计、编码、测试和集成。完成一次迭代后向用户演示,并完成系统测试表明所要求的用例可以移到下一次迭代中去开发。每一次迭代过程都利用面向对象的技术来实现,而且都必须是增量式的:增加功能,修改缺陷,这一阶段中,面向对象技术的易维护和扩充、便于复用的优点得到充分体现。在迭代过程中,地税专家组向我们提出一个需求“在较短时间内完成纳税人税款申报缴纳,不能让纳税人等待”,但无法明确"较短时间”是多少合适。为完成这一需求,通过现场观摩、问卷调查的方式,明确了这个时间应该在2分钟内,并反复修改原型,完成了这一迭代需求。
通过快速原型法与面向对象方法的成功运用,使系统在较短时间内交付使用。迭代过程中地税专家组积极参与,间接减少了系统测试与上线培训时间。经过6个月的设计开发,最终项目于2021年8月顺利上线,交付给用户一个高质量、高可靠性、高易用性的系统,用户也给予我们较髙的评价。但开发过程中也不是一帆风顺、尽善尽美。原型开发我们团队使用了RAD开发工具,有些开发人员为了节约时间,同时也要有较好的用户体验,使用了一些未经验证的第三方免费控件,这些控件在开发时没有问题,也确实起到了美化界面的作用,但在测试时发现部分控件有漏洞,我们不得不在迭代过程中更换控件,导致工期有轻度延误。在这方面,我们制定了团队内部开发规范,指定相关开发人员只能使用公司内部控件,从而有效避免这个问题。
实践证明,面向对象开发与原型开发组合应用是按期完成任务的一种成功开发方法,今后需要研究的是如何设计和建立一个使用这种方法开发平台,使用开发过程自动化、规律化;同时研究原型迭代与满足用户需求之间平衡问题。
1.计算机硬件、计算机软件、网络和通讯设备、信息资源、信息用户和规程组成。信息系统主要有五个基本功能,即对信息的输入、存储、处理、输出和控制。
2.诺兰阶段模型(Nolan's stage model),总结了管理信息系统发展的经验和规律,将信息系统的发展路线划分为六个阶段:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段和成熟阶段。
SM2,椭圆曲线公钥算法,非对称算法
SM3,杂凑算法,哈希算法,属于摘要算法
SM4,分组加密算法,对称算法
4.与单核处理器相比,多核处理器在(体系结构、软件、功耗和安全性)设计等方面面临着巨大的挑战,但也蕴含着巨大的潜能。CMP(单芯片多处理器)和SMT(同步多线程处理器)是目前较为流行的两种多核体系结构,CMP相对SMT的最大优势还在于其(模块化)设计的简洁性。
5.KYSEC是基于kysec安全标记对执行程序、脚本文件、共享库、内核模块进行保护的一种安全机制。除了系统默认集成的执行程序、脚本文件、共享库、内核模块,任何外来的该4种文件,如拷贝、移动、下载重新编译生成等,都必须添加到麒麟安全管理工具的相应白名单列表中,才能执行调用,会对白名单列表中的文件进行保护,保护文件不被修改、移动、删除。
6.数据治理模型包括三个框架:范围、促成因素和执行及评估。他们每个方面都包含许多组件来进行展示和描述它们是如何工作的。该框架显示数据治理内部的逻辑关系。范围展示了我们应该关注什么,促成因素展示了数据治理的推动因素,执行和评估展示了如何实现治理的方法。该DG模型可以通过三个框架帮助我们理解数据治理。
数据治理的范围包括四个层次的内容。首先,应该有一个治理要素负责管理其它管理要素,保证治理与管理的一致性。其次,下面的三个层次分别列示了需要治理的数据管理要素
价值创造层列示了通过数据治理所创造的价值服务;
价值保证层描述了一个组织治理数据时重要保证服务;
基础数据服务层描述了一个数据治理的基础数据服务。
7.基于统一的(基础平台、软件架构、开发流程),数字化转型和云化转型能够把数字化转型工作重心放在业务应用上,从而使得数学化换转型的目标重新回归到业务应用本身,通过云原生来提升业务应用的送代速度,促进业务创新。
8.数字孪生是形成物理世界中某一生产流程的模型及其在数字世界中的数字化镜像的过程和方法。数字孪生有五大驱动要素,包括物理世界的传感器、(数据)、集成、分析和促动器,以及持续更新的数字李生应用程序。
9. 按照数据要素由局部到全局、由内到外、由浅到深、由封闭到开放的趋势和特征将数字化转型分为(规范级、场景级、领域级、平台级和生态级)五个发展阶段,并从广度和深度两方面综合考虑将成熟度划分为10个水平档次。
(1)进程通信。构件是独立的过程,连接件是消息传递。这种风格的特点是,构件通常是命名过程,消息传递的方式可以是点对点、异步或同步方式,以及远程过程(方法)调用等。
(2)在事件系统体系架构风格中,构件不直接调用一个过程,而是触发或广播一个或多个事件。在这种风格中,构件间交互的连接件往往是以过程之间的(隐式调用)来实现的。该风格的主要优点是为软件的(复用)提供了强大的支持,其缺点是(构件放弃了对系统计算的控制)。
11. SOA是一种全新的系统架构,为了支持其特性,相关技术规范不推出。(SOAP)定义了服务请求者和服务提供者之前的消息传输规范;(UDDI)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。
12.软件架构评估是软件设计阶段最重要的活动之一,目前存在多种软件架构评估仿式,其中,其中架构权衡分析法(Architecture Trade offAnalysis Method,ATAM)属于基于(场景)的方式。在该方法的架构评估中,(刺激)是解释或描述项目干系人怎样引发与系统的交互部分。
13.软件产品线(Sofware Product Line)是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定领域的特定需求。软件产品线主要由两部分组成,其中,(核心资源)是领域工程的所有结果的集合,产品线中产品构造的基础。
软件产品线主要由两部分组成,分别是核心资源和产品集合。核心资源是领域工程的所有结果的集合,是产品线中产品构造的基础。核心资源必定包含产品线中所有产品共享的产品线架构,新设计开发的或者通过对现有系统的再工程得到的、需要在整个产品线中系统化复用的构件。与构件相关的测试计划、测试实例以及所有设计文档需求说明书、领域模型、领域范围的定义,以及采用COTS的构件也属于核心资源。
14. 信息化战略从企业战略出发,服务于企业战略,同时又影响和促进企业战略。业务与IT整合(Business-ITAlignment,BITA)是企业战略与信息化战略集成的主要方法之一。BITA的主要步骤是评估和分析企业当前业务和IT不一致的领域,整理出企业的业务远景和未来战略,建立(业务模型),提出达到未来目标的转变过程建议和初步计划,以及执行计划。
15.某银行信息管理系统采用分布式数据库系统,以便对本地储户的存储业务能够在本地正常进行而不依赖于其他场地的数据库,这种情况称为分布式数据库的(自治性)。
16.数据中台依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑构建了一套持续不断将数据变成资产并服务于业务的机制。数据中台需要具备的4个核心能力为(数据汇聚整合、数据提纯加工、数据服务可视化、数据价值变现),让企业员工、客户、伙伴能够方便地应用数据。
资源层:资源池层是指基础架构层面的云计算服务,这些服务可以提供虚拟化的资源,从而隐藏物理资源的复杂性。如:服务器,存储。
平台层:为用户提供对资源层服务的封装,使用户可以构建自己的应用。
应用层:提供软件服务,如:财务管理,客户关系管理,商业智能。
用户访问层:方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口。
管理层:提供对所有层次云计算服务的管理功能。
18. 智能制造系统架构从生命周期、系统层级和智能特征3个维度对智能制造所涉及的活动、装备、特征等内容进行描述,主要用于明确智能制造的(标准化、对象和范围),指导国家智能制造标准体系建设。其中,系统层级是对与企业生产活动相关的组织结构的层级划分包括(设备层、单元层、车间层、企业层和协同层)
19.基于模型的系统工程作为一种(形式化的建模方法学),为了应对基于文档的传统系统工程工作模式在复杂产品和系统研发时面临的挑战,以逻辑连贯一致的多视角系统模型为桥梁和框架,实现跨领域模型的可追踪、可验证和动态关联,驱动人工系统生存周期内各阶段和各层级内的系统工程过程和活动,使其可管理、可复现、可重用,进而打破专业壁垒,破解设计和工艺、研发和制造、研制和使用维护的分离,极大地提高沟通协同效率,实现以模型驱动的方法来采集、捕获和提炼数据、信息和知识。
20. IS09000有关业务流程的定义是:业务流程是一组将输入转化为输出的相互关联或相互作用的活动。流程6个要素分别是:输入、活动、活动的相互作用(即结构)、输出、客户价值。
21.工作流管理系统WFMS将业务流程中工作如何组织与协调的规则抽象出来,在WFMS的协助下开发人员遵从一定的编程接口和约定,就可以开发出更具灵活性的事务处理系统,用户无需重新开发即可更改工作流程,以适应业务的变更。WFMS的基本功能体现在以下几个方面
(1)对工作流进行建模。即定义工作流,包括具体的活动和规则等,所创建的模型是同时可以被人和计算机所“理解”的,工作流对应现实世界的业务处理过程,不能改变真实业务的处理逻辑。
(2)工作流执行。遵循工作流模型来创建和执行实际的工作流,即通过WFMS可以执行多个工作项。
(3)业务过程的管理和分析。监控和管理执行中的业务(工作流),例如,工作分配与均衡情况等。进度完成情况和数据所处状态。
23.计算机系统性能评估中,(指令执行速度法)通常采用加法指令的运算速度来衡量计算机的速度。(综合理论性能法)首先计算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为最终的计算机性能。
24.指令执行速度法:计算机发展初期,用加法指令运算速度衡量计算机速度,其运算速度可大体反映乘、除法等算术运算速度,逻辑运算等简单指令执行时间常与加法指令相同,单位是MIPS(每秒百万条指令)。
等效指令速度法(Gibson mix):根据各类指令在程序中所占比例(Wi)计算,考虑了指令比例不同的问题。
综合理论性能法(CTP):用MT OPS(每秒百万次理论运算)表示,先算出处理部件每个计算单元有效计算率,再按不同字长加权调整,得出该计算单元理论性能,所有计算单元理论性能之和即CTP。
基准程序法:把应用程序中使用最多、最频繁的核心程序作为评估计算机系统性能的标准程序,即基准测试程序,是目前公认较好的测试系统性能方法。
25.需求分析:需求分析是开发过程中最关键的阶段。通过和不同的用户(包括经理人员和网络管理员)交流,收集明确的需求信息。需求分析的输出是产生一份需求说明书,也就是需求规范。
现有网络系统的分析:如果当前的网络开发过程是对现有网络的升级和改造,就必须进行现有网络系统的分析工作。现有网络系统分析的目的是描述资源分布,以便于在升级时尽量保护已有的投资。在这一阶段,应给出一份正式的通信规范说明文档,作为下一个阶段的输入。
确定网络逻辑结构:网络逻辑结构设计是根据需求规范和通信规范选择一种比较适宜的网络逻辑结构,并实施后续的资源分配规划、安全规划等内容。这个阶段最后应该得到一份逻辑设计文档。
确定网络物理结构:物理网络设计是逻辑网络设计的具体实现,通过对设备的具体物理分布、运行环境等的确定来确保网络的物理连接符合逻辑设计的要求。在这一阶段,网络设计者需要确定具体的软硬件、连接设备、布线和服务的部署方案。
安装和维护:根据前面的工程成果实施环境准备、设备安装调试的过程。网络安装完成网络投入运行后,还需要做大量的故障监测和故障恢复,以及网络升级和性能优化等维护工作。
27.共享总线上允许有多个主设备和从设备,可能会有多个主设备同时要求使用总线的情况(执行操作都是由主设备发起的,为了防止总线竞争,共享总线上某一时刻只允许一个主设备使用总线。这就需要总线仲裁。
集中式仲裁釆用一个中央总线仲裁器(总线控制器),由它来决定总线上同时提出使用请求的主设备谁可以获得总线使用权,主要有三种方案: 菊花链式查询方式,计数器定时查询 ( 轮询 ) 方式和独立请求方式 。菊花链式查询方式中,设备的先后连接顺序决定了其优先级。而计数器定时查询(轮询)方式及独立请求方式中,可以做到各个主设备得到总线使用权的机会基本相等。
28.大规模并行处理MPP(Massively Parallel Processing)系统是指使用专用通信网络构成的大型多机系统。每个节点都是一个完全独立的计算机,节点间采用分布式存储器结构,节点间通信采用消息机制,可包容多处理器系统。
大多数MPP系统使用标准的CPU作为它们的处理器,常用的有Intel Pentium系列、Sun UltraSPARC和IBM PowerPC等。MPP系统使用高性能的定制的高速互连网络及网络接口,可以在低延迟和高带宽的条件下传递消息。MPP是一种异步的分布式存储器结构的MIMD系统,它的程序有多个进程,分布在各个微处理器上,每个进程有自己独立的地址空间,进程之间以消息传递进行相互通信。大规模的MPP系统使用特殊的硬件和软件来监控系统、检测错误并从错误中平滑地恢复。
①面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
②集成性:面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据进行抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
③相对稳定性:操作型数据库中的数据通常需要实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
④反映历史变化:操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点(到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
31.执行 CPU 指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即(程序计数器 (PC))的内容送到地址总线上。
32.系统设计是根据系统分析的结果,完成系统的构建过程。其中,( 详细设计 )是为各个具体任务选择适当的技术手段和处理流程;( 概要结构设计 )的主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的( 模块结构图 )。
33.系统模块结构设计中,一个模块应具备的要素包括输入和输出、处理功能、(内部数据)和(程序代码)。
真伪性:真实是信息的中心价值,不真实的信息价值可能为负。
层次性:信息一般和管理层一样,可以为战略层、策略层和执行层3个层次。
不完全性:客观事实的全部信息是不可能得到的。我们需要正确滤去不重要的信息、失真的信息,抽象出有用的信息。
滞后性:信息是数据加工的结果,因此信息必然落后于数据,加工需要时间。
扩压性:信息和实物不同,它可以扩散也可以压缩。
分享性:信息可以分享,这和物质不同,并且信息分享具有非零和性。
35.美国著名的卡内基梅隆大学软件工程学研究所针对软件工程的工程管理能力与水平进行了充分研究,提出了5级管理能力的模式
1.临时凑合阶段:工作无正式计划,作业进度经常被更改,任务计划、预算、功能、质量都不可预测, 开发机构的整体组织非常混乱。系统的性能、水平依个人能力而定。
2.简单模仿阶段:开发方开始采用基本的项目管理方法与原理;项目从规划到运行都有明确的计划; 这些计划是通过模仿以前成功的项目开发的例子制定的,有可能通过模仿在本次开发中成功。
3.完成定义阶段:与项目有关的整体机构的作业进度规格化、标准化,由此达到持续稳定的技术水平 与管理能力。这种工程进度管理能力要求把与开发项目有关的活动、作用和责任充分告知所有的开发者, 并使之充分理解。
4.管理阶段:这是理想的项目管理阶段。表现在开发者的工程管理能力不断强化,通过可靠的组织与 计划保障,能及早发现可能影响系统功能与性能的缺陷,使系统的性能与可靠性不断改进与提高。
5.佳化阶段:这一阶段是理想的项目管理阶段。其特点表现在开发者的工程管理能力不断强化,通 过可靠的组织与计划保障,能及早发现项目中可能影响系统功能与性能的缺陷,系统的关键指标在工程的 实施过程中得到全面保证与提高。
37.在以太网标准中规定的最小帧长是(64)字节,最小帧长是根据(网络中检测冲突的最长时间)来定的。
(1)独占使用许可:当软件著作权人许可他人享有独占使用许可之后,便不得再许可任何第三人使用该软件,并且软件著作权人自己在该独占使用许可有效期间也不得使用该软件,这种使用许可的排他性最强。
现实中只有少数对软件经销许可采用该方式,极少对软件用户采用这种许可方式。
(2)排他使用许可:当权利人向被许可人发放排他使用许可之后,依约不得再向任何第三人发放该软件的使用许可,但软件著作权人自己仍然可以使用该软件。
现实中,一般也不对软件用户采用这种许可方式
(3)普通使用许可:最常见的许可方式。被许可人除了享有自己使用的权利之外,并不享有任何排他权利。软件著作权人可以不受限制地向多数人发放这种许可。根据我国法律规定,凡未明确说明是独占使用许可或排他使用许可的,即该许可为普通使用许可。目前通过市场上购买的各种商品化软件的使用权都属于这种普通使用许可。
39.系统评价是对系统运行一段时间后的技术性能和经济效益等方面的评价,是对信息系统审计工作的延伸。评价的目的是检查系统是否达到了预期的目标,技术性能是否达到了设计的要求,系统的各种资源是否得到充分利用,经济效益是否理想,并指出系统的长处与不足,为以后系统的改进和扩展提出依据。
信息系统的评价是一项难度很大的工作,它属于多目标评价问题。目前,大部分的系统评价还处于非结构化的阶段,只能对部分评价内容列出可度量的指标,其他的还只能利用定性的方法。系统评价指标可以分为系统性能评价、系统效益评价和系统建设评价。
(1)系统性能评价:信息系统的性能是指系统的各个组成部分,包括计算机硬件、软件、人员和各种规章制度,有机地结合在一起,作为一个整体对使用者所表现出来的特性。系统性能的好坏直接影响到系统的运行与维护,决定了运行和应用的长期效果,决定了系统的生命力。因此,系统性能评价是信息系统评价的主要内容。性能评价的指标体系一般包括可靠性、系统效率、可维护性、可扩充性、可移植性、实用性、适应性和安全保密性等。
(2)系统效益评价:系统效益评价是指对系统的经济效益和社会效益等做出评价。经济效益评价又称为直接效益评价,社会效益评价又称为间接效益评价。由于社会效益评价难度较大,一般以经济效益评价为主。直接经济效益有关的指标包括系统投资额、系统运行维护费用、运行信息系统而带来的收益和投资回收期等。
(3)系统建设评价:系统建设评价分配在信息系统生命周期的各个阶段的阶段评审之中。在信息系统生命周期的不同阶段,系统评价的作用是不同的。例如,在系统规划阶段,重点关注如何识别满足业务目标的信息系统;在系统实现阶段,在于理解IT战略后,识别、开发或获取、实施信息系统解决方案,保持项目的方向。

软考梦工厂
扫码关注我们