软件工程第一章概述.ppt
软 件 工 程Software Engineering第1讲:概述和教学大纲,主讲人:阳王东Email:,个人介绍,计算机硕士,副教授,系统分析师,NCCF理事。研究方向:软件工程、信息集成和信息安全。项目经 历:常德养老金社会化发放系统岳阳华能电厂医疗保险管理系统中国网上教育平台常德交通信息集成平台北京交通地理信息基础平台吉林移动客户关系管理系统长沙路桥收费征管系统校园一卡通系统张家界电子门票系统地税系统综合办公与考核系统,本讲内容,软件及软件工程的基本概念教学大纲介绍,软件及软件工程概念,什么是软件什么是软件开发过程,什么是软件(software),程序(program)系统(system)产品(product)服务(service)云(Cloud),软件的演化,软件规模越来越大参与软件开发的人员越来越多使用软件的用户的越来越广泛使用软件的地方越来越普遍,云计算,软件危机,两个定律摩尔定律:每隔18个月,CPU频率翻一番银弹定律:每隔十年,软件的生产效率提高一倍软件危机软件开发效率低开发出来的软件质量差软件危机产生的本质软件的易变性,软件危机的症状,软件开发的不透明性(opaque)软件开发进度难以界定(process)软件质量难以保证(quality)软件成本难以控制(cost)软件开发过多依赖开发人员(individual),解决软件危机的银弹,CMM:初始级、可重复级、已定义级、已管理级、优化级ISO9000:过程就是质量软件工程:分阶段按照固定程序和模式实现软件开发美国项目管理知识体系(PMI):全方位管理和全质量控制,什么软件工程,建筑工程的思想与方法引入到软件开发中把系统化、规范化、可度量的途径工程化应用于软件开发的过程中。在规定的成本和时间内实现软件的目标1983年国际权威机构IEEE给软件工程下的定义是:“软件工程是开发、运行、维护和修复软件的系统方法”。,软件工程模型,软件工程是一种方法、技术、过程和管理。,过程,管理,方法,技术,软件工程方法学,工程方法结构化方法面向对象方法SOA方法形式化方法工具分析设计工具数据库建模工具文档工具项目管理工具,使用工具,Rational RosePowerDesignerERwinVisioWordProject一种主流的开发工具(VC+/VB/Jbuilder/Eclipse/VS.net/Delphi),软件工程技术,分布式开发技术构件技术软件集成技术编程技术数据库开发技术中间件技术,软件开发过程,传统的开发过程需求分析、软件设计、编码、测试RUP过程初始化、构造、细化、交付敏捷开发过程极限编程(XP)测试驱动模型(TDM),软件工程管理,软件工程是管理与技术相结合的学科技术是成功的基础管理是成功的保障管理的理念管人与管事基于结果的管理模式基于过程的管理模式,软件工程管理实践,计划和任务安排(plan)跟踪和检查(track&review)评价和考核(access&audit)团队建设(team),学习软件工程的目的,软件工程总目标:在规定的时间内,把费用控制预算范围内,开发出满足客户需要的软件。学习目标:学习如何了解和掌握客户软件需求的方法;学习如何根据客户需求来设计一个软件结构;学习软件开发中要用到的哪些技术;学习如何检查和评价一个软件的好坏;学习如何组织一个软件开发团队进行软件开发工作。,学习软件工程要明白的道理,好的过程才能出好的软件好的设计才能有好的软件好的程序在于清晰易懂,而不是复杂高深好的测试是为了避免犯常规性错误好的软件是带来了价值,学习软件工程需要的基础,掌握一门程序设计语言,最好是面向对象的语言。熟悉数据结构和计算机算法会用一种数据库管理系统会使用WORD,参考书籍,布诺克斯:人月神话Roger S.Pressman:软件工程-实践者的研究方法林锐:软件工程思想软件工程知识体系指南阎宏:Java设计模式Thinking in C+/JavaRobert CMartin:敏捷软件开发原则、模式与实践 阳王东:软件项目管理方法与实践,教学计划,需求分析(12H)结构化需求分析面向对象需求分析设计(16H)结构化设计面向对象设计实现(2H)软件测试(2H)软件维护(2H)软件项目管理(2H),课后作业,写一篇文章,描述你熟悉的一个软件公司的历史、现状、业务领域、主要产品和市场,最后对其进行评价,对其发展进行设想。作业提交方式:必须手写,打印无效。提交时间:第二周。,