下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件危机:计算机软件的开发与维护的过程中所遇到的一系列严重问题。如何消除软件危机:1,应该彻底消除在计算机系统早期发展阶段形成的软件就是程序的错误概念。2,充分认识到软件不是个体劳动的神秘技巧,而是一种组织良好,管理严密,各类人员协同配合,共同完成的工程项目。3,在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法。4,应该开发和使用更好的软件工具。4,解决软件危机既要有技术和工具,又要有必要的组织管理措施。软件工程的工作原理:1,用分阶段的生命周期计划严格管理。2,坚持进行阶段评审。3,实行严格的产品控制。4,采用现代程序设计技术。5,结果应能清楚地审查。6,开发小组的人员应该少而精。7,承认不断改进软件工程实践的必要性。软件工程方法学的三要素:方法,工具,过程。软件生命周期包含的阶段和任务:1,问题定义,任务,要解决什么问题。2,可行性研究,任务,研究问题范围,探索这个问题是否值得去解决,是否有可行的解决办法。3,需求分析,任务,用正式文档准确的记录对目标系统的需求。4,总体设计,任务,设计程序的体系结构。5,详细设计,任务,设计出程序的详细规格说明。6,编码和单元测试,任务,写出正确的容易理解,容易维护的程序模块。7,总和测试,任务,通过各种类型的测试使软件达到预定的要求。模型的优缺点,适用场合瀑布模型的优点:可强迫开发人员采用规范的方法;严格的规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:1,瀑布模型是有文档驱动的。2,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发的软件产品不能真正的满足用户的需要。适用场合:传统软件工程方法学的软件过程基本上可以用瀑布模型来描述。快速原型模型的优点:1,快速原型模型是不带反馈环的。2,软件产品的开发基本上是线性顺序进行的。快速原型模型的缺点:1,客户与开发者对原型理解不同;2,准确的原型设计比较困难;,3,不利于开发人员的创新。适用场合:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。增量模型的优点:1,能在较短的时间内向用户提交可完成部分工作的产品。2,逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。缺点:1,设计时要考虑软件构建的扩充。适用场合:1,进行已有产品升级或新版本开发,增量模型是非常适合的;2,对完成期限严格要求的产品,可以使用增量模型;3,对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。螺旋模型的优点:1,设计上的灵活性,可以在项目的各个阶段进行变更;2,以小的分段来构建大型系统,使成本计算变得简单容易;3,客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;4,随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。缺点:它是风险驱动的,要求工作人员具有丰富的风险评估经验和这方面的知识,否则项目实际上正在走向灾难,开发人员可能还认为一切正常。适用场合:螺旋模型只适合于大规模的软件项目。可行性研究的目的与过程:目的:不是解决问题,而是确定问题是否值得去解决。过程:1,复查系统规模和目标;2,研究目前正在使用的系统;3,导出新系统的高层逻辑模型;4,进一步定义问题;5,导出和评价供选择的解法;6,推荐行动方针;7,草拟开发计划;8,书写文档提交审查。数据流图四种成分及符号表示:源点或终点,处理,数据存储,数据流(符号表示见书p41)需求分析的任务:1,确定对系统的综合要求。2,分析系统的数据要求。3,导出系统的逻辑模型。4,修正系统开发计划。需求分析过程应该建立三种模型及分别用什么表示:数据模型,功能模型,行为模型;实体联系图用于建立数据模型图形,数据流图用于建立功能模型,状态图用于建立行为模型数据模型中包含三种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系;ER图包含了实体(数据对象)、关系和属性3种成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体的属性。层次方框图与层次图的区别:①层次图描绘软件的层次结构,层次方框图描绘数据结构②层次图中方框代表一个功能模块,层次方框图方框代表数据的子集或数据元素③层次图中连线表示模块间调用关系,层次方框图连线表示组成关系.总体设计的两个阶段:总体设计主要由系统设计阶段和结构设计阶段组成,包括以下9个步骤:设想供选择的方案;选取合理的方案;推荐最佳方案;功能分解;设计软件结构;设计数据库;制定测试计划;书写文档(系统说明,用户手册,测试计划,详细的实现计划,数据库设计结果);审查和复审。模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能。抽象:抽出事物的本质特性而暂时不考虑它们的细节。逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。信息隐藏:在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。局部化:把一些关系密切的软件元素物理地放得彼此靠近。耦合:数据耦合,控制耦合,特征耦合,公共耦合,内容耦合。耦合设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合内聚,标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展,设计时力争做到高内聚,低内聚,偶然内聚,逻辑内聚,时间内聚,中内聚,过程内聚,通信内聚,高内聚,顺序内聚,功能内聚。.深度表示软件结构中控制的层数,宽度是软件结构内同一层次上的模块总数的最大值,扇出是一个模块直接控制的模块数,扇入表明多少个上级模块直接调用它模块的作用域定义为受该模块内一个判定影响的所有模块的集合,模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合,模块的作用域应该在控制域之内。结构图是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。按照惯例图中位于上方的方框代表的模块调用下方的模块,也可以只用直线而不用箭头表示模块间的调用关系在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。什么是结构程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。过程设计的工具:程序流程图,盒图,PAD图,判定表,判定树,过程设计语言。测试步骤:模块测试(又称单元测试),发现编码和详细设计的错误;子系统测试,着重测试模块的接口;系统测试(又称集成测试),发现设计和编码的错误,也可能发现需求说明中的错误;验收测试(又称确认测试),发现需求说明书中的错误;平行运行。黑盒测试:等价划分,边界值分析。调试:就是把症状和原因来联系起来的尚未被人深入认识的智力过程。四种维护:改正性维护,适应性维护,完善性维护,预防性维护决定软件可维护性的因素:可理解性,可测试性,可修改性,可移植性,可重用性软件再工程过程:库存目录分析,文档重构,逆向工程,代码重构,数据重构,正向工程面向对象方法学OO=object+classes+nheritance+communicationwithmessages只有同时使用对象,类,继承和消息的方法,才是真正的面向对象方法学。面向对象方法学开发软件,建立三种模型:描述系统数据结构对象模型,使用UML中的类图来建立;描述系统控制结构的动态模型,使用UML中的状态图建立;描述系统功能的功能模型,使用一组数据流图或UML中的用例图建立对象模型中表示关系的符号:类与类之间通常有关联、泛化(继承)、依赖和细化等四种关系。(符号表达见书p217)关联,表示两个类的对象之间存在某种语义上的联系普通关联的图示符号是连接两个类之间的直线,通常,关联是双向的,可在一个方向上为关联起一个名字,在另一个方向上起另一个名字(也可不起名字)。为避免混淆,在名字前面(或后面)加一个表示关联方向的黑三角;限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集,一般聚集和共享聚集的图示符号,都是在表示关联关系的直线末端紧挨着整体类的地方画一个空心菱形;如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值了),则该聚集称为组合聚集(简称为组成),组成关系用实心菱形表示泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系,在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。普通泛化,与继承基本相同,指能够直接或间接获得已有的性质和特征,而不必重复定义它们。受限泛化,可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有4种:多重、不相交、完全和不完全。多重继承指的是,一个子类可以同时多次继承同一个上层基类;与多重继承相反的是不相交继承,即一个子类不能多次继承同一个基类。依赖和细化依赖关系描述两个模型元素(类、用例等)之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素,在UML的类图中,用带箭头的虚线连接有依赖关系的两个类,箭头指向独立的类。在虚线上可以带一个版类标签,具体说明依赖的种类;当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。三种模型之间的关系:(1) 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。(2) 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。(3) 功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。通常,复杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应于更基本的对象提供的服务。有时一个处理(或用例)对应多个服务,也有一个服务对应多个处理(或用例)的时候。(4) 数据流图中的数据存储,以及数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小麦粮食购销合同
- 山东省枣庄市(2024年-2025年小学五年级语文)人教版开学考试((上下)学期)试卷及答案
- 二零二四年度城市供水管道建设项目借款合同
- 美容美发用品2024年度仓储物流合同
- 基于区块链技术的2024年度实习生就业协议(含身份认证和信息安全)
- 《供应链管理》课件2
- 诊所与保险公司2024年度医疗保险合同2篇
- 正规的劳务合同范本
- 《经济管理》课件
- 《保险及保费计算》课件
- 《变压器》教学设计
- 生物技术研究部招聘岗位
- Module7Unit2Shecouldntseeorhear(教学设计)外研版英语六年级下册
- 【课件】第四章+运动和力的关系+大单元说课课件高一上学期物理人教版(2019)必修第一册
- 红色文化十讲第四讲PPT
- 放射科专科护理知识考试模拟题与参考答案
- 道德与法律辩论(合集7篇)
- 校园欺凌排查台账
- 大学生心理健康教育(第二版)PPT全套完整教学课件
- 汽车式起重机吊装安全专项施工方案
- 红土镍矿烧结工艺试验研究
评论
0/150
提交评论