现代软件工程之构建之法第一章课后有感

1.1 软件 = 程序+软件工程

程序 = 数据结构 + 算法!

软件=程序+软件工程!

软件企业 = 软件+商业模式!

 软件开发的四个不同阶段:

  1.玩具阶段

  2.业余爱好阶段

  3. 探索阶段

  4.成熟的产业阶段

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

有些程序要配置不同的界面, 运行在中文,英文或其他语言的操作系统上;有些程序还有32位版本,64位版本等. 这是 源代码管理的问题也叫 配置管理.

还需要一系列的工具,流程,和文档来保证程序的正确性,这些工具,流程应该达到很高的质量,才能保证开发出来的软件的质量. 这就是 软件质量, 具体的验证过程叫做 软件测试.

扫描二维码关注公众号,回复: 7222099 查看本文章

软件团队要从需求分析开始,把合适的需求梳理出来,然后逐步开展后续工作,如设计软件架构,实现算法,测试,到最后发布软件.

尽快读懂已有程序,叫 程序理解.

给软件打补丁,修复问题,这叫软件维护或者服务运营.

这一过程就是 软件的生命周期.

在这一周期中,有人得负责 软件项目的管理.

一个好的软件,即使功能和同类软件区别不大,但会让人感觉非常好用,这就是 用户体验.

软件要处理不同地区的用户对界面和功能的不同需求,这叫做软件的 国际化和本地化.

1.2 软件工程是什么

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

软件工程包括的领域:

  1. 软件需求分析
  2. 软件设计
  3. 软件构建
  4. 软件测试
  5. 软件维护

1.2.1 软件的特殊性

  1. 复杂性Complexity

    大型软件代码量巨大,而且不同模块之间的关系越来越复杂。

  2. 不可见性Invisibility

    工程师只能看到的是代码和出错了的代码,但并不知道用户遇到问题时到底是怎么样的。

  3. 易变性Changeablity

    人们不断地希望软件能做新的东西和适应新的软件,但于此同时很难修改。

  4. 服从性Conformity

    软件无法独立存在,必须依赖硬件,而且还要服从用户、行业系统的要求。

  5. 非连续性Discontinuity

    有些软件输入与输出不匹配。

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

计算机科学偏理论研究,是追求那种理想化、完美的真理,各个学科会独立深入研究并出成果;

而软件工程偏向实践,追求短期的效果,往往是不完美的,因为要对不可抗的现实因素折衷,会融合各个领域的知识去实现实际的问题。

软件工程与计算机科学也有很多交互。

1.2.3 软件工程的知识领域

  1. 生命周期

    1. 软件需求
    2. 软件设计
    3. 软件构建
    4. 软件测试
    5. 软件维护
  2. 专门领域

    1. 软件配置管理
    2. 软件工程管理
    3. 软件工程过程
    4. 软件工程模型和方法
    5. 软件质量
  3. 理论基础

    1. 计算基础
    2. 数学基础
    3. 工程基础

1.2.4 软件工程的目标 - 创造"足够好"的软件

  1. 用户满意度

    在用户使用时,尽量满足用户的需求,使用户满意。

  2. 可靠性

    软件经常崩溃,电脑经常死机,我们要尽量避免这种问题的出现。

  3. 软件流程的质量

    软件开发团队的默契度,让开发人员速度更高效,

  4. 可维护性

    出了问题可以快速解决。

猜你喜欢

转载自www.cnblogs.com/RUAYO/p/11481195.html