软件工程教案
《软件工程》教案本科

《软件工程》教案本科一、课程简介1. 课程名称:软件工程2. 课程性质:专业核心课3. 学时安排:64学时4. 学分:4分5. 先修课程:计算机科学导论、数据结构、操作系统、计算机网络二、教学目标1. 使学生了解软件工程的基本概念、原理和方法。
2. 培养学生运用软件工程的方法和工具进行软件开发的能力。
3. 提高学生分析问题和解决问题的能力,为从事软件研发工作奠定基础。
三、教学内容1. 软件工程概述软件工程的基本概念软件开发过程与管理软件工程方法学2. 软件需求分析需求分析的基本概念需求分析的方法和技术需求规格说明书编写3. 软件设计软件设计原则与风格结构化设计方法面向对象设计方法4. 软件实现与测试编程规范与编程习惯软件测试方法与技术测试用例设计与执行5. 软件项目管理项目管理基本概念项目计划与控制团队协作与沟通四、教学方法与手段1. 讲授法:讲解基本概念、原理和方法。
2. 案例分析法:分析实际软件开发案例,引导学生运用所学知识。
3. 实验与实践:上机实验,培养学生的实际操作能力。
4. 小组讨论与报告:分组进行课题研究,提高学生的团队协作能力。
五、教学评价1. 平时成绩:包括课堂表现、作业、实验报告等,占总评的40%。
2. 期末考试:闭卷考试,占总评的60%。
六、教学资源1. 教材:《软件工程》(第三版),作者:张永生、李林2. 辅助教材:《软件工程案例教程》3. 网络资源:相关论文、案例、软件工程标准等4. 实验环境:计算机、编程语言开发工具(如Eclipse、Visual Studio等)5. 教学工具:投影仪、黑板、教学PPT等七、教学安排1. 第1-4周:软件工程概述、软件开发过程与管理2. 第5-8周:软件需求分析3. 第9-12周:软件设计4. 第13-16周:软件实现与测试5. 第17-20周:软件项目管理八、教学案例1. 案例一:某购物网站需求分析与设计2. 案例二:某即时通讯软件测试与项目管理3. 案例三:某社交平台软件架构设计与实现九、作业与练习1. 课后作业:根据课堂内容,完成相关习题2. 实践练习:结合案例,进行实际操作和练习3. 小组项目:分组完成一个小型软件开发项目,涵盖需求分析、设计、实现、测试等阶段2. 收集学生反馈,了解教学中存在的问题,为后续教学改进提供依据3. 针对学生的学习情况,给予个性化的建议和指导,帮助学生提高软件工程实践能力重点和难点解析一、软件需求分析重点:需求分析的方法和技术,需求规格说明书的编写。
《软件工程》教学教案

《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。
2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。
3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。
4. 教学资源教材、课件、案例分析。
5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。
二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。
2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。
三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。
2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。
四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。
2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。
3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。
4. 教学资源教材、课件、编程环境和测试工具。
5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。
五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。
2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。
大学软件工程课教案

一、教学目标1. 让学生了解软件工程的基本概念、发展历程和重要性。
2. 掌握软件工程的基本原理、方法和工具。
3. 培养学生分析问题、设计解决方案、编程实现和测试软件的能力。
4. 增强学生的团队合作意识,提高沟通与协作能力。
二、教学内容1. 软件工程概述2. 软件生命周期与开发模型3. 需求分析4. 系统设计5. 编码与实现6. 测试与维护7. 软件项目管理8. 软件质量保证与评估9. 软件工程工具与环境三、教学方法1. 讲授法:讲解软件工程的基本概念、原理和方法。
2. 案例分析法:通过实际案例,让学生了解软件工程在实际项目中的应用。
3. 实践操作法:让学生通过编程实现、测试与维护等实践活动,提高动手能力。
4. 讨论法:组织学生进行小组讨论,培养学生的团队协作能力和沟通能力。
四、教学过程第一周:软件工程概述1. 介绍软件工程的基本概念、发展历程和重要性。
2. 讲解软件工程的基本原理、方法和工具。
第二周:软件生命周期与开发模型1. 讲解软件生命周期、瀑布模型、敏捷开发等开发模型。
2. 分析不同开发模型的特点和适用场景。
第三周:需求分析1. 讲解需求分析的基本方法和工具。
2. 通过案例分析,让学生了解需求分析的过程。
第四周:系统设计1. 讲解系统设计的基本原理和方法。
2. 让学生通过实践操作,进行系统设计。
第五周:编码与实现1. 讲解编程语言、编程规范和编码风格。
2. 通过实践操作,让学生进行编码与实现。
第六周:测试与维护1. 讲解软件测试的基本原理和方法。
2. 让学生通过实践操作,进行软件测试。
第七周:软件项目管理1. 讲解软件项目管理的流程和方法。
2. 让学生通过实践操作,进行软件项目管理。
第八周:软件质量保证与评估1. 讲解软件质量保证的基本原理和方法。
2. 让学生通过实践操作,进行软件质量保证与评估。
第九周:软件工程工具与环境1. 介绍常用的软件工程工具和环境。
2. 让学生通过实践操作,使用软件工程工具。
软件工程教案范文

软件工程教案范文一、教学目标1.了解软件工程的概念、起源及发展历程;2.掌握软件工程的基本原理和方法;3.能够理解和分析软件开发的过程和关键问题;4.能够应用软件工程的知识和方法进行软件开发。
二、教学内容1.软件工程的概念、起源及发展历程;2.软件工程的基本原理和方法;3.软件开发的过程和关键问题;4.软件工程的应用案例分析。
三、教学方法1.讲授相结合的教学方法,通过理论讲解和案例分析相结合,加强学生对软件工程知识的理解和应用能力;2.培养学生的团队合作精神和实践能力,通过小组讨论和实践项目,完成一次小型软件开发。
四、教学步骤1.软件工程的概念、起源及发展历程-讲述软件工程的定义和起源;-分析软件工程的发展历程,介绍软件生命周期模型的演化;-介绍软件工程的重要性和应用领域。
2.软件工程的基本原理和方法-介绍软件需求工程的基本原理和方法;-讲解软件设计和构建的基本原则和方法;-介绍软件测试和维护的基本原理和方法。
3.软件开发的过程和关键问题-分析软件开发的过程,包括需求分析、设计、编码、测试和维护;-探讨软件开发过程中的关键问题,如需求变更管理、项目管理等。
4.软件工程的应用案例分析-讨论这些案例中的软件工程方法和技术的应用。
五、教学评价1.课堂问答。
通过提问,检查学生对软件工程概念、原理和方法的理解程度。
2.实践项目评价。
评估学生在实践项目中的团队合作能力和实际应用能力。
3.作业评价。
布置相关作业,评估学生对软件工程知识和方法的掌握程度。
六、教学资源1.教材:《软件工程导论》等;2.课件:按照教学内容制作相应的课件;3.实践项目:安排学生进行一次小型软件开发实践项目。
七、教学进度安排第一周:软件工程的概念、起源及发展历程(2课时)第二周:软件工程的基本原理和方法(3课时)第三周:软件开发的过程和关键问题(3课时)第四周:软件工程的应用案例分析(2课时)第五周:实践项目展示和总结(1课时)八、教学反思软件工程是现代软件开发的重要理论和方法,对培养学生的软件开发能力和团队合作能力具有重要意义。
软件工程备课教案模板及范文

一、教学目标1. 理解软件工程的基本概念、基本原理和主要开发方法;2. 掌握软件工程各领域的发展方向;3. 了解如何用工程化的方法开发软件项目,以及开发过程中应遵循的流程、准则、标准和规范;4. 掌握UML面向对象建模的基本方法和技术;5. 培养学生理论应用于实践的能力。
二、教学内容1. 软件工程概述2. 软件生存期模型3. 软件需求分析4. 软件设计5. 软件测试6. 软件项目管理7. UML面向对象建模三、教学方法1. 讲授法2. 案例分析法3. 讨论法4. 实践操作法四、教学过程(一)软件工程概述1. 引入:介绍软件工程的定义、目的和意义;2. 讲解:软件工程的基本概念、基本原理和主要开发方法;3. 案例分析:分析软件工程在实际项目中的应用。
(二)软件生存期模型1. 引入:介绍软件生存期的概念和阶段;2. 讲解:瀑布模型、增量模型、快速原型模型、喷泉模型、敏捷开发等生存期模型;3. 案例分析:分析不同生存期模型在项目中的应用。
(三)软件需求分析1. 引入:介绍软件需求分析的概念和目的;2. 讲解:需求分析的方法、工具和技术;3. 案例分析:分析需求分析在实际项目中的应用。
(四)软件设计1. 引入:介绍软件设计的概念和目的;2. 讲解:软件设计的方法、工具和技术;3. 案例分析:分析软件设计在实际项目中的应用。
(五)软件测试1. 引入:介绍软件测试的概念和目的;2. 讲解:软件测试的方法、工具和技术;3. 案例分析:分析软件测试在实际项目中的应用。
(六)软件项目管理1. 引入:介绍软件项目管理的概念和目的;2. 讲解:软件项目管理的流程、工具和技术;3. 案例分析:分析软件项目管理在实际项目中的应用。
(七)UML面向对象建模1. 引入:介绍UML的概念和作用;2. 讲解:UML的图形元素、用例图、类图、序列图等;3. 案例分析:分析UML在实际项目中的应用。
五、教学评价1. 课堂表现:学生参与讨论、提问、回答问题的积极性;2. 作业完成情况:学生完成作业的质量、速度和准确性;3. 期末考试:学生对软件工程知识的掌握程度。
软件工程教学教案

第一章绪论一、教学内容及要求授课学时:6-8教学内容1.1软件历史计算机历史和软件历史:国产计兑机与软件,包括国产计兑机的历史、国产软件发展史、国产软件的现状分析。
1.2软件的概念软件的概念;软件的特点:软件的分类,包括技术层面的分类和商务层面的分类:从技术层面,软件大体上分为三大类:系统软件、支探软件和应用软件:从商务U 面,软件产品分为三类:通用软件、定制软件和开源软件:客户、用户和开发者这三个重要的软件工程领域术语。
1.3软件工程软件危机,包括软件危机的表现和原因:软件工程的诞生,软件工程的定义:软件工程知识体系,分为15个知识领域。
1.4软件工程道便与从业规范软件工程道德和从业规范,包括八项基本原则。
基本要求D能够理解软件与计算机的关系。
2)能够知晓计算机的历史.3)能够知晓软件的历史。
4)能够知晓国产计算机与软件的发展历史。
5)能够理解软件的基本概念。
6)能够了解和理解软件的分类及其应用。
7)能够了解软件危机的表现,能够理解软件危机的原因。
8)能够理解软件工程的使命和内涵.9)能够了解软件工程的知识体系。
10)能够了解和理解软件工程道优与从业规范。
能力培养通过课堂讲解和课上课卜的思考与讨论,培养学生对软件工程领域的问题或现象及其解决方案的思考和剖析能力。
二、教学设计1.1软件历史从计算机历史、软件历史入手,介绍软件的发展过程;进而介绍国产计算机和国产软件的发展历程,并对国产软件的发展现状进行介绍和分析。
此处以美国借MAT1.AB对我国高科技实施卡脖了•为典型案例,组织学生进行课堂讨论,使学生充分认识到软件是国家战略角逐之地,我们一定要坚持自主研发,一定要有自己的技术,一定要有民族软件,才能够主宰自己的命运。
要求学生课后查找资料,列出更多的国产软件产品,了解它们的发展过程,并在幕课论坛中分享关丁•国产软件的资讯、对国产软件的发展前景做以展望。
使学生认识到尽管面临着一些用雄,我国IT业、软件业还是取得了值得骄傲的发展,而只在党的象导下•定会有•个非常辉煌的未来,从而要树立爱国主义情怀和为民族软件献身的精神。
软件工程教案

软件工程教案软件工程教案(一)一、教学目标1.知识目标:理解软件工程的基本概念、原理和方法。
2.能力目标:能够运用软件工程方法进行项目规划和开发,掌握常见的软件开发工具。
3.情感态度和价值观:培养学生对软件工程的热爱和兴趣,使其认识到软件工程对社会和经济发展的重要性。
二、教学内容1.软件工程的定义和重要性。
2.软件开发生命周期。
3.需求分析、设计、编码、测试和维护的软件开发阶段。
4.常见的软件开发工具。
三、教学难点与重点难点:理解软件开发生命周期的各个阶段及其关系。
重点:需求分析和设计阶段。
四、教具和多媒体资源1.黑板或白板。
2.投影仪和PPT。
3.软件工程实例展示。
五、教学方法1.激活学生的前知:回顾软件开发的基本概念和流程。
2.教学策略:讲解、示范、小组讨论和案例分析。
3.学生活动:分组进行案例分析和讨论。
六、教学过程1.导入:故事导入,介绍一个成功的软件开发案例,强调软件工程的重要性。
2.讲授新课:详细讲解软件工程的定义、原理和方法,以及软件开发生命周期的各个阶段。
3.巩固练习:提供几个软件开发案例,让学生进行需求分析和设计。
4.归纳小结:回顾本节课的重点和难点,总结软件工程的基本概念和方法。
七、评价与反馈1.设计评价策略:小组报告和口头反馈。
2.为学生提供反馈,指导改进:根据学生的报告和讨论,指出问题并给予建议。
八、作业布置1.阅读教材中关于软件工程的章节。
2.选择一个实际项目,进行需求分析和设计,写出报告。
3.收集关于软件工程的最新动态或新闻,进行阅读和理解。
软件工程教学教案范文模板

---一、教学目标1. 知识目标:- 理解软件工程的基本概念、基本原理和主要开发方法。
- 掌握软件生存期的阶段划分和各阶段的任务。
- 了解软件工程方法,包括瀑布模型、增量模型、快速原型模型、喷泉模型、敏捷开发等。
- 熟悉螺旋模型、统一过程等高级软件开发方法。
2. 技能目标:- 初步具备软件项目管理的能力。
- 熟悉项目开发的整个流程,包括软件生命周期、软件概要设计、详细设计、编码实现、软件调试和软件测试。
- 能写出符合规范的文档。
- 熟练使用主流UML建模工具,进行面向对象的建模。
3. 情感目标:- 培养学生对软件工程的兴趣和热情。
- 增强学生的团队协作意识和沟通能力。
- 培养学生严谨的学术态度和解决问题的能力。
二、教学内容1. 软件工程概述:- 软件危机与软件工程的概念。
- 软件生存期的阶段划分和各阶段的任务。
- 软件工程方法:瀑布模型、增量模型、快速原型模型、喷泉模型、敏捷开发。
- 螺旋模型、统一过程等高级软件开发方法。
2. 软件需求分析:- 需求分析的重要性。
- 需求分析方法与技术。
- 需求规格说明书的编写。
3. 软件设计:- 设计的原则和规范。
- 结构化设计、面向对象设计。
- UML面向对象建模。
4. 软件实现:- 编码规范和风格。
- 编程语言的选择。
- 软件实现中的常见问题。
5. 软件测试:- 测试的原则和目标。
- 测试用例的设计。
- 自动化测试。
6. 软件维护:- 软件维护的类型和内容。
- 软件维护的策略和方法。
三、教学方法1. 讲授法:系统讲解软件工程的基本概念、原理和方法。
2. 案例分析法:通过实际案例分析,帮助学生理解软件工程的应用。
3. 讨论法:组织学生讨论软件工程中的热点问题和实践案例。
4. 实践操作:指导学生进行软件开发的实践操作,提高学生的实际动手能力。
四、教学过程1. 导入:介绍软件工程的基本概念和重要性。
2. 讲解:详细讲解软件工程的各个阶段和方法。
3. 案例分析:分析实际软件工程的案例,帮助学生理解理论知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程一、绪论软件工程的产生(1)“软件”即计算机程序及其说明程序的各种文档。
是一种逻辑产品,1946-1956)个体手工劳动,,产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术。
开发技术进步,但软件费用上升,并没有摆脱软件危机。
(2)软件危机。
复杂的、大型的软件开发项目被提出,但软件开发技术未能满足发展的要求,这矛盾积累起来,形成软件危机。
表现为:经费高和完成时间长、开发的软件未能满足客户要求、可维护性差、可靠性差。
(3)软件工程是用科学知识和技术原理来定义、开发、维护软件的一门综合性的交叉学科,其目标是成功的建造一个大型软件系统,内容有软件开发和开发管理两个方面,面临的问题有软件费用、可靠性、可维护性、生产率、软件重用等。
软件的生存周期(1)软件工程过程包含7个过程:获取过程、供应、开发、操作、维护、管理、支持;(2)软件生存周期是指一个软件从提出开发要求开始知道该软件报废为止的整个时期。
包括:①可行性分析和开发计划。
明确问题的性质、目标、规模和求解方法;②需求分析。
明确软件系统的功能;③概要设计。
划分模块,设计软件结构;④详细设计。
为每个模块完整功能进行描述;⑤编码。
把模块的控制结构编成计算机可接受的程序代码;⑥测试。
包括模块测试、组装测试、确认测试。
是保证软件质量的重要手段;⑦维护。
是软件生存周期最长的阶段。
软件生存周期模型-描述软件开发过程中各种活动如何执行的模型(1)瀑布模型。
将软件生存周期各活动规定为依线性顺序连接的若干阶段。
以文档作为驱动,适合于需求很明确的项目开发的模型。
它强调每一阶段的严格性,是一种整体开发模型;(2)增量模型。
是一种非整体开发模型,软件是“逐渐”被开发出来的。
适合需求不明确、设计方案有一定风险的项目;(3)螺旋模型。
将瀑布模型和增量模型结合起来。
是一种风险驱动的模型。
可分为几个螺旋周期,每一周期包括制定计划、风险分析、开发实施、用户评价4个步骤。
(4)喷泉模型。
开发过程具有迭代性和无间隙性。
以用户需求为动力;(5)基于知识的模型-智能模型。
将瀑布模型和专家系统结合;(6)变换模型。
适合于形式化的开发方法模型;(7)统一过程。
是基于统一建模语言的软件开发过程,用例驱动和风险驱动的、以构架为中心的、采用迭代和增量的软件开发过程。
是软件开发的主流过程。
软件开发方法(1面向数据流。
总的思想是自顶向下、逐步求精,基本原则是功能的分析与抽象。
是软件工程最早的开发方法,也是应用广、成熟的方法;(2)Jachson方法-面向数据结构;(3)维也纳开发方法VDM-基于模型的方法,主要思想是将软件系统当作模型来给予描述,具体说就是把软件的输入/输出看作模型对象,借助于描述工具语言Meta-IV;(4)面向对象开发方法,包括面向对象分析、面向对象设计、面向对象实现。
一、软件要求定义可行性研究(1)技术可行性、经济可行性、社会可行性;(2)步骤:确定项目规模和目标、研究现有系统、建立新系统的高层逻辑模型、导出和评价各种方案、推荐可行的方案编写可行性研究报告;(3)系统流程图,描述物理系统的工具。
符号如下表:软件需求分析(1)需求分析就是开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换道响应的形式功能规约的过程;(2)难点:问题复杂性、交流障碍、不完备性和不一致性、需求易变性;(3)原则:必须表达和理解问题的数据域和功能域;可以把复杂问题按功能进行分解并可逐层细化;建模;(4)基本任务是准确的定义新系统的目标,具体有问题识别、分析与综合,导出软件的逻辑模型、编写文档;(5)方法:功能分解方法-本质是用过程抽象的观点来看待系统需求、结构化方法、信息建模方法、面向对象的分析;IDEF方法(1)1981,在结构化分析与设计的基础上提出的。
是集成化计算机辅助制造设计的缩写Integrated Computer Aided Manufacturing(ICAM)Definition。
包括三个部分:①IDEF0。
用来描述系统的功能活动及其联系,建立系统的功能模型;②IDEF1。
用来描述系统的信息及其联系,建立系统的信息模型;③IDEF2。
用来进行系统模拟,建立系统动态模型。
(2)IDEF0的特点:采用方框/箭头等简单图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制,IDEF0图宜做正式文档;采用严格的自上向下、逐层分解的方式建立系统功能模型。
每张图至少3个、最多6个方框。
二、软件设计软件概要设计(1)基本任务:设计软件系统结构-以模块为基础;数据结构及数据库设计-数据库的设计包括概念设计、逻辑设计、物理设计三个方面;编写概要设计文档;评审;(2)概要设计说明书的主要内容:引言-目的背景等;总体设计-需求规定、运行环境等;接口设计-用户接口外部接口内部接口;运行设计-控制、时间;系统数据结构设计;系统出错处理设计;(3)软件设计原则:①模块化。
自顶向下把软件系统划分成若干模块,是解决复杂问题的手段,复杂性:C(P1+P2)>C(P1)+C(P2);②抽象。
③信息隐蔽。
通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制;④模块独立性。
两聚-通信内聚-顺序内聚-功能内聚。
模块内元素尽量强内聚。
软件结构准则(1)软件结构图。
Structure Chart-SC。
结构图包括模块(方框表示)、模块间的联系(箭头表示)、模块间信息传递(带注释的箭头,带空心园表示传递数据,带实心圆表示传递控制信息)、两个附加符号-选择调用(小三角)和循环调用(环形箭头);(2)结构图结构特征:深度-结构图的控制层次;宽度-一层中最大的模块个数;扇入-一个模块直接上属模块个数;扇出-一个模块直接下属模块个数。
在结构图中,同一名字的模块仅出现一次,调用关系只能从上到下。
(3)结构设计优化准则:①模块独立性准则-高内聚、低耦合;②控制范围与作用范围的准则-作用范围应在控制范围之内,且条件判定所在的模块应与受其影响的模块在层次上尽量靠近;③形态特征准则-深度、宽度、扇入扇出应适当;一般顶层扇出数高些,中间层扇出低些,底层扇入数高些;④模块大小准则。
在50~150条语句之间;⑤模块接口准则。
简单、清晰、含义明确、易于理解、实现、测试和维护。
(4)HIPO图(Hierarchy Plus Input/Processing/Output)。
是IBM公司开发的表示软件系统结构的工具,既可描述软件总的模块层次结构-H图-层次图,矩形框表示一个模块,框间直线表示模块间调用关系;也可描述每个模块输入/输出数据、处理功能及模块调用的详细情况-IPO图-未说明模块间的信息传递和模块内部处理;基于IDEF0图的设计方法,是结构化设计技术之一,以系统的功能模型和信息结构为基础设计系统的软件结构。
软件详细设计(1)主要确定每个模块具体执行过程,故也称“过程设计”。
并不是具体编程,二是细化成很容易从中产生程序的图纸。
(2)基本任务:算法设计、数据结构设计、物理设计、其他设计(代码、I/O、人机对话设计)、编写详细设计说明书、评审(3)方法:采用结构化程序设计,要点为:①采用自顶向下、逐步求精的程序设计方法;②使用三种基本控制结构构造程序-顺序、选择、重复;③主程序员的组织形式-最先由IBM公司实施。
(4)软件详细表示法。
采用三种工具-图形、表格和语言。
①程序流程图-直观清晰、易于理解,但容易造成非结构化的程序结构,不能反映逐步求精的过程,不易表示数据结构;②问题分析图PAD图-由左往右展开的二维树型结构。
流程为自上向下、从左往右执行,层次关系清晰,支持逐步求精方法,易读易写,支持结构化的程序设计原理,可自动生成程序;③过程设计语言PDL,是在伪码基础上扩充了模块的定义和调用、数据定义和I/O而形成的。
PDL外语法同响应程序语言一致,内语法使用自然语言,易写易懂;提供的机制较图形全面,利于保障质量;可嵌入注释,利于维护;可自动生成程序代码。
三、软件编码程序设计语言特性(1)心理特性-影响程序员心理的语言特性。
表现为:歧义性、简洁性、局部性和顺序性;(2)工程特性,对程序编码要求有:可移植性、开发工具的可利用性、软件的可重用性、可维护性;(3)技术特性。
程序设计语言的选择(1)项目的应用领域-选择语言的关键因素。
有5种类型:①科学工程计算:FORTRAN、Pascal、C、PL/1;②数据处理与数据库应用:Cobol、SQL、4GL;③实时处理:汇编语言、Ada;④系统软件:汇编、C、Pascal等;⑤人工智能:Lisp、Prolog。
(2)软件开发的方法:C++、Java;(3)软件执行的环境:Visual BASIC、Visual C、Visual FoxPro、Delphi等;(4)算法和数据结构的复杂性;(5)软件开发人员的知识。
4GL语言:称为第四代语言。
特征是:界面友好,操作简单;兼有过程性和非过程性双重特性;高效的程序代码;完备的数据库;应用程序生成器,提供一些常用的程序来完成文件维护、查询等,提高了效率。
目前Fox公司的FoxPro、Uniface公司的Uniface、Powersoft 公司的Power Builder、Informix公司的Informix_4GL以及扩充版的SQL都不同程度具有上述特性。
程序设计风格-一个人编制程序时表现出来的特点、习惯及逻辑思路等;影响因素有:(1)源程序文档化-原则有:标识符按意取名;程序加以注释;(2)数据说明-原则:数据说明顺序规范;加以注释;(3)语句构造;(4)输入和输出;(5)效率。
四、软件测试测试原则:①测试用例由输入数据和预期输出数据组成;②测试用例应包含合理和不合理的输入数据;③除了检查程序做了该做的事,还应该检查是否做了不该作的事;④制定测试计划并严格进行,排除任意性;⑤长期保留测试用例;⑥对发现错误多的程序,应深入进行测试;⑦程序员避免测试自己的程序。
测试方法:(1)①静态测试:指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段进行检测;②动态测试:指通过运行程序发现错误,一般采用。
有两种方法:一是测试产品功能,二是测试产品内部结构及处理过程,分别称为黑盒测试法和白盒测试法。
测试用例的设计:(1)白盒技术-属于结构测试,对象基本是源程序:①逻辑覆盖,包括语句覆盖-执行到每一语句、判定覆盖-每个判定条件至少获得一次真值盒假值、条件覆盖-每个条件各种可能值至少出现一次、判定/条件覆盖、条件组合覆盖、路径覆盖②循环覆盖;③基本路径测试-确保程序每条路径的执行;(2)黑盒技术-属于功能测试,一般有4种方法:①等价类划分-先划分等价类,再确定测试用例;②边界值分析;③错误推测;④因果图;⑤综合测试。