网站LOGO
公爵书房 | 技术分享
页面加载中
10月3日
网站LOGO 公爵书房 | 技术分享
以指键之轻,承载知识之重
菜单
  • 公爵书房 | 技术分享
    以指键之轻,承载知识之重
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    软件工程学习笔记
    点击复制本页地址
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。

    软件工程学习笔记

    公爵 · 原创 ·
    笔记 · 学习笔记计算机基础软件工程
    共 2707 字 · 约 4 分钟 · 23

    第一章 软件工程概论

    软件的定义及特点

    软件的定义

    软件:计算机系统中的程序及其文档

    • 程序是计算任务的处理对象和处理规则的描述
    • 文档是为了便于了解程序所需的阐明性资料

    软件的特点

    • (1)软件是无形的、不可见的逻辑实体

      • 它的正确与否,一直到程序在机器上运行才能知道
      • 这就给设计、生产和管理带来许多困难
    • (2)软件是设计开发的,而不是生产制造的
    • (3)软件在使用过程中没有磨损、老化的问题
    • (4)软件是定制开发的

      • 虽然整个工业向着基于构件的构造模式发展
      • 然而大多数软件仍是根据实际的顾客需求定制的
    • (5)软件是复杂的

      • 软件涉及人类社会的各行各业
      • 软件开发常常涉及其他领域的专业知识。这对软件工程师提出了很高的要求。
    • (6)软件的开发成本高
    • (7)软件易于复制
    • (8)软件质量要求较高
    • (9)软件的开发与运行都离不开相关的计算机系统环境
    • (10)软件开发工作牵涉到很多社会因素

      • 如机构设置、体制和管理方式,以及人们的观念和心理

    软件的种类:

    按照软件的功能划分,软件一般可以分为系统软件、支撑软件和应用软件三类。

    说明:

    软件是软件工程的研究对象,也是软件工程的产品形态与客观存在。

    工程是将理论和知识应用于实践的科学,其目的是经济有效地解决实际问题。

    软件工程的起源和概念

    软件工程的起源

    • 1946 年计算机刚诞生时,人们采用机器码编制程序(机器码指令为了驱动计算机硬件工作),没有独立的软件的概念
    • 1947 年,冯 · 诺依曼首次提出用流程图描述计算机的运行过程,使人们认识到程序设计师完全不同于硬件研制的另一项工作,从此,软件的开发和研究才逐渐开始独立地进行。
    • 现在,在信息产业中,微电子是基础,计算机和网络是载体,软件是核心。

    软件开发的三个阶段

    • 个人程序时期(1947 年 - 1950 年代末)

      • 在这个时期,程序员使用的开发语言主要是机器语言和汇编语言,负责从程序的开发、运行和维护的全过程,这是一种私人化的软件环境。
    • 软件作坊时期(1960 年代初 - 1960 年代末)

      • 多人分工合作,共同完成一个程序的编制,需要对项目开发进行管理,即所谓 "作坊式生产方式"
      • 这一时期,出现了 FORTRAN、COBOL 等高级程序设计语言
    • 软件工程时期(1970 年代初至今)

      • 随着计算机应用领域的进一步扩大,软件的规模和复杂性也在不断增加
      • 出现了 ”软件危机“

    软件危机的现象:

    • 软件质量差,可靠性难以保证
    • 成本难以控制,很少有在预算内完成的
    • 开发进度难以把握,周期拖得很长
    • 可维护性较差,维护人员和费用不断增加

    为解决软件危机,提出了软件工程的概念!

    其目的是倡导以工程的原理、原则和方法进行软件开发,以解决软件危机。

    软件工程的定义

    IEEE(IEEE93)中的软件工程定义:

    • 将系统化的、规范的、可量化的方法应用到软件的开发、运行及维护中,即将工程化方法应用于软件。

    软件工程框架

    软件工程可定义为三元组:<目标,原则,活动>

    • (1)给出了软件所涉及软件工程的工程要素
    • (2)给出了各要素之间的关系
    • (3)给出了软件工程学科所研究的主要内容

    软件工程的目标

    软件工程的目标是:生产具有正确性、可用性以及开销合宜的产品

    • 正确性:指软件产品达到预期功能的程度
    • 可用性:指软件基本结构、实现及文档为用户可用的程度
    • 开销合宜:指软件开发、运行的整个开销满足用户要求的程度

    软件工程的活动

    指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括需求设计实现确认支持等活动。

    1 需求

    • 定义问题,即建立系统模型
    • 主要任务包括:

      • 需求获取
      • 需求定义(即定义问题)系统功能的一个正确的陈述
      • 需求规约:系统需求规格说明
      • 需求验证

    2 设计

    • 设计包括总体设计(也叫概要设计)和详细设计
    • 总体设计建立整个软件体系结构

      • 包括子系统、模块(或构件)以及相关层次的说明、每一模块(或构件)的接口定义
    • 详细设计针对总体设计结果,给出体系结构中每一模块或构件的详细描述

      • 即给出它们的数据结构说明和实现算法

    3 实现

    • 把设计结果转换为可执行的程序代码
    • 具体做法:

      • (1)选择可用的模块或构件
      • (2)或以一种选定的语言,对每一模块或构件进行编码

    4 确认

    • 确认活动贯穿于整个开发过程
    • 实现完成后的确认,保证最终产品满足用户的需求
    • 确认活动主要包括:
    • 需求复审、设计复审以及程序测试,主要任务是:软件测试

    5 支持活动

    • 支持活动包括修改和完善
    • 它为系统的运行提供完善性维护、纠错性维护和适应性维护

    软件工程的原则

    • 选取适宜的开发模型
    • 提供高质量的工程支持
    • 重视开发过程的管理
    声明:本文由 公爵(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    发一条! 发一条!
    博客logo 公爵书房 | 技术分享 以指键之轻,承载知识之重 51统计 百度统计
    MOEICP 萌ICP备20226257号 ICP 赣ICP备2022001242号-1 ICP 闽公网安备35020502000606号 又拍云 本站由又拍云提供CDN加速/云存储服务

    🕛

    本站已运行 1 年 256 天 6 小时 20 分

    🌳

    自豪地使用 Typecho 建站,并搭配 MyLife 主题
    公爵书房 | 技术分享. © 2022 ~ 2023.
    网站logo

    公爵书房 | 技术分享 以指键之轻,承载知识之重
     
     
     
     
    壁纸