笔记 | 软件工程01:从程序到软件

作者 : admin 本文共1200个字,预计阅读时间需要3分钟 发布时间: 2024-06-10 共2人阅读

1 软件工程知识域

笔记 | 软件工程01:从程序到软件插图

2 程序

2.1 何为程序及程序的质量要求

何为程序:
笔记 | 软件工程01:从程序到软件插图(1)

理解:软件工程可能就是在弥补OOP语言与自然语言之间还存在的鸿沟

笔记 | 软件工程01:从程序到软件插图(2)

2.1.1 程序质量的内在和外在体现

笔记 | 软件工程01:从程序到软件插图(3)

2.1.2 程序质量的语法和语义体现

笔记 | 软件工程01:从程序到软件插图(4)

2.2 编写代码的基本原则

笔记 | 软件工程01:从程序到软件插图(5)

2.3 程序质量保证方法

2.3.1 遵循编码风格

笔记 | 软件工程01:从程序到软件插图(6)

代码布局与组织:

笔记 | 软件工程01:从程序到软件插图(7)

Java程序的排版格式推荐:

笔记 | 软件工程01:从程序到软件插图(8)

变量命名风格:

笔记 | 软件工程01:从程序到软件插图(9)
笔记 | 软件工程01:从程序到软件插图(10)

代码注释:
笔记 | 软件工程01:从程序到软件插图(11)

2.3.2 采用程序设计方法
2.3.2.1 语句设计

笔记 | 软件工程01:从程序到软件插图(12)

2.3.2.2 模块化设计

笔记 | 软件工程01:从程序到软件插图(13)

2.3.2.3 高内聚度、低耦合度原则

模块内各要素紧密相关,仅实现单一功能, 模块间的关系应设计的非常松散

2.3.3 开展代码重用

笔记 | 软件工程01:从程序到软件插图(14)

2.3.4 进行结对编程

笔记 | 软件工程01:从程序到软件插图(15)

2.3.4.1 个体开发的局限性

笔记 | 软件工程01:从程序到软件插图(16)

2.3.4.2 软件开发是集体性/群体性行为

笔记 | 软件工程01:从程序到软件插图(17)

2.3.4.3 如何实现结对编程

笔记 | 软件工程01:从程序到软件插图(18)

2.3.4.4 结对编程中的代码复审

笔记 | 软件工程01:从程序到软件插图(19)

2.3.4.5 结对编程的好处

笔记 | 软件工程01:从程序到软件插图(20)

2.3.4.6 结对编程的不同阶段和技巧

笔记 | 软件工程01:从程序到软件插图(21)

2.4 程序质量的分析方法

2.4.1 程序代码中潜在的质量问题&原因

笔记 | 软件工程01:从程序到软件插图(22)

2.4.2 代码质量分析的常用方法
2.4.2.1 人工审查方法

笔记 | 软件工程01:从程序到软件插图(23)
笔记 | 软件工程01:从程序到软件插图(24)
笔记 | 软件工程01:从程序到软件插图(25)

2.4.2.2 自动化分析方法

代码静态分析:
笔记 | 软件工程01:从程序到软件插图(26)

代码审查后要做的工作:

笔记 | 软件工程01:从程序到软件插图(27)

2.4.2.3 程序测试方法

笔记 | 软件工程01:从程序到软件插图(28)

软件测试的目的和任务:尽可能多的找到软件中的缺陷,软件缺陷可能隐藏得比较深,难以发现

2.5 编写程序需要解决的问题

2.5.1 编写程序面临的挑战

笔记 | 软件工程01:从程序到软件插图(29)

2.6 ChatGPT对程序员带来的影响

笔记 | 软件工程01:从程序到软件插图(30)

ChatGPT的职业影响:

笔记 | 软件工程01:从程序到软件插图(31)

3 软件

3.1 何为软件及软件的特点

3.1.1 何为软件

从开发的角度:
笔记 | 软件工程01:从程序到软件插图(32)

3.1.2 何为文档&为什么需要文档&编写文档的目的

何为文档:
笔记 | 软件工程01:从程序到软件插图(33)

笔记 | 软件工程01:从程序到软件插图(34)

3.1.3 何为数据

数据是程序的加工处理对象和结果

数据形式包括:用户、订单、交易、日志数据
数据处理包括:表示、获取、存储、检索、分析

3.1.4 软件的特点

笔记 | 软件工程01:从程序到软件插图(35)

3.1.5 军用软件的特殊性

军用软件:导弹中的飞行控制软件、指挥信息系统、后勤保障软件等

笔记 | 软件工程01:从程序到软件插图(36)

3.2 软件的生命周期

笔记 | 软件工程01:从程序到软件插图(37)
笔记 | 软件工程01:从程序到软件插图(38)

3.3 软件的分类

分类一:
笔记 | 软件工程01:从程序到软件插图(39)
笔记 | 软件工程01:从程序到软件插图(40)

分类二:
笔记 | 软件工程01:从程序到软件插图(41)

3.4 应用的类型

笔记 | 软件工程01:从程序到软件插图(42)
笔记 | 软件工程01:从程序到软件插图(43)
笔记 | 软件工程01:从程序到软件插图(44)

3.5 闭源软件

笔记 | 软件工程01:从程序到软件插图(45)

3.6 开源软件定义&好处

笔记 | 软件工程01:从程序到软件插图(46)

开源软件的特点

  • 源程序代码对外开放
  • 自由使用、修改和传播
  • 任何人都可获得开源软件的代码

开源软件正在逐步替代闭源软件

笔记 | 软件工程01:从程序到软件插图(47)

开源软件的推动者

笔记 | 软件工程01:从程序到软件插图(48)

开源软件的优势:
笔记 | 软件工程01:从程序到软件插图(49)

3.7 开源软件许可证

笔记 | 软件工程01:从程序到软件插图(50)

3.7.1 宽松式开源许可证

笔记 | 软件工程01:从程序到软件插图(51)

3.7.2 Copyleft式开源许可证

笔记 | 软件工程01:从程序到软件插图(52)

3.7.3 Apache开源许可证

笔记 | 软件工程01:从程序到软件插图(53)

3.7.4 GPL开源许可证

笔记 | 软件工程01:从程序到软件插图(54)

3.7.5 不同许可证之间的差别

笔记 | 软件工程01:从程序到软件插图(55)

3.8 软件质量

软件质量是指软件满足给定需求的程度,它是产品生命线

笔记 | 软件工程01:从程序到软件插图(56)

3.8.1 软件质量要素

笔记 | 软件工程01:从程序到软件插图(57)
笔记 | 软件工程01:从程序到软件插图(58)
笔记 | 软件工程01:从程序到软件插图(59)

3.8.2 可信软件的基本要求

笔记 | 软件工程01:从程序到软件插图(60)

3.9 软件特征的变化

3.9.1 软件的地位和作用

笔记 | 软件工程01:从程序到软件插图(61)

3.9.2 软件的运行环境

笔记 | 软件工程01:从程序到软件插图(62)

3.9.3 软件形态

笔记 | 软件工程01:从程序到软件插图(63)

3.9.3.1 社会技术系统

笔记 | 软件工程01:从程序到软件插图(64)

3.9.3.2 系统子系统

笔记 | 软件工程01:从程序到软件插图(65)

3.9.3.3 分布式异构系统

笔记 | 软件工程01:从程序到软件插图(66)

3.9.3.4 动态演化系统

笔记 | 软件工程01:从程序到软件插图(67)

3.9.3.5 系统联盟

笔记 | 软件工程01:从程序到软件插图(68)

3.9.3.6 生态系统

笔记 | 软件工程01:从程序到软件插图(69)
生态:共同环境 + 诸多要素 + 独立演化 + 相互依存

3.10 软件系统的应用及示例

笔记 | 软件工程01:从程序到软件插图(70)

3.11 我国软件建设的挑战和使命

笔记 | 软件工程01:从程序到软件插图(71)

本站无任何商业行为
个人在线分享 » 笔记 | 软件工程01:从程序到软件
E-->