软件工程导论(第13章)
- 格式:ppt
- 大小:954.50 KB
- 文档页数:124
3、下面叙述对一个计算机辅助设计(CAD)软件的需求:该CAD软件接受由工程师提供的二维或三维几何图形数据。
工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。
几何图形数据及其他支持信息都保存在一个CAD数据库中。
开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不向的图形设备上。
应该适当地设计软件,以便与外部设备交互并控制它们。
所用的外部设备包括鼠标、数字化扫描仪和激光打印机。
要求:(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能;(2)用代码行技术估算每个子功能的规模;(3)用功能点技术估算每个子功能的规模;(4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本;(5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本。
答:(1)习题中仅对需求做了粗略描述,每项需求都应该进一步扩展,以提供细节需求和定量约束。
例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。
经过对需求的进一步精化,分解出软件的下述7个主要的子功能:·用户界面及控制机制;·二维几何图形分析;·三维几何图形分析;·数据库管理;·计算机图形显示机制;·外部设备控制;·设计分析模块。
(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:乐观值(即最小规模),悲观值(即最大规模)和可能值(即最可能规模)。
然后用式(10.1)所示的加权平均法计算每个子功能的规模,结果示于表l0.4。
(3)使用功能点技术估算软件规模时,对软件的分解是基于信息域特性而不是基于软件功能。
表l0.5给出了对5个信息域特性的估计值。
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
2.产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.软件配置的主要包括程序、文文件和数据等成分。
配置管理工具:commit,分支,合并。
4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
(ppt上定义)、、、、、//6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型//7.软件工程方法学包含三个要素:方法、工具和过程。
//8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学//9.传统方法学也称为生命周期方法学或结构化范型//10.面向对象方法学的四个要点://1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件//2.把所有对象都划分成类//3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
//4.对象彼此间仅能通过发送消息互相联系。
11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和验收测试。
13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。
《软件工程导论》教学大纲安徽大学计算机科学与技术学院2017 年 3 月《软件工程导论》教学大纲课程编号:ZJ36047课程名称:软件工程导论英文名称:Introduction to Software Engineering 学分/学时:2/34 课程性质:学科平台课程适用专业:软件工程先修课程:计算机导论开课单位:计算机科学与技术学院一、课程的教学目标与任务《软件工程导论》课程是软件工程专业高等教育的专业基础课程和学科平台课程,是“科研训练计划”教育课程。
《软件工程导论》以科学技术方法论为逻辑起点,结合部分管理方面的基本理论,讲授软件工程与方法论的联系,从而提高软件的质量和生产率。
本课程以软件工程专业本科二年级学生为讲授对象,是集理论性与应用性为一体的学科。
设置本课程的目的是:使学习者在全面了解软件工程发展历史、基本理论的基础上,系统掌握软件开发过程中的现代方法和管理手段,具备用工程化方法设计和构建规范软件的思想,从而为后续软件工程开发方法的系列课程奠定理论基础。
学习本课程的要求是:学习者应深刻认识软件危机产生的原因,纠正对软件开发的错误认识,掌握软件工程科学方法论的基本概念和基本原理,初步具备作为专业人员组织软件开发和设计工作的能力。
为检验掌握软件开发应遵循的原则和编写文档的基本方法的程度,最后的考核是通过考试进行,同时以加深对课程内容的理解。
二、课程具体内容及基本要求第一章软件工程的范畴 ( 2学时)基本内容包括:第一节历史方面一、定义软件(1)介绍软件的形式化定义。
结合经典教科书中关于软件的定义,介绍软件中所包含的三个要素:①指令的集合;②数据结构;③软件描述信息。
(2)阐述非形式化定义中软件具有的特性。
对比其他人工产品的特性,总结软件所具有的三个特性。
二、软件工程的发展历程和应用领域第二节经济方面结合例子阐述经济学原则在软件生产方面的重要性。
第三节维护性方面介绍软件生命周期模型和步骤,阐述维护工作在生命周期模型中的重要性和具体分类。
第三部分章节题库第1章软件工程学概述一、选择题1.与计算机科学的理论研究不同,软件工程是一门()学科。
A.理论性B.工程性C.原理性D.心理性【答案】B【解析】软件工程要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。
2.软件危机的主要原因有()。
①软件本身的特点②用户使用不当③硬件可靠性差④对软件的错误认识⑤缺乏好的开发方法和手段A.③④B.①②④C.①⑤D.①③【答案】C【解析】软件危机的主要原因是软件本身的特点和缺乏好的开发方法和手段。
用户使用不当,硬件可靠性差,对软件的错误认识属于软件危机的表现。
3.软件工程与计算机科学性质不同,软件工程着重于()。
A.原理探讨B.理论研究C.建造软件系统D.原理的理论【答案】C【解析】计算机科学中的研究成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统。
4.软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是()。
A.软件开发工程化B.消除软件危机C.实现软件可重用D.程序设计自动化【答案】A【解析】软件工程方法学是根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料都做出规定,从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工方式生产中的随意性和非规范性做法。
5.软件生存周期模型有多种,下列选项中,()不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型【答案】C【解析】主要的软件生存周期模型有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
6.软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、()、维护等活动。
A.应用B.测试C.检测D.以上答案都不正确【答案】B【解析】软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常,软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同阶段去完成。
第一章1.什么是软件危机?产生软件危机的原因?消除软件危机的途径?1)软件危机是指在计算机的开发和维护中所遇到的一系列严重问题。
2)原因,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
3)途径:1)将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。
2)、研究和推广成功的软件开发技术和方法。
3)、开发和使用好的软件工具。
1.软件工程是:①把系统的规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
2.软件工程的基本原理1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用现代程序设计技术5)结果应能清楚的审查6)开发小组的人员应该少而精7)承认不断改进软件工程实践的必要性3.软件工程方法学包含三个要素,方法、工具和过程。
4.软件生命周期的八个阶段1)问题定义2)可行性研究3)需求分析4)总体设计5)详细设计6)编码和单元测试7)综合测试8)软件维护5.什么是软件过程?几种模型的优缺点及适用项目?软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的步骤。
软件开发模型有瀑布型、渐增型和变换型。
瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。
它的特点:(1)各个阶段的顺序性和依赖性;(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;(3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。
渐增型开发方法及特点:(1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。
如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。
(2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。
(3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。
《软件工程导论》课程教学大纲一、课程基本信息课程编号:英文名称名:Software Engineering总学时:54学时学分:3课程类别:专业必修课适用专业:全校本(专)计算机科学与技术先修课程:数据结构,大学数学,离散数学,计算机算法设计。
二、课程性质与目的、要求《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。
软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。
《软件工程》已成为高等学校计算机软件教学体系中的一门核心课程,本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML 语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践”软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。
通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。
本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。
本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。
三、教学内容及学时分配本课程的教学内容共分十三章。
第1章软件工程学概述(2课时)学习目的与要求:通过本章的学习,了解和掌握软件工程的基本概念(如软件和软件工程的定义、等),软件危机的表现形式、产生的原因及消除的途径,软件工程的基本原理、方法学,软件的生存期,几种主要的软件开发模型等。
软件(ruǎn jiàn)危机:是指在计算机软件的开发和维护过程中所遇到的一些(yīxi ē)列严重问题。
典型(diǎnxíng)表现:1)对软件的成本(chéngběn)和进度估计不准确2)用户(yònghù)对“已完成的”软件系统不满意经常出现3)软件产品质量靠不住4)软件不可维护5)没有适当的文档资料6)软件成本所占比例逐年上升7)软件产品供不应求产生的原因:一方面与软件本身的特点有关,另一封面也和软件开发与维护的方法不正确有关。
解决方法:为了解决软件危机,既有技术措施(方法和工具),有有必要的组织管理措施。
软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
利用软件工程来解决软件危机。
第二题:软件工程:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件生命周期:软件定义、软件开发和运行维护 3个阶段构成。
每个阶段的任务:1)软件定义时期的任务:问题定义、可行性研究和需求分析。
2)开发时期的任务:总体设计、详细设计、编码和单元测试、综合测试。
3)维护时期的任务:主要任务是使软件持久的满足用户的需要。
具体地说是使用过程中发现错误能得以改正;环境变化时修改以适应新环境;有新需求时及时改进满足用户需求。
第三(dì sān)题需求分析(fēnxī)的目的:为了开发出真正满足用户需求的软件产品,需要(xūyào)对用户做需求分析,能够深入理解需求。
注意事项:1、访谈前需要准备好具体问题,例如询问(xúnwèn)公司的商品种类。
2、正式(zhèngshì)访谈时需要提出具体的问题3、非正式时准备开放性的问题,以鼓励被访问人员说错自己的想法。
软件工程考试整顿第一章1、CASE(Computer Aided Software Environment)2、软件危机旳概念P1-2:指在软件开发和维护过程中所碰到旳一系列严重问题。
(怎样开发软件,以满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件)3、产生软件危机旳原因P3:首先与软件自身有旳特点有关,另首先也和软件开发与维护旳措施不对旳有关。
4、消除软件危机旳途径P5:既要有技术措施(措施和工具),又要有必要旳组织管理措施5、软件工程支撑环境P5:假如把各个阶段使用旳软件工具有机地集合成一种集体,支持软件开发旳全过程。
6、软件工程旳定义P5:是指导计算机软件开发和维护旳一门工程学科。
详细旳定义:①把系统旳、规范旳、可度量旳途径应用于软件开发、运行和维护过程,也就是把工程应用与软件;②研究①中提到旳途径。
7、软件工程措施学P9-10:包括三个要素:措施、工具和过程。
最广泛旳措施学包括老式措施学和面向对象措施学。
老式措施学:也称为生命周期措施学或构造化范型。
重要是把软件生命周期旳全过程一次划分为若干个阶段,然后次序地完毕每个阶段旳任务。
面向对象措施学:4个要点(对象、类、继承、封装性)8、软件生命周期3个时期P13:软件定义、软件开发、软件维护软件定义阶段:确定开发过程旳总任务;工程旳可行性;实现工程目旳应采用旳方略;系统必须完毕旳功能;估计资源和成本。
软件开发阶段:总体设计,详细设计(前两个阶段又称系统设计),编码和单元测试,综合测试(后两个阶段又称系统实现)。
9、三个模型旳优缺陷:瀑布模型(带反馈环)P15长处:①可强迫开发人员采用规范旳措施;②严格规定了每个阶段必须提交旳文档;③规定每个阶段交出旳所有产品都必须通过质量保证小组旳仔细验证。
缺陷:由于是一种文档驱动旳模型,最终开发出旳软件产品也许并不是顾客真正需要旳。
迅速原型模型(不带反馈环)P17可以通过迅速构建起一种在计算机上运行旳原型系统,让顾客试用原型并搜集顾客反馈意见旳措施,获取顾客旳真实需求。