软件工程课程介绍
(完整word版)软件工程课程教学大纲

《软件工程》课程教学大纲一、课程代码与名称(小四号宋体加粗)课程代码: CS132201中文名称: 软件工程英文名称: Software Engineering二、课程概述及与相关课程关系软件工程是计算机科学与技术专业的专业必修课, 是指导学生按照工程化、标准化和规范化的方法开发软件系统的一门课程。
通过本课程学习, 学生能够掌握现代软件设计与开发的基本原理、方法和技术;熟悉结构化和面向对象软件设计与开发的全过程;了解软件项目管理、软件维护等方面知识。
软件工程与前后课程间关联关系、课程群对应的局部鱼骨图分别如下所示:图例:应用方向软件工程课程群及对应课程群项目、学年项目(局部)图图例:三、课程教学对象与教学目的适用专业: 计算机科学与技术教学目的:通过理论教学和实践相结合, 使学生初步具备运用软件工程的概念、原理、技术和方法开发与维护软件的能力, 并提高学生编写相关技术文档的能力, 及分析问题和解决问题的能力和团队工作交流能力。
*注: 该表所列指标可对照培养方案中所列指标来解释。
A: 认知, 指从教、学活动中、从生活经验和社会经验等多种信息渠道获得知识, 侧重知识的获取, 没有实训要求。
B: 训练, 指教、学活动中由教师引导开展的基础测试或练习, 匹配有课程讨论、课后研讨等环节。
C: 实践, 指以学生为主导, 通过实练而形成的对完成某种任务所必须的活动方式, 匹配有课程的三级项目或其它实践环节。
D: 探索, 指学生独立探寻问题、摸索、解答的活动, 不设置专门的考核。
(留空表示无该项要求)四、课程内容、学时分配及主要的教学方法本课程对主要软件开发方法采用项目驱动教学模式, 结合实验和项目开发实践, 使课程的实践与理论教学内容紧密配合, 同步进行, 达到理论指导实践, 实践促进理论学习目的。
通过理论教学、实践(实验)、团队项目开发实践3环节将理论与实践紧密联系。
教学中采用问题引导方式推进学生基于问题的学习(problem based learning), 以为学生为中心鼓励学生参与课程讨论, 促进学生采用主动学习方法(active learning)。
软件工程课程表

软件工程课程表软件工程课程表1.课程概述1.1 课程名称:软件工程1.2 课程编号:SE1011.3 课程学分.3学分1.4 授课教师:教授1.5 上课时间:每周一、周三、周五上午8:00-9.401.6 上课地点:教学楼101室2.课程目标在本课程中,学生将会学习软件工程的基本原理和方法,了解软件开发过程中的需求分析、设计、编码、测试等关键环节,掌握常用的软件开发工具和技术,培养软件工程实践能力和团队合作精神。
3.课程大纲3.1 软件工程概述3.1.1 软件工程定义3.1.2 软件过程模型3.1.3 软件开发生命周期3.2 软件需求分析3.2.1 需求获取与分析3.2.2 需求规约与验证3.2.3 需求管理与变更控制3.3 软件设计3.3.1 软件设计原则3.3.2 结构化设计与面向对象设计 3.3.3 UML建模3.4 软件编码与测试3.4.1 编码规范与质量保证3.4.2 单元测试与集成测试3.4.3 软件测试方法与工具3.5 软件项目管理3.5.1 项目计划与进度管理3.5.2 风险管理与质量管理3.5.3 团队协作与沟通4.课程安排---- 日期 ---- 内容 ----------------------------------------- 第1周 ---- 软件工程概述 -------- 第2周 ---- 需求分析 -------- 第3周 ---- 软件设计 -------- 第4周 ---- 软件编码与测试 -------- 第5周 ---- 软件项目管理 -------- ---- ----5.课程评估方式5.1 平时成绩:占总评成绩的30%,包括课堂参与、作业完成情况等5.2 课程项目:占总评成绩的40%,完成一个小型软件项目5.3 期末考试:占总评成绩的30%6.参考资料6.1 《软件工程导论》6.2 《软件工程原理与实践》6.3 《软件工程教程》附件:1.课程项目要求2.课程作业说明法律名词及注释:1.软件工程:软件工程是指应用科学和数学原理,通过系统化、规范化的方法开发和维护软件的一门工程学科。
软件工程专业课程

软件工程专业课程软件工程作为一门学科,自上世纪70年代初以来便成为计算机学科的一个重要分支,以计算机科学和工程科学的交叉研究为基础,致力于计算机软件的开发和设计。
软件工程专业课程以解决实际软件问题为主,旨在培养具有良好软件工程理论及软件设计与开发能力的高素质实用型人才,进而推动软件开发的发展。
软件工程专业的主要内容主要集中在软件开发的理论和实践,包括软件工程基础理论、软件工程系统开发实践、软件测试技术、软件项目管理、软件架构设计等。
一般来说,软件工程专业课程强调概念和实践相结合,要求学生掌握软件开发方法和技术。
第一,软件工程基础理论课程,主要包括软件工程基本原理、历史、基本方法、技术和工具,以及软件工程的分析、设计、开发、维护、测试的方法与原理等内容。
第二,软件工程实践课程,主要为学生提供一系列实践操作,让学生从实践中学习如何设计、开发和管理软件。
其中包括专业编程、软件需求分析、系统设计、软件架构设计、软件测试等实践内容。
第三,软件项目管理,主要包括项目管理方法论、项目资源管理、项目进度管理、项目风险分析等。
第四,软件工程相关技术,主要包括软件工程质量管理、软件文件管理、软件可用性管理以及软件工程的可持续发展等内容。
软件工程专业课程不仅要教授理论知识,还要提倡培养学生的实践能力,使他们能够将所学知识运用到实践中去。
通过这些课程,学生可以学习如何运用目标管理、可视化软件开发、项目管理技术、软件架构设计、软件测试技术、软件需求分析、软件文件管理等,进而掌握软件工程设计、开发及维护技术,以应对软件开发所面临的现实问题。
综上所述,软件工程专业课程在培养实用型人才方面有重要意义,受到了企业界的普遍认可和赞赏。
软件工程专业在鼓励学生提高知识储备和技能水平,探索软件开发新技术,践行可持续发展的方面有重大贡献。
因此,软件工程专业课程开设必将对促进软件技术的发展作出重大贡献。
软件工程大一至大四课程表

软件工程大一至大四课程表【原创实用版】目录1.引言:介绍软件工程专业及其重要性2.大一课程:基础课程及编程语言3.大二课程:软件开发方法和数据库4.大三课程:软件工程实践和项目管理5.大四课程:软件架构和前沿技术6.结论:软件工程专业的发展前景正文一、引言随着信息技术的飞速发展,软件工程专业在我国受到了越来越多的关注。
软件工程师作为信息产业的基础力量,肩负着软件开发、系统维护、项目管理等重要任务。
本文将介绍软件工程专业的大一至大四课程表,帮助读者了解该专业的学习内容和发展方向。
二、大一课程:基础课程及编程语言1.计算机基础:计算机组成原理、操作系统、计算机网络等2.编程语言:C 语言、C++、Java 等3.数据结构与算法:线性表、栈与队列、排序算法等三、大二课程:软件开发方法和数据库1.软件开发方法:面向对象编程、软件工程、设计模式等2.数据库:关系型数据库、非关系型数据库、SQL 语言等3.软件测试:软件测试基础、测试用例设计等四、大三课程:软件工程实践和项目管理1.软件工程实践:软件项目管理、软件质量保证、软件工程与计算等2.项目管理:项目管理基础、项目成本管理、项目风险管理等3.软件工程与计算:软件工程与计算导论、软件工程与计算实践等五、大四课程:软件架构和前沿技术1.软件架构:软件架构设计、软件架构模式等2.前沿技术:人工智能、大数据、云计算等3.毕业设计:软件工程相关领域的毕业设计六、结论软件工程专业涉及多个领域,从基础课程到前沿技术,旨在培养具备扎实理论基础和实际操作能力的软件工程师。
随着我国信息技术产业的持续发展,软件工程专业的发展前景十分广阔。
软件工程课程目录

软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。
通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。
软件工程大一课程表

软件工程大一课程表
大一的软件工程课程通常包括一系列基础课程,帮助学生建立计算机科学和软件工程的基本知识。
以下是一个简要的大一软件工程专业的课程表,每门课程附有简短的描述。
第一学期
1.计算机导论
–介绍计算机科学和软件工程的基本概念,包括硬件和软件方面。
2.程序设计基础
–学习基本的编程概念和技能,使用常见的编程语言如C 或Python。
3.离散数学
–强调在计算机科学中的离散数学概念,如逻辑、集合论和图论。
4.英语写作与交流
–提升学生英语写作和口头表达的能力,以便进行有效的技术沟通。
5.大学物理
–探讨与计算机科学相关的基本物理原理,如电磁学和力学。
第二学期
1.数据结构与算法
–学习数据结构和算法的基本原理,包括数组、链表、树和排序算法。
2.计算机组成原理
–理解计算机硬件组成和工作原理,包括中央处理器、存储器和输入输出设备。
3.数据库原理
–介绍数据库的基本概念,学习SQL语言和数据库设计。
4.软件工程导论
–简要介绍软件工程的基本原理和流程,强调团队合作和项目管理。
5.线性代数
–学习与计算机图形学和机器学习等领域相关的线性代数基础知识。
这是一个典型的大一软件工程专业的课程表,具体课程和学分要求可能因学校和课程设置而有所不同。
软件工程专业导论课
软件工程专业导论课软件工程专业导论课是软件工程专业的入门课程,旨在为学生介绍软件工程的基本概念、方法和技术,培养学生对软件工程的理解和兴趣。
本文将从课程内容、教学方法、学习收获等方面对软件工程专业导论课进行详细介绍,为学生和教师提供参考。
一、课程内容软件工程专业导论课的主要内容包括以下几个方面:1. 软件工程概述:介绍软件工程的定义、发展历程、重要性以及软件工程专业的基本知识体系,对软件工程的基本概念进行概述。
2. 软件开发流程:介绍软件开发的基本流程,包括需求分析、设计、编码、测试、部署和维护等各个阶段,以及各个阶段的主要任务和方法。
3. 软件工程方法和技术:介绍软件工程中常用的方法和技术,如面向对象分析与设计、UML建模、软件测试方法、软件配置管理等,帮助学生了解软件工程实践中的常用方法和技术。
4. 软件质量与项目管理:介绍软件质量的概念、评价标准和保障方法,以及项目管理的基本原理和方法,培养学生的软件质量意识和项目管理能力。
5. 软件工程伦理与规范:介绍软件工程领域的伦理道德和规范要求,引导学生在软件工程实践中遵守伦理规范,培养学生的职业道德和责任感。
二、教学方法软件工程专业导论课通常采用多种教学方法,其中包括理论讲授、案例分析、实践操作和课堂讨论等。
教师通过理论讲授,向学生介绍软件工程的基本概念和知识;通过案例分析,向学生展示软件工程在实际项目中的应用和效果;通过实践操作,让学生亲自实践软件工程方法和技术;通过课堂讨论,激发学生的学习兴趣,培养学生的团队合作和沟通能力。
三、学习收获软件工程专业导论课的学习收获主要包括以下几个方面:1. 理论知识:学生通过学习,掌握了软件工程的基本理论知识,理解了软件工程的发展历程、重要性和基本概念,为今后的学习和实践奠定了基础。
2. 实践能力:学生通过案例分析和实践操作,掌握了软件工程中常用的方法和技术,提高了软件设计、开发、测试和管理的实际能力。
3. 团队合作:学生通过课堂讨论和项目实践,培养了团队合作和沟通能力,了解了软件工程团队合作的重要性和方法。
软件工程课程全部课程
软件工程课程全部课程•软件工程概述•需求分析与管理•系统设计与架构•编程实现与测试目•项目管理及团队协作•质量保障与持续改进录01软件工程概述软件工程定义与发展软件工程的定义软件工程是一种系统性的方法,用于开发、运行和维护软件。
它涵盖了从需求分析、设计、编码、测试到维护的整个软件生命周期。
软件工程的发展软件工程自20世纪60年代诞生以来,经历了多个发展阶段。
从最初的瀑布模型到敏捷开发方法,软件工程的方法论和工具不断演进,以适应不断变化的软件开发需求。
软件工程方法论传统软件工程方法论包括瀑布模型、螺旋模型等,强调严格的阶段划分和文档化,适用于需求明确且稳定的项目。
敏捷软件工程方法论包括Scrum、极限编程等,强调快速响应变化、持续集成和交付,适用于需求变化频繁的项目。
软件工程伦理与职业规范软件工程伦理涉及软件开发过程中的道德和伦理问题,如隐私保护、数据安全、软件可靠性等。
软件工程职业规范包括软件开发人员的职业道德、行为规范、团队协作等方面的要求,以确保软件开发过程的高效和质量。
02需求分析与管理与客户或利益相关者进行初步沟通,了解项目背景和目的通过访谈、问卷调查、观察等方式收集用户需求对收集到的需求进行整理、分类和优先级排序需求获取与整理1 2 3明确项目的范围、目标和约束条件对每个功能需求进行详细描述,包括输入、输出和处理过程编写清晰、准确、可验证的需求规格说明书需求规格说明书编写需求变更管理建立需求变更管理流程,明确变更申请、审批和执行等环节对变更需求进行评估,包括影响范围、成本和风险等及时更新需求规格说明书和相关文档,确保与项目实际情况保持一致03系统设计与架构系统总体设计系统需求分析对用户需求进行深入理解,明确系统应具备的功能和性能。
系统总体架构设计根据需求分析结果,设计系统的整体架构,包括各组成部分及其相互关系。
系统可行性分析评估所设计的系统架构是否满足用户需求、技术可行性及经济合理性。
软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)
第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。
软件工程该专业主要课程
软件工程是一个涵盖软件开发和管理的学科,旨在培养学生在软件系统设计、开发、测试、维护和项目管理等方面的专业知识和技能。
以下是软件工程专业主要的课程:
1. 编程基础:介绍计算机编程的基本原理和技巧,包括常见的编程语言和编程范式。
2. 数据结构与算法:学习各种数据结构(如树、图、队列、堆栈等)和算法设计与分析的基本概念。
3. 软件需求工程:研究如何收集、分析和规范软件系统的需求,以确保软件开发满足用户的期望和需求。
4. 软件设计与架构:学习软件设计原则、设计模式和架构风格,以及如何将需求转化为高质量的软件设计。
5. 软件测试与质量保证:了解软件测试的方法和技术,包括单元测试、集成测试、系统测试等,以确保软件质量。
6. 软件项目管理:介绍项目管理的基本原理和技巧,包括项目计划、进度控制、团队协作和风险管理等。
7. 软件工程实践:通过实际项目开发或仿真项目,学习软件工程的实际应用,包括需求分析、设计、开发和测试等环节。
8. 软件工程伦理与法律:了解软件工程中的伦理道德问题和相关法律法规,培养合规开发软件的意识和责任。
除了上述主要课程,还有一些选修课程可以根据个人兴趣和发展方向进行选择,如人机交互、移动应用开发、云计算等。
需要注意的是,具体的课程设置可能因学校和课程计划而有所不同,以上仅为一般性的介绍。
建议你在选课时参考所在学校的具体课程安排和要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程介绍
课程特点: -既是一门技术学课程,也是一门管理学课程;
一既具有理论性,也具有较强的实操性。
课程目的:
一基本:
掌握软件工程的基本概念和基本原理;
掌握分析、设计、测试与维护软件系统的理论与方法; 实践软件系统
开发的全过程,构建一个软件系统。
一进一步:
转变对软件的认识:程序---------- 系统;
转变思维定式:程序员---------- 系统分析员/系统设计员;
工程化训练:规范、准则、项目管理。
课程的主要内容:
软件工程人才分布示意图
-软件工程的产生、软件的生命周期、生命周期模型;
-软件开发各阶段的目标、任务、特点、步骤和文档;
-传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则;
-面向对象软件工程的基本思想、基本过程和基本模型;
-软件工程的管理技术。
课程重点:
-掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工_ 具。
Chp.7编码与测试(实现)
教学安排:
-48学时讲授;
-课后作业和课后实验。
考核:
—期末考试:70%;
一作业+分组实验:30%。
教材:
-软件工程导论(5th),张海藩,清华大学出版社
参考文献
-软件工程(第二版),齐治昌,高等教育出版社
-软件工程实践教程,谭庆平等,高等教育出版社
先修课程:
-程序设计语言
-数据结构
-数据库原理与设计
课程实验:
—实验题目:
题目1:课程注册系统
为高校教务管理部门开发一个选修课程注册管理系统。
在每学期开学前,教务管理人员可利用该系统输入课程信息、设定课表(每门课的任课教师、上课地点、上课时间)。
开学后,学生可以利用该系统查询课程和课表信息,在第一周内注册课程和取消对课程的注册。
软件系统负责将学生所选课的列表通知计费系统以确定学生应缴纳的选课费用。
在学期内,任课教师可随时查询选修其所授课程的学生的信息,学生可以随时查询课程信息、课表、本人已选课程列表,教务管理人员可以随时查询所有信息。
学期结束,
教师可登记学生考试成绩。
题目2:航空定票系统
为某家机票预订服务商开发一个机票预订和查询管理系统。
该系统中的航班和机票信息由多家航空公司负责提供。
客户通过上网方式查询航班时间表、机票可用信息、机票折扣信息,可以远程订票、退票、通过信用卡支付票款。
客户分为三类:金牌客户、银牌客户和普通客户。
普通客户通过订票积分至一定的额度可以逐步升级为银牌客户、金牌客户。
不同类别的客户可享有不同的机票折扣。
系统还必须每日、每周、每月给出机票销售的统计分析报表。
题目3:试题库系统
为高校某门课程开发试题库系统,要求:(1)试题有单选(4选1)、多选(5选2)、判断、填空等几类;(2)试题编辑。
对每道试题可进行录入、修改、删除等操作;每一章的每一类题,题量有一个临界值,当系统中某一章的某类题量低于临界值时,应提示用户增加题目;(3)试卷生成。
三种方法:(a)用户依次输入某章某类题的数量,系统随机抽题,依次写入试卷(txt文件);(b)用户打开题库,边阅读题目边抽题,抽出的题目一经确认,即写入试卷;(c)系统登记、保存已生成的完整试卷,用户可以直接抽取完整试卷。
(4)试卷评价。
记录每份已生成的完整试卷的考试情况,评价其难易程度。
-实验要求:
按照基于数据流的软件工程的要求完成各阶段的主要文档,实现的程序能初步运行。
分组进行,每组3~4人,自由组合,每组设项目负责人一个;
每组抽签选择开发题目1、2或3, 一组同学合作完成一个项目,每
人负责项目中的1~2个开发步骤;
工作步骤:
问题初步定义和可行性研究需求分析(资源采集)界面原型设计概要设计详细设计实现与测试项目验收
需要交付的文档:
(1) 可行性研究报告
(2) 项目开发计划(含小组成员分工)
(3) 需求规格说明书
(4) 概要设计说明书
(5) 详细设计说明书
(6) 数据库设计说明书
(7) 测试计划
(8) 测试分析报告
(9) 项目开发总结报告
(10) 系统源程序
(11) 操作手册
-建议开发步骤:
可行性研究:
用系统流程图描述系统的工作流程。
从技术上和人员(分工)上简单说明项目的可行性。
项目开发计划:
项目时间(例如20个工作日),任务分解(每个任务需要的人数和时间), 做项目开发的工程网络图和计划进度表,注明关键任务和关键路径。
使用“瀑布模型”:
需求分析:
(1) 获取需求:对8个方面的需求(A功能需求;B性能需求;C可靠性和可用性需求;D出错处理需求;E接口需求;F约束;G逆向需求;H将来可能提出的要求)进行获取、分析和记录,不必要的方面可以略去。
(2) 建立系统的逻辑模型:数据模型----数据字典和E-R图(数据规范到3范式);功能模型----功能级或进一步细化的数据流图;行为模型----状态转换图。
(3) 对系统中的关键部分必要的说明。
概要设计
(1) 确定系统的物理实现方案,用系统结构图描述之。
(2) 分解系统功能,做出系统的软件结构图(总体结构图)。
(3) 主要模块(一级、二级)的功能描述。
⑷对模块间的接口进行说明。
(5) 设计系统的主界面。
(6) 用户设计
详细设计
(1) 数据库设计。
(2) 系统使用的全局变量
(3) 每个模块内的数据结构设计、处理流程(图)设计。
(4) 模块的主界面、主要的交互界面的设计。
实现
(1) 编码。
(2) 测试:对主要功能模块进行单元测试,对整个系统进行集成测试。
对每个测试活动记录:测试采用的技术;测试用例;测试运行的结果
写开发总结
写操作手册。