软件工程之软件开发方法、软件工具和开发环境
软件开发方法
软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
结构化方法
结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
结构化分析:是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。
结构化设计:根据模块独立性准则、软件结构优化准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。
结构化程序设计:使用3中基本控制结构构造程序,任何程序都可以由顺序、选择和重复3种基本控制结构构造。
结构化方法总的指导思想是自顶向下、逐层分解,它的基本原则是功能的分解与抽象。适合于数据处理领域的问题,不适合解决大规模的、特别复杂的项目,且难以适应需求的变化。
Jackson方法
Jackson方法是一种面向数据结构的开发方法。
JSP(Jackson Structure Programming)方法是以数据结构为驱动的,适合于小规模的项目。JSP方法首先描述问题的输入/输出数据结构,分析其对应性,然后推出相应的程序结构,从而给问题的软件过程描述。
JSD方法是JSP方法的扩展,是一个完整的系统开发方法。首先建立现实世界的模型,再确定系统的功能需求,对需求的描述特别强调操作之间的时序性。它是以事件作为驱动的,是一种基于进程的开发方法,所以适用于时序特别较强的系统,包括数据处理系统和一些实时控制系统。
原型方法
原型方法比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。
面向对象方法
面向对象方法正是以对象作为最基本的元素,它也是分析问题、解决问题的核心。面向对象方法包括面向对象分析、面向对象设计和面向对象实现。
UML是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,现已成为面向对象建模的工业标准。
敏捷方法
极限编程(XP)
XP是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。
4大价值观:
- 沟通
- 简单性
- 反馈
- 勇气
5个原则:
- 快速反馈
- 简单性假设
- 逐步修改
- 提倡更改
- 优质工作
12个最佳实践:
- 计划游戏:快速制定计划、随着细节的不断变化而完善。
- 小型发布:系统的设计要能够尽可能早地交付。
- 隐喻:找到合适的比喻传达信息。
- 简单设计:只处理当前的需求,使设计保持简单。
- 测试先行: 先写测试代码,然后再编写程序。
- 重构:重新审视需求和设计,重新明确地描述他们以符合新的和现有的需求。
- 结对编程、集体代码所有制、继续集成:可以按日甚至按小时为客户提供可运行的版本。
- 每周工作40小时、现场客户和编码标准。
水晶法:
水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论。
并列争求法:
并列争求法使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。
自适应软件开发(ASD)
ASD有6个基本的原则:
- 有一个使命作为指导;
- 特征被视为客户价值的关键点;
- 过程中的等待是很重要的,因此“重做”与“做”同样关键
- 变化不被视为改正,而是被视为对软件开发实际情况的调查。
- 确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求。
- 风险也包含其中。
软件工具
用来辅助软件开发、运行、维护、管理和支持等过程中的活动的软件称为软件工具。
软件开发工具:
- 需求分析工具
- 设计工具
- 编码与排错工具
- 测试工具
软件维护工具:
- 版本控制工具
- 分档分析工具
- 开发信息库工具
- 逆向工程工具
- 再工程工具:主要集中在代码重构,程序结构重构和数据结构重构等。
软件管理和软件支持工具:
- 项目管理工具
- 配置管理工具
- 软件评价工具
软件开发环境
软件开发环境指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。
软件开发环境的特征:
- 环境的服务是集成的。
- 环境应支持小组工作方式,并为其提供配置管理
- 环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、调试和文档等。
集成型开发环境是一种把支持多种软件开发方法和开放模型的软件工具集成在一起的软件开发环境。这种环境应该具有开放性和可剪裁型。开放性为环境外的工具集成到环境中来提供了方便,可裁剪性可根据不同的应用和不同的用户需求进行剪裁,以形成特定的开发环境。
结束
我是衡钊清,北漂中的一员。
人生格言:[ 做一个决定,并不难,难的是付诸行动,并且坚持到底 ]
今天的苦果,是昨天的伏笔,当下的付出,才是明日的花开!加油!!!加油!!!
软件工程之软件开发方法、软件工具和开发环境相关推荐
- 维护人员工具_软件项目管理:软件工具与开发环境相关知识介绍
1.软件工具相关名词概念 软件工具:用来辅助软件开发.运行.维护.管理等过程中的活动软件. 软件开发环境:是指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成. 软件工具集:包括支持软件开 ...
- Linux下plink软件使用方法,#软件工具#解密GWAS的利器--Plink 使用解析
GWAS全基因组关联分析,近年来一直为研究的热点,不管是研究复杂疾病或是遗传育种,均有广泛的用途.但是GWAS的数据动辄上千的样本数据,如何对这庞大的数据进行分析?这里我们介绍一个强大的工具--PLI ...
- 软件的复用技术及开发方法
软件的复用技术及开发方法 2.1软件的复用技术 软件复用是指在开发新的软件系统时,对已有的软件或软件模块重新使用,该软件可以是己经存在的软件,也可以是专门的可复用组件[8].软件可复用性的高低影响到生 ...
- 软件工程——快速掌握面向对象开发方法
在<软件工程--快速掌握结构化开发方法>一文中,我们讲述了如何用结构化开发方法开发一个简单的项目案例,并重点讨论了在结构化分析和结构化设计阶段使用事件.数据流图模型.数据字典.ER模型.结 ...
- 软件的基于生命周期开发方法
软件的基于生命周期开发方法 早期软件开发处于一种无序状态,经历软件危机之后,开始采用系统工程方法论指导开发,根据软件开发的的生命周期将整个开发划为5个阶段(规划阶段.分析阶段.设计阶段.实施阶段. ...
- 软件工程总结——传统软件开发方法与面向对象开发方法的比较
软件开发是一门技术,它需要相应的理论.技术.方法.手段和工具来支持.就软件开发技术的发展而言,主要经过了结构化开发方法和面向对象的软件开发方法. 传统软件开发: 结构化开发方法: 结构化开发方法是最早 ...
- 敏捷开发:5种主流开发方法介绍
一.极限编程 极限编程(ExtremeProgramming,简称XP)是由KentBeck在1996年提出的.极限编程是一个轻量级的.灵巧的软件开发方法:同时它也是一个非常严谨和周密的方法.XP是一 ...
- 小型团队快速开发方法
小型团队快速开发方法 Jay 这篇文章写的时候,正处于我探索小型团队快速开发方法的初期,虽然看了不少资料,但终究没有真正把文章中的开发方法真正实现过.因此,本文是我对小型团队快速开发方法的计划,并没 ...
- 信息系统开发与管理【三】之 系统开发方法概述
感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:信息系统开发与管理[二]之 管理信息系统的基本知识 文章目录 一.管理信息系统开发的基本问题 1.系统开发具备的条件 2.系统开发前的准备工作 3. ...
- 传统序列式软件开发方法的缺点,以及迭代开发方法的选择
程读书笔记 大部分公司仍使用传统瀑布模型(或序列式开发方法)进行开发 我所工作过的公司,以及我身边的朋友工作所在的公司,再加上招聘时从求职者那里所了解到的其他一些公 司的开发过程, 基本上都是使用传统 ...
最新文章
- 梳理一下我理解的aop
- TCP/IP总结(3)数据包
- 【NLP】Prompt-Tuning这么好用?
- 运用El表达式截取字符串/获取list的长度
- Windows Phone 7 不温不火学习之《Expression Blend 创建渐变效果和创建Storyboard动画》...
- idea报错 IDEA:clear read-only status
- ASP.NET之MVC 微信公众号授权给第三方平台的技术实现流程一(获取第三方平台access_token)...
- 汤国安mooc实验数据_用漂亮的汤建立自己的数据集
- 去掉txt文本某些字符
- python 处理 MovieLens 数据
- 插值法综合实例用matlab解决,matlab 插值法
- 一线协议—ds18b20
- Linux系统进程优先级——计算方式
- 键盘部分失灵/被锁定解决办法
- FFmpeg视频截取第一帧
- [SSL_CHX][2021-08-20]幸运数字们
- 如何合并多个PDF文件?这几个小妙招快来码住吧
- 用HTML5绘制的一个星空特效图
- 华为鸿蒙系统穿戴app,华为应该如何盘活鸿蒙系统?
- 【Unity3D 灵巧小知识点】 ☀️ | 求解 两个向量的夹角度数