软件工程概论(1)

软件工程

是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件

核心:常开心,放低姿态,挪开旧识,接纳新知,沉淀,取其精华。

为什么要学软件工程,因为存在软件危机。
软件=程序+软件工程
软件企业=软件+商业模式

软件的特点:

抽象性,无机械磨损,复杂性,依赖性

软件的品质:

可靠性,易用性,可扩展性,健壮性,可移植性,可维护性
软件的分类:
按功能,按规模,按软件失效的影响,按工作方式,按使用频度,按应用领域

软件的发展危机:

是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。产生于软件发展的第二阶段(软件系统阶段)末期。

在这里插入图片描述

软件危机的主要表现:

用户不满意,对软件开发成本和进度的估计不准确,软件质量不高,可靠性差,缺乏适当的文档资料,软件常常不可维护,错误难以纠正,软件开发速度跟不上计算机发展速度,软件成本占系统总成本的比例逐年上升。归结为主要为三个方面——时间,成本,质量

软件危机的原因:

忽视软件开发的前期需求分析,文档资料不齐全或不准确,开发过程缺乏统一的,规范化的方法论指导,忽视与用户之间,开发组成员之间的交流,忽视测试的重要性,需求变化预料不足

软件工程层次图

在这里插入图片描述

软件生命周期模型:

  • 线性顺序模型
  • 原型模型
  • 演化模型
  • 基于构件的开发
  • 统一过程
  • 敏捷软件开发

瀑布模型:

在这里插入图片描述
优点:
提供了软件开发的基本框架,比靠“个人技艺”开发好的多。
严格活动序列,严格阶段成果评审,有利于大型软件开发过程的人员的组织和管理

缺点:对用户需求变更的响应较困难。
初始阶段较长,用户极大的耐心,需求的不确定性;
后期阶段时,需求错误、设计及实现错误才出现

适用:需求明确、大型的项目

快速应用开发模型RAD1

在这里插入图片描述
优点:
开发时间短
快速发布

缺点:
多团队开发协调困难
了解需求困难
不注意小细节

原型模型1

在这里插入图片描述
优点:
成品的用户满意度高。用户参与,需求不断完善

缺点:
未考虑性能需求
进度控制、质量检验较难,技术方案未必最优,会导致开发过程的不可收敛性
系统结构通常较差,连续的变更损坏了系统的结构

适用:
中小规模、生存期短的系统,知识型系统
用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求
开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式
当你的客户有一个合理的需求,但对细节则没有任何线索时,先开发一个原型系统是一个好的选择

演化软件过程模型

渐增模型:
以尽早占领市场为目的,逐步发布版本;
可有计划地管理技术风险

螺旋模型:
不同版本、不同形式的不断进化;
需要高水平的风险评估技术

并发开发模型
由用户要求、管理决策和评审结果驱动;
每一个软件工程活动触发活动网络的状态变迁;

渐增模型1:

在这里插入图片描述
优点:
易于预测、管理、控制使用的资源
快速版本发布

缺点:
有可能消弱结构和设计

适用:
用户需求不明确
设计用户界面

螺旋模型:

优点:渐增、使用原型模型减少风险,快速、可在软件的整个生命期间使用

缺点:客户与开发团队需要丰富的风险评估专业知识,演化是否完全可控

统一过程RUP(Rational Unified Process)Rational:

每一次软件开发过程定义了九个核心规程:
六个技术规程:
业务建模规程、需求工程、分析和设计规程、实现规程、测试规程、部署规程
三个管理规程:
配置和变更管理规程、项目管理规程、环境规程

开发周期的四个阶段
初始阶段、细化阶段、构造阶段、移交阶段
在这里插入图片描述

敏捷软件开发(轻量级方法)

XP方法,SCRUM方法,DSDM方法
敏捷软件开发联盟(Agile联盟)的4个价值观和12条原则
在这里插入图片描述
Sprint是短距离赛跑的意思,这里面指的是一次迭代,而一次迭代的周期是1个月时间(即4个星期),也就是我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为Sprint。
backlog:待办列表
review meeting:评审会议
release: 发行,发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一峰说

坚持价值输出

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值