软件工程(Software Engineering)

一、软件工程概述

1.软件生存周期

软件: 包含程序、数据及相关文档
软件工程: 涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。
目的: 提高软件生产率、提高软件质量、降低软件成本。
image.png
文档的作用:

  • 提高软件开发过程能见度
  • 提高开发效率,便于发现错误和不一致性
  • 作为开发人员在一定阶段的工作成果和结束标志
  • 记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护
  • 提供对软件的运行、维护和培训的有关信息,便于相关人员和用户之间的协作、交流和了解
  • 便于潜在用户了解软件的功能、性能等各项指标,为它们选购符合自己需要的软件提供依据

2.软件生存周期模型

image.png
瀑布模型:
image.png
螺旋模型:
image.png
喷泉模型:
image.png

3.软件开发方法

软件开发方法:结构化方法、Jackson方法、原型化方法、面向对象开发方法
image.png

二、软件需求分析

1.可行性分析

image.png

2.软件需求分析

系统必须完成的事,以及必须具备的品质
包括:

  • 功能需求:所开发的产品必须具备什么样的功能
  • 非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等
  • 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明,例如必须采用国有自主知识版 权的数据库系统、必须运行在UNIX操作系统之下等

三、软件设计

1.软件设计原则

软件设计原则: 抽象、模块化、信息屏蔽、模块独立
软件设计任务与活动
image.png

2.内聚和耦合

内聚:
image.png
耦合:
image.png

四、软件测试

1.V模型

image.png

2.软件测试过程

image.png

3.黑盒测试与白盒测试

image.png

  1. 语句覆盖: 被测试程序的每个语句至少执行一次。是一种很弱的覆盖标准
  2. 判定覆盖: 分支覆盖,判定表达式至少获得一次真、假值。判定覆盖比语句覆盖强。
  3. 条件覆盖: 每个判定语句中的每个逻辑条件的各种可能值至少满足一次。
  4. 路径覆盖: 覆盖所有可能的路径。
  5. 判定/条件覆盖: 每个条件所有可能的值(真/假)至少出现一次,且每个判定本身的判定结果(真/假)也至少出现一次。
  6. 条件组合覆盖: 每个判定中条件的各种可能值的组合都至少出现一次。

4.测试原则与注意事项

image.png

五、软件运行与维护

1.软件维护

image.png
image.png

六、程序员职业素养

1.软件工程基本原理

  1. 用分阶段的生命周期计划严格管理,将复杂问题简化处理
  2. 坚持进行阶段评审
  3. 记录软件每个版本的状态,实行严格的版本控制
  4. 采用现代程序设计技术,但不是最新的技术
  5. 结果能清除的审查
  6. 开发小组人员少而精
  7. 不断累积和改进软件过程实践经验和技术

2.软件工程的最终目标

image.png

3.程序员的职业素养

image.png

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值