软件工程概论-Chapter1_PartI

一 什么是「软件」

  • 软件(Software):一组对象或项目组成的一个「配置」,由程序、文档和数据等部分组成。
    • 程序(Program):可被计算机硬件理解并执行的一组指令,提供期望的功能和性能;
    • 数据(Data structure):程序能正常操纵信息的数据结构;
    • 文档(Document):与程序开发、维护和使用有关的图文材料

二 「软件」的四大特征

  • 复杂性
    • 软件要解决的现实问题通常包含复杂的数据、状态、逻辑关系,导致了软件本身的复杂性
    • 软件无法以「制造」的方式被生产,只能采用手工开发方式,这是一种人为、抽象化的智能活动(智力密集型),人类思维的不确定性导致了开发过程的复杂性。
  • 不可见性
    • 尚未完成的软件是不可见的,使得人们在沟通上面临极大的困难。
  • 易变性
    • 软件所应用的人群、法规、硬件设备、应用领域等因素汇集而成,这些因素皆会频繁快速的变化。
  • 一致性
    • 各子系统的接口必须协同一致,而随着时间和环境的演变,要维持这样的一致性通常十分的困难。

三 「软件危机」及其表现

  • 软件危机(Software Crisis):计算机软件的开发和维护过程所遇到的一系列严重问题。

  • 「软件危机的表现」

    • 对软件开发成本和进度的估算很不准确,甚至严重拖期和超出预算;
    • 无法满足用户需求,导致用户很不满意;
    • 质量很不可靠,经常失效;
    • 难以更改、调试和增强;
    • 没有适当的文档;
    • 软件成本比重上升;
    • 软件开发生产率跟不上计算机应用迅速深入的趋势。

客观上:软件产品开发的复杂度和难度随软件规模呈指数级别增长
主观上:软件开发人员缺乏工程性的、系统性的方法论
由于主客观的种种原因,「软件工程」这个概念也随之提出……

四 软件工程

「软件工程」的定义有很多,这里只列出** I.Sommerville**的定义:「软件工程是用来开发、管理和维护软件产品的理论、方法和工具」
   归结起来,「软件工程」是……
范围

  • 软件开发过程(设计、开发、运行、维护)
  • 软件开发中遵循的原则和管理技术
  • 软件开发中所采用的技术和工具

目标

  • 高质量
  • 按时交付
  • 控制成本
  • 满足用户需求

软件开发方法学

使用预先定义好的一组模型表示方法、良好的设计技术与原则、质量保证标准等方面来组织软件开发的过程;

  • 分类
    • 结构化开发方法
    • 面向对象开发方法
传统软件工程方法:结构方法
软件工程概论-Chapter1_PartI_第1张图片
结构方法
面向对象方法
软件工程概论-Chapter1_PartI_第2张图片
面向对象方法
软件工具与软件工程环境

工具:自动或半自动的软件支撑环境,辅助软件开发任务的完成,提高开发效率和软件质量、降低开发成本。
  多个工具集成在一起,形成了软件工程开发环境CASE(Computer Aided Software Engineering),全面支持软件开发的全过程。

五 总结

软件不只是程序,还包含文档和数据等部分。随着软件规模的逐渐增大,一系列严重问题也随之被发现。为了开发出更高质量的软件,「软件工程」的概念也随之产生,软件工程提出了一系列软件开发的方法学,其中分为两种:一种是结构化的开发方法,一种是面向对象的开发方法。

你可能感兴趣的:(软件工程概论-Chapter1_PartI)