[软件工程导论] 整理归纳

本文介绍了软件工程的起源、核心概念和应对软件危机的策略。涵盖了软件的特性、软件工程的三要素(过程、方法、工具)、软件质量、CASE工具以及SWEBOK知识体系。讨论了软件过程模型,如瀑布模型、原型模型、增量模型和螺旋模型,强调了软件项目管理的'4P'和人员管理的重要性。进一步探讨了需求工程、面向对象基础、设计原则、软件测试策略,包括验证与确认、软件质量的多个维度。
摘要由CSDN通过智能技术生成

第一章 概述

1968年 NATO 艘次提出"软件工程" 概念至今

软件工程 是为了解决 开发成本效益软件质量的 问题而产生的

1.1软件

软件是 计算机程序,规程以及运行计算机系统可能需要的相关文档和数据

1.1.1 软件的特性

1.软件是 复杂的

2.软件是不可见的

3.软件是不断变化的

4.大多数软件仍然是定制的,而不是通过已有构件组装而成的

1.1.3 软件危机

软件危机:
计算机软件 的开发和维护过程中 遇到的一系列 严重问题


1.2 软件工程

1.2.2 软件工程的三要素

过程,方法,工具 三个要素组成

软件工程的方法 为 软件开发提供了"如何做"的技术

软件工程的过程管理和控制产品质量的关键

软件工具 为软件工程方法提供了 自动的或半自动的软件支持环境,辅助软件开发人物的完成

1.2.3 软件质量的特性

可靠性 正确性 有效性

1.2.5 CASE 计算机辅助软件工程

Rose,UML,Robot,CVS,VVS,RUP

1.3 软件工程知识体系(SWEBOK)

1.3.2 SWEBOK的组成

软件:
需求 设计 构造 测试 维护 配置管理 工程管理 过程管理 工程过程 工程工具与方法 质量

1.4 软件工程职业道德规范

1.4.2 软件工程人员的职业道德建设

遵纪守法基本素质

服务客户,造福社会观念

诚实信用核心

第二章 软件过程

软件过程是

是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。

2.1.3软件过程的基本活动

软件确定

软件开发

规格说明

软件演化

2.2 软件过程模型

2.2.1 瀑布模型

软件开发各项活动 严格 按照线性的方式进行

适用于

在开发的早期阶段软件需求 被完整确定的情况
(这种要求太过理想化)

暴露的问题

各个阶段的划分完全固定

增加了开发的风险

早期的错误要等到开发后期测试阶段才能实现

2.2.2 快速原型模型

大概步骤

第一步:

迅速构建一个可以运行的软件原型

第二步:

在第一步的基础上开发客户满意的软件产品

2.2.3 增量模型

第一个增量

往往是 实现基本需求核心产品

2.2.4 螺旋模型

将软件过程划分 为 若干个开发回线

每个回线又被 划分成 4 个步骤

首先确定该阶段的目标

其次从风险角度分析方案的开发策略

如果某些风险不能排除 立刻中止

否则继续下一步的软件开发和 验收工作

最后评价该阶段的结果 并规划 下一个开发阶段


第三章 软件项目管理

3.1.2 软件项目管理的"4P"

People 人员

Product 产品

Process 过程

Project 项目

3.2.1 人员组织和管理

民主式组织结构

主程序员式组织结构

技术管理式组织结构

在这里插入图片描述

3.4 软件项目规划(太*m难了)

调整因子

软件成本估算

在这里插入图片描述
在这里插入图片描述

基线

质量控制是指在项目生命周期的不同时间结点上,一个或一组配置通过正式评审而进入正式受控的一种状态

需求规格说明

描述了 计算机系统的功能,性能及其约束

功能需求:

描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。

非功能需求:

是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。

在这里插入图片描述


第四章 需求工程

4.1.1 业务需求

4.1.2 用户需求

4.1.3 功能需求 和 非 功能需求

4.1.4 系统需求


第六章 面向对象基础

6.5常用的UML图

用例图

用例 和 参与者

参与者
用户 外部系统 硬件设备 组织结构

用例
系统需要实现的功能
在这里插入图片描述
在这里插入图片描述

类图

实心菱形 + 横线 表示 组合
空心菱形 + 横线 表示 聚合

在这里插入图片描述

顺序图

在这里插入图片描述

状态图:

在这里插入图片描述
在这里插入图片描述

第八章 面向对象设计

8.1.2 设计原则

1.模块化 : 将一个福扎的大系统分成若干个较小的部分

耦合度和内聚度:

耦合度: 两个子系统之间的 关联程度

内聚性 :子系统内部的相关程度

复用性: 直接使用已有的软构件通过组合或合理地修改生成心的系统

第十章 软件测试

10.1.2 验证与确认

软件验证:
试图证明在软件生存期各个阶段,软件产品和中间产品是否能够满足客户需求

软件确认:
一系列的活动和过程

10.2 软件测试策略

习题:

在类设计中,为什么建议使用 set 方法和 get 方法进行属性设置和读取? 目的在于降低类之间的耦合度。()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统设计的主要任务是在系统分析的基础上,按照逻辑模型的要求,科学合理地进行系统的总体设计和具体的物理设计,为下一阶段系统提供实施提供必要的技术资料。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值