介绍软件工程之前我们得说明一个问题,什么是软件?软件就是应用程序?就是一堆代码?首先来看看软件三大特征:
-
软件是设计开发的,并不是生产制造的,他不是工厂流水线。
-
软件不会被消耗
-
软件是根据客户实际需求定制的
所以软件本质就是一个特定的指令的集合,来满足预期功能需求。
而软件则设计的领域有工程/科学软件,嵌入式软件,产品线软件,web应用软件,开放计算,人工智能,网络资源,开源软件等
还有些软件叫做遗留软件,就是开发时间距现很久的!!也就是旧软件,而这些软件一般都是性能差。所以这些软件要想在现在还有一定的生存空间,那么就要升级或者重构,甚至于重新开发。
Webapp的特性
W3不光只有html,java,asp,php都属于w3的,webapp是独特的软件类型,但是绝大多数的webapp逃不过以下属性
-
网络密集性
-
并发性
-
无法预知的负载量
-
性能
-
可用性
-
数据驱动
-
内容敏感性
-
持续演化
-
即时性
10.安全性
11.美观性
说完了软件,我们接谈谈软件工程,在21世纪得今天我们做一个软件产品,有如下几个事实:
-
软件已经融入我们生活
-
个人、企业和政府的信息技术需求日益复杂,
-
对特定的用感价值会增加软件的寿命
所以软件要工程化,那么软件工程到底是什么?软件工程的定义如下:
将系统化的、规范的、可量化的方法使用到软件的开发上。
软件工程是一种层次化的技术,层次如下:
那么“怎么做”是一个问题,软件工程方法有一套基本原则,而为了过程和方法半自动化或自动化,软件工程工具也就产生。
说到软件工程,我们不得不提软件过程,软件过程,及软件工作产品创造时,一系列活动、任务的集合。一般软件过程有一下几个框架:
-
沟通
-
策划
-
建模
-
构建
-
部署
当然再实施的过中也要控制风险一般有以下几点:软件项目跟踪和控制、风险管理、软件质量保证、技术评审、测量、软件配置管理、可复用管理。
在软件工程的过程中,不同的项目,过程也不相同。但是一般都会遵循几个原则: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是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
来源:CSDN
作者:左只能
链接:https://blog.csdn.net/tsy1234567891/article/details/104413826