第一章 软件工程概论

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

第一章 软件工程概论

1. 软件危机

第一章 软件工程概论

1.1.1 软件危机的介绍

  1. 对软件开发成本和进度的估计常常很不准确
  2. 用户对完成的软件系统不满意的现象经常发生;
  3. 软件产品的质量往往靠不住;
  4. 软件常常是不可维护的;
  5. 软件通常没有适当的文档资料
  6. 软件成本在计算机系统总成本中所占的比例逐年上升;
  7. 软件开发生产率提高的速度跟不上计算机应用的发展趋势

1.1.2 产生软件危机的原因

与软件本身特点有关
  1. 开发期间没有发现错误
  2. 程序规模上升,复杂性逐渐上升
  3. 软件开发过程相对困难
软件开发与维护的方法不正确有关
  1. 忽视需求分析
  2. 忽视软件维护

1.1.3 消除软件危机的途径

  1. “软件就是程序”的错误观念
  2. 软件开发需要的协作性
  3. 合理选择开发工具
  4. 探索更好更有效的技术和方法

例题

第一章 软件工程概论

第一章 软件工程概论
第一章 软件工程概论
第一章 软件工程概论

软件工程

  1. 1968年NATO会议:
    软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。
  2. 1993年IEEE:
    软件工程是把系统的、 规范的、 可度量的途径应用于软件开发、 运行和维护过程;

1.2.1 软件工程的介绍

  1. 大型程序构造
  2. 控制复杂性
  3. 软件经常变化
  4. 开发软件效率非常重要
  5. 和谐的合作
  6. 用户需求
  7. 由具有一种文化背景的人替具有另一种文化背景的人创造产品

1.2.2 软件工程的基本原理

  1. 分阶段生命周期严格管理
  2. 阶段评审
  3. 严格产品控制
  4. 采用现代程序设计技术
  5. 结果能清楚地审查
  6. 开发小组的人员应该少而精
  7. 承认不断改进软件工程实践的必要性

1.2.3 软件工程方法学

1. 传统方法学

传统方法学也称为生命周期方法学或结构化范型。

2. 面向对象方法学

把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。

特点:
降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。面向对象方法特有的继承性和多态性,进一步提高了面向对象软件的可重用性。

1.3 软件生命周期

软件生命周期的8个阶段

  1. 问题定义
  2. 可行性研究
  3. 需求分析
  4. 总体设计(概要设计)
  5. 详细设计
  6. 编码与单元测试
  7. 综合测试
  8. 维护

第一章 软件工程概论

第一章 软件工程概论
软件定义期,包括问题定义、可行性研究、需求分析;软件开发期,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段。
第一章 软件工程概论

第一章 软件工程概论

1.4 软件过程

软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目标:开发出客户满意的软件

生命周期模型规定了把生命周期划分成哪些阶段及各阶段执行顺序,也叫过程模型。

1.4.1 瀑布模型

第一章 软件工程概论
推迟实现的观点
质量保证的观点

优点

• 迫使开发人员采用规范的方法;
• 每个阶段必须提交的文档;
• 每个阶段的产品都必须经过质量验证。

缺点

• 需求难开始完全确定;
• 文档驱动、风险大;
• 灵活性差,一旦修改损失惨重;
• 不支持软件复用和集成技术。

瀑布模型的适用范围
  1. 需求稳定、变化小且开发人员能够一次性获取全部需求的项目;
  2. 软件开发人员有丰富经验;
  3. 软件项目本身的风险很低。

瀑布模型适用于功能、性能明确,完整无变化的软件系统开发,比如 操作系统、财务系统等。

第一章 软件工程概论

1.4.2. 快速原型模型

快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。
展示待开发软件的部分功能和性能,用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求,开发人员据此对软件进行修改完善.

特点

不带反馈环开发的系统能够满足用户真实的需求

优点

• 快速构建、容易修改;
• 取代规格说明阶段,容易适应需求的变化;
• 用户参与;
• 能够处理模糊需求

缺点

• 快速构建(弱功能);
• 资源规划和管理较为困难;
• 对开发环境要求高

适用范围
  1. 对现有软件产品进行升级或功能完善
  2. 开发人员和用户交流困难,用户需求不完全或不准确需求获取困难
  3. 开发人员对技术熟悉或把握性不大
  4. 具有支持快速开发的工具
    第一章 软件工程概论

1.4.3. 增量模型

把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

特点

系统模块化和构建化

优点

• 能在较短时间内向用户提交可完成部分工作的产品;
• 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品
• 开发顺序灵活。

缺点

• 在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
• 软件体系结构必须是开放的

使用范围

• 待开发系统能够被模块化
• 软件产品可以分批次交付
• 软件开发人员对应用领域不熟悉,或一次性开发的难度很大
• 项目管理人员把握全局的水平很高

1.4.4 螺旋模型

可把它看作在每个阶段之前都增加风险分析快速原型模型

特点

• 风险驱动

优点

• 风险分析
• 质量保证

缺点

• 风险分析
• 对开发人员要求高。

适用范围

螺旋模型适用于复杂的、高风险大型软件项目

1.4.5. 喷泉模型

喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。“喷泉”这个词体现了面向对象软件开发过程迭代无缝的特性。

迭代

实现软件的每项功能反复求精的过程,是从模糊到清晰的开发过程。不知道用户需要什么

特点

• 迭代
• 无间隙

优点

• 提高软件项目开发效率;
• 节省开发时间

缺点

• 难以管理项目。

适用范围

喷泉模型适用于面向对象的软件开发。
第一章 软件工程概论

1.4.6. Rational统一过程

RUP是Rational司提出的基于UML一种面向对象软件开发过程模型。它解决了螺旋模型的可操作性问题,采用迭代和增量的开发策略,以用例为驱动,集成了多种软件开发过程模型的特点。
第一章 软件工程概论

迭代式开发

RUP重复一系列组成软件生命周期的循环。每次循环都经历一个完整的生命周期,每次循环结
束都向用户交付产品的一个可运行的版本。

特点

• 可裁剪定制的软件开发过程模型;
• 为如何适用项目提供了指导;
• 能够有效提高开发效率;

适用范围

适用于大型软件项目。

1.4.7.敏捷过程与极限编程

  1. 敏捷过程
    具有高效、快速响应变化的开发过程。敏捷开发宣言由4个简单的价值观组成。
  2. 极限编程
    第一章 软件工程概论

小总结

第一章 软件工程概论文章来源地址https://www.toymoban.com/news/detail-476360.html

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

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

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

相关文章

  • 【计算机组成原理】第一章 计算系统概论

    第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 一、电子计算机从总体上来说分为两大类。 电子模拟计算机 “模拟”就是相似的意思。 模拟计算机的特点是数值由连续量来表示

    2024年02月04日
    浏览(48)
  • 数据库系统概论(第五版)——第一章参考答案

    第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 ( 1 )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系

    2024年01月23日
    浏览(32)
  • 【软件工程】《软件工程》期末复习提纲

    《软件工程》期末复习提纲 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 小题参考 大题参考 1.在下列选项中,( )不是软件的特征。 A.系统性与复制性         B.可靠性与一致性 C.抽象性与智能性  

    2024年01月17日
    浏览(35)
  • 【软件工程】软件工程习题及答案

    软件工程是一种系统化、规范化的方法论,用于开发、维护和管理软件项目。它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试、部署、维护和项目管理等。 软件工程通过应用科学原理、工程技术和管理方法,以及适应性的实践,旨在提高软件开发的效率、质

    2024年02月09日
    浏览(57)
  • 【软件工程】软件工程期末考试试卷

    瀑布模型把软件生命周期划分为八个阶段 :问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段: 计划阶段、开发阶段和( C) 。   A、详细计划 B、可行性分析  C 、 运行阶段  D、 测试与排错

    2024年02月09日
    浏览(39)
  • 【软件工程】软件工程期末考试复习题

    软件工程期末考试试题及参考答案 一、单向选择题 1、软件的发展经历了(D)个发展阶段。 一 二 三 四 2、需求分析的任务不包括(B)。 问题分析 系统设计 需求描述 需求评审。 3、一个软件的宽度是指其控制的(C)。 模块数 层数 跨度 厚度 4、当模块中包含复杂的条件组

    2024年02月10日
    浏览(39)
  • 【软件工程】山东大学软件工程复习提纲

    涵盖所有考点,复习绝对高效,点赞+留邮箱获取pdf版本 本提纲可以完全摘抄,考试命中率100%,先上考试带的A4纸: 1. 软件工程三要素 方法:为软件开发提供了“如何做 ”的技术,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计等; 工具:为软件工

    2024年02月13日
    浏览(31)
  • 【软件工程】为什么要选择软件工程专业?

    个人主页:【😊个人主页】 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。就当下主流趋势来看,其有着无限的未来。接下来我将以六个方面来谈谈我对软件工程专业的看法: 软件工程是一门研究用工程化方法构建和维护有效、实用和高质

    2023年04月19日
    浏览(35)
  • 【软件工程】自动化测试保证卓越软件工程能力(3)

    对照目标系统,如下:  给出自动化测试平台目标如下: Case level Case brief Report send to OVERALL User 1 - Process - Customer 1 Boss Level 1 User 1 - Process - Customer 1 User 1 - Process - Customer  2 User  2  - Process - Customer 1 ... Manager, Some users, Developers, Testers Level 2 User 1 - Igeress - Process - Router - Sender 1

    2024年02月04日
    浏览(46)
  • 经典软件工程复兴?大模型驱动的软件工程实践标准化

    简单来说,本文探讨了大模型驱动的软件工程实践标准化,以及如何将需求和设计规范化为 DSL 格式。通过这种方式,可以让 AI 更自动化、高效地编写代码。 随着大语言模型在软件开发中的应用越来越广泛,传统的软件工程实践开始被重新关注和提及。在诸如于编写清晰的文

    2024年02月12日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包