程序=数据结构+算法
? 一个复杂的软件是从一个简单的程序,扩展到一个满足各种功能的应用软件,再扩展到一个能保证服务质量的软件服务。
? 程序,在这里指的是源程序,就是一行行的代码,是建立在数据结构上的算法。
? 一个复杂的软件要有合理的软件架构(Software Architecture)、软件设计与实现(Software Design,Implementation and Debug),还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数等等。
? 我们还有一系列复杂的工具、流程和文档来保证程序的正确性,这就是质量保障,具体的验证过程叫做软件测试。
软件的生命周期=需求分析+程序理解+软件维护
? 软件企业的商业模式也会影响软件的需求。广义上的软件工程也包括用户体验、用户界面设计(User Interface Design)等。所以,一个推论是:
软件=程序+软件工程
? 一个扩展的推论是:
软件企业=软件+商业模式
软件开发的不同阶段:
? 1 玩具阶段
? 2 业余爱好阶段
? 3 探索阶段
? 4 成熟的产业阶段
? 软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。
计算机科学 | 软件工程 |
---|---|
发现和研究长期的、客观的真理 | 短期的实际结果(具体的软件会过时) |
理想化的 | 对各种因素的折衷 |
确定性,完美,通用性 | 对不确定性和风险的管理,足够好,具体的应用 |
各个学科独立深入研究,做出成果 | 关注和应用各个相关学科的知识,解决问题 |
理论的统一 | 百花齐放的实践方法 |
强调原创性 | 最好的、成熟的实践方法 |
形式化,追求简明的公式 | 在实践中建立起来的灵感和直觉 |
正确性 | 可靠性 |
软件工程的三大类基础知识领域:计算基础,数学基础和工程基础。
? 和软件打交道的专业人士都知道软件有Bug。Bug的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。
? 什么是bug呢?简单地说,软件的行为和用户的期望值不一样,就叫Bug。
? 是否是Bug,取决于用户、开发者的不同角度。
要通过理论学习和具体项目的练习,做到下面三点:
明天补全
? 我选择工具软件的原因:安卓系统的app经常会有启动页广告,通过唐僧藏经上的别人分享热门app的规则,可以跳过广告;还可以通过八戒助手的自动解码,自动解码跳过一些冷门app的启动页广告。magisk获取root权限后,可以通过黑域关闭app后台;还可以通过冰箱关闭一些app的关联启动;还可以模拟定位。这些软件基本都是一些搞机大佬开发出来的。通过一些论坛别人分享下载的。不收费,不过可以选择自愿捐助。
? 我选择浏览器的原因:像via浏览器,简洁,轻量,极速,而且支持高度定制,不收费,可以自愿捐助。chrome浏览器虽然不如via轻量,但是界面也比较简洁,速度也快。很多同类型的浏览器比较下载的。无广告,不收费。
? 我选择学习阅读的原因:像百词斩,可可英语,随时随地可以背单词,练听力,他们还有自己的品牌的学习资料,通过出售资料盈利。观止的话,每天推荐一篇优美散文,每天一篇,找回高中的感觉。滴答清单可以每天设置计划,完成以后直接勾掉,方便快捷。笔趣阁是一个可以阅读全网小说的app,完美。无广告,不收费。
原文:https://www.cnblogs.com/meethigher/p/11483606.html