【读书笔记】《软件工程导论》

这篇具有很好参考价值的文章主要介绍了【读书笔记】《软件工程导论》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、软件工程概述

二、启动阶段

三、计划阶段

四、实施阶段

五、收尾阶段


一、软件工程概述

软件危机:在计算机软件的开发和维护过程中遇到的一系列严重问题。

软件危机的产生与自身的特点有关,还与软件开发、管理的方法不正确有关。

软件危机的典型表现:

  • 对软件开发的进度和成本无法控制;
  • 用户对已开发完成的软件的满意度低;
  • 软件质量无法保证;
  • 软件开发后的维护工作很难进行;
  • 软件通常没有合适的文档资料;
  • 软件成本在系统成本中所占比例越来越高;
  • 软件开发生产力提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

软件工程:计算机科学、工程和管理三个学科的综合。(技术和管理)

软件工程的基本目标:努力发挥开发人员的创造性潜能。

软件工程方法学的目的(实质):使软件生产规范化和标准化,控制开发工作的复杂度。

软件工程方法学得以实施的主要保证是:软件开发工具和软件开发的环境。

软件根据功能划分为:系统软件、支撑软件、应用软件。

软件工程的七大基本原理:

  • 用分阶段的生命周期计划严格管理;
  • 坚持进行阶段评审;
  • 实行严格的产品控制;
  • 采用现代的程序设计技术;
  • 结果应能清楚的审查;
  • 开发小组的成员应该少而精;
  • 承认不断改进软件工程实践的必要性。

传统软件工程的生命周期:

  1. 问题定义与可行性研究;
  2. 需求分析;
  3. 软件设计(概要设计与详细设计);
  4. 编码;
  5. 测试;
  6. 运行与维护。

瀑布模型:

【读书笔记】《软件工程导论》

瀑布模型的特征:

  1. 从上一项活动中接受该活动的工作成果,作为输入;
  2. 利用这一输入实施该活动应完成的内容;
  3. 给出该活动的工作成功,作为输出传给下一项;
  4. 对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。

瀑布模型的优点:

  • 强调开发的阶段性;
  • 强调早期计划及需求调查;
  • 强调产品测试。

瀑布模型的缺点:

  • 瀑布模型过于依赖早期进行的唯一一次需求调查,不能适应需求的变化;
  • 单一流程,开发中的经验教训不能反馈应用于本产品的过程。

原型化方法是用户和设计交换最频繁的方法。

软件开发过程中可能出现的问题:

  • 问题定义与可行性研究:未进行问题定义和可行性研究,导致技术问题难以解决;
  • 需求分析:需求分析应与客户充分沟通,并由开发人员完成,而不是由用户给出。需求分析不完整,会导致用户不断增加或修改要求而增大开发难度;
  • 系统设计:模块间未做到高内聚低耦合,导致维护困难;
  • 详细设计:未编写详细文档,导致维护困难;
  • 编码:编码风格不好(注释少、命名不规范),导致维护困难;
  • 测试:由开发人员自己进行测试,而没有交给第三方测试,造成系统的不稳定;
  • 维护:没有进行评审或保存详细的文档资料,导致维护困难。

【读书笔记】《软件工程导论》

二、启动阶段

可行性研究:

  • 技术可行性;
  • 经济可行性;
  • 操作可行性;
  • 时间可行性;
  • 组织与管理可行性;
  • 社会与政策可行性。

需求分析:

  • 系统要求:功能要求、性能要求、运行要求、其他要求。
  • 数据要求:结构化程序设计以数据流为核心,结构化分析方法采用数据流图、DFD与数据字典DD描述。

数据流图的基本四种成分:

  • 数据输入的源点和数据输出的汇点;
  • 加工;
  • 数据流;
  • 数据存储文件。

三、计划阶段

系统概要设计的意义:

  • 设计是软件开发中形成质量的地方;
  • 设计为最终对软件评估进行质量评估提供度量依据;
  • 设计是将用户的需求准确的转化为完整的软件产品的唯一方法;
  • 设计是软件开发和维护的基础。

软件设计阶段分为原型设计用例设计

概要设计针对需求,详细设计针对实现。

为高质量的开发软件,在软件结构设计时,必须遵循模块独立性原则。

项目开发计划除去规定项目开发所占的资源,还可以包括用户培训计划。

详细设计内容:

  • 算法过程设计;
  • 数据结构设计;
  • 数据库物理设计;
  • 信息编码设计;
  • 测试用例设计;
  • 其他要求设计。

软件详细设计工具可分三类:图示工具、设计语言、表格工具。

结构化程序设计的基本控制结构:

【读书笔记】《软件工程导论》

系统流程图是描绘物理系统的传统工具,它的基本思想是利用图形符号以黑盒子形式描绘系统里的每个部件。

结构化系统设计是面向数据流的系统设计方法,其要解决的任务是在需求分析的基础上,将DFD(结构图)“映射”为软件系统的结构。

N_S图(盒图)

【读书笔记】《软件工程导论》

PAD图

【读书笔记】《软件工程导论》

PDL是伪码式语言。

四、实施阶段

软件测试原则:

  • 所有测试的标准都是建立在用户的需求之上;
  • 基于“质量第一”思想,时间服从质量;
  • 实现定义好标准,根据标准进行测试;
  • 软件测试随着项目的启动就开始,而不是项目结束才测试;
  • 由第三方进行更客观的测试;
  • 测试用例通过设计,采用少量的高效测试用例尽可能多的发现软件问题;
  • 重视稳定,保存一切测试过程文档。

【读书笔记】《软件工程导论》

白盒测试在测试过程的前期进行,黑盒测试在测试过程的的后期。 

使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准。

等价分类法:

1. 划分等价类

输入 有效等价类 无效等价类
数据A 条件①;条件②;...... 条件③;条件④;......

2. 有效等价类测试用例

输入数据 测试范围 期望结果
数据A 等价类①、② 输入正确

3. 无效等价类测试用例

输入数据 测试范围 期望结果
数据B1 等价类③ 条件③输入错误
数据B2 等价类④ 条件④输入错误

条件①;条件②;......单元测试、集成测试、确认测试、系统测试。

五、收尾阶段

为保证软件质量所采取措施:审查、复查、管理、复审、测试。

软件的维护阶段耗费成本最高,软甲工程目的是提高软件的可维护性,减少软件维护的工作量,降低软件系统的成本。

软件维护的目的:满足用户对已开发产品的性能与软件环境不断提高的需求,进而达到延长软件的寿命。

软件维护的分类(数字为所占成本百分比):文章来源地址https://www.toymoban.com/news/detail-501177.html

  • 完善性维护(50%);
  • 适应性维护(25%);
  • 纠错性维护(21%);
  • 其他维护(4%);

到了这里,关于【读书笔记】《软件工程导论》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【软件工程导论】从已考完期末的角度记录软导常考内容

    什么是软件工程?它的目标和内容是什么? 软件工程是一种用科学知识和技术原理来定义、开发、维护软件的一门学科。软件工程是一门工程性学科,目的是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成本,达到要求的软件功能;取得较

    2024年02月11日
    浏览(32)
  • 软件工程概述

    计算机软件 计算机软件指计算机系统中的程序及其文档 程序是计算任务的处理对象和处理规则的描述 任务:以计算机为处理工具的任务都是计算任务 处理对象:数据(如数据、文字、图形、图像、声音等,他们都是表示,而无含义)或信息(数据及有关的含义) 处理规则一般指

    2023年04月21日
    浏览(26)
  • 十年JAVA搬砖路——软件工程概述

    软件工程是一门关注软件开发过程的学科 ,它涉及到软件的设计、开发、测试、部署和维护等方面。软件工程的目标是通过系统化的方法和工具,以确保软件项目能够按时、按预算和按要求完成。 软件生命周期:软件生命周期是指软件从概念到退役的整个过程,包括需求分

    2024年02月10日
    浏览(26)
  • 软件工程笔记001

    2023年9月5日,周二上午 软件工程的目标是成功地开发一个软件: 较低的开发成本 能按时交付软件 开发出来的软件该有的功能都有 开发出来的软件运行效率高 开发出来的软件可靠性高 开发出来的软件易于维护   概念 软件生存周期是指软件从提出开发到报废的过程。 比如,

    2024年02月10日
    浏览(26)
  • 软考笔记——9.软件工程

    软件工程的基本原理: 用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清除的审查、开发小组的人员应少而精、承认不断改进软件工程事件的必要性。 软件工程的基本要素: 方法、工具、过程 软件生存周期:

    2024年02月12日
    浏览(29)
  • 《面向对象软件工程》笔记——1-2章

    “学习不仅是一种必要,而且是一种愉快的活动。” - 尼尔·阿姆斯特朗 软件工程是一门以生产出没有错误、按时并且在预算内交付的满足客户需求的软件为目的的学科。这个定义非常广泛,所以能使用到从数学、计算机科学到管理学、心理学等诸多专业的学科。开发软件的

    2024年02月06日
    浏览(28)
  • 【软考程序员学习笔记】——软件工程

      目录 🍊一、软件存周期 🍊二、软件生存周期模型 🍊三、软件开发方法 🍊四、需求分析 🍊五、内聚和耦合 🍉模块内的独立性--内聚性 🍉模块间的独立性--耦合性 🍊六、软件测试 🍉黑盒测试 🍉白盒测试 🍊七、V模型 🍊八、软件维护 🍊九、软件质量模型 问题定义

    2024年02月12日
    浏览(39)
  • 软考高级架构师笔记-8软件工程

    前文回顾:

    2024年02月11日
    浏览(28)
  • STM32学习笔记(一):简介、软件安装及新建工程

    本文内容参考自以下内容: B站UP主江科大自化协:STM32入门教程,链接:https://www.bilibili.com/video/BV1th411z7sn?spm_id_from=333.337.search-card.all.click 《零死角玩转stm32—f103指南者》、《普中STM32F1xx开发攻略v1.0》 链接:https://pan.baidu.com/s/1DfVTBpOT_JXgvK_AVQCouA?pwd=1024 提取码:1024 1. STM32的基

    2024年01月23日
    浏览(35)
  • 【通义千问】大模型Qwen GitHub开源工程学习笔记(1)-- 使用指南、依赖库和软件

    9月25日,阿里云开源通义千问140亿参数模型Qwen-14B及其对话模型Qwen-14B-Chat,免费可商用。 立马就到了GitHub去fork。 GitHub: GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat pretrained large language model proposed by Alibaba Cloud. 官方的技术资料也下载了,看这里==https://qianwen-res.oss-cn-b

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包