课程简介 Course Introduction
课程性质:软件工程专业的学科核心课程。
开设学期:第三学期(1-18周),其中理论课每周3学时,实验课每周1学时,共72学时。
课程任务:通过本课程的教学,使学生掌握软件工程的基本概念和原则,培养学生用工程化的方法高效地开发高质量软件的初步能力,以及项目管理的初步能力。为软件需求工程、软件系统设计与体系结构、软件测试与质量、软件构造和软件过程与管理等软件工程专业的后继课程作准备。


教学大纲 Teaching Syllabus

一.概论(学时数:4)

教学内容

1.计算机软件

软件定义,软件语言及分类(需求定义语言,功能性语言,设计性语言,程序 设计语言,文档语言),软件的特点和分类,软件发展历史,软件危机

2.软件工程

软件工程定义,目标,过程,原则,软件生存周期

3.软件过程

软件过程定义和分类,软件过程能力成熟度模型CMM,软件过程能力成熟度模型 集成CMMI

4.软件过程模型

瀑布模型,演化模型,增量模型,原型模型,螺旋模型,喷泉模型,基于构件的 开发模型,形式化方法模型

5.CASE工具与环境

计算机辅助软件工程(CASE),CASE工具,集成型开发环境

教学要求

1.掌握软件及软件工程的基本概念

2.掌握软件生存周期各阶段的任务

3.了解软件过程的概念,以及CMM和CMMI的由来、作用、各等级的特点、结构

4.掌握各种软件过程模型的特点

5.了解CASE工具与环境的作用

二.计算机系统工程(学时数:2)

教学内容

基于计算机的系统,系统工程的任务,可行性分析

教学要求

1.了解系统工程的任务

2.掌握可行性分析的方法

三.需求工程(学时数:3)

教学内容

1.需求工程概述

需求工程定义,需求工程六个阶段

2.需求获取

软件需求定义,软件需求内容,需求获取方法与策略

3.需求分析、协商与建模

需求分析原则,信息域、抽象、分解与多视点分析,需求协商,需求建模基本方法简介

4.需求规约与验证

需求规约的原则、需求规约、需求验证

5.需求管理

需求管理定义、需求跟踪

教学要求

1.掌握需求工程的定义及六个阶段

2.掌握软件需求内容

3.掌握需求获取的方法与策略

4.掌握需求分析原则

5.掌握需求规约的原则

6.掌握需求规约的内容

7.了解需求验证过程

8.了解需求管理相关概念

四.设计工程(学时数:3)

教学内容

1.软件设计工程概述

软件设计的任务、软件设计的目标、软件设计的过程

2.软件设计原则

抽象化与逐步求精、模块化、信息隐藏、模块独立、耦合、内聚

3.软件体系结构设计 体

系结构发展过程、软件体系结构的风格、评估可选的体系结构

4.部件级设计技术

结构化程序设计方法、图形表示法、判定表、设计性语言PDL

5.设计规约与设计评审

设计规约、设计评审

教学要求

1、掌握软件设计工程的任务、目标和过程

2、掌握软件设计原则

3、了解软件体系结构设计

4、掌握部件级设计技术

5、了解设计规约与设计评审

五.结构化分析与设计(学时数:6)

教学内容

1.结构化分析

结构化分析的基本思想,结构化分析的步骤,分析模型的描述形式

2.数据流图

图形表示,分层数据流图的画法,分层数据流图的审查

3.数据字典

数据流、文件、数据项、加工、源或宿等条目的内容,描述基本加工的方法,包括 结构化语言、判定表、判定树

4.结构化设计 结构图,启发式设计策略,结构化设计的步骤

5.DFD到结构图的映射

变换流,事务流,变换分析,事务分析,分层DFD的映射

6.设计优化

初始结构图的改进,结构图改进技巧

教学要求

1.掌握结构化分析和设计的基本概念和原理

2.掌握结构化分析和设计的步骤

3.会应用结构化分析方法画分层数据流图,并建立相应的数据字典

4.会判断分层数据流图的合理性

5.会应用结构化设计方法画结构图,并掌握优化结构图的基本手段

六.面向数据结构的分析与设计(学时数:1)

教学内容

面向数据结构方法的基本思想,Jackson图,JSP方法,JSD方法

教学要求

1.掌握面向数据结构方法的基本思想

2.了解JSP方法和JSD方法

七.面向对象方法基础(学时数:2)

教学内容

1.面向对象的基本概念面向对象,对象,类,继承,消息,多态性,动态绑定

2.面向对象分析和设计的一般过程

面向对象分析的任务、步骤和一般分析过程,面向对象设计的一般过程,系统设计, 对象设计,设计模式

3.UML

UML发展历史,视图,图

教学要求

1.掌握面向对象的基本概念

2.掌握面向对象分析和设计的一般步骤

八.面向对象建模(学时数:10)

1.用况建模

用况建模的步骤,确定执行者,确定用况,用况描述,用况间的关系

2.静态建模

标识类及CRC技术,类之间的关系:关联(二元关联,三元关联,受限关联,聚 集,组合,关联类,导航性)、泛化、实现、依赖,约束,派生,模板

3.动态建模

用状态机图、活动图、顺序图、通信图描述系统的动态行为

4.物理体系结构建模

用构件图、内部结构图、部署图描述系统物理上的体系结构

教学要求

1.会应用UML建立用况模型,并给出用况的描述

2.会应用UML建立静态模型

3.会应用UML建立动态模型

4.会应用UML建立物理体系结构模型

九.基于构件的软件开发(学时数:3)

教学内容

1.基于构件的软件开发(CBSD)

CBSD的基本思想和原理,CBSD对质量、生产率和成本的影响1

2.CBSD过程

CBSD模型,领域工程,应用系统工程

3.可复用构件

对可复用构件的要求,可变性分析,可变性机制

4.应用系统工程

基于CBSD的应用系统分析和设计,构件的鉴定、特化和组装

5.构件的管理

构件的分类描述,构件库管理系统

教学要求

1.掌握CBSD的基本思想和原理

2.了解CBSD的过程以及基于CBSD的应用系统分析和设计

3.了解可复用构件的构建和管理

十.敏捷软件开发(学时数:2)

教学内容

敏捷软件开发的价值观和开发原则,XP方法

教学要求

了解敏捷软件开发的基本思想

十一.人机界面设计(学时数:2)

教学内容

1.人的因素

人对感知过程的认识、用户的技能和行为方式、人体测量学对设计的影响

2.人机界面风格

语言界面、图形用户界面、直接操纵用户界面、多媒体用户界面、多通道用户界面

3.人机界面分析与建模

人机界面设计过程、人机界面设计中设计的模型、任务分析的途径与方法

4.界面设计活动

定义界面对象和动作、设计问题、黄金原则

5.实现工具

6.设计评估

教学要求

1.了解人机界面设计中的人的因素

2.了解人机界面风格

3.掌握人机界面设计过程

4.掌握界面设计活动

5.了解实现工具

6.了解设计评估

十二.程序设计语言和编码(学时数:2)

教学内容

1.程序设计语言

程序设计语言的基本成分、程序设计语言特性、程序设计语言分类、程序设计语言选择

2.程序设计风格

源程序文档化、数据说明、语句结构、输入和输出

教学要求

掌握程序设计语言和程序设计风格。

十三.软件测试(学时数:3)

教学内容

1.软件测试基本概念

测试目的,测试原则,测试用例,白盒测试,黑盒测试,回归测试

2.白盒测试

逻辑覆盖测试,基本路径测试,数据流测试,循环测试

3.黑盒测试

等价类划分,边界值分析,比较测试,错误猜测,因果图

4.测试策略

V模型,单元测试,集成测试(非增量集成与增量集成,自顶向下集成与自底向上 集成),确认测试(包括α测试和β测试),系统测试(恢复测试,安全测试,压力 测试)

5.面向对象测试

面向对象语境对测试的影响,面向对象测试策略,类测试,类间测试

6.测试完成标准

介绍简单、实用的确定测试完成的标准7.调试 调试过程,调试方法(蛮力法,回溯法,归纳法,演绎法)

教学要求

1.掌握软件测试的基本概念

2.会用逻辑覆盖、基本路径等白盒测试方法设计测试

3.掌握等价类划分、边界值分析等黑盒测试方法的基本原理

4.掌握单元测试、集成测试、确认测试、系统测试等测试策略

5.了解面向对象测试的基本内容

6.了解测试完成标准及基本的调试方法

十四.Web工程(学时数:2)

教学内容

1.基于Web系统和应用的属性

2.Web 工程过程

过程框架、改善框架、Web工程中有用的规则

3.Web分析

分析类别、分析元素

4.Web设计

体系结构设计、导航设计、界面设计、构件级设计

5.Web测试

质量评价标准、在WebApp环境下出现的错误、测试策略

教学要求

1.了解Web系统的属性和特点

2.了解Web 工程过程

3.了解Web分析、设计和测试的概念和方法

十五.软件维护与再工程(学时数:3)

教学内容

1.软件维护

软件维护的概念、软件维护分类、维护问题、维护成本

2.软件维护过程

软件维护组织、维护过程、维护记录

3.软件可维护性

主要影响因素、软件可维护性评审、提高可维护性方法

4.软件再工程

再工程概念、业务过程再工程、软件再工程过程

5.逆向工程

教学要求

1.掌握软件维护的基本概念

2.掌握软件维护过程

3.掌握软件可维护性

4.掌握软件再工程和逆向工程定义

5.了解软件再工程

十六. 软件项目管理(学时数:3)

教学内容

1.软件项目管理基本概念

项目,项目管理,软件项目管理,软件项目管理的关注点,软件项目管理的内容

2.软件度量

面向规模的度量,面向功能的度量,软件质量模型,程序复杂性度量,软件可靠性度量

3.软件项目估算

代码行、功能点和工作量估算,IBM估算模型,CoCoMo模型,Putnam模型,软件可靠性估算

4.项目进度管理

人员与工作量之间的关系,任务的分解与并行,任务工作量的确定,甘特图,PERT图

5.风险管理

风险标识,风险预测,风险评估,风险管理和控制

6. 软件项目组织

组织结构模式,程序设计小组,人员配备

7.软件质量管理

软件质量保证,软件评审

8.软件配置管理

软件配置管理的基本概念,软件配置管理活动

教学要求

1.掌握软件项目管理的基本概念

2.掌握软件度量和软件项目估算的基本方法

3.会用甘特图和PERT图作出软件项目的进度安排

4.了解风险管理的基本活动和方法

5.了解软件项目组织中各角色的作用

6.了解软件质量保证的基本活动,以及软件评审的任务和方法

7.了解软件配置管理的基本概念和主要活动

留言板 Message Board
条留言  共

  • 参与互动
    Interaction

  • 扫码加入课程
    Scan QR Code
需要验证您的身份,请输入请求信息:
  • 学号号:
  • 班级选择:
  • 附注信息:

扫一扫二维码,快速加入本课程!

放大二维码 查看使用方法
课程
引导