软件项目开发PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 1968-2013, 近40多年
– “危机”一词
– 软件危机依然存在
. 5
1.2 为什么要软件工程
• 软件危机面对的问题
– 艺术 vs. 标准化 – 错误的发现 – 软件需求获取 – 软件支持和维护 – 开发速度 vs. 市场需求 – 开发周期过长、开发成本过高 – 研发风险 – 软件开发中的复杂的协作(人员,问题,过程) – 不同角色的软件神话(管理者,用户,开发者,大众)
项目模拟/实战训练 第一部分 软件工程
. 1
本讲内容
• 1 软件工程概述 • 2 软件工程过程和活动 • 3 软件过程模型 • 4 软件过程成熟度模型CMM
. 2
1 软件工程概述
• 1.1 软件的概念 • 1.2 为什么要软件工程 • 1.3 什么是软件工程 • 1.4 参考书目
. 3
1.1 软件的概念
.
6
1.2 为什么要软件工程
• 采用什么方法缓解危机
– 硬件 ? – 建筑学? – 拍电影? – …… – 软件工程!
. 7
1.3 什么是软件工程
• Fritz Bauer:
– “建立和应用完善的工程原理以便经济地得 到在真实机器上可靠和有效运行的软件。
– 特点:重原理、轻技术、无度量
• IEEE:
– (1)应用系统的有规则的定量的方法开发、 使用和维护软件;即应用工程于软件。
– (2)研究(1)中的方法 – 特点:粗糙
. 8
1.3 什么是软件工程
• Definition
– 软件工程是以质量为核心,为了经济地开发 满足客户需求的软件而研究、建立和应用的 系统化的、有规则的、可度量的和可控制的 工程原则、方法,涉及到软件过程、项目管 理、开发方法、软件复用、软件度量、开发 工具,甚至企业文化等各个方面。
. 9
1.3 什么是软件工程
CASE Tools Methods Process
A Quality Focus
. 10
1.4 软件工程参考书目
. 11
2 过程和活动
• 2.1 软件过程的概念 • 2.2 问题定义活动 • 2.3 可行性研究活动 • 2.4 需求分析活动 • 2.5 设计活动 • 2.6 实施活动 • 2.7 测试活动 • 2.8 部署活动
资源
人员,工具
14
2.1 软件过程的概念
What
Change
How
. 15
2.1 软件过程的概念
. 16
2.1 软件过程的概念
• Basic Activities(基础活动)
– 问题定义,需求,设计,实b现, 软件验证,集成,软件演进/维护,退役
• Umbrella Activities (辅助性活动)
. 24
2.4 需求分析活动
• What
– 功能性需求和非功能性需求
• 功能性需求:描述了系统应该做什么,即具备 的功能或服务。(输入、输出和计算等)
• 非功能性需求:描述了系统必须遵守的约束条 件。(响应时间、吞吐量 、可靠性、可移植性、 可扩展性、易用性、安全性、资源要求、可复 用性、技术要求、文化和政策需求、法律需求、 道德要求、隐私要求,等等)
• How
. 23
2.4 需求分析活动
• What
– 需求:主要是在产品构建之前确定的系统必 须符合的条件或具备的功能,它们是关于系 统将要完成什么工作的一段描述语句,它们 必须经过所有相关人员的认可,其目的是彻 底地解决客户的问题。
– 需求文档
• 一组需求的集合 • 用户需求文档、系统需求文档和软件规约文档
义活动所消耗的时间长
• Who
– 系统分析师、出资方领导、出资方技术人员、用 户代表、开发方领导、项目经理、架构设计师、 领域专家、财务人员、市场人员、软件质量保证 (SQA,Software Quality Assure)人员等
• Where
– 客户现场。 . 22
2.3 可行性研究活动
• How
– 软件项目跟踪和控制,正式的技术复审, 软件质量保证,软件配置管理,文档编制, 复用管理,度量,风险管理,…
.
Something that covers or protects.
保护物覆盖或保护的事物17Baidu Nhomakorabea
2.2 问题定义活动
• What
– 问题定义是软件开发过程当中的一个定义要 解决的问题并确定系统范围的活动。
• 定义
– Program + Data Structure + Documents
• 软件的性质
– 复杂性 – 难以描述性 – 不可见性 – 变化性
.
– 易于副本的大批量生产 – 强合作性
4
1.2 为什么要软件工程
• 软件危机
Crisis!
– 爆发时间
• 1967年NATO的研究组首次提出
• 1968年NATO软件工程会议首次提出软件工程 概念
. 12
2.1 软件过程的概念
• 软件过程的定义
– 软件过程由开发或维护软件及其相关产品的 一系列活动构成,这些活动从不同的方面定 义了软件开发中的步骤、交付物、涉众及其 职责等流程要素
. 13
2.1 软件过程的概念
控制/约束
输入
Process
输出
资源
输入 需求
.
控制 预算,计划表,标准
Build the 输出 System 代码,文档
• What
– 可行性研究是以相对短的时间和相对低的成 本来确定给定的问题在其约束条件内是否有 解、有几种解以及哪个是最佳解。
• Why
– 必须要先确立满足约束条件的方案是否存在、 是否可行、是否最优,然后再在最优方案的 基础上进行开发
. 21
2.3 可行性研究活动
• When
– 项目的早期阶段 – 占整个软件开发时间中的比例较小,但比问题定
– 描述需求的标准
• 是完整的、正确的、必要的、无歧义的、可行 的、可验证.的以及被设置了优先级别的。
25
2.4 需求分析活动
• Why
– 需求不一致、模糊、矛盾 – 需求变更 – 客户忽略领域常识/知识/术语 – 客户集中于现有系统的不足之处,而忽略了
系统要实现的关键功能 – 零碎、无组织、不明确、表达不清 – 不分轻重缓急
• Why
– 形成一个早期判断,达成一个最初共识
• When
– 项目日程表的最前端 – 占整个软件开发时间中的比例很小
. 18
2.2 问题定义活动
• Who
– 系统分析师、出资方领导、出资方技术人员、 开发方领导和项目经理
• Where
– 客户现场
. 19
2.2 问题定义活动
• How
. 20
2.3 可行性研究活动