第一章  概论

一 、

 1. 软件=程序+软件工程

   程序=数据结构+算法

      一个复杂的软件不但要有合理的软件构架(Software Architecture),软件设计与实现(Software Design,Implementation and Debug),还要有各种文件和数据来描述 各个程序文件之间的依赖关系,编译参数,链接参数等,这些都是软件构建的过程。

   有些程序要配置不同的界面,运行在中文,英文或其他语言的操作系统上;有些程序还有32位版本,64位版本等。这是源代码管理(Source Code Control)的问题——也叫配置管理(Sofeware Configuration Management)。我们还有一系列的工具,流程和文档来保证程序的正确性,这些工具(也是软件)流程应该达到很高的质量,才能保证开发出来的软件质量。这就是质量保障(Quality Assurance),具体的验证过程叫做软件测试(Test)。

   软件团队要从需求分析(Requirement Analysis)开始,把合适的需求梳理出来,然后逐步展开后续工作。

   软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计,这叫程序的理解(Program Comprehension)。软件在运行过程中还会出这样那样的问题,也许我们要时不时给软件打一个补丁,或者维护众多的服务,团队的新老成员要一起修复各种各样的问题这叫软件维护(Software Maintenance),或者服务运营(ServiceOperation)。这一些列过程就是软件的生命周期(Software Life Cycle,SLC),在这一周期中,有人得负责软件项目的管理(Project Management)。

   一个好的软件,即使功能和同类软件区别不大,但会让人感觉非常的好用。这就是软件的用户体验(User Experience),用户体验和数据结构,算法没有直接的关系,但是很多成功的软件就赢在这个方面。软件还要处理不同语言,不同地区的用户对界面和功能的不同需求,这叫做软件的国际化和本地化(Globalization & Localization)。

       软件开发的不同阶段

  1.玩具阶段

   2.业余爱好阶段

   3.探索阶段

   4.成熟的产业阶段

1.2软件工程是什么

  软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。

   软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。

   1.2.1 软件的特殊性

 软件的分类其中的一种方法:

   1.系统软件:操作系统,设备驱动程序,工具软件等。

   2.应用软件:用户使用它们来完成工作,从管理核电厂到写文章,或者是通信,游戏,浏览网页,播放视频等。

   3.恶意软件:软件病毒等。

 软件开发中的特别难题:

   1.复杂性(Complexity)

   2.不可见性(Incisibility)

   3.易变性(Changeability)

   4.服从性(Conformity)

   5.非连续性(Discontinuity)

   1.2.2 软件工程与计算机科学的关系

  两者的不同侧重点

    计算机科学:发现和研究长期的,客观的真理;理想化的;确定性,完美,通用性;各个学科独立深刻研究,做出成果;理论的统一;强调原创性;形式化,追求简明的公式;正确性。

   软件工程:短期的实际结果(具体的软件会过时);对各种因素的折衷;对不确定性和风险的管理,足够好,具体的应用;关注和应用各个相关学科的知识,解决问题;百花齐放的实践方法;最好的,成熟的实践方法;在实践中建立起来的灵感和直觉;可靠性。

   1.2.3 软件工程的知识领域

  生命周期:软件需求,软件设计,软件构建,软件测试,软件维护

   专门领域:软件配置管理,软件工程管理,软件工程过程,软件工程模型和方法,软件质量

   理论基础:计算基础,数学基础,工程基础

  1.2.4 软件工程的目标——创造“足够好”的软件

  1.用户满意

   2.可靠性

   3.可维护性

 

 

二、P18-2

  1. 我读了第四章有这样一个问题两人合作是信任更多还是要相互理解对方更多一点,才能更好的完成编程项目?

  2.第七章软件工程,唯一不变的是变化,为什么还要说是预期变化而不是期望变化呢?

  3.第十章为什么功能驱动的设计能把用户的需求变成团队成员可以直接操作的开发工作,然后源源不断地实现这些需求?

  4.第十一章代码出现Bug不是第一时间进行修改吗?为什么还要等到稳定阶段才能全部解决?

  5.第十三章程序要经过所有的、各种测试吗?

 

 

三、P-3

  1.社交软件:qq、微信

    原因:便于交流,沟通

  2.购物软件:淘宝

    原因:购物方便,省时省力

  3.支付软件:支付宝

    原因:支付便利

  4.学习软件:对啊网、网易有道词典

    原因:可以课上直播,对学习四六级有帮助

  5.娱乐软件:腾讯视频、网易云音乐、王者荣耀

    原因:缓解压力,放松心情

 

 

 

       

   

   

  

 

 

  

posted on 2019-09-10 20:30  王欢吖  阅读(181)  评论(2编辑  收藏  举报