一、软件工程基础知识

        定义:将系统化的、严格约束的、可量化的方法应用于软件的开发、运行、维护,即将工程化运用于软件。

软件过程模型:

        软件生命周期:软件从需求分析、软件设计、软件开发、运行维护,直至被淘汰这样的全过程。

一、瀑布模型(Waterfall Model):

需求分析、系统设计、程序设计、编码实现、单元测试、集成测试、系统测试、运行维护 8 个阶段

说明:前一个工作的输出结果是后一个阶段的输入,每一个阶段都是建立在前一个阶段正确实施的结果之上。每一个阶段工作完成后都伴随着一个里程碑(一组检查条件),对该阶段的工作进行审查和确认。

优点:有利于人员的组织管理,有利于软件开发方法和工具的研究。

缺点:

1、软件需求的完整性、正确性等很难确定,甚至是不可能和不现实的。因为用于不理解计算机和软件系统。

2、瀑布模型是一个严格串行化的过程模型,使用用户和软件项目负责人要相当长的时间才能得到一个可以看得见的软件系统。如果出现需求变更,将会带来巨大的损失。

3、瀑布模型的基本原始是在每个阶段一次性地完全解决该阶段的工作,不会出现遗漏、错误等情况,而实际这事不显示或者不可能的。

二、原型模型(Prototype Model)

        在瀑布模型基础上的需求分析、系统设计、程序设计的基础上多了原型开发阶段。

三、螺旋模型(Apiral Model)

1、目标设定。

2、风险分析。

3、开发和有效性验证。

4、评审。

四、敏捷模型(Agile Model)

1、敏捷方法主要有两个特点:

        1)适应性而非预设性

        2)面向人的而非面向过程的

2、极限编程(ExtremeProgramming,简称XP)

        强调快速反馈、持续改进、客户参与、简洁的代码。其中,快速反馈是极限编程最核心的原则之一,它要求在开发过程中不断地进行小规模的迭代和即时的测试,以确保软件质量并及时对需求变化做出反应。

3、极限编程的实践方法,实施极限编程,需要团队遵循一系列的实践方法,这些方法共同构成了XP的实施框架:

        1)测试驱动开发(TDD):测试驱动开发要求开发人员在编写实际代码之前先编写测试代码。这种方法能够确保代码的质量符合预期,并支持快速反馈原则。

        2)持续集成:持续集成要求团队成员频繁地将自己的代码变更集成到主干,并通过自动化的测试方式来验证集成的正确性,以减少集成错误。

        3)重构:重构是对已有代码进行结构上的调整和优化,而不改变其外部行为。目的是提高代码的可读性和可维护性。

        4)结对编程:结对编程是指两名开发人员共同在一台计算机上工作,一人编写代码,另一人进行审查。这有助于提高代码质量和促进知识共享。

五、统一过程模型(RUP:Rational Unified Process)

1、定义:描述了如何有效地利用商业的、可靠的方法开发和部署软件,重量级过程。

2、RUP 核心工作流

3、生命周期分成多个循环,每个循环阶段

4、RUP 是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。

        1)用例驱动:

        2)以体系结构为中心:4 + 1 视图模型,用例视图、逻辑视图、进程视图、实现试图、部署试图。

        3)迭代和增量:在软件开发早期就可以对关键的、影响大的风险进行处理。

【RUP 详情见链接】: ​​​​​​统一过程模型(RUP)

六、软件能力成熟度模型:

level 1(初始级): 能用的产品和服务。

level 2(已管理级):确保策划、文档化、执行、监督、控制项目级的过程,为过程建立明确的目标,实现成本、进度和质量目标。

level 3(已定义级): 企业能根据自身的特殊情况定义适合自己企业的项目的标准流程,将这套管理体系与流程予以制度化。

level 4(量化管理级): 建立了以产品质量、服务质量以及过程性能的定量目标,和 level 3(已定义级)的关键区别在于对过程性能的可预测。

leve 5(优化级): 通过增量式的、创新式的过程和技术改进,不断改进过程性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值