软件工程--理论与实践
- 格式:doc
- 大小:1.06 MB
- 文档页数:236
软件工程实习报告(共6篇)软件工程实习报告(共6篇)第1篇:软件工程实_报告年软件工程实_报告实_是一种实践,是理论联系实际,应用和巩固所学专业知识的一项重要环节,是培养我们能力和技能的一个重要手段。
下面整理了软件工程实_报告,欢迎大家参考!八月初,我们来到大连东软实训中心进行为期20天的实_,我们要做的是物流配送管理系统,我要做的是配送中心管理模块。
它的主要功能是完成对商品、库房和供应商的管理,缺货查询和进货安排。
由于大家负责不同的模块编写,作为组长的我需要充分考虑各个模块之间的交互,系统风格一致性等问题。
为此,项目启动之前我们小组6人开会讨论了整体的业务流程,明确了数据库表之间的关联和各个模块之间的接口。
在项目验收阶段我们顺利地通过了答辩,圆满完成了预期目标,虽然和优秀的小组开发的系统还有一些差距,但是我们发挥了每个人的能力,结果也令我们满意。
在为期20天大连东软实训中心的实_过程中,我每天都感觉很充实,从基础知识的巩固,项目整个的开发过程,我都认真学_,勤于思考,并且不断动手实践,我感到收获很大。
这是我们在学_专业课程之后走向工作岗位之前的不可缺少的实践环节。
它对于培养我们的动手能力有很大的意义。
这次实_旨在培养学生综合运用所学的软件工程专业基础理论、基本技能和专业知识分析问题和解决问题的能力,培养我们的专业素质、应用科学的思维方法和计算技巧,使我们了解科学研究工作的一般程序和方法,撰写科技论文的能力;培养我们直接参与科研活动、科研文献和资料的调研,对研究工作以及相关的研究结果分析、综合的能力;重点培养我们积极的创新精神、严肃认真的科学态度和严谨求实的工作作风,增强我们的综合素质以及对毕业后工作岗位的适应能力;有利于扩大我们的知识面,并掌握一些软件工程技术的发展前沿。
这次实_让我们走出校园,切身体会公司的企业文化,感受到了和学校里面不一样的学_方式和氛围,也可以从中学到很多社会经验,了解了很多行业需求和动态,使我们视野更加开阔。
“软件工程”课程教学实施方案摘要:“软件工程”是一门理论与实践并重的计算机软件专业基础课程。
在教育部高等学校计算机科学与技术教学指导委员会统一组织下,作者针对软件工程课程的培养目标和教学实施中的关键问题,提出了该课程的教学实施方案。
本文介绍了该实施方案的总体框架,结合不同类型的计算机人才培养阐述了课程实施的侧重点,并从课程实验和综合训练两个方面构建了实践教学方案。
关键词:软件工程;计算机科学与技术;核心课程;课程教学;教学实施“软件工程”是计算机科学与技术专业和软件工程专业的一门专业基础核心课程,讲授软件工程的基本概念、基本原理和基本方法,强调软件开发问题的分析和解决。
使学生从工程学角度认识软件在大型系统中的设计和应用,掌握软件工程的基本理论和方法,并将这些知识运用到软件开发的分析、设计、编码和测试等活动中,同时培养较好的团队合作能力和实践能力,具备一定的分析与解决问题能力和创新能力。
“软件工程”是一门理论与实践并重的基础课程,在教学实施方面存在较大的难度。
现有的软件工程课程存在着体系不统一、定位不明确、知识与现实脱离等问题,课程内容比较庞杂和抽象,教学实践环节薄弱。
对于缺乏软件开发实际经验的本科生来说,单纯地讲授抽象的理论知识往往使学生感到枯燥无味且难以理解。
特别是随着软件工程日新月异的发展,传统的教学内容已经远远地落后于当前的理论和技术,无法满足现代软件工程人才的培养要求。
本课程的教学目标是使学生了解和掌握现代软件工程的方法、技术和思想,具备作为软件工程师所需的专业能力。
因此,如何使教学内容先进、讲授生动实际、实践效果良好,一直是软件工程课程教学需要解决的难点问题。
近年来,国内高校教师积极开展软件工程课程的教学改革,在教学内容、教学模式、实践体系等方面进行了深入探索和创新尝试,取得了一些有意义的成效,在不同层次上建设了一批软件工程精品课程。
为了更好地总结软件工程教学改革的成功经验,在教育部高等学校计算机科学与技术教学指导委员会的统一组织下,由清华大学刘强、浙江大学陈越、南京大学骆斌、桂林电子科技大学古天龙、北方工业大学吴洁明、华中科技大学裴小兵、中国科学技术大学朱少民、清华大学白晓颖等老师组成课题组,结合课题组成员在软件工程教学第一线所获得的经验,共同研究形成了软件工程课程教学实施方案,目前该方案已由高等教育出版社出版。
习题一答案一、选择题1. 软件的主要特性是(A B C)。
A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。
A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。
A) 螺旋模型B) 瀑布模型C) 增量模型 D) 喷泉模型4. 软件工程的主要目标是(C)。
A) 软件需求B) 软件设计C) 风险分析 D) 软件实现5. 下列属于面向对象开发方法的是(A B CD)。
A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。
A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A BC)A) 螺旋模型B) 循环模型C) 瀑布模型 D) 专家模型8. 软件工程的目标有(A B C)。
A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。
A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。
(×)4. 结构化方法和OO方法都是一种面向过程的软件开发方法。
(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。
(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件工具的作用是为了延长软件产品的寿命。
(×)9. 软件工程过程应该以软件设计为中心,关键是编写程序。
实验二系统总体设计
一、实验目的
1、掌握将数据流图映射成软件体系结构的原理
2、掌握变换流分析
3、掌握事务流分析
二、实验仪器
安装visio 2013软件的计算机一台,或使用在线processOn平台。
三、实验内容
1、将下列数据流图转换成SC软件结构图。
2、按照下列环境描述,完成系统结构化分析和设计部分工作。
要求:根据要求画出该系统的数据流图,并将其转换为软件结构图。
高考录取统分子系统有如下功能:
(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件。
(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
3、将下列数据流图转换成SC软件结构图。
(事务流)
4、将下列数据流图转换成SC软件结构图。
(事务流)
四、实验步骤
1、
2、
数据流图:
结构图:
3、步骤:
五、实验报告要求
1.整理实验结果。
2.小结实验心得体会。
《软件工程——理论与实践》(第2 版)习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。
A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。
A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。
A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。
A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。
A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。
A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。
A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。
A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。
(×)4. 结构化方法和OO 方法都是一种面向过程的软件开发方法。
(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。
(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件工具的作用是为了延长软件产品的寿命。
第1篇一、课程简介《软件工程》是一门研究软件开发原理、方法和工具的学科,旨在培养学生具备软件开发的基本理论、实践技能和工程素养。
本课程通过实践教学,使学生能够掌握软件工程的基本方法,提高软件开发能力,为后续课程学习和实际工作打下坚实基础。
二、教学目标1. 理解软件工程的基本概念、原理和方法。
2. 掌握软件开发过程中的需求分析、设计、编码、测试和维护等基本技能。
3. 具备使用常用软件开发工具进行实际项目开发的能力。
4. 培养良好的团队协作和沟通能力,提高工程素养。
三、教学内容1. 软件工程概述- 软件工程的定义和发展历程- 软件生命周期和开发模型- 软件工程的目标和原则2. 需求分析- 需求获取和分析方法- 需求规格说明和文档编写- 需求管理3. 软件设计- 设计原则和模式- 数据库设计- 系统架构设计4. 软件开发- 编码规范和最佳实践- 集成开发环境(IDE)的使用- 版本控制工具的使用5. 软件测试- 测试方法和技术- 测试用例设计- 软件测试管理6. 软件维护- 维护过程和方法- 软件配置管理- 软件质量保证7. 软件项目管理- 项目管理的基本概念和原理- 项目计划、执行和监控- 团队协作和沟通四、实践教学安排1. 实践教学课时:共40学时,其中理论课24学时,实践课16学时。
2. 实践教学环节:(1)课堂演示:讲解软件工程的基本概念、原理和方法,演示常用软件开发工具的使用。
(2)案例分析与讨论:分析实际软件项目案例,讨论软件工程在实际开发中的应用。
(3)上机实验:完成以下实验项目:1. 需求分析实验:完成一个简单软件的需求分析,编写需求规格说明书。
2. 设计实验:完成一个简单软件的设计,包括数据库设计、系统架构设计等。
3. 编码实验:使用一种编程语言实现一个简单软件的功能。
4. 测试实验:编写测试用例,对软件进行功能测试和性能测试。
5. 维护实验:对已完成的软件进行维护,修复已知问题和优化性能。
软件工程理论与实践课后习题1、下列要素中,不属于DFD的是()。
[单选题] *A、加工B、数据流C、数据存储D、联系(正确答案)2、当使用DFD对一个工资系统进行建模时,()可以被认定为外部实体。
[单选题] *A、接收工资单的银行(正确答案)B、工资系统源代码程序C、工资单D、工资数据库的维护3、采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。
以下关于产生这些文档的描述中,正确的是() [单选题] *A、外部设计评审报告在概要设计阶段产生B、集成测试计划在程序设计阶段产生C、系统计划和需求说明在详细设计阶段产生D、在进行编码的同时,独立的设计单位测试计划(正确答案)4、在UML提供的图中,()用于描述系统与外部系统及用户之间的交互。
[单选题] *A、用例图(正确答案)B、类图C、对象图D、部署图5、在UML提供的图中,()用于按时间顺序描述对象间的交互。
[单选题] *A、网络图B、状态图C、协助图D、序列图(正确答案)6、在开发一个系统时,如果用户对系统的目标不是很清楚,难以定义需求,这时最好使用()。
[单选题] *A、原型法(正确答案)B、瀑布模型C、V-模型D、螺旋模型7、应该在()阶段制定系统测试计划。
[单选题] *A、需求分析(正确答案)B、概要设计C、详细设计D、系统测试8、在软件项目管理中可以使用各种图形工具来辅助决策,下面对Gantt图的描述不正确的是()。
[单选题] *A、Gantt图表现各个活动的顺序和它们之间的因果关系(正确答案)B、Gantt图表现哪些活动可以并行进行C、Gantt图表现了各个活动的起始时间D、Gantt图表现了各个活动完成的进度9、以下内容中,()应写入操作手册。
[单选题] *A、描述系统对各种输入数据的处理方法B、说明系统升级时厂商提供的服务C、描述系统处理过程的各个界面(正确答案)D、说明系统各部分之间的接口关系10、耦合度描述了()。
软件工程—理论与实践第三版学习心得在学习《软件工程—理论与实践》第三版这本书的过程中,我对软件工程的理论和实践有了更深入的了解和认识。
本书不仅介绍了软件工程的基本概念和原理,还深入探讨了软件开发过程中的各个环节和技术。
首先,本书对软件工程的基本概念进行了清晰的阐述,包括软件生命周期、需求工程、软件设计、软件测试等。
通过学习这些基本概念,我对软件开发的整体流程有了更清晰的认识,能够更好地理解软件开发过程中各环节的重要性和相互关系。
其次,本书还介绍了一些软件工程的常用方法和技术,如面向对象设计、敏捷开发、软件度量等。
这些方法和技术在实践中得到了广泛应用,并且在本书中都有详细的讲解和案例分析。
通过学习这些方法和技术,我不仅能够更好地应对实际软件开发中的各种问题,还能够提高开发效率和软件质量。
此外,本书还强调了软件工程的团队合作和项目管理方面的重要性。
团队合作是软件开发过程中不可或缺的一部分,而项目管理则能够有效地组织和协调开发活动。
通过学习本书中的相关内容,我对软件开发团队的组织和管理有了更系统和全面的认识。
总的来说,学习《软件工程—理论与实践》第三版让我对软件工程有了更深入的理解和认识。
通过学习书中的理论知识和实践案例,我能够更好地应对实际软件开发中的各种问题,提高开发效率和软件质量。
同时,我也认识到软件工程是一个综合性的学科,需要不断学
习和实践才能不断提高自己的水平。
软件工程实习报告5篇软件工程实习报告篇1光阴荏苒,时光飞逝,转眼间到了实习结束的日子。
从进公司实习到现在,我已经到公司近6个月了,感受颇多,收获颇多。
期间,通过公司领导的关心和帮助,同事的指导,使我能够很快地了解公司的管理与运作程序,我了解了公司的发展概况,熟悉了公司的流程和行业的基础知识,使我逐步学会如何从一个刚出校门不久的实习生转变成一个职员。
以下是我这一阶段的工作总结。
学习无止境,职业生涯只是学生生涯的一种延续。
对于一个实习的学生,初踏入职场,进入专业的软件公司,对开发软件没有一点经验。
不论在人生的哪个阶段,学习的脚步都不能停歇,要把工作视为学习的殿堂。
所以在这几个月当中,我一边学习,一边从最基础的事情做起,这样的好处在于能够在工作的过程中,了解项目的整体布局,了解项目中的业务逻辑,了解项目中尚未完成的工作并以此作为下个阶段的工作目标。
在这几个月的工作中,我的主要任务是对客户使用的'map系统进行测试,并且做相应的文档记录和一些简单的配置修改。
几个月里,我工作勤勤恳恳,并按时完成安排的任务。
尽最大的努力解决客户在工作中遇到的问题,从中我也学到了在学校里学不到的东西,也明白了很多道理,我相信对我以后的工作都将大有裨益。
其它方面,我全力协助公司的工作,在公司人手较忙的时候,为公司分担事务,圆满地完成公司委派的任务。
在这几个月的工作中,最初我会遇到一些我解决不了的问题,我会咨询公司另两位同事王鹏、孙距均。
在他俩的指导和帮助下,我的技术技能不断提升,对整个MAP系统和配置工具的使用逐步熟练,思维方式和工作方法也不断提升,直至到目前我基本能解决客户在使用MAP系统过程中遇到一般问题的问题。
在近6个月的工作过程中,我在领导和同事们的帮助和支持下取得了一定的进步,但我深知自己还存在很多缺点和不足,与工作需要还有一定的差距。
在工作中未能考虑的各种因素还有很多,比如:对整个MAP系统的掌握还不够熟练、工作的灵活性还不够、服务意识还有待提升等等,这都有待于在今后的工作中改进。
软件工程实训心得体会(通用3篇)【xxxx--心得体会范文】体验是一种在感受之后的书写。
它的主要功能是记录一个人的想法和感受。
它是一种经过阅读和学习实践的情感写作。
以下是为大家整理的关于软件工程实训心得体会的文章3篇,欢迎品鉴!第1篇: 软件工程实训心得体会我是今年进入xx公司参加软件开发实习的,在此次实习中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。
当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心就由然而生,这应该就是工作的乐趣。
有时候不懂的就需要问别人了,虚心请教,从别人的身上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功。
还有学会了在工作中与人的合作与交流,同乐同累,合作互助,这是团体的精神,也是必须学习的东西。
经过之前的在校学习,对程序设计有了一定的认识与理解。
在校期间,一直都是学习理论知识,没有机会去参与项目的开发。
所以说实话,在实习之前,软件项目开发对我来说是比较抽象的,一个完整的项目要怎么分工以及完成该项目所要的步骤也不是很明确。
而经过这次实习,让我明白了一个完整项目的开发,必须由团队来分工合作,并在每个阶段中进行必要的总结与论证。
一个完整项目的开发它所要经历的阶段包括:远景范围规划和用例说明、项目结构和风险评估、业务功能说明书、详细设计说明书、代码实现、测试和安装包等等。
一个项目的开发所需要的财力、人力都是很多的,如果没有一个好的远景规划,对以后的开发进度会有很大的影响,甚至会出现在预定时间内不能完成项目或者完成的项目跟原来预想的不一样。
一份好的项目结构、业务功能和详细设计说明书对一个项目的开发有明确的指引作用,它可以使开发人员对这个项目所要实现的功能在总体上有比较明确的认识,还能减少在开发过程中出现不必要的麻烦。
代码的实现是一个项目开发成功与否的关键,也就是说,前期作业都是为代码的实现所做的准备。
【导语】实习报告是指各种⼈员实习期间需要撰写的对实习期间的⼯作学习经历进⾏描述的⽂本。
以下是整理的软件⼯程实习报告,欢迎阅读!【篇⼀】软件⼯程实习报告 转眼已经在CSDN这样的⼤家庭中⽣活5个⽉时间了,之前的兴奋、喜悦如今已经让我熟悉,在这⾥的每⼀天都会让我有成为⼀名真正“财富”拥有者的冲动。
也许对别⼈来说,⼀定不能体会为什么在这不到5个⽉的时间会让⼀个⼈有翻天覆地的变化,但是变化就是这样⼀点⼀点产⽣的。
在CSDN的⽣活中,我深深体会到了⾃⼰在专业知识⽅⾯的⽋缺和不⾜,也意识到了⾃⼰做为计算机软件⼯程专业的学⽣,要想在以后的职业中崭露头⾓,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的⼼理素质,使⾃⼰在以后的途中⽆论经历什么样的困难,都⽴于不败之地。
这正是本次实训的根本⽬的。
通过⽼师的课堂讲解与企业化标准的培训,使我加深了对⾃⼰专业的认识。
从⽽确定⾃⼰以后的努⼒⽅向。
要想在短暂的实训时间内,尽可能多的学到东西,就需要我们跟⽼师或同学进⾏很好的沟通,加深彼此的了解。
只有我们跟⽼师多沟通,让⽼师更了解我们,才能跟真切的对我们进⾏培训⼯作。
由此,班级的⽂化“共享”就在⽣活中慢慢形成了。
“纸上得来终觉浅,绝知此事要躬⾏!”在这短短的时间⾥,让我深深的感觉到⾃⼰在实际应⽤中所学专业知识的匮乏。
让我真真领悟到“学⽆⽌境”这句话的涵义。
⽽⽼师在专业认识周中所讲的,都是课本上没有⽽对我们⼜⾮常实⽤的东西,这⼜给我们的实训增加了浓墨淡采的光辉。
我懂得了实际⽣活中,专业知识是怎样应⽤与实践的。
在这些过程中,我不仅知道了职业⽣涯所需具备的专业知识,⽽且让我深深体会到⼀个团队中各成员合作的重要性,要善于团队合作,善于利⽤别⼈的智慧,这才是⼤智慧。
靠单⼀的⼒量是很难完成⼀个⼤项⽬的,在进⾏团队合作的时候,还要耐⼼听取每个成员的意见,使我们的组合达到更加完美。
⼈⾮⽣⽽知之,虽然我现在的知识结构还很差,但是我知道要学的知识,⼀靠努⼒学习,⼆靠潜⼼实践。
软件工程理论与实践随着软件行业的快速发展,软件工程的理论和实践也在不断改进和完善。
软件工程理论与实践是一个不断迭代和演进的过程,它涉及到软件的开发、测试、部署和维护等多个方面,需要软件工程师们不断地学习和探索。
一、软件工程的概念软件工程是一门涉及到软件设计与开发的学科,它主要关注如何有效地管理和控制软件开发的过程。
软件工程师需要在项目中使用各种工具和技术,使得软件开发过程变得更加高效和可靠。
软件工程不仅仅只关注于几个设计和编程的技术,它还包含了很多其他方面的内容,例如软件测试、质量保证、项目管理等。
二、软件工程的原则软件工程是一门非常有挑战性的学科,而软件工程的原则则是软件开发过程的基石。
软件工程的原则可以帮助软件开发者们更好地掌握软件开发的核心,以下是一些主要的原则:1. 需求分析和设计是软件开发过程的关键步骤。
2. 代码应该优雅、易于理解和容易维护。
3. 版本控制和测试是软件开发的必不可少的组成部分。
4. 开发者应该遵循最佳的软件开发实践,包括单元测试、持续集成、代码审查等。
5. 注重团队合作和沟通,确保所有成员都明确任务目标。
三、软件开发方法论软件开发方法论是一种在软件开发过程中遵循的结构化和系统化的方法。
根据不同的开发需求和项目特点,软件开发者可以选择不同的方法论。
以下是一些常见的软件开发方法论:1. 瀑布模型瀑布模型是最早的软件开发方法论,它包含需求分析、设计、编码、测试和部署等五个连续的阶段。
瀑布模型的主要亮点在于它的结构化和可预测性。
2. 敏捷开发敏捷开发是一种灵活和快速的软件开发方法论,它强调按需求分阶段开发、可持续性的进化、团队沟通和客户反馈等特点。
敏捷开发适合于需求不断变化和项目规模不大的软件项目。
3. 迭代和增量式开发迭代和增量式开发是一种渐进的软件开发方法,它将整个开发过程分成多个小步骤,并且每个阶段都有一个明确的目标。
迭代和增量式开发适合于大规模复杂项目并且需求具有不确定性的软件项目。
前言
理论研究与实践的桥梁
自从年会议首次提出“软件工程”概念以来,它经历了一条漫长的道路。
在几十年前,“软件”这个概念本身还不能被多数人接受。
因而软件工程理论研究和实践必须建立一个坚固的统一标准使得人们懂得在我们现今生活中如何建立良好软件和怎样评价软件的风险、概率。
本文融合了当前两种软件工程的潮流:从实践者角度,实践者的焦点在于建立高质量的软件产品,提供实用的功能;从研究者角度,侧重于寻找提高质量途径,提高实践者的生产效率。
本书用于研究生软件工程教材,描绘了实用的软件工程理论和实践概况,由于学生的经历有限,本书中所举的例子可能是超出我们的经验,但这些例子足以清楚地阐述大型软件项目从设计到实现的整个开发过程。
此书还可作为本科生软件工程概念和实践的入门教材,或用于软件开发人员扩充该领域知识。
本书中涵盖的各种样例:大型项目,小型项目,面向对象和面向过程,实时处理,事务处理,开发案例,维护,适合各种读者群。
章、章和章提供的材料用于激励学生启发思想,培养研究兴趣。
核心特征
与其他书相比本书具有如下特征:
●本书将许多评价标准综合运用于软件工程,测量标准是软件工程策略的完整部分,不能孤立看待。
这种综合看待软件工程
测量标准的办法可以使学生学会如何将定量分析,定量改进运用到日常活动中。
可以评价在个人方面、团体以及项目基础上的进步。
●本书将许多概念,如:重用、风险管理、质量工程融于软件工程中,而非分裂处理。
●每章用两个实例说明该章中的主要概念,两个例子均来源于实际的项目。
信息系统实例描述了一个软
件系统怎样确定一家英国大型电视公司广告时间价格,实时系统实例给出火箭控制软件;在这些实例的问题报告中,我们还可以探索软件工程中的技术怎样定位问题所在及如何解决、避免这些问题。
学生可以从这些实例中学到如何把软件工程技术运用到实际的系统中。
●每章末尾,给出该章主要内容对于小组开发的意义、个人开发意义、研究意义。
学生可以选择阅读,查找相关部分。
●本书给出相关的网址,文献,网上相关的工具,方法和学习指南。
从网上学生可获得许多实际的需求文档、设计、代码、
测试计划等相关信息。
一些声誉较好的网站上还有进一步深入的信息。
●本书包含许多实例和文献中的样例。
其中的简略例子详细内容可在相关网页上查询。
从中可了解理论概念是怎样运用于实
践的
●每章末尾给出启发式问题,这些问题涉及到软件工程的合法与伦理等方面。
学生可以从社会、政治环境出发考虑这些问题。
和其他科学一样,必须从他给人们生活带来的后果角度看待软件工程决策。
●面向过程和面向对象两种思想方法在每章中都有体现。
此外将有一章专门阐述面向对象的发展过程,面向对象的开发过程。
此处使用描述通用概念。
面向对象开发的每一步均有实例说明。
●本书给出注解文献的出处,网址,讨论小组以及专业领域如:软件可靠性、容错、计算机安全等的相关联接。
●本书给出解决方案手册,可以在得到,格式。
●每章介绍一个项目,比如抵押处理软件系统开发,老师可以针对这些项目介绍,项目变体作为课堂作业。
●每章后给出概念索引。
内容与组织
本书分为三部分:第一部分(第一章至第三章)启发读者阐述软件工程知识对于实践者和研究人员的重要性,讨论了问题
理解,项目计划意义;第二部分(第四章至第十一章)详细阐述开发维护主要步骤,可以不考虑创建软件的处理模型:需求检查、需求获得、设计问题解决方案,代码编写和测试、提交用户;第三部分(第十二章到第十四章)集中讨论评价与改进。
这里将阐述我们如何看待软件产品的质量和怎样提高质量。
第一章:为何需要软件工程
在本章中,我们首先说明每种关键问题均出现在后面的那些章节中。
然后参考’的核心因素给出软件工程的定义:抽象、分析、方法设计、专用符号、模块和体系结构,软件生命周期、出版,重用、测量,工具,环境集成,用户界面。
接着讨论计算机科学和软件工程之间的差别,解释一些可能遇到的问题,给本书其它部分打下地基。
最后阐明了实用系统方法建立软件的必要性,给出的两个实例是各章中都将用到的,同时给出这些实例的工程背景。
第二章:过程模块与生命周期
给出各种不同类型的处理和生命周期模块概要,包括:瀑布模式,模式,螺旋模式以及其他原型。
我们还将讨论几种建模技术,工具,包括系统动力,和常用方法。
对于两个实例我们都给出模块分析。
第三章:项目计划与管理
本章主要讲解项目计划和进度安排。
引入几个概念,比如:工作量,里程碑,进度安排表,任务图,风险管理,成本估算。
同样我们将用估算模型评价两个实例的成本代价。
集中于飞行器软件开发系统和’项目的软件开发与管理的成本估算。
第四章:需求分析
本章讲解需求分析和需求说明书,阐明功能需求与非功能需求的差别,分别用几种不同的方式说明他们之间的差别,讨论如何建立需求原型。
并且使用各种正式的方法说明和评价需求。
此外还包括需求文档书写,需求文档回顾,需求质量及评价,需求可测性。
第五章:系统设计
本章主要考虑系统结构问题。
首先讨论和的软件体系结构框架。
接着描述概念设计和技术设计的区别。
讨论负责设计的人员的角色,两种基本设计方法:组合法与分解法。
然后给出良好设计特征,介绍几个设计策略,给出若干系统设计技术的实例,工具。
在本章中读者还将学到客户服务器体系结构,可重用设计组件,人机接口设计,安全与可靠性设计(包括出错处理和容错技术),设计模式,正式的设计方法,设计协议评价。
在解释了如何评价设计质量和正确性证明,怎样书写结果文档,我们转向代码设计阶段。
代码设计分别用模块化设计和独立设计用两种方法:自顶向下,自底向上解释,并给出逻辑设计和物理设计的区别。
针对并发与安全性要求较高的系统,我们检查其设计上的因差错而导致的的功能故障。
举出若干设计工具,彻底讨论设计质量以及怎样衡量。
最后结合信息系统和时实系统两个实例给出软件设计的实例。
第六章:关于对象
第六章从间接的角度考虑面向对象开发的特殊性质。
我们先给出使用案例的背景,讨论如何从需求中获得对象、对象特征。
其次要检查系统设计。
接着扩充系统设计,加入非功能性需求,编程设计的代码细节。
使用和构造图,我们可以产生面向对象的系统说明和系统设计,这里所用的实例是空军服务站系统。
对于面向对象开发的评价,我们使用普通的面向对象规则评价服务站系统。
可以从中学到如何在规则中加入适当的改变有助于我们决定如何分配资源,寻找错误。