一、软件工程概述

软件工程概述

  • [1. 软件的概念和特点](#1. 软件的概念和特点)
  • [2. 软件危机的产生](#2. 软件危机的产生)
  • [3. 软件工程的概念和发展过程](#3. 软件工程的概念和发展过程)
  • [4. 软件工程知识体系与职业道德](#4. 软件工程知识体系与职业道德)

1. 软件的概念和特点

  • 软件定义
    软件=程序+数据+文档。
  • 软件生存周期
  1. 问题定义:要解决的问题是什么?
  2. 可行性分析:对于上阶段所确定的问题有行得通的解决办法吗?
  3. 需求分析:软件必须做什么,确定软件系统的功能、性能、数据和界面等要求,确定逻辑模型。
  4. 总体设计:应该如何解决这个问题。两个任务:确定可能的系统,预估成本和效益;设计软件的结构。
  5. 详细设计:应该怎么具体地实现这个系统?
  6. 编码和单元测试:编写程序,分单元测试
  7. 综合测试:通过各种测试使软件达到预定的要求。集成测试:将各模块串联起来测试;验收测试:用户参与测试,根据规格说明书。
  8. 维护:通过各种必要的维护活动使系统持久地满足用户的需要。有改正性、适应性、完善性和预防性四类维护活动。
  • 软件特点

  • 软件分类

    项目软件(教务管理系统)和产品软件(互联网软件)。

  • 软件发展


2. 软件危机的产生

  • 软件危机

    在计算机软件的开发和维护过程中所遇到的一系列严重问题。如:项目超出预算、项目超过计划完成时间、软件运行效率很低、软件质量差、软件通常不符合要求、项目难以管理并且代码难以维护、软件不能交付。1968提出

  • 软件危机产生原因

    1. 软件成本日益增长
    2. 软件技术进步<需求增长

      客观:软件本身特点。逻辑部件太多,代码规模过于庞大,复杂程度过高。通过技术进步可以解决,如机器学习的发展。
      主观:不正确的开发方法。忽视需求分析,错误认为:软件开发=程序编写,轻视软件维护。需求正确的管理方法和协同合作方法。
  • 解决危机

    1. 对计算机软件有一个正确的认识:软件!=程序
    2. 必须充分认识到软件开发不是某个劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
    3. 推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。

3. 软件工程的概念和发展过程

  • 软件工程概念

将大问题分解为小问题,不断完善解决。
定义 :(1)应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即将工程应用到软件;(2)对(1)中各种方法的研究。
目标:软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应性强、可移动、可重用的软件。

  • 软件工程要素

    三要素:方法、工具、过程。(质量焦点)

    1. 工具
      它为软件工程的过程和方法提供自动化或半自动化的工具支持。将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称"计算机辅助软件工程CASE",系统中某一工具的信息加工结果可以作为另一工具的输入。集成的软件工程工具再加上人的因素构成了软件开发环境。
    2. 方法
      完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、编程、测试和维护。软件工程方法依赖一组原则,它贯穿软件工程的各个环节。软件工程方法分为两类:结构化方法和面对对象方法。
    3. 过程
      贯穿软件开发的各个环节,在各个环节之间建立里程碑;管理者在软件工程过程中对软件开发的质量、进度、成本进行评估、管理和控制;技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。
  • 软件工程发展

  • 软件工程原则(B.W.Boehm, 1983)

    1. 使用阶段性生命周期计划的管理
    2. 进行连续的验证(测试应该早进行)
    3. 保证严格的产品控制
    4. 使用现代编程工具/工程实践
    5. 保持清晰的责任分配
    6. 用更好更少的人
    7. 保持过程改进

4. 软件工程知识体系与职业道德

  • 软件工程知识体系


    多学科交融:
  • 软件工程与计算机科学

  • 软件工程误解


  • 软件工程职业道德和责任规范
相关推荐
爱思德学术3 天前
中国计算机学会(CCF)推荐学术会议-C(软件工程/系统软件/程序设计语言):MSR 2026
人工智能·机器学习·软件工程·数据科学
郝学胜-神的一滴3 天前
深入探索 C++ 元组:从基础到高级应用
开发语言·c++·stl·软件工程
健康有益科技3 天前
家庭健康智能终端:解锁智能家居时代的健康管理
大数据·软件工程·智能家居·健康医疗
1candobetter3 天前
软考中级习题与解答——第六章_计算机硬件基础(2)
软件工程
深圳行云创新4 天前
BizDevOps 是什么?如何建设企业 BizDevOps 体系
软件工程·devops·bizdevops
NMGWAP5 天前
AI辅助编程:软件工程的终结还是进化新阶段?
人工智能·软件工程
疯狂的Alex6 天前
2010-2022 同等学力申硕国考:软件工程简答题真题汇总
数据库·oracle·软件工程
中电金信7 天前
中电金信:AI重构测试体系·智能化时代的软件工程新范式
人工智能·重构·软件工程
小马哥编程8 天前
【软考架构】第五章 软件工程基础知识:5.1软件工程概述
架构·软件工程
爱思德学术8 天前
中国计算机学会(CCF)推荐学术会议-C(软件工程/系统软件/程序设计语言):REFSQ 2026
软件工程·软件需求·需求工程