老师软件工程课件知识点整理_第1页
老师软件工程课件知识点整理_第2页
老师软件工程课件知识点整理_第3页
老师软件工程课件知识点整理_第4页
老师软件工程课件知识点整理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、什么是研究?问题是什么?假设前提是什么?(理论基础)解决问题的方法是什么?(论证过程)结论是什么?(贡献及期待)关于研究的简单实例东方关于女人美的观点:(理论基础)手如柔荑(t) 、肤如凝脂、领如蝤蛴(qiq) 、齿如瓠(h)犀、螓(qn)首蛾眉、巧笑倩兮、美目盼兮出自诗经.卫风.硕人手指细如嫩荑、皮肤白皙如凝脂、颈脖美丽如蝤蛴洁白圆润、牙如瓠籽白又齐、宽宽的额头、弯弯的眉毛 、浅笑盈盈酒窝俏、美目左顾右盼眼波俏论证过程手如柔荑(X)肤如凝脂(?)领如蝤蛴(X)齿如瓠犀(?)螓首()蛾眉(X)巧笑( )倩兮(X)美目盼兮(?)西方关于美的观点:(理论基础)黄金分割定理(Golden Secti

2、on)把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。 (1/x)=(x/(1-x)其比值是5(1/2)-1/2或二分之根号五减一,取其前三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割。这个数值的作用不仅仅体现在诸如绘画、雕塑、音乐、建筑等艺术领域,而且在管理、工程设计等方面也有着不可忽视的作用。结论:在东方文明看来,蒙娜丽莎不美在西方文明看来,蒙娜丽莎美展望:东西方审美观的差异:进一步研究其他类型的审美观不一致问题,例如建筑,.再进一步联想到:不同社会文明的差异给人类社会发展带来的影响研究问题是什么研究要针对问题。问题来源于:社会实践需

3、要、追踪科学前沿和热点嵌入式系统研究的问题:嵌入式系统的可靠性(稳定运行的时间)嵌入式系统的性能(运行速度、功耗)嵌入式系统的可演化性(结构)嵌入式系统的正确性(行为)嵌入式系统地正确性:系统建模与验证如何找到研究问题首先,从项目实践中获取候选问题列表:实践中经常遇到的问题是什么?实践中难以解决的问题是什么?实践中最重要的要解决的问题是什么?其次,通过交流确定候选题目:与导师交流,如果研究领域导师熟悉,很快就可以确定广泛阅读最新的文献,通过阅读文献,尤其是会议论文,能够确定目前这一领域的热点研究问题是什么与同学交流,包括高年级同学、其他专业同学、其他学校同学依据自己的兴趣爱好如何确定研究内容首

4、先,从收集的文献中确定一篇合适的文献作为起点,仔细阅读,回答:文章研究的问题是什么?其背景是什么?其意义是什么?文章解决问题的理论依据是什么?文章解决问题的方法是什么?包括论证过程、实验数据、实验工具文章解决问题得到的有用结论是什么?应用价值和科学价值何在?其次,针对详细阅读的论文,仔细思考以下问题:文章中有哪些方面的内容值得进一步研究?文章还有哪些问题没有涉及到?文章的研究方法可以进一步改进吗?文章的实验数据存在问题吗?文章的实验工具可以改善吗?文章的结论,尤其是展望值得进一步研究吗?文章的研究在实际应用中还存在哪些问题?文章的结论可靠吗?与实际相符吗?再次,确认前面提到的各种问题:查找相关

5、文献学习与论文有关的基本理论动手验证论文的实验进一步思考前面的问题,通过批判性思维反驳,记录反驳的依据与同学进行交流讨论与导师交流讨论RAD模型的不足技术风险很高的情况不适合采用; (如新软件要求与已存在的程序有高可互操性时,或系统难以被适当地划分为若干功能等情况)需要足够的人力以创建足够的RAD小组;开发者和用户需要在很短的时间内完成系统开发。渐增模型前述生存期模型,均是一次性地将整个系统交给用户: 瀑布模型是假设当线性阶段完成之后就能交付一个完善的系统。原型模型主要用来帮助开发者获取用户需求,待需求稳定后再开发最终系统提供给用户。RAD模型则先将系统主要功能分给若干RAD小组开发,然后集成

6、起来形成最终系统提交给用户。业务和产品需求的变化,市场竞争和商业压力等等 以逐步增加软件产品的方式构造软件-渐增模型渐增模型的特点可以根据需要补充人员 ;能够有计划地管理技术风险;能够减少全新软件产品对用户带来的影响;不需要大的资金支出;用户能及早使用及早发现问题;投资回报随功能渐增而渐增。渐增模型的不足:如果产品整体结构设计不当,则难以为其增加新的增量; (对设计水平要求较高)由于采用增量开发,故难于进行彻底的测试。螺旋模型螺旋模型的特点:既保持了传统生命周期模型中系统的阶段性方法,又将迭代演化的思想吸收到模型中;螺旋模型是风险驱动的。 (风险分析使得用户和开发者能够更好地理解和对待每一个阶

7、段的风险)螺旋模型适合于大型软件的开发螺旋模型的不足:要求软件开发人员善长风险分析;风险分析会导致项目终止而终止合同,出现违约诉讼;对于小项目,风险分析的成本可能与整个项目的成本相当。敏捷原则最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意。即使在开发后期,也欢迎需求改变。敏捷过程利用变化来为客户创造竞争优势。 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。 在整个项目开发期间,业务人员和开发人员必须天天在一起工作。 围绕有积极性的个人构建项目团队。为他们提供所需的环境和支持,并信任他们能够完成工作。 在团队内部,最有效果并富有效率的信息传递

8、方法是面对面的交流。 可运行的软件是首要的进度度量标准。 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、稳定的开发速度。 持续关注优秀的技能和好的设计,增强敏捷能力。 简单(是不必做的工作最大化的艺术)是必要的。 最好的架构、需求和设计出自于自组织的团队。 每隔一段时间,团队应反省如何才能有效地工作,并相应地调整自身的行为。 极限编程(Extreme Programming,简称XP)是由Kent Beck、Ward Cunningham、Ron Jeffries等人通过整理优秀团队的共同之处而提出的敏捷过程。所谓极限,Kent Beck认为是:尽力而为,然后处理其

9、结果。极限编程专注于编程技术、清晰沟通和团队协作,只需做能够为客户创造价值的事情,是一组确保项目开发成功的规则,适用于任何规模的团队,适合模糊或快速变化的需求。站立式会议大多在9点钟开始,团队集中讨论当前的工作,对具体问题寻求解决建议。站立会议一般持续很短的时间,应该回答:自昨天开始已经做了什么?从现在开始你将做什么?阻碍迭代目标的有什么?有没有未完成的事情?在需求或技术等方面是否有与其他人员有关的决定等。站立式会议的目的是相互交流学习,了解项目的进度。极限编程过程强调小规模、频繁地发布代码和测试。一方面,小型发布有利于尽早为客户提供业务价值,使客户增加信心。另一方面,客户可以通过使用小型发布

10、的软件系统,能够获取更多的其他需求,发现系统存在的缺陷,通过反馈将更有力地指导项目成功,包括改善进度估算、完善故事、改变故事实现的优先级等。在发布阶段,如果需要文档,则应该在当前版本趋于稳定时撰写文档,主要包括:系统文档,为理解系统提供一个总览信息,如系统技术架构、高层次系统需求、关键设计决策总结、重要的设计模型等等;系统操作文档,描述系统涉及的依赖关系、与其他系统交互的特性、预期系统负载等;系统支持文档,描述解决问题时的参考信息、疑难问题的上报流程、维护团队的联系列表等;用户文档,如参考手册、用户指南、支持指南及培训资料等。极限编程实践:Scrum 过程在敏捷软件开发中,Scrum是一种迭代

11、增量式软件开发过程,就像橄榄球赛的争球过程:快速、自组织和有适应性。Scrum团队角色:产品负责人(Product Owner):定义和维护“产品待办事项表(Product Backlog)”,负责最大化产品以及Scrum团队的工作价值,代表利益相关者的利益。 Scrum主管(Scrum Master):确保Scrum团队遵循Scrum理论、实践和规则,通过指导和引导,使Scrum团队更加高效地创建高质量的产品。 开发团队(Development Team):负责在每个冲刺(Sprint)结束,交付潜在可发布的“已完成”产品增量。只有开发团队的成员才能交付产品增量。开发团队:团队的大小足够小,

12、以保证灵活性,同时应能完成有意义的任务,一般是72人。开发团队有以下几个特点: 员是自组织的,没有人(即使是Scrum主管都不可以)告诉开发团队如何把产品待办事项表变成潜在可发布的功能。开发团队是跨功能的,团队作为一个整体拥有创造产品增量所需要的全部技能。Scrum不认可开发团队成员的头衔,无论承担哪种工作他们都是开发者。此规则无一例外。 开发团队中的每个成员可以有特长和专注领域,但是责任归属于整个开发团队。开发团队不包含如测试或业务分析等负责特定领域的子团队。Scrum制品:Scrum软件开发过程产生的制品除可工作的软件外,主要有四种:产品待办事项表、冲刺待办事项表、冲刺燃尽图和发布燃尽图。

13、产品待办事项表模版冲刺待办事项表模版冲刺燃尽图(Sprint Burndown)Scrum会议由Scrum主管主持。冲刺计划会 每日站立会 冲刺评审会议 冲刺反思会 与极限编程敏捷软件开发过程相比,Scrum过程强调管理,而极限编程强调实践,两者具有很好的互补性。冲刺计划会冲刺计划会是为冲刺做准备的会议,主要确定冲刺要做什么和怎么做,时间大概是几个小时。在这个会议中,开发团队和产品负责人通过共同讨论,理解产品负责人需要什么和为什么需要,从而由开发团队自己确定本次冲刺应该完成的产品待办事项表中的条目。然后,开发团队针对要在本次冲刺中实现的条目进行计划、分析和设计,并将每个条目分解成细粒度的任务,

14、形成冲刺待办事项表和冲刺目标。每日站立会议要求每个成员都参加,时间不超过15分钟。会上,所有成员必须回答三个问题:上次站立会议后做了哪些工作?遇到了哪些问题?下次站立会议之前计划做什么?Scrum主管负责帮助团队解决遇到的问题。在会后,会有一个或多个并行的会议跟进。跟进会议不要求所有人都参加,主要针对站立会议收集的信息与相关成员作进一步的沟通,此时Scrum主管一般不参加。冲刺评审会议对功能性的产品增量进行审视和调整,时间不超过4小时(小时数等于本次冲刺周期的周数)。在冲刺评审会中,真实用户和产品负责人检验和使用运行起来的软件。通过开发团队、产品负责人和其他涉众之间的交流,审视产品的进展,并针

15、对问题进行调整。冲刺反思会在冲刺评审会之后,针对流程和环境的审视和调整。每位成员要求对本次冲刺的情况进行回顾,不仅对工作中存在的问题进行反思,而且也要讨论好的工作方式。每位成员要对其他成员的反思进行评价,表达各自的期望。有人统计,在行业实际使用的所有敏捷软件开发过程中,极限编程过程占8%,Scrum过程占49%,极限编程和Scrum结合过程占22%,其他敏捷软件开发过程占21%。精益软件开发 特征驱动软件开发基于Petri网的软件过程建模:C.A.Petri 博士在1962 年首次提出了Petri网的概念。Petri 网是一种用于系统描述和分析的数学工具。Petri 网通过对实际软件开发过程中

16、的开发活动, 对产品、资源等进行抽象, 从而完成对软件过程的描述, 并进一步支持软件过程的标准化和自动化。二元组N=(S,T,F)称为有向网的充分必要条件是:1. ST=, (二元性)2. ST , (非空)3. FSxT TxS, (x为笛卡尔积)4. dom(F) cod(F) = ST, (不存在孤立元素)其中:dom(F)=x|y: (x,y)F, cod(F)=y|x: (x,y)F分别称为F的定义域(domain)和值域(codomain)S称为N的库所集,通常用圆圈或椭圆表示库所,描述系统状态T称为N的变迁集,通常用方框或粗杠表示变迁,描述系统事件F称为N的流关系,通常用箭头表示

17、,描述系统状态和事件之间的关系通常在Petri 网的图形表示中, 用圆圈( O )表示库所, 矩形( 口) 表示变迁, 黑点() 表示托肯( t o k e n )。Petri网例子一年四季的变化状态:春、夏、秋、冬事件:立春、立夏、立秋、立冬Petri网系统Petri网只提供了系统的结构框架,就像演戏的舞台活动在框架上的是系统中流动的资源假定有向网N=(S,T,F),记IN0=0,1,2, IN=1,2, 并以表示无穷: = +1= + K:S-IN 称为N的容量函数对给定的容量函数K,M:S-IN0称为N的一个标记(Marking)的条件是:sS:M(s)K(s)W:F-IN称为N上的权函

18、数,对(x,y) F,W(x,y)=W(x,y)称为(x,y)上的权六元组=(S,T,F,K,W,M0)构成网系统的条件是: 1)N=(S,T,F)构成有向网,称为的基网 2)K,W和M0 依次为N的容量函数、权函数和初始标识Petri网系统变迁发生的条件假定N是Petri网系统的基网.x=y|(y,x)F称为x的前集或输入集x.=z|(x,z)F称为x的后集或输出集t是N中的变迁, . t. = . t t.称为t的外延t在M有发生权的条件是:s . t :M(s)W(s,t)s t . :M(s)+W(s,t)K(s)t在M有发生权记作Mt,也说M授权t发生或t在M授权发生若Mt,则t在M

19、可以发生,将标识M改变为M,对任何s S,M(s)为:M(s)-W(s,t), 若s . t -t . M(s)+W(s,t), 若s t. - . tM(s)-W(s,t)+W(t,s), 若s t. - . tM(s),若s . t. 简单有色Petri网的例子哲学家就餐P=Think, Eat, UnusedchopsticksT = TakeChopsticks, PutDownChopsticksA=(Think, TakeChopsticks), (TakeChopsticks, Eat), (Eat, PutDownChopsticks), (PutDownChopsticks,

20、 Think), (Unusedchopsticks, TakeChopsticks), (PutDownChopsticks, Unusedchopsticks) =PH, CSV = p:PHC(p) = PH if pThink, Eat, CS otherwise G(t) = true for all tTE(a) = 1p if a(Think, TakeChopsticks), (TakeChopsticks, Eat), (Eat, PutDownChopsticks), (PutDownChopsticks, Think), chopsticks(p) otherwise I

21、(p) = PH.all() if pThink, CS.all() if pUnusedchopsticks, Oms otherwise对一个有色Petri 网CPN,定义: 1)一个标识(Marking)是一个函数M,将每一个库所p映射为标记M(p)C(p)ms的多重集合 2)初始标识M0定义为M0(p)=I(p),对所有pP. 表示空绑定 3)变迁t的变量var(t) V,由t的守卫条件中出现的自由变量和与t相连的弧的弧表达式中出现的自由变量组成 4)变迁t的一个绑定是一个函数b,将每个变量vvar(t)映射到一个值b(v) type(v). 变迁t的所有绑定集记为B(t) 5) 一个

22、绑定元素是一个二元组(t,b),满足tT, b B(t). CPN模型中所有绑定元素构成的集合记为BE 6) 步Y BEms是一个绑定元素的非空、有限多重集合 例如(Take_Chopsticks,)便是一个有色Petri网变迁Take_Chopsticks的步软件组织为何要引入CMMI?企业面临更多的挑战与市场竞争新的发展方向和机会软件外包服务,业务合作“认证” 要求 市场宣传、投标资质、顾客的压力 ISO9001,CMMI,信息安全,知识产权保护顾客满意度,要求按时交付产品;以较低的成本、开发出更多功能、更好质量的产品企业能力提升的要求业务和规模和扩展(开发团队人员增加)更复杂的产品人员流

23、失(组织的知识资产没有保留和积累)项目的可预见性不足很多不成熟的软件组织面临的问题项目有可能获得良好的性能和结果,但是需求经常得不到一致的理解,并且往往是不受控制地进入项目进度和预算经常得不到保障项目的进展无法度量产品的内容没有跟踪和控制,版本混乱工程活动没有标准,实施得不一致开发团队没有经过培训,相互间不协调缺陷增生项目的成功依赖于技术骨干CMMI 能力成熟度模型集成 Capability Maturity Model Integration 软件过程改进方面得到国际认可的标准目的:为软件组织改进和提高过程能力提供指南内容:涵盖系统工程和软件工程管理的最佳实践 - 涉及产品的开发和维护活动、

24、覆盖产品从概念提出到交付和维护的整个生存周期。评估组织当前开发管理状况的标尺阶段型按成熟度等级划分过程域指导思想:自顶向下、逐步求精、单入口、单出口;基本原则:抽象和功能分解;方法论:系统是由一些功能的相互联系、相互作用而形成;结构化方法系列:结构化分析方法、结构化设计方法和结构化程序设计方法。 (具体)技术方法:面向数据流图的方法、IDEF0方法、Jackson方法、LCP(Logical Construction Programs)方法等。结构化方法的特点强调阶段划分;简单实用;技术成熟;应用广泛。特别适合于需求能够预先指定的系统的开发结构化方法的不足不太适应规模大及特别复杂的项目;难于解

25、决软件重用(复用)问题;难于适应需求变化或模糊的问题;软件维护依然比较复杂。Data Flow Modeling数据流建模方法是一种结构化分析方法;自顶向下、逐层分解地定义系统需求;特点是利用数据流图来对用户需求进行分析;可用于分析任何应用系统的需求(why?)。数据流(用箭头表示);加工(加工一般用一个圆圈或圆角方框来表示 );数据存储(一般用开口的矩形框或双划线来表示); 数据的源点和终点(一般用正方形或立方体来表示 );扩展符号主要有:*、+和 。分层数据流图只用一张数据流图来描述,不仅难于一次画齐,而且也难于理解。 分层数据流图可以避免一次引入过多的细节,有利于控制问题的复杂度,从而便

26、于对大型系统描述的实现。 不同的用户可以只选择分层数据流图中与本身有关或感兴趣的部分,不必阅读全图,从而便于用户的使用和理解。除顶层图只有一张不用编号外,每一张分层图均编号,编号规则为:分层图的编号等于相应被分解处理的编号;处理的编号=图的编号+“.”+顺序号;顶层图中处理编号为0,可省略。例子 假设商场每周需要一张订货报表,表中对于每一需要订货的商品,要求列出下列数据:商品编号、商品名称、库存数量、订货数量、商品单价、供应商。商品入库或出库称为库存更新事务。系统通过仓库中的显示终端由仓库管理员把事务报告录入到订货系统中。当某种商品的库存数量比设定的库存量临界值小时,表示需要订货。采购员根据每

27、周的订货报告进行订货。抽象与求精抽象是一种常用的思考和解决问题的方式,即抽取事物的本质的共同特性而暂时避开不必要的低层细节。 方式:过程抽象、数据抽象和控制抽象。抽象过程是指具有特定功能的一个命名的指令序列。(如:二维图形创建 )抽象数据则是描述数据对象的一个命名的数据集合。(如:“图画”数据对象 ) 抽象控制包含了一种程序控制机制而无须刻画其内部细节。(如:操作系统中的“同步信号量”)求精是由N. Wirth最初提出的一种自顶向下设计策略,其主要思想是:将某个宏观功能不断分解,逐步确定过程细节,直至用程序设计语言描述的算法实现为止。抽象使得设计人员能够避开过早地陷入细节之中刻画过程和数据。求精能够帮助设计人员随着设计过程的深入而不断呈现更低层次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论