2023系统分析师---系统规划

一、系统规划的步骤

  1. 初步调查:根据企业战略目标,分析企业现状以及系统运行状况
  2. 确定系统目标:确定系统的服务范围质量等
  3. 分析子系统的组成:系统划分并指定子系统功能
  4. 拟定系统的实施方案:分析子系统优先级,确定开发顺序
  5. 进行可行性研究:编写可行性研究报告,召开可行性讨论会
  6. 制定系统建设方案:对可行性研究报告提出的各项技术指标进行分析、比较、落实各项假设的前提条件,制定系统建设方案,形成系统设计任务书

二、可行性研究分类

  1. 经济可行性:成本收益分析,包括建设、运行成本和项目建设后可能的经济收益。
  2. 技术可行性:技术风险 分析,现有的技术能否支持系统目标的实现,现有资源(员工、技术积累、构件库、软件、硬件条件等)是否足以支持项目的实施。
  3. 法律可行性(社会可行性):不能与国家法律或政策相抵触
  4. 用户使用可行性:

三、成本效益分析

  1. 成本分类:
    1. 固定成本:不随产量变化,管理人员的工资,办公费、固定资产折旧费、员工培训费、广告费、技术开发经费等。
    2. 变动成本:随产量变化,直接材料费、产品包装费、外包费用、开发奖金等
    3. 混合成本:水电费、电话费、质量保证人员的工资、设备动力等
    4. 直接成本:直接投入在项目上,项目组人员工资,材料费用
    5. 间接成本:分摊到项目上,水电费,员工培训费
  1. 收益分类:
    1. 有形收益:称之为经济收益,可以用货币的时间价值、投资的回收期、投资回收率等指标进行度量。有形收益又可分为一次性经济收益和非一次性收益。
    2. 无形收益:称为不可定量的收益,主要从性质上、心理上进行衡量、很难直接进行量上的比较
  1. 盈亏临界分析:
    1. 销售额=固定成本+可变成本+税费+利润(正常情况下)
    2. 销售额=固定成本+可变成本+税费(盈亏平衡时)
  1. 净现值分析:
    1. 静态与动态的问题:动态分析考虑货币的时间价值,通常需要考虑折现率
    2. 现值:若n年后能收入F元,那么这些钱现值的价值即限制P为:
  1. 投资回收器:
    1. 投资回收期是指投资回收的期限。分为:静态投资回收器和动态回收器
    2. 静态投资回收期(不考虑货币的时间价值因素)
    3. 动态投资回收期(考虑资金的时间价值因素)
    4. 投资回收期的公式:累计折现值开始出现正值的年份数-1+|上年累计折现值|/当年折现值
    5. 投资回收率=1/投资回收期*100%

四、软件工程

  1. 系统规划:初步调查、分析系统目标、子系统组成、拟实施方案、可行性研究、制定系统建设方案;系统设计任务(系统建设方案、实施计划)
  2. 系统分析:业务流程分析、数据与数据流程分析、软件需求分析、网络需求分析;系统需求规格说明书、软件需求规格说明书、确认测试计划、系统测试计划、初步的用户手册
  3. 系统设计:软件架构设计、软件概要设计、详细设计、网络设计;架构设计文档、概要设计说明书、详细设计说明书、程序规格说明书、概要测试计划、详细测试计划、各类设计图
  4. 系统实施:软件编码、软件单元、集成、系统测试、综合布线;源码、单元测试、集成测试报告、操作手册
  5. 系统验收:确认测试、试运行;确认测试报告、项目验收报告

五、软件开发模型

  1. 原型模型:典型的原型开发方法模型,适用于“需求不明确的场景”,可以帮助用户明确需求。
  2. 瀑布模型:
    1. 瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、运行与维护
    2. 瀑布模型的特点是容易理解,管理成本低,每个阶段都有对应的成果产物,各个阶段有明显的界限划分和顺序要求,一旦发生错误,整个项目推到重新开始
    3. 适用于需求明确的项目,一般表述为需求明确或二次开发,或者对于数据处理类型的项目
  1. 增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征,可以有多个可用版本的发布,核心功能往往最先完成,在此次基础上,每轮迭代会有新的增量发布,核心功能可以得到充分测试,强调每一个增量均发布一个可操作的产品。
  2. 螺旋模型:典型特点是引入了风险分析,结合了瀑布模型和演化模型的特点,最主要的特点在于加入了风险分析。它由制定计划、风险分析、实施工程、客户评估这一循环组成的,并且从概念项目开始第一个螺旋。
  3. V模型:强调测试贯穿项目始终,而不是集中在测试阶段,是一种测试的开发模型
  4. 喷泉模型:典型的面向对象的模型。特点是迭代、无间隙、将软件开发划分多个阶段,但是哥哥阶段无明显界限,并且可以迭代交叉。
  5. 快速应用开发RAD:
    1. 概念:RAD是瀑布模型的一个高速变种,适用于传统生命周期快得多的开发方法,它强调极短的开发周期,通常适用基于构件的开发方法获得快速的开发
    2. 过程:业务建模、数据建模、过程建模、应用生成、测试与交付
    3. 适用性:RAD对模块化要求比较高,如果某项功能不能被模块化,则其构件就会出问题;如果高性能是一个指标,且必须通过调整结构使其适应系统构件不能获得,则RAD也有可能不能凑效;RAD要求开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当都会导致失败;RAD只能用于管理信息系统的开发,不适合技术风险很高的情况
  1. 统一过程(UP、RUP代表了统一过程)
    1. 典型特点是用例驱动,以架构为中心、迭代和增量。统一过程把一个项目分为四个不同的阶段:
      1. 构思阶段(初始阶段):包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。
        1. 项目蓝图文档(核心需求、关键特性、主要约束)
        2. 用户模型
        3. 项目计划
      1. 细化阶段:包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示。
        1. 完成架构设计
        2. 淘汰高风险元素
      1. 构建阶段:将设计转化为实现,并进行集成和测试
        1. UML模型
        2. 测试用例
      1. 移交阶段:将产品发布给用户进行测试评价,并且收集用户的意见,之后再次进行迭代修改产品使之完善。
        1. 可运行的软件产品
        2. 用户手册
        3. 用户支持计划
  1. 敏捷开发:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,适用于小团队和小项目,具有小步快跑的思想。常见的敏捷开发方法有极限编程法、水晶法、并列争球法和自适应软件开发方法。

极限编程XP是一种轻量级的开发方法,它提出了四大价值观:沟通、简单、反馈、勇气。五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。十二个最佳实践:计划游戏、隐喻、小型发布、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、线程客户和编码标准。

水晶法强调经常交付,认为每一种不同的项目都需要一套不同的策略,约定和方法论。

并列争球法的核心是迭代、增量交付、按照30天进行迭代开发交付可实际运行的软件

自适应软件开发(ASD方法)的核心是三个非线性的,重叠的开发阶段:猜测、合作、学习。

开放式编码,这里提到的开放式源码是指开放源码界所用的运作方式。开放式源码项目有一个特别之处,就是程序开发人员在地域上分布很广,这使得它和其他敏捷方法不同,因为一般的敏捷方法都强调项目成员在同一地点工作。开放源码的一个突出特点就是差错排障的高度并行性,任何人发现了错误都可将改正源码的“补丁”文件发给维护者。然后由维护者将这些“补丁”或者是新增的代码并入源码库

Coad的公用驱动开发方法

在FDD中,编程开发人员分成两类:首席程序员和“类”程序员。首席程序员是最富有经验的开发人员,他们是项目的协调者、设计者和指导者,而“类”程序员则主要做原源码的编写。

六、逆向工程

逆向工程的四个层级:

  1. 实现级:包括程序的抽象语法树、符号表、过程的设计表示
  2. 结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构
  3. 功能级:包括反映程序段功能以及程序段之间关系的信息,例如数据和控制流模型
  4. 领域级:包括反映程序分量或程序诸如实体与应用领域概念之间的对应关系的信息,例如实体关系模型

逆向工程的相关概念:

  1. 重构(restructuring):重构是指在同一抽象级别上转换系统描述形式
  2. 设计恢复(design recovery):设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息
  3. 逆向工程(reverse enginneering):逆向工程师分析程序,力图在比源码更高抽象层次上建立程序的表示过程,逆向工程师设计的恢复过程
  4. 正向工程(forward enginneering ):正向工程是不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量
  5. 再工程(re-engineering):再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤

猜你喜欢

转载自blog.csdn.net/qq_25580555/article/details/129669503