软件工程的基础

news/2024/10/30 13:38:31/
  1.  软件危机
  2. 软件工程
    软件工程是将系统化的,严格约束的,可量化的方法应用于软件的开发,运行和维护,将工程应用于软件

     
  • 软件工程的三个要素:方法,工具,过程
  • 软件的生命周期,是指从从软件的产生到报废的生命周期包括:
  • 问题定义,可行性分析,需求分析,总体设计,详细设计,编码,测试,运行,维护。
  • 软件开发模型:瀑布模型,增量模型,螺旋模型,喷泉模型,智能模型,v模型,快速应用开发模型,构建组装模型,敏捷方法,和统一过程。
     

  1. 瀑布模型(生命周期法)
    6个阶段:软件计划,需求分析,软件设计,程序编码,软件测试,运行维护
    瀑布模型的优点为项目提供了按阶段划分的检查点;完成当前阶段,只需要关注后面阶段;提供了一个模板,此模板使得分析,设计,编码,测试和支持有共同的指导模型。
    瀑布模型的缺点:
    各个阶段产生大量文档,增加了工作量;由于开发方式是线性的增加了开发风险;不适应用户的需求变化;需要明确的目标或者很少变更的项目

  2. 快速原型模型:是利用原型辅助软件进行开发的一种新思想(沙盘)

    原型分类:
    探索型:主要在需求分析阶段
    实验型:主要在设计阶段

  3. 演化原型:在保证最主要需求,然后根据用户的意见进行改进。
    优点


  4.  增量模型增量模型的优点:人员灵活分配,前期投入小                                                                                             用户可以直观的感受项目进展,即使使用产品功能                                                         有利于风险的把控

  5. 螺旋模型:
    瀑布模型和演化模型的结合,并增加了风险分析

    螺旋模型的优点:
                                    设计灵活
                                    以小的分段系统封来构建大系统
                                    用户始终掌握项目的最新信息 ,保证项目的准确性
    螺旋模型的缺点:
                                   必须具有相当丰富的风险评估能力,经验,未能标识风险,势必造成重大损失
                                    过多的迭代次数会增加开发的成本,延迟提交时间

     


     
  6. 喷泉模型:
    是以用户需求为动力的,以对象为驱动的模型

  7. 基于构建的开发模型:
    将整个系统模块化,在一定构建模型的支持下重复使用构建库中的一个或多个软件构建,通过组合手段实现高效化,高质量完成系统的开发。

    优点:

    缺点:

  8. 快速应用开发模型:
    是一个增量型的开发软件模型,强调时间极短。

  9. 敏捷开发:
    以用户的需求为核心,采用迭代,循序渐进的方法进行软件开发
    诞生了敏捷宣言:

 敏捷开发方法

敏捷开发原则:


http://www.ppmy.cn/news/63019.html

相关文章

Databend 开源周报第 92 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 在 WHERE 子句中…

每天一道算法练习题--Day22 第一章 --算法专题 --- ----------最大公约数

关于最大公约数有专门的研究。 而在 LeetCode 中虽然没有直接让你求解最大公约数的题目。但是却有一些间接需要你求解最大公约数的题目。 如何求最大公约数? 定义法 def GCD(a: int, b: int) -> int:smaller min(a, b)while smaller:if a % smaller 0 and b …

基于Linux系统在线安装RabbitMQ

一、前言 二、Erlang下载安装 三、RabbitMQ下载安装 三、RabbitMQ Web界面管理 一、前言 本次安装使用的操作系统是Linux centOS7。 二、Erlang下载安装 在确定了RabbitMQ版本号后,先下载安装Erlang环境。下面演示操作过程: Erlang下载链接&#…

centOS7忘记登录密码该如何重新修改登录密码

文章目录 前言一、重新修改登录密码1.1、第一步1.2、第二步1.3、第三步1.4、第四步1.5、第五步1.6、第六步1.7、第七步1.8、第八步 前言 忘记密码并不可怕,只要学会方法,密码随时都可以找回。 一、重新修改登录密码 1.1、第一步 当打开centOS7之后忘记…

OpenCV中的图像处理3.7-3.8(五)边缘检测、图像金字塔

目录 3.7 边缘检测目标理论OpenCV中的Canny边缘检测其他资源练习 3.8 图像金字塔目标理论使用金字塔进行图像混合其他资源 翻译及二次校对:cvtutorials.com 编辑者:廿瓶鲸(和鲸社区Siby团队成员) 3.7 边缘检测 目标 在本章中&a…

【C++从0到王者】第二站:类和对象(中)构造函数与析构函数

文章目录 一、C的六个默认成员函数二、构造函数和析构函数1.构造函数①构造函数的概念②构造函数的特性 2.析构函数①析构函数的概念②析构函数的特性 3.构造函数的其他特性4.构造函数总结5.一些不写构造函数的样例6.析构函数的其他特性 一、C的六个默认成员函数 如果一个类中什…

通过SSH隧道安全消费Kafka数据

一.背景 由于我们有个业务在阿里云部署了Kafka,但是想直接在本地IDC机房服务器直接通过公网消费Kafka进行业务处理。这个本来也不是什么难事,阿里云把9092默认端口打开运行访问即可,也不不值得再写这篇博客了。 这个事情让人特别关注的一个主…

ELK single deployment

版本信息: apache-zookeeper-3.7.1-bin.tar.gzkafka_2.12-2.8.2.tgzkibana-7.12.0-linux-x86_64.tar.gzelasticsearch-7.12.0-linux-x86_64.tar.gzlogstash-7.9.2.tar.gz 一. zookeeper配置启动2181 前置条件: 1.安装jdk 2.添加默认配置文件zoo.cfg 二. 启动kafka9092 …