关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

架构师-软件工程章节

发布时间:2023-06-26 14:00:44

  • 为什么需要软件工程?
    • 由于软件危机的产生,为了解决软件危机;出现了软件工程
    • 什么是软件危机?
      • 软件开发进度难以控制
      • 软件开发成本难以控制
      • 软件功能难以满足客户需要
      • 软件质量难以保证
      • 软件难以维护
      • 软件缺乏文档、资料
    • 软件工程是指为了获得软件产品,在软件工具的支持下由软件工程师,所完成的一系列软件工程活动;主要包括以下四个方面
      • P(PLAN):软件规格说明书;软件功能的运行时限制
      • D(DO):软件开发;开发出满足规格说明的软件
      • C(CHECK):软件确认;确认软件产品满足用户的需求
      • A(ACTION):软件演进;软件不断改进,以满足客户需求
  • 软件过程模型(软件生命周期模型)
    • 瀑布模型
      • 特点:因果关联,前一段工作的输出作为后一段工作的输入 ;每一段工作完成都伴随的一个里程碑(一组检查)
      • 缺点:
        • 需求无法确定,用户无法描述软件系统的需求
        • 瀑布模型是一个严格串行化的过程,如果前期需求问题,将导致极大的财力、物力、人力的损失
        • 瀑布模型的基本原则是,每个阶段一次性解决该阶段的事情,但是实际上这是不现实的
    • 原型模型
      • 特点:基于瀑布模型的缺点,提出了原型模型
      • 原型模型包括两个阶段:
        • 原型开发阶段:根据用户的需求定义,快速给出一个能够反映用户需求、关键问题的大致面貌的原型,展示目标系统的部分、全部功能
        • 目标软件开发阶段:根据用户的反馈进行具体的细化完善,进一步开发实际系统
    • 螺旋模型:
      • 是软件生命周期模型与原型模型的结合
      • 由四个步骤组成:
        • 目标设定(确定需求,指定管理计划)
        • 风险分析(对可选方案进行风险分析,并给出解决方法)
        • 开发、有效性验证(开发软件产品)
        • 评审(对当前阶段评估,是否进入下一个阶段)
    • 敏捷模型:
      • 为什么需要敏捷模型?
        • 需求的快速变化、较短的交付周期与传统的开发流程不符合
      • 特点:
        • 适应性的,非预设性的;软件开发的困难一般来源于需求的难以确定,进而导致开发的不可预测;适应性的通过反馈机制对不可预测的过程进行控制
        • 面向人的;强调人与人之间的信息交流
      • 敏捷开发的核心思想:
        • 适应性的而非预设性的
        • 以人为本
        • 迭代增量式的开发
      • 敏捷开发的几总方法:
        • 极限编程:严格的纪律保证开发的成功
        • 水晶系列方法:与极限编程类似,但是采用较为宽松的纪律
        • Scrum:对于系统流程骨架已经确定
        • 特征驱动开发(FDD):分为项目经理,首席架构师,开发经理,主程序员,程序员,领域专家共 个角色
    • 统一过程模型(RUP):
      • 分为9个核心工作流:
        • 业务建模->需求->分析设计->实现->测试->部署->配置变更管理->项目管理->环境
      • 分为四个阶段
        • 初始:定义最终产品试图,业务模型
        • 细化:确定系统体系结构,以及资源分配
        • 构建:持续推进需求,演变体系结构,直至产品提交
        • 交付:将产品提交给用户
        • 在每个阶段结束时,都有一个里程碑进行评估
      • RUP的特点:
        • 用例驱动
        • 以软件体系结构为中心
        • 迭代和增量式开发
  • 软件能力成熟度模型(CMMI):
    • 1.初始级(混乱的,能够完成产品交付,但是经费超出计划)
    • 2.管理级(文档化,能够依据成本完成进度以及目标)
    • 3.已定义级(企业根据自身的情况可以进行流程化、制度化)
    • 4.量化管理级:对性能的可预测
    • 5.优化级:不断地创新,改良技术

/template/Home/leiyu/PC/Static