Chapter1:Introduction:SE_Notes《软件工程》笔记

Chapter1:Introduction

1.1 Outline

1.1.1 SWEBOK & SEEK

  • SWEBOK(Software Engineering Body of Knowledge):

    • 是IEEE主持的一个项目,给出了软件工程领域中15个概念及其详细描述。

    • SWEBOK受到很大大公司的支持,包括BOEING,Rational(很多软件工厂领域的工具都是Rational公司产出的,比如建模、分析工具,现在已经别IBM收购)

  • SEEK(Software Engineering Education Knowledge):

    • 软件工程教育体系中应该教授的知识点。
    • 前三个是数学基础,后面讲的全部是软件工程的理念。(做什么、怎么做、编码实现、进行测试保证满足用户需要、在使用周期对它的维护和管理、最后三个是指对整个建模、设计、验证、演化的整体把控)
  • 关系
    .

1.1.2 Outline

  • 图:
    在这里插入图片描述.

  • 简单介绍一下什么是软件工程,软件工程活动,包括哪些阶段。

  • 软件工程师的道德规范。

  • 用于书中内容展开的三个例子。

1.2 Software

1.2.1 软件重要性

在这里插入图片描述.

1.2.2 软件分类 —— 通用化、定制化

  • 分为两类:

    1.通用化:市场上买得到的,通用的软件,比如CAD等。软件由开发者来定义。

    2.定制化:针对某一个特定需求的软件,比如大学的教学系统等。软件由用户来定义。

在这里插入图片描述.

1.3 Software Engineering

1.3.1 软件工程概念

  • 由来:

    • 1968年由北大西洋公约提出。

      因为随着软件的规模越来越大,出现了软件危机,如下:
      在这里插入图片描述

    • 所以将软件视为一个工程来管理极为重要。

  • 定义:

    • Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.
    • 软件工程,是一个工程学科(engineering discipline)覆盖了软件产出的各个方面,这个产出的过程是从早期的过程、到它投入使用之后对系统的维护。
    • 不仅包含技术,还包含项目管理、开发工具等等。
  • Software process activities 软件过程活动:
    在这里插入图片描述

    • 是软件开发过程中,从一开始软件实现什么,到投入使用,到生命周期终结(不再进行维护),对它进行的活动就叫做软件活动。

1.3.2 人月神话

.

1.3.3 Q&A

在这里插入图片描述

1.3.4 软件属性

在这里插入图片描述

1.3.5 对软件有影响的方面

  • 三方面:
    在这里插入图片描述

    • 混合特性,不同的OS、网络、设备。
    • 业务需求不断发生变化。
    • 安全性和信任。
  • 软件工程就是要解决这样的一些问题。

1.3.6 软件工程多样性

  • 有许多不同类型的软件系统,但是没有一套通用的软件技术可以适用于所有这些系统。

  • 所使用的软件工程方法和工具取决于正在开发的应用程序的类型、客户的需求和开发团队的背景。

1.3.7 Application types 应用程序种类

  • Stand-alone applications:不联网,只运行在本地计算机的(画图软件、视频编辑软件)

  • Interactive applications:交互式的,包括一些数据库功能,最常用

  • Embedded control systems:嵌入式软件,通常与硬件结合

  • Batch processing system:批处理系统

  • Entertainment system:用于娱乐

  • System for modeling and simulation :建模和仿真处理

  • Data collection system:现场用传感器收集数据并处理

  • System of system:将系统继承起来构成的大型系统。

1.3.8 软件工程原则fundamentals

  • 一些基本原则适用于所有类型的软件系统,而不论使用的开发技术:
    • 系统应该 使用一个被管理和理解的开发过程来开发(当然,不同的过程用于不同类型的软件)
    • 可靠性和性能 对于所有类型的系统都很重要。
    • 理解和管理软件规范和需求是很重要的,有时可以复用软件而非重新编码。

在这里插入图片描述

1.3.9 Web软件工程

  • Web-based software engineering
    • 基于web的系统是复杂的分布式系统,但是前面讨论的软件工程的基本原理对它们和对任何其他类型的系统一样适用。
    • 软件工程的基本思想适用于基于web的软件,就像它们适用于其他类型的软件系统一样。

1.3.10 软件工程职业道德

  • Software engineering ethics

    • 责任重于技术
    • 专业,并且诚实且负责任。
    • 不仅仅要遵守法律,还要遵循道德规范。
  • ACM/IEEE Code of Ethics

    • 美国计算机协会和I3E共同签署了一个软件工作者的一些职业道德规则

    • 软件工程师应致力于使软件的分析、定义、设计、开发、测试和维护阶段保持专业性。

    • 根据其对公众健康、安全和财富的承诺,软件工程师应遵循以下八个原则:

在这里插入图片描述

1.4 Case studies

在这里插入图片描述

三个案例实际上代表着三种不同的软件类型:

Case1:胰岛素泵系统,这是一个嵌入式的系统,用来控制对糖尿病人注射胰岛素。

Case2:精神健康病人管理系统,管理此类病人的档案。

Case3:野外气象站系统,是一个远程的气象数据收集系统。

1.4.1 Insulin pump control system

  • 系统描述:

    从血糖传感器收集数据,计算需要注射的胰岛素量。

    根据血糖水平的变化率计算。

    向微泵发送信号以提供正确剂量的胰岛素。

    安全关键系统:如低血糖可导致大脑功能障碍,昏迷和死亡;高血糖水平会对眼睛和肾脏造成长期损害。
    在这里插入图片描述

  • 硬件架构 Insulin pump hardware architecture:
    在这里插入图片描述

  • 活动模型 Activity model of the insulin pump:

在这里插入图片描述

  • Essential high-level requirements
    实现必须确保能满足如下需求:
    1)当需要输入胰岛素的时候这个系统能够输送胰岛素
    2)系统必须能可靠地运行,并根据当前血糖浓度输入正确剂量的胰岛素。
    3)用于心理健康治疗的患者信息系统(缩写为:心理健康治疗患者管理系统)
    在这里插入图片描述

1.4.2 A patient information system for mental health care

  • 系统描述:

    • 支持精神卫生保健的患者信息系统是一种医疗信息系统,它维护有关患有精神卫生问题的患者及其接受的治疗的信息。

    • 大多数精神疾病患者不需要专门的医院治疗,但需要定期去专科诊所,在那里他们可以见到对他们的问题有详细了解的医生。

    • 为了让病人更容易就诊,这些诊所不只是在医院里经营。也可以在当地的慈善机构或社区中心举行。

  • MHC - PMS :(Mental Health Care-Patient Management System)

    • MHC-PMS(精神卫生保健-患者管理系统)是一个用于诊所的信息系统。
    • 它利用了一个集中的病人信息数据库,但也被设计成在PC上运行。以便可以从没有安全网络连接的站点访问和使用它。
    • 当本地系统具有安全的网络访问时,他们使用数据库中的患者信息,但是他们可以在断开连接时下载并使用患者记录的本地副本。
  • The organization of the MHC-PMS :
    在这里插入图片描述

  • MHC-PMS key features 关键特征:

    • Individual care management
      • 病例管理,可为病人记录病情及治疗信息,方便医生了解信息,提供更好的治疗方案。
    • Patient monitoring
      • 系统可以监控病人的治疗信息,发现问题后可以发出警告。
    • Administrative reporting
      • 每月生成管理报告,显示每个诊所治疗的患者人数、进入和离开护理系统的患者人数、划分的患者人、开出的药物和费用等。
  • MHC-PMS concerns:

    • Privacy 隐私问题
    • Safety 安全问题

1.4.3 Wilderness weather station

  • 野外气象站系统:
    每一个气象站都有许多采集天气数据的仪器,比如风速、 风向、气温、气压,24小时降雨量等。所有这些设备都是在软件系统的控制下周期性地读入并管理所采集到的数据

  • 气象站的上下文环境包含了三个子系统:

在这里插入图片描述

1. 气象站系统:负责收集气象数据,做-些初始处理操作,然后传输给数据管理系统。
**2. 数据管理和存档系统:**从野外气象站收集数据,执行数据处理与分析,将数据存储为容易被其他系统(如天气预报系统)检索的模式。
**3. 气象站维护系统:**可以通过卫星与所有野外气象站通信,监控它们的运行状态, 井报告出现的问题。

  • 气象站的软件附加的软件功能:

    1. 监控仪器电源、通信硬件,并向管理系统报告故障。
    2. 管理系统电源,确保电池在环境条件允许的情况下得到充电,也确保在恶劣天气情况下,比如大风天气,及时关闭发电机。
    3. 允许动态配置,在部分软件版本更新时,或者是当系统发生失败而切换备份装置时。
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值