第一章软件工程导论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

张骥先denonji@163.com导言你们学过软件工程这门课吗?软件工程这门课是讲什么的?你们觉得软件工程这门课有意思吗?课程目的体验软件工程各阶段的主要工作,特别注意吸取教训;学会与他人合作,培养团队精神。现在开始,分组(每组3人左右)组长责任组长负责:组织、分工、控制进度;对每个组员成绩有5分浮动调整权;组长奖罚:引起过半数组员不满,改选组长;带领全组顺利完成任务,总评+5。成绩评定:课堂发言40,项目60分时间(进度)安排1-4周项目调研,工具学习5周确定各小组的项目内容6-7周需求设计演讲8-9周分析设计演讲10-11周系统设计演讲12-13周对象设计演讲10-16周编码17周测试设计及结果演讲18周系统交付,进行总结参考教材面向对象软件工程-使用UML、模式与JAVA,第三版清华大学出版社OBJECT-ORIENTEDSOFTWAREENGINEERINGUsingUML,Patterns,andJava,ThirdEdition1.1软件工程的失误iPhone4手机每年元旦闹钟失灵玉兔号故障CSDN社区的密码泄露事件软件设计、开发周期、安全…1.2什么是软件工程软件工程是一项创造性的活动软件工程是一项事物基本原理指导的活动软件工程是一项建模活动软件工程是一项实现活动1.2什么是软件工程建模对系统抽象的表示,可以了解未知的系统和领域恐龙骨骼,原始人壁画、青铜器应用域模型从用户角度去描述的系统有什么功能(功能性需求)如何操作(交互设计)性能如何(非功能性需求)界面美观吗(界面设计)解答域模型从开发者的角度去描述的系统,评估具体实现时不同的方案采用定制的硬件还是基于普通pc采用Windows还是Linux采用j2ee技术还是.netBS架构还是CS架构面向对象的方法将应用域建模和解答域建模合二为一采用UML对应用域及解答域建模,然后将其转化为具体实现一般问题求解----软件工程明确问题-----需求获取分析问题-----需求分析寻找解决方案-----系统设计选定合适的解决方案-----对象设计执行方案-----实现基本原理了解系统及其功能是不够的,还需要了解背后的原理洗手台设置高低两个位置手机上的home键IC卡电话机非常结实…….例子开发一个系统所需的必要前提市场,心理学,行为学,目标人群,专业知识等例如HP的WebOS,手机研发出来后发现运营商,应用开发者,用户观念都跟不上,而且没有一个好的盈利模式。1.3软件工程概念参与者参与到项目中的所有人员角色分配了具体职责的参与者客户---负责系统的高层需求用户---系统最终的使用者开发者---负责系统设计及开发测试人员---负责系统的测试模型在系统未完成之前对系统的各种抽象表示硬件如房屋设计图,水电布线图软件如类图,对象图,序列图,活动图系统需要完成的系统文档操作手册(可交付)规格说明(可交付)需求、分析、状态报告(内部工作产品)可运行程序(可交付)代码(可交付,内部工作产品)活动为完成某一具体目的而实施的行为,如项目中需求获取、交付产品、周例会、月例会、评审会等任务可实施、可管理的具体工作,如本周完成JPEG解码库的移植,本月完成1公里的高速公路建设资源人力设备(硬件,软件等)时间功能性需求系统必须支持功能的规格说明播放器具有在线听歌的功能相机具有实时录像的功能汽车具有ABS防抱死功能非功能性需求是对系统运行的一些约束,指导着系统如何去实现用户点击后反馈时间不得超过0.3秒界面针对25岁以下群体设计并发访问量有10万1.4软件工程开发活动需求获取分析系统设计对象设计实现测试需求获取客户和开发者定义系统目标,其结果是使用参与者和用例来描述系统,包括功能性需求和非功能性需求用例名称购买单程车票参与者旅客事件流1.旅客选择始发地和目的地2.售票系统显示价格3.旅客投入不少于价格的钱4.售票系统输出指定车票并找回多余的钱入口条件旅客站到售票系统前出口条件旅客拿到了车票和找回的钱质量需求如果系统超过一分钟没有结果则退回投入的钱分析将需求分析中产生的用例转化顺序图和状态图系统设计体系结构-选择构建系统的策略,完成软件/硬件部署图定制硬件,还是普通PC加个触摸屏Linux,WindowsJ2EE,.NETB/S,C/S模块划分-把系统分解成为单个团队可实现的较小子系统相关对象的内聚对外提供服务(接口)对象设计准确描述对象及子系统接口优化对象模型完善类图及对象图实现用面向对象语言将之前的设计实现测试单元测试(代码是否与设计相符,开发人员完成)集成测试(功能是否与需求相符,测试人员完成)1.5管理软件开发沟通最关键,最耗时的活动约定俗成:UML图,文档模板,会议记录模板,统一术语。交流:月例会,周例会,关键技术讨论配置管理代码版本维护,项目文档管理,通信系统(邮件,IME,FTP)项目管理制定计划,里程碑,阶段性验证总结1.6思考为腾讯公司设计一部手机,你怎么考虑这个问题?下列描述的基本原理是什么?公交站台要高出路面?为什么iPhone的屏幕尺寸不超过4寸,而Samsung的手机一般都超过4寸女性使用的手机设计应该考虑哪些基本原理?蓝牙耳机的通话时间不超过6个小时?下列那些是功能性需求,哪些是非功能性需求浏览器支持html5、css2及JavaScript程序开发语言使用Java点击开机键后点亮屏幕不能超过1.5秒钟下面哪些项是在需求分析或者系统设计时决定的播放器必须提供歌词同步功能播放器服务器采用J2EE架构开发播放器针对Android平台开发以前Android系统每安装新的应用时会将新安装的应用放在菜单的第一个,而现在Android系统会将新安装的图标放在菜单的最后一个,你如何看待这个问题?

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功