软件工程要点 第一部分 软件过程

*爱你&永不变心* 提交于 2020-02-21 07:19:28

介绍软件工程之前我们得说明一个问题,什么是软件?软件就是应用程序?就是一堆代码?首先来看看软件三大特征:

  1. 软件是设计开发的,并不是生产制造的,他不是工厂流水线。
    
  2. 软件不会被消耗
    
  3. 软件是根据客户实际需求定制的
    

所以软件本质就是一个特定的指令的集合,来满足预期功能需求。

而软件则设计的领域有工程/科学软件,嵌入式软件,产品线软件,web应用软件,开放计算,人工智能,网络资源,开源软件等

还有些软件叫做遗留软件,就是开发时间距现很久的!!也就是旧软件,而这些软件一般都是性能差。所以这些软件要想在现在还有一定的生存空间,那么就要升级或者重构,甚至于重新开发。

Webapp的特性

  W3不光只有html,java,asp,php都属于w3的,webapp是独特的软件类型,但是绝大多数的webapp逃不过以下属性
  1. 网络密集性
    
  2. 并发性
    
  3. 无法预知的负载量
    
  4. 性能
    
  5. 可用性
    
  6. 数据驱动
    
  7. 内容敏感性
    
  8. 持续演化
    
  9. 即时性
    

10.安全性

11.美观性

说完了软件,我们接谈谈软件工程,在21世纪得今天我们做一个软件产品,有如下几个事实:

  1. 软件已经融入我们生活
    
  2. 个人、企业和政府的信息技术需求日益复杂,
    
  3. 对特定的用感价值会增加软件的寿命
    

所以软件要工程化,那么软件工程到底是什么?软件工程的定义如下:

将系统化的、规范的、可量化的方法使用到软件的开发上。

软件工程是一种层次化的技术,层次如下:
在这里插入图片描述
那么“怎么做”是一个问题,软件工程方法有一套基本原则,而为了过程和方法半自动化或自动化,软件工程工具也就产生。

说到软件工程,我们不得不提软件过程,软件过程,及软件工作产品创造时,一系列活动、任务的集合。一般软件过程有一下几个框架:

  1. 沟通
    
  2. 策划
    
  3. 建模
    
  4. 构建
    
  5. 部署
    

当然再实施的过中也要控制风险一般有以下几点:软件项目跟踪和控制、风险管理、软件质量保证、技术评审、测量、软件配置管理、可复用管理。

在软件工程的过程中,不同的项目,过程也不相同。但是一般都会遵循几个原则:1、存在价值,2、保持简洁。3、保持愿景,4、关注使用者,5、面向未来,6、计划复用,7、认真思考。

软件过程也有自己的模型分为两大类:惯用过程模型和专用过程模型

1、 惯用过程模型:

1.1、 瀑布类型
在这里插入图片描述
1.2、 增量模型:
在这里插入图片描述
1.3、 演化过程模型

1.4、 协同模型

2、专用过程模型

2.1、基于构件的开发

2.2、形式方法模型

2.3、面向方面的软件开发

3、统一过程:统一建模语言(UML)

4、个人建模:每个软件开发人员都采取某种过程开发软件

5、团队建模:

6、过程技术(疑问点?过程技术就是使用软件规划软件工程?

过程技术到底是什么样的技术?过程技术要怎合理的实施?)

敏捷开发

一、 什么是敏捷?

有效的响应变化、更便利的团队结构和协作态度、

二、 敏捷及变更的成本

​三、 什么是敏捷过程?

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

1、 敏捷原则:

1 .我们最优先要做的是通过尽早、持续地交付有价值的软件来使客户满愈。

2 .即使在开发的后期,也欢迎需求变更。敏捷过程利用变更为客户创造竞争优势。

3 .经常交付可运行软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。

4 .在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

5 .圈绕有积极性的个人构建项目。给他们提供所斋的环吮和支持,并且信任他们能够完成工作。

6 .在团队内部,最富有效果和效率的信息传递方法是面对面交谈。

7 .可运行软件是进度的首要度 t 标准。

8 .敏捷过程提倡可持续的开发速度。责任人( sPonsor )、开发者和用户应该能够长期保持稳定的开发速度。 9 .不断地关注优秀的技能和好的设计会增强傲捷能力。 10 .简单(使不必做的工作最大化的艺术)是必要的。

11 .最好的架构、需求和设计来自于自组织团队

12 .每个一段时间,团队眼自我反省。

在敏捷开发中,还有个重要得因素,个人因素,个人因素有以下特点:

  基本能力、共同目标、精诚合作、决策能力、模糊问题解决能力、互相信任和尊重、自组织。
极限编程(xp):

XP是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!