1.1 软件=程序+软件工程
程序=数据结构+算法
程序指源程序 建立在数据结构上的一些算法
数据 静态数据 动态数据
软件架构 软件设计与实现 编译参数 链接参数
源代码管理也叫配置管理
验证软件叫做软件测试
需求分析
了解程序的设计叫做程序理解
修复漏洞叫做软件维护或者维护运维这一系列的内容叫做软件的生命周期
软件项目的管理
用户体验
国际化和本地化
软件企业=软件+商业模式
1.2软件工程是什么
软件工程把相关技术和过程统一到一个体系中叫软件开发流程
软件开发特性
- 复杂性 软件可以说是人类创建的最复杂的系统类型
- 不可见性 软件工程师可以直接看见源代码 但是源代码不是软件本身
- 易变性 软件看上去很容易修改 修改软件比修改硬件容易的多
- 服从性 软件不能独立存在 他总是要运行在硬件上面
- 非连续性 增加输入就可以看到相应输出的增加
软件还有一些其他的特性
有许多不同的程序设计语言
存在许多不同的软件开发流程
软件团队中存在许多不同的角色
软件即可以存在磁带上也可以存在DVD/CD中
软件工程侧重点
- 短周期的实践结果
- 对各种元素的折衷
- 对不确定性和风险管理,足够好,具体的应用
- 关注和应用各个相关知识,解决问题
- 百花齐放的实践方法
- 最好的成熟的实践方法
- 在实践中建立起来的灵感和直觉
- 可靠性
软件开发流程的目的
提高软件开发运行维护的效率,并且提高软件的质量还有用户满意度,可靠性和软件的维护性
软件工程的知识领域
生命周期
软件需求 软件设计 软件构建 软件测试 软件维护
专门领域
软件配置领域 软件工程管理 软件工程过程 软件工程模仿和放法
理论基础
计算机基础 数学基础 工程基础
创建足够好的软件
- 用户满意度 用户在使用时发现了软件的很多问提,影响用户使用效果
- 可靠性 某个软件经常会崩溃 某个操作系统时不时会死机 某个网站往往在最需要的时候登不上去
- 软件流程的质量 软件团队设计是会出现bug
- 可维护性 软件维护起来难
什么是bug?
软件的行为和用户期望值不一样就叫做bug,是否是bug,取决于用户,开发者的不同角度
做到以下三点就是初步学会了软件工程
- 研发出符合用户要求的软件
- 通过一定的软件流程
- 能证明出开发的软件可以维护和继续发展
1.3练习与讨论
2. cc和link命令的具体使用方法?
软件工程和计算机科学与技术的区别? 1.2.2 计算及科学与技术系 软件工程系
软件工程需要研究什么内容?
3.Web APP
具有真实有效性作用是指基于Web的系统和应用,作用是向广大的最终用户发布一组复杂的内容和功能。
Mobile Apps
方便实用 为手机用户解决很大问题 用户试用门槛几近于零,并且易于分享和传播。使用者会根据自己的需要选择合适的app,并且 app也会不断创新来吸引广大用户。
Games
特点有利也有弊它可以使人锻炼大脑思维,到了一定境界使人会有一种荣誉感,但过度游戏会使人们走向一种病态从而深陷游戏无法自拔游戏会 定期更新,用一些新奇的模式招揽用户。