《现代软件工程》
1、课程目标介绍——\r\n 《现代软件工程》给谁讲?
课程的四个基础\r\n(软件)系统\r\n(软件)项目\r\n(软件)过程\r\n(软件)工程\r\n\r\n动车组开始商业运行,需要什么条件\r\n同样是2分钟,银行为什么办不到?
1、课程目标介绍——\r\n 《现代软件工程》给谁讲?
课程设计的对象、目标是什么?\r\n\r\n培养成什么样的人\r\n想象为:一个产品\r\n需要接受什么样的知识\r\n想象为:我们如何做老大?\r\n\r\n软件白领的职业生涯
2、课程内容介绍——\r\n 《现代软件工程》讲什么?
以软件项目经理为对象\r\n以现代软件企业开发过程为目标\r\n\r\n软件工程:\r\n工程,想象为:一条流水线\r\n管理,想象为:一个车间主任\r\n\r\n以软件工程硕士毕业论文的要求为例
2、课程内容介绍——\r\n 《现代软件工程》讲什么
研究型论文的基本内容和要求:\r\n问题\r\n相关研究和工作\r\n我的工作与贡献\r\n模型与表述\r\n证明与验证\r\n评价\r\n研究型论文的例子
研究型论文与工程型论文的区别:
目标不同:\r\n研究:发明、创新\r\n工程:实现、效益\r\n方法不同:\r\n研究:走通了\r\n工程:做出来\r\n过程不同:\r\n只要结果(前提:目标正确)\r\n也要结果(前提:过程可靠)\r\n要求不同:\r\n创新思维\r\n过程控制
对计算机领域来说,专业活动可分为三种类型:\r\n科学研究\r\n应用技术研究与产品开发\r\n工程组织管理与技术应用\r\n越偏向“科学”抽象性越强,越偏向“工程”实践性越强。\r\n计算机科学与技术专业:特别是工科,应该重点培养科学与技术结合的适用技术和产品方面的人才\r\n软件工程专业:重点培养技术与工程应用、管理方面人才。\r\n软件工程专业相比于计算机科学与技术专业,更强调\r\n技术性:开发技术的先进性、有效性和工程化\r\n管理性:开发过程的系统性、持续稳定性和可重用性
软件工程专业和计算机科学与技术专业的区别
现代软件开发与生产过程的综合与协同特性
2、课程内容介绍——\r\n 《现代软件工程》讲什么
软件工程=软件开发 工程\r\n\r\n软件工程与其他大多工程学科相比,与人类社会有着更多、更密切的联系,所以牵涉面以及对从业者的要求也就更多。比如:\r\n在软件开发的各个阶段,如何与客户、开发团队沟通是非常关键的问题。\r\n在用户界面的设计和实现中,软件人类工程学的知识,显然又是必不可少的。\r\n对于整个项目而言,管理的水平直接影响成败。而仅仅就管理讲管理,没有在实际环境中体会,则很难收到良好的效果。\r\n\r\n所以,软件工程最终要想摆脱所谓“软件危机”,仅仅靠软件开发技术和工具,被证明是不可能的。\r\n由此,软件工程发展到“现代软件工程”
《现代软件工程》与传统软件工程
软件产品
传统软件工程讲什么?\r\n怎么确定需求\r\n怎么进行设计
怎么实现编码\r\n怎么进行测试\r\n怎么从事维护
需求分析
系统设计
编码实现
软件测试
系统维护
《现代软件工程》的特点
应用成果
基础产品
实用产品
需求
软件产品管理
软件研发管理
软件项目管理
软件过程管理
设计
实现
测试
维护
与传统软件工程比较,现代软件工程的特点是:\r\n从开发过程(需求、设计、编码、测试、维护)到产品过程、项目过程、再过程(维护过程);\r\n从传统意义的软件开发及管理,到软件合同、运作、管理,包括;基本过程、支持过程和组织过程三个方面,采购、开发、维护、运作、获取、管理、支持7大活动的软件过程工程。\r\n从侧重计算机开发技术,到以产品、开发过程和项目实施管理为重点的管理。\r\n内容非常丰富、涵盖非常广泛:一章、甚至一节就可以写一本书
《现代软件工程》为什么重要
对大家来说:\r\n 软件工程是基础和框架\r\n 有工具还不行,还需要懂得环境和过程\r\n 软件工程是主线\r\n 从产品和市场、到研发和项目管理\r\n 软件工程是核心竞争力\r\n 只会编程不行,只是低层次的软件蓝领\r\n 软件公司和软件人的价值是管理,而不是…..\r\n ——其他知识和课程都是基础、而只有《现代软件工程》是软件学院学生唯一区别与其他计算机系学生的统揽全局的强项(看家本领)
为什么《现代软件工程》非常重要
本科教育定位以技术能力培养为主,将编程与系统设计能力作为学生培养的重点。因此,重点在需求过程和设计过程的技术和方法\r\n研究生教育定位以工程实践为主,软件工程能力、系统化的开发方法的掌握和运用以及相应的组织实施管理是重点。因此,重点在以软件工程项目为目标的产品、研发和项目管理。\r\n研究生的培养定位应是高层次软件工程人才的培养,而不仅仅是本科教学的简单延伸与拓展。但是……\r\n工程实践是学生进一步认识自己、认识工作,学习人际交往与交流,学习协同工作与主动工作,提高独立学习、工作和对环境适应能力的必要环节,也是在实际项目中检验自己所学知识、提高实际工作技能的重要步骤。\r\n项目设计:强调学生的项目组织、管理和开发能力的培养,对软件工程方法类如:项目管理、软件需求分析、人机交互设计、统一建模语言、软件文档写作等课程则选用同一案例,使学生切实感受软件设计和工程规范。\r\n毕业设计:软件工程专业学生将进行十个月以上的企业项目实践,在真实的企业软件开发环境中完善职业素质和能力的培养。
本科生与研究生的区别
2、课程内容介绍——\r\n 《现代软件工程》讲什么
随着信息化的突飞猛进,软件逐渐渗透到人类社会的方方面面,从上世纪60年代开始,软件开发的标准化和工程化就成为计算机界的中心课题之一。\r\n但是,在工程界,软件工程是一个相对年轻的学科\r\n软件Software——1958年由贝尔实验室的著名统计学家John Tukey提出\r\n软件工程Software Engineering一词则是在1968年北大西洋公约组织的软件工程会议上才第一次出现。\r\nIEEE计算机协会有关软件工程的标准制定始于1976年。\r\n时至今日,软件工程学科虽然在实践指导作用的发挥上还任重道远,但是学科本身已经趋向成熟。其标志包括:\r\nISO、IEEE、SEI相关系列标准的制定完成\r\n世界众多高校已经开始开设专门的软件工程专业\r\n国际、国内都有了权威的软件工程职业鉴定和认证等等。
历史上第一次全盘地审视软件工程学科,是1970年制定IEEE 730标准。该标准对配置管理、软件测试、软件需求、软件设计以及软件验证等领域的标准都产生了影响。\r\n在20世纪80年代前五年,IEEE对软件工程标准的应用,组织了一系列研究和探讨,最终制定了IEEE 1002标准“软件工程标准的分类学”。\r\n1995年,在IEEE和美国国防部标准的基础上,形成了ISO/IEC 12207国际标准“软件生命期过程标准”,这是软件工程学科知识体系建设的一个里程碑。\r\n1993年,IEEE计算机协会和ACM共同建立了一个联合委员会,正式开始了软件工程职业实践规范的制定工作。其中,定义必需的知识体系和推荐实践成为委员会工作的第一要务,另外两个工作目标包括制定道德规范和职业标准,定义本科、研究生和继续教育的课程体系。\r\n经2002和2004二个版本的发展,IEEE和ACM的成果,是产生了软件工程知识体系指南(SWEBOK2000和SWEBOK2004)——课程依据
软件工程知识体系指南(SWEBOK2004)
工具方法
软件工具
需求工具
软件工程方法
启发式方法
形式化方法
原型方法
软件质量
质量基础
质量过程
实际考虑
设计工具
构造工具
测试工具
维护工具
配置管理工具
质量管理工具
项目管理工具
其他工具问题
《软件工程知识体系指南SWEBOK2004 》
整个知识体系分为11个知识领域(Knowledge Area,KA)\r\n前五个知识领域是按软件开发的生命期阶段(按所谓瀑布模型)排列的\r\n软件需求(又称软件分析)\r\n软件设计\r\n软件构造(即编码、实现)\r\n软件测试\r\n软件维护;\r\n后六个知识领域则是软件开发中的支撑性或者辅助性的方面,一般覆盖软件开发的多个阶段甚至所有阶段,包括:\r\n软件配置管理(SCM)、软件项目管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域\r\n每个知识领域之下又分为多个子领域,子领域又由多个主题构成
《SWEBOK2004》的知识域描述结构
《SWEBOK2004》知识域描述的结构如下: \r\n在简介中,给出知识域的简要定义、其范围的总体视图、与其它知识域的关系。\r\n 主题的结构分解组成每个知识域描述的核心,它描述了将知识域分解为子域、主题和子主题。对于每个主题或子主题,给出简要描述,然后是一篇或多篇参考文献。 \r\n选择一个参考材料主要是因为认为它构成了与主题相关的知识的最佳表述,并考虑了对选择参考文献的限制。我们使用一个矩阵来联系主题和参考材料。 \r\n知识域描述的最后一部分是推荐的参考文献列表。\r\n附录A为希望了解知识域主题更多内容的读者,列出了深入读物;\r\n附录B列出与知识域最相关的标准。\r\n注意,方括号[]中的引用表示推荐的参考文献,圆括号()中的引用表示对于编写或验证文本有用的参考文献,前者可以在对应的知识域章节中找到,后者可以在知识域的附录A中找到。 \r\n最后给出了知识域描述的简要总结和附录。
《软件工程知识体系指南SWEBOK 》
其中值得关注的是最后一个知识领域,因为此部分对应了软件工程课程建设中的基础部分和素质教育部分。\r\n 软件工程相关的知识领域包括:计算机工程、计算机科学、通用管理、数学、项目管理、质量管理、软件人类工程学和系统工程。\r\n软件工程教育知识\r\n 在SWEBOK的基础上,2004年5月定稿的、由ACM/IEEE联合工作组制定的CCSE2004 SEEK软件工程教育知识SEEK。(Software Engineering Education Knowledge),由十个知识领域组成:\r\n1、计算机基础(CMP) (172小时)\r\n2、数学和工程学基础(FND) (89小时)\r\n3、职业实践(PRF) (35小时)\r\n4、软件建模与分析(MAA) (53小时)\r\n5、软件设计(DES) (45小时)\r\n6、软件验证(VAV) (42小时)\r\n7、软件演化(EVL) (10小时)\r\n8、软件过程(PRO) (13小时)\r\n9、软件质量(QUA) (16小时)\r\n10、软件管理(MGT) (19小时)
《现代软件工程》目录大纲
理论:突出现代软件工程的新观点\r\n完整:全面覆盖SWEBOK2004\r\n综合:注重最佳实践的导向与解决方案的平衡\r\n案例:真实、实际、有参考借鉴价值
《现代软件工程》目录大纲
第一章 现代软件工程概论\r\n第二章 从市场和产品的角度理解软件开发\r\n第三章 软件项目的规划管理\r\n第四章 现代软件工程的需求过程\r\n\r\n第五章 软件体系结构与系统概要设计\r\n第六章 软件系统的构造与实现\r\n第七章 软件质量管理\r\n第八章 软件实施与维护过程\r\n第九章 软件过程改进
《现代软件工程》导读——\r\n 各章的关键与看点
第一章:概论\r\n故事:技术副总经理的选择——软件公司的困惑\r\n一个全景式的观察、历史与过去、辉煌与失败:带着问题学习\r\n全局把握的重点:做一回老板\r\n现在的战场在那里?战况如何?有什么新思想?有什么新武器?\r\n在这样的局面下,如何带队伍?
第一章 现代软件工程概论\r\n1.1 从软件到软件工程:进入一个新的境界\r\n1.1.1 软件工程:对软件的再认识\r\n1.1.2 软件危机:留给软件人长久的困惑\r\n1.1.3 生命周期:30年前的初衷与设想\r\n1.1.4 四大过程:走出危机的希望与前景\r\n1.2 生命周期:软件工程的基本思路\r\n1.2.1 软件工程的生命周期概念\r\n1.2.2 几种主要生命周期模型的分析\r\n1.2.3 统一软件过程(RUP)的生命周期模型\r\n1.3 技术与方法:软件工程的基本过程\r\n1.3.1 面向过程的技术与方法\r\n1.3.2 面向数据的技术与方法\r\n1.3.3 面向对象的技术与方法\r\n1.3.4 现代软件工程的新方法\r\n1.3.5 软件工程的开发工具与环境\r\n1.4 软件企业的现代软件工程实践\r\n1.4.1 软件生产过程的流程与工艺特性\r\n1.4.2 软件生产过程的支撑与支持特性\r\n1.4.3 软件生产过程的综合与协同特性\r\n1.4.4 现代软件工程的最佳实践与软工教学
第二章:市场与产品\r\n故事:片面听从工程师意见的后果\r\n提升你的境界、抬高你的视角\r\n做正确的产品,然后才是把产品做正确\r\n认识你的目标、敌人、友军和你自己
第二章 从市场和产品的角度理解软件开发\r\n\r\n2.1 企业战略与竞争对手分析\r\n2.1.1 企业战略决定我们为什么要做这件事\r\n2.1.2 市场分析让我们明确怎么叫做好这件事\r\n2.1.3 软件产品开发与企业核心竞争力的关系\r\n2.1.4 组织架构是企业战略有效落实的保证\r\n\r\n2.2 行业软件产品的市场营销特点\r\n2.2.1 市场营销为产品研发和项目实施提供导向\r\n2.2.2 方案销售是软件市场与产品营销的典型特点\r\n2.2.3 行业软件的销售过程、销售管理与部门配合\r\n2.2.4 销售部门的职能与销售经理的主要工作内容\r\n\r\n2.3 现代软件工程下的产品开发与管理\r\n2.3.1 软件产品管理与产品经理的作用\r\n2.3.2 产品经理面向市场的软件产品管理\r\n2.3.3 产品经理面向开发的软件产品管理\r\n2.3.4 现代软件工程概念下的软件研发管理
第三章:用项目管理方法控制软件开发过程\r\n故事:失败项目的窘境\r\n软件项目怎样才能不失败?\r\n如何在预定的时间、成本、质量要求下完成项目?\r\n怎么让用户、公司、项目团队都满意?\r\n如何激励项目团队、如何规避风险?\r\n项目管理可以帮你做到这些要求
第三章 软件项目的规划管理\r\n3.1 项目与项目管理的基本概念\r\n3.1.1 项目的概念与项目的属性\r\n3.1.2 项目的范畴要素\r\n3.1.3 项目管理的概念\r\n3.1.4项目生命周期的任务\r\n3.1.5 项目的组织结构与项目经理\r\n3.1.6 项目管理知识体系PMBOK\r\n3.2 软件项目的范围管理\r\n3.3软件项目的时间管理\r\n3.3.1 PMBOK的时间管理概念\r\n3.3.2 PMBOK的时间管理过程\r\n3.3.3 选择合适的软件项目生命周期模型\r\n3.3.4 软件项目工作分解结构WBS\r\n3.3.5 对工作包进行工作描述\r\n3.3.6 编制工作责任矩阵\r\n3.3.7 软件项目的规模、工作量和进度估算\r\n3.3.8 项目进度计划的编制\r\n3.3.9 项目进度计划的变更管理\r\n3.4 软件项目的成本管理\r\n3.4.1 PMEBOK的成本管理概念\r\n3.4.2 PMBOK的成本管理过程\r\n3.4.3 软件项目资源计划的确定\r\n3.4.4 软件项目成本估算与预算\r\n3.4.5 软件项目成本控制
第四章:需求过程\r\n\r\n故事:鉴别是作坊还是规范开发的方法\r\n传统需求分析的思路\r\n需求过程与需求工程的技术和方法\r\n需求的控制与管理\r\n需求管理在整个现代软件工程中的龙头作用
第四章 现代软件工程的需求过程\r\n\r\n4.1 从需求分析到需求过程\r\n4.1.1 需求分析与需求工程的概念\r\n4.1.2 需求分析与需求工程的比较\r\n4.2 问题定义阶段的目标与任务\r\n4.2.1 问题定义的目标要点\r\n4.2.2 问题定义阶段的过程\r\n4.3 传统软件工程的需求分析方法\r\n4.3.1 传统软件工程需求分析的任务\r\n4.3.2 传统软件工程需求分析的过程\r\n4.3.3 传统软件工程的需求建模方法\r\n4.4 面向对象的需求分析方法\r\n4.4.1 面向过程与面向对象\r\n4.4.2 面向对象的概念回顾\r\n4.4.3 面向对象的分析建模\r\n4.5 基于UML的需求分析方法\r\n4.5.1 UML方法的要点概述\r\n4.5.2 需求获取与UML用例建模\r\n4.5.3 需求分析阶段的目标与要求\r\n4.5.4 基于UML的类与对象建模\r\n4.5.5 基于UML的动态建模\r\n4.5.6 基于UML的体系结构建模
4.6 需求工程与需求管理的实现\r\n4.6.1 现代需求管理的发展\r\n4.6.2 需求的开发过程与管理\r\n4.6.3 需求的实现过程与管理\r\n4.6.4 需求的变更控制与管理\r\n4.7 需求开发过程的案例分析
第五章:体系结构与概要设计\r\n理解什么是系统?\r\n了解系统设计的基本方法和过程
第五章 软件体系结构与系统概要设计\r\n5.1 体系结构的基本问题\r\n5.1.1 复杂系统与体系结构\r\n5.1.2 体系结构的基本概念\r\n5.1.3 传统体系结构的基本方法\r\n5.1.4 抽象与求精的设计理念\r\n5.1.5 模块偶合与内聚的追求\r\n5.2 软件系统的框架与体系结构\r\n5.2.1 现代体系结构模型的基本概念\r\n5.2.2 二类典型的体系结构模型分析\r\n5.2.3 其他经典软件系统体系结构\r\n5.2.4 案例分析:\r\n5.3 面向对象的设计模式\r\n5.3.1 从体系结构到设计模式\r\n5.3.2 创建型模式\r\n5.3.3 结构型模式\r\n5.3.4 行为型模式\r\n5.3.5 设计模式的实际作用
5.4 MVC结构与用户界面设计\r\n5.4.1 界面设计的可变需求\r\n5.4.2 MVC的结构\r\n5.4.3 MVC的实现\r\n5.4.4 MVC的更进一步发展\r\n5.4.5 MVC的变化与评价\r\n5.4.6 Struts:一个基于MVC的实现框架\r\n5.4.7 表示层实现的发展与比较\r\n5.5 基于组件的软件体系结构\r\n5.5.1 组件的概念\r\n5.5.2 三种主要组件模型的特点\r\n5.5.3 基于组件的框架与体系结构\r\n5.6 从需求分析到系统概要设计过程\r\n5.6.1 系统概要设计的任务与要求\r\n5.6.2 面向结构的系统设计方法\r\n5.6.3 面向对象的系统设计方法\r\n5.6.4 软件系统设计规范与管理
第六章:构造与实现\r\n\r\n相对简单\r\n重点是软件重用
第六章 软件系统的构造与实现\r\n\r\n6.1 结构化程序的详细设计与实现\r\n6.1.1 详细设计的目标与任务\r\n6.1.2 传统详细设计的技术与工具\r\n6.1.3 面向数据结构的详细设计方法\r\n6.1.4 结构化程序的软件实现\r\n6.2 面向对象的系统详细设计与实现\r\n6.2.1 面向对象的详细设计任务和原则\r\n6.2.2 面向对象软件的详细设计与方法\r\n6.3 基于重用技术的软件实现\r\n6.3.1 软件重用的概念与意义\r\n6.3.2 软件重用技术的发展状况\r\n6.3.3 软件重用的形式与途径\r\n6.3.4 面向对象的代码重用实现\r\n6.3.5 重用存在的问题及解决途径
第七章:软件质量\r\n故事:用户为什么不肯付钱?\r\n质量经理天天看什么——什么是软件的质量?\r\n软件测试与软件评审:测试与评审的误区\r\n可靠性过程:大楼不是一天堆起来的\r\n配置管理:软件工业化生产的流水线\r\n做好组织保证
第七章 软件质量管理\r\n7.1 软件质量的要素与度量\r\n7.1.1 软件质量的概念\r\n7.1.2 软件质量的评价\r\n7.1.3 软件质量的度量\r\n7.1.4 软件质量度量的实施\r\n7.2 软件测试活动的组织与管理\r\n7.2.1 软件测试的一般概述\r\n7.2.2 测试的阶段与方法\r\n7.2.3 测试类型\r\n7.2.4 测试计划\r\n7.2.5 测试组织\r\n7.3 软件评审活动的组织与管理\r\n7.3.1 审查准备\r\n7.3.2 审查过程\r\n7.3.3 需求审查\r\n7.3.4 设计审查\r\n7.3.5 代码审查\r\n7.3.6 测试审查\r\n7.4 软件系统的可靠性工程\r\n7.4.1 软件可靠性的定义\r\n7.4.2 软件的可靠性设计\r\n7.4.3 基于软件测试的可靠性分析\r\n7.4.4 提高软件可靠性的方法和技术
7.5 软件配置管理的方法与实践\r\n7.5.1 软件配置及其管理的概念\r\n7.5.2 主要配置管理活动和流程\r\n7.5.3 基本配置管理项的配置管理\r\n7.5.4 版本管理\r\n7.5.5 变更管理\r\n7.5.6 配置状态监测、报告与评审\r\n7.5.7 基于配置管理的软件项目管理\r\n7.6 软件组织的质量管理过程\r\n7.6.1 ISO9000质量管理体系\r\n7.6.2 PMBOK的质量管理过程\r\n7.6.3 CMM/CMMI的质量保证关键域
第八章:实施过程\r\n\r\n故事:实施是个苦差事\r\n软件开发的实施过程\r\n项目管理的实施过程\r\n软件维护与控制\r\n项目后评审
第八章 软件实施与维护过程与管理\r\n\r\n8.1 软件的现场实施过程与控制\r\n8.1.1 软件实施过程的概念\r\n8.1.2 软件系统的现场实施过程\r\n8.1.3 现场项目实施的案例介绍\r\n8.2 实施阶段的软件项目管理\r\n8.2.1 项目团队建设与团队激励\r\n8.2.2 项目沟通与协调\r\n8.2.3 软件项目风险管理\r\n8.2.4 软件外包与采购管理\r\n8.2.5 项目综合控制与管理\r\n8.3 软件维护过程与控制\r\n8.3.1 软件维护的概念\r\n8.3.2 软件维护的过程\r\n8.3.3 维护活动的副作用\r\n8.3.4 提高软件的可维护性\r\n8.4 项目实施后的评审与评价\r\n8.4.1 项目后评审的过程概述\r\n8.4.2 项目后评审的案例介绍
第九章:过程改进\r\n最后的总结与回顾\r\n什么是软件过程?\r\n从最简单的软件过程开始\r\nCMM与RUP\r\n另类的软件过程
第九章 软件过程改进\r\n9.1 软件过程概念与过程改进的基本问题\r\n9.1.1 过程与软件过程的概念\r\n9.1.2 过程改进的原则与策略\r\n9.2 软件过程的起步:个人软件过程PSP\r\n9.2.1 PSP的产生\r\n9.2.2 PSP与CMM\r\n9.2.3 PSP的成熟度过程\r\n9.2.4 PSP的主要内容\r\n9.2.5 PSP与TSP过程\r\n9.2.6 PSP、TSP的应用及效果\r\n9.3 软件过程改进的重大成果:CMM/CMMI\r\n9.3.1 CMM/CMMI的过程改进思想\r\n9.3.2 CMM/CMMI的基本内容\r\n9.2.3 CMM/CMMI的实施过程\r\n9.3.4 CMM与现代软件工程实践\r\n9.4 软件过程的实现平台:RUP的统一开发过程\r\n9.4.1 RUP的框架与基本过程\r\n9.4.2 RUP的迭代开发原理\r\n9.4.3 RUP的9个核心工作流\r\n9.4.4 RUP的4个生命周期阶段\r\n9.4.4 RUP的裁减原理与过程\r\n9.5 其他另类软件过程探讨\r\n9.5.1 极限编程(XP)与敏捷软件过程\r\n9.5.2 开源软件(OSS)的得与失
理论:着重要点——导读型\r\n参考书:\r\n《软件工程导论》张海潘(清华大学出版社)\r\n《软件工程概论》郑人杰等(清华大学出版社)\r\n《软件工程应用实践教程》吴洁明、袁山龙(清华大学出版社)\r\n《实用软件工程》赵池龙(电子工业出版社)\r\n《软件工程》江开耀等(西安电子科技大学出版社)\r\n《软件工程基础教程》方志刚(科学出版社)\r\n《现代软件工程》孙涌(北京希望电子出版社)\r\n《软件工程技术概论》朱三元等(科学出版社)\r\n《软件工程教程》张毅等(北航出版社)\r\n《软件工程-实践者的研究方法》(美)Rogor.S.Pressman著梅宏译(机械工业出版社)\r\n《软件工程与软件测试与自动化教程》张克东、庄燕滨(电子工业出版社)
教学计划
参考书(续):\r\n《现代软件工程》(上中下)周之英(科学技术出版社)2001\r\n《软件工程规范》(美)Watts. S.Humphrey著,傅为、苏俊、许青松译(清华大学出版社)2004\r\n《现代软件工程》陈松乔、任胜兵、王国军编著(清华大学出版社)2004\r\n《软件工程过程》(加)Pierre N. Robillard等著,施平安译(清华大学出版社)2003\r\n《软件需求管理用例方法》(美)Dean Leffingwell等著,蒋慧译(中国电力出版社)2004\r\n《掌握需求过程》(英)Suzanne Robertson等著,王海鹏译(人民邮电出版社)2003\r\n《软件产品线实践与模式》(美)Paul Clements等著,张莉、王雷译(清华大学出版社)2004\r\n《可交付软件产品管理》(美)John W. Rittinghouse著,罗强一、张红旭译(电子工业出版社)2004\r\n《软件体系结构的原理、组成与应用》万建成、卢雷编著(科学出版社)2002\r\n《软件项目管理》张家浩编著(机械工业出版社)2005\r\n《现代软件工程》张家浩编著(机械工业出版社)2008.9\r\n《统一软件过程(美GEORGES G. MERX 及 RONALD J.NORMAN著)》张家浩译(机械工业出版社)2008.12
(一)选择最主要的参考书:\r\n 《软件工程-实践者的研究方法》\r\n(美)Rogor.S.Pressman著\r\n 梅宏译(机械工业出版社)\r\n 以后每章会给出重点参考书目\r\n (二)再温习一下已经学过的\r\n 知识:\r\n 程序设计基础及语言\r\n 数据库设计与应用\r\n 面向对象的程序设计\r\n(三)最主要的知识基础:面向对象的有关知识
我们要做的准备
了解现代软件工程的一个完整过程\r\n知道现代软件工程的一些主要关注点和看法\r\n掌握主要的工具和方法\r\n自己模拟走过一遍软件开发过程、通过亲自参与,真实体验软件开发项目的全过程 \r\n\r\n你能学到什么:\r\n\r\n项目选择和可行性分析——自己找课题、把握可行性\r\n需求——在不确定中确定自己的需求\r\n系统设计——一个好的系统结构是如何产生的\r\n编码与测试——工作量不是主要的\r\n阶段评审——如何掌握标准、规范以及如何用它来控制过程\r\n项目控制——做一个不随波逐流的开发经理\r\n项目团队——学习合作和自我管理\r\n\r\n不要背概念,而需要感悟、需要思考
课程要求
时间少、经验多\r\n 理论少、方法多\r\n 少一点空洞的概念\r\n 多一点实际的探讨\r\n\r\n切蛋糕的例子\r\n\r\n走钢丝的例子
在职学生的特点
时间多、经验少\r\n 理论多、方法少\r\n 都是空洞的概念\r\n 没一点实际的感受\r\n\r\n那怎么办?
本科学生的特点
课程进度安排
考核办法
平时成绩30% \r\n作业\r\n课堂提问\r\n出勤率\r\n\r\n期末考试成绩(笔试、开卷)70%
张家浩 (zhjh@seu.edu.cn)\r\n教授级高工、软件学院软件工程教研室主任\r\n\r\n1982年2月南京大学计算机系软件专业本科毕业、97年南理工计算机工程硕士。\r\n研究方向:软件工程、软件项目管理。\r\n1983年-85年日本东京软件咨询公司(SCC)研修《软件工程》2年。1996年赴美国INTEL公司学习。\r\n03年获国际项目管理协会专业资质(IPMP)B级认证\r\n2005年2月已出版编著《软件项目管理》、《现代软件工程》 \r\n翻译《统一软件过程(美GEORGES G. MERX 及 RONALD J.NORMAN著)》