null软件需求分析与系统设计
Requirements Analysis and System Design软件需求分析与系统设计
Requirements Analysis and System Design主讲:李长森
E-mail: lics@mail.sysu.edu.cn软件学院课程目的与教学基本
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
课程目的与教学基本要求 本课程的目标是向学生介绍运用面向对象技术开发软件系统的方法。讲述软件需求分析与系统设计、软件开发过程(包括统一软件开发过程)、建模语言(统一建模语言)和设计模式等有关概念及其应用技巧。
要求学生牢固掌握软件需求分析与管理的方法和技术以及在一个典型的开发过程中运用UML(统一建模语言)和设计模式进行对象建模的方法、技能和技巧。为使用面向对象的分析和设计技术来建造一个健壮的和易于维护的软件系统打下基础。教学设想 教学设想 本课程将照统一软件开发过程(UP)定义的分析和设计工作流,介绍需求分析与系统设计的制品以及生成这些制品所涉及的技术和方法。采用课程讲解与实验相结合的案例教学方式。通过一个案例的分析和设计过程讲述面向对象分析与设计的基本概念及其应用技巧、利用统一建模语言(UML)和设计模式(Patterns)进行系统分析与设计的全过程。
实验课在Rational Rose CASE工具环境的支持下对同一案例进行分析与设计工作。使学生对可视化建模过程和相应的制品(artifact)有一个较全面的认识。 教材 教材 UML和模式应用 - 面向对象分析和设计及统一过程导论(第二版)(影印版),中国电力出版社,2004.5.1.
Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Unified Process, Second Edition, Craig Larman, Prentice Hall PTR, 2002参考书 参考书 [1] 统一软件开发过程,
[美]Ivar Jacobson 等著 周伯生 等译,机械工业出版社, 2002年1月出版
[2] 需求分析与系统设计,
Leszek A.Maciaszek 著,金芝 译,机械工业出版社, 2003年6月出第1版
[3] 软件需求(原书第2版)
[美]Karl E.Wiegers 著,刘伟琴等译,清华大学出版社,2004年11月出版
[4] UML 与 Rational Rose 2002 从入门到精通,
[美]Wendy Boggs 等著,邱仲潘等译,电子工业出版社, 2002年7月第1版实验实验1 实验目的
实验课在Rational Rose CASE工具环境的支持下参考课程的案例进行。使学生掌握一种CASE工具的基本用法,加深在统一软件过程支持下利用面向对象技术进行软件需求分析与系统设计过程和相关制品的理解。
2 实验形式
利用CASE工具编制分析与设计文档。学生可分组讨论完成实验1-实验4,但必须单独按时提交实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
。实验5-实验8为可选实验。
4 实验报告的要求与提交方式
学生应该完成指定的前4个实验,用WORD文档编写实验报告按时提交到:lics@mail.sysu.edu.cn 。
文件命名:mse实验<学号><班级> <姓名><实验编号>
例如:mse实验0313508002B1林伟东_1。课程设计 课程设计 交卷方式:
请用WORD文档通过电子邮件提交答卷,
文件命名:mse测试<学号><班级><姓名><试题编号>
例如:mse测试0313508002B1林伟东_1。
邮件地址:lics@mail.sysu.edu.cn 本课程提供6份评测题引导学生进行课程设计,学习完第10章(第3讲)后分六次给出测试题。学生按教学方案
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
指定的时间从本课程FTP上取得试题后,在一周时间内提交书面答卷,教师收到答卷后给出该次测试题的参考答案,学生在参考答案的基础上完成下一份测试题。答卷时采用英文命名用况,类,对象,消息等元素。叙述性答案用中文。
必须按规定日期完成这6份测试题,不在乎答案是否与参考答案一致,但每次必须完成并提交答卷。
课程FTP课程FTP地址:202.116.76.103 端口:2002
用户名:ss 口令:mse2002
目录:\教学资料\MSE05
\教学资料\工具 现提供以下FTP地址给《软件需求分析与系统设计》课程使用。内容包括:参考教材电子版,每堂课的演讲材料,测试题,临时
通知
关于发布提成方案的通知关于xx通知关于成立公司筹建组的通知关于红头文件的使用公开通知关于计发全勤奖的通知
和其它资料。请经常关心其内容的变化。建议使用CuteFTP下载工具。第一讲主要内容:第一讲主要内容:面向对象分析与设计
迭代式开发和统一开发过程第1章:面向对象分析与设计第1章:面向对象分析与设计Object-Oriented Analysis And Design系统建模
软件需求分析与系统设计
面向对象分析与设计
统一建模语言UML(Unified Modeling Language)
设计模式(Design Patterns)为什么要建模? 从建筑方面的建模谈起…为什么要建模? 从建筑方面的建模谈起…奇怪的是,很多软件开发组织开始想建造一座大厦式的软件,而在动手处理时却好像他们正在仓促地造一个狗窝!系统建模 系统建模 开发软件为什么要建模:
现代软件的趋势是朝着更庞大,更复杂的系统发展。应用环境是迅速变化的,要求软件系统适应迅速变化的环境。建模允许我们通过一种分而治之的办法来处理复杂的问题,使我们能更好地理解待开发的系统。系统建模 系统建模 建模的基本原则:
正确地选择模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;
每种模型可以在不同的精度级别上表示;
最好的模型是与现实相联系的;
对每个重要的系统最好用一组几乎独立的模型去处理。软件需求分析与系统设计 软件需求分析与系统设计
分析模型:与问题域和问题空间的调查结果有关,但不涉及解决方案的模型。
设计模型:与问题的逻辑解决方案有关的模型。
面向对象系统建模 面向对象系统建模 面向对象建模:所有的软件系统都用对象或类作为其主要构造块
面向对象分析:重点在于发现并描述问题域中的对象(或概念)
面向对象设计:重点在于定义那些能最终用面向对象设计语言实现的逻辑软件对象。软件对象具有属性和方法。 面向对象系统建模面向对象系统建模 软件固有的复杂性、一致性、可变性和不可见性。从而确定了软件开发是一种创造性活动,软件不是重复性制造活动的产物。
软件
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
存在的偶然因素导致我们要在软件的开发过程、工具和方法上进行探讨。面向对象系统建模面向对象系统建模统一建模语言UML:是一种绘制软件蓝图的标准语言。可以用UML对软件密集型系统的制品进行可视化详述和文档化。本课程强调在系统分析与设计时运用UML来描述结果。UML只是一种描述工具。
Developed by Booch, Rumbaugh and Jacobson in Rational Co., 1997
设计模式:是指一种在设计问题中经常用到的解决方案。
统一开发过程(unified process):(第二章)
图:面向对象分析与设计的例子图:面向对象分析与设计的例子图:面向对象分析与设计的例子图:面向对象分析与设计的例子图:面向对象分析与设计的例子图:面向对象分析与设计的例子图:面向对象分析与设计的例子图:面向对象分析与设计的例子第2章:迭代式、递增地开发和
软件开发统一过程 UP第2章:迭代式、递增地开发和
软件开发统一过程 UPIterative ,incremental development and
Unified Process有关概念有关概念 软件生命周期
软件开发周期
软件开发过程
统一软件开发过程 UP有关概念有关概念软件生命周期
定义:软件生命周期是指软件产品从考虑其概念开始,到该产品不再能使用为止的整个时期。一般包括概念阶段,需求阶段,设计阶段,实现阶段,测试阶段,安装阶段及交付使用阶段, 运行阶段和维护阶段。有时还有退役阶段。这些阶段可以有重复,执行时也可以有迭代。有关概念有关概念软件开发周期
定义:软件开发周期是指软件产品从考虑其概念开始,到该产品交付使用为止的整个时期。一般包括概念阶段,需求阶段,设计阶段,实现阶段,测试阶段,安装阶段及交付阶段。这些阶段可以有重复,执行时也可以有迭代。
有关概念有关概念软件开发过程
定义1:把用户的要求转变成软件产品的过程叫做软件开发过程。此过程包括对用户的要求进行分析,解释成软件需求,把需求变换成设计,把设计用代码来实现,测试该代码,有时还要进行代码安装和把软件交付运行使用。这些活动可以有重复,执行时也可以有迭代。
定义2:进行一组有组织的活动以把用户的要求转化成软件产品。有关概念有关概念软件过程模型
说明执行活动的次序
说明什么时候应交出什么制品
将活动和制品分配给开发者
提供监控项目进程、评估产出和计划未来项目的准则瀑布模型(waterfall model)瀑布模型(waterfall model)计划需求分析设计编码测试运行维护定义
阶段开发
阶段维护
阶段螺旋模型(Spiral Model)螺旋模型(Spiral Model)提交线
评审原型3原型2原型1可运行
原型风险分析风险分析风险分析组装测试需求计划开发计划详细设计验收
测试组装
测试单元
设计编码实现累计
成本设计确
认验证软件
需求需求
确认软件产
品设计客户评估实施工程风险分析制定计划当代软件系统的特点与传统软件过程的缺陷当代软件系统的特点与传统软件过程的缺陷 由于当代软件趋于庞大、复杂以及存在变化等因素,”瀑布模型”存在缺陷。包括:软件开发是一种有风险的业务;大跨度的开发期存在较大的风险。
因此,引入将整个项目分解成若干小的开发任务,以迭代式的、递增的、时间盒、进化、螺旋式开发等思想到软件开发过程。即形成统一软件开发过程 UP。统一过程 Unified Process统一过程 Unified Process统一过程UP: 是一个软件开发过程。是一个通用的过程框架。它的特征是用况驱动、以构架为中心、迭代和增量的。统一过程是基于构件的,即所构造的软件系统是由软件构件通过明确定义的接口互相连接所建造起来的。统一过程是用统一建模语言UML来定制软件系统的所有蓝图。事实上,UML是整个UP的一个完整部分,他们是共同发展起来的。但UML仍然独立于任何软件开发过程,还独立于实现技术。图:用况模型和其他模型间的依赖关系图:用况模型和其他模型间的依赖关系图:2.1 迭代的和递增地开发软件系统图:2.1 迭代的和递增地开发软件系统统一过程中的四个阶段统一过程中的四个阶段 初始阶段(Inception)
细化阶段(Elaboration)
构造阶段(Construction)
提交阶段(Transition)UP通过四个主要阶段(Phases)组织项目的工作(Work)和迭代(Iteration)
统一过程中的各阶段需完成的主要工作 -- Inception统一过程中的各阶段需完成的主要工作 -- Inception 编制简要的愿景文档(approximate vision)
描述产品用来干什么,它最终会是什么样子。
业务案例(business case)
应用能完成哪些业务工作(业务用况);这些业务用况应实现到何种程度。
确定范围(scope)
确定当前项目要解决产品长远规划中的那一部分。
粗略评估成本(vague estimates)统一过程中的各阶段需完成的主要工作 -- Elaboration统一过程中的各阶段需完成的主要工作 -- Elaboration 细化愿景文档(refined vision)
迭代地实现核心构架(core architecture)
解决高风险的问题(resolution of high risks)
定义大多数的需求(requirements)和范围(scope)
进一步评估成本(more realistic estimates)
统一过程中的各阶段需完成的主要工作 -- Construction统一过程中的各阶段需完成的主要工作 -- Construction 迭代地实现系统的其余部分
准备部署(deployment)
统一过程中的各阶段需完成的主要工作 -- Transition统一过程中的各阶段需完成的主要工作 -- Transition beta 测试( beta tests)
部署 (deployment)
统一过程中的面向进度的有关术语统一过程中的面向进度的有关术语 开发周期 (development cycle)
迭代 (iteration)
阶段 (phase)
里程碑 (milestone)
版本 (release)
增量 (increment)
最终产品版本 (Final production release)
图:2.3 Schedule-oriented terms in the UP图:2.3 Schedule-oriented terms in the UP阿图:统一过程的工作人员图:统一过程的工作人员工作人员产品统一过程中的核心工作流(Workflows)统一过程中的核心工作流(Workflows) 业务建模(Business Modeling)
需求分析(Requirements)
设计(Design)
实现(Implementation)
测试(Test)工作流是指一组活动。图:2.4 UP的工作流图:2.4 UP的工作流图:2.5 UP的工作流和阶段图:2.5 UP的工作流和阶段表:2.1 Sample Development Case of UP artifacts表:2.1 Sample Development Case of UP artifacts工作产品UP 的核心思想UP 的核心思想短时间盒(timebox)迭代式开发
开发过程中不断进行调整
在早期的迭代中解决高风险和高价值的主要问题
不断与用户衔接,及时得到反馈意见
早期注意构造核心的体系结构(architecture)
早期进入实现和测试,不断进行质量检验
使用用况(use case)
可视化建模(用UML)
仔细地管理需求
控制变更图:UP在开发的早期解决高风险的主要问题图:UP在开发的早期解决高风险的主要问题敏捷过程 (The Agile Process)敏捷过程 (The Agile Process)预测性过程(predictive process)
适应性过程(adaptive process)试图在相当长的时间内详细地计划和预测活动和资源的分配。认为变化是不可避免的驱动因素并且灵活的改写。Kent Beck (《Extreme Programming》)
Alistair cockburn (《Crystal Methdolgies》)
Jim Highsmith (《Adaptive Software Development》)
….起草了一个旨在使软件开发团队既有快速工作、快速相应变化能力的敏捷软件开发宣言(The Manifesto for Agile Software Development)2001年2月成立敏捷软件开发联盟,建成敏捷联盟(Agile Alliance)发起者有17位软件界专家,包括:敏捷软件开发宣言(The Manifesto for Agile Software Development)敏捷软件开发宣言(The Manifesto for Agile Software Development)Kent Beck Jims Grenning Robert C.Martin
Mike Beedle Jim Highsmith Steve Mellor
Arie Van Bennekum …
Alistair cockburn …敏捷过程意味着轻量级和适应性过程,敏捷地反映不断变化的要求。我们正在通过亲身实践以及帮他人实践,揭示更好的软件开发方法。通过这项工作,我们认为: 个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
虽然上述右项也有价值,但我们认为左项具有更大的价值。敏捷UP(The Agile UP)敏捷UP(The Agile UP)推荐一个小的活动和制品集,使其简化.
由于UP是迭代的,需求和设计在实现之前是不完整的,他们是通过一系列基于反馈的迭代而显现出来的.
对整个项目没有一个详细计划(detailed plan),只有高层计划(high level plan),称作阶段计划 (Phase Plan)。该计划估计项目各阶段的结束日期和主要的里程碑 ,到达这些里程碑的步骤是不详细的。
详细计划又称迭代计划,仅对下一次迭代做出更详细的计划。详细计划是从迭代到迭代可适应地(adaptively)制定的。UP采纳和应用了敏捷过程的精髓图:2.6 Book organization is related to the UP phases and iterations.
图:2.6 Book organization is related to the UP phases and iterations.
图:本课程涉及的专题和技巧图:本课程涉及的专题和技巧The EndThe End第一讲结束请记下
E-mail: lics@mail.sysu.edu.cn
FTP地址:202.116.76.103 端口:2002
用户名:ss 口令:mse2002
目录:\教学资料\MSE05
\教学资料\工具