软件概述1

什么是软件工程?

系统的、有序的、可量化的方法运用到软件的开发、运营和维护中的过程

包括那些领域?

软件需求分析、软件设计、软件构建、软件测试和软件维护

为什么要搞工程?

1、需求复杂:用户需求复杂,需要长期维护

2、系统复杂:在有着百万行代码的系统中,其潜在的复杂性使这些工作变得必要

3、因为人的生命、财产依赖于软件

软件特性

复杂性

软件是最复杂的系统类型,一个软件包含成千上万行代码,程序员的记忆力和普通人一样,只能记得几十行代码,软件各个模块之间有着显性或者隐形的关系,随着系统的成长和模块的增多,这些关系的数量已指数级速度增长

不可见性

程序员可以看到和源代码,但是源代码并不是软件本身,源代码需要转化为机器码才能在计算机上高速运行,有时候在多个cpu内核上运行,工程师看不到自己的源代码如何在计算机上被执行。

商用软件出现了问题,工程师可以看到出错留下的痕迹,但是几乎无法重现程序到底出现了什么问题

易变性

更改软件比更改硬件简单的多,人们希望做出的更改是1、为软件增加新的特性2、使软件能够适应到新的硬件,实际上,正确修改软件使一件非常困难的事

服从性

软件依赖于各种组件和硬件,服从人们的需要,同时要服从行业和系统标准

非连续性

人们比较能理解的事物,比如增加输入,就能看到相应的输出。但是很多软件没有这样的特性,输入上很小的变化,会引起输出很大的变化

软件的其他特性

新特性:

有许多不同的程序设计语言、

软件工具和软件开发平台

存在许多不同的软件开发流程

软件团队中存在许多不同的角色

软件通常既可以存储在磁带上,也可以存储在CD/DVD

AI 可以写程序(OpenGPT), GitHub 社区

但是这些非本质、临时的特性并不能决定软件工程的本质问题。例如,有人发明 了一种新的程序设计语言,或者又出现了一个新的软件开发流程,或者网上出现了又一个程序员技术社区……这些事并不能改变软件工程的根本难度,这也是著名的“没有银弹(No Silver Bullet)”论断所阐述的道理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值