1、软件工程方法学与软件项目过程概述,讲座学习目标,了解软件工程产生背景和必要性 了解软件工程的要素 了解软件工程的方法学 了解软件过程与软件开发流程 体会软件工程的意义,第一部分 前言 第二部分 软件工程方法学 第三部分 软件过程,讲座内容,第一部分 前言,“软件”“工程”的概念,建筑工程需求、勘探、计划、分析、设计、施工、监理、竣工、验收、维护 软件工程需求、分析、设计、规范、实现、测试部署、维护,软件工程的几个问题,软件开发过程有哪几种参与角色 角色之间如何进行沟通和交流? 软件开发过程中为什么要V? 测试有哪几种类型? V和测试的区别,系统架构师,项目经理,开发人员,测试人员,解决方案 架
2、构师,客户,软件开发生命周期的角色,项目对比,开发一个屏幕打印出“HELLO WORLD!”的软件系统 开发一套公司内部员工信息管理系统 开发一套印刷行业OA系统,软件工程产生背景,50年代60年代的大部分时间里,计算机领域存在的主要是硬件工程。 60年代末70年代,出现了“软件危机”,在1967年与德国召开了会议上确立了软件工程的学科。,软件工程的要素,方法软件工程方法为软件工程提供了 “如何做” 、“如何管”、”如何满足质量“的技术 工具软件工具为软件工程方法提供了自动的或半自动的软件支撑环境 过程方法使用的顺序要求交付的文档资料为保证质量和适应变化所需要的管理软件开发各个阶段完成的里程碑
3、,小结,软件工程是为了确保不同角色通过分工协作,在可控的成本和周期内,满足一个质量基线要求,实现客户所需要的软件的涉及软件开发方法学、管理学等学科的交叉学科,第二部分 软件工程方法学概述,软件工程方法学-关键问题,需求阶段:什么是客户的上下文?要达到什么目的? 分析阶段:要处理什么实体?如何确保有正确的实体? 系统设计阶段:如何解决问题?在完成的系统中需要什么硬件和软件 子系统设计阶段:如何实现解决方案?源代码和支持文件有哪些? 规范阶段:哪些规则控制着系统组件之间的接口可以去除模糊,确保正确吗?,实现阶段:如何编写组件,符合规范的要求?如何编写漂亮代码? 测试阶段:完成的系统满足要求吗?可以
4、攻破系统吗? 部署阶段:系统管理员必须作什么?如何培训最终用户? 维护阶段:可以找出和更正错误吗?可以改进系统吗?,1.瀑布方法学,可行性研究与计划,需求分析,设计,规范,运行维护,部署,开 发 阶 段,维护阶段,定义 阶段,编码,测试,2.螺旋式方法学,设计,规范,需求,测试,分析,实现,产品维护项目,产品增强项目,新产品开发项目,概念开发项目,规范,实现,设计,测试,分析,需求,部署,维护,3.迭代式方法学,4.递增式方法学,发布,时间,1.0,1.1,2.0,2.1,4.合并方法学,发布,时间,1.0,1.1,2.0,2.1,4.面向对象方法学,以对象为中心,结合了螺旋式、迭代式和递增式
5、最佳部分方法一门方法学。 是一门可以由开发者自由合理定制每个阶段实施方法的方法学,小结,(1) 方法学的目的是:使后人分享前人的成功,避开前人的失败,把注意力集中在尚未 开拓领域的创造性劳动上。所以方法学与开发人员的创造性是绝不冲突的。它既不能像法律那样靠权威来界定是非边界,也不能像定律那样通过证明和推理给出普遍结论。如果 一定要做比喻的话,它好比人的世界观。 (2) 没有放之四海而皆准的方法学,任何方法学都有其局限性,所以软件开发人员大可不必拘泥于某种特定的方法学。(3) 事实表明,由 OOP 带动的 OOSE 方法确实比结构化方法更能自然地抽象现实世界,而且一些 OOP 工具确实已相当成熟
6、。相反,结构化方法及开放平台下的结构化程序开发工具,虽然不能说止步不前,但其近年来的进步是有限的。,架构设计示例,简介(二层结构),简介(二层结构遇到的障碍),客户端的扩展性差 不够模块化, 维护、升级困难 业务逻辑在客户端 对安全性/业务变化的管理能力差 关系数据库系统间的互联性差,没有交易处理 单一服务器,以局域网为中心 不足以扩展到广域网及Internet,简介(结构的转变二层结构到三层结构),三层客户机/服务器结构,简介(三层结构),简介(两层三层比较),没有交易中间件,简介(三层结构的优势),处理能力高 卓越的扩展能力 应用可管理性强 更高的可靠性 应用的开发、升级、周期短 支持In
7、ternet,三层客户机/服务器结构,软件过程概述,软件过程,项目管理过程,各个子过程的关系,PDCA,项目启动过程,项目策划过程,项目经理,SQA,高层经理,配置管理员,开发人员,测试人员,需求分析人员,客户经理,验收测试负责人,开发经理,典型的项目组织结构,项目跟踪与监控过程,项目结项过程,工程过程,各子过程的关系,需求过程,需求过程,工具 MS Office Rational Rose分析方法 结构化数据流图、实体关系图 面向对象用例,需求管理过程,需求管理过程,方法与工具 需求管理矩阵 Rational RequisitePro Rational Clearquest,分析与设计过程,
8、方法与工具 Visio Rational Rose PowerDesigner 数据库 Oracle SQL Server ,软件设计文档,数据库设计文档,实现过程,方法与工具 语言工具 VA For Java WSAD VC+ VB PB Delphi ASP+ C# VB.NET Jscript.NET 单元测试工具 Junit Xunit CCunit Rational Clearquest(BUG跟踪),测试过程,方法与工具 Rational Robot Rational Clearquest,同级评审过程,同级评审过程,支持过程,配置管理 质量保证 度量分析 缺陷预防,配置管理,方法与工具 Rational Clearquest MS SourceSafe CVS,质量保证,方法与工具 MS Project2003 MS Office NC问题处理工具 项目示例 SQA计划 UFE-MIS-SQA评审、审核记录表 UFE-MIS-不符合问题跟踪记录表 UFE-MIS SQA工作报告,度量分析,方法与工具 MS Excel 示例 项目度量分析报告 过程数据库和过程能力基线,缺陷预防,方法与工具 鱼骨图 柏拉图 Excel Clearquest,