您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 第1部分_软件设计工程概述
本次课的主要内容设计工程是干什么的该课程如何学习、考试初步了解设计工程的教学内容(1)立足于系统的整体。(2)讲授系统分析、系统设计、测试及维护的理论和方法。(3)构筑一个软件系统,实践软件开发全过程。“设计工程”与其它“软件工程”课程的区别“设计工程”课程教学与实践的目标•转变对软件开发的认识:上升程序系统•转变思维定式:上升程序员系统工程师(系统分析员)•工程化训练设计工程主要教学内容1、准确的获得并描述用户需求2、需求分析方法3、概要设计4、详细设计学习方法个人完成教材后面的问答题4-5人组成一个小组完成(1)需求调查(2)需求报告(3)需求分析模型(UML/DFD)(4)概要设计(5)详细设计学习要点了解设计工程每个阶段的目的、意义了解每个阶段的主要设计工作、内容掌握各阶段主要设计工作的方法了解各阶段设计成果优劣评定标准进行设计掌握以上四项学习内容考试方法闭卷/开卷考试(卷面与平时:8:2或5:5)卷面考试的主要内容设计工程的基本概念,平时作业的基本方法平时成绩的构成(:注平时成绩按100分计算)作业75分分,平时考勤25分考勤(旷课一次扣平时成绩的5分,第二次扣10分,第三次20分,四次以上的取消考试资格,迟到减半)主动回答问题+5分第1章软件设计工程概述1.1设计工程的定义软件设计工程是研究软件体系结构、设计方法、设计技术、设计过程以及设计表达形式的一门工程科学。目的就是为了控制软件设计的质量并对软件设计进行有效管理。通过设计过程和设计表达形式,相关开发人员能更有效的进行沟通。1.1.1软件设计的概念将系统需求规格转换成软件系统的过程。从多个可能中找到最佳的解决方案。对“软件项目交付成果如何架构”的准确回答。任务包括构建系统框架,设计系统功能,描述系统流程,建立系统的数据模型、接口模型及界面模型,形成系统的逻辑结构。告诉程序员软件系统应该“怎样做”。成果是由“一系列文档集合”组成。设计现状在软件设计过程中,为保证根据设计开发出的成果能满足软件开发的目标,需要将设计方法、设计技术、设计原则和当前的最新设计发展结合起来。计算机软件设计与其他工程学科相比还处于发展阶段,在深度、适应性和定量性质方面与其他工程学科还有一定的差距。但是,它已经有了一些软件设计技术、设计质量准则和设计符号表示法,已经建立了完整的软件工程设计体系。1.1.2设计工程在软件开发工程中的位置⑴软件设计是开发过程的技术核心。⑵软件设计是开发阶段中的一个重要步骤。⑶设计最终将影响软件实现和维护。⑷将模糊的需求说明转变成为可实施的产品设计说明。⑸设计质量优劣是至关重要。高质量的软件基础,是决定质量的重要步骤,提供了进行质量评价的依据。软件工程管理A需求分析需求分析确立该系统的基本方针、开发计划。整理用户需求,归纳出系统总体设计概要和新系统的构想,确定该项目的总负责人。构造系统架构,进行概要设计.验证项目开发经费和可能实现的功能的一致性。以概要设计为基础,进行系统内部设计(详细设计),并写出详细设计书。以详细设计书为基础,对程序单元内的功能模块的处理要求和实现方法给予说明,做出程序设计书。按照详细设计书要求对各子系统的程序进行组合测试。按照概要设计书要求对全系统的各个程序进行综合测试。在用户环境下,对全系统的各个程序进行运行测试。在用户环境验收测试完成后,进行移植、安装,并在实际运行过程中对系统的稳定性、可靠性等进行维护。B概要设计C详细设计D程序设计制造E组合测试F系统测试(综合测试)G用户环境运行测试H移植、安装、维护阶段内容设计工程1.2设计的目标和任务1.2.1设计的目标从实现的角度出发,给出与数据、功能和行为相关的软件全貌,必须满足用户希望的所有需求。在设计过程中,需要借助设计人员的知识和以前设计此类系统的经验判断、开发方法的采用、产品质量的准则,经过多次地重复,直到最终做出设计模型。设计的目的⑴深入理解与非功能性需求和约束相联系的编程语言、构件重用、操作系统、分布与并发技术、数据库技术、用户界面技术、事务管理技术等相关问题。⑵能够把实现工作划分为更易管理的各个部分,而且尽可能地由不同开发组去开发通过对子系统设计成果的要求⑴正确性:是满足应用程序的需求⑵健壮性:出现错误或异常的情况下继续执行⑶灵活性:考虑到将来可能的变化⑷可重用性:软部件可以在多种场合使用⑸高效性:时间效率和空间效率⑹可靠性:程序成功运行的概率⑺可追溯性1.2.2设计的任务采用有效的设计方法和设计技术并遵循良好的设计原则、规范的设计过程和表达方式,将软件需求所描述的内容按一定的逻辑关系进行分割和组合,使得程序员据此能编写出满足用户需求的应用程序。设计的结果由一组彼此独立又相互关联的设计说明书构成。1.3设计的过程软件设计通常分两步进行:概要设计详细设计贯穿设计过程的质量由一系列的正式技术评定或设计排演来评价。1、概要设计的任务⑴建立系统构架:选择系统平台:⑵分割子系统:建立起软件的总体结构。⑶业务系统设计:建立起业务功能模块间的关系,定义各功能模块的接口和控制接口。⑷用户界面设计:设计和描述系统界面的构成和风格。⑸接口设计:与其它系统之间的软硬件接口设计,包括中间件。⑹数据库设计:数据的存储形式、完整性和一致性设计。⑺安全设计:数据存储、访问、传输和操作的安全控制机制。⑻网络通讯设计:对于在网络环境运行的应用程序,需要专门设计通讯机制。⑼其他设计:异常、容错、出错处理机制设计。2、详细设计的任务⑴模块设计:对外部设计中产生的功能模块进行方法和过程的描述与设计,设计功能模块的内部细节,为编写源程序提供必要的说明。⑵数据库物理设计:说明是否采用分布式数据库,数据库表如何分布;每个数据库服务器上建立几个数据库,其存储空间安排;数据库表的分配方法。⑶用户界面详细设计:建立人-机界面的布局和交互机制。《程序设计书主要内容》(交互式处理)○程序处理概要图○程序概要说明书○程序功能结构图○程序追加处理说明书○工作缓冲区格式定义表○模块功能定义书○模块功能定义书(补充)○输入数据检查处理说明书○屏幕设计说明书○报表/文件输出编辑说明书○DB设计说明书○共通处理设计说明书○公共子程序设计说明书程序设计书其他需求初始需求业务需求子系统分割数据需求数据库设计界面设计接口设计其他设计界面需求接口需求进入详细设计过程模块内部设计数据库物理设计界面表现设计设计完成业务系统设计外部设计说明书外部设计说明书审查内部设计说明书内部设计说明书审查进入概要设计过程1.4设计原则和影响设计的因素1.4.1设计原则①将软件划分为若干部独立成分的依据;②怎样表示不同的成分内的功能细节和数据结构;③怎样统一衡量软件设计的技术质量。具体归纳起来,应遵循以下原则:⑴抽象⑵信息隐藏⑶模块化⑷逐步求精⑸一致性⑹局部化⑺完全性⑻可验证性另外,在设计过程中必须重视客户参与以及保护客户投资的原则:1.4.2影响设计的因素1、需求①需求的不确定性;②需求的定义过于模糊;③需求在设计过程中不断变化。2、设计人员①是否完全理解了需求②是否熟悉设计方法、设计技术、设计原则以及设计过程③是否熟悉软件开发工具和环境3、用户3、用户“用户满意才是真正的满意”。①是否充分参加到了需求定义②对设计的支持程度③用户的期望是否现实1.4.3设计的风险意识1、软件项目阶段性风险变化风险度启动设计实施收尾图1.3软件项目四阶段风险变化曲线问题为什么需求的错误在软件开发过程中会背放大?为什么越早发现错误,软件开发的损失越小?2、软件风险有以下几种类型⑴项目风险:指项目在预算、进度、人力、资源、需求、项目规模、复杂性和结构不确定性等方面可能存在的问题⑵技术风险:指潜在的设计、实现、接口、设计说明书的二义性、技术的不确定性等方面的问题。⑶商业风险:是指开发一个没人需要的软件产品,开发一个不再符合整体商业策略的产品⑷人员风险:人员缺少经验,人员流动较频繁,人员技术达不到预期的效果序号检测项1设计人员的水平如何2设计人员在技术上是否配套3是否有足够的人员可用4开发人员是否能自始至终参加软件项目的工作5开发人员是否能把全部精力投入到软件开发中6开发人员对自己的工作是否有正确的期望7开发人员是否已接受了必要的培训8开发人员的流动是否还能保证工作的连续性3、设计阶段风险因素⑴软件设计队伍缺乏软件项目设计的从业经验,如缺乏有经验的系统设计员;⑵没有变更控制计划,以至于用户的需求变更没有依据。⑶计划不完善。由于项目管理人员的不重视或者经验不足,计划制定比较仓促,考虑不够周到。⑷功能遗漏。4、软件项目风险估算⑴建立一个尺度,以反映风险发生的可能性;⑵描述风险的后果;⑶估算风险对项目及产品的影响;⑷标注风险预测的整体精确度,以免产生误解。序号风险概率(%)得失量影响排序1工作量估算低5031.522用户数量超出计划3010.393用户水平不适应软件4010.484编码重用程度低于计划2020.665工期限将被紧缩2040.856资金难以及时到位3030.947用户将改变需求8021.618技术达不到用户预期的要求2510.25109开发人员缺乏经验3020.6710人员流动频繁6021.235、风险应对方法⑴避免:通过分析找出发生风险事件的原因,消除这些原因来避免一些特定风险事件的发生。①业务建模阶段要让客户参与;②需求阶段要多和客户沟通,了解用户的真正需求;③目标系统的模型或原型系统要向客户演示,并得到反馈意见,直到双方都达成共识为止;④要有双方认可的验收方案和验收标准;⑤做好变更控制和配置管理。⑵减轻:通过降低风险事件发生的概率或得失量来减轻风险对项目的影响,也可以采取风险转移的方法来减轻风险对项目带来的影响。⑶接受:对于一些无法避免的风险,应当接收风险造成的后果或者提前设计相应的应对措施,但这需要一定的资金做后盾。6、风险应对计划⑴进行调研,分析造成人员流动的真正原因;⑵在项目开始前,把缓解这些流动原因的工作列入风险管理计划;⑶项目开始时,做好计划,对出现离职苗头的技术人员、管理人员预先准备备用人员,一旦人员离开,以确保人员离开后项目仍能继续进行;⑷制定文档标准,并建立一种机制,保证文档及时产生;如果信息已经文档化,有关知识可以在项目组中广泛进行交流;⑸对所有工作进行细微评审,调整项目进度,使新加入的成员能够赶上进度,按计划进度完成自己的工作;⑹对每个关键性技术岗位培养后备人员作业1、设计工程的定义是什么?2、概要设计的任务包含哪些内容?详细设计的任务是什么?3、影响设计的主要因素有那些?4、对于软件项目中的风险通常采用哪三种应对策略?5、分组,报小组名单。
本文标题:第1部分_软件设计工程概述
链接地址:https://www.777doc.com/doc-152499 .html