软件工程概要设计.ppt

上传人:王** 文档编号:168450 上传时间:2023-03-10 格式:PPT 页数:56 大小:655KB
下载 相关 举报
软件工程概要设计.ppt_第1页
第1页 / 共56页
软件工程概要设计.ppt_第2页
第2页 / 共56页
软件工程概要设计.ppt_第3页
第3页 / 共56页
软件工程概要设计.ppt_第4页
第4页 / 共56页
软件工程概要设计.ppt_第5页
第5页 / 共56页
软件工程概要设计.ppt_第6页
第6页 / 共56页
软件工程概要设计.ppt_第7页
第7页 / 共56页
软件工程概要设计.ppt_第8页
第8页 / 共56页
软件工程概要设计.ppt_第9页
第9页 / 共56页
软件工程概要设计.ppt_第10页
第10页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程概要设计.ppt》由会员分享,可在线阅读,更多相关《软件工程概要设计.ppt(56页珍藏版)》请在优知文库上搜索。

1、第七讲第七讲 概要设计概要设计 了解软件设计工程及其研究内容了解软件设计工程及其研究内容 理解概要设计的主要内容理解概要设计的主要内容 理解概要设计的过程理解概要设计的过程 掌握概要设计主要原则掌握概要设计主要原则 理解体系结构设计理解体系结构设计 掌握模块划分特征掌握模块划分特征 掌握层次图掌握层次图软件生命周期软件生命周期需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期设计人员把分析的结果设计人员把分析的结果设计图纸设计图纸 程序员拿着设计图纸编写代码程序员拿着

2、设计图纸编写代码需求规格说明书概要设计概要设计 模块模块 1 1 模块模块 2 2 模块模块 3 3 模块模块4 4 模块模块 5 5 模块模块 6 6 设计图纸设计图纸-软件结构图软件结构图模块模块4设计设计详细设计详细设计需求分析成果软件设计工程软件设计工程v设计工程就是把需求分析过程中确定下来的用设计工程就是把需求分析过程中确定下来的用户需求定义书户需求定义书(What=(What=做什么做什么) )变为能够进行实变为能够进行实际操作的设计说明书(际操作的设计说明书(How=How=怎样做)的工程。怎样做)的工程。v设计工程是一个将系统的需求规格转换成软件设计工程是一个将系统的需求规格转

3、换成软件系统的说明过程。系统的说明过程。v从多个可能的思路中找到最佳的解决方案。其从多个可能的思路中找到最佳的解决方案。其任务包括构建系统框架,设计系统功能,描述任务包括构建系统框架,设计系统功能,描述系统流程,建立系统的数据模型、接口模型及系统流程,建立系统的数据模型、接口模型及界面模型,形成系统的逻辑结构,告诉程序员界面模型,形成系统的逻辑结构,告诉程序员软件系统应该软件系统应该“怎样做怎样做”。n从工程管理角度来看,软件设计分两步完成:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计和详细设计。n概要设计概要设计将软件需求将软件需求转化为软件体系结构转化为软件体系结构

4、确定系统级接口确定系统级接口全局数据结构或数据库模式。全局数据结构或数据库模式。n详细设计详细设计确立每个模块的实现算法和局部数据结构确立每个模块的实现算法和局部数据结构用适当方法表示算法和数据结构的细节用适当方法表示算法和数据结构的细节v软件设计是后续开发步骤及软件维护工作的基软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系础。如果没有设计,只能建立一个不稳定的系统结构。统结构。设计设计编码编码测试测试维护维护测试测试编码编码维护维护有软件设计有软件设计 没有软件设计没有软件设计Windows NTWindows NT的一位系统设计师拥有的一位系统设计师拥有8

5、 8辆法拉利跑车辆法拉利跑车,让,让MicrosoftMicrosoft公司的一些程序员十分眼红。但你公司的一些程序员十分眼红。但你只能羡慕而不能愤恨,因为并不是每个程序员都有只能羡慕而不能愤恨,因为并不是每个程序员都有本事成为复杂软件系统的设计师。系统设计要比纯本事成为复杂软件系统的设计师。系统设计要比纯粹的编程困难得多。即便你清楚客户的需求,却未粹的编程困难得多。即便你清楚客户的需求,却未必知道应该设计什么样的软件系统必知道应该设计什么样的软件系统既能挣最多既能挣最多的钱又能让客户满意的钱又能让客户满意研究内容研究内容v主要内容:体系结构设计、模块设计、数据结主要内容:体系结构设计、模块设

6、计、数据结构与算法设计、用户界面设计构与算法设计、用户界面设计v 体系结构体系结构就如同人的骨架。如果某个家伙的骨架是猴就如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。,不会成为人。v 模块模块就如同人的器官,具有特定的功能。人体中最出就如同人的器官,具有特定的功能。人体中最出色的模块设计之一是手,手只有几种动作,却能做无色的模块设计之一是手,手只有几种动作,却能做无限多的事情。限多的事情。研究内容研究内容v 数据结构与算法数据结构与算法就如同人的血脉和神经,它让器官具有生就如同人的血脉和神经,它让

7、器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出就只能发出“啊啊”“”“呜呜”的声音,等于丧失了说话的功能(所以聋的声音,等于丧失了说话的功能(所以聋子天生就是哑巴),可人们却又能用手势代替说话。子天生就是哑巴),可人们却又能用手势代替说话。v 用户界面用户界面就如同人的外表,最容易让人一见钟情或一见恶就如同人的外表,最容易让人一见钟情或一见恶心。象人类

8、追求心灵美和外表美那样,软件系统也追求(心。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。内在的)功能强大和(外表的)界面友好。研究内容研究内容v 在进行系统设计时,我们要深情地关注在进行系统设计时,我们要深情地关注软件的质量因软件的质量因素素,如正确性与精确性、性能与效率、易用性、可理,如正确性与精确性、性能与效率、易用性、可理解性与简法性、可复用性与可扩充性等等。解性与简法性、可复用性与可扩充性等等。v 即使把系统设计做好了,也并不意味着就能产生好的即使把系统设计做好了,也并不意味着就能产生好的软件系统。在程序设计、测试、维护等环节还要做大软件系统。在

9、程序设计、测试、维护等环节还要做大量的工作,无论哪个环节出了差错,都会把好事搞砸量的工作,无论哪个环节出了差错,都会把好事搞砸了。了。 据说上帝把所有的女士都设计成天使,可是天使们在下凡时据说上帝把所有的女士都设计成天使,可是天使们在下凡时有些双脚先着地,有些脸先着地。上帝的这一疏忽让很多女有些双脚先着地,有些脸先着地。上帝的这一疏忽让很多女孩伤透了心。孩伤透了心。v 我们在开发软件时,一定要吸取这个教训。我们在开发软件时,一定要吸取这个教训。概要设计概要设计v概要设计的主要任务是把需求分析得到的模型概要设计的主要任务是把需求分析得到的模型转换为转换为软件结构和数据结构软件结构和数据结构。v设

10、计软件结构设计软件结构的具体任务是:将一个复杂系统的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。调用关系、确定模块间的接口及人机界面等。v数据结构设计数据结构设计包括数据特征的描述、确定数据包括数据特征的描述、确定数据的结构特性、以及数据库的设计。的结构特性、以及数据库的设计。v概要设计建立的是目标系统的逻辑模型,与计概要设计建立的是目标系统的逻辑模型,与计算机无关。算机无关。1.1.主要内容主要内容v 1)软件的总体结构和模块外部设计。v 2)软件处理流程设计。 v 3)确定软件的功能并分配

11、。 v 4)数据结构设计。v 5)网络及接口设计。v 6)运行设计。v 7)出错处理设计。v 8)性能可靠性及安全保密设计。v 9)维护设计。2.2.设计过程设计过程编码编码测试测试设计设计信息描述信息描述功能描述功能描述行为描述行为描述其他需求其他需求总体结构设计总体结构设计数据设计数据设计过程设计过程设计 程序模块程序模块集成并确集成并确认的软件认的软件3.3.设计原则设计原则v总体设计的总原则是:由宏观到微观、逐步求精的原则,定性定量分析相结合、分解与协调相结合和模型化方法,并要兼顾系统的一般性、关联性、整体性和层次性。v根据系统的总体结构、功能、任务和目标的要求分解系统,使各子系统之间

12、互相协调配合,实现系统的整体优化。v具体原则如下:3.13.1模块化模块化v把整个系统划分成若干个模块,每个模块完成一把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的个子功能,将多个模块组织起来实现整个系统的功能。功能。v 模块的三个属性:模块的三个属性:功能功能-即指该模块实现什么样的功即指该模块实现什么样的功能。能。逻辑逻辑-即描述模块内部怎么做。即描述模块内部怎么做。状态状态-是指是指该模块使用时的环境和条件。该模块使用时的环境和条件。v模块化设计方法强调清楚地定义每个模块的功能模块化设计方法强调清楚地定义每个模块的功能和它的输入和它的输入/ /输出参

13、数,而模块的实现细节隐藏在输出参数,而模块的实现细节隐藏在各自的模块之中,与其它模块之间的关系可以是各自的模块之中,与其它模块之间的关系可以是调用关系,因此模块化程序易于调试和修改。调用关系,因此模块化程序易于调试和修改。v随着模块规模的减小,模块的开发成本减少,随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块但是模块之间的接口变得复杂起来,使得模块的集成成本增加。的集成成本增加。最小成本区最小成本区M模块成本模块成本接口成本接口成本总成本总成本软件软件开发开发工作工作量量 模块数模块数 3.23.2抽象和逐步求精抽象和逐步求精v抽象是指抓住事物的本质特性而暂时

14、不考虑其细节的方法。v逐步求精是指为了集中精力解决主要问题而尽量推迟并逐步考虑细节问题的方法,是人类解决复杂问题时采用的一种基本策略,也是软件工程技术的基础。3.33.3信息隐藏信息隐藏v 每个模块的实现细节对于其他模块来说是隐每个模块的实现细节对于其他模块来说是隐藏的。藏的。v模块中所包含的信息是不允许其他不需要这些模块中所包含的信息是不允许其他不需要这些信息的模块使用的。信息的模块使用的。 3.43.4内聚和耦合内聚和耦合v在软件设计中应该保持模块的独立性原则。反在软件设计中应该保持模块的独立性原则。反映模块独立性的有两个标准:内聚和耦合。映模块独立性的有两个标准:内聚和耦合。v 内聚:标

15、志一个模块内各个元素彼此结合的紧密程度,是信息隐蔽和局部化概念的自然扩展。设计时应该力求做到高内聚。v 耦合:是对软件结构内不同模块之间互连程度的度量,是影响软件复杂程度的一个重要因素。模块间的耦合程度将影响系统的可理解性、可测试性、可靠性和可维护性。设计时应该力求做到低耦合。练习一:确定内聚类型练习一:确定内聚类型计算每个班学生的平均成绩初始化变量sum并打开文件创建新的成绩记录存储成绩记录关闭文件并打印平均成绩读取科目和成绩计算某个科目的平均成绩内聚类型内聚类型v功能内聚 :一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,

16、紧密联系,不可分割的。则称该模块为功能内聚模块。v顺序内聚如果一个模块中的处理元素和同一个功能密切相关,并且这些处理必须是顺序执行的,那么这个模块具有顺序内聚。v通信内聚:一个模块内各功能部分都针对相同输入/输出数据进行处理。v过程内聚:模块执行的若干动作,相互关联并且有顺序关系。例如,从录入界面读取数据,然后更新数据库记录。它仍然是将多个相关的功能放在一个模块中实现。v时间内聚:模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。v逻辑内聚:一个模块完成的任务在逻辑上相同/相似v巧合内聚又称为偶然内聚。当模块内各部分之间没有联系,或者即使有联系,这种联 系也很松散。练习二:确定耦合类型练习二:确定耦合类型pqrtsu135246说明:模块说明:模块p、t和和u更新同一个数据库更新同一个数据库编号编号输入输入输出输出1班级名称班级编号2班级学生清单3功能代码4班级学生清单5班级编号班主任6班级编号班长模块接口描述模块接口描述耦合类型耦合类型内容耦合公共耦合外部耦合控制耦合数据结构耦合数据耦合非直接耦合模块独立性模块耦合性低高弱强如果模块间必

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 软件测试

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!