🍪
cookielau
  • Introduction
  • Machine Learning
    • Distributed
      • Bookmarks
    • NLP
      • Transformers
    • MLC
      • Tensor Program Abstraction
      • End-to-End Module Execution
  • Framework
    • PyTorch
      • Bookmarks
      • Model
      • Shared
      • Miscellaneous
    • Tensorflow
      • Bookmarks
      • Model
      • Shared
      • Miscellaneous
    • CUDA
      • Bookmarks
    • DeepSpeed
    • Bagua
      • Model
      • Optimizer
    • Others
      • Bookmarks
  • About Me
    • 2022-04-28
  • Random Thoughts
  • Archives
    • CPP
      • Bookmarks
      • Container
      • Algorithm
      • FILE CONTROL
      • Virtual Table
      • Assembly
      • Key Words
      • Problems
      • Others
    • JAVA
      • String Container
      • Maps
    • PYTHON
      • Bookmarks
      • Python Tools
        • Batch Rename
        • Combine Excel
        • Excel Oprations
        • Read Write Excel
        • Rotate PDF
      • Library
        • Pandas Notes
        • Numpy Notes
        • Json Notes
      • Spider
        • Selenium Install
        • Selenium Locating
        • Selenium Errors
        • Selenium Basics
      • Django
        • Start Up
      • Others
    • LINUX
      • Installation
      • Cli Tools
      • WSL
      • Bugs
    • JUNIOR2
      • Economics
        • Chapter 0x01 经济管理概述
        • Chapter 0x02 微观市场机制分析
        • Chapter 0x03 生产决策与市场结构
        • Chapter 0x04 宏观经济市场分析
        • Chapter 0x05 管理的职能
        • Chapter 0x06 生产系统结构与战略
        • Chapter 0x0b 投资项目经济评价
        • Chapter 0x0f 投资项目经济评价
      • Computer Network
        • 概述
        • 分层模型
        • 物理层
        • 数据链路层
        • 网络层
        • 传输层
        • 应用层
        • HTTP(s)实验
        • [Practice]
      • Software Engineering
        • Introduction
        • Demand Analysis
        • Task Estimation
        • Presentation
      • Network Security
        • Chapter 0x01 概述
        • Chapter 0x02 密码学
        • Chapter 0x03 公钥体制
        • Chapter 0x04 消息认证
        • Chapter 0x05 密钥管理
        • Chapter 0x06 访问控制
        • Assignments
      • x86 Programming
        • Basic Knowledge
        • Program Design
        • System Interruption
        • Frequently used functions
    • MD&LaTex
      • Markdown
      • LaTex
    • NPM
      • NPM LINK
    • MyBlogs
      • 2020BUAA软工——“停下来,回头看”
      • 2020BUAA软工——“初窥构建之法”
      • 2020BUAA软工——“上手软件工程,PSP初体验!”
      • 2020BUAA软工——“深度评测官”
      • 2020BUAA软工——“并肩作战,平面交点Pro”
    • SC
      • PAC 2022
        • Lectures
      • OpenMP & MPI
        • MPI Overview
        • Message Passing Programming
        • OpenMP Overview
        • Work Sharing Directives
        • Annual Challenge
        • Future Topics in OpenMP
        • Tasks
        • OpenMP & MPI
    • Hardware
      • Nvidia GPU
        • Frequent Error
        • Memory Classification
        • CUDA_7_Streams_Simplify_Concurrency
        • Optimize_Data_Transfers_in_CUDA
        • Overlap_Data_Transfers_in_CUDA
        • Write_Flexible_Kernels_with_Grid-Stride_Loops
        • How_to_Access_Global_Memory_Efficiently
        • Using_Shared_Memory
      • Intel CPU
        • Construction
        • Optimization
        • Compilation
        • OpenMP
    • English
      • Vocab
      • Composition
    • Interview
      • Computer Network
Powered by GitBook
On this page
  • 什么是软件工程
  • 参考书
  • 程序 vs 软件
  • 软件工程的目标
  • 计算机科学与软件工程

Was this helpful?

  1. Archives
  2. JUNIOR2
  3. Software Engineering

Introduction

PreviousSoftware EngineeringNextDemand Analysis

Last updated 5 years ago

Was this helpful?

什么是软件工程

软件工程 (Software Engineering) 是系统化、规范化、量化的方法在软件开发、操作和维护中的应用。

  • 敏捷开发方法 (Agile)

  • 软件生命周期各个阶段所要用的工具

    • 例如,单元测试、Bug诊断

  • 技能和方法论

    • 能够熟练的使用几种程序设计语言 (C++、C#...)

    • 结对编程 (Pair Programming)

    • 极限编程 (XP)/SCRUM

    • 测试驱动软件开发 (TDD)

    • 连续重构 (Continuous Refactoring)

  • 能力培养:通过团队协作使用软件开发工具按照软件工程方法开发高质量并且可用的复杂软件系统的能力

参考书

  • 构建之法第三版 邹欣

  • 快速软件开发 (Rapid Development) Steve McConnell (ISBN 1-55615-900-5)

  • 代码大全 (Code Complete (2nd Ed)) Steve McConnell

  • 移山之道 – VSTS 软件开发指南

  • Dreaming in Code 《梦断代码》

程序 vs 软件

程序 = 算法 + 数据结构 软件 = 程序 + 软件工程 软件企业 = 软件 + 商业模式

测验:如果在某个商业产品中,一个功能只有百万分之一的使用概率,那么你是否希望实现它并且每次客户使用你的产品是不厌其烦的教他们如何使用? A. 根本就不打算做它 B. 如果我们没有时间就把它砍掉 C. 实现它,但是不需要告诉用户 D. 实现它,并且告诉用户

软件工程的目标

  • 创造“足够好”的软件

    • 用户满意度

    • 可靠性

    • 软件流程的质量

    • 可维护性

计算机科学与软件工程

计算机科学

软件工程

发现和研究长期的、客观的真理

短期的实际结果(具体的软件会过时)

理想化的

对各种因素的折衷

确定性

对不确定性和风险的管理

完美

足够好

通用性

具体的应用

各个学科独立深入研究,做出成果

关注和应用各个相关学科的知识,解决问题

理论的统一

百花齐放的实践方法

强调原创性

最好的、成熟的实践方法

形式化,追求简明的公式

在实践中建立起来的灵感和直觉

正确性

可靠性

答案: