第五章总体设计(事务分析的映射方法实例)
- 格式:ppt
- 大小:3.46 MB
- 文档页数:114
第五章总体设计经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元隶仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。
然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且制定实现这个方案的进度计划。
分析员应该综合分析比较这些合理的方案,从中选出一个最佳方案向用户和使用部门负责人推荐。
如果用户和使用部门的负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软件结构,通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设汁,确定测试要求并且制定测试计划。
从上面的叙述中不难看出,在详细设计之前先进行总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
5.1 设计过程总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构没计阶段,确定软件结构。
典型的总体设计过程包括下述9个步骤:1.设想代选择的方案如何实现要求的系统呢,在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。
在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能/价格比。
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性.(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训.在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境.总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料.5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
总体设计(概要设计)总体设计的基本目的是回答“概括地说,系统应该如何实现”这个问题,因此总体设计又称为概要设计或初步设计。
本阶段的工作讲划分出组成系统的物理元素:程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里面的具体内容将在后面的详细设计完成。
两个阶段:系统设计:确定系统具体实现方案结构设计:确定软件结构九个步骤:1.设想供选择的方案2.选取合理的方案3.推荐最佳方案——>进入下一个阶段结构设计4.功能分解:先进行结构设计确定软件结构,然后进行过程设计5.设计软件结构6.设计数据库7.制定测试计划8.书写文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果9.审查和复审设计原理1.模块化:把程序划分程独立命名且可独立访问的模块,每个模块完成一个子功能,再把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户需求。
(分治)2.抽象:3.逐步求精:4.信息隐藏和局部化:5.模块独立:耦合、内聚启发规则:经验之谈!1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测描绘软件结构的图形工具1.层次图和HIPO图2.结构图面向数据流的设计方法在软件工程的需求分析阶段,信息流是一个关键考虑,通常用数据流图描绘信息在系统中加工和流动的情况。
面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。
因为任何软件系统都可以使用数据流图表示,所以面向数据流的设计方法在理论上可以设计任何软件结构。
通常所说的结构化设计方法(SD方法)就是基于数据流的设计方法。
信息流—>软件结构,信息流的类型决定了映射的方法,信息流有两种:变换流和事务流。
变换分析:一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。
五年级上册道德与法治《5.协商决定班级事务》教学设计一. 教材分析五年级上册道德与法治《5.协商决定班级事务》这一章节主要让学生了解协商的意义,学会通过协商的方式解决问题,培养学生的团队精神和责任感。
教材通过生动的案例和情景,引导学生认识到协商的重要性,学会在班级事务中运用协商的方法。
二. 学情分析五年级的学生已经具备一定的独立思考和表达能力,对于班级事务有一定的关注度。
但部分学生在面对问题时,可能还不会主动寻求协商解决,对于如何进行协商还不够了解。
因此,在教学过程中,教师需要关注学生的个体差异,引导他们主动参与协商,提高他们的沟通技巧。
三. 教学目标1.让学生了解协商的意义,认识到协商在解决问题中的重要作用。
2.培养学生学会倾听、理解他人的观点,尊重他人的意见。
3.引导学生学会用协商的方法解决问题,提高他们的沟通能力和团队协作能力。
4.培养学生的责任感和集体荣誉感。
四. 教学重难点1.重点:让学生掌握协商的基本方法,学会在班级事务中运用协商。
2.难点:培养学生面对问题时,主动寻求协商解决问题的意识。
五. 教学方法1.情境教学法:通过设置情境,让学生在实践中学会协商。
2.案例分析法:通过分析典型案例,引导学生认识协商的重要性。
3.小组讨论法:分组讨论,培养学生的团队协作能力和沟通能力。
4.师生互动法:教师引导学生,学生积极参与,提高课堂活力。
六. 教学准备1.准备相关案例材料,用于教学演示。
2.准备教室布局,便于学生分组讨论。
3.准备计时器,用于控制教学环节时间。
4.准备相关问题,用于引导学生思考。
七. 教学过程1.导入(5分钟)教师通过提问方式引导学生思考:在日常生活中,你是否遇到过需要和他人协商解决问题的情况?让学生认识到协商在解决问题中的重要性。
2.呈现(10分钟)教师呈现一个班级事务的案例,如:班级卫生打扫分工问题。
引导学生分析案例中存在的问题,并提出解决方案。
3.操练(10分钟)学生分组讨论,每组选择一个案例进行模拟协商。
软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
软件工程与项目管理课程标准一、课程概述(一)课程性质《软件工程与项目管理》是计算机应用专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件项目管理。
(二)课程基本理念本课程以“面向岗位、以岗位需求”为导向;以典型工作过程为依据选取教学内容;充分考虑学生的学习特点和职业发展需要。
(三)课程设计思路根据软件技术专业所涉及到的计算机语言编程和数据库术技术知识,以项目为驱动,通过“老师命题-学生实践”的方式在“知识-实践-项目”环节中提高学生的学习兴趣和动手能力;采用分段实施的教学过程:知识讲授阶段-实践阶段-强化指导来逐步提高学生的实际动手能力,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程目标(一)总体目标:本课程的总目标是:“以学生实践为主体”,通过课程的实施,帮助学生学会自主学习。
使学生的知识、技能、素质得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,又培养良好的职业素养。
课程内容突出高职教育特点,确保人才培养目标的实现。
(二)具体目标1、知识目标掌握软件工程的基本概念及原理、掌握软件工程的基本原则和方法工具;了解当今软件企业的工作规范。
2、能力目标通过本课程的学习,掌握软件工程的基本理论、实用的开发方法和技术,并能够把软件工程的思想应用于软件项目实施过程;了解软件工程各领域的发展方向,对中小型软件项目进行可行性和需求分析、设计、编码、测试的能力及开发过程中应遵循的流程、准则、标准和规范,为今后从事软件工程实践打下良好的基础。
3、素质目标使学生具备团队精神及软件专业人员的基本素质,为就业和将来的发展打下理论和实践基础;培养学生认真参与、积极交流的主体意识;激发学生的学习热情,使学生初步形成编制程序的意识和科学精神。
三、课程内容标准第一章软件工程概述(一)教学目的、要求本章要求学生了解什么是软件危机和软件工程,软件危机产生的历史背景、根源和由此产生的大量的失败,了解软件工程是从何种角度切入到软件开发中去,如何解决软件危机,了解消除软件危险的途径。
软件工程总体设计案例总体设计的基本任务是回答“系统应该如何实现?”这个问题,设计出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,并确定系统中每个程序有哪些模块组成,以及这些模块相互间的关系。
1、设计方案的选择分析员应以数据流图为依据设想不同的自动化边界,导出多个初步的实现方案,分析比较这些方案,从中选出一个最佳方案向用户和使用部门负责人推荐。
对于工资管理系统,分析员在下图的基础上描绘了一组自动化边界,如4-1虚框所示。
图4-1 在数据流图上加自动化边界图4-1中“发放工资”,“数据收集”和“数据验证”可以用人工处理,其余部分用机器处理。
2、软件结构设计软件结构设计的主要任务是把系统内部各种功能关系变换成程序模块之间的控制关系。
(1)复查并确定数据流图的类型。
工资管理系统的数据流图具有较明显的输入、中心变换和输出三部分,故属于变换型的数据流图。
“人事数据”、“事务数据”是逻辑输入,“工资”和“报表”是逻辑输出。
(2)设计上层模块。
上层模块如下图4-2所示。
主控模块“工资管理”为顶,分成输入、中心变换、输出。
图4-2 工资管理系统上层模块(3)分解上层模块设计中、下层模块。
上图4-2中的中心变换模块与变换“处理事务”相对应,而变换“处理事务”分解后的数据流图(见第3章),又包含“取数据”、“计算应发工资”、“计算借款扣款”、“修改借款扣款”、“写工资单”、“计算实发工资”、“些报表”等7个功能。
所以中心变换模块分解后的“工资管理”分层结构图如下4-3所示。
后把控制归还给“工资管理”模块。
接下来,“工资管理”模块将控制转给“计算应发工资”模块,完成计算之后又将控制返回到“工资管理”模块。
以此类推,最后由“工资管理”模块结束处理。
在软件设计期间,分析员了解到对工资数据的处理规则是:只有把所有的有关数据都备齐之后,才能计算一名职工的工资。
根据这条规则可知,计算工资时,事务数据、人事数据和借款数据等有关数据缺一不可。
总体设计方法总体设计方法是指在进行项目或产品设计时,从整体的角度出发,对设计过程进行规划和组织的方法。
它包括对需求分析、概念设计、详细设计和实施等阶段的全面考虑和统筹安排,以保证设计的高效性、可靠性和可维护性。
下面将从需求分析、概念设计、详细设计和实施这四个阶段依次介绍总体设计方法。
首先是需求分析阶段。
在这个阶段,我们需要明确项目或产品的功能需求、性能需求、界面需求和系统约束等,通过与用户的沟通和调研,了解用户的真正需求和期望。
在需求分析的过程中,可以使用面谈、问卷调查、观察等方法收集信息,并将其整理成需求文档。
在这个阶段,我们要确保需求的准确性、完整性和一致性,以便为后续的设计工作提供准确的基础。
接下来是概念设计阶段。
在这个阶段,我们需要进行创意的产生和筛选,确定项目或产品的整体框架和基本方向。
概念设计需要考虑项目或产品的功能结构、界面布局、用户体验等方面,通过绘制草图、制作原型等方式将概念转化为具体的形式。
在这个阶段,我们要注重创新性和可行性的结合,确保设计方案的可实现性和可接受性。
然后是详细设计阶段。
在这个阶段,我们需要对概念设计进行进一步细化和完善,明确项目或产品的详细功能、结构和实现方式。
详细设计需要考虑项目或产品的模块划分、接口设计、算法设计等方面,通过绘制流程图、制定接口规范等方式将设计方案转化为具体的实施方案。
在这个阶段,我们要注重设计的合理性和可扩展性,确保设计方案的稳定性和可维护性。
最后是实施阶段。
在这个阶段,我们需要根据详细设计的方案进行具体的编码、测试和部署工作,将设计方案转化为最终的实际结果。
实施阶段需要注重工作的规范性和效率性,确保项目或产品的质量和进度。
在这个阶段,我们要注重团队的协作和沟通,确保设计方案能够按照计划顺利实施。
总体设计方法是一种系统化的设计方法,它能够帮助设计师从整体的角度出发,全面考虑和统筹安排设计过程。
通过合理的需求分析、概念设计、详细设计和实施,可以确保设计方案的高效性、可靠性和可维护性。
第5章总体设计一、选择题1.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()。
A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法【答案】C【解析】模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。
2.在面向数据流的软件设计方法中,一般将信息流分为()。
A.变换流和事务流B.变换流和控制流C.事务流和控制流D.数据流和控制流【答案】A【解析】面向数据流的软件设计方法是以结构化分析阶段所产生的文档(包括数据流图、数据字典和软件需求说明书)为基础,自顶向下,逐步求精和模块化的过程。
它一般将信息流分为变换流和事务流。
①变换流:信息沿着输入通道进入系统,然后通过变换中心(也称主加工)处理,再沿着输出通道离开系统。
②事务流:信息沿着输入通道到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行。
3.软件设计一般分为总体设计和详细设计,它们之间的关系是()。
A.全局和局部B.抽象和具体C.总体和层次D.功能和结构【答案】A【解析】软件设计分为总体设计和详细设计,其中总体设计属于全局性的设计,详细设计属于局部性的设计,是概要设计的完善。
4.将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是()的。
A.逻辑性B.瞬时性C.功能性D.通信性【答案】A【解析】逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
5.模块中所有成分引用共同的数据,该模块的内聚度是()的。
A.逻辑性B.瞬时性C.功能性D.通信性【答案】D【解析】通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
6.好的软件结构应该是()。
A.高耦合、高内聚B.低耦合、高内聚C.高耦合、低内聚D.低耦合、低内聚【答案】B【解析】耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
总体设计
总体设计
结构化总体设计
结构化⽅法下,总体设计模型由功能结构图、IPO图、系统流程图和配置图来描述。
⾯向对象⽅法下,设计模型由功能结构图、类图及其辅助图(包括状态图、时序图和协作图)、组件图和配置图来描述。
数据库的概念结构是系统中数据模型的共同基础,它描述了系统最基础的数据结构,独⽴于特定的数据库结构;数据库的物理结构是数据库的物理数据模型,
它包括实际数据库服务器上的表、存储过程、字段、视图、触发器、索引等等,与特定的数据库系统密切相关。
应⽤系统的概念结构数据模型通常⽤ER模型进⾏描述。
(ER模型:实体、关系、属性)。