模型OF软件开发与项目管理课件.ppt

上传人(卖家):晟晟文业 文档编号:4917359 上传时间:2023-01-25 格式:PPT 页数:135 大小:3.05MB
下载 相关 举报
模型OF软件开发与项目管理课件.ppt_第1页
第1页 / 共135页
模型OF软件开发与项目管理课件.ppt_第2页
第2页 / 共135页
模型OF软件开发与项目管理课件.ppt_第3页
第3页 / 共135页
模型OF软件开发与项目管理课件.ppt_第4页
第4页 / 共135页
模型OF软件开发与项目管理课件.ppt_第5页
第5页 / 共135页
点击查看更多>>
资源描述

1、模型OF软件开发与项目管理项目一 软件工程方法学任务一 软件工程的问题:学习目标:软件特点软件危机软件工程定义和原理软件生命周期模型项目一 软件工程方法学1、什么是软件?软件:程序+说明文档 计算机软件=系统软件+应用软件2、软件的特点:(1)软件是一种逻辑实体。它的存在是保存在一种媒介上面,例如:纸张,磁盘,内存,磁带,光盘等。(2)软件是绿色产品,没有污染,它的运行不会出现磨损和对空气、土地等对人体有害的物质。(3)软件的研制是一种高智力劳动。计算机软件既是作品,又是工具,是作品性与工具性紧密结合的智力成果。(4)计算机软件开发工作量大、成本高,但复制容易、成本极低。计算机软件是开发者智力

2、劳动的结晶,具有原创性质。主要内容专业概述专业设置培养目标课程设置就业岗位问题解答3、软件危机 当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现为:u经费预算经常突破,完成时间一再拖延;u开发的软件不能满足用户要求;u开发的软件可维护性差;u开发的软件可靠性差。4、软件工程的定义 IEEE对软件工程的定义:(1)应用系统化的、严格约束的、定量的方法来开发、运行和维护软件,即,将工程应用到软件;(2)将工程应用到软件方法的研究。软件工程是一门研究用工程化方法构建和维护有效的、实用

3、的和高质量的软件的学科。5、软件工程的原理1.用分阶段的生命周期计划严格管理。2.坚持进行阶段评审。3.实行严格的产品控制。4.采用现代程序设计技术。5.结果可审查。6.开发小组的人员应少而精。6、软件工程的目标(满足用户需求)给定成本、进度下开发软件:可修改性有效性可靠性可维护性可重用性可适用性可移植性可追踪性可操作性7、软件生命周期 能清晰直观地表达软件开发的全过程,明确规定了开发工作每个阶段要执行的主要任务,是软件项目开发工作的基础。思考:软件生命周期的各个时期如何实现?五、原型模型 原型模型的主要思想:针对开发初期在确定软件需求存在困难,借鉴建筑经验,根据客户提出的基本要求,快速地开发

4、一个原型。向客户展示,功能和性能,依客户意见,对“样品”不断改进,使得最后的产品就是用户所需要的。原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型。优点优点:开发人员和用户在“原型”上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。缩短了开发周期,加快了工程进度

5、。降低成本。缺点缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。这往往给工程继续开展带来不利因素。开发者为了使一个原型快速运行起来,往往在实现过程中采用这种手段。不宜利用原型系统作为最终产品。采用原型模型开发系统,用户和开发者必须达成一致:原型被建造仅仅是用户用来定义需求,之后便部分或全部抛弃,最终的软件是要充分考虑了质量和可维护性等方面之后才被开发。常用开发模型比较分析(1)瀑布模型不满足客户的需求。(2)快速原型模型关注满足客户需求,可能导致系统设计差、效率低,难于维护。原型模型的优点是使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。(3)增量模型开发早期反馈及

6、时,易于维护需要开放式体系结构,可能会设计差、效率低。(4)螺旋模型风险驱动风险分析人员需要有经验且经过充分训练。(5)喷泉模型在各个开发阶段是重叠的,需要大量的开发人员,不利于项目的管理。要求严格管理文档,使得审核的难度加大。软件项目管理的根本目的 是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。软件项目管理的背景20世纪70年代,美国国防部专门研究了软件开发不能按时提交,预算超

7、支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了20世纪90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10的项目能够在预定的费用和进度下交付。1995年,据统计,美国共取消了810亿美元的商业软件项目,其中31的项目未做完就被取消,53的软件项目进度通常要延长50%的时间,只有9的软件项目能够及时交付并且费用也控制在预算之内。软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效

8、率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有很好的管理,其软件质量是难以想象的。项目的定义项目的定义 项目是指一系列独特的、复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间、预算、资源限定内,依据规范完成。项目参数包括项目范围项目范围、质量质量、成成本本、时间时间、资源资源。美国项目管理协会(PMI)定义 项目是为创造独特的产品、服务或成果而进行的临时性工作。以下活动都可以称为一个项目:开发一项新产品

9、计划举行一项大型活动(如策划组织婚礼、大型国际会议等)策划一次自驾游旅游 ERP的咨询、开发、实施与培训项目的基本特征项目开发是为了实现一个或一组特定目标项目受到预算、时间和资源的限制项目的复杂性和一次性项目是以客户为中心的力成果。软件项目管理的定义软件项目管理的定义 是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人

10、、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止。配置管理(软件的变更管理)基线(各阶段的分界点):变更的演变图 软件质量管理软件质量模型:boehm模型 软件质量的度量软件质量保证 软件质量设计的五个步骤:风险管理 假如你是一个项目的负责人,有幸要在40天内为布朗先生建造一座坚固实用美观的别墅。你会发现哪些风险?第一组A、40天是40个工作日吗?还是包括节假日的40天?我如何保证按时完成?B、布朗先生的要求坚固实用,坚固要达到抗震几级?使用期限是多长?

11、实用更麻烦,布朗先生觉得应该如何布局,这个房子才更实用?布朗先生要求的美观如何达到?C、我需要多少资金预算?如何让这些资金到位?什么时候到位?如何花才能避免超出预算?D、项目完工之后的质量验收标准是什么?在项目过程中我应该如何保证这个质量目标?第二组A、别墅的建筑用地在哪里?地况如何?周围环境如何?是否有设计难度?设计方案是否合理?能否达到质量要求?B、项目施工的工序是否正确?项目计划是否合理?C、建筑团队的人员是否充足?我是否需要一个优秀的设计师和一些有经验的建筑工人?D、团队成员是否都能忠于工作?我应该如何进行有效的管理并激励他们才能保证项目按时按质的完成?E、我是否要花些心思了解布朗先生

12、,包括他的背景,另外布朗先生有没有幕后老板,是否还有其他人会影响布朗先生的观点?我们之间是否会有误会产生?我应该如何沟通?F、我的材料供应商是否可靠?他能否及时将质量合格的原材料供应给我?第三组A、我们的施工期是什么季节,是否我去看看这些年在这段期间的天气状况如何?如果遇到雨雪等天气灾害我怎样应对?B、我的建筑安全措施如何?安全教育是否到位?工人保险状况如何?假如出现工伤或者事故如何应对?C、另外,如果这块地施工期间,挖出了古墓等情况,停工期间时间和预算是否够用?D、布朗先生是否像表面这样有钱?(他的资信情况如何?)他是否能在合适的时候付我款项?我是否要实现一些阶段性付款方案,我是否要保证金?

13、E、建造这个房屋我是否取得了一些前期施工证明?建筑主管单位是否不会找我麻烦?F、建造这个房子是否有限高?是否会有损于周围其他人的利益,采光、施工噪音、垃圾污染等等?周围人的情况如何?他们要找我麻烦怎么办?假如,您写出了第一组答案中的100%,那么您可以进入项目管理领域了,假如,您同时又写出了第二组答案中的80%以上,那么您有项目管理的潜质,假如您更在以上基础上同时第三组答案中也写出了60%以上,那么您已经具备项目管理的一些经验了,当然这些朋友还需更多实践经验的磨练。如果没达到,也不必灰心,认真学习风险管理。软件项目管理 是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(Peop

14、le)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。项目进度管理 是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理,是在规定的时间内,拟定出合理且经济的进度计划(包括多级管理的子计划)。在执行该计划的过程中,经常要检查实际进度是否按计划要求进行,若出现偏差,便要及时找出原因,采取必要的补救措施或调整、修改原计划,直至项目完成。其目的是保证项目能在满足其时间约束条件的前提下实现其总体目标。项目进度管理一般包含项目进度计划的制定和项目进度计划的控制两部分。任务二 项目规划编制项目计划的过程称为项目规划。项目规划是预测未来、确定

15、任务、估计可能碰到的问题,并提出完成任务和解决问题的有效方案、方针、措施和手段,以及所必须的各种活动和工作成果的过程。项目规划是项目启动后进入的第一个项目十分重要的、实质性的阶段,有的称为项目策划项目规划的过程和步骤项目规划的过程和步骤 项目规划应考虑的的问题:必须完成什么工作;何时开始和结束工作;由谁来完成工作;还需要什么其他资源;可能出什么差错。为何要实施这个项目 需要什么人参加;将创造什么结果;必须满足哪些约束;做出什么假定;项目规划的步骤(1)收集资料。(2)确定项目任务。(3)明确依据和前提。(4)提出完成项目任务的各种可行方案。(5)对方案进行评价。(6)确定方案。(7)写出项目计

16、划和有关辅助文件。WBS(工作分解结构)WBS(Work Breakdown Structure):创建WBS是把项目可交付成果和项目工作分解成较小的,更易于管理的组成部分的过程。WBS是项目管理重要的专业术语之一。WBS的基本定义:以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。在项目管理实践中,工作分解结构(WBS)是最重要的内容之一。实例:图书馆系统项目规划 图书馆软件开发计划书.doc项目二 单元测试时间:20分钟 到8:30结束1、软件项目管理的目的是?2、项目管理主要包括哪些方面的管理?项目三 软件可行性研究与计划n任务

17、一:可行性分析n学习目标:对软件项目进行可行性分析,研究开发是否可行,作出可行性分析报告n重点:软件可行性分析的任务n知识:1、可行性分析的目的?2、可行性分析的任务?n能力:掌握相关知识,为实际开发软件打好坚实基础。问题的定义与可性行研究问题的定义与可性行研究开始开始问题定义问题定义可性行研究可性行研究 可行否?可行否?项目实施计划项目实施计划终止项目的建议终止项目的建议结束结束YNWho 为谁设计,用户是谁?为谁设计,用户是谁?What 要解决哪些问题?要解决哪些问题?Why 为什么要解决这些问题为什么要解决这些问题 有用的软件有用的软件 3W可行性研究可行性研究说明该软件开发项目的实现在

18、技术上、经济上和社会条件上的说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。可行性;评述为合理地达到开发目标可能选择的各种方案。GB 8567-88GB 8567-88 计算机软件产品开发文件编制指南计算机软件产品开发文件编制指南 可行性研究之需求分析之需求分析p 项目的筹备、规划与准备是软件项目实施的前期工作,它由两个重要项目的筹备、规划与准备是软件项目实施的前期工作,它由两个重要的工作阶段构成:一是项目规划及可行性分析;二是项目需求分析。的工作阶段构成:一是项目规划及可行性分析;二是项目需求分析。p 项目准备阶段的第一个工作,是项目

19、的总体规划。首先要做的是明项目准备阶段的第一个工作,是项目的总体规划。首先要做的是明确系统的需求,也就是用户要计算机解决什么问题,即确系统的需求,也就是用户要计算机解决什么问题,即问题定义问题定义。p 系统分析员应该系统分析员应该深入现场深入现场,了解用户单位对系统的要求,了解用户单位对系统的要求,调查调查开发背开发背景,进行市场景,进行市场调研调研。经过调查分析,分析员要在较短的时间内对问题。经过调查分析,分析员要在较短的时间内对问题进行抽象、概括,并把自己的认识写成书面报告,即进行抽象、概括,并把自己的认识写成书面报告,即项目需求报告项目需求报告,提交给用户方面进行讨论提交给用户方面进行讨

20、论审查审查。p 项目需求报告应该尽可能清楚简洁,内容通常包括项目的名称,对问项目需求报告应该尽可能清楚简洁,内容通常包括项目的名称,对问题的概括,项目的目标,项目的规模及对可行性研究的具体建议(即题的概括,项目的目标,项目的规模及对可行性研究的具体建议(即需要用的时间和成本)等等。需要用的时间和成本)等等。项目需求报告项目需求报告案例案例1.项目项目:公司工资管理系统公司工资管理系统2.问题:在公司日常工资管理工作中,现有系统所承担的工作只能实现工资管理的简单功能,已无法适应目前工作中处理大量数据(如日常打印工资条等)要求,工作效率低下,容易出错。3.项目目标:为了提高公司日常工资管理的效率与

21、准确率,而开发该项软件。该软件应逐步向本市各企业推广。4.项目范围:硬件主要利用现有的计算机网络,增配少量专用设备,软件开发费用预计20000元。5.初步设想:实现公司工资管理系统,包括工资录入、数据查询、工资条、工资统计、部门设置、人员设置、项目设置等具体功能。要求将各种输出数据以表单形式打印;系统各模块具有添加新数据的功能;系统软件具有权限功能,使不同的用户具有不同的权限;建立后的数据库需要加密。6.可行性研究:由分析员和公司工资管理部门进行,主要对公司日常工资管理规程和系统实施方案进行研究。建议进行大约3天的可行性研究,研究费用不超过200元。要点:问题 项目的目标 项目的功能 可行性研

22、究:人力?时间?费用?小结:作业:要求模仿案例作一份:广东信息工程职业学院图书管理系统的需求分析报告可行性研究的任务可行性研究的任务 可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”GB 8566-88 计算机软件开发规范可行性研究的最根本任务:对软件开发以后的行动方针提出建议。可行性研究的成果是:项目可行性报告任务二 项目的可行性分析n任务一:项目的可行性分析n学习目标:掌握四个最重要的可行性分析要素n重点:软件可行性分析的内容n知识:可行性分析:1、经济?2、技术?3、社会?4、人?n

23、能力:掌握相关知识,为实际开发软件打好坚实基础。可行性研究的内容可行性研究的内容(1)技术可行性(2)经济可行性(3)社会可行性(法律可行性)(4)人度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题(1)开发风险分析(2)资源分析(3)相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性)度量系统解决方案的性能价格比。考虑的问题 成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益 价值和成本的关系质量与价值、成本的关系价值/成本的均衡举例举例 1 2 3 4 5 年年604020 0成本成本-效益效益(万元万元)该系统节省经费该系统节省经

24、费该系统成本该系统成本盈亏平衡点盈亏平衡点投资回收期投资回收期-成本及效益分析图成本及效益分析图人力资源的可行性:管理人员 技术人员 用户使用 时间进度可行性1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料2 可行性研究的前提 2.1 要求 2.2 目标 2.3 条件、假定和限制 2.4 进行可行性研究的方法 2.5 评价尺度3 对现有系统的分析 3.1 数据流程和处理流程 3.2 工作负荷 3.3 费用开支 3.4 人员 3.5 设备 3.6 局限性4 所建议的系统 4.1 对所建议系统的说明 4.2 数据流程和处理流程 4.3 改进之处 4.4 影响 4.5 局限性

25、 4.6 技术条件方面的可行性5 5 可选择的其它系统方案可选择的其它系统方案 5.1 5.1 可选择的其它系统可选择的其它系统1 1 5.2 5.2 可选择的其它系统可选择的其它系统2 2 .6 6 投资及收益分析投资及收益分析 6.1 6.1 支出支出 6.2 6.2 收益收益 6.3 6.3 收益收益/投资比投资比 6.4 6.4 投资回收周期投资回收周期 6.5 6.5 敏感性分析敏感性分析7 7 社会条件方面的可行性社会条件方面的可行性 7.1 7.1 法律方面的可行性法律方面的可行性 7.2 7.2 使用方面的可行性使用方面的可行性任务三 项目的需求分析学习目标:为什么要做需求分析

26、?n重点:需求分析的概念和方法n知识:需求分析:1、任务?2、过程?3、方法?n能力:掌握相关知识,为实际开发软件打好坚实基础。需求分析 需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.比如需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中,他的作用要远远大于程序设计.1基本概念:基本概念:需求分析是指理解用户

27、需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。需求分析指需求的分析、定义过程。2任务:任务:简言之,需求分析的任务就是解决做什么的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求.3.过程:过程:问题识别 就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行时所需的内存,CPU等),软件成本消耗与开发进度需

28、求,预先估计以后系统可能达到的目标.分析与综合 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分.最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型).制订规格说明书 即编制文档,描述需求的文档称为软件需求规格说明书.请注意,需求分析阶段的成果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交.评审 对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过才可进行下一阶段的工作,否则重新进行需求分析。4方法:方法:需求分析的方法有很多.这里只强调原型化方法,其它的方法如:结构化方法,

29、动态分析法等(初学者不必深究).原型化方法是十分重要的(软考等常考).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能.原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等.这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发.小结:6.作业:作业:思考思考:学校的图书管理系统的项目需求分析应如学校的图书管理系统的项目需求分析应如何进行?何进行?项目三 单元测试时间:20分钟 到8:30结束1、软件可行性研究的目的是

30、?2、软件可行性研究的成果是?3、软件可行性研究一般从4个主要方面来分析,是哪4个方面?项目四 项目详细设计 学习目标:系统分析与设计的内容?n重点:软件的体系结构n知识:1、C/S模式 2、B/S模式 3、软件设计开发的思路软件设计开发的思路?n能力:掌握相关知识,为实际开发软件打好坚实基础。系统分析与设计:系统分析与设计:概要设计概要设计+详细设计详细设计 概要设计:确定软件系统的总体的实现方案,确定系统的体系结构(框架结构)。把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口详细设计:结构元素的实现,结构元素间接口的实现,系统的数据结构的实现,设计出模

31、块的功能及模块接口。设计每个模块内的算法、流程等。体系结构体系结构(总体结构):是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。层次结构软件的实现分成多个层次,底层的模块实现相对简单的功能,多个低层的模块组合成一个较高成的模块,实现相对复杂的功能,最后所有的模块组合起来完成整个软件的功能.C/S模式即客户机和服务器结构。此模式是以数据库服务器为中心、以客户机为网络基础、在信息系统软件支持下的两层结构模型。这种体系结构中,用户操作模块布置在客户机上,数据存储在服务器上的数据

32、库中。客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。目前大多数信息系统是采用Client/Server结构。.B/S模式即浏览器服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。常见的软件设计开发的思路:常见的软件设计开发的思路:强调结构化程序设计方法学,从总体到局部,从抽象到具体,自顶向下、

33、逐步求精的方法。主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制GOTO语句的使用。“独立功能,单出、入口”的模块结构。原则:原则:抽象:抽取事物最基本的特性和行为。采用分层次的抽象可以控制软件开发的复杂性。信息隐藏:采用封装,将具体细节(过程或数据)隐藏起来,无需此信息的其它模块不能访问。黑箱模块化:逻辑相对独立。大小适中,高内聚,低耦合。一致性:整个软件系统的概念、符号、术语一致;接口一致.作业,思考作业,思考:概要设计和详细设计的区别?概要设计和详细设计的区别?任务二 结构化设计方法 学习目标:掌握软件的结构化设计方法n重点:结构化设计的基本任务,工

34、具,实现n知识:1、结构图(SC)2、程序流图(PFD)3、盒图(N-S)、问题分析图()、问题分析图(PAD)n能力:掌握相关知识,为实际开发软件打好坚实基础。1.结构化设计方法(结构化设计方法(SD)u 是基于模块化、自顶向下细化、结构化程序设计等设计技术基础上发展起来的。u 基本的设计思想:将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段。u 概要设计描述工具:结构图u 设计软件系统的结构:划分功能模块,确定模块间的调用关系u 数据结构及数据库设计:实现需求定义和规格说明书中提出的数据对象的逻辑表示。u 设计文档:概要设计说明书、数据库设计说明书、集成

35、测试计划u 概要设计文档评审:对方案中是否完整实现需求分析中规定的功能、性能的要求和方案可行性进行评审。2概要设计工具概要设计工具-结构图结构图(SC)(1)作用 软件结构概要设计阶段的工具。反映系统的功能实现以及模块与模块之间的联系与通信,即反映了系统的总体结构。注意:数据流DFD是软件生命周期的定义阶段中的需求分析方法中结构化分析方法的一种,此外还有数据字典(DD)、判定树和判定表,而SC是开发阶段中概要设计使用的方法。(2)结构图基本组成成分:模块、数据和调用(3)结构图基本图符(4)结构图的基本术语 深度:模块结构的层次数(控制的层数)。宽度:同一层模块的最大模块数。扇出:一个模块直接

36、调用的其他模块数目。扇入:调用一个给定模块的模块个数。(被调用的次数)好的软件结构应该是顶层扇出比较多,中层扇出较少,底层扇入多。数据字典(DD)为了对数据流程图中的各个元素作出详细的说明,有必要建立数据字典(Data dictionary)。数据字典的内容主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。数据项的定义数据项又称数据元素,是数据的最小单位。分析数据特性应从静态和动态两个方面去进行。在数据字典中,仅定义数据的静态特性,具体包括:(1)数据项的名称、编号、别名和简述;(2)数据项的长度;(3)数据项的取值范围;例:数据项定义数据项

37、编号:I02 01数据项名称:材料编号别名:材料编码简述:某种材料的代码类型及宽度:字符型,4 位取值范围:“0001”“9999”3概要设计任务的实现概要设计任务的实现-数据流图到结构图的变换数据流图到结构图的变换信息流是一个关键考虑,通常用数据流图描绘信息在系统中加工和流动的情况。(1)典型的信息流类型:变换型和事务型 变换型信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统,当数据流具有这些特征时,这种信息流就叫变换流。事务型数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一

38、个来执行,当数据流图具有这些特征时,这种信息流称为事务流。它被用于识别一个系统的事务类型并把这些事务类型用作为设计的组成部分。分析事务流是设计事务处理程序的一种策略,采用这种策略通常有一个在上层事务中心,其下将有多个事务模块,每个模块只负责一个事务类型,转换分析将会分别设计每个事务。4、详细设计及工具详细设计及工具(1)详细设计的目的为软件结构图(SC)中的每 一个模块确定采用的算法,模块内数据结构,用某种选定的表达工具(如N-S图等)给出清晰的描述。(2)详细设计的设计工具种类 图形工具:程序流程图(PFD)、N-S图,问题分析图(PAD图)。表格工具:类似于判定表。语言工具:过程设计语言(

39、PDL)。程序流程图(PFD:Program Flow Diagram)流程图:是用一些图框表示各种操作,直观形象,易于理解。特点:直观、清晰、易于掌握。盒图(N-S图)为避免流程图在描述程序逻辑时的随意性与灵活性,1973提出用方框代替传统的程序流程图,通常也把这种图称为N-S图,有5种的控制结构。盒图具有以下特点:过程的作用域明确;盒图没有箭头,不能随意转移控制;容易表示嵌套关系和层次关系;强烈的结构化特征。问题分析图(PAD:Problem Analysis Diagram)是继流程图和方框图之后,又一种描述详细设计的工具,有5种结构。过程设计语言(PDL)过程设计语言(PDL)也称结构

40、化的英语或伪码语言,它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,它描述处理过程怎么做,类似编程语言。()在总体设计层)在总体设计层 -引入了两个术语引入了两个术语/符号符号 模块模块:一种可独立标识的软件成分一种可独立标识的软件成分.调用调用:模块间的一种关系模块间的一种关系,模块模块A A为了完成其任务必须为了完成其任务必须 依赖其他模块依赖其他模块.模块结构图的三种基本结构1.1.层次图层次图(H(H图图)表示软件的层次结构。表示软件的层次结构。正文加工系统正文加工系统输入输入输出输出编辑编辑加标题加标题存储存储检索检索 编目录编目录添加添加删除删除插入插入修改修改合并合并

41、列表列表带编号的层次图带编号的层次图(H(H图图)正文加工系统正文加工系统输入输入1.0输出输出2.0编辑编辑3.0加标题加标题 4.0存储存储5.0检索检索6.0编目录编目录 7.0添加添加3.1删除删除3.2插入插入3.3修改修改3.4合并合并3.5列表列表3.6例子:酒店管理信息系统功能层次图例子:酒店管理信息系统功能层次图H M I S收银管理子系统收银管理子系统客房管理子系统客房管理子系统餐饮管理子系统餐饮管理子系统客客人人登登记记预预定定登登记记客客房房处处理理历历史史记记录录客客房房查查询询预预定定查查询询餐餐桌桌安安排排菜菜单单作作业业营营业业结结帐帐汇汇总总打打印印各各类类查

42、查询询初初始始设设置置客客帐帐处处理理退退房房处处理理夜夜审审处处理理客客帐帐查查询询报报表表打打印印IPO图传统的传统的IPOIPO图举例图举例输入输入处理处理输出输出读口令请求读口令请求口令文件口令文件1 1取得输入取得输入2 2口令确认口令确认3 3请求确认请求确认请求记录请求记录权限文件权限文件4 4更新处理更新处理权限记录权限记录状态报告状态报告响应响应命令监控器命令监控器(1.0)(1.0)的的IPOIPO图图改进的改进的IPOIPO图格式图格式IPOIPO图图系统:模块:编号:作者:日期:被调用:调用:输出:输入:输入:局部数据元素:注释:2.HIPO图图IBMIBM公司发明的公

43、司发明的HIPOHIPO图:图:层次图层次图 +输入输入 /处理处理 /输出图输出图 (H图图)()(IPO图图)(Hierachy Input Process Output)H图中图中每一方框每一方框(模块模块)均有均有一张一张IPO图对应图对应。航线调度系统航线调度系统HIPO图举例图举例 H图图:命令监控器命令监控器1.0取得输入取得输入1.1输入确认输入确认 1.2请求确认请求确认1.3更新处理更新处理 1.4结构图结构图(SC SC Structure Chart)Structure Chart)是是SDSD方法在概要设计中的主要表达方法在概要设计中的主要表达工具。工具。约定:约定:

44、编辑学生记录编辑学生记录读学生记录读学生记录学生数据学生数据无此学生无此学生学号学号不加区分的数据不加区分的数据数据信息数据信息控制信息控制信息SCSC中的四种模块中的四种模块传入模块传入模块(a)(b)AA传出模块传出模块BB变换模块变换模块(c)CD协调模块协调模块E(d)EFFSCSC中的调用中的调用(1 1)选择调用)选择调用ACBDA根据内根据内部判断决部判断决定是否调定是否调用用B BA按另一判按另一判定结果选择定结果选择调用调用C或或D(2 2)循环调用)循环调用ABCA A根据内在的循环重根据内在的循环重复调用复调用B B、C C等模块等模块结构图结构图(SC)(SC)举例举例

45、 医院管理系统医院管理系统门诊门诊管理管理药房药房管理管理药库药库管理管理病房病房管理管理财务财务管理管理处处方方挂号挂号处理处理挂挂号号费费总总计计挂挂号号单单挂挂号号费费总总计计出库出库处理处理进药进药管理管理病历病历管理管理处方处方管理管理常规常规处理处理系统结构特征的两种典型形式:系统结构特征的两种典型形式:变换型结构变换型结构事务型结构事务型结构对应于对应于数据流图可分为两种类型数据流图可分为两种类型:变换型数据流变换型数据流事务型数据流事务型数据流 大型系统大型系统DFDDFD中中,变换型变换型和和事务型事务型结构往往结构往往共存共存:T事务中心事务中心传入传入变换变换传出传出变换

46、变换中心中心输入输入输出输出变换型结构事务事务中心中心接受接受路径路径动动作作路路径径基本类型 特征特征事务型 结构由输入、变由输入、变换中心和输换中心和输出三部分组出三部分组成成具有在多种具有在多种事务中选择事务中选择执行某类事执行某类事物的能力物的能力变换型数据流 结构事务型数据流 结构传入传入变换变换传出传出变换变换中心中心传入传入部分部分传出传出部分部分事务事务分析分析事务事务中心中心动作动作 1动作动作 2动作动作 3接受接受接受接受部分部分变换型数据流举例变换型数据流举例输入输入信息信息物理物理输入输入格式格式检查检查处理处理显示显示正确正确信息信息结果结果物理物理输出输出数据数据

47、变换中心变换中心逻辑逻辑输入输入逻辑逻辑输出输出传入部分传入部分传出部分传出部分特点:具有明确的传入、变换特点:具有明确的传入、变换(或称主加或称主加 工工)和传出界面的和传出界面的DFD变换流变换流示意图示意图信息信息时间时间信息流信息流输入流输入流输出流输出流交换流交换流外部外部表示表示内部内部表示表示事务型数据流图举例事务型数据流图举例IMLNOABCDFEGH要求类要求类型处型处理理有效图书有效图书管理要求管理要求当前当前日期日期2.1新书入库新书入库2.2借借入库单入库单罚款单罚款单事务型数据流图举例事务型数据流图举例借书借书2.3注销图书注销图书2.5借书借书2.4目目录录文文件件

48、借书单借书单书书单单注销单注销单变换型数据流 结构传入传入变换变换传出传出变换变换中心中心传入传入部分部分传出传出部分部分由变换分由变换分析产生析产生事务型数据流 结构事务事务分析分析事务事务中心中心动作动作 1动作动作 2动作动作 3接受接受接受接受部分部分由事务分由事务分析产生析产生数据流图分类数据流图分类变换型变换型:事务型事务型12345678abcdefhgyxz123546abcdefgy程序流程图5.小结小结6.作业:作业:尝试使用结构化设计方法对尝试使用结构化设计方法对OA系统进行分系统进行分析。析。实训1 软件项目概要设计n任务一:软件项目概要设计n学习目标:以图书管理系统概要设计为例,概要设计并写出概要设计文档n重点:编写概要设计报告书n能力:掌握相关知识,为实际开发软件打好坚实基础。实例:图书管理系统概要设计报告书实例:图书管理系统概要设计报告书实例:图书管理系统概要设计报告书 格式 主要内容 思考:我应该如何编写?思考:我应该如何编写?

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(模型OF软件开发与项目管理课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|