软件工程复习(一)

第一章 软件的本质

1.1 软件的本质

软件
程序
文档
数据

文档是开发、使用和维护程序所需要的图文资料
数据是使程序能够适当地处理信息的数据结构(包括数据库、一些配置文件等)

软件和硬件具有完全不同的特性

  1. 软件是设计开发的,而不是传统意义上生产制造的
硬件失效曲线软件失效曲线
在这里插入图片描述在这里插入图片描述

软件工程方法的目的即在于使实际曲线能与理想曲线接近

  1. 软件不会“磨损”
    不断的变更软件退化根本原因
  2. 基于构件的构造模式

软件应用

软件应用领域
系统软件
一套服务于其他程序的程序
应用软件
解决特定业务需要的独立应用程序
工程/科学软件
通常带着数值计算算法的特征,工程和科学软件涵盖了广泛的应用领域,
嵌入式软件
存在于某个产品或者系统中,可实现和控制面向最终用户和系统本身的特性和功能
产品线软件
为多个不同用户的使用提供特定功能
Web/移动App
以网络为中心,其概念覆盖了宽泛的应用软件产品,包括基于浏览器的App和安装在移动设备上的软件
人工智能软件
利用非数值算法解决计算和直接分析无法解决的复杂问题

系统软件
在这里插入图片描述
应用软件
在这里插入图片描述
嵌入式软件
在这里插入图片描述
产品线软件
在这里插入图片描述
Web应用软件
在这里插入图片描述
人工智能软件
在这里插入图片描述

1.2 软件的变更本质

四类新的软件

  1. WebApp
    WebApp 这个术语包含了很多事物,从一个简单的帮助消费者计算汽车租借费用的网页,到为商务旅行和度假提供全套旅游服务的大型复杂的Web站点。其中包括完整的Web站点、Web站点的专门功能以及在Internet、Intranet或Extranet上的信息处理应用软件。

  2. 移动App
    在这里插入图片描述

  3. 云计算
    在这里插入图片描述

最简单的形式是,外部计算设备通过Web浏览器或类似的软件访问云。云提供对存储在数据库或其他数据结构中的数据的访问。

  1. 产品线软件
    在这里插入图片描述

第二章 软件工程

2.1 定义软件工程学科

IEEE定义
软件工程是:
(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件;
(2)对(1)中所述方法的研究

在这里插入图片描述

  1. 质量关注点
    任何工程方法(包括软件工程)必须构建在质量承诺的基础之上
    支持软件工程的根基在于质量关注点
  2. 过程层
    软件工程的基础是过程层。
    软件工程将各个技术层次结合在一起,使得合理、及时地开发计算机软件成为可能。
  3. 方法层
    软件工程方法为构建软件提供技术上的解决方法(如何做)
    方法覆盖面很广,包括沟通、需求分析、设计建模、程序构造、测试和技术支持。
  4. 工具层
    软件工程工具为过程和方法提供自动化或半自动化的支持

    这些工具可以集成起来,使得一个工具产生的信息可被另一个工具使用,这样就建立了软件开发的支撑系统,称为计算机辅助软件工程

2.2 软件过程

软件过程是工作产品构建时所执行的一系列活动动作任务的集合。

  • 活动:主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系
  • 动作:包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务
  • 任务:关注小而明确的目标,能够产生实际产品(如构建一个单元测试)

过程框架通常包括5个活动

过程框架
沟通
策划
建模
构建
部署

普适性活动(补充过程框架)

  1. 软件项目跟踪和控制 —— 项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行
  2. 风险管理 —— 对可能影响项目成果或者产品质量的风险进行评估
  3. 技术质量保证 —— 确定和执行保证软件质量的活动
  4. 技术评审 —— 评估软件工程产品,尽量在错误传播到下一个活动之前发现并清除错误
  5. 测量 —— 定义和收集过程、项目以及产品的度量,以帮助团队在发布软件时满足利益相关者的要求。同时,测量还可与其他框架活动和普适性活动配合使用
  6. 软件配置管理 —— 在整个软件过程中管理变更所带来的影响
  7. 可复用管理 —— 定义工作产品复用的标准(包括软件构件),并且建立构件复用机制
  8. 工作产品的准备和生产 —— 包括生成产品(如建模、文档、日志、表格和列表等)所必需的活动

2.3 软件工程实践

软件工程实践的精髓

  1. 理解问题(沟通和分析)
  2. 策划解决方案(建模和软件设计)
  3. 实施计划(代码生成)
  4. 检查结果的正确性(测试和质量保证)

通用原则

  • 第1原则:存在价值
  • 第2原则:保持简洁
  • 第3原则:保持愿景
  • 第4原则:关注使用者
  • 第5原则:面向未来
  • 第6原则:提前计划复用
  • 第7原则:认真思考

2.4 软件开发神话

软件开发神话,即关于软件及其开发过程的一些被人盲目相信的说法,这可以追溯到计算技术发展的初期。

2.5 这一切是如何开始的

每个软件工程项目都来自业务需求——对现有应用程序缺陷的纠正,改变遗留系统以适应新的业务环境,扩展现有应用程序功能和特性,或者开发某种新的产品、服务或系统。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值