项目与软件工程师第一章课程地位•每阶段已包括:项目实战、COT课程总课时:1008C#OOPJavaScriptT-SQLJavaOOPS2350Y2344JSPS2:Java阶段项目预备课程WinFormsLogicJavaS1314S1:.NET阶段项目ASP.NETHibernateN-TierAjaxSpringStrutsHTMLC#NTCProject知识Y2:.NET毕业设计项目COTCOTCOTY2:Java毕业设计项目目标岗位标准手册本门课程目标学完本门课程后,你将:熟悉企业实际软件开发的基本流程掌握软件开发各个环节主要文档的编写预习检查常见的软件开发流程是?软件工程师有哪些职责?需求说明书包含哪些内容?本章任务完成MyKTV核心功能需求本章目标了解软件项目和软件工程师理解软件开发流程掌握描述简单业务的方法计算机的历史1946年世界第一台计算机诞生计算机发展史1946~1953年—第一代计算机电子真空管及继电器作为逻辑元件1954~1964年—第二代计算机晶体管逻辑元件和快速磁芯存储器1964~1974年—第三代计算机集成电路芯片作为逻辑元件1974~1991年—第四代计算机大规模和超大规模集成电路及半导体存储器1991~第五代计算机技术更加完善……软件发展史6-1软件的雏形-可编程硬件软件发展的5个时期早期专业服务时代早期软件产品时代独立软件时代客户大众软件时代互联网增值服务时代软件发展史6-2专业服务时代时间20世纪50年代特征政府主导,大公司认购具有专业性以数学家和电子工程师为主导SAGE防空项目,总开支80亿美元,美国程序员大约1200名,有700人为该项目工作。大系统成了程序员的大学,奠定了美国软件业至高无上的地位软件发展史6-3早期软件产品时代时间20世纪60年代特征软件产品公司出现软件和硬件一起销售晚至1970年,软件产品销售估计不超过2亿美元IBM/360,第一个稳定的行业标准计算机平台,为软件的发展奠定了基础。软件发展史6-4独立软件时代时间20世纪70年代特征软件独立于硬件定价个人电脑普及21世纪的一些软件巨头在这个时代建立软件发展史6-5客户大众软件时代时间1981~1994年特征大众市场技术主要基于个人计算机软件发展史6-6互联网增值服务时代时间1994年~特征信息共享、信息创建主要基于互联网技术SoftwareEnginer软件工程师讲叙自己的故事……软件工程师的职责熟悉业务设计模块维护会议、评审编码测试沟通表达和客户、公司的人员交流是必不可少的合作意识软件是集体的成果,需要配合责任感没有责任感的程序员不会做出好的产品规范意识讲究规范是一个程序员的基本素质学习能力学习能力是我们不断前行的力量源泉软件工程师的职业素养案例:211工程案例:小区房地产开发什么是项目?项目是一种在有限时间内努力承诺完成的一个特定的任务项目的特征项目的一次性每一个项目都是唯一的一次性是项目区别其他任务的基本特征项目目标的明确性成果性目标约束性目标资源成本的约束性每一项目都需要运用各种资源来实施资源是有限的项目的特征软件项目具有一般项目所具有的特征软件项目的目标是实现特定的软件软件项目三要素软件项目时间功能资源如何进行软件项目4-1进行房地产开发一般要经过一系列过程:提出开发设想,可行性研究,申请项目用地,项目设计……我们需要特定的方法指导软件项目的进行指导方法:软件开发模型瀑布模型快速原型模型渐增模型/演化/迭代如何进行软件项目4-2瀑布模型按工序将问题化简将功能的实现和设计分离以文档为驱动如何进行软件项目4-3快速原型模型的过程第一步是建造一个快速原型在第一步基础上开发软件产品优点减少软件需求不明确带来的开发风险关键点快速建造软件原型迅速修改原型以反映用户需求如何进行软件项目4-4渐增模型/演化/迭代的过程首先开发核心系统用户试用并提出精华系统、增强系统能力的需求实施开发的迭代过程关键点开发人员有能力把项目的产品需求分解为不同组MyKTV项目2-1案例:钱柜公司原来使用的都是传统的DVD/VCD播放音乐,不仅光盘的数量庞大,而且不宜于统一管理,现决定上一套点歌系统……案例:公司负责部门咨询了某管理咨询公司,确定项目可行,于是决定上马这个项目案例:经过紧张的招标工作,XX软件公司成为歌厅的合作伙伴,现在该公司的工程师们正和本公司的业务人员一起讨论需求……需要把会议的结果记录下来!MyKTV项目2-2业务人员A:我希望能够按歌星的名字来选歌……业务人员B:点歌不能等待太长时间,否则受不了……软件工程师A:10秒以内可接受吧?需求调研会议记录的需求是零散的,甚至矛盾的,我们需要再整理、分析,形成更科学、严谨的需求规格说明书功能性需求输入、输出、处理规则等非功能性需求性能、安全性、可维护性外部接口其它目的、范围、参考文档、术语、数字字典初识需求规格说明书教员演示:需求规格说明书详细、足以指导开发例:歌曲的字数由系统自动算出明确、无二义性例:歌曲次数可以不由用户输入以客户为中心,不能多也不能少例:提交成功后,提示“恭喜您,提交成功了”编写需求文档-基本要求中文,英语都怎么算?到底需要输入么?不需要这么细致!简洁、简单、直观的用户可以理解的语言避免使用导致含糊或者读者不清楚的主观词汇例:容易、简单、有效、快速、几个、很快避免使用计算机专业词汇例:使用业务逻辑层添加数据编写需求文档-语言规范指导—编写需求说明书训练要点:需求文档的基本要求需求文档的语言规范需求说明:根据给定的模板编写“添加歌手”和“添加歌曲”的功能性需求教师讲解需求说明指导—编写需求说明书实现思路阅读提供的需求规格说明书模板根据理解的业务填写需求完成时间:20分钟总结项目有哪些特征?瀑布模型包含哪几个阶段?软件工程师有哪些职责?软件需求包含哪些内容?作业课后作业必做教员备课时在此添加内容选做教员备课时在此添加内容提交时间:xxx提交形式:xxx预习作业背诵英文单词教员备课时在此添加内容