第5章 软件工程基础知识(2024)

5.1软件工程

    5.1.1软件工程定义

            为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动:
                    P (Plan):软件规格说明,规定软件的功能及其运行时的限制
                    D(Do):软件开发,开发出满足规格说明的软件
                    C (Check):软件确认,确认开发的软件能够满足用户的需求
                    A (Action):软件演进, 软件在运行过程中不断改进以满足客户新的需求

    5.1.2软件过程模型
  • 1.瀑布模型

          瀑布模型(Waterfall Model)是最早使用的软件过程模型之一,从一个阶段到另一个阶段逐次下降, 它的工作流程在形式上很像瀑布,因此被称为瀑布模型
          阶段:需求分析、系统设计、程序设计、编码实现、单元测试、集成测试、系统测试、运行维护
          特点:是因果关系紧密相连,前一个阶段工作的输出结果,是后一个阶段工作的输入;每一个阶段都是建筑在前一个阶段正确实施的自结果之上;每一个阶段工作完成后都伴随着一个里程碑,对这阶段的工作进行审查和确认。历史上,瀑布模型起到了重要作用,它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究。
          缺点:
                  软件需求的完整性、正确性等很难确定,甚至是不可能和不现实的
                 瀑布模型是一个严格串行化的过程模型,使得用户和软件项目负责人要相当长的时间才能得到一个可以看得见的软件系统。如果出现与用户的期望不一致,或者出现需求变更,将会带来巨大的损失(例如人力、财力、时间等)
                 瀑布模型的基本原则是在每个阶段一-次性地完全解决该阶段的工作,不会出现遗漏、错误等情况,而实际上这是不现实或不可能的

  • 2.原型化模型

          原型模型(Prototype Model)又称快速原型。由于瀑布型的缺点,人们借鉴建筑师、工程
这师建造原型的经验,提出了原型模型

          原型模型两个阶段:
                                         原型开发阶段,软件开发人员根据用户提出的软件系统的定义,快速地开发一一个原型;该原型应该包含目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能等。开发原型可以考虑以下3种途径:利用模拟软件系统的人机界面和人机交互方式、真正开发一个原型、找来一个或几个正在 运行的类似软件进行比较

                                        目标软件开发阶段,在征求用户对原型的意见后对原型进行修改完善,确认软件系统需求并达到致的理解,进一步开发实际系统;演变类型:抛弃型原型(在需求确认结束后,原型就被拋弃不用,重新采用一个完整的瀑布模型进行开发)、演化性原型(在需求确认结束后,不断补充和完善原型,直至形成一个完整的产品)

  • 3.螺旋模型

         螺旋模型(Spiral Model)是在快速原型的基础上扩展而成,这种模型把整个软件开发流程分成多个阶段,每个阶段分为4组成部分:目标设定、风险分析、开发和有效性验证、评审

    5.1.3敏捷模型-Agile
  • 1.敏捷方法的特点

           “适应性”(adaptive)而非“预设性" (predictive)的
           面向人而非面向过程

  • 2.敏捷方法的核心思想

          适应型,而非可预测型
          敏捷方法是以人为本,而非以过程为本
          选代增量式的开发过程,敏捷方法以原型开发思想为基础

  • 3.主要敏捷方法简介

           极限编程(Extreme Programming, XP):交流、朴素、反馈和勇气,螺旋式开发方法
          水晶系列方法:发展一种提倡“机动性的”方法
          Scrum:该方法侧重于项目管理,通常用于敏捷软件开发。包含一系列实践和预定义角色的过程骨架(流程、计划、模式)。使用产品Backlog来管理产品的需求,产品Backlog是一个按照商 业价值排序的需求列表。根据Backlog的内容,将整个开发过程被分为若干个短的迭代周期(Sprint)。在Sprint中,Scrum 团队从产品Backlog中挑选最高优先级的需求组成Sprint backlog.在每个迭代结束时,Scrum 团队将递交潜在可交付的产品增量。当所有Sprint 结束时,团队提交最终的软件产品
           特征驱动开发方法(Feature Driven Develpment, FDD):

                   3要素(人、过程和技术
                   6种关键的项目角色(项目经理、首席架构设计师、开发经理、主程序员、程
序员、领域专家)
                   5个核心过程(开发整体对象模型、构造特征列表、计划特征开发、特征设计、特
征构建)

    5.1.4 统一过程模型(RUP)

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

  • RUP的生命周期

       9个核心工作流:业务建模(Business Modeling)、需求(Requirements)、分析与设计(Analysis & Design) 、实现(Implementation)、测试(Test)、部署(Deployment)、配置与变更管理(Configuration & Change Managerment)、项目管理(Project Management)、环境(Environment) 

       RUP把软件开发生命周期划分分为多个循环(Cyel):初始、细化、构造、移交
       在每个阶段结束前有一个里程碑(Milstone评估该阶段的工作,如果未能通过该里程碑的评估,
则决策者应该做出决定,是取消该项目还是继续做该阶段的工作

  • RUP中的核心概念
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值