软件的系统设计.ppt
《软件的系统设计.ppt》由会员分享,可在线阅读,更多相关《软件的系统设计.ppt(65页珍藏版)》请在三一办公上搜索。
1、,软件工程,软件的系统设计-概要设计陈巧丽,第三章 软件的系统设计,回顾引入:Why to do?可行性研究What to do?需求分析How to do?系统设计,本章从三个阶段介绍了项目中期所要完成的工作,它们是项目的系统分析阶段、系统设计阶段和代码实现阶段。在系统分析阶段,可采用CASE(计算机辅助软件工程)工具确定问题域,进行需求建模,利用数据流图可建立起分析对象模型,然后进行系统的分析合并,再进行测试和验收。本章以实例为驱动,在系统设计阶段进行界面的设计,建立出设计模型,结合第七章面向对象技术和第九章UML的初步知识进行详细设计。在代码实现方面根据具体的软件项目分析软件的开发工具准
2、备,利用中间件技术(中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享系统和网络资源,如ODBC、JDBC、OLE DB等)开发MIS(管理信息系统)等知识。,系统分析与需求分析的区别,需求分析是一个项目的开端,也是项目建设的基石。是对用户需求的定义,对软件系统的描述。在以往建设失败的项目中,80是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。而项目的整体风险往往表现在需求分析不明确、业务流程不合理,用户不习惯或不愿意去用承建方的软件。作为第三方的监理公司,必须提醒承建方、客户方重视需求分析的重要性。系统分析的任务:将
3、用户的业务逻辑转化为程序逻辑,计算时间和成本。根据开发人员的理论知识和实际的经验,人们会采用各种满足实际情况的系统分析、开发方法、步骤以及文档等等。一般情况下,在系统分析书中应该有以下内容(视项目而定):1、系统需求说明说明系统是一个什么样的系统,用市场上现有的系统来类比,用客户(或是我们自己)需要一个什么样的系统进行说明,力求完整。,2、系统资源说明对系统所需要的软件、硬件资源进行说明。描述系统所需要的所有的成本(包括人员、时间、设备、系统、一次性投入资金、持续性投入资金这样的所有资源)。3、系统可行性分析对系统的实施中的资源进行分析,说明投入的合理性和必然性,对其中的所有不可预见性的投入进
4、行合理的量化说明,来说明系统的实施的可行性。系统分析阶段就是要全面了解系统的商业需求和处理要求并制作书面文件,详细地定义信息系统的功能。这一阶段的最根本的目的就是解决系统要做什么的问题-What to do?系统分析准备在进行详细的系统开发前,开发人员必须先理解一些概念,包括方法、模型、工具和技术。,1模型:是对问题做出的一种抽象,它由一组图示符号和组织这些符号的规则组成。建模是问题域中定义软件解的一种方法。建模的目的主要是为了减少问题的复杂性。2.工具 系统开发工具是一些帮助生成模型或其它组件的软件。系统开发人员常用的是CASE工具,如Microsoft Visio、RationalRose
5、等。用了CASE工具,开发软件能更加规范,标准化,从而提高软件开发的效率。3.技术技术就是帮助分析员完成系统开发活动或任务的一组方法。有时一种技术适用于整个生命周期。常在开发过程中使用的技术有:项目管理技术、用户面谈技术、数据建模技术、结构化分析技术、软件测试技术、面向对象分析与设计技术等。4.系统开发方法,方法是一组完成系统开发生命周期每一阶段活动的技术,它提供了完成每一步的详细指导。常用的方法有结构化方法和面向对象方法。本章主要以结构化方法为例。20世纪70年代出现了结构化的系统分析设计方法。结构化系统分析(Structured Analysis,简称SA),是一种简单实用,使用很广的方法
6、。它往往是将一个复杂的系统分解、抽象成为多个简单的子系统;使用自顶向下逐层分解的方式,将一个复杂系统分解,抽象成为多个简单的子系统,如果某个子系统仍然复杂,将其进一步分解。,目前作为针对“软件危机”的最佳对策,面向对象(OO)技术已经引起人们的普遍关注。而许多编程语言(C+、VB、VF、PB、Delphi等)也都推出了支持面向对象的新版本。面向对象方法的基本思想是,从现实世界客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题。面向方法强调直接以现实世界中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中
7、的对象,作为系统的基本构成单位。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。,系统分析阶段的任务主要解决了系统“做什么”的问题,系统设计阶段要解决的任务则是系统“怎么做”的问题。系统分析员审查可行性研究报告、软件项目开发计划、软件需求规格说明书,提出候选的最佳推荐方案,用系统流程图(注意画法,见前面),组成系统物理元素清单,将成本效益分析、系统的进度计划,供专家审定,审定后即进入软件设计阶段。软件设计阶段的主要任务是要实现逻辑模型(DFD和DD等)向物理模型转换,即要解决“系统如何实现”问题,该阶段又可画分为概要设计和详细设计两个阶段。,3.1概要设计,1.基本任务设
8、计软件系统结构:采用某种设计方法,将一个复杂的系统按功能划分成模块。确定每个模块的功能。确定模块之间的调用关系。确定模块之间的接口,即模块之间传递的信息。评价模块结构的质量.数据结构设计:采用“逐步细化”的方法,如采用数据字典描述逐步细化。设计有效的数据结构(如队列,线性表,链表等),大大简化软件模块处理过程的设计。,编写概要设计文档:概要设计说明书。数据库设计说明书:主要给出所使用的DBMS简介、数据库的概要模型、逻辑设计、结果。用户手册:对需求分析阶段编写的用户手册进行补充。修订测试计划,对测试策略、方法、步骤提出明确要求。评审。2、软件设计文档:包括“概要设计说明书”,“详细设计说明书”
9、,“数据库设计说明书”。3、软件设计的基本原理,(一)、模块的概念,1.定义所谓模块,是指具有相对独立性的,由数据说明、执行语句等程序对象构成的集合。程序中的每个模块都需要单独命名,通过名字可实现对指定模块的访问。在高级语言中,模块具体表现为函数、子程序、过程等。一个模块具有输入/输出(接口)、功能、内部数据和程序代码四个特征。模块化是指将整个程序划分为若干个模块,每个模块用于实现一个特定的功能。划分模块对于解决大型复杂的问题是非常必要的,可以大大降低解决问题的难度。,例如,我们设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。对于两个问题P1和P2,如果:C(P1
10、)C(P2)即问题P1的复杂度比P2高,则显然有:E(P1)E(P2)即解决问题P1比P2所需的工作量大。在人们解决问题的过程中,发现存在有另一个有趣的规律:C(P1+P2)C(P1)+C(P2)即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和。也就是说,对于一个复杂问题,将其分解成多个小问题分别解决比较容易。由此我们可以推出:E(P1+P2)E(P1)+E(P2),即将复杂问题分解成若干个小问题,各个击破,所需要的工作量小于直接解决复杂问题所需的工作量。模块化可以降低解决问题的复杂度,从而降低软件开发的工作量。模块化不但可以降低软件开发的难度,而且可以使程序结构清晰,
11、增加易读性和易修改性。此外,模块化还有利于提高代码的可重用性及团队合作开发大型软件的可行性。,模块化和软件成本的关系,(二)、抽象,抽象是人类在解决复杂问题过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节软件系统进行模块设计时,可有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。在较低的抽象层次上,则采用过程化的方法。结构化程序中自顶向下、逐步求精的模块划分思想正是人类思维中运用抽象方法解决复杂问题的体现。此外,在程序设计中运用抽象的方法还能够提高代码的可重用性。,(三)、信息隐蔽,信息隐蔽:在设计和确定模块时,使得一个模块包含的信息对于不
12、需要这些信息的其它模块来说是不能访问的也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。信息隐蔽的目的主要是为了提高模块的独立性,减少将一个模块中的错误扩散到其他模块的机会。,(四)、模块的独立性模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的联系最小且接口是简单的一般采用两个准则度量模块独立性。即模块间耦合和模块内聚,耦合是模块之间的互相连接的紧密程度的度量。内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。,耦合性,模块独立性,模块间的耦合,非直接耦合(
13、Nondirect Coupling)两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。非直接耦合的模块独立性最强。,数据耦合(Data Coupling)一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来传递交换输入、输出信息的(“传值”)。,main()int x,y;printf(x+y=%d,sum(x,y);/*主函数与sum函数之间即为数据耦合关系*/,标记耦合(Stamp Coupling)一组模块通过数据结构(标记)传递记录信息,就是标记耦合。这个标记是某一数据结构的子结构,而不是简单变量(“传地址”)。例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 系统 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5018923.html