系统学习软件开发方法的步骤,你知道吗?
发表时间:2023-09-26 09:05:22
文章来源:炫佑科技
浏览次数:135
菏泽炫佑科技
系统学习软件开发方法的步骤,你知道吗?
简单介绍
提供该方法的主要目的是提高软件开发质量,降低软件成本。
系统学习软件开发方法的步骤主要包括:
1. 软件生命周期
2、软件开发模型
3、软件复用技术
4.正式的开发方法。
软件生命周期
软件也有其诞生和消亡,是指软件从构思、开发到不再使用的过程。
对于软件生命周期的划分,不同的标准有不同的规定。 例如-88-软件工程国家标准-计算机软件开发规范将软件分为8个阶段,如下:
l 可行性分析与规划
通过可行性研究,确定了开发该软件的必要性。 在可行性分析中,确定软件的目标、范围、风险、开发成本等,制定初步的软件开发计划。
产出:《可行性分析报告》和《软件研发初步计划》
l 需求分析
确定软件的外观
输出“需求规格”
l 外形设计
确定整个软件的技术蓝图,根据需求从技术层面完成设计方案,主要确定系统架构、子系统之间的关系、接口规范、数据库模型、编码规范等。
作为程序员的工作指南,程序员了解系统的内部原理。
输出“概要设计规范”
l 详细设计
轮廓设计的细节。
输出“详细设计说明”
l 研发实施
编码和单元测试。
输出源代码。
l 集成测试
经过仔细组织后,制定了集成测试计划。
输出“测试用例”和“测试报告”
l 确认测试
验证软件是否符合需求并达到预期目标。
l 使用与维护
使用过程中会出现新的需求。 同时,软件维护过程将贯穿整个软件使用过程。
当使用和维护结束后,软件系统就会消亡,软件系统的生命周期也就结束了。
软件开发模型
由于大规模软件开发的时代系统学习软件开发方法的步骤,你知道吗?,需要遵循一定的开发方法才能取得成功。 这些模式化的方法称为开发模型。
瀑布模型
核心思想:从一个特定阶段流向下一阶段。
该模型认为软件开发是一个分阶段的、精确的过程。 主要包括需求分析、总体设计、详细设计、编码与调试、集成测试和系统测试。 同时,每个阶段都会将缺陷反馈给前一个阶段,并由前一个阶段进行纠正。
优点:分割清晰,相界清晰。
每个阶段都会产生完整的文档,因此也被称为后来的面向文档的软件开发模型。
当软件需求明确且稳定时,可以采用瀑布模型逐步开发软件。 否则,需求缺陷会暴露,后期修改成本高昂,开发风险难以控制。
瀑布V模型
使用瀑布模型时出现的缺陷是无法避免的,我们只能努力在交付前发现更多的缺陷。 所以测试就成了*关键的环节。 [测试的质量直接影响当前软件的质量],由此产生的瀑布V模型建议更加重视测试。
1、需求分析完成后,除了进入总体设计外,还指向系统测试。 将生成符合软件需求的系统测试用例。 同时,软件产品是否满足初始要求将在系统测试阶段得到验证。
2.其他的都可以同理推论。
瀑布V模型除了保持瀑布模型阶段文档驱动的特性外,还强调软件产品的验证。
瀑布模型的缺点:
1、后续一切工作都源于需求。 如果要求不正确,一切事情都会出现偏差。
2、后期维护工作量相当繁重,大部分是纠正需求中的问题。
3、瀑布模型难以适应变化。 如果以后需求发生变化,整个系统就得从头开始。
4. 必须完成所有阶段后才能交付给用户。 用户将不得不等待很长时间,并且*终用户可能会发现客户的需求无法得到满足。
5、每个阶段都会产生很多文档,这些文档对客户来说没有意义,但需要大量人力,所以瀑布模型也被称为重载流程。
进化模型
它是几个瀑布的迭代,根据不同的迭代特点,可以进一步深化为螺旋模型、增量模型和原型开发。
螺旋模型
将瀑布模型与进化模型结果结合起来,不仅体现了两种模型的优点,而且还强调了其他模型忽视的风险分析。
螺旋模型由需求定义、风险分析、工程实施和评审4个阶段组成,形成迭代。
在基于瀑布模型的开发阶段之前,引入了非常严格的风险识别、风险分析和风险控制,将项目一个一个地分解为小项目。 每个项目都会识别一个或多个主要风险,直到识别出所有主要风险。 因素已确定。
螺旋模型强调风险分析软件开发,适用于大型、复杂、高风险的系统,及时识别、分析、决策对策。
也有缺点:
1、需要丰富的风险评估经验和专业知识。 在风险较大的项目开发中,如果不及时识别风险,势必造成重大损失。
2. 过多的迭代会增加开发成本并延迟提交时间。
增量模型
主要在系统技术架构成熟且风险较低时使用,主要有两种策略:
1.增量发布:首先做好分析和设计工作,然后将系统分为几个不同的版本,每个版本都是一个完整的系统。 用户可以在短时间内获得系统初始版本并试用。 试用过程中会提供反馈,降低项目风险。 请注意:
(1) 每个版本都是完整且可用的。
(2)版本之间的增量要均匀,比如每月一次。 不能出现一个版本是1个月,下一个版本是4个月的情况。
2.原型方法:每次迭代都会经历一个完整的生命周期。 当用户不清楚自己的需求和技术架构,且未知因素较多时,可以使用原型方法。
(1)*初是针对一般用户需求快速实现的,没有考虑算法的合理性或者系统的稳定性。
(2)主要目的是获得精确的用户需求或验证架构的可用性。
后来,原型方法将被放弃,完整的系统将被重新实现。
建立装配模型
使用软构造开发拱形积木,即构件装配模型。
定义软件功能后,设计各组件的装配结构,将系统划分为一组组件,并明确组件之间的关系。
组件是独立且自成体系的,因此架构的开发也是独立的,组件之间通过接口进行协作。
优势:
1、组件的自包含性使得系统更容易扩展
2.设计良好的组件更容易重用,降低软件开发成本。
3、粒度较小时,可以分成几个不同的组,独立完成。
缺点:
1. 组件设计需要经验丰富的架构师。 设计不良的组件很难发挥组件的优点。
2.重用时,性能会做出让步
3、增加研发人员的学习成本
4.第三方组件质量难以控制
统一开发流程
统一开发过程(UP)是一种软件过程,是一种优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效降低软件开发过程的风险。
UP的2D模型
UP是一个二维模型。 时间主线是横轴上的阶段,主要经历初始化、细化、构建和交付。
纵轴代表不同阶段所做的主要工作。
任何阶段的工作都不是绝对的,都是相互重叠、相互配合的,但每个阶段都有其重点:
初始阶段:*重要的工作是界定系统的范围,明确系统的目的。 这一阶段,业务建模和需求工作成为重头戏。
细化阶段:开发人员需要抽象出软件的逻辑模型并设计软件架构。 此阶段的分析工作是*重要的工程活动。
组件阶段:开发人员完成系统搭建、测试和部署。 实施和测试是此阶段的主要活动。
交付阶段:这个阶段不可避免地涉及到软件系统的重构、修改、测试和部署。
纵轴上,主要工作流程为:业务建模、需求、分析和设计、实施、测试、部署、配置和变更管理、项目管理和环境。 这就是UP的核心工作流程。 它可分为工程活动和管理活动。 业务建模、需求、分析和设计、实施、测试和部署都是工程活动。 配置和变更管理、项目管理和环境称为管理活动。 (环境,也叫环境管理,主要用于定义必要的工具、活动指南、活动流程规范、工作产品模板、基础开发设施等。
UP生命周期
生命周期对应于主要的时间阶段,共有4个里程碑:
1. 目标里程碑对应于启动阶段的结束。 当系统的目标和范围明确时,就达到了这一里程碑;
2.架构里程碑,开发人员需要确定稳定的系统架构;
3、能力里程碑,足够稳定、成熟,已完成Alpha测试;
4. 发布里程碑需要完成系统Beta测试、系统发布和用户培训。
UP的特点
1、每个阶段都可以进行需求、设计等活动;
2、利用不同的迭代方法,可以演化为进化模型或增量模型;
3、更容易控制软件开发的风险;
4、Uncut UP是一个重装过程;
5、在实际应用中,UP可以根据具体问题进行量身定制,从而能够适应各种规模的软件和开发团队。
UP 建筑师的活动
1、建立系统架构模型
2、与需求人员、项目管理人员密切配合
3、细化软件架构
4. 保持整个架构的概念完整性
还需要定义设计方法、设计指南、编码指南、评审设计等。也有人称UP为以架构师为中心的开发模式。
敏捷方法
2001年2月,《敏捷软件开发宣言》发布,指出
1、尽早、持续地向客户交付有价值的软件是开发者*重要的事情;
2.拥抱变化
3. 经常交付工作软件
4、业务人员与开发人员紧密合作
5.满足团队成员的需求并给予他们足够的信任
6. 面对面沟通
7. 如何衡量进展
八、可持续发展
9.不断追求卓越的技术和良好的设计
10、*简单,尽量减少工作量
11.*好的架构、需求和设计来自自组织团队
12、团队应该定期总结如何提高效率,然后相应地调整自己。
基于上述声明,市场上总共提出了AD、AM、ASD、FDD、DSDM、LSD、Scrum、TDD、XP等11种开发方法。
*常用的是XP(极限编程)。
极限编程
XP是*成熟的一种。 XP是一种轻量级、高效、低风险、灵活、可预测、科学、有趣的软件开发方法。
1、在更短的时间、更早的时间内提供具体、持续的反馈信息;
2、迭代规划,快速初步形成总体规划
3.依靠自动化测试程序来监控开发进度
4、依靠语言沟通、测试和源程序进行沟通
5、提倡持续进化设计
6. 依赖开发团队内部的密切协作
7、尽量在程序员的短期利益和项目的长期利益之间取得平衡。
它由四部分组成:价值观、原则、实践和行为。
1. 四大价值观
XP的核心是它对四个价值观的总结:沟通、简单、反馈和勇气。
1、沟通:项目中的很多问题都是由于开发人员缺乏沟通而产生的,因此要求团队成员有持续、不间断的沟通。 鼓励大家口头沟通,通过沟通解决问题,提高效率。
2、简单:建议用够用,即尽可能简单。
3、反馈:开发者应该重视反馈,通过持续、清晰的反馈来暴露软件状态问题。
4.勇气:你需要有勇气面对快速发展和可能的再发展。
2. 12个*佳实践
XP 中集成了 12 条*佳实践。
1、规划游戏:首先快速制定一个大纲设计,然后随着细节的清晰逐渐完善规划。 结果是一组用户故事和一两次后续迭代的概要设计;
2、小发布:“持续集成,小步快跑”。 每个发布的版本都应该尽可能小。 前提是每个小版本都有足够的商业价值,值得发布。
3.隐喻:寻求共识、发明共享词汇、创新武器和描述结构。
4.简单的设计:我认为设计不应该在编码之前一次性完成。
5.先测试
6、重构:在不影响功能的情况下改进代码的实现技术;
7. 结对编程:团队协作、知识交流和共享
8. 集体代码所有权
9.持续集成
10.每周工作40小时
11. 现场客户
12. 编码标准
功能驱动开发
FDD方法也是一种迭代开发模型。 FDD的每一步都强调质量,持续交付可运行的软件,并以*少的开发提供准确的项目进度报告和状态信息。
1、FDD的角色定义
三大要素:人、流程和技术,6个关键角色:
1、项目经理:
2. 首席建筑设计师
3、开发经理
4. 主程序员
5.程序员
6. 领域专家
2、核心流程
1、制定总体对象模型:业务建模阶段强调对整个系统进行完整的面向对象建模,需要领域专家和首席架构师相互配合完成总体对象模型;
2、构建功能列表:所谓功能就是指对客户有价值的一个小功能。 行动、结果和目标用于描述该功能。 特性的粒度*好在两周内掌握,以便梳理系统需求。 。
3.规划功能开发:项目经理构建功能列表以及功能之间的依赖关系来规划和安排开发任务;
4、功能设计:主程序员与功能团队进行详细设计,为后续搭建做准备;
5. 构建功能:实施
3. *佳实践
构成 FDD 的*佳实践包括:领域对象建模、基于功能的开发、类的个人所有权、组建功能团队、审查、定期构建、配置管理和结果可见性。
软件复用软件复用
使用现有的软件元素构建新的软件系统,这些系统可以是软件产品、源程序、文档甚至领域知识。 软件复用可以提高软件开发效率、降低软件开发成本、缩短软件开发周期、提高软件质量。
复用主要包括:源代码复用、架构复用、应用框架复用、业务构建复用、文档和流程复用、软件组件复用、软件服务复用。
组件技术
两个重要特征:独立和可重复使用。
形式化方法
它是指使用严格的数学方法和形式化规范语言来准确地定义软件系统。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等