学习《构建之法(第三版)》第一章总结

学习《构建之法(第三版)》第一章总结

经典推论

  • 软件 = 程序 + 软件工程
  • 软件企业 = 软件 + 商业模式

软件开发的不同阶段

  • 如果把软件开发的不同阶段比作航天事业的发展,好比一个成熟的航空工业中,一个飞机发动机从构思到最后运行,不知道要经历过多少人、多少工序、多少流程、多少相关知识的验证,其中的过程对于常人来说是无法想象的。在软件开发的发展过程中,由最初的个体编程到小团体的编程,到现在一个成熟的团队的工程,原文中的图表给出了很清晰的对比过程。

软件工程

软件工程的定义

  • 软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。
  • 软件开发过程的五大难题:复杂性、不可见性、易变性、服从性、非连续性。

软件工程的目标

  • 创建“足够好“的软件

《构建之法》的教学目标

  • 研发出符合用户需求的软件说明
  • 通过一定的软件流程,在预计的时间内发布“足够好”的软件说明
  • 并通过数据和其他方式展现所开发的软件是可以维护和继续发展的说明
  • 能做到以上三点,就是初步学会了软件工程

计算机科学划分成以下领域

学术领域

  • 计算理论(Theoretical Computing
  • 信息和编码理论(Information and Coding The-ory)
  • 算法和数据结构(Algorithm and Data Struc-ture)
    形式化方法(Formal Methods)
  • 程序设计语言(Programming Language)

偏实践的领域:

  • 计算机体系结构(Computer Architecture)
  • 并行计算和分布式系统(Concurrent, Parallel and Distributed System)
  • 实时系统和嵌入式系统(Real Time and Embed-ded System)
  • 操作系统(Operating System)
  • 计算机网络(Networking)
  • 科学计算(Scientific Computing)
  • 安全和密码学(Security and Cryptography)
  • 人工智能(Artificial Intelligence)
  • 计算机图形学(ComputerGraphics)、计算机视觉(Computer Vision)、多媒体(Multimedia)
  • 数据库和大规模数据处理(Database and Large Scale Data Processing)
  • 万维网(World Wide Web)
  • 自然语言处理和语音(Natural Language Pro-cessing and Speech)
  • 人机交互(Human Computer Interaction)
  • 软件工程(Software ngineering)

总结

  • 作者举了很多生活中的例子来类比软件工程中的一些专业术语,是我们能够非常清楚的理解作者想要传达的意思。学习起来也十分具有趣味性。本章主要是软件工程的概述,我对软件工程有了广义上的理解,明确了学习本文的目的,便于后续学习工作的进一步推进。
posted @ 2019-11-04 22:37  李磊20199131  阅读(147)  评论(0编辑  收藏  举报