软件生命周期

软件工程与UML笔记

对着背影说爱祢 提交于 2020-02-10 17:26:18
软件工程与UML笔记 第一章 面向对象软件工程概论 要求学习的内容: 软件危机 软件工程的由来 软件工程的定义 软件工程的范畴 软件工程实践的目标 软件开发包含的活动 软件维护的成本 修复bug的代价 一.软件危机 软件定义: 软件是程序以及开发、使用和维护程序所需要的所有文档。 软件危机定义: 软件开发和维护过程中遇到的一系列严重问题 表现: 对软件开发成本和进度的估计不准确; 软件产品质量很不可靠; 可维护性差,软件的文档资料不完整和不合格; 软件成本逐年上升; 软件开发生产率不高,不能满足客观需要。 软件危机原因: (1)人们对于软件概念与范畴的理解。 早期软件工程师崇尚个人英雄主义,整个软件开发通常处于一种无序的状态。他们大多认为编写程序就是软件开发的全部。这种观念会导致随着软件规模的增大,程序员对于文档的忽略与不重视,使得软件开发产品的不健全与维护困难。 (2)软件的规模日益增长、设计日益复杂。 Visual Studio/Office等(M->G) (3)软件开发组织发生变化。 在上述因素发生变化的同时,软件开发组织也在发生着变化。早期开发一款小型软件,可能1-2个开发人员就可以完成。然而随着软件规模的飞速增长,软件开发组织也在同比例增长,由单打独斗的状态改变为一个团队若干开发人员共同研发一款产品。人员由一个变成团队协同开发,这种组织形式的转变

软件工程之软件生命周期的各个阶段

百般思念 提交于 2019-12-06 12:24:40
概括地说,软件生命周期由软件定义、软件开发和运行维护3和时期组成,每个时期又进一步划分成若干个阶段。 软件生命周期共有7个阶段: 1.问题定义。 通过堆客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。 2.可行性研究。 可行性研究的结果是客户做出是否继续惊醒这项工程的决定的重要依据,一般来说,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以后的那些阶段将需要投入更多的人力物力。 3.在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础。因此必须准确完整地体现用户的要求。这个阶段的一项重要任务,是用正式文档准确地记录堆目标系统的需求,这份文档通常称为规格说明书。 4.总体设计。 这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统呢?”总体设计由称为概要设计。 5.详细设计。 详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。 6.编码和单元测试。 这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。 7.综合测试。 这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。 来源: CSDN 作者: 代理商 链接: https://blog.csdn.net/cfx1299748113/article

软件生命周期与配置管理

匿名 (未验证) 提交于 2019-12-03 00:29:01
2.1 Software Lifecycle and Configuration Management 概论 软件开发过程 传统的软件开发过程模型 敏捷开发 软件配置管理 Git 软件开发的生命周期 版本管理 传统软件开发模型 两种基本的类型 线性过程 迭代过程 目前常用的模型 瀑布过程 增量过程 V模型 原型过程 螺旋过程 选择类型的依据 用户参与程序开发有多大 开发效率 管理复杂度 开发出的软件的质量 瀑布过程 几个特点 线性推进 阶段划分过程 整体推进 无迭代 管理简单 无法适应需求的改变 增量过程 每次只开发一点点 开发过程被分割为几个小的功能 需求可变 几个特点 线性推进 增量式(多个瀑布的串行) 没有迭代 比较容易适应需求的增加 V模型 软件生命周期 计划 需求 设计 构造 测试 部署 运营 计划 需求:产品经理 设计:架构师 构造:程序员 部署 运营:运维 原型过程 在原型上进行进行迭代 时刻发现用户需求 时间代价高 程序质量高 螺旋模型 复杂的开发过程 多轮次迭代 基本符合瀑布 每轮次迭代有明确目标 遵循原型过程 进行严格的风险控制 才可以进行下一轮次迭代 敏捷开发 敏捷开发 :通过快速的迭代和效果的持续改进 以快速适应变化 类似于增量和原型的叠加 敏捷开发的特点 对用户需求反应及时 流程短 开发灵活 敏捷开发过程 特征 极致的用户参与 极致的小步骤迭代

软件的基于生命周期开发方法

痴心易碎 提交于 2019-12-02 11:00:01
软件的基于生命周期开发方法 ​ 早期软件开发处于一种无序状态,经历软件危机之后,开始采用系统工程方法论指导开发,根据软件开发的的生命周期将整个开发划为5个阶段( 规划阶段、分析阶段、设计阶段、实施阶段、运行和维护阶段 ),明确每个阶段的任务、任务成果的体现。最初大家都按照这些通过的阶段按照顺序进行项目任务开发。后来随着企业需求越来越复杂灵活,开发工具也越来越强大,不同项目的开发过程中基于上述生命周期出现很多变种,从而衍生出各种开发方法,这些方法按照不同的开发过程模型来完成各项开发活动。 开发方法 瀑布流开发方法 原型开发方法 迭代开发方法 螺旋开发方法 敏捷开发方法 1.瀑布流开发方法 ​ 这是一种20世纪80年代前的开发方式,一直采用的是严格按照生命周期阶段的开发过程,整个开发过程看起来就像是瀑布一样,稳定地向下依次经过这些阶段。每个阶段都有一个开始点和结束点,一旦到达下一阶段,通常不允许再回到上一阶段,正如瀑布不会向上倒流一样。 这种方法看起来简单明了,过于理想主义。最大的特点就是阶段间严格的顺序和依赖性,只有前一阶段完成,才能开始后一阶段,前一阶段的输出文档是后一阶段的输入文档。瀑布方法简单,易理解,易操作,它迫使开发人员遵守规范的方法,消除了程序开发的随意性,并且每一阶段对完成的文档进行严格审核,一定程度上保证了程序的质量,但是此种方法必须要在早期严格定义或者明确用户需求