架构师-软件工程章节

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

  • 为什么需要软件工程?
  • 由于软件危机的产生,为了解决软件危机;出现了软件工程
  • 什么是软件危机?
  • 软件开发进度难以控制
  • 软件开发成本难以控制
  • 软件功能难以满足客户需要
  • 软件质量难以保证
  • 软件难以维护
  • 软件缺乏文档、资料
  • 软件工程是指为了获得软件产品,在软件工具的支持下由软件工程师,所完成的一系列软件工程活动;主要包括以下四个方面
  • P(PLAN):软件规格说明书;软件功能的运行时限制
  • D(DO):软件开发;开发出满足规格说明的软件
  • C(CHECK):软件确认;确认软件产品满足用户的需求
  • A(ACTION):软件演进;软件不断改进,以满足客户需求
  • 软件过程模型(软件生命周期模型)
  • 瀑布模型
  • 特点:因果关联,前一段工作的输出作为后一段工作的输入 ;每一段工作完成都伴随的一个里程碑(一组检查)
  • 缺点:
  • 需求无法确定,用户无法描述软件系统的需求
  • 瀑布模型是一个严格串行化的过程,如果前期需求问题,将导致极大的财力、物力、人力的损失
  • 瀑布模型的基本原则是,每个阶段一次性解决该阶段的事情,但是实际上这是不现实的
  • 原型模型
  • 特点:基于瀑布模型的缺点,提出了原型模型
  • 原型模型包括两个阶段:
  • 原型开发阶段:根据用户的需求定义,快速给出一个能够反映用户需求、关键问题的大致面貌的原型,展示目标系统的部分、全部功能
  • 目标软件开发阶段:根据用户的反馈进行具体的细化完善,进一步开发实际系统
  • 螺旋模型:
  • 是软件生命周期模型与原型模型的结合
  • 由四个步骤组成:
  • 目标设定(确定需求,指定管理计划)
  • 风险分析(对可选方案进行风险分析,并给出解决方法)
  • 开发、有效性验证(开发软件产品)
  • 评审(对当前阶段评估,是否进入下一个阶段)
  • 敏捷模型:
  • 为什么需要敏捷模型?
  • 需求的快速变化、较短的交付周期与传统的开发流程不符合
  • 特点:
  • 适应性的,非预设性的;软件开发的困难一般来源于需求的难以确定,进而导致开发的不可预测;适应性的通过反馈机制对不可预测的过程进行控制
  • 面向人的;强调人与人之间的信息交流
  • 敏捷开发的核心思想:
  • 适应性的而非预设性的
  • 以人为本
  • 迭代增量式的开发
  • 敏捷开发的几总方法:
  • 极限编程:严格的纪律保证开发的成功
  • 水晶系列方法:与极限编程类似,但是采用较为宽松的纪律
  • Scrum:对于系统流程骨架已经确定
  • 特征驱动开发(FDD):分为项目经理,首席架构师,开发经理,主程序员,程序员,领域专家共 个角色
  • 统一过程模型(RUP):
  • 分为9个核心工作流:
  • 业务建模->需求->分析设计->实现->测试->部署->配置变更管理->项目管理->环境
  • 分为四个阶段
  • 初始:定义最终产品试图,业务模型
  • 细化:确定系统体系结构,以及资源分配
  • 构建:持续推进需求,演变体系结构,直至产品提交
  • 交付:将产品提交给用户
  • 在每个阶段结束时,都有一个里程碑进行评估
  • RUP的特点:
  • 用例驱动
  • 以软件体系结构为中心
  • 迭代和增量式开发
  • 软件能力成熟度模型(CMMI):
  • 1.初始级(混乱的,能够完成产品交付,但是经费超出计划)
  • 2.管理级(文档化,能够依据成本完成进度以及目标)
  • 3.已定义级(企业根据自身的情况可以进行流程化、制度化)
  • 4.量化管理级:对性能的可预测
  • 5.优化级:不断地创新,改良技术
目录
相关文章
|
敏捷开发 监控 安全
|
敏捷开发 架构师 数据建模
|
敏捷开发 算法 架构师
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
# 软件开发方法### 分类- 按功能 - 水平原型(针对界面) - 垂直原型(针对复杂算法)
218 0
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
|
存储 缓存 前端开发
Serverless架构在软件工程的研发实践—JAMStack原理介绍
本篇内容分享了Serverless架构在软件工程的研发实践之JAMStack原理介绍。
Serverless架构在软件工程的研发实践—JAMStack原理介绍
|
20天前
|
运维 Kubernetes Cloud Native
云原生技术浪潮下的微服务架构演进
在数字化转型的风潮中,云原生技术以其灵活性、可扩展性和弹性成为企业IT战略的核心。本文深入探讨了微服务架构如何借助云原生环境进行优化,并分析了容器化、服务网格等技术如何助力微服务更好地适应云原生生态。通过案例分析,我们揭示了微服务在现代云平台上的实践挑战与解决策略,同时对未来的技术趋势进行了预测。
40 0
|
2天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。
|
12天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
44 6
|
9天前
|
设计模式 监控 API
探索微服务架构中的API网关模式
在微服务的宇宙里,API网关是连接星辰的桥梁。它不仅管理着服务间的通信流量,还肩负着保护、增强和监控微服务集群的重任。本文将带你走进API网关的世界,了解其如何成为微服务架构中不可或缺的一环,以及它在实际应用中扮演的角色和面临的挑战。
|
18天前
|
运维 监控 负载均衡
探索微服务架构中的API网关
在现代软件开发中,微服务架构已成为设计灵活、可扩展系统的首选方法。本文将深入探讨API网关的核心作用,包括它如何简化客户端与微服务之间的交互,提供请求路由、负载均衡、认证、限流及监控等关键功能。我们将通过实际案例分析,揭示API网关在提升系统性能、增强安全性和提高开发效率方面的重要性。
|
16天前
|
负载均衡 监控 API
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关扮演着枢纽的角色。它不仅是客户端请求的接收者,也是各个微服务间通信的协调者。本文将深入探讨API网关的设计原则、实现策略以及它在微服务生态中的重要性。我们将通过实际案例分析,了解API网关如何优化系统性能、提高安全性和简化客户端与服务的交互。
34 4