软件开发过程与项目管理(课件).ppt

上传人:豆**** 文档编号:60890906 上传时间:2022-11-19 格式:PPT 页数:167 大小:1.14MB
返回 下载 相关 举报
软件开发过程与项目管理(课件).ppt_第1页
第1页 / 共167页
软件开发过程与项目管理(课件).ppt_第2页
第2页 / 共167页
点击查看更多>>
资源描述

《软件开发过程与项目管理(课件).ppt》由会员分享,可在线阅读,更多相关《软件开发过程与项目管理(课件).ppt(167页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、软件开发与项目管理杨学瑜 高立军 编著电子工业出版社电子工业出版社第第1章章 软件开发过程概述软件开发过程概述http:/内容提要内容提要1.软件开发概述 2.软件开发过程的工程化理念 3.UML简介 4.小结 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发概述软件开发概述v软件的概念软件的概念 程序:计算机为完成特定任务而执行的指令的有序集合 数据:被程序处理的信息 文档:记录的数据和数据媒体 v编程与软件开发编程与软件开发 编程:编写、测试、分析代码,以及提高代码质量的过程 软件开发:计划、分析、设计、编码、测试和维护的全过程 v软件开发过程与方法软件开发过程与方法 软

2、件开发模式 统一软件过程和敏捷开发过程 软件开发方法 面向过程与面向对象的方法 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发概述软件开发概述v软件开发过程与方法软件开发过程与方法-统一软件过程(RUP)RUP:Rational Unified Process的缩写 6个最佳开发实践迭代始开发,需求管理,基于组建的体系架构 可视化建模,持续的质量管理,配置管理 4个阶段Inception phase(开始阶段)Elaboration phase(细化阶段)Construction phase(开发阶段)Transition phase(发布阶段)软件开发过程与项目管理软件开

3、发过程与项目管理电子工业出版社软件开发概述软件开发概述v软件开发过程与方法软件开发过程与方法-统一软件过程(RUP)9个规则业务建模(Business Modeling)需求(Requirements)分析和设计(Analysis&Design)实现(Implementation)测试(Test)部署(Deployment)项目管理(Project Management)配置与变更管理(Configuration&change Management)环境(Environment)软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发概述软件开发概述v软件开发过程与方法软件开发过程与

4、方法-统一软件过程(RUP)9个规则软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发概述软件开发概述v软件开发过程与方法软件开发过程与方法-敏捷开发(agile development)XP(Extreme Programming,极限编程),极限编程)的的12个实践活动个实践活动1.有计划的开发 2.小版本 3.隐喻 4.简单设计 5.测试驱动开发 6.重构 7.结对编程 8.集体代码所有权 9.持续集成 10.每周40个小时 11.现场客户 12.编码标准 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发概述软件开发概述v两种方法的比较两种方法的比较 R

5、UP*过于理想化和理论化*强调设计和规范*适合大项目XP*灵活,尽早的、持续的交付有价值的软件*用交流沟通取代详尽的文档*强调团队的主动、自律、自我组织和自发管理 *敏捷开发注重的是最有价值的知识的积累和沉淀 在软件项目开发过程中,应该能够识别、分析不同软件项目的特点,采用相对适合的开发实践来适应软件开发过程,保证对软件开发的有效支持,以便能够创造出“足够好的”软件。而这个足够就是对进度、成本、质量之间的平衡,最大化满足客户需要的实现。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发概述软件开发概述v软件开发过程与方法软件开发过程与方法-面向过程和对象方法面向过程方法:结构化

6、 方法优点:程序的执行过程,不由用户控制,完全由程序控制缺点:耦合性强,代码复用性差,不易维护 面向对象方法优点:程序的执行过程,不由用户控制,完全由程序交互控制。易于维护、代码可复用 缺点:复杂,较难掌握 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发过程的工程化理念软件开发过程的工程化理念 v软件危机软件危机 软件危机主要表现软件危机的原因解决途径 v软件工程软件工程 软件工程的定义 软件工程的基本原理 软件工程的作用(1)对于软件开发团队(2)对于软件企业本身(3)对于软件发展进程 v用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理 v坚持进行阶段评审坚持

7、进行阶段评审 v实行严格的产品控制实行严格的产品控制 v采用现代程序设计技术采用现代程序设计技术 v结果应能清楚地审查结果应能清楚地审查 v开发小组的人员应该少而精开发小组的人员应该少而精 v承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性 v二八定律二八定律 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发过程的工程化理念软件开发过程的工程化理念 v软件工程化的内涵软件工程化的内涵 软件开发过程的文档化 文档的层次关系和依赖关系:目标程序覆盖源程序;源程序覆盖详细设计说明书;详细设计说明书覆盖架构(概要)设计说明书;架构(概要)设计说明书覆盖需求规格说明书;

8、需求规格说明书覆盖用户需求说明书;用户需求说明书覆盖软件合同/软件任务书。软件开发过程的标准化 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社UMLUML简介简介 vUML的涵义的涵义 UML是什么 UML的主要特点 UML的应用领域 vUML的简单使用的简单使用 用例和用例图 类和类图 顺序图 状态图 活动图 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社UMLUML简介简介-实例实例 v工单管理系统中“创建工单”用例图 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社UMLUML简介简介-实例实例 v工单管理系统的工单类别TaskType类图软件开发过程与

9、项目管理软件开发过程与项目管理电子工业出版社UMLUML简介简介-实例:顺序图实例:顺序图 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社UMLUML简介简介-实例实例 v添加工单类别活动图软件开发过程与项目管理软件开发过程与项目管理电子工业出版社小结小结 v软件开发要按照工程化理念进行v 使用UML设计工具进行设计 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发与项目管理杨学瑜 高立军 编著电子工业出版社电子工业出版社第第2章章软件开发项目管理概述软件开发项目管理概述 http:/内容提要内容提要1.项目及项目管理的概念2.软件开发项目管理的内容3.项目进度管

10、理4.项目质量管理5.项目成本管理6.软件开发项目分组软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.1 软件项目管理的概念v2.1.1 项目项目v2.1.2 项目管理项目管理 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.1.1 项目项目v项目是一项有待完成的任务,有特定的环境和背景要求,具有特定的约束条件。v在一定的组织机构内,利用有限的人力、物力、财力等资源,在规定时间内完成任务。也就是说,项目是有具体的开始和结束时间的。v任务要满足一定的数量、质量、功能、性能和技术指标等多方面的要求。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.1.2 项

11、目管理项目管理v1、概念v项目管理就是在项目的运作过程中,运用一切知识,技能、工具和技巧完成项目,并满足项目需求和期望的过程。v2、要素v(1)对资源的管理v(2)对需求和目标的管理v(3)对项目组织的管理v(4)对项目环境的管理 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.2 软件开发项目管理v2.2.1 内容v2.2.3 特点软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.2.1 内容内容v1、过程管理v2、需求管理v3、对组织的管理v4、变更管理软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.2.2 特点特点v1对管理者技术水平要求高v2要求

12、管理者有敏锐的洞察力v3重视文档的管理v4人的因素更突出软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3 项目进度管理项目进度管理v2.3.1 任务分解(WBS)v2.3.2 甘特图设计 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3.1 任务分解(任务分解(WBS)v编制进度计划的第一步就是任务分解。这样做的目的不言而喻。项目对于任务人和团队来说都是一个复杂的,只有将它分解为更多的子项目,才能让项目开发顺利的进行下去。因为子项目与整个项目相比更小、更易管理、更易操作。这样做的目的就是使成本估算更准确,时间和资源的分配更合理,责任分工更加明确。任务分解最后确定

13、了项目所有的任务范围。它的结果就是任务分解结构 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3.1 任务分解(任务分解(WBS)某软件项目功能1功能3功能2功能2-子功能1功能2-子功能2功能2-子功能3图2.1 软件项目的任务分解软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3.1 任务分解(任务分解(WBS)v1任务分解的类型v任务分解分为清单类型和图表类型。图2.1就是任务分解的图表类型。v下面是图2.1的清单类型 1某软件项目功能1.1功能1.21.2.1 子功能11.2.2 子功能21.2.3 子功能3功能1.3软件开发过程与项目管理软件开发过程与项

14、目管理电子工业出版社2.3.1 任务分解(任务分解(WBS)v2任务的分解过程v(1)确认并分解项目的主要组成要素。确认的标准就是:这些要素应该用有形的、可证实的结果来描述,目的就是为了易于度量。v(2)确定分解标准,按照项目实施管理的方法分解。项目的不同要素所采用的管理方法不同。因此在任务分解时要把对任务的管理方法考虑进去。v(3)确认分解是否详细,分解结果是否可以作为费用和时间估计的标准,明确责任。分解如果过于粗糙,那么这种分解就达到到任务分解的目的。v(4)确定项目交付成果,以及交付成果的含衡量标准,以便可以对交付的成果进行度量。v(5)验证任务分解的正确性。软件开发过程与项目管理软件开

15、发过程与项目管理电子工业出版社2.3.1 任务分解(任务分解(WBS)v3分解的标准v任务分解的标准一定要统一,如果在一个项目的任务分解中采用两种不同的标准那么这样的任务分解结果的可操作性是不强的,而且是混乱的。我们可以采用生存周期作为标准;也可以用产品的功能作为标准等等。比如对某个项目以生存周期为标准进行任务分解,结果可能为:v(1)立项v(2)需求分析v(3)设计v(4)编码v(5)测试v(6)提交产品软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3.2 甘特图设计甘特图设计v甘特图用水平线段表示任务的基本信息。在这条线段上可以看到任务开始时间,结束时间,工期的长度以及任务

16、中所应用的资源。v甘特图的设计是依据任务分解结构。将每一个单独的任务作为一个线段,规定出开始和结束时间,并为这个任务分配相应资源。然后后整理出各个任务之间的关系。v完成开始关系:即,A任务完成B任务才能开始;v开始开始关系:即,A、B任务同时开始;v完成完成关系:即,A、B任务同时结束。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3.2 甘特图设计甘特图设计图2.2 棒状甘特图软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.3.2 甘特图设计甘特图设计v图2.2的左侧文字部分就是这个项目的任务分解结构。右侧对应的就是每一个任务的棒状图。从棒状图中我们可以看出每个

17、任务的开始和结束时间,工期,以及每个任务所用到的资源。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4 软件质量管理软件质量管理v2.4.1 错误缺陷管理v2.4.2 版本控制管理v2.4.3 软件文档管理v2.4.4 质量评估标准软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.1 错误缺陷管理错误缺陷管理v1对缺陷进行有效的描述v2确定缺陷优先级v3缺陷跟踪软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.2 版本控制管理版本控制管理v图2.3代表一个模块S,其中A、B两个部分分别是这个软件要修改的两处代码。图2.3 模块关系软件开发过程与项

18、目管理软件开发过程与项目管理电子工业出版社2.4.2 版本控制管理版本控制管理v现在有甲、乙两个开发人员要对模块S进行修改。假设甲开发人员在10:15将模块S下载到本地机并对A部分代码进行修改,乙开发人员在此10:20分将模块S下载到本地机对B部分代码进行修改。两个在修改完成后将模块S上传至服务器。这时就会出现问题。假设甲、乙二人只是覆盖原有的模块S,那么,只有最后上传的那个人,才可以把自己改正过的代码保留下来。即,如果甲是在11:10分上传并覆盖了模块S,乙是在11:15分上传并覆盖了模块S,那么只有B部分被修改过,而甲所修改过的A部分又被乙恢复了“原貌”。即使是甲、乙不采用覆盖的方式,而是

19、分别为自己的修改过的模块S建立新的版本,那么,以后再有人要使用模块S的时候,到底是用甲的版本呢,还是用乙的版本呢?无论用谁改过的版本,都有一处代码是存在问题的。在软件开发过程中还有很多类似的问题,只有通过版本控制管理,才能解决这些问题,使软件开发顺利的进行。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.2 版本控制管理版本控制管理v版本控制通过文档控制记录程序各个模块的改动,并为每次改动编上序号。简单的说就是对每一次改动都做记录,并且升成版本号。下次无论谁要对模块进行修改,下载的都将是最新的版本。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.3 软件文档

20、管理软件文档管理v1软件文档概念v2软件文档的内容v3软件文档的管理软件开发过程与项目管理软件开发过程与项目管理电子工业出版社1软件文档概念软件文档概念v软件文档也称文件,通常指的是一些记录的数据和数据媒体,它具有固定不变的形式,可被人和计算机阅读。它和计算机程序共同构成了能完成特定功能的计算机软件。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2软件文档的内容软件文档的内容v(1)可行性研究报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施的方案,说明并论证所选定实施方案的理由。v(2)项目开发计划:为软件项目实施

21、方案制定出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。项目开发计划应提供给管理部门,并作为开发阶段评审的参考。v(3)软件需求说明书:也称软件规格说明书,其中对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2软件文档的内容软件文档的内容v(4)概要设计说明书:该说明书是概要设计阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设

22、计等,为详细设计奠定基础。v(5)详细设计说明书:着重 描述每一模块是怎样实现的,包括实现算法、逻辑流程等。v(6)用户手册:本手册详细描述软件的功能、性能和用户界面,使用户了解如何使用该软件。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2软件文档的内容软件文档的内容v(7)操作手册:本手册为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。v(8)测试计划:为做好组装测试和确认测试,需为如何组织测试制定实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。v测试分析报告:测试工作完成以后,应提交测试计划执行情况的说明。

23、对测试结果加以分析,并提出测试的结论意见。v(9)开发进度月报:该月报系软件人员按月向管理部门提交的项目进展情况报告。报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2软件文档的内容软件文档的内容v(10)项目开发总结报告:软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本 和投入的人力。此外还需对开发工作作出评价,总结出经验和教训。v(11)维护修改建议:软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响

24、估计作详细的描述,写成维护修改建议,提交审批。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社3软件文档的管理软件文档的管理v(1)确定要开发哪些类型的文档v(2)文档的内容是什么v(3)文档达到的质量水平v(4)何时产生何种文档v(5)文档保存、维护的方式软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.4 质量评估标准质量评估标准v对于软件产品的质量,要依据标准检查产品及其文档的符合性,软件开发所使用的流程的符合性。具体我们可以按照以下软件质量的特征对软件进行评价。v1功能特征:这里的功能指的是需求中提到的那些功能。评价时,首先要看功能是否完整、齐全,是否符合需求

25、中所提及的功能。其次,就是看正确性。仅仅是有了需求所提及的功能还不够,还要正确的反映这些功能。v2可靠特征:“可靠”就是在规定的一段时间和条件下,软件维持其性能水平的能力。具体的评价指标有可用度、初期故障率、偶然故障率、平均失效前时间、平均失效间隔时间、缺陷密度等。下面我们对这些指标进行解释。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.4 质量评估标准质量评估标准v3易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。易用特征主要是针对用户而言。通常可以分为软件的易理解性、易学习性和易操作性等。v4效率特征:与在规定条件下的软件性能水平与所使

26、用资源量之间关系有关的一组属性。既然是效率特征那么就要与时间有关,另外还和资源有关。下面我们来介绍效率特征的几个子特征。v5可维护特征:与进行指定的修改所需的努力有关的一组属性。v6可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.4.4 质量评估标准质量评估标准v选择合适的指标体系就有一定的要求的。v首先,不同的软件有自身不同的特点,所以在选择指标体系时要能能够反映评估软件的本质特征,具体表现就是功能性与高可靠性。v第二,可以通过数学计算、测试、经验统计等方法得到具体数据。因为,量化的数据最能明确说明软件到底是好还

27、是不好。v第三,软件质量评估指标体系必须易于理解和接受。理解和接受的对象不仅仅是客户,包括与软件质量评估有关的各个部门和人员。v第四,选择的指标必须具有一定的覆盖面。v第五,既然是指标,就要能准确的反映出软件的本质特征,即使是不同的组织和个人利用这个指标体系对同一软件进行质量评估,所得到的结果也不会有太大的差别。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.5 项目成本管理项目成本管理v2.5.1软件开发的成本构成v2.5.2 成本管理方法软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.5.1软件开发的成本构成软件开发的成本构成v软件开发成本是指软件开发过程中所花

28、费的工作量及相应的代价。从软件的开发周期来分的话,软件开发成本可以分为开发成本和维护成本。v具体的包括原材料、燃料、动力、折旧、人工费、管理费用、财务费用等项开支的总和。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.5.2 成本管理方法成本管理方法v1减少项目成本预算与估算的误差v2对成本进行控制、分析和跟踪v3充分利用工具软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.6 软件开发项目分组软件开发项目分组v2.6.1 分组规则v2.6.2 任务分配的原则软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.6.1 分组规则分组规则v1人员配备必须有为项目

29、目标服务v项目的分组往往是根据任务分解结构。有什么样的任务,就建立什么样的团队。根据项目的需要对高中低不同层次的人员进行合理的安排。只有团队中每个成员都发挥自己的一技之长,经过全体成员的共同努力,才能达到项目的成功。v2以岗定员v这样做的目的是保证人员配备的效率,充分利用人力资源。如果当前的项目需要某人的技能,则让其加入团队,如果不需要,那么就将这个人安排到需要他的团队中去。如果以人定岗的话,势必会造成某些团队成员的“无用武之地”。v3人员可以随时增减v项目处于不同阶段时,所需要的人力资源种类、数量、质量是不同的,所以项目的分组要有很大的灵活性。根据当前项目实际需求来安排人员。这也是最大限度的

30、节约人力成本。v分配任务软件开发过程与项目管理软件开发过程与项目管理电子工业出版社2.6.2 任务分配的原则任务分配的原则v1根据任务承担者的实际能力分配任务,还要考虑任务的难易程度。v2任务要以时间为单位有相应的里程碑。这样做的主要目的就是可以对承担都的绩效进行评价。这里的时间可以是一周,也可以是一个月或更长,这要根据软件项目的实际情况来制定。v3对于需要完成几项任务的成员,要注意承担者的资源百分比不能超过100%。v4任务分配后,任务分配者要及时与任务承担者进行沟通,进行任务的确认。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发与项目管理杨学瑜 高立军 编著电子工业出版

31、社电子工业出版社第第3章章 软件需求分析软件需求分析http:/内容提要内容提要1.需求获取 2.需求分析 3.需求文档的编写 4.小结 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求获取需求获取v功能及非功能需求描述功能及非功能需求描述 功能需求:定义了开发人员必须实现的软件功能 非功能需求:易用性、反应速度、容错性、健壮性等等质量属性 v角色及其职责描述角色及其职责描述 角色获取 职责描述v业务流程描述业务流程描述v数据及数据流程描述数据及数据流程描述 找出元数据:数据的数据 找出中间数据:描述统计数据的数据 找出元数据和中间数据的关系 找出单据中的流程 谁使用了系统的主要

32、功能?谁使用了系统的主要功能?谁来维护和管理系统使系统正常工作?谁来维护和管理系统使系统正常工作?哪些人对系统产生的结果感兴趣?哪些人对系统产生的结果感兴趣?v角色要求系统提供哪些功能?角色要求系统提供哪些功能?v角色在系统中的工作是什么?角色在系统中的工作是什么?v角色的某些功能是否必须被系统自动实现?角色的某些功能是否必须被系统自动实现?软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求获取需求获取-实例实例软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求获取需求获取-角色职责分析实例角色职责分析实例序序号号角色角色适用人员适用人员职责描述职责描述1工单创建者市场

33、/销售人员创建工单“项目/任务”启动前修改或删除工单评价工单2工单派发者部门主管选择人员安排任务系统自动给以上人员发送Email3工单管理者质量管理人员启动工单考核工单结束工单4工单执行者项目经理,项目组成员提交项目计划或工作计划填写工作日志5系统管理者系统管理员设置角色设置权限设置工单类型软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求分析需求分析 v用例分析用例分析 建立用例模型 编写用例模版 v数据流程分析数据流程分析 定义 数据流程图:定义、种类和画法 实体-关系分析(1)数据对象、属性与关系(2)实体-关系图 v获取角色获取角色 v获取用例获取用例 v创建用例图创建用例

34、图 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求分析需求分析 v数据流程图的基本图例符号数据流程图的基本图例符号v数据流程图画法 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求分析需求分析 v实体实体-关系图关系图 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求分析需求分析-用例图实例用例图实例软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需求分析需求分析-用例模版实例用例模版实例项项 目目描描 述述描述工单管理者向系统请求启动工单,然后系统自动将工单状态(执行中)和启动日期保存到工单表中前提工单派发人已派发工单触发条件工单管理者需

35、要选择这个选项成功启动工单,并把启动日期保存到数据库中,工单进入“执行中”状态中止不符合条件或有变化,悬置工单,工单进入“悬置”状态参与者主要的工单管理者从属的无过程步骤项目描述1ListProjects列表显示需启动的工单2CheckWorkPlan检查是否提交工作计划3LaunchProject提交启动工单请求4PromptConfirm提示用户确认请求5SaveLanch保存请求变更1UseBrowser使用页面显示一个对话框异常2aSuspendProject若出现项目变动或没有完成工作计划,则悬置工单2bExit退出启动申请软件开发过程与项目管理软件开发过程与项目管理电子工业出版社需

36、求文档的编写需求文档的编写 v编写用户需求报告编写用户需求报告引言系统概述流程分析 功能需求非功能需求v编写需求规格说明书编写需求规格说明书概述目标系统描述 目标系统的功能需求 目标系统的非功能性需求 目标系统的界面与接口需求 目标系统的其他需求 目标系统的约束条件 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社小结小结 v 在需求获取和分析过程中,要对问题进行评估,对方案进行综合。在整个过程中,分析师关注的焦点是“做什么”,而不是“怎么做”,系统必须完成什么功能,会产生什么数据,将定义什么界面,会遇到什么约束等。v 总之,在这一阶段主要经历集中在获取和分析系统的逻辑功能上。不要把

37、“用计算机如何实现”这样的物理因素牵扯进来,影响逻辑功能的分析。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发与项目管理杨学瑜 高立军 编著电子工业出版社电子工业出版社第第4章章 软件系统架构设计软件系统架构设计http:/内容提要内容提要1.软件架构设计的概念 2.软件架构设计的任务 3.工单管理系统的架构设计 4.小结 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v基本概念基本概念 模块化 模块:具有独立名称的组件,或程序中的可执行语句等程序代码 模块的基本特点:(1)接口:模块输入与输出(2)功能:模块的作用(3)逻辑

38、:模块的调用与被调用关系 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v基本概念基本概念 模块化 模块化的优点:(1)降低工作量,从而降低成本,提高开发效率;(2)使软件结构清晰,易于阅读和理解;(3)便于修改、维护和调试;(4)可获得较高的软件可靠性;(5)便于工程化协作。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v基本概念基本概念 模块化 信息隐蔽:具有减少测试和后期维护量等优点,而且保证了软件系统在修改时,错误的衍射面最小。模块独立性的判定准则:(1)模块的耦合:尽量使用数据耦合,减少控

39、制耦合,限制外部环境耦合和公共数据耦合,杜绝内容耦合。(2)模块的内聚:提高模块的内聚度,从而获得较高的模块独立性。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v基本概念基本概念 抽象与逐步求精 抽象:高度概括事物的主要的或本质的特性,暂时忽略或不考虑其细节。软件开发过程的每一步都是对较高一级抽象的解作一次具体化的描述。求精的每一步都是更为详尽的描述替代上一层次的抽象描述。层次结构的上一层是下一层的抽象,下一层是上一层的求精。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v软件架构的要素软件架构的

40、要素 它是一个软件系统从整体到部分的最高层次的划分 架构元素,也就是组成系统的核心“砖瓦”,而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。建造一个系统所作出的最高层次的、以后难以更改的,业务的和技术的决定 在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v软件架构的目标软件架构的目标 可靠性(Reliable)安全性(Secure)可伸缩性(Scalable

41、)可定制化(Customizable)可扩展性(Extensible)可维护性(Maintainable)客户体验(Customer Experience)市场时机(Time to Market)软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计的概念软件架构设计的概念v软件架构的种类软件架构的种类 功能架构 逻辑架构、软件系统中组件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑组件等。非功能架构 系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、互用性、安全性、性能及国际化/本地化等。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件架构设计任

42、务软件架构设计任务v定义程序组织结构 v设计主要类 v数据设计 v确定业务规则 v用户界面设计 v输入/输出设计 v性能设计:速度、吞吐量和持续高速性v安全性设计 v可伸缩性设计 v容错性设计 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社工单管理系统的架构设计工单管理系统的架构设计 v功能设计功能设计-系统功能结构 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社工单管理系统的架构设计工单管理系统的架构设计 v功能设计功能设计-软件架构 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社工单管理系统的架构设计工单管理系统的架构设计 v功能设计功能设计-数据设计

43、主要任务是工单管理系统的数据库的逻辑设计,建立实体关系(ER)模型,其中实体包括工单类别实体(tasktype)、工单实体(task)、工单文档实体(taskdoc)、工单日志实体(tasklog)、工单考核记录实体(checkrecord)、员工实体(member)、部门实体(office)、项目成员实体(projectmember)、管理员实体(tadmin)、模块实体(model)、角色实体(taskrole)和权限实体(authority)。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社工单管理系统的架构设计工单管理系统的架构设计 v功能设计功能设计-设计主要接口和类 工单

44、管理系统的主要类是实体类、数据访问接口和类、服务(业务逻辑)接口和类。v功能设计功能设计-用户界面设计 用户界面采用HTML内嵌JSP语言编写,客户端的数据验证采用JavaScript语言编写。页面层在隐藏域中设置数据操作类型,如Type值(1:添加,2:修改,3:删除),然后传递到控制层,调用业务逻辑处理方法。v非功能设计非功能设计 主要考虑的是安全性问题。根据角色设置读写权限,保证数据操作的安全性。如派发工单只能由工单派发者完成,在页面及数据操作类中进行控制。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社小结小结 v架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明

45、确和相对细致地描述组件之间的通讯。v好的架构使得软件开发过程变得更容易,而糟糕的架构则使软件开发过程几乎寸步难行,甚至付出高昂的代价 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件开发与项目管理杨学瑜 高立军 编著电子工业出版社电子工业出版社http:/软件开发与项目管理杨学瑜 高立军 编著电子工业出版社电子工业出版社第第5章章 软件详细设计软件详细设计http:/内容提要内容提要1.软件详细设计基础 2.面向对象的设计方法 3.工单类别管理模块详细设计 4.小结 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件详细设计基础软件详细设计基础v详细设计概述详细设计概

46、述 详细设计流程:设计前,设计后 MVC设计模式:模型-视图-控制器(Model-View-Controller)(1)为什么要使用MVC?(2)MVC的优点(3)MVC的不足之处 v多个视图能共享一个模型多个视图能共享一个模型 v实现组件的松耦合实现组件的松耦合 v代码重用性好代码重用性好 v使用控制器来联接不同的模型使用控制器来联接不同的模型和视图去完成用户的需求和视图去完成用户的需求 v视图和控制器做到行为同步视图和控制器做到行为同步 v根据需求动态的打开或关闭、甚根据需求动态的打开或关闭、甚至在运行期间进行对象替换至在运行期间进行对象替换 v模型的可移植性好模型的可移植性好v潜在的框架

47、结构。潜在的框架结构。软件开发过程与项目管理软件开发过程与项目管理电子工业出版社软件详细设计基础软件详细设计基础v设计技术和工具设计技术和工具 软件设计技术(1)面向过程设计(2)面向对象设计(3)两种方法的比较 软件设计工具(1)Rational ROSE Technical Developer(2)PowerDesigner 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社面向对象的设计方法面向对象的设计方法 v面向对象设计的概念面向对象设计的概念 对象、操作和消息类、实例、继承和多态(1)类:具有共同属性的对象的抽象,是对象的模版(2)实例:类可以生成具有该类特征的对象,即类的

48、一个实例(3)继承提供了一种重用对象的方式(4)多态是同一种事物表现出的多种形态,简单说是“一个接口,多种实现”软件开发过程与项目管理软件开发过程与项目管理电子工业出版社面向对象的设计方法面向对象的设计方法 v视图层设计视图层设计 视图层设计内容 视图层设计过程(1)熟悉用户并对用户进行合理的分类(2)选取用户代表并分析其工作流程与习惯(3)设计并优化命令系统(4)对用户界面的细节进行设计(5)为用户演示快速原型,依据用户的反馈意见改进界面设计 Web程序设计要考虑的问题用户的会话(session)管理、重复的表单提交和验证 v用户如何与系统交互用户如何与系统交互 v系统如何响应用户的命令系统

49、如何响应用户的命令 v系统的正常操作、成功以及操作系统的正常操作、成功以及操作失败时的提示信息失败时的提示信息 v复杂的输出复杂的输出 的格式设计的格式设计 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社面向对象的设计方法面向对象的设计方法 v控制层设计控制层设计 控制层通常为请求/响应数据进行导航(或路由)而存在。同时它具有一定的数据处理功能,但不应该包含有业务逻辑。控制层与视图层存在这一定的耦合性。对于Java应用程序,实现控制层的最好方式是使用Servlet。实现Servlet的控制功能,需要编写配置文件(web.xml)。软件开发过程与项目管理软件开发过程与项目管理电子工业

50、出版社面向对象的设计方法面向对象的设计方法 v模型层设计模型层设计 模型层设计又可以分为持久层、实体类、数据访问层和业务服务层设计 持久层设计(1)数据库的物理表结构设计:数据库表结构及其表间关系设计(2)实体类设计:实体类包括属性和getXXX()方法和setXXX()方法 (3)对象关系映射设计:数据库表与实体类的映射设计 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社面向对象的设计方法面向对象的设计方法 v映射文件的代码映射文件的代码 v v vv v v v v v v 软件开发过程与项目管理软件开发过程与项目管理电子工业出版社面向对象的设计方法面向对象的设计方法 v模型层

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com