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

2023-11-07 08:50

本文主要是介绍Chapter1:Introduction:SE_Notes《软件工程》笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Chapter1:Introduction
    • 1.1 Outline
      • 1.1.1 SWEBOK & SEEK
      • 1.1.2 Outline
    • 1.2 Software
      • 1.2.1 软件重要性
      • 1.2.2 软件分类 —— 通用化、定制化
    • 1.3 Software Engineering
      • 1.3.1 软件工程概念
      • 1.3.2 人月神话
      • 1.3.3 Q&A
      • 1.3.4 软件属性
      • 1.3.5 对软件有影响的方面
      • 1.3.6 软件工程多样性
      • 1.3.7 Application types 应用程序种类
      • 1.3.8 软件工程原则fundamentals
      • 1.3.9 Web软件工程
      • 1.3.10 软件工程职业道德
    • 1.4 Case studies
      • 1.4.1 Insulin pump control system
      • 1.4.2 A patient information system for mental health care
      • 1.4.3 Wilderness weather station

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. 允许动态配置,在部分软件版本更新时,或者是当系统发生失败而切换备份装置时。

这篇关于Chapter1:Introduction:SE_Notes《软件工程》笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362538

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus