版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计模惟:综合楼 软 及软件方法学的形面向对象方软件生存周软件开发过程模 WhatisDesignChristopherAlexander,afamousprofessorof“Eachpatterndescribesaproblemwhichoccursoverandoveragaininourenvironment,andthendescribesthecoreofthesolutiontothatproblem,insuchawaythatyoucanusethissolutionamilliontimesover,withoutever ngitthesamewaytwice.”AdesignIsacommonsolutiontoarecurringproblemin Whywouldwhatanarchitectsaysberelevanttosoftware?替了墙壁和门窗。两类模式的都在于提供了GoF(GangofFour):ErichGamma,RichardHelm,RalphJohnson&JohnVli 23种经典的软件设计模 WhyshouldwelearnDesign
HowtomaintainHowto 何谓软件 软件的特 软件的发程序设计阶段 程序系统阶段 程序+文档→“软件”→“软 ”→软件工1968 软件的规类参加人员研制期产品规模(源程序行数微11~4小11~6中1~2大2~3甚大4~5极大5~10 软 所带来的严StandishGroup对 成功完推迟完成、超出预算和/或功能缺失有78% 组织卷入纠纷并最终以法律程序解其中67%因交付的软件产品的性能或功能无法达其中56%承诺的交付日期几次推其中45%所交付的软件存在严重错误以至于无法使 经典案例 花了大约5000人一年的工作量,最多时,有 都是从1000个程序错误而修正的结 经典案例1963年,用于控制火星探测器的计算机软件中探测器发生,造成高达数亿的损失。 无可挽回的恶性事故。如,银行的存款可能被化 软件成本在系统中的比年代 年年1985 与软件本身特点有缺乏“可预见性”,管理和控制软件开发的过程规模庞大,在技术和管理上异常复杂与开发 的方法不正确有忽视需求分
轻视软 运用的是数学方法,注重算法与逻辑方法的研研究对象则侧重于一些较小的具体程序模注重“微观正确性”,研究的内容是程序的“正确性证明应用的是工程方法,注重工程方法与工具研研究对象一般指“大型程序”,是一个系 软件工程方法(结构化方法 1.2.1结构化程序设计方法概结构程序设计Atechniquefororganizingandcodingcomputerprogramsinwhichahierarchyofmodulesisused,eachhavingasingleentryandasingleexitpoint,andinwhichcontrolispasseddownwardthroughthestructurewithoutunconditionalbranchestohigherlevelsofthestructure.Threetypesofcontrolflowareused:sequential,selection,anditeration 结构化程序设计方法概 数据流分析技术-数据流图(DataFlowDiagram,间的沟
只考虑系统基本逻辑功能,而不考虑具体的物理实 !DFD的!起点/终点或源/宿处理/M:M,但至少数 数据(data 数据流图的层次结 分层的数据流XX2131113322 示 示示顶层数据流 示
图2.6(第一层数据流图示图2.7 的类型决定了映射的方法。信息流有下述两种类型 变换
信息
变换流结构图示 事务流结构图示 变换分 设计步
变换分 示例:汽车数通过模数转换实现传感器和处理机的接指示加速超速响铃警
第二级分解的结 射中心”(事务中心) 70年代初由英国的M.Jackson提出,在西欧率先流 1. 对应伪码AA图6.8A由B、C、D 2. 图6.9根据条件A是B或C或
AselectBAorcond2Aorcond3A 3. 对应伪码Aiteruntil(或BA图6.10A由B出现N次 Jackson图的优缺优缺 Step.1-2从数据结构图导出Jackson(a)输入数据结构;(b 第二图6.13描绘统计空格程序结构的Jackson
第六 第二图6.13描绘统计空格程序结构的Jackson
第六 第二图6.13描绘统计空格程序结构的Jackson
第六 第二第五图6.13描绘统计空格程序结构的Jackson
第六 Step4出所有操作和条件,并把它们分配 5)sum:=06)pointer:=17) 统计空格totalsum0程序体iter until文件结束印出字符...统计空格 Jacksonvs.SD方Jackson方(Jackson图
(Jackson图
(Jackson伪代码
(DFD图
SD(SC图
(PDL等工具
面向对象方结构化方法的缺,面向对象方法的效率,并且大大减少软件 细节,不影响整个系统 面向对象方 面向对象方法的要把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作——继承对象彼此之间仅能通过发送消息互相联对象的所有”私有信息”都被封装在该对象内,不能从外界直——封装( 面向对象方法的优 软件生命周
软件生命周 概要设计(总体设计 详细设计(模块设计详细设计每个模确定实现模块功能所需的算法和数据结 综合测 软件生命周8.软 :通过各种必要 活动使系统持久地满足用户的需改正
完善
预防来的活动 软件开发过程模生命周期模型(过程模型规定了把软件生命周期划分成哪些阶各个阶段的执行瀑布模型(Waterfall增量模型(Incremental快速原型模型(RapidPrototype螺旋模型(Spiral喷泉模型(FountainRUP(RationalUnified敏捷过程与极限编程(AgileSoftwareProcess&微软过程 瀑布模型(Waterfall在软件工得以广泛应用 瀑布模型(Waterfall阶段间具有顺序性和依赖推迟实现的观 瀑布模型(Waterfall 瀑布模型(Waterfall00实际的瀑布模瀑布模型(Waterfall护工作可以在该规范的指导下展开,避免了软件开发、过的随意状态不适应需求经常发生变更的环境(“沙滩上盖楼房只有到项目的开发晚期才能够得到程序的可运行版 PrototypeModel)快速建立起可以在计算往是最终产品功能的子
PrototypeModel) 尽可能使用快速开发工具
PrototypeModel)优缺
供最的功能
螺旋模型(Spiral
螺旋模型(Spiral
螺旋模型(Spiral螺旋模型(Spiral
喷泉模型(Fountain体现了面向对象软件开发过程迭代和无的特 向下箭头:阶段内的迭代(求精
新兴的软件过RUP(RationalUnified敏捷过程与极限编程(AgileSoftwareProcess&eXtremeProgramming) SolutionsFramework,
Rational统一过程RationalUnifiedProcessRUP),Rational软件面向对象为在开发组织中分配任务和职责有一套过程框架(ProcessFramework),各个组织可根
1.5.6Rational统一过程BestBestProcessMadeDevelopIterativelyModelVisually(UML)ContinuouslyVerifyQualityManage
1.5.6Rational统一过程迭代式开发(develop管理需求(manage用例分析可视化软件建模(modelsoftware可视化的 模语言不断地验证软件质量(continuouslyverify控制软件变更(control
RUP建模元角色完成工作的角色,定义他们应履行的行为和职活动定义了工作人员如何执行工制品工作流描述生成制品的活动序列,用以描述工作人员之间的交6 过程工作流和3 支持工作
业务建模(Business需求分析和设计 ysis&
实现Change过程工作 ysis&Design):研究实现环境和系统构件
支持工作(7)配置和变更管理(Configuration&Change
RUP开发过程阶RUP把软件生命周期划分为四个连续的阶
初始阶段(Initial主要目
初始阶段(Inception
精化阶段(Elaboration主要目
精化阶段(Elaboration主要成
构建阶段(Construction集成于适当操作系统平台上的软件产用户手当前版本的描
移交阶段(Transition
RUP软件开发生命敏捷软件开年月-13日,17位软件开发方法专 Utah州东北部Wasatchmountains里的一个叫Snowbird虽然这些方法过去 法”(LightweightMethods),但该名字并不足以代表这些捷开发方法(AgileDevelopmentMethodology),同时组建了敏捷(AgileAlliance)
IndividualsandprocessesIndividualsandprocessesandWorking CustomercontractRespondingtofollowinga
12条原Ourhighestpriorityistosatisfythecustomerthroughearlyandcontinuousdeliveryofvaluablesoftware echangingrequirements,evenlateindevelopment.Agileprocessesharnesschangeforthecustomer'scompetitiveadvantageDeliverworkingsoftwarefrequently,fromacoupleofweekstoacoupleofmonths,withapreferencetotheshortertimescaleBusinesspeopleanddevelopersmustworktogetherdailythroughouttheprojectBuildprojectsaroundmotivatedindividuals.Givethemtheenvironmentandsupporttheyneed,andtrustthemtogetthejobThemostefficientandeffectivemethodofconveyinginformationtoandwithinadevelopmentteamisface-to-faceconversation
12条原WorkingsoftwareistheprimarymeasureofAgileprocessespromotesustainabledevelopment.Thesponsors,developers,andusersshouldbeabletomaintainaconstantpaceindefini ContinuousattentiontotechnicalexcellenceandgooddesignenhancesagilitySimplicity--theartof izingtheamountofworknotdone--isThebestarchitectures,requirements,anddesignsemergefromself-organizingteamsAtregularintervals,theteamreflectsonhowto effective,thentunesandadjustsitsbehaviouraccordingly
敏捷开发的特短周期、小版本渐进交业务人员和开发人员长期紧密地在一起工作和交方法本身易即使在最后时刻也能够处理需求变
敏捷开发的优时时3个6个8个12个效率提减少百分功能缺陷投时第一第一第二第三总敏捷的成其他方法的成使用敏捷的成本
Sou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年盘式干燥机项目综合评估报告
- 2024至2030年中国静音自动制版机行业投资前景及策略咨询研究报告
- 2024年管角钢项目成效分析报告
- 2024至2030年中国胶质油数据监测研究报告
- 2024至2030年中国结晶硝酸铵行业投资前景及策略咨询研究报告
- 2024至2030年中国机械式无段变速机数据监测研究报告
- 2024至2030年中国坦克导弹玩具数据监测研究报告
- 医务人员培训经验交流
- 广西来宾市(2024年-2025年小学五年级语文)统编版小升初真题(上学期)试卷及答案
- 黑龙江佳木斯市(2024年-2025年小学五年级语文)人教版质量测试(下学期)试卷及答案
- 高考高中语文必背古诗文72篇-必考古诗词全总结
- 隧道工程毕业设计
- 彝族民间音乐智慧树知到期末考试答案2024年
- MOOC 通信原理-北京邮电大学 中国大学慕课答案
- Python数据分析与应用-第2章-NumPy数值计算基础
- MOOC 工程水文学-华中科技大学 中国大学慕课答案
- JTGT J23-2008 公路桥梁加固施工技术规范
- (高清版)DZT 0280-2015 可控源音频大地电磁法技术规程
- 大学生职业规划大赛生涯发展
- 计算机专业大学生职业生涯规划 (修改)
- 上好一堂阅读课:第3版
评论
0/150
提交评论