架构师-软件工程章节

简介: 架构师-软件工程章节

  • 为什么需要软件工程?
  • 由于软件危机的产生,为了解决软件危机;出现了软件工程
  • 什么是软件危机?
  • 软件开发进度难以控制
  • 软件开发成本难以控制
  • 软件功能难以满足客户需要
  • 软件质量难以保证
  • 软件难以维护
  • 软件缺乏文档、资料
  • 软件工程是指为了获得软件产品,在软件工具的支持下由软件工程师,所完成的一系列软件工程活动;主要包括以下四个方面
  • P(PLAN):软件规格说明书;软件功能的运行时限制
  • D(DO):软件开发;开发出满足规格说明的软件
  • C(CHECK):软件确认;确认软件产品满足用户的需求
  • A(ACTION):软件演进;软件不断改进,以满足客户需求
  • 软件过程模型(软件生命周期模型)
  • 瀑布模型
  • 特点:因果关联,前一段工作的输出作为后一段工作的输入 ;每一段工作完成都伴随的一个里程碑(一组检查)
  • 缺点:
  • 需求无法确定,用户无法描述软件系统的需求
  • 瀑布模型是一个严格串行化的过程,如果前期需求问题,将导致极大的财力、物力、人力的损失
  • 瀑布模型的基本原则是,每个阶段一次性解决该阶段的事情,但是实际上这是不现实的
  • 原型模型
  • 特点:基于瀑布模型的缺点,提出了原型模型
  • 原型模型包括两个阶段:
  • 原型开发阶段:根据用户的需求定义,快速给出一个能够反映用户需求、关键问题的大致面貌的原型,展示目标系统的部分、全部功能
  • 目标软件开发阶段:根据用户的反馈进行具体的细化完善,进一步开发实际系统
  • 螺旋模型:
  • 是软件生命周期模型与原型模型的结合
  • 由四个步骤组成:
  • 目标设定(确定需求,指定管理计划)
  • 风险分析(对可选方案进行风险分析,并给出解决方法)
  • 开发、有效性验证(开发软件产品)
  • 评审(对当前阶段评估,是否进入下一个阶段)
  • 敏捷模型:
  • 为什么需要敏捷模型?
  • 需求的快速变化、较短的交付周期与传统的开发流程不符合
  • 特点:
  • 适应性的,非预设性的;软件开发的困难一般来源于需求的难以确定,进而导致开发的不可预测;适应性的通过反馈机制对不可预测的过程进行控制
  • 面向人的;强调人与人之间的信息交流
  • 敏捷开发的核心思想:
  • 适应性的而非预设性的
  • 以人为本
  • 迭代增量式的开发
  • 敏捷开发的几总方法:
  • 极限编程:严格的纪律保证开发的成功
  • 水晶系列方法:与极限编程类似,但是采用较为宽松的纪律
  • Scrum:对于系统流程骨架已经确定
  • 特征驱动开发(FDD):分为项目经理,首席架构师,开发经理,主程序员,程序员,领域专家共 个角色
  • 统一过程模型(RUP):
  • 分为9个核心工作流:
  • 业务建模->需求->分析设计->实现->测试->部署->配置变更管理->项目管理->环境
  • 分为四个阶段
  • 初始:定义最终产品试图,业务模型
  • 细化:确定系统体系结构,以及资源分配
  • 构建:持续推进需求,演变体系结构,直至产品提交
  • 交付:将产品提交给用户
  • 在每个阶段结束时,都有一个里程碑进行评估
  • RUP的特点:
  • 用例驱动
  • 以软件体系结构为中心
  • 迭代和增量式开发
  • 软件能力成熟度模型(CMMI):
  • 1.初始级(混乱的,能够完成产品交付,但是经费超出计划)
  • 2.管理级(文档化,能够依据成本完成进度以及目标)
  • 3.已定义级(企业根据自身的情况可以进行流程化、制度化)
  • 4.量化管理级:对性能的可预测
  • 5.优化级:不断地创新,改良技术
目录
相关文章
|
敏捷开发 监控 安全
|
敏捷开发 架构师 数据建模
|
敏捷开发 算法 架构师
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
# 软件开发方法### 分类- 按功能 - 水平原型(针对界面) - 垂直原型(针对复杂算法)
240 0
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
|
存储 缓存 前端开发
Serverless架构在软件工程的研发实践—JAMStack原理介绍
本篇内容分享了Serverless架构在软件工程的研发实践之JAMStack原理介绍。
Serverless架构在软件工程的研发实践—JAMStack原理介绍
|
9天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
8天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
8天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
23 1
服务架构的演进:从单体到微服务的探索之旅
|
6天前
|
消息中间件 监控 安全
后端架构演进:从单体到微服务####
在数字化转型的浪潮中,企业应用的后端架构经历了从传统单体架构到现代微服务架构的深刻变革。本文探讨了这一演进过程的背景、驱动力、关键技术及面临的挑战,揭示了如何通过微服务化实现系统的高可用性、扩展性和敏捷开发,同时指出了转型过程中需克服的服务拆分、数据管理、通信机制等难题,为读者提供了一个全面理解后端架构演变路径的视角。 ####
24 8
|
7天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
31 5
|
10天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
30 7
下一篇
无影云桌面