1.1软件=程序+软件工程
程序=数据结构+算法
程序,在这里指的就是源程序,就是一行行的代码,构建不仅仅是cc和link命令
一个复杂的软件不但要有合理的软件架构,软件设计与实现,还要有各种的文件和数据来描述各个程序文件之间的依赖关系,编译参数等,这些都是软件软件构建的过程
有些程序还有32位系统,64位版本等,这是源代码管理,也叫配置管理
还需要一系列的工具,流程,和文档来保证程序的正确性,这些工具,流程应该达到很高的质量,才能保证开发出来的软件的质量. 这就是软件质量, 具体的验证过程叫做软件测试
软件团队要从需求分析开始,把合适的需求梳理出来,然后逐步开展后续工作,如设计软件架构,实现算法,测试,到最后发布软件
尽快读懂已有程序,了解程序的设计,这叫程序理解
给软件打补丁,维护众多的服务,团队的新老成员一起修复各种问题,这叫软件维护或者服务运营,这一过程就是软件的生命周期
一个好的软件,即使功能和同类软件区别不大,但会让人感觉非常好用,这就是软件的用户体验
软件还要处理不同语言,不同地区的用户对界面和功能的不同需求,这叫做软件的国际化和本地化
1.2软件工程是什么
是把系统得,有序的。可量化的方法应用到软件的开发,运营和维护上的过程
1.2.1软件的特殊性
1.复杂性
2.不可见性
3.易变性
4.服从性
5.非连续性
1.2.2软件工程与计算机科学的关系
工程:创造性地运用科学原理,设计和实现建筑,机器,装置或生产过程;或者是在实践中使用一个或多个上述实体;或者是实现这些实体的过程
1.2.3软件工程的知识领域
生命周期:软件需求,软件设计,软件构建,软件测试,软件维护
专门领域:软件配置管理,软件工程管理,软件工程过程,软件工程模型和方法,软件质量
理论基础:计算基础,数学基础,工程基础
1.2.4软件工程的目标——创造“足够好”的软件
用户满意度:用户在使用时发现了软件的很多问题,影响了用户使用软件的效率
可靠性:某个软件经常会崩溃,某个操作系统会是不是的死机,某个网站往往在最需要的时候登不上去
软件流程的质量:团队是否默契,按时交付软甲
可维护性:需要很多的时间和金钱来维护软件,甚至建议推倒重写
1.3练习与讨论
2.我看了这一段文字(是把系统得,有序的。可量化的方法应用到软件的开发,运营和维护上的过程),什么是系统的,有序的,可量化的方法?理解的不好
3.games的特点:可以让人得到不一样的刺激,是一种特殊的放松
Mobile Apps:方便快速应用网络
Tools:更方便的管理
(1)目地都是盈利
(2)各种广告
(3)这个不太了解
(4)看谁的软甲功能更全和方便