软件工程-信息学院复习课件_第1页
软件工程-信息学院复习课件_第2页
软件工程-信息学院复习课件_第3页
软件工程-信息学院复习课件_第4页
软件工程-信息学院复习课件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程复习东北大学信息科学与工程学院 高岩College of Information Science & Engineering, NEU, E-Mail: gaoyan_,gaoyan_1复习资料课件PPT本复习PPT教材教材P186模拟测试题2课程总体概览非重点重点3总体要求软件开发各阶段所使用的图中的各种图形表示软件开发各阶段的主要任务重点在于需求分析和系统设计两个阶段41 软件工程概述软件工程产生原因在软件危机背景下产生,为解决“软件危机”软件工程概念软件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉

2、及到软件过程、项目管理、开发方法、软件复用、软件度量、开发工具,甚至企业文化等各个方面52 过程和活动软件开发过程黑箱软件开发过程不像硬件制造过程那样直观、明确人的因素需求变更因素72 过程和活动软件开发过程中(黑箱中)包含的活动基础活动问题定义,需求,规约,设计,实现,软件验证,集成,测试,软件演进/维护,退役辅助性活动软件项目跟踪和控制,正式的技术复审,软件质量保证,软件配置管理,文档编制,复用管理,度量,风险管理,82 过程和活动需求分析确定“做什么、不做什么、做到什么程度”需求:以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合需求工程:指应用已证

3、实有效的原理、方法,通过合适的工具和记号,系统地描述出待开发系统及其行为特征和相关约束;通常是一些过程的集合:需求获取(需求引出)、需求分析和编写软件规格说明书(SRS)及验证(包括鉴定和证实)102 过程和活动需求分析功能性需求描述了系统应该做什么,即具备的功能或服务。(输入、输出和计算等)非功能性需求 描述了系统必须遵守的约束条件。(响应时间、吞吐量 、可靠性、可移植性、可扩展性、易用性、安全性、资源要求、可复用性、技术要求、文化和政策需求、法律需求、道德要求、隐私要求,等等)112 过程和活动需求分析描述需求的标准是完整的、正确的、必要的、无歧义的、可行的、可验证的、可追踪的以及被设置了

4、优先级别的122 过程和活动实施编码:是将软件设计结果转换成用某种程序设计语言书写的程序。单元测试:是把一个模块作为独立的程序单元进行测试,以保证它能够正确执行规定的功能。 集成:是指将单独的软件构件合并成一个整体的软件系统。集成分为集成子系统和集成系统两个级别142 过程和活动测试测试:是选择适当的测试用例执行被测程序的过程,其目的在于发现程序错误。 缺陷:是系统任一方面(包括需求、设计或代码)的缺点。该缺点会促成或潜在的促成一个或多个失败发生。错误:是指程序中的缺陷所产生的不正确结果。失败:当一个程序不能运行或者其表现不可被接受时称为失败。失败是系统执行中出现的情况。失败源于代码缺陷。单元

5、测试、集成测试、系统测试、(alpha)、(Beta)、验收测试153 软件过程模型如何组织这些活动?173 软件过程模型经典模型线性顺序模型瀑布模型V 模型国防部模型RAD 模型循环(圆形)模型 原型模型边建边改模型增量模型螺旋模型并发模型XP模型RUP模型CBD Assembly Model(构件组装模型)形式化方法模型IDEAL模型183 软件过程模型不好的模型线性顺序模型瀑布模型V模型DoD模型环形模型边建边改模型193 软件过程模型推荐使用的模型RUP模型增量模型螺旋模型XP模型203 软件过程模型RUP(Rational Unified Process) Model213 软件过程

6、模型过程模型的选择RUP适用与任何情况螺旋模型适用于风险较高情况增量模型适用于不断向用户交付产品情况XP模型适用于10人以下小组开发,并且客户随时参与情况RAD模型和构件组装模型适用于有许多复用资源情况225 需求分析方法需求分析确定“做什么、不做什么、做到什么程度”需求包括两大类:功能性需求非功能性需求 245 需求分析方法分析原则循序渐进自顶向下,逐层分解少涉实现定义需求属性可验证性可追踪性 255 需求分析方法可验证性示例系统响应速度足够快验收标准:在90%情况下,响应时间不超过3秒,其它情况不超过10秒系统应具有高应可靠性验收标准:在该产品运行的3个月内,未发生崩溃或死机现象系统应界面

7、友好验收标准:管理员经3日培训即可掌握系统使用275 需求分析方法传统分析模型285 需求分析方法传统分析模型功能建模数据流程图(Data Flow Diagram, DFD)行为建模状态变迁图(State-Transition Diagram, STD)Petri网数据建模:E-R图数据字典判定表和判定树295 需求分析方法传统分析模型-数据流程图是一个分层的概念模型目的指明数据在系统中移动时如何被变换描述对数据流进行变换的功能(和子功能)3个层次:总体图,零级图,细节图305 需求分析方法传统分析模型-数据流程图数据流程图的分层表示315 需求分析方法传统分析模型-行为建模状态变迁图Pet

8、ri网325 需求分析方法面向对象分析模型335 需求分析方法面向对象分析模型用例建模描述功能,使用用例图及用例描述CRC建模对象-关系建模类图对象-行为建模时序图、活动图等345 需求分析方法面向对象分析模型-用例图用例是系统、子系统或类和外部的参与者(Actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列参与者是在系统之外,透过系统边界与系统进行有意义交互的任何事物,包括人、设备和外部系统等355 需求分析方法面向对象分析模型-用例图图例参与者用例参与者与用例之间的关联365 需求分析方法面向对象分析模型-用例图参与者之间的关系仅有泛化关系泛化关系375 需求分析方法面

9、向对象分析模型-用例图用例之间关系泛化包含扩展385 需求分析方法面向对象分析模型-用例图用例之间关系泛化395 需求分析方法面向对象分析模型-用例图用例之间关系包含405 需求分析方法面向对象分析模型-用例图用例之间关系扩展415 需求分析方法面向对象分析模型-CRC建模实际上是一组表示类的标准的索引卡片集合卡片的顶部:类的名字、类型和特征卡片的左边:列出类的责任,卡片的右边:列出协作者425 需求分析方法面向对象分析模型-对象-关系建模识别出系统的候选类,分析这些类之间的关系,以类图形式展现,可由CRC卡片导出类间关系类型泛化(Generalization)关系关联(Association

10、)关系 聚集(Aggregation)和合成(Composition)关系依赖(Dependency)关系435 需求分析方法面向对象分析模型-对象-关系模型泛化(Generalization)关系由一个超类和几个直接子类构成的两层结构改造为445 需求分析方法面向对象分析模型-对象-关系模型泛化(Generalization)关系利用开闭原则,使用玩家-角色模式,可进一步改造为:进一步改造为455 需求分析方法面向对象分析模型-对象-关系模型关联(Association)关系是模型元素间的一种语义联系465 需求分析方法面向对象分析模型-对象-关系模型聚集(Aggregation)关系是一种

11、特殊的关联,表示类与类之间整体与部分的关系475 需求分析方法面向对象分析模型-对象-关系模型合成(Composition)关系是一种强聚集,组合关系中的类具有相同的生存期485 需求分析方法面向对象分析模型-对象-关系模型依赖(Dependency)关系是类与类之间较弱的关系一个类向另一个类发送消息一个类是另一个类的某个或某些操作的数据成员类型一个类是另一个类的操作的参数类型495 需求分析方法面向对象分析模型-对象-行为模型时序图506 软件设计方法是在系统的约束条件下(如预算、时间、人力资源、用户软、硬件环境和用户对系统的操作能力等),为了实现系统的功能性需求和非功能性需求,而找到并描述

12、的一种遵循高质量的通用原则的方法,其交付文档能够指导开发人员实现系统。分为总体设计(概要设计、架构设计)和详细设计516 软件设计方法设计的总体原则不应陷入片面性 追踪分析模型 选择合适的技术 适度分解可集成提高抽象层次可复用 可维护和可扩展的有韧性 一致性交互界面应该友好 设计评审 526 软件设计方法软件构架反映系统整体的组织结构和基本特征软件的层次结构模块相互作用的方式全局的、重要的数据变量和数据结构数据库的逻辑结构接口536 软件设计方法详细设计在软件构架的基础上进一步确定如何实现目标系统,具体包括系统的模块(如类及其方法)逻辑的详细设计、系统数据结构的设计、系统数据库结构的设计、系统

13、人-机接口的设计等546 软件设计方法分治思想分治概念:将一个大的系统分解为一系列小模块的过程和方法,是软件工程最重要的思想之一分治不能无限分解556 软件设计方法分治思想分治不能无限分解软件开发成本随模块数量增加变小,但将模块组装起来的集成成本将随模块数量增加变大,软件总成本为两个成本之和模块成本和集成成本两个曲线的交汇点M代表了最低软件总成本,应尽量使系统划分的模块数量在M点所在的邻域内,即最小成本邻域566 软件设计方法抽象思想开闭原则(Open-Closed Principle)即一个软件实体应当对扩展开放,对修改关闭576 软件设计方法抽象思想面向对象软件工程中的抽象抽象类586 软

14、件设计方法抽象思想面向对象软件工程中的抽象接口:接口隔离原则使用接口实现接口596 软件设计方法内聚是一个模块内部各部件之间联系紧密程度的度量强调分解时将相关的内容放到一起 一个模块内的各个部件联系越紧越好耦合是模块间相互联系强弱的度量 耦合的强弱取决于模块间传递数据的方式、接口复杂情况以及传递数据的类型各模块之间的耦合越松散越好606 软件设计方法内聚的分类功能内聚顺序内聚通信内聚过程内聚时间内聚实用程序内聚偶然内聚层内聚内聚程度由高到低616 软件设计方法内聚的分类(续)功能内聚:所有部件处理同一组数据,共同完成单一的功能顺序内聚:各部件之间既有数据联系又有控制联系通信内聚:所有的部件都访

15、问同一组数据,各部件之间只有数据关系,没有控制关系 过程内聚:各部件之间只有控制联系,而没有数据联系626 软件设计方法内聚的分类(续)时间内聚:所有部件之间既无数据联系,也无控制联系,但是部件之间具有时间关系,即把在执行过程中同一阶段内完成执行任务的部件放到一起,而排除其它部件实用程序内聚:部件常常是一些相关的、可重用的实用程序偶然内聚:模块内部的各部件之间没有任何关系层内聚:将相关服务的功能放到一起,成为一层,而将其它内容排出在外636 软件设计方法耦合分类内容耦合公共耦合外部耦合控制耦合印记耦合数据耦合耦合程度由高到低646 软件设计方法降耦方法-示例印记耦合降耦方法如下印记耦合的降耦方

16、法public class Order public float calcTotalMoney(User user) int userLevel = user.getLevel(); int userConsumeScore= user.getConsumeScore(); /计算订单总金额 656 软件设计方法降耦方法-示例(续)采用接口方法降耦public interface IConsumeInfo int getLevel( ); int getConsumeScore( ); public class User: IConsumeInfo public int getLevel( )

17、 /获得用户等级代码 public int getLevel( ) /获得用户等级代码 public class Order public float calcTotalMoney(IConsumeInfo cinfo) int userLevel = cinfo.getLevel(); int userConsumeScore= cinfo.getConsumeScore(); /计算订单总金额 666 软件设计方法降耦方法-示例(续)采用降为数据耦合方法降耦public class Order public float calcTotalMoney(int serLevel, int co

18、nsumeScore) /计算订单总金额 676 软件设计方法复用在新的开发项目中使用以前已获得的概念和对象特别为复用目的而设计的软件的过程重复使用为了复用目的而设计的软件的过程可复用资源及其回报686 软件设计方法复用系统中可复用的模块示例登录用验证码控件联动下拉列表框控件,注册时如先选省份,再选城市696 软件设计方法传统设计描述方法706 软件设计方法传统设计描述方法层次图结构图程序流程图伪代码PDL716 软件设计方法面向对象的设计描述方法726 软件设计方法面向对象的设计描述方法包736 软件设计方法面向对象的设计描述方法类图构件图部署图746 软件设计方法人机交互界面设计以用户为中心GUI界面设计指导原则757 软件实施与测试方法 测试:是选择适当的测试用例执行被测程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论