软件工程PPT4

合集下载

《软件工程》PPT课件

《软件工程》PPT课件
第四课时
第一章第四课时
喷泉模型 软件工程的任务与研究范围 软件开发的原则与开发方法
返回
喷泉模型
瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多 情况下往往是做不到的.螺旋模型试图克服瀑布模型的这一不足.SM 把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期, 系统就细化和完善一些.SM每—螺旋周期由六个步骤组成: <1> 确定任务目标: 根据初始需求分析项目计划,确定任务目标、可选 方案和限制.<2>选择对象:对各种软硬件设备、开发方法、技术、 开发工具、人员、开发管理等对象进行选择:并决定软件是进行研 制、购买还是利用现有的.<3>分析约束条件:软件开发的时间、经 费等限制条件.<4>风险分析:评估目标、对象、约束条件三者之间 的联系,列出可能出.现的问题及问题的严重程度等,把最重要的问 题作为尚未解决的关键问题的风险.<5>制定消除风险的方法:应有 详尽的说明和周密的计划,并估计可能产生的后果.依此来开发软件, 为制订下一周期的计划打下基础.<6>制定下一周期的工作计划:在 第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制 订消除风险的方法,初步开发原型1,制定系统生存周期计划.
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
软件开发的原则与方法
•软件开发的原则 • 自顶向下与模块结构 •软件开发的方法 •1.非自动形式的系统开发方法 •〔1〕系统流程图〔2〕结构分析法〔3〕结构化设计法 •〔4〕数据结构法〔5〕层次输入——处理——输出方法<HIPO法> • 2.半自动形式的系统开发方法 •〔1〕软件需求工程法〔2〕问题说明语言与分析法 • 3. 自动形式的系统开发方法 〔HOS方法〕:由计算机自动确定规 范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资 源分配工具RTA为工具.能自动进行分析、设计,工作量少、设计规范, 也能自动进行修改和维护.该方法适用于系统分析和设计.

软件工程需求分析(精品PPT)

软件工程需求分析(精品PPT)
•确定被开发软件系统的系统元素
•将功能和信息结构分配到这些系统元素中 •需求分析的任务
•深入描述软件的功能和性能 •确定软件设计的约束和软件同其它系统元素的接口细节
•定义软件的其它有效性需求
第四页,共七十七页。
需求(xūqiú)分析的具体任务
•需求分析阶段的具体任务:
•确定对系统的综合要求
•系统功能要求
第四章 析根底
软件工程 需求分 (ruǎn jiàn ɡōnɡ chénɡ)
第一页,共七十七页。
第四章 需求分析 根底 (fēnxī)
• 需求(xūqiú)分析的任务与原那么〔重点〕 • 需求分析的任务 • 需求分析的过程 • 软件需求分析的原那么 • 初步需求获取技术 • 需求建模〔重点〕 • 问题抽象、问题分解与多视点分析 • 支持需求分析的快速原型技术 • 需求规格说明书
第二十六页,共七十七页。
教务管理系统调查分析过程 1、认真学习教务管理方面的知识,重点掌握其中
的名词和术语 2、收集目前教务管理方面资料和软件,了解其特
•了解系统的需求 •软件开发是系统开发的一局部,仔细分析研究系统的需求 规格说明,对软件的需求获取是很有必要的
第十六页,共七十七页。
✓需求调查对象
对组织的高层管理者,进行组织管理目标或经营方 针等组织战略问题的调查
对中层的管理者,进行全部业务流的调查 对业务工作人员,进行详细业务信息的调查
✓市场调查 了解市场对待开发软件有什么样的要求;了解市场上 有无与待开发软件类似的系统
第十页,共七十七页。
需求(xūqiú)分析流程
第十一页,共七十七页。
软件需求(xūqiú)分析的原那么
1、需要能够表达和理解问题的信息域和功能域 信息域应包括:

软件工程课件(全)

软件工程课件(全)

03
识别项目中的关键路径,确保项目按计划进 行
04
及时调整项目计划,应对项目变更和不确定 性
风险管理策略制定
识别项目中的潜在风险, 包括技术风险、市场风险、 资源风险等
制定相应的风险应对策略 和措施,如风险规避、减 轻、转移和接受等
评估风险的概率和影响程 度,制定风险优先级列表
监控风险状态,及时调整 风险管理计划
质量改进
根据质量评估结果,制定相应的改进措施, 如优化性能、增强安全性等。
经验教训总结
对测试过程中遇到的问题进行总结,形成经 验教训,为后续项目提供参考。
06
项目管理与团队协作
项目计划制定与监控
01 制定详细的项目计划,包括项目目标、范围 、时间表、资源需求、成本估算等
02 设立项目里程碑,对项目进度进行阶段性监 控
开发方向。
持续集成和测试
03
迭代增量模型强调持续集成和测试的重要性,以确保每个迭代
周期都能交付高质量的软件产品。
03
需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领 域专家等进行沟通,收集原始
需求。
需求分类
将收集到的需求按照功能、性 能、安全、易用性等方面进行 分类。
需求筛选
去除重复、模糊、不切实际的 需求,确保需求的准确性和可 行性。
处理变更请求
根据实际情况,决定是否接受变更请求,并 制定相应的实施计划。
跟踪和验证变更
对实施的变更进行跟踪和验证,确保变更的 正确性和完整性。
04
系统设计与实现
系统架构设计
分层架构
将系统划分为表示层、业务逻辑层和数据访问层,实现高内聚、 低耦合的设计。

软件工程(第二版)PPT

软件工程(第二版)PPT
可从以下方面进行软件高层分析: 软件系统的业务领域、业务边界与业务流程。 软件系统对硬件设施、网络环境、数据环境的
依赖。 软件系统的安全层级、措施与防范机制。 软件系统与其它相关系统之间的协作关系。 软件系统与用户组织及其工作任务的协调性与
适应性。
3. 项目可行性分析
以少量的时间及人力成本,对项目是否可着手 实施作出有依据的判断,以避免因项目实施条 件不具备而造成的大量的人力、物力与时间的 浪费。可从技术、经济、应用等几个方面进行 可行性分析,分析结论则需要撰写成可行性分 析报告,并提交有关部门确认。
10. 建立需求模型
需求建模是用户需求问题图解,一些常用模型 有:业务树图、用例图、活动图。其中,业务 树是结构化需求建模,用例图是系统业务举例, 活动图则反映系统工作流程。
11. 进行需求验证
需求验证是指对需求分析成果的检查与确认。 主要的需求验证内容有:有效性验证、一致性 验证、完整性验证、现实性验证、可检验性验 证。
概要设计以需求规格定义为依据,首先要确定 的是系统构架,然后以系统构架为基础,确定 系统全局数据结构、程序结构,考虑系统安全 防范、故障处理措施。
2. 系统构架
系统构架是软件系统的基础框架,需要考虑问 题有:系统支持环境、系统体系结构。
系统支持环境是构建软件大厦的地基,涉及硬 件环境、软件环境、网络环境。
增量模式在整体上具有瀑布模式的里程碑特点, 可适应大型项目。但系统的局部构建上,则体 现为基于增量构件的原型进化,可适应用户的 需求变更。
5. 螺旋模式
螺旋模式是一种可较好规避开发风险的过程模 式。螺旋模式的特点是项目基于任务域螺旋式 递进,每一个任务域都需要进行风险评估,并 需要根据评估结论制定有效的风险规避措施。

软件工程完整PPT课件

软件工程完整PPT课件

2021/3/9
10
④局部化。要求在一个物理模块内集中逻辑上相互关联 的计算资源,保证模块间具有松散的耦合关系,模块 内部有较强的内聚性,这有助于控制解的复杂性。
⑤确定性。软件开发过程中所有概念的表达应是确定的、 无歧义且规范的。
⑥一致性。包括程序、数据和文档的整个软件系统的各 模块应使用已知的概念,内外部接口应保持一致,系 统规格说明与系统行为应保持一致。
2021/3/9
14
2. 需求分析方法 常见的需求分析方法有:
①结构化分析方法。 ②面向对象的分析方法。
2021/3/9
15
2.2结构化分析方法
(1)关于结构化分析方法 结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,
建立系统的处理流程,以数据流图和数据字典为主要工具,建 立系统的逻辑模型。 结构化分析的步骤如下:
3. 信息隐蔽 信息隐蔽使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不能访问 的。
2021/3/9
24
4. 模块独立性 每个模块完成一个相对独立的特定子功能,并且 和其他模块之间的接口很简单。
模块的独立程度可以由两个定性标准来衡量,这 两个标准分别称为耦合性和内聚性。藕合衡量不 同模块彼此间互相依赖(连接)的紧密程度;内 聚衡量一个模块内部各个元素彼此间结合的紧密 程度。
⑦完备性。软件系统不丢失任何重要成分,完全实现系 统所需的功能。
⑧可验证性。开发大型软件系统需要对系统自顶向下, 逐层分解。系统分解应遵循容易检查、测评、评审的 原则,以确保系统的正确性。
2021/3/9
11
1.5软件开发工具与软件开发环境
1. 软件开发工具 软件开发工具是指可以用来帮助开发,测试、分 析、维护其他计算机程序及其文档资料,实现软 件生产过程自动化的一类程序。 软件工具主要包括需求分析工具、设计工具、编 码工具、确认工具、维护工具等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MiniLibrary:参与者
确定场景

确定参与者和场景的关键在于理解业务领域,这需 要理解用户的工作过程和系统的范围。 确定场景的问题
–参与者希望系统执行的任务是什么? –参与者访问什么信息?谁生成数据? –参与者需要通知系统的哪些外部变化?(时间和频率) –系统需要通知参与者什么事件?(时间)

MiniLibrary:借书
场景名称:借书 参与者实例:Bob,图书管理员;John,普通读者 事件流程:
1.John向Bob提供个人的注册号、所借图书的编号和书名等; 2.Bob在系统中查询该图书是否在图书馆; 3.Bob登记John的借书记录,并将图书借给John。
其他流程:
1.图书已被借出或者不存在: Bob告诉John无法借出。 2.John不是合法注册用户: Bob 请求John注册后在借书。
功能需求

功能需求
–描述系统应该提供的功能或服务,通常涉及用户或外部系 统与该系统之间的交互,一般不考虑系统的实现细节。

举例:MiniLibrary
–用户可以从图书资料库中查询或者选择其中的一个子集。 –系统可以提供适当的浏览器供用户阅读电子文献。 –用户每次借阅图书应该对应一个唯一的标识号,它被记 录到用户的帐户上。
内容提纲
软件需求

软件需求
①用户解决问题或达到目标所需的条件或能力。 ②系统或系统部件要满足合同、标准、规范或其它正式规定文 档所需具有的条件或能力。 ③一种反映上面①或②所描述的条件或能力的文档说明。

对定义的理解
–软件需求的概念涵盖了用户角度(系统的外部行为)和开 发人员角度(系统的内部特性)两个方面,其中的关键在于 需求一定要文档化。

注意:观察可能使用户紧张。
原型化方法

原型化方法
–一个软件原型是所提出的新产品的部分实现,帮助开发人 员、用户以及客户更好地理解系统的需求,它比开发人员常 用的技术术语更易于理解。

建立原型的原因
–解决在产品开发的早期阶段需求不确定的问题,用户、经 理和其他非技术项目风险承担者发现在确定和开发产品时, 原型可以使他们的想象更具体化。
用户面谈

面谈过程需要认真的计划和准备(续)
–进行面谈
•衣着得体,准时到达 •寻找异常和错误情况 •深入调查细节 •详细记录 •指出和记录下未回答条目和未解决问题
–面谈之后
•复查笔记的准确性、完整性和可理解性 •把所收集的信息转化为适当的模型和文档 •确定需要进一步澄清的问题域 •适当的时候向参加会议的每一个人发一封感谢信
业务需求:MiniLibrary

业务要求
–各种图书资料的借阅、查询和管理; –使用计算机实现图书资料的日常管理,提高工作效率和服务 质量; –用户通过网络查询和浏览电子资料,改变原有的借阅模式; –由于版权的限制,某些电子资料只能让用户浏览和打印而不 能下载。

客户与用户
–学院的高层管理者 –图书管理员 –借阅者:教师、学生
软件需求的重要性
案例:小型图书资料管理系统

问题描述
–某学院打算开发一个小型图书资料管理系统MiniLibrary, 该系统基于Internet 实现教师和学生对各种图书资料的借 阅、查询和管理。 –图书管理员负责管理各种图书资料,查询图书资料信息, 并进行图书的借阅管理。 –注册用户可以通过Internet 随时查询图书资料信息和个人 借阅情况,预订目前借不到的图书资料,并可以快捷地查找 和浏览所需要的电子资料。 –系统可以提供适当的浏览器供用户阅读电子文献资料。 –要求用户界面友好,响应速度快,具有良好的可扩展性。

举例:
–用户可以通过Internet 随时查询图书信息和个人借阅情 况,并可以快捷地查找和浏览所需要的电子资料。

分析:上述需求描述包含了三个不同的需求
–用户可以通过Internet 随时查询图书信息。 –用户可以通过Internet 随时查询个人借阅情况。 –用户可以通过Internet 快捷地查找和浏览所需要的电子 资料。
确定用例

可观测
–用例止于系统边界,描述交互而不是内在系统活动。

结果值
–用例是目标导向的,参与者有一些需要使用它来满足的目标。

系统执行
–结果值由系统生成

由角色观测
–业务语言(图书),而非技术语言(数据库表) –用户观点(预订图书),而非系统观点(处理预订图书)

用例粒度
–粒度过细,陷入功能分解。 –过细的粒度,一般都会导致技术语言的描述,而不再是业务语言。
需求专题讨论会
问卷调查

问卷调查
–可用于确认假设和收集统计倾向数据 –问卷需要快速回答,允许匿名方式

存在问题
–相关的问题不能事先决定 –问题背后的假设对答案造成偏颇,如这符合你的期望吗? –难以探索一些新领域 –难以继续用户的模糊响应

在完成最初的面谈和分析后,可作为一项协作技术 可以收到良好的效果。
–用户通常并不真正知道自己希望计算机系统做什么 –用户通常使用业务语言表达需求,开发人员缺乏相关的 领域知识和经验,难以准确理解这些需求 –不同的用户提出不同的需求,可能存在矛盾和冲突 –管理者可能出于增加影响力的原因而提出特别的需求 –由于经济和业务环境的动态性,需求经常发生变更

需求获取
需求获取技术

问题:
–“随时”和“快捷”是对系统功能的约束,十分模糊。
系统需求


系统需求是更加详细地描述系统应该做什么,通常 包括许多不同的分析模型,诸如对象模型、数据模 型、状态模型等。 系统需求模型的描述
–结构化英语(PDL ) –可视化模型 –形式化方法

系统需求主要是面向开发人员进行描述,是开发人 员进行软件设计的基础。
需求专题讨论会

需求专题讨论会
–项目主要风险承担人在短暂而紧凑的时间段内集中在一起, 一般为1 至2 天,与会者可以在应用需求上达成共识、对操 作过程尽快取得统一意见。

优点
–协助建立一支高效的团队,围绕项目成功的目标; –所有的风险承担人都畅所欲言; –促进风险承担人和开发团队之间达成共识; –揭露和解决那些妨碍项目成功的行政问题; –能够很快地产生初步的系统定义。

确定参与者


参与者是与系统交互的外部实体,它既可以是人员 也可以是外部系统或硬件设备。 确定参与者
–谁使用系统的主要功能? –谁需要系统的支持以完成日常工作任务? –谁从系统获取信息? –谁负责维护和管理系统以保证其正常运行? –系统需要应付(处理)哪些外部硬件设备? –系统需要和哪些外部系统交互?
现场考察

现场观察商业过程和工作流程
–掌握用户如何实际使用一个系统以及到底用户需要哪些信息, 最好的办法是亲自观察用户是如何完成实际工作的。

一般方法
–对办公室进行快速浏览,了解布局、设备要求和使用、工 作流总体情况。 –安排几个小时观察用户是如何实际完成他们的工作,理解 用户实际使用计算机系统和处理事务的细节。 –像用户一样接受训练和做实际工作,发现关键问题和瓶颈。
第四章 需求工程
成功来之不易
软件项目失败的原因
一些常见的情景
需求错误的成本
软件需求的重要性

软件需求是决定软件开发是否成功的一个关键因素
–需求分析可以帮助开发人员真正理解业务问题 –需求分析是估算成本和进度的基础 –需求分析可以避免建造错误的系统,从而减少不必要的浪费 –软件规格说明有助于开发人员与客户在“系统应该做什么” 问题上达成正式契约 –需求分析形成了软件开发的基线,有助于管理软件的演化和 变更 –软件需求是软件质量的基础,为系统验收测试提供了标准
确定用例的常见问题
确定用例的常见问题
非功能需求
非功能需求
思考问题

分析以下描述,它们是否属于需求?
–普通读者必须注册成合法用户才可以使用该系统。 –用户可以预订目前借不到的图书资料。 –用户不希望自己的借阅记录被他人查阅。 –系统通过ADO 与图书资料数据库连接,并从图书资料数据 表中获得图书资料的基本信息。 –系统应该具有良好的可扩展性。
软件需求的不同层次
业务需求


业务需求是组织或客户对于系统的高层次目标要求, 定义了项目的远景和范围,即确定软件产品的发展 方向、功能范围、目标客户和价值来源。 业务需求的内容
–业务:产品属于哪类业务范畴?应该完成什么功能?需要 为什么服务? –客户:产品为谁服务?目标客户是谁? –特性:产品区别于其他竞争产品的特性是什么? –价值:产品的价值体现在什么方面? –优先级:产品功能特性的优先级次序是什么?

需求获取的关键在于通过与用户的沟通和交流,收 集和理解用户的各项要求。 需求获取技术
–用户面谈 –需求专题讨论会 –问卷调查 –现场考察 –原型化方法 –基于用例的方法

用户面谈

用户面谈
–一种理解商业功能和商业规则的最有效方法

面谈过程需要认真的计划和准备
–面谈之前
•确立面谈目的 •确定要包括的相关用户 •确定参加会议的项目小组成员 •建立要讨论的问题和要点列表 •复查有关文档和资料 •确立时间和地点 •通知所有参加者有关会议的目的、时间和地点

基于WEB 的应用系统原型
–使用HTML 进行界面设计
需求获取的文档
确定产品前景与项目范围
识别和描述项目相关者
问题描述
理解项目相关者的要求
理解项目相关者的要求
建立用例模型

用例建模是以任务和用户为中心的,开发和描述用 户需要系统做什么。 用例建模的步骤
–确定系统的参与者 –确定场景 –确定系统用例 –确定用例之间的关系 –编写用例描述文档
相关文档
最新文档