热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

软件工程学习日记(1)----生命周期及几种开发模型

一、软件工程基本概述概括的说,软件工程时指导计算机软件开发和维护的一门工程学科.采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够

一、软件工程基本概述

概括的说, 软件工程时指导计算机软件开发和维护的一门工程学科. 采用工程的概念、原理、技术和方法来开发和维护软件, 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来, 以经济地开发出高质量的软件并有效的维护它, 这就软件工程.


二、软件的生命周期模型

软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成, 每一个时期又进一步分成若干个阶段.

  • 问题定义
  • 可行性研究
  • 需求分析
  • 总体设计
  • 详细设计
  • 编码和单元测试
  • 综合测试
  • 软件维护

三、几大模型优缺点及适用范围

瀑布搜索模型

优点:

  • 有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

缺点:

  • 开发过程一般不能逆转, 否则代价太大;
  • 实际的项目开发很难严格按该模型进行;
  • 客户往往很难清楚地给出所有的需求, 而该模型却要求如此;
  • 软件的实际情况必须到项目开发的后期客户才能看到, 这要求客户有足够的耐心;

适用范围:

  • 用户的需求非常清楚全面, 且在开发过程中没有或很少变化, 开发人员对软件的应用领域很熟悉;
  • 用户的使用环境非常稳定;
  • 开发工作对用户参与的要求很低.

快速原型模型

优点:

  • 可以得到比较良好的需求定义, 容易适应需求的变化;
  • 有利于开发与培训的同步;
  • 开发费用低、开发周期短且对用户更友好.

缺点:

  • 客户与开发者对原型理解不同;
  • 准确的原型设计比较困难;
  • 不利于开发人员的创新.

适用范围:

  • 对所开发的领域比较熟悉而且有快速的原型开发工具;
  • 项目招投标时, 可以以原型模型作为软件的开发模型;
  • 进行产品移植或升级时, 或对已有产品原型进行客户化工作时, 原型模型是非常适合的.

增量模型

优点:

  • 采用增量模型的优点是人员分配灵活, 刚开始不用投入大量人力资源;
  • 如果核心产品很受欢迎, 则可增加人力实现下一个增量;
  • 可先发布部分功能给客户, 对客户起到镇静剂的作用.

缺点:

  • 并行开发构件有可能遇到不能集成的风险, 软件必须具备开放式的体系结构;
  • 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型, 但也很容易退化为边做边改模型, 从而是软件过程的控制失去整体性.

适用范围:

  • 进行已有产品升级或新版本开发, 增量模型是非常适合的;
  • 对完成期限严格要求的产品, 可以使用增量模型;
  • 对所开发的领域比较熟悉而且已有原型系统, 增量模型也是非常适合的.

螺旋模型

优点:

  • 设计上的灵活性, 可以在项目的各个阶段进行变更;
  • 以小的分段来构建大型系统, 使成本计算变得简单容易;
  • 客户始终参与每个阶段的开发, 保证了项目不偏离正确方向以及项目的可控性;
  • 随着项目推进, 客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交互.

缺点:

  • 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识, 在风险较大的项目开发中, 如果未能够及时标识风险, 势必造成重大损失;
  • 过多的迭代次数会增加开发成本, 延迟提交时间.

适用范围:

  • 螺旋模型只适合于大规模的软件项目.

推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 微软小娜企业版发布新版本,提供构建自定义技能的套件
    微软将向企业级市场发布微软小娜企业版的新版本,该版本提供了构建自定义技能的套件,使企业员工可以更方便地使用数字助理。目前该套件仍处于内测期间,只有部分企业可以获得,其他有兴趣的企业需要继续等待。新版本的套件可以帮助员工构建各种自定义技能,如检查休假余额、创建服务凭证等。微软通过让多个开发人员编辑和管理机器人通道注册配置来改善开发者的体验,团队可以自行访问和更改技能注册,满足企业实际需求。微软小娜企业版已经在各个行业得到采用,能够帮助员工专注于优先事项,将非优先处理的任务交给微软小娜处理。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 华为鸿蒙系统官网2.0报名方法及适用设备
    本文介绍了华为鸿蒙系统官网2.0报名的适用设备、报名方法以及三种方式,包括在应用商店下载开发者联盟app、在官网中进行报名、在微信公众号中申请体验HarmonyOS 2.0 手机开发者Beta版本。同时提醒错过测试机会的用户可以等待后续的正式版发布。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
author-avatar
覃维欢
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有