没有合适的资源?快使用搜索试试~ 我知道了~
首页需求分析与系统设计总结.docx
资源详情
资源评论
资源推荐

《需求分析与系统设计》总结
课程体系:
主要目标:
课程理论化的知识比较多,需要理解和记忆;整个课程体系从全局的高度上概括了软
件开发过程中的需求分析和系统设计,详细介绍了开发流程,利用可视化工具对开发
中的实际问题做了形象的表达,是项目开发前期的必要准备;是一门培养项目经理的
课程。
重点难点:
数据持久化
开发模型与方法
学会使用画图工具
一. 软件过程
软件开发的本质

软件开发的不变事实:
一致性:应用软件必须与所基于的特定硬件软件明天相符合也必须与现有的信息
系统相符合,并集成在一致。
可变性:业务过程和需求会不断的变化。
不可见性:负责输出的代码通常深深地隐藏在”不可见”的程序语句,二进制代码
库,以及周边的系统软件中
软件开发的意外事件的三个因素:利益相关者,过程,建模
软件开发生命周期
软件生命周期的 个阶段:业务分析,系统设计,实现,集成和部署,运行和维护。
业务分析确定和详细说明需求,开发和集成系统的功能和数据模型,并捕获非功能性
需求和其他系统约束。
系统设计:包括体系结构设计和详细设计。对涉及客户端的用户界面和服务器端的数
据库对象的程序设计进行解释。提出影响系统可理解性,可维护性和可扩展性的各种
设计问题,并对其文档化。
实现:对客户端应用程序和服务器数据库进行编码,测试等,保证系统实现符合系统
设计。
集成和部署:将系统的组成构建组装在一起,以及与外部系统的对接。
运行和维护:使用新系统替换老系统,保障新系统的正常运行,并承接对新系统的修
正和扩展工作。
软件生命周期各阶段输入输出
开发模型与方法

主要的开发模型与方法
瀑布模型
要求每一个阶段都有明确的文档产出,对于严格的瀑布模型每一个阶段都不
应该重叠,而应该在评审通过、相关的产出物都已经实现后才能够进入到下一个
阶段。就是说瀑布模型一般是按顺序执行的
螺旋模型
螺旋模型并不是一个完全独立的模型,而是与瀑布模型有着内在联系。它遵
从瀑布模型“需求→架构→设计→编码→测试”的路线。其最大的特点是整个开发过程
是迭代的和风险驱动的。就是通过将瀑布模型的多个阶段转化到多个迭代过程中,以
减少项目的风险。
敏捷开发
敏捷开发是一种价值观与原则,指导我们更加高效的开发。以用户需求为核心,采用
迭代时间周期、增量循序渐进,功能模块的方式开发软件,目的在于快速覆盖、
响应市场需求
特点:迭代开发,增量交付,开发团队和用户反馈推动产品开发,持续集成,开发团
队自我管理
面向方面开发
的主要目标是通过
识别所谓的横切关注点
,以及为这些关注点
生产独
立的软件模块
来生产出更加模块化的系统。这些模块成为方面,利用成为
方面编
排
的过程将方面集成起来。
的几个概念:
方面:功能模块, 将系统分解成许多方面,这些方面构成了核心功能构
建,称为基础代码。
连接点:软件组成的预定义的点,例如对方法的调用,对属性的访问,对象的
实例化和抛出异常等。
通知:需要为连接点采取的特定动作称为通知(例如,检查用户的安全性权限,
或开始一个新的业务事实)。通知可以在链接点执行之前运行(前置通知),
也可以在链接点完成之后运行(后置通知),或者可以取代连接点的执行(环
绕通知)
方面编排:方面构成了单独的方面代码,为了这样的系统能够运行,软件构件
必须由方面组成,必须将方面编排到程序的逻辑流中,这样的一个软件组成过
程称为方面编排。
切入点:同一个通知可以应用到程序的许多连接点,与单个通知相关的一组链
接称为切入点。
二. 需求确定
从业务过程到解决方案构想

过程层次建模:
业务过程模型可以通过多个不同大小的过程来定义,从全业务范围内的过程到单独
一个人完成的过程。
过程和过程分解一个过程至少有一个输入流和一个输出流。过程获得控制,主要通
过将输入流转变为输出流来完成响应的活动。过程可以是原子过程或者复合过程,原
子过程不包含任何子过程。复合过程通过子过程来描述它的行为。
过程层次图对过程模型的图形化展示
业务过程建模:
流对象
事件:某些“发生”的事物,通常由一个原因(触发器)或者产生一个影响。
活动:某些必须进行的工作,可能是一项任务或者一个子过程
路由:用来控制多个序列流的分支和聚合。
连接对象:用来连接流对象。
序列流:用来表示一个过程中活动完成的序列。
消息流:用来表示准备发送和接收消息的两个业务实体(过程参与者)之间的消息(数
据)
关联:用来关联两个流对象,或者关联一个人工制品与一个流对象。
泳池:表示一个过程中的业务实体(参与者)。
人工制品:提供附加的建模灵活性,允许我们扩展基本表示法来应对特殊的建模环境。
可以预定义 种类型的人工制品:数据对象,组和注释
数据对象:表示活动需要的数据或者活动产生的数据。

组:是不影响过程序列流的一组活动
注释:为业务过程图的读者提供附加的文本信息。
解决方案构想
常规开发手工的,单机的,从零开始的软件开发覆盖了软件开发过程的所有阶段(生命
周期)。
基于包开发通过定制先前存在的软件包来得到解决方案。
基于构件开发通过集成来自多家销售商或者商业伙伴的软件构件来构件解决方案。
需求引导
系统需求:
功能性需求:定义系统期望的服务(服务陈述)和系统必须遵守的约束(约束陈
述)。
包括:系统的范围,必要的业务功能和所需的数据结构
非功能性需求:非功能性需求本质上不是行为的,而是系统开发和实现过程中的约
束。
非功能性需求包括:可用性,可复用性,可靠性,性能 ,效率 ,适应性
可用性:定义使用系统的容易程度。当一个系统更容易使用的使用,它就具有更强的可
用性。文档和帮助实施,为高效使用提供必要的培训,用户界面的美观和一致性,错误处
理等,这些都决定了可用性。
可复用性:定义在新系统的开发中,重复使用之前已实现的软件构件的容易程度。可
复用性反映了软件开发团队和作为工业领域的软件工程的成熟度。
可靠性:与系统失效的频率和严重性以及系统从失效中恢复的程度相关。可靠性由系
统运行时间内所要求的系统有效性,可接受的失效之间的平均时间,产生结果的正确性等
因素决定。一个可靠的系统是可信任,用户能够信任并依赖它的。
性能:通过系统响应时间,事务处理时间,资源开销,可能的并发用户数量等的期望
来确定。
2.客户和领域专家面谈:
3 种问题避免:固执已见的问题,带偏见的问题,强加的问题
5W 原则:what:何事,who:何人,when:何时,where:何地,why:为什么
3.需求引导的方式:(传统方法&现代方法)
调查表:作为面谈的补充形式。
文档和软件系统的研究:文档和软件系统的研究是发现用例需求和领域知识需
求的宝贵技术。用例而需求通过研究已有的企业文档和系统表格/报告来发现。
对用例需求最有价值的了解方式之一是缺陷的记录和现有系统的变更请求。
原型法:是最常使用的需求引导方法。
通常,当使用其他方法很难从客户那里获得需求时,系统原型是一种非常有效的需求引导方法。
剩余36页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0