初始软件工程

  • 为学堂在线清华大学《软件工程》部分视频笔记

  • 1.1软件无处不在

    • 软件无处不在
      万事万物间感知化、互联化和智能化的程度不断加深,软件已经成为人们生活中极其重要的角色。软件无处不在,软件广泛应用于生物工程、现代通讯、宇宙探索、商务处理、工业制造等领域,软件产业也已经成为了一个独立形态的产业。
    • 软件工程
      ①软件是软件工程的研究对象,也是软件工程的产品形态与客观存在。
      ? 工程是将理论和知识应用于实践的科学,其目的是经济有效地解决实际问题。
      ?②人们对软件的正确性、安全性、可靠性等可信性质要求越来越高,如何以经济有效的方法开发高质量的软件是软件工程一直致力解决的问题。
      ? 软件工程是为了解决开发成本效益和软件质量的问题而产生的。倡导以工程的原理原则和方法,进行软件的开发。
  • 1.2软件的本质特性

    • 软件的定义
      软件=程序+数据+文档
      程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。
      ?数据︰使得程序能够适当地操作信息的数据结构。
      文档:描述程序的研制过程、方法和使用的图文资料。
    • 软件的本质特征
      这些固有的内在特征是造成软件开发困难的根本原因。
      需要寻找解决问题的有效方法,从而保证软件开发过程的高效、有序和可控
      • 复杂性
        比如函数间的调用复杂且系统规模大。
      • 一致性
        ①软件不能独立存在,需要依附于一定的环境(如硬件、 络以及其他软件)
        ?②软件必须遵从人为的惯例并适应已有的技术和系统
        ③软件需要随接口不同而改变,随时间推移而变化,而这些变化是不同人设计的结果
      • 可变性
        软件容易修改,但是不可忽视修改的副作用。每一次的修改都会造成故障率的升高,同时也给软件的结构带来破坏,不断的修改甚至可能带来软件的退化,从而结束其生命周期。
        但是软件只要使用就需要一直改变,且为随需改变。虽然软件的可变性给软件开发带来了难题,但是也给软件带来了生命力。
      • 不可见性
        ①软件是一种“看不见、摸不着”的逻辑实体,不具有空间的形体特征
        ?②开发人员可以直接看到程序代码,但是源代码并不是软件本身
        ③软件是以机器代码的形式运行,但是开发人员无法看到源代码是如何执行的
  • 1.3软件工程的产生与发展

    • 软件开发面临的挑战

    • 软件工程诞生
      1968年,北大西洋公约组织( NATO)召开国际会议,提出“软件工程”概念和术语。
    • 探讨软件之道

  • 1.4软件工程的基本概念

    • 工程的含义
      工程是将理论和知识应用于实践的科学,以便经济有效地解决问题。
      • 工程活动具有的特征
        大规模的设计与建造
        ?复杂问题与目标分解
        ?团队协作与过程控制
    • 什么是软件工程
      软件工程是 ①将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上; ②对①中所述方法的研究。
    • 软件工程的目标——创造“足够好”的条件
      即,
      ?较低的开发成本
      按时完成开发任务并及时交付
      ?实现客户要求的功能
      具有良好性能、可靠性、可扩展性、可移植性等
      ?软件维护费用低
    • 软件工程的基本要素
      • 过程

        即支持软件开发各个环节的控制和管理
        软件开发过程一般包括一系列基本的开发活动。见上图。

      • 方法

        即完成软件开发任务的技术手段

      • 工具

        即为软件开发方法提供自动威半自动的软件支撑环境

    • 软件开发的基本策略
      • 软件复用
        构造一个新的系统不必从零做起,直接复用已有的构件进行组装
        构件是经过反复使用验证的,由其组成的新系统具有较高的质量
        软件复用不仅仅是代码的复用,还比如:
        ? 库函数、类库
        模板(文档、 页等)
        设计模式
        组件框架
      • 逐步演进
        软件开发是自底向上逐步有序的生长过程
        ?小步快跑 : 每走完一步再调整并为下一步确定方向,直到终点
      • 优化折中
        优化 : 优化软件的各个质量特性,如运行速度、资源利用、用户体验
        ?折中 : 通过协调各个质量特性,实现整体质量的最优
    • 软件工程学科发展——技术

  • 1.6业界人士谈软件工程

    • 总结:软件工程不仅仅是一门学科,它对我们来说更重要的是实践的过程和推动软件发展的必要工具,是几十年来软件开发的经验的总结。
      比如:如何团队人员如何并行工作-软件工程提供了很多项目管理的模型和方法
  • 讨论题

    • 看法:(1) ①发生了计算机错误。计算机的数据库与航空图存在不一致,Cali单字母编码与波哥大(Bogota)的编码相同。②机组人员过于依赖自动驾驶设备。机组人员匆忙遵守交通管制的指令,使计算机错误持续了66秒钟未被检测到。③没有统一计算机的数据库与航空图,存在相关人员没有建立完备的冲突检查系统的可能性。 (2) 关注数据的一致性,并通过文档记录的形式进行检漏。建立完善的冲突检查系统。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月12日
下一篇 2022年8月12日

相关推荐