软件工程学习笔记(第一周)


前言

软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。它涉及程序设计语言数据库软件开发工具系统平台标准、设计件有电子邮件嵌入式系统、人机界面、办公套件、操作系统编译器数据库游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。

一、软件的定义及本质特征

1.1软件的定义

      软件 = 程序 + 数据 + 文档

  • 程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。

  • 数据:使得程序能够适当地操作信息的数据结构。

  • 文档:描述程序的研制过程、方法和使用的图文资料。

 

1.2 软件的本质特征

软件具有复杂性、一致性、可变性、和不可见性等固有的内在特性,这是造成软件开发困难的根本原因

  • 复杂性

 

  •  一致性

  1. 软件不能独立存在,需要依附于一定的环境(如硬件、网络以及其他软件)
  2. 软件必须遵从人为的惯例并适应已有的技术和系统。
  3. 软件需要接口不同而改变,随时间推移而变化,而这些变化是不同人设计的结果。

  •  可变性

  1. 人们总是认为软件是容易修改的,但忽视了修改所带来的副作用。
  2. 不断的修改最终导致软件的退化,从而结束其生命周期。

 

  •  不可见性

  1. 软件是一种“看不见、摸不着”的逻辑实体,不具有空间的形体特征。
  2. 开发人员可以直接看到程序代码,但是源代码并不是软件本身。
  3. 软件是以机器代码的形式运行,但是开发人员无法看到源代码是如何执行的。

 总之软件所具有的复杂性、一致性、可变性、不可见性等特性,使得软件开发过程变得难以控制,开发团队如同在焦油坑中挣扎的巨兽。

二、软件工程发展历程及目前面临的主要挑战

2.1软件工程发展历程

1968年,北大西洋公约组织(NATO)召开国际会议,提出“软件工程”概念和术语

  • 史前时代

  •  瀑布过程模型
  •  质量标准体系
  •  互联网

 

 

 2.2软件开发面临的挑战

  • 客户不满意

  1. 交付的许多功能不是客户需要的
  2. 交付的日期没有保障
  3. 客户使用时发现许多BUG
  • 项目过程失控

  1. 客户需求变化频繁,无力应对
  2. 无法预见软件的交付质量
  3. 对流程盲目遵从,忽视客户业务价值
  •  风险与成本问题

  1. 开发团队专注技术,忽视风险
  2. 无能力预测成本,导致预算超支
  • 无力管理团队

  1. 无法评估开发人员能力及工作进度
  2. 困扰于如何提升团队的能力与效率

三、软件工程的基本概念及组成要素:过程、方法、工具。

3.1软件工程的基本概念

软件工程是 ① 将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护, 即工程化应用到软件上;② 对①中所述方法的研究

软件⼯程的目标 —— 创造“⾜够好”的软件


 3.2软件工程的基本要素

 3.3软件开发活动

 

3.4软件工程方法

 3.5软件工程工具

 软件开发的基本策略

 

总结

这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现,软件工程的概念等等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值