还剩17页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章软件工程学概论、软件危机产生的原因I软件自身的特点难于维护、逻辑复杂软件开发与维护的措施不对的忽视需求分析重要性、轻视软件维护书本表述
1、软件不一样于硬件,它是计算机中的逻辑部件而不是物理部件
2、软件不一样于一般程序,它的一种明显特点是规模庞大,并且程序的复杂性将规模的增长而展现指数上升
3、软件自身特有的特点确实给开发和维护带了某些客观困难
4、软件开发与维护有关的许多错误认识与做法有关忽视需求分析,轻视软件维护
5、对顾客规定没有完整精确的认识就匆忙开始着手编写程序
6、在软件不一样阶段进行修改需要付出的代价是很不相似的、软件危机的体现什么是软件危机2⑴、成本高
2、软件质量得不到保证软件质量问题导致失败的软件项目非常多
3、进度难以控制•项目延期比比皆是•由于进度问题而取消的软件项目较常见・只有一小部分的项目可以按期完毕
4、维护十分困难▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用、克服软件危机
31、管理的角度软件开发过程的研究、文档的原则化以及人员的交流方式等
2、软件开发措施的研究构造化软件开发措施,面向对象的开发、软件工程的定义4概括的说,软件工程师指导计算机软件开发和维护的一门工程学科采用工程的概念、原理、技术和措施来开发和维护软件,把通过时间考验而证明对的的管理技术和目前、测试的概念2第六章软件测试1测试是为了发现程序中的错误而执行程序的过程2好的测试方案是极也许发现了至今为止尚未发现的错误的测试方案3成功的测试是发现了至今为止尚未发现的错误的测试、测试的过程与环节3P153大型软件的测试过程基本由下述几种环节构成⑴模块测试单元测试发现编码和详细设计的错误2子系统测试3系统测试集成测试4验收测试确认测试⑸平行运行、单元测试4P153着重从下述5个模块进行测试重要使用白盒测试技术⑴模块接口2局部数据构造⑶重要的执行通路4出错处理通路5边界条件、集成测试5P156集成测试就是测试和组装软件的系统化技术,重要目的是发现与接口有关的问题有两种集成策咯1自顶向下集成
(2)自底向上集成也称验收测试,它的目的是验证软件的有效性一般使用黑盒测试法、确认测试()6P
160、白盒测试技术()7P162白盒措施测试软件时设计测试数据的经典技术⑴逻辑覆盖
1、语句覆盖
2、鉴定覆盖
3、条件覆盖
4、鉴定/条件覆盖
5、条件组合覆盖
6、点覆盖
7、边覆盖
8、途径覆盖⑵控制构造测试
1、基本途径测试
2、条件测试
3、循环测试、黑盒测试技术8()P171黑盒测试力图发现下述类型的错误⑴功能不对的或遗漏了功能⑵界面错误⑶数据构造错误或外部访问数据库错误⑷性能错误⑸初始化和终止错误黑盒测试用到的技术⑴等价划分
(2)边界值分析⑶借误推测第七章维护、维护的定义尸1189所谓软件维护就是在软件已经交付使用周,为了改正错误或满足新的需要而修改软件的过程根据交付使用之后也许进行的4项活动详细定义软件维护1改正性维护纠正在使用过程中暴露出来的错误;诊断和改正错误的过程,2适应性维护为了和变化了的环境合适地配合而进行的修改软件活动⑶完善性维护在使用软件的过程中增长新的功能或修改已经有功能,还也许提出一般性的改善意见的过程4防止性维护为了改善未来的可维护性与可靠性,或为了给未来的改善奠定更好的基础而修改软件的过程、维护的过程2P1921维护组织2维护汇报3维护的事件流4保留维护记录5评价维护活动、小结
31、软件生命周期每个阶段的工作都和软件可维护性有亲密关系
2、再工程过程可以在完毕任意一种活动之后中断第八章面向对象技术、面向对象措施学要点1203面向对象措施学的出发点和基本原则,是尽量模拟人类思维措施,是开发软件尽量靠近人类认识世界处理问题的措施与过程、面向对象措施学长处
21、与人类习惯的思维措施一致
2、稳定性好
3、可重用性好
4、较易开发大型软件产品
5、可维护性好、对象模型3“216对象模型表达静态的,构造化的系统的数据〃性质它是对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态构造、动态模型4“223动态模型表达瞬时的、行为化的系统的〃控制〃性质,它规定了对象模型中的对象的合法序列、功能模型50224功能模型表达变化的系统的〃功能〃性质,他指明了系统应当〃做什么〃,因此更直接反应了顾客对目的系统的需求、三种模型之间的关系)6rp228功能模型指明了系统应当“做什么”;动态模型明确规定了什么时候(即在何种状况下接受什么时间的触发)做;对象模型则定义了做事情的实体在面向对象措施学中,对象模型是最基本的,它为其他两种模型奠定了基础,人们依托对象模型完毕了3中模型的集成下面扼要地论述3种模型之间的关系三种模型描述了系统的不一样方面:对象模型动态模型功能模型对象的静态构造及互与时间和次序有关的与值的变化有关的系相关系系统性质统性质控制构造系统的功能描述系统的数据构造〃干事的主体”“什么时候干”,,干什么”功能模型与对象模型的关系-对象模型描述了功能模型中的动作对象,数据存储以及数据流构造-功能模型中的处理对应于对象模型中的操作动态模型与对象模型的关系-状态转换驱使行为发生,这些行为在DFD中被映射成处理,它们同步与对象模型的操作相对应-针对每个建立的动态模型描述了类实例的生命周期或运行周期动态模型与功能模型的关系-功能模型中的处理也许产生动态模型中的事件、其他7复杂问题(大型系统)的对象模型一般由下述5个层次构成主题层、类与对象层、构造层、属性层、服务层主题层类与对象层构造层属性层---------------------------------------服务层面向对象开发措施包括00A(面向对象分析)、00D(面向对象设计)、OOP(面向对象实现)三个部分第九章软件项目管理、估算软件规模()1P305⑴代码行技术每个人了估计程序的最小规模(a),最大规模(b)和最也许规模(m),分别算出这3中规模的平均值展5和沅之后,用下面公式计算程序规模a+4m+b⑵功能点技术、项目进度(图)2Gantt、质量保证3概括得说,软件质量就是〃软件与明确地和隐含地定义的需要相一致的程度〃更详细地说,软件质量是软件与明确地论述的功能和性能需求、文档中明确描述的开发原则以及任何专业开发的软件产品都应当具有的隐含特性相一致的程度、软件配置管理4软件配置管理事是在软件的整个生命周期内管理变化的一组活动详细地说,这组活动用来
(1)标识变化⑵控制变化⑶保证合适地实现了变化
(4)向需要懂得此类信息的人汇报变化、基线5基线是一种软件配置管理概念,它有助于人们在不严重叠理变化的前提下来控制变化,简而言之,基线就是通过了正式复审的软件配置项在软件配置项变成基线之前,可以迅速而非正式地修改它其他复习简答题、简述文档在软件工程中的作用1提高软件开发过程的能见度1提高开发效率2作为开发人员阶段工作成果和结束标志3记录开发过程的有关信息便于使用与维护;4提供软件运行、维护和培训有关资料•;5便于顾客理解软件功能、性能6可以得到的最佳的技术措施结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程
1、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件
2、
①把系统的、规范的、可度量的措施应用于软件开发、运行和维护的过程,也就是把工程应用于软件.
②研究
①中提到的途径总之软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程他借鉴老式工程的原理、措施,以提高质量,减少成本为目的、软件工程的本质特性
5、1关注与大型程序的构造、2中心课题是控制复杂度、3软件常常变化、4开发软件的效率非常重要、5友好的合作是开发软件的关键、6软件必须有效地支持它的顾客、7在软件工程领域中一般由具有一种文化背景的人替此外一种文化背景的人发明产品软件工程的基本原理、
81、用分阶段的生命周期计划严格管理
2、坚持进行阶段评审
3、实行严格的产品控制
4、采用现代程序设计技术
5、成果应能清晰地审查
6、开发小组应当少而精
7、承认不停改善软件工程实践的必要性软件工程学包括3个要素措施、工具和过程、软件生命周期7⑴、概念软件生命周期由软件定义、软件开发和运行维护也成软件维护3个时期构成
2、内容r f问题定义「软件定义[可行性研究需求分析「总体设计软件生命周期(软件开发《篇设计【单元测试综合测试——运行维护持久满足用户需求
1、问题定义回答,,要处理的问题是什么?,,,写出有关问题性质、工程目的和工程规模的书面汇报
2、可行性分析回答〃对于问题与否有行得通的处理措施〃,即探索问题与否值得去解,与否有可行的措施
3、需求分析确定〃为了处理这个问题,目的系统必须做什么〃,确定目的系统必须具有哪些功能,得到需求规格阐明书
4、总体设计回答〃概括地说,应当怎样实现目的系统?〃,确定程序由哪些模块构成以及模间的关系
5、详细设计回答〃应当怎样详细地实现这个系统呢〃,确定实现模块功能所需要的算法与数据构造
6、编码和单元测试写出对的的轻易理解、轻易维护的程序模块,然后仔细测试每个模块
7、综合测试通过多种类型的测试(及对应的调试)是软件到达预定规定
8、软件维护通过多种必要活动是系统持久地满足顾客需求、生命周期模型8⑴、瀑布模型老式瀑布模型特点
1、阶段间具有次序性与依赖性
2、推迟实现的观点
3、质量保证的观点瀑布模型长处
1、可强迫开发人员使用规范的措施例如构造化技术;
2、严格规定每个阶段必须提交的文档;
3、规定每个阶段交出的所有产品都必须通过验证缺陷
1、〃瀑布模型是由文档驱动的〃成为重要缺陷合用范围适合于顾客需求明确、完整、无重大变化的软件项目开发
2、迅速原型模型合用范围顾客不能给出完整、精确的需求阐明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等状况
3、增量模型特点
1、反复的应用瀑布模型的基本成分和原型模型的迭代特性,每一种线型过程产生一种“增量”的公布或提交,该增量均是一种可运行的产品
2、初期的版本实现顾客的基本需求,并提供应顾客评估的平台长处
1、在较短时间内向顾客提交可完毕部分工作的产品;
2、逐渐增长产品功能可以使顾客有较富余的时间学习和适应新产品,从而减少一种全新的软件也许给客户组织带来的冲击;缺陷
1、软件体系构造必须是开放的;
2、开发人员既要把软件系统看作整体又要当作可独立的构件,互相矛盾;
3、多种构件并行开发,具有无法集成的风险
4、螺旋模型基本思想使用原型或其他措施来减少风险合用范围合用于内部开发大规模软件项目长处
1、对可选方案和约束条件的强调有助于已经有软件的重用,也有助于把软件质量作为软件发的一种重要目的
2、减少了过多测试或测试局限性
3、维护和开发之间并没有本质区别缺陷
1、风险驱动,需要相称丰富的风险评估经验和专门知识,否则风险更大
2、伴随迭代次数的增长,工作量加大,软件开发成本增长
5、喷泉模型特点喷泉模型是一种以顾客需求为动力,以对象为驱动的模型,重要用于采用对象技术的软件开发项目该模型认为软件开发过程自下而上周期的各阶段是互相迭代和无间隙的特性
(6)、Rational统一过程RUP反复一系列周期,每个周期由一种交付给顾客的产品结束每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个关键工作流(需求、分析、设计、实现、测试)分别迭代第二章可行性研究概念(目的)用最小的代价在尽量短的时间内确定问题与否可以处理,不是处理问题,而是确定问题与否值得去处理、可行性研究任务2理解客户的规定及现实环境,从技术、经济和社会原因等三方面研究并论证本软件项目的可行性,编写可行性研究汇报,制定初步项目开发计划即对软件开发后来的行动方针提出提议、研究内容3
(1)技术可行性使用既有的技术能实现这个系统吗?
(2)经济可行性这个系统的经济效益能超过它的开发成本吗?
(3)操作可行性系统的操作方式在这个顾客组织内行得通吗?
(4)法律可行性新系统开发与否会侵犯法藤、集体或国家利益?、数据字典4
(1)、内容
1、数据流
2、数据流分量(即数据元素)
3、数据存储
4、处理
(2)、作用对于数据流图中出现的所有被命名的图形元素在字典中作为一种词条加以定义,使得每一种图形元素均有一种确切的定义第三章需求分析、需求分析的任务11确定对系统的综合规定2分析系统的数据规定3导出系统的逻辑模型4修正系统的开发环节、获取需求的措施21访谈2面向数据流自顶向下3简易的应用规模阐明技术4迅速建立软件模型、实体■关系图「、层次方框图和图36368IP
09、构造化分析模型4根据结构化分析准则,需求分析过程应该,数据模型实体-联系图建,工种3模型功能模型数据流图1【行为模型状态转换图数据模型功能模型体联系数据流g图(图E-R图,状态转换图控制说行为模型•数据流图描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,是建立功能模型的基础・实体-联络图描绘数据对象及数据对象之间的关系,用于建立数据模型•状态转换图指明了作为外部事件成果的系统行为描绘了系统的多种行为模式(称为“状态”)和在不一样状态间转换的方式是行为建模的基础第四章总体设计、模块独立性与耦合性()1P97
(1)模块化把程序划提成独立命名且可独立访问的模块,每个模块完毕一种子功能,把这些模块集成起来构成一种整体,可以完毕指定的功能满足顾客的需求模块化的长处
1.使软件构造清晰,轻易设计也轻易阅读与理解
2.轻易测试与调试,提高可靠性
3.提高软件的可修改性
4.有助于软件开发工程的组织管理⑵模块独立的重要性有效的模块化(即具有独立的模块)的软件比较轻易开发出来独立的模块比较轻易测试和维护
(3)耦合衡量不一样模块彼此间互相依赖(连接)的紧密程度,耦合要低,即每个模块和其他模块之间的关系要简朴
1、数据耦合两个模块之间通过参数互换信息,并且互换的信息仅仅是数据
2、控制耦合传递的信息中有控制信息
3、特性耦合当把整个数据构造作为参数传递而被调用的模块只需要使用其中一部分数据元素
4、公共环境耦合两个或多种模块通过一种公共环境互相作用
5、内容耦合出现一下状况之一,则为内容耦合
1、一种模块访问另一种模块的内部数据
2、一种模块不通过正常入口而转到另一种模块的内部
3、两个模块有一部分代码重叠
4、一种模块有多种入口数据耦合〈控制耦合〈特性耦合〈公共环境耦合(内容耦合
(4)内聚(P)99衡量一种模块内部各个元素彼此结合的紧密程度内聚要高,每个模块完毕一种相对独立的特定子功能信息隐藏(P96)应当这样设计和确定模块,使得一种模块内包括的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的、启发规则
21、改善软件构造提高模块独立性
2、模块规模应当适中
3、深度、宽度、扇入、扇出都应适中
4、模块的作用域应当在控制域之内
5、力争减少模块接口的复杂度
6、设计单入口、单出口模块
7、模块功能应当可以预测、层次图和图()3HIPO PM、面向数据流的设计措施(4Pi⑴概念面向数据流设计就是把信息流映射成软件构造,信息流的类型决定了映射的措施信息流包括变换流、事物流
(2)变换分析与事务分析(P105)、小结5i.进行软件构造设计遵照的最重要的原理是模块独立原理ii.抽象和求精是一对互补概念iii.软件工程师在实践中总结经验得出某些很有参照价值的启发式规则iv.自顶向下逐渐求精是进行软件构造设计的常用途径v.用形式化的措施由数据流图映射出软件构造第五章实现、选择程序设计语言1为了使程序轻易测试和维护以减少软件的总成本,所选用的高级语言程序应当有理想的模块化机制,以及可读性好的控制构造和数据构造为了便于调试和提高软件可靠性,语言特点应当是编译程序可以尽量多地发现程序中的错误;为了减少软件开发和维护的成本,选用的高级语言应当有良好的独立编译机制。
个人认证
优秀文档
获得点赞 0