第一章 概述

1.1 软件=程序+软件工程

     1)程序=数据结构+算法

     2)软件构建的过程:合理的软件架构+软件设计与实现+各种文件和数据描述各个程序文件之间的依赖关系、编译参数、链接参数...

     3)源代码管理(配置管理)

     4)质量保障:一系列的工具、流程和文档来保证程序的正确性,这些工具、流程应该达到很高的质量,才能保证开发出来的软件的质量。

     5)软件测试:具体的验证过程

     6)程序:需求分析-设计(软件架构)-实现(写数据结构和算法)-测试-发布软件

     7)程序理解:读懂已有的程序,了解程序的设计

     8)软件在运行过程中会出现问题,要不时给软件打补丁,或者维护众多的服务,团队的新老成员一起修复各种各样的问题,这叫(软件维护或者服务运营),这              一 系列过程就是(软件的生命周期),这一周期中有人负责(软件项目的管理)

     9)软件还要处理不同的语言、不同地区的用户对界面的功能的不同区需求,这叫软件的(国际化和本地化)

    10)软件=程序+软件工程

    11)软件企业=软件+商业模式

    12)软件开发的不同阶段:玩具阶段

                                             业余爱好阶段

                                             探索阶段

                                             成熟的产业阶段

1.2 软件工程是什么

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

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

1.21 软件的特殊性

    1)复杂性(complexity)

    2)不可见性(invisibility)

    3)易变形(changeability)

    4)服从性(conformity)

    5)非连续性(discontinuity)

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

    1)计算机科学领域划分:计算理论、信息和编码理论、算法和数据结构、形式化方法、程序设计语言

    2)实践领域:计算机体系结构、并行计算和分布系统、实时系统和嵌入式系统、操作系统、计算机网络、科学计算、安全和密码学、人工智能、计算机图形学、数据库和大规模数据处理、万维网、自然语言处理和语音,人机交互、软件工程

1.2.3 软件工程的知识领域

    1)软件工程的三大类基础知识领域:计算基础、数学基础和工程基础

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

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

    4)理论基础:计算基础、数学基础、工程基础

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

    所谓的软件工程就是把软件中的bug都消灭掉的过程

    软件工程的目标啊:用户满意度、可靠性软件流程的质量、可维护性

 

1.3. 练习与讨论

    第二题:

      读完第一章还是对软件工程这本书的思路不清晰,不知道侧重点

      怎么保证软件在修改的过程中质量不断在提高,至少维持以前的质量?

      软件的生命周期大概要有多久?团队一起工作如何使修复做的更好呢,有没有出现无法对接的现象,又如何解决呢?

      想成为一名优秀的软件工程师应当满足什么条件?

      每个bug都要修复吗?

 

    第三题:

      社交软件:微信、QQ、类社交软件

      系统软件:计算机、手电筒、日历、备忘录

      学习软件:雨课堂、奕报告、小猿搜题

      社交软件能满足人们的社交功能;系统软件是人们手机上必备的基础软件工具;学习软件满足学生的学习需求。

      流量盈利,增值业务充值盈利,方便用户

      社交软件通过应用市场下载,大概在初中下载的;系统软件手机自带;学习软件接触了才下的,根据自身需求选择

      感觉还很方便的

      这些软件不断更新,提示用户更新版本达到目的需求,不断推出各项功能来吸引用户,达到竞争效果