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