架构师-软件工程章节

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

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

热门文章

最新文章