软件系统分析与设计DOC.docx
《软件系统分析与设计DOC.docx》由会员分享,可在线阅读,更多相关《软件系统分析与设计DOC.docx(32页珍藏版)》请在冰豆网上搜索。
软件系统分析与设计DOC
第1章软件工程基础知识
1.1软件工程知识体系
●软件需求(SoftwareRequirements)
●软件设计(SoftwareDesign)
●软件构造(SoftwareConstruction)
●软件测试(SoftwareTesting)
●软件维护(SoftwareMaintenance)
●软件配置管理(SoftwareConfigurationManagement)
●软件工程管理(SoftwareEngineeringManagement)
●软件工程过程(SoftwareEngineeringProcess)
●软件工程工具和方法(SoftwareEngineeringToolsandMethods)
●软件质量(SoftwareQuality)
1.2软件生存周期与软件开发模型
●1.2.1软件生存周期
●Boehm定义的软件生存周期模型
●GB8566-1988定义的软件生存周期模型
●GB/T8566-1995定义的软件生存周期过程模型
●GB/T8566-2001定义的软件生存周期过程模型
●UP定义的软件生存周期模型
●1.2.2软件开发模型
●瀑布模型(waterfallmodel)
●快速原型模型(rapidprototypemodel)
●演化模型(evolutionarymodel)
●增量模型(incrementalmodel)
●螺旋模型(spiralmodel)
●喷泉模型(waterfountainmodel)
1.3软件质量模型与软件质量管理
●1.3.1软件质量模型
●软件产品的内部质量、外部质量和使用质量
●质量特性、质量子特性和度量
●功能性:
适宜性、准确性、互用性、依从性、安全性
●可靠性:
成熟性、容错性、可恢复性
●可用性:
可理解性、易学性、可操作性
●效率:
时间特性、资源特性
●可维护性:
可分析性、可修改性、稳定性、可测试性
●可移植性:
适应性、易安装性、一致性、可替换性
●1.3.2软件质量管理
●质量需求分析
●质量计划
●质量保证
●质量控制
●质量改进
●软件质量管理体系
1.4软件配置管理
●1.4.1软件配置项与基线
●计算机软件配置项(CSCI)
●基线(baseline)
●功能基线(functionalbaseline)
●指派基线(allocatedbaseline)
●产品基线(productbaseline)
●1.4.2软件配置管理过程
●对象标识
●版本控制
●变化控制
●配置审计
●配置报告
1.5软件过程管理
●1.5.1软件能力成熟度模型(CMM)
●CMM的5个等级:
初始级、可重复级、已定义级、已管理级、优化级
●CMM的关键过程域(KPA):
需求管理、软件项目计划、软件项目跟踪和监控、软件子合同管理、软件质量保证、软件配置管理、组织级过程焦点、组织级过程定义、培训大纲、集成软件管理、软件产品工程、组间协调、同行评审、定量过程管理、软件质量管理、缺陷预防、技术变更管理、过程变更管理
●1.5.2软件过程与软件能力成熟度评估
●第一步,建立评估组
●第二步,填写提问单
●第三步,响应分析
●第四步,现场考察
●第五步,提出调查发现清单
●第六步,制作关键过程域(KPA)剖面图
●1.5.3软件过程改进
●第一步,比较“目标状态”与“目前状态”,找出所有差距
●第二步,确定改进目标
●第三步,制定改进计划
●第四步,执行改进计划
●第五步,总结本轮改进经验,开始下一轮改进
1.6小节
●软件工程学是研究如何有效地组织和管理软件开发的工程学科。
●软件产品所要经历的计划、分析、设计、编程、测试、维护直至被淘汰这样一个全过程被称为软件生存周期。
用不同的方式将软件生命周期中的所有开发活动组织起来,可以形成不同的软件开发模型。
●软件质量就是软件与明确地和隐含地定义的需求相一致的程度。
软件质量管理是指软件开发机构为保证软件项目满足客户需求所要实施的质量活动。
●软件配置管理是在软件的整个生命期内管理变化的一组活动,目标是使变化更正确且更容易被适应。
●软件过程是指人们用于开发和维护软件及其相关产品的一系列活动,包括软件工程过程和软件管理过程。
软件过程管理的目的就是提升软件组织的提高软件开发能力。
第2章项目管理基础知识
2.1项目与项目管理
●2.1.1项目
●项目是在特定条件下、具有特定目标的一次性任务,是在一定时间内、满足一系列特定目标的多项相关工作的总和。
1.项目的临时性
●项目的独特性
1.项目的渐进性
2.1.2项目管理
●项目管理就是将各种知识、技能、工具和技术应用于项目之中,以达到项目的要求。
●项目范围
●项目时间
●项目成本
●项目质量
2.2项目管理过程与过程组
●2.2.1过程与过程组
●过程就是一组为了完成一系列事先指定的产品、服务或成果而需执行的互相联系的行动和活动。
软件项目管理过程可归纳为五个过程组。
●启动过程组(initiatingprocessgroup)
●规划过程组(planningprocessgroup)
●实施过程组(executingprocessgroup)
●监控过程组(monitoringandcontrollingprocessgroup)
●收尾过程组(closingprocessgroup)
●2.2.2项目管理过程的交互作用
●项目管理过程并不是互不相干的一次性事件
●项目管理过程组之间是一种前后衔接、承前启后的关系
●项目管理过程组之间有时又是一种时间交错、空间并行的关系
●项目管理过程组之间还是一种信息收集、存储、处理和传递的关系
●某些过程组的关联具有重复迭代性
●规划过程组、执行过程组和监控过程组之间形成一种闭环的关系
●过程组的交互作用往往还会跨越项目阶段
●项目阶段和过程之间有相互联系
●2.2.3项目管理过程的裁剪
●不同类型的软件项目应选用不同的项目管理过程
●不同阶段的软件项目应选用不同的项目管理过程
●不同软件项目的管理过程会有不同的具体过程
●不同软件项目的管理过程会有不同的具体过程顺序
●不同软件项目的管理过程会有不同的条件与约束
●不同软件项目的管理过程会有不同的简化程度
●不同软件项目的管理过程需要不同的集成程度
●项目变更会使项目管理过程随之变化
2.3项目管理知识体系
●项目综合管理
●项目范围管理
●项目时间管理
●项目成本管理
●项目质量管理
●项目人力资源管理
●项目沟通管理
●项目风险管理
●项目采购管理
2.4小节
●项目管理就是将项目管理知识、技能、工具和技术应用于项目活动之中,可以将软件项目管理活动视做一系列相互联系的过程。
●项目管理过程可归纳为5个过程组:
启动过程组、规划过程组、实施过程组、监控过程组与收尾过程组。
●项目管理包括9个知识领域:
项目综合管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理与项目采购管理。
第3章软件开发技术
3.1软件开发平台
●3.1.1Microsoft.NET平台
●Microsoft.NETFramework:
.NETCLR(通用语言运行环境);.NETBCL(基础类库);ASP.NET;ADO.NET。
●MicrosoftVisualStudio.NET:
ADO.NET组件;XML数据组件;Windows表单组件;ASP.NET应用服务;ASP.NETWeb表单;Web服务支持。
●3.1.2J2EE平台
●组件-容器:
搭建体系架构
●平台标准服务
●多层应用模型
3.1.3Microsoft.NET与J2EE的异同
●类似的平台基础构造
●相同的三层/多层体系
1.不同的移植、性能和扩展
●在Web支持方面的比较
●第三方厂商的支持
1.潜在的市场
3.2中间件技术
●3.2.1中间件简介
●终端仿真/屏幕转换中间件
●数据访问中间件
●远程过程调用中间件
●消息中间件
●交易中间件
●对象中间件
●Web服务器中间件
●安全中间件
●3.2.2消息代理中间件
●构件化的结构
●可恢复性、易于管理、灵活性
●具有数据转换设施。
●可靠高效的通信
●多样的管理能力
●丰富的应用开发环境
●3.2.3面向数据库的中间件
●ODBC
●JDBC
●数据库网关
3.3构件技术
●3.3.1构件库
●构件的存储
●构件的分类与检索机制
●构件库的编目
●构件库的管理和维护
●3.3.2构件模型
●3C模型
●刻面(Facet)模型
●青鸟模型
●3.3.3构件的属性与特点
●构件是可独立配置的单元,构件必须自包容。
●构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节。
●构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互。
●构件没有个体特有的属性,最多仅有特定构件的一份副本。
●3.3.4构件与中间件
●中间件,本质上是对分布式应用的抽象,中间件与系统架构实际上是从两种不同的角度看待软件的中间层次。
●中间件促进了构件化软件,基于中间件开发的应用系统是构件化的,中间件提供了构件的体系结构,极大提高了构件化软件开发的效率和质量。
●构件化的软件设计思想在中间件发展中起到了重要的作用。
3.4小节
●Microsoft.NET平台和J2EE平台是目前最常用的两大软件开发平台。
作为彼此竞争的应用平台,Microsoft.NET平台和J2EE平台在目标和体系结构上极其相似,但在实现上又完全不同。
二者总的关系是:
异中有同,同中有异。
●中间件是处于操作系统和应用程序之间的软件。
中间件保持了平台的透明性,抽象了典型的应用模式。
应用软件开发者可以基于标准的中间件进行再开发,而不必再考虑操作系统的问题。
●构件是可复用的软件成份,可被用来构造其他软件。
中间件促进了构件化软件,应用系统在中间件提供的环境中可以更好地集中于业务逻辑上,并以构件的形式存在。
构件思想也反过来推动了中间件的发展。
第4章软件项目规划
4.1项目策划
●从政策导向中寻找项目机会
1.从市场需求中寻找项目机会
●从技术发展中寻找项目机会
1.从特定事件中寻找项目机会
4.2项目可行性分析
4.2.1技术可行性分析
●项目的必要性分析
●软件组织水平与能力分析
●项目技术来源分析
●与项目相关的专利分析
●项目负责人及技术骨干的资质分析
1.项目总体技术方案分析
●项目创新点分析
●项目技术风险分析
●项目技术成熟性分析
●4.2.2项目投资及效益分析
●项目投资预算分析
●项目投资来源分析
●市场需求与产品销售额分析
●产品成本、利润与盈亏平衡点分析
●投资回收期、投资收益率分析
●社会效益分析
4.3项目论证、评估与立项
●4.3.1项目论证与评估的基本概念
●项目论证是指对拟实施项目技术上的先进性、成熟性、适用性,经济上的合理性、盈利性,实施上的可能性、风险性进行全面科学的综合分析,为项目决策提供客观依据的一种技术经济研究活动。
●项目评估指在项目可行性研究的基础上,项目投资者或项目主管部门或其委托的第三方权威机构根据国家颁布的政策、法律、法规、标准和技术规范,对拟开发项目的市场需求、技术先进性和成熟性、预期经济效益和社会效益等进行评价、分析和论证,进而判断其是否可行的过程。
●项目论证与评估的内容、程序和依据大同小异,只是侧重点稍有不同,有时不加区分或合并进行。
●4.3.2项目可行性报告的真实性评估
●项目申请单位的资质真实性评估
●项目申请单位的财务真实性评估
●项目申请单位的技术真实性评估
●其他事项的真实性评估
●4.3.3项目可行性报告的客观性评估
●技术创新点的客观性评估
●技术先进性与成熟性的客观性评估
●信息安全措施的客观性评估
●采用标准、规范的先进性、合理性评估
●项目风险及应对方案的客观性评估
●其他事项的客观性评估
●4.3.4评估报告
●项目概况
●评估目标
●评估依据
●评估内容
●评估机构与评估专家
●评估过程
●详细评估意见
●存在或遗漏的重大问题
●潜在的风险
●评估结论
●进一步的建议
●4.3.5项目立项
项目立项的决定应当由项目团队之外的、适当级别的、并为项目出资的项目发起人或投资人作出,通常以项目立项决定(通知)书、项目批文、项目许可证书和项目任务书等形式发布。
4.4项目开发计划
●1.引言
●2.引用文件
●3.项目最终成果
●4.需求与约束
●5.系统开发总体计划
●6.项目开发详细计划
●7.进度表与活动网络图
●8.项目组织与资源
●9.培训
●10.项目估算
●11.风险管理
●12.支持条件
●13.注解
●14.附录
4.5小节
●软件项目规划的任务主要包括项目策划、可行性研究、论证、评估、立项与项目开发计划的制订工作。
●项目策划,也称项目机会研究,其目的是选择投资机会、鉴别投资方向。
●项目可行性分析的目的是确定以下问题:
项目有无必要?
能否完成?
是否值得去做?
●项目论证与评估的目的是审查项目可行性研究的可靠性、真实性和客观性,为项目主管部门或投资机构的立项决策提供科学依据。
●项目开发计划是项目规划阶段的重要成果,编写软件项目开发计划时可依据《GB/T8567-2006计算机软件文档编制规范》中的软件开发计划模版。
第5章系统分析方法学
5.1系统需求分析与软件需求
●系统需求:
系统总体功能和业务结构;硬件系统需求;软件系统需求;硬件系统和软件系统之间的接口需求。
●软件需求:
软件能力需求;软件外部接口需求;软件内部接口需求;软件内部数据需求;适应性需求;安全性需求;保密性和私密性需求;软件环境需求;计算机资源需求;软件质量需求;设计和实现的约束;数据需求;操作需求;故障处理需求;算法需求;相关人员需求;相关培训需求;相关后勤需求;包装需求;其他需求。
5.2结构化分析
●结构化分析(SA)方法是一种面向数据流的需求分析方法,基本思想是自顶向下逐层分解。
●数据流图(DFD)和数据字典(DD)是结构化分析最常用的工具。
●数据流图用来描述数据流从输入到输出的变换流程。
●数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
●数据流图和数据字典共同构成系统的逻辑模型。
5.3原型化方法
●5.3.1原型化方法与结构化方法的比较
●结构化方法的假设:
所有的需求都能被预先定义;修改定义不完备的系统代价昂贵且实施困难;项目参加者之间能够清晰进行准确的通信;静态描述或图形模型对应用系统的反映是充分的;结构化方法的生命周期的各阶段都是固有正确的。
●原型化方法的假设:
并非所有的需求在系统开发以前都能准确地说明;有快速的系统建造工具;项目参加者之间通常都存在通信上的障碍;需要实际的、可供用户参与的系统模型;需求一旦确定,就可以遵从严格的方法;大量的反复是不可避免的、必要的,应该加以鼓励。
●5.3.2原型生命周期及其策略
●原型生命周期划分:
选择开发方法;识别基本需求;开发工作模型;模型验证;修正和改进;判定原型完成;差别细部说明;严格说明细部;判定原型效果;整理原型和提供文档。
●原型化的策略:
建立数据模型;利用组合工程;剪裁和粘贴;用系统举例;字典驱动;文档的自动化;小的原型化队伍;交互式开发平台;陈述性规格说明;终端用户报表生成器;专业原型化人员;开发人员参加原型化。
5.4面向对象的分析
●5.4.1面向对象方法学概述
●对象与封装
●类
●继承与多态性
●消息通信
●面向对象方法学的优点
●5.4.2面向对象的分析方法
●OMT方法简介
●建立对象模型
●建立动态模型
●建立功能模型
5.5小节
●系统分析涉及系统需求的获取、分析、规格说明和确认。
系统需求可分为以下几个方面:
系统总体功能和业务结构、硬件系统需求、软件系统需求、硬件系统和软件系统之间的接口需求。
●常用的系统分析方法包括结构化分析、原型化方法和面向对象的分析。
第7章系统分析文档
7.1系统/子系统需求规格说明
●引言
●引用文件
●需求:
要求的状态和方式;需求概述;系统能力需求;系统外部接口需求;系统内部接口需求;系统内部数据需求;适应性需求;安全性需求;保密性和私密性需求;操作需求;可使用性、可维护性、可移植性、可靠性和安全性需求;故障处理需求;系统环境需求;计算机资源需求;系统质量需求;设计和构造的约束;相关人员需求;相关培训需求;相关后勤需求;包装需求;其他需求;需求的优先次序和关键程度
●合格性规定
●需求可追踪性
●非技术性需求
●尚未解决的问题
●注解
●附录
7.2接口需求规格说明
●引言
1.引用文件
●需求
●合格性规定
1.需求可追踪性
●注解
●附录
7.3软件需求规格说明
●引言
●引用文件
●软件需求:
要求的状态和方式;需求概述;需求规格;软件能力需求;软件外部接口需求;软件内部接口需求;软件内部数据需求;适应性需求;安全性需求;保密性和私密性需求;软件环境需求;计算机资源需求;软件质量需求;设计和实现的约束;数据需求;操作需求;故障处理需求;算法需求;相关人员需求;相关培训需求;相关后勤需求;包装需求;其他需求;需求的优先次序和关键程度
●合格性规定
●需求可追踪性
●尚未解决的问题
●注解
●附录
7.4小节
●根据《GB/T8567-2006计算机软件文档编制规范》(Specificationforcomputersoftwaredocumentation),系统分析文档主要包括系统/子系统需求规格说明(SSS)、接口需求规格说明(IRS)和软件需求规格说明(SRS)。
●系统/子系统需求规格说明(SSS)为一个系统或子系统指定需求以及保证每个需求得到确认所使用的方法。
●接口需求规格说明(IRS)描述为实现一个或多个系统、子系统、硬件配置项(HWCI)、计算机软件配置项(CSCI)、用户
●软件需求规格说明(SRS)描述对计算机软件的需求以及确保每个需求得到确认所使用的方法。
第8章系统设计基础
8.1系统设计概述
●8.1.1系统级设计决策
●系统级设计决策,是指系统行为的设计决策(忽略其内部实现,从用户角度出发,描述系统将怎样运转以满足需求)和其他对系统部件的选择和设计产生影响的的决策。
●系统级设计决策内容:
有关系统接收的输入和产生的输出的设计决策;对每个输入或条件进行响应的系统行为的设计决策;系统数据库/数据文件如何呈现给用户的设计决策;为满足安全性、保密性和私密性需求所选用的方法;硬件或硬软件系统的设计和构造选择;为了响应需求而作出的其他系统级设计决策。
●8.1.2系统架构设计
●总体设计
●系统部件设计
●动态交互设计
●接口设计
●8.1.3运行设计
●系统初始化——说明本系统的初始化过程。
●运行控制——说明对系统施加不同的外界运行控制时所引起的各种不同的运行组件组合、每种运行所经历的内部组件和支持软件、每一种外界运行控制的方式方法和操作步骤、每种运行组件组合将占用各种资源的情况以及系统运行时的安全控制。
●运行结束——说明本系统运行的结束过程。
●8.1.4系统出错处理设计
●出错信息——包括出错信息表、故障处理技术等。
●补救措施——说明故障出现后可能采取的补救措施。
●8.1.5系统维护设计
●检测点的设计——说明在系统中专门安排用于系统检查与维护的检测点。
●检测专用组件的设计——说明在系统中专门安排用于系统检查与维护的专用组件。
8.2软件设计概述
●8.2.1软件级设计决策
●软件级设计决策是指软件行为的设计决策(忽略其内部实现,从用户角度出发,描述软件将怎样运转以满足需求)和其他影响组成该软件的软件配置项的选择与设计的决策。
●软件级设计决策内容:
有关软件接收的输入和产生的输出的设计决策;对每个输入或条件进行响应的软件行为的设计决策;有关数据库/数据文件如何呈现给用户的设计决策;为满足安全性、保密性和私密性需求所选用的方法;为响应需求而作出的其他软件级设计决策。
●8.2.2软件架构设计
●程序结构设计
●全局数据结构设计
●软件配置项设计
●动态交互设计
●接口设计
●8.2.3软件详细设计
●软件配置项设计决策
●软件配置项设计中的约束、限制或非常规特征
●软件配置项使用的编程语言考虑
●软件配置项使用的过程式命令选取
●软件配置项的局部数据与软件配置项的输入或输出数据设计
●软件配置项的逻辑设计
8.3设计原则
●8.3.1组件化
●组件的可分解性
●组件的可组装性
●组件的可理解性
●组件的连续性
●组件的保护性
●8.3.2抽象
●抽象就是抽出事物的本质特性而暂时忽略其细节,使得不同的事物可以当作相同的事务来处理。
●软件工程过程的每一步都是对软件解法的抽象层次的一次精化。
●软件设计中的抽象机制主要包括类、模板、过程抽象、数据抽象和控制抽象。
●8.3.3内聚与耦合
●内聚是指一个组件内各个元素彼此结合的紧密程度
●内聚种类(由低到高排列):
偶然内聚;逻辑内聚;瞬时内聚;过程内聚;通信内聚;顺序内聚;功能内聚
●耦合是指一个软件结构内不同组件之间的互连程度
●耦合种类(由高到低排列):
内容耦合;公共耦合;外部耦合;控制耦合;标记耦合;数据耦合;非直接耦合
●组件的高内聚、低耦合原则称为组件独立原则
●8.3.4封装与信息隐蔽
●第一,组件是其全部属性和全部服务紧密结合而形成的一个不可分割的整体。
●第二,组件是一个不透明的黑盒子,表示组件状态的数据和实现操作的代码都被封装在黑盒子里面。
使用一个组件的时候,只需知道它向外界提供的接口形式,无须知道它的数据结构细节和实现操作的算法。
●8.3.5启发式规则
●深度、宽度、扇出与扇入
●作用域和控制域
●功能的可预测性
8.4设计视图
●8.4.1架构视图(静态视图)
●架构描述语言(ADL)
●类图与对象图
●组件图
●协作责任卡(CRC)