软件架构设计教程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件架构设计教程.ppt》由会员分享,可在线阅读,更多相关《软件架构设计教程.ppt(269页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程导论第一章本章要点工程的概念软件工程的发展软件工程分析三种过程模型工程化思考工程是什么?工程简而言之就是多人参与并有计划、有步骤地完成一项任务的活动工程强调目的计划步骤软件发展与软件工程起源软件的发展四个阶段:1950年前后到1960年前后,程序设计阶段;1960年前后到1970年前后,软件系统阶段;1970年前后到1980年前后互联网络兴起,软件工程阶段;1980年前后到现在,分布式软件工程阶段;1968年,北大西洋公约组织的计算机科学家召开国际会议,第一次提出软件危机的概念,产生了应对软件危机的对策-软件工程。软件工程与建筑工程的对比预算画设计图施工质检可行性分析需求分析详细设计、
2、概要设计编码测试兴建一座高楼兴建一座高楼创造一部软件产品创造一部软件产品销售、入住使用销售、安装使用工程策略任何工程都有如下的策略:分而治之复用折衷优化检验并保证质量软件工程也会充分利用这些策略分而治之把复杂的问题分解为小的问题并一一解决分而治之图示复杂问题子问题1子问题2子问题3子程序1子程序2子程序3分分 解解程序复用利用现有的组件来构筑软件的一部分功能组件技术有:CORBA、EJB、COM软件复用图示:分解系统组件开发创建新组件提取组件从组件库中查找可用组件用组件编制软件组件库组件定义软件开发的发展与变化软件技术的发展带来了一些变化:1用户对软件要求的变化:软件规模在扩大;对软件的质量要
3、求在提高;2软件技术本身的变化:新的理念、新的方法和新的工具3软件开发队伍的变化:从单人开发、小组开发,到大规模团队开发;从稳定、相对稳定到全员流动软件开发的发展与变化应对这些变化的是:1市场化:软件开发由个人爱好行为转变为企业行为,需要大量的投资、大量的人力,并且要按照市场规律来运作2知本化:要求技术的积累、模块的积累和成果的积累;3开发过程的规范化:来应对需求多变,人员流动4标准化:能力成熟度,质量控制软件工程的目标软件工程的目标是提高软件的质量与生产率,最终实现合格的软件。质量是软件需求方最关心的问题。生产率是软件供应方最关心的问题。软件工程的四项基本原则软件工程的四项基本原则选取适宜开
4、发范型采用合适的设计方法提供高质量的工程支持重视开发过程的管理 软件工程准则七条基本准则1)生命周期计划;2)阶段评审;3)变更控制;4)改进程序设计技术;5)控制人员规模;6)定义评审;7)不断改进软件工程;软件工程的要素软件工程的要素1.1.方法方法:软件工程方法为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段;2.2.工具工具:软件工具是在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境;3.3.过程过程:软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。软件工程的组成人员管理项目管理过程管理
5、瀑布模型瀑布模型将软件生命周期的各项活动顺序进行,形如瀑布流水,最终得到软件产品是最早的软件工程模型,是其他所有现代模型的基础可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计编码编码测试测试部署部署维护维护软件团队软件团队Time瀑布模型continue阶段任务、结果及人员阶段基本任务工作结果参加者计划期可行性研究与计划研究开发该项目的可行性可行性研究报告用户、高级程序员开发期需求分析理解和表达用户的要求需求说明书用户、高级程序员设计建立系统的结构模块、数据说明书用户、高级程序员编程编写程序程序高级程序员、初级程序员测试发现错误和排除错误测试报告另一独立的部门运行期运行与维
6、护维护改进的系统用户、高级程序员瀑布模型特征从上一项活动接收该项活动的工作对象,作为输入;利用这一输入实施该项活动应完成的内容;给出该项活动的工作成果,作为输出传给下一项活动;对该项活动实施的工作进行评审,若其工作得到确认,则继续下一项活动,否则返回前项,甚至更前项的活动进行返工。瀑布模型各个阶段概述可行性分析:做还是不做需求分析:都有什么功能概要设计:供有多少子功能详细设计:子功能怎么实现编码:子功能实现了吗测试:功能完备吗部署:需要多少设备和软件的支持维护:软件运行的正常吗可行性分析可行性分析因素经济技术社会环境人才需求分析概要设计提供多少子功能面向对象分析(OOA)详细设计子功能如何实现
7、面向对象设计(OOD)编码子功能是否实现?程序员严格按照规范编码;测试单元测试系统测试用户测试部署部署要求增强自动化程度,用ant等工具培训最终用户要有详细计划记录详细的过程数据及时反馈软件兼容性缺陷维护一般维护分三类:纠错性维护改正软件漏洞、发布补丁程序适应性维护使得软件在新的硬件、操作系统、编译器和解释器下运行完善性维护增加新功能、更改原有的设计等影响维护成本的因素非技术因素需求的复杂性开发人员的岗位稳定性软件的生命期外部环境的变化,例如财政政策影响财务软件技术因素软件运行环境编程语言编程风格测试工作的有效性文档的质量瀑布模型的优点通过设置里程碑,明确每阶段的任务与目标可为每阶段制定开发计
8、划,进行成本预算,组织开发力量通过阶段评审,将开发过程纳入正确轨道严格的计划性保证软件产品的按时交付瀑布模型的缺点缺乏灵活性,不能适应用户需求的改变开始阶段的小错误被逐级放大,可能导致软件产品报废返回上一级的开发需要十分高昂的代价随着软件规模和复杂性的增加,软件产品成功的机率大幅下降演化模型可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计编码编码测试测试部署部署维护维护软件团队软件团队Time可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计编码编码测试测试部署部署维护维护软件团队软件团队可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计
9、编码编码测试测试部署部署维护维护软件团队软件团队版本版本1版本版本2版本版本3迭代模型可行性分析可行性分析需求分析需求分析v1概要设计概要设计v1详细设计详细设计v1编码编码v1测试测试v1部署部署维护维护软件团队软件团队概要设计概要设计v2详细设计详细设计v2 详细设计详细设计v3编码编码v2测试测试v2需求分析需求分析v2Time迭代模型continue迭代模型continue迭代的定义:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。生命周期是基于对一个系统进行连续的扩充和精化,需要经历若干个开发周期,每个周期都需要经历分析、设计、实现和
10、测试阶段。每个开发周期只针对比较小的一部分需求在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程;类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代的优点降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们
11、的工作会更有效率。由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。迭代模型和瀑布模型的差别最大的差别在于风险的暴露时间上。任何项目都会涉及到一定的风险。如果能在生命周期中尽早确保避免了风险,那么计划自然会更趋精确。有许多风险直到已准备集成系统时才被发现。不管开发团队经验如何,都绝不可能预知所有的风险。迭代模型和瀑布模型的差别统一软件过程RUP模型RUP中的软件生命周期初始阶段(Inception):目标是为系统建立商业案例并确定项目的边界。细化阶段(Elaboration):目标是分析问题领域,建立健全的体系结构
12、基础,编制项目计划,淘汰项目中最高风险的元素。构造阶段(Construction):所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。交付阶段(Transition):重点是确保软件对最终用户是可用的。每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。RUP模型的优缺点优点提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的
13、开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。缺点RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。软件项目管理第二章本章要点项目管理一般原理Project2002中的项目管理概念用Project2002做项目计划关键路径、关键任务计算法则成功的软件项目有多少?16%53%31%成功成功实现实现失控失控取消取消为什么失败?项目失败的前项目失败的前5个原因个原因0%5%1
14、0%15%需求分析不完整需求分析不完整需求分析不完整需求分析不完整缺少用户参与缺少用户参与缺少用户参与缺少用户参与缺少资源缺少资源缺少资源缺少资源不现实的期望不现实的期望不现实的期望不现实的期望缺乏系统支持缺乏系统支持缺乏系统支持缺乏系统支持缺少项目管理缺少项目管理项目管理项目管理的定义项目管理分三个阶段:制定项目计划管理和跟踪项目结束项目项目管理三角形时间时间费用费用范围范围项目轮廓定义目标目标前提前提限制限制范围范围项目计划要素任务任务相关性工期成本资源资源任务相关性任务相关性任务相关性:两个链接任务之间的关系;通过完成日期和开始日期之间的相关性进行链接。有四种任务相关性类型:“完成-开始
15、”(FS)、“开始-开始”(SS)、“完成-完成”(FF)、“开始-完成”(SF)。当关键任务完成或另一系列中的任务发生延迟时,关键路径就会更改。任务相关性任务相关性任务相关性描述例子完成-开始(FS)只有在任务 A 完成后任务 B 才能开始。地基要先建好才能盖房子 开始-开始(SS)只有在任务 A 开始后任务 B 才能开始。所有的人员都到齐后会议才能开始 完成-完成(FF)只有在任务 A 完成后任务 B 才能完成。所有的资料全部准备齐全后才能结案 开始-完成(SF)只有在任务 A 开始后任务 B 才能完成。站岗时,下一个站岗的人来了,原本站岗的人才能回去 工作分解结构项目摘要任务1摘要任务2
16、任务3任务1.1任务1.2摘要任务2.1任务2.1.1任务2.1.2任务关系树型图任务关系树型图WBS代码列Project中创建项目计划文档新建项目文档定义常规工作时间添加分层任务读取来自Excel的资料添加资源给任务配备资源任务相关操作创建里程碑(0天)创建周期性任务创建和删除任务链接创建任务相关性设置任务限制工时计算公式工时=工期单位(资源工作分配单位)工期是完成任务所经历的实际时间工时是资源执行任务的工作时间单位是资源的分配量全职工作人员的单位一般是100%兼职工作人员的单位一般是50%详细甘特图关键路径是贯穿整个项目的一条路径,表明在限定的时间成功完成项目涉及的各任务间的依赖关系。调整
17、关键路径上任务的时间进度将会影响整个项目的交付时间。关键路径方法(CRM)图是一种网络图,用于项目的进度控制和协调项目的活动和事件。最早/晚完成日期最早完成日期:根据前置任务和后续任务的最早完成日期、其他限制以及任何调配延迟,任务可能完成的最早日期。即任务在开始日期和预计工期的基础上能够最早完成的日期。最晚完成日期:在不延迟项目完成时间的情况下,任务可以完成的最晚日期。该日期基于任务最晚开始日期、前置任务和后续任务的最晚开始和完成日期及其他限制。即任务在不延迟项目完成时间的情况下能够最晚完成的日期。关键任务/时差关键任务是指一旦延迟就会影响项目完成日期的任务。时差:在不影响其他任务或项目完成日
18、期的情况下,任务可以落后的时间量。可用时差是在不延迟其他任务的情况下,任务可以落后的时间量。总时差是在不延迟项目的情况下,任务可以落后的总时差。在典型的项目中,很多任务都有时差,因此即使延迟一小段时间也不会影响其他任务或项目完成日期。关键任务/时差continue当一项任务满足以下任何一个条件时,该任务即成为关键任务:该任务没有时差。该任务有“必须开始于”(MSO)或“必须完成于”(MFO)的日期限制(限制:对任务的开始日期或完成日期设置的限制。可以指定任务在特定日期开始,或者不晚于特定日期完成。限制可以是弹性的(未指定特定日期),也可以是非弹性的(指定了特定日期)。在一个从开始日期排定的项目
19、中,该任务有“越晚越好”(ALAP)的限制。在一个从完成日期排定的项目中,该任务有“越早越好”(ASAP)的限制。该任务的完成日期等同于或超出期限(期限:表明希望完成任务的目标日期。如果期限日期已过而任务仍未完成,Project 就会显示一个标记。)日期。当一项任务标记为已完成时,就不再是关键任务,因为它不再影响后续任务的完成或项目完成日期。关键路径显示项目的内容关键路径显示项目的内容通过了解和跟踪项目的关键路径和分配给关键任务的资源,就可以确定哪些任务会影响项目的完成日期以及项目能否按时完成。任务节点表示任务节点任务链接最早开始时间持续时间持续时间最早结束时间任务标识号任务标识号时差时差最晚
20、开始时间最晚结束时间=最早结束时间-最早开始时间=最晚结束时间-最晚开始时间=最晚结束时间-最早结束时间=最晚开始时间-最早开始时间工期549421263097167113037网络初始状态123569478计算工期5182123105206594477108因为举例子,所以直接填写工期因为举例子,所以直接填写工期计算最早开始时间和最早结束时间055158132512173131023517203763754295494971672310338计算最晚开始时间和最晚结束时间0551055813291751217351713102351727172037617373754293742549426
21、3097167303723103382737计算时差完成这些任务最多用42单位工期关键路径为13690551005581324917131023541727512173051754942126309716711303723103384273717203760173737542903742关键任务实例(1)此任务序列没有时差,因而会推动项目的完成日期尽早到来。此序列中的所有任务都在关键路径上,称为关键任务。在“详细甘特图”视图中,关键任务显示为红色。(2)此任务序列不会推动项目的完成日期尽早到来,因此不是关键任务。在“详细甘特图”视图中,非关键任务显示为蓝色。(3)总时差是指此任务序列在不影响项
22、目的完成日期的条件下可跳过的时间量。在“详细甘特图”视图中,总时差显示为浅蓝绿色线。如果项目必须如期完成,应该密切关注关键路径上的任务以及为其分配的资源。这些要素将决定项目能否按时完成。如何缩短关键路径如何缩短关键路径冲击:在不更改任务关系的情况下缩短项目的总体工期。对项目进行冲击通常需要为任务分配额外的资源。缩短关键路径上任务的工期或工时。更改任务限制,以增加日程排定的灵活性。将关键任务分解成多个由不同资源同时进行的小任务。更改任务相关性,以增加日程排定的灵活性。在适用的相关任务间设置前置重叠时间。排定加班工时。为关键路径上的任务分配额外资源。MSF介绍第三章本章要点MSF内容组队模型过程管
23、理模型应用程序模型什么是MSFMSF(MicrosoftSolutionFramework)是指微软解决方案框架。MSF描述了微软公司从众多大小软件产品研发实践中总结的管理软件开发过程管理软件开发过程的经验程序员眼中的MSF三个核心组队模型过程管理模型应用程序模型三种模型的关系组队模型组队模型应用程序模型应用程序模型过程管理过程管理资源配置资源配置功能划分功能划分过程模型过程模型组队原则清晰的责任,共同的职责赋予小组成员权力聚焦业务价值共同的项目设想保持灵活,预测变化推动开放式沟通关键概念同级小组以客户为中心产品理念体系零缺陷乐意学习有动力的小组有效率成功的做法小型的多学科小组一起工作全员参与
24、设计组队模型开发开发开发开发程序管理程序管理程序管理程序管理产品经理产品经理产品经理产品经理用户体验用户体验用户体验用户体验发布经理发布经理发布经理发布经理测试测试测试测试交流!交流!角色与目标目标目标满足客户提高用户效率 根据规格说明创建解决方案 确保产品质量事宜被识别并处理 交付满足项目约束的解决方案 进行平滑的部署及日常运行 产品经理用户体验开发测试程序管理发布经理组队角色组队角色可合并角色表产品管理程序管理开发测试用户体验发布经理产品管理NNPPU程序管理NNUUP开发NNNNN测试PUNPP用户体验PUNPU发布经理UPNPU案例1:角色合并了的小团队开发开发开发开发程序管理程序管理
25、程序管理程序管理发布经理发布经理发布经理发布经理测试测试测试测试产品管理产品管理产品管理产品管理用户体验用户体验用户体验用户体验案例2:大项目的功能团队领导领导领导领导团队团队团队团队开发开发开发开发经理经理经理经理测试测试测试测试经理经理经理经理团队团队团队团队程序程序程序程序经理经理经理经理产品产品产品产品管理管理管理管理用户用户用户用户体验体验体验体验发布经理发布经理发布经理发布经理经理经理经理经理客服客服客服客服团队团队团队团队开发开发开发开发测试测试测试测试程序程序程序程序经理经理经理经理预定预定预定预定团队团队团队团队开发开发开发开发测试测试测试测试程序程序程序程序经理经理经理经理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 架构 设计 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内