大家好,我是北京大学信息科学技术学院的老师孙艳春 欢迎大家来到软件工程课。
下面,我给大家介绍一下 这门课程的内容安排以及这门课的设计的目的和特点
在本次课程介绍中,先给大家介绍课程的基本目的
软件工程基本知识结构,课程的内容安排 所用的教科书及主要的教学参考书
以及本次课程中涉及的课程实践环节 最后就是学生成绩的评定方法
软件工程是计算机软件和应用专业的一门重要的专业课
随着软件工程被设立为一级学科
那软件工程课,也是软件工程专业本科教学最重要的一门专业课
软件工程课程的目的是使大家掌握软件
开发和维护的方法学,了解软件开发和软件项目管理的 基础知识。
软件工程课程将通过案例教学和 课程实践培养学生软件开发、
维护和项目管理的能力 通过本次课程的课程实践环节
培养学生项目管理的意识,即对一个软件项目的 工作量、 成本、
进度和人员的计划和管理的意识 胶片上的这张图是一张关于软件工程基本知识结构的示意图
我们从探求软件开发本质出发,进而导出 软件生存周期过程包括哪些活动和任务,进一步
选择相应的生存周期模型来组织这些活动和任务 根据一个具体的应用软件的特点
我们可以进一步裁剪已有的软件生存周期过程,进而形成一个项目的生存周期过程
在一个项目的生存周期过程中,各个阶段,我们可以选择
相应的软件开发方法,进行各阶段的活动的实现
例如,我们可以选择结构化方法进行分析和设计等活动
另一方面,我们也可以选择相应的支持和管理技术与方法
进行软件生存周期过程的管理和控制,以提高软件开发的效率和软件的质量
下面将介绍软件工程课程的内容,该课程共讲授十章
第一章,软件工程概论,主要介绍软件的定义 让大家明确区分软件和程序的关系
通过软件工程起源的介绍,让大家了解软件工程的目的和意义
通过介绍软件开发的本质,让大家了解
软件是如何从问题域中的问题,映射为运行平台上的软件 而软件工程框架,即软件工程的目标、
原则和活动的介绍 让大家对软件工程有一个概要的了解
第二章,软件过程,主要介绍软件开发有哪些活动
即软件生存周期过程 以及如何组织这些活动,即软件生存周期模型
并且介绍了几种常用的软件生存周期模型,希望大家学会根据
不同软件类型选择相应的软件生存周期模型,来组织软件开发活动
第三章,软件需求与软件需求规约 的介绍。
将让大家对软件需求的正确捕获
与描述,是软件开发的难点和重点,有一个更清晰的认识
本章将系统地介绍需求的作用 定义和分类,并介绍需求捕获的方法和技术
最后,将介绍需求的规范化描述,即软件需求规约的概念及格式
最后指出项目需求和软件需求的本质区别 结构化方法是一种传统的软件开发方法
主要包括结构化分析、 结构化设计和结构化程序设计
第四章,结构化分析,主要介绍了结构化分析 的模型和分析过程,以及如何书写
结构化分析的软件需求规约,并且给大家提供了两个
补充材料,以帮助大家进一步深入理解结构化分析方法
第五章,结构化设计,主要介绍了如何 进行软件的体系结构设计,即总体设计
以及如何设计每一模块内部的算法及数据结构,即详细设计
并且给大家提供了两个补充材料,总体设计
案例和设计评审,以帮助大家进一步深入学习 第六章,面向对象方法。
首先介绍 UML 的概念、 术语表示及模型表达工具
然后系统地介绍了面向对象分析、 设计和编程
希望大家学会用 UML 的概念和术语 即模型表达工具,进行系统的分析和设计
第七章,敏捷开发方法,主要介绍敏捷开发的原则及目的 以及常用的极限编程、
敏捷设计,最后介绍了一种敏捷过程模型 SCRUM
第八章,软件测试的讲授,让大家了解软件测试的内涵、 目标
以及主要的软件测试技术,即白盒测试技术和黑盒测试技术
并且让大家掌握软件测试的步骤,并且
希望大家认识到,软件测试是开发高质量软件非常重要的环节
第九章,软件项目管理,主要介绍了 项目管理的目标、
体系以及项目管理的框架 通过 CMM 和 ISO9000
的介绍 让大家认识到他们在项目管理中的作用和目的
第十章,软件开发工具与环境 主要介绍了软件开发工具和环境的定义、
分类 以及在软件开发各个阶段,如何正确地选择常用的软件开发工具和环境
软件工程课的主教材是由王立福老师 主编,由北京大学出版社出版的《软件工程》第
3 版 也选择了一些重要的教学参考书供大家参考使用
其中包括 Pressman 编著的《软件工程实践者的指南》第
8 版 Sommervile 编著的《软件工程》第 9
版,这两本原著 都是比较好的软件工程教材,也为国外的很多的院校所采用
邵老师和杨老师共同编著的 《面向对象的分析和设计》也是很好的一本学习面向对象方法的书籍
施瓦尔贝所编著的《IT 项目管理》是一本经典的项目管理的书籍
由 Patton 所编著的《软件测试》第 2
版,也是比较好的一本软件测试的书籍 可以大家去浏览使用。
软件工程课程,希望大家理论联系实际 不仅掌握基本的软件工程的概念、 方法和技术,也能
将这些概念、 方法和技术,灵活地运用到实践中去 所以,在软件工程课程中,我们设立了实践环节
下面,来说明一下软件工程课程的实践环节
软件工程课程将提供三个主要的实践课题,大家可以选择一个合适的
实践课题进行相应课程的实践
要求学会运用结构化方法和面向对象方法进行系统的分析和设计
要求大家会设计软件测试计划
也要求大家学会初步的项目管理和进行项目总结
要求大家按照要求,形成详细的课程 实践文档,我们会给出一个详尽的文档的模板
在课程实践的过程中,将由老师和助教在课程论坛上进行指导和答疑
软件工程课程为大家提供了三个实践 题目,每个实践题目已经列出三点基本需求
请大家结合各自的爱好,从其中选择一个题目 并且在仔细阅读和思考的前提下
额外补充一个需求,以此作为系统的需求来进行课程的实践
实践项目一,课程评价系统 将参与者分为用户和管理员两类,共包括三点基本需求
一,管理员可以在系统中添加/删除课程,维护课程的基本信息
二,用户可以按照需求来查询课程的所有信息 并且对课程进行评价
三,系统进行必要的用户管理,如 注册、 登陆、 个人信息的维护、
接收系统通知等 实践项目二,社团管理系统 将参与者分为普通用户和社团管理员两类
共包括以下三点基本需求:一,社团管理员
可以添加/删除社团成员,发起社团活动等
二,普通用户可以查阅所有社团信息,请求加入新社团 参加所有社团活动等。
三,系统进行必要的 用户管理,如注册、 登陆、 个人信息维护、
接收系统通知等 实践项目三,在线作业管理系统 将参与者分为教师用户和学生用户两类
其中包括三点基本需求:一,教师用户可以创建新课程
发布新作业,点评学生作业,公布作业答案 二,学生用户可以选择加入课程,提交作业
查询作业成绩及教师点评,以及查看答案 三,系统进行必要的用户管理,如注册
登陆、 个人信息维护、 接收系统通知等
通过软件工程课程的学习,将让大家对 软件工程的基本概念、
方法和技术,有一个系统的了解 同时,对软件工程的基本知识结构有一个总体的把握
通过项目的实践让大家能认知到,软件 开发全过程以及项目管理的重点和难点
那么软件工程课程的学习,将为未来大家进行软件项目的开发、 管理
以及进一步进行软件工程的研究打下坚实的基础 最后,预祝大家学习愉快!