一、第一章 概论
1.1软件=程序+软件工程
程序、工程、源程序、软件架构(Soft Architecture)、
软件设计与实现(Software Design, Implementation and Debug)、
源代码管理(Source Code Control)、
配置管理(Software Configuration Management)、
质量保障(Quality Assurance)、软件测试(Test)、
需求分析(Requirement Analysis)、程序理解(Program Comprehension)、
软件维护(Software Maintenance)、服务运营(Service Operation)
软件的生命周期(Software Life Cycle, SLC)、
软件项目的管理(Project Management)、用户体验(User Experience)、
国际化与本地化(Globalization & Localization)
软件开发的不同阶段:
玩具阶段—业余爱好者阶段—探索阶段—成熟的产业阶段
1.2软件工程是什么
(1)软件工程包括以下领域:软件需求分析、软件设计、软件构建、软件测试、软件维护
(2)软件工程和下列学科相关;计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户体验设计。
软件的特殊性;复杂性、不可见性、易变性、服从性、非连续性
(3)软件工程与计算机学科的关系;
计算机科学 | 软件工程 |
发现和研究长期的、客观的真理 | 短期的实际结果(具体的软件会过时) |
理想化的 | 对各种因素的折衷 |
确定性,完美,通用性 | 对不确定性和风险的管理,足够好,具体的应用 |
各个学科独立深人研究,做出成果 | 关注和应用各个相关学科的知识,解决问题 |
理论的统一 | 百花齐放的实践方法 |
强调原创性 | 最好的、成熟的实践方法 |
形式化,追求简明的公式 | 形式化,追求简明的公式 |
正确性 | 可靠性 |
(4)Build To Learn : 开发软件,构建系统的目的是做进一 步的试验,试图发现客观规律或探求某方法的优劣。这些项目经常是科研论文的基础工作。
Build To Show:为了突出地展现某个技术的作用,开发一些以演示为目的的软件,这些项目很吸引眼球,经常获得新闻报道,但是功能未必全面或实用。
Build To Serve:为了服务-定范围的目标用户而构建的工具等,有时以公开SDK的形式发布,让别的研发人员使用。
Build To Win:以在市场上赢得用户为目标而构建的软件。这也是种种科学发现、技术突破最好的试金石。这是我做得最多的项目类型,也是这本书的英文名字。
(5)软件工程的知识领域;
生命周期—软件需求、软件设计、软将构建、软件测试、软件维护
专门领域—软件配置管理、软将工程管理、软件工程过程、软件工程模型和方法、软件质量
理论基础—计算基础、数字基础、工程基础
(6)软件工程的目标——创造“足够好”的软件
用户满意度、可靠性、软件流程的质量、可维护性
二、P18-2
(1)第2章.如何把自己学习的编程知识更好转化为能实现软件工程的一项技能
(2)第3章.软件工程师的核心竞争力是什么,
(3)第4章.软件工程两人合作如何磨合,同样水平难免产生不同想法,是否应该自己完成各自部分。
(4)第8章.如何更好的满足客户需求,是完全执行客户,还是体现自己优势,是否可以灵活运用自己的技巧。
(5)第8章.什么是必要需求与辅助需求,二者最大的区别是什么,辅助需求是否可有可无3
三、P18-3
社交软件:QQ、微信(社交软件大多都是跟随时代趋势,因身边大多数人用所以下载,同样的社交软件,我认为最大的竞争力就是使用简单,用最简单的方法实现更多的功能,所谓的更接地气,能让社会中绝大部分人会使用)
视频软件:腾讯视频、爱奇艺 、抖音、哔哩哔哩(因版权问题下载不同的视频软件,视频的多样性)
购物软件:淘宝,美团,京东、识货、毒(因东西多样,保证质量,优惠所选择)
学习软件:新东方在线,英语四级君,知米背单词(根据自己不同时期的学习需求所选择,主要看知识是否全面符合自身的需求选择软件)
游戏软件:王者荣耀、和平精英、开心消消乐(休闲娱乐,更好的游戏体验,能更好的放松自己)