软件工程的介绍

本文详细介绍了软件工程的各个方面,包括软件工程的基本原理、过程模型、需求分析、系统设计、编码、测试、运行维护及项目管理。内容涵盖软件生命周期的各个阶段,如可行性分析、需求获取、系统设计、测试策略等,还探讨了软件开发的不同模型,如瀑布模型、敏捷方法。文章强调了软件质量和风险管理的重要性,并介绍了软件质量保证和度量方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件工程

  • 这一章的内容其实还是蛮多的,大概一共有10个章节,分别是下面的一些内容,但是呢,这一章的内容其实是比较偏向文科类的,也就是说,记忆的内容其实占有很大的篇幅,在该考试科目当中呢,其实也是主要影响上午题部分的选择题的考察,基本的分值呢,在10分左右,分值占比其实还是比较大的,对于下午的内容呢,其实一般是不会太涉及的,所以这一部分的内容还是要认真看一下的
    在这里插入图片描述
软件工程的概述
  • 软件工程指的是应用计算机科学,数学以及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产率,提高软件质量,降低软件成本,因为其实在很早期的时候,我们在去做软件的时候,我们其实是各做各的,人很人之间的交流不多,就会导致软件的生产率低,问题多,所以要用工程化去解决早期在软件开发中所遇到的问题,从而,提高软件生产率和质量,降低软件成本
计算机软件
  • 计算机软件指的是计算机系统中的程序和文档,注意一下,软件不止是代码,不只是程序,还包括有和程序相关的文档,比如说需求文档,设计文档,测试文档,维护文档之类的,这些其实都是软件的一部分
  • 软件的分类:按照软件的应用领域,将计算机的软件分为以下的10类,分别是,系统软件,应用软件,工程/科学软件(比如说我们常见的matlab),嵌入式软件(微波炉按键的控制),产品线软件,Web应用软件,人工智能软件,开放计算,网络资源,开源软件
软件工程的基本原理
  • 我们软件的整个的一个开发的过程,我们要去分一些阶段,比如说需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,测试阶段之类的,把这些阶段分开,每一个阶段都有自己的生命周期和计划,单独管理,这样我们的软件效率其实就会更高
  • 评审阶段,其实也是进一步查看一下我们的这个系统是否有一些缺陷之类的
  • 产品控制其实就是需要对产品的质量进行一个把关的操作
  • 现代程序技术,其实就是利用一些高级程序设计语言,一些面向对象的语言之类的
  • 审查其实就是一个输入对应唯一的输出,不能说每一次的输出结果是不一致的,这个显然是不可以的
    在这里插入图片描述
软件的生存周期
  • 一个软件或者产品系统要经历:孕育,诞生,成长,成熟,衰亡等阶段,一般就称为软件生存周期,软件生存周期一般包括以下七个方面:可行性分析与项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护
  • 可行性分析与项目开发计划:这一个阶段主要就是确定软件的开发目标和可行性(技术上是否可行,成本上是否可行,时间上是否可行),产生的文档有可行性分析报告,项目开发计划
  • 需求分析:确定软件系统要做什么,确定系统的功能,性能,数据和界面,从而确定逻辑模型,产物:数据流图,数据字典,需求说明书
    在这里插入图片描述
  • 概要设计也称为总体设计,要去设计软件的结构,明确每一个模块的功能都是什么
  • 概要设计完成了之后,我们就要进行详细的设计了,具体模块的功能就要在这个阶段进行描述了,比如说具体的算法该怎么做之类的
  • 编码,就是写代码,翻译的过程
    在这里插入图片描述
  • 最后是测试和维护
  • 测试是交给别人来进行测试的,产生测试用例和测试报告
  • 软件维护是软件生存周期中时间最长的阶段
    在这里插入图片描述
软件的过程
  • 软件过程的能力成熟度模型
  • 能力成熟度模型CMM:初始级:项目的完成仅仅依赖于个人;可重复级:建立了一个基本的项目管理过程,这个过程用来跟踪项目的费用,进度和功能特性;已定义级,就是说相关的过程已经文档化和标准化了;已管理级:制定了详细的度量标准;最高级别:优化级
    在这里插入图片描述
  • 能力成熟度模型集成CMMI
  • 过程不可预测且缺乏控制 ,其实就是比较乱
    在这里插入图片描述
  • 一般来说是会给描述,让选阶段,这个其实是比较好选的,因为其实都是有对应的关键字的
    在这里插入图片描述
软件过程模型
  • 软件过程模型习惯上也被称为软件开发模型,是软件开发全过程,活动和任务的结构框架
  • 典型的软件过程模型有:瀑布模型,增量模型,演化模型(原型模型,螺旋模型),喷泉模型,基于构件的开发模型,形式化放过发模型和统一过程模型,要求给出某一个模型的特点,我们能够选择出来这个是什么模型
  • 瀑布模型:线性顺序分别为—需求分析,设计,编码,测试,运行和维护;以文档作为驱动,适合软件需求很明确的软件项目的开发
    在这里插入图片描述
  • 增量模型:将需求分段为一系列的产品,每个增量可以分别开发,比如说,做网站,就可以先把登录模块作为一个增量去进行开发,开发完成之后交给管理者,看是否符合诉求
  • 首先是做增量,不是做一个完整的系统,所以说第一个可交付的版本成本和时间其实都是比较小的
    在这里插入图片描述
  • 演化模型:原型模型和螺旋模型
  • 原型模型:适用于需求不够明确的情况,需求经常变化,并且规模没有没有那么大,那么复杂的项目中
  • 螺旋模型:螺旋模型将瀑布模型和原型模型进行了一个结合,螺旋模型强调风险分析,与瀑布模型相比,支持用户需求的动态变化,落星模型适合用于庞大,复杂,且高风险的系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值