第一章 软件工程导论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象的方法将应用域建模和解答域建模合二为一
采用UML对应用域及解答域建模,然后将其转化为具体实现
一般问题求解
明确问题
--------
软件工程
需求获取
分析问题
寻找解决方案 选定合适的解决方案 执行方案
-----------------
需求分析
系统设计 对象设计 实现
界面针对25岁以下群体设计 并发访问量有10万
1.4 软件工程开发活动
需求获取
分析
系统设计
对象设计
实现
测试
需求获取
客户和开发者定义系统目标,其结果是使用参与者和用
例来描述系统,包括功能性需求和非功能性需求
用例名称
参与者 事件流
购买单程车票
旅客 1.旅客选择始发地和目的地 2. 售票系统显示价格 3. 旅客投入不少于价格的钱 4. 售票系统输出指定车票并找回多余的钱 旅客站到售票系统前
系统 需要完成的系统 文档 操作手册(可交付) 规格说明(可交付) 需求、分析、状态报告(内部工作产品) 可运行程序(可交付) 代码(可交付,内部工作产品)
活动
为完成某一具体目的而实施的行为,如项目中需求获取、
交付产品、周例会、月例会、评审会等
任务
可实施、可管理的具体工作,如本周完成JPEG解码库的

恐龙骨骼,原始人壁画、青铜器
应用域模型
从用户角度去描述的系统

有什么功能(功能性需求)


如何操作(交互设计)
性能如何(非功能性需求)

界面美观吗(界面设计)
解答域模型
从开发者的角度去描述的系统,评估具体实现时不同的方案

采用定制的硬件还是基于普通pc 采用Windows还是Linux 采用j2ee技术还是.net BS架构还是CS架构
1.5管理软件开发
沟通
最关键,最耗时的活动

约定俗成:UML图,文档模板,会议记录模板,统一术语。 交流:月例会,周例会,关键技术讨论
配置管理
代码版本维护,项目文档管理,通信系统(邮件,IME,
FTP)
项目管理
制定计划,里程碑,阶段性验证总结
1.6思考
为腾讯公司设计一部手源自文库,你怎么考虑这个问题?
下列描述的基本原理是什么?
公交站台要高出路面?
为什么iPhone的屏幕尺寸不超过4寸,而Samsung的手机一
般都超过4寸
女性使用的手机设计应该考虑哪些基本原理? 蓝牙耳机的通话时间不超过6个小时?
下列那些是功能性需求,哪些是非功能性需求 浏览器支持html5、css2及JavaScript 程序开发语言使用Java 点击开机键后点亮屏幕不能超过1.5秒钟 下面哪些项是在需求分析或者系统设计时决定的 播放器必须提供歌词同步功能 播放器服务器采用J2EE架构开发 播放器针对Android平台开发 以前Android系统每安装新的应用时会将新安装的应
移植,本月完成1公里的高速公路建设
资源
人力 设备(硬件,软件等) 时间
功能性需求
系统必须支持功能的规格说明

播放器具有在线听歌的功能
相机具有实时录像的功能 汽车具有ABS防抱死功能
非功能性需求
是对系统运行的一些约束,指导着系统如何去实现

用户点击后反馈时间不得超过0.3秒
模块划分-把系统分解成为单个团队可实现的较小子系


相关对象的内聚 对外提供服务(接口)
对象设计
准确描述对象及子系统接口 优化对象模型 完善类图及对象图
实现
用面向对象语言将之前的设计实现
测试
单元测试(代码是否与设计相符,开发人员完成) 集成测试(功能是否与需求相符,测试人员完成)
参考教材
面向对象软件工程-使用UML、模式与JAVA,第三版
清华大学出版社 OBJECT-ORIENTED SOFTWARE ENGINEERING Using UML,Patterns,and Java,Third Edition
1.1 软件工程的失误
iPhone 4手机每年元旦闹钟失灵
玉兔号故障 CSDN社区的密码泄露事件 软件设计、开发周期、安全…
1.2 什么是软件工程
软件工程是一项创造性的活动
软件工程是一项事物基本原理指导的活动 软件工程是一项建模活动
软件工程是一项实现活动
1.2 什么是软件工程
建模 对系统抽象的表示,可以了解未知的系统和领域
张骥先 denonji@163.com
导言
你们学过软件工程这门课吗?
软件工程这门课是讲什么的? 你们觉得软件工程这门课有意思吗?
课程目的
体验软件工程各阶段的主要工作,特别注意吸取教训;
学会与他人合作,培养团队精神。
现在开始, 分组(每组3人左右)
组长责任
组长负责:组织、分工、控制进度;
1.3软件工程概念
参与者 参与到项目中的所有人员 角色 分配了具体职责的参与者

客户---负责系统的高层需求 用户---系统最终的使用者 开发者---负责系统设计及开发 测试人员---负责系统的测试
模型 在系统未完成之前对系统的各种抽象表示

硬件如房屋设计图,水电布线图 软件如类图,对象图,序列图,活动图
基本原理
了解系统及其功能是不够的,还
需要了解背后的原理

洗手台设置高低两个位置
手机上的home键
IC卡电话机非常结实 …….
例子
开发一个系统所需的必要前提

市场,心理学,行为学,目标人群, 专业知识等

例如HP的WebOS,手机研发出来
后发现运营商,应用开发者,用户
观念都跟不上,而且没有一个好的 盈利模式。
用放在菜单的第一个,而现在Android系统会将新安 装的图标放在菜单的最后一个,你如何看待这个问题?
入口条件
出口条件
质量需求
旅客拿到了车票和找回的钱
如果系统超过一分钟没有结果则退回投入的钱
分析
将需求分析中产生的
用例转化顺序图和状
态图
系统设计 体系结构-选择构建系统的策略,完成软件/硬件部署图

定制硬件,还是普通PC加个触摸屏 Linux, Windows J2EE,.NET B/S,C/S
对每个组员成绩有 5 分浮动调整权;
组长奖罚:引起过半数组员不满,改选组长;
带领全组顺利完成任务,总评+5。
成绩评定:课堂发言40,项目60分
时间(进度)安排
1-4周 项目调研,工具学习
5周 6-7周 8-9周 10-11周 12-13周 10-16周 17周 18周
确定各小组的项目内容 需求设计演讲 分析设计演讲 系统设计演讲 对象设计演讲 编码 测试设计及结果演讲 系统交付,进行总结
相关文档
最新文档