【软件工程】第一章

简介: 【软件工程】第一章

什么是软件

1、软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据以及其相关文档的完整集合

2、按事先设计的功能和性能要求执行的指令序列

3、数据是使程序能正常操纵信息的数据结构


软件的特点

1是一种逻辑实体,不是具体的物理实体,所以具有抽象性

2在运行和使用过程中,没有硬件那样的机械磨损和老化问题

3一般情况下会受到计算机系统的限制,有着不同程度的依赖性


软件的分类

系统软件

  • 操作系统
  • 通信处理程序
  • 设备驱动程序
  • 数据库管理系统

服务对象

  • 项目软件
  • 只接受某个客户的委托,开发机构在合同的约束下开发软件
  • 产品软件
  • 开发完一个产品直接推向市场,为众多的用户使用的软件

使用频度

  • 一次
  • 针对某一个问题
  • 频繁
  • 形成一个产品

失效影响

  • 高可靠性
  • 重要部门
  • 一般可靠性
  • 项目软件

软件工程过程

规格说明P(plan): 根据用户的需求按照计算机的术语描述出来

软件开发D(do): 设计、调试

软件确认C(check): 用户使用

软件演进A(advancement):维护

特点:易理解性、可见性、可支持性、可接受性、可靠性、健壮性、可维护性、速度


软件的生存期

特别注意:这个软件被废弃不是说不能用了,而是说它被新的软件所代替了


软件分析

可行性分析

需求分析

软件需求说明书


软件设计

  1. 概要设计——把各项需求转换成软件的体系结构
  2. 详细设计——某块与某块之间的数据结构

软件测试

  • 单元测试
  • 查找各模块在功能和结构上存在的问题并加以纠正
  • 组装测试
  • 将已测试过的模块按一定顺序组装起来

生命周期模型

<瀑布型>

1、思想

从制作时间上按工序把问题化简,将功能实现与制作分开便于分工协作

2、优点

奠定了软件工程方法的基础

流水依赖,便于分工协作

推迟物理实现,易于修改文档,有复审质量保证

3、不足

与用户见面晚,成功率低,一般为25%

4、适用范围

适用与系统要求明确的系统和各种应用软件的开发均可使用

<快速原型模型>(Rapid Prototyping Model)

<渐增模型>(Incremental Model)

1、思想

允许从部分需求出发,先建立一个不全面的系统通过测试这个系统,进一步使系统扩充和完善

2、优点

问题可以很好的并且立即修改,很好的满足用户的需求

3、使用范围

适用与那些知识型软件系统的开发

4、特点

从整体结构上不如瀑布型清晰,软件的文档也不如瀑布型划分严格

周期长,成本高,与用户见面快,开发效率高

<螺旋模型>

四部分组成:制定计划、风险分析、实施工程、客户评估

<喷泉模型>


软件工程的定义

Boehm:运用现代科学技术知识来设计并构成计算机程序及为开发、运行和维护这些程序所必需的相关文件资料

IEEE:软件工程是开发、运行、维护和修复软件的系统方法


软件工程三要素

方法、工具、过程


软件工程的基本目标

较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易于移植

需要较低的维护费用、可以按时完成开发工作,及时交付使用


软件工程的原理

分解、独立性、一致性、确定性


相关文章
|
9月前
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
9月前
|
算法 数据库 开发者
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
|
9月前
|
算法 数据挖掘 数据库
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
|
10月前
|
数据处理
【软件工程】第三章
【软件工程】第三章
|
12月前
|
敏捷开发 安全 数据可视化
【软件工程题库】第一章 软件工程概述
【软件工程题库】第一章 软件工程概述
769 1
|
7月前
|
算法 安全 测试技术
软件工程基础知识
软件工程是一门关于软件开发过程、方法和工具的学科,它旨在提高软件开发的效率和质量,以满足用户需求和市场需求。软件工程涉及到软件开发的各个方面,包括需求分析、设计、编码、测试、维护等环节。本文将介绍软件工程的基础知识,包括软件开发生命周期、软件过程模型、软件需求工程、软件设计和软件测试等方面。 一、软件开发生命周期 软件开发生命周期是指软件从需求分析到维护的整个过程,它包括以下几个阶段: 1. 需求分析阶段:在这个阶段,软件开发人员与用户沟通,了解用户需求和系统需求,确定软件开发的目标和范围。 2. 设计阶段:在这个阶段,软件开发人员根据需求分析的结果,设计软件的架构、模块、接口等,确定
37 0
|
9月前
|
算法 测试技术 开发工具
[软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
[软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
【软件工程】第二章
【软件工程】第二章
|
10月前
|
存储
【软件工程】第四章
【软件工程】第四章
【软件工程】第五章
【软件工程】第五章