


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 软件工程概述1. 软件危机 (software crisis): 就是指在计算机软件得开发与维护过程中所遇到得一系列严 重问题。即“两低一高”问题 :质量低、效率低、成本高。软件危机也成为“软件萧条(depression)”或软件困扰(aflication) ”2. 软件危机主要表现1) 开发成本与进度估计不准2) 用户对 “已完成得 ”软件系统不满意3) 软件质量往往靠不住4) 软件常常就是不可维护得5) 软件通常没有适当得文档资料6) 软件成本逐年上升7) 软件开发生产率滞后于硬件与计算机应用普及得趋势3. 产生软件危机得原因1) 与软件本身得特点有关a、软件不同于硬件 ,就是逻辑
2、部件而不就是物理部件缺乏可见性 难于测试 管理与控制开发过程困难 不会因使用时间过长而被“用坏” 难以维护b、软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模得增加而呈指数上升2) 与软件开发与维护得方法不正确有关a、对软件开发与维护有关得错误认识与作法忽视软件需求分析得重要性认为软件开发就就是写程序轻视软件维护b、对软件开发过程与方法得认识与应用软件开发要经历一个漫长得时期(编程占 10-20%)程序仅就是完成软件配置得一个组成部分 软件开发方法要有利于软件维护4. 软件得特点(1) 软件就是无形得 (intangible)(2) 软件副本得大批量生产轻而易举(3) 软件业就是劳动密
3、集型得(4) 一个没有经过充分训练得软件开发人员很容易编写出难以理解与修改得软件(5) 软件本身很容易修改。但由于它得复杂性 ,又很难正确地修改 。(6) 软件不像其她得工业产品那样会因使用而磨损 ,随着反复修改 ,它得设计会逐渐退化5. 消除软件危机得途径1) 对计算机软件得正确认识2) 认识到软件开发不就是个体劳动得神秘技巧,而就是一种组织良好、管理严密、各类人员协同配合、共同完成得工程项目3) 推广使用成功得软件开发技术与方法4) 开发与使用更好得软件开发工具总之 , 为了消除软件危机 ,既要有技术措施 (方法与工具 ),又要有必要得组织管理措施。6. 对“工程 ”得理解 :大事情 ,施
4、工得过程 ,工程学科。 施工得过程 :分析 设计 实现 维护7. 软件得概念 经典定义 :软件 = 程序 + 文档 + 数据 软件就是计算机程序及其有关得数据与文档得完整集合。计算机程序就是能够完成功能得可执行得指令序列 数据就是程序能适当处理得信息,具有适当得数据结构软件文档就是开发、使用与维护程序所需要得图文资料8. 软件工程得概念 概括地说 ,软件工程就是指导计算机软件开发与维护得工程学科。 采用工程得概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确得管理技术与当前能够得到得最好得技术方法结合起来,以经济地开发出高质量得软件并有效地维护它 ,这就就是软件工程。目标 :项目
5、成功 (BFC,Better 、Faster、 Cheaper)9. 软件工程得本质特征(1) 软件工程关注于大型程序得构造(2) 软件工程得中心课题就是控制复杂性(3) 软件经常变化(4) 开发软件得效率非常重要(5) 与谐地合作就是开发软件得关键(6) 软件必须有效地支持它得用户(7) 在软件工程领域中通常由具有一种文化背景得人替具有另一种文化背景得人创造 产品10. 软件工程得基本原理(1) 用分阶段得生命周期计划进行严格管理(2) 坚持进行阶段评审(3) 实行严格得产品控制(4) 采用现代程序设计技术(5) 结果应能清楚地审查(6) 开发小组得人员应该少而精(7) 承认不断改进软件工程
6、实践得必要性11. 软件工程方法学 通常把在软件生命周期全过程中使用得一整套技术得集合称为方法学 (methodology), 也 称为范型 (paradigm) 。1) 传统方法学 (结构化方法学 ):SA,SD,SP,ST2) 面向对象方法学 :OOA,OOD,OOP,OOTS:结构化 structuredOO: 面向对象 ,Object OrientedA: 分析 ,AnalysisD: 设计 ,DesignP:编程,ProgrammingT:测试,Test12. 软件工程方法学三要素 ,这就就是方法、工具与过程。其中 :1) 方法就是完成软件开发任务得技术方法,回答“如何做”得问题 ;
7、2) 工具就是为方法得运用提供自动得或半自动得软件支撑环境;3) 过程规定了完成各项任务得工作阶段、工作内容、产品、验收得步骤与完成准则。 第二章 软件过程1. 过程 (process):ISO9000 把过程定义为 ,把输入转化为输出得一组彼此相关得资源与活动。2. 软件过程 (Software Process): 就是为了获得高质量软件所需要完成得一系列任务得框架(Framework), 它规定了完成各项任务得工作步骤。3. 软件生命周期软件生命周期由软件定义、软件开发、与运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。 ( 三个时期八个阶段 )三个时期八个阶段 :三个时期 :软
8、件定义、软件开发、运行维护八个阶段 :(1) 问题定义 (2) 、可行性研究 (3) 、需求分析 (4) 、概要设计 (5)、详细设计(6)、编码与单元测试 (7) 、综合测试 (8)、软件维护4. 软件开发模型 (在课本得 1433 页,了解一下 )1) 瀑布模型 (Waterfall)2) 快速原型模型 Prototype3) 增量模型 (Incremental Models)4) 喷泉模型5) 螺旋模型6) 统一过程 (rational unified process,RUP)7) 敏捷过程8) 极限编程 (extreme programming,XP)9) 能力成熟模型 (capabi
9、lity maturity model,CMM)第三章 结构化得分析 (SA)1. 需求分析 :发现、求精、建模、规格说明、复审得过程。发现 :获取需求 ,完备、正确、有效求精 :细节建模 :形式化描述规格说明 : 详述复审 :批准2. 需求分析得准则1) 必须理解与表示问题得信息域 ,根据这条准则应该建立数据模型。2) 必须定义软件应完成得功能 ,这条准则要求建立功能模型。3) 必须表示作为外部事件结果得软件行为,这条准则要求建立行为模型。4) 必须对描述信息、功能与行为得模型进行分解,用层次得方式展示细节。3. 需求获取得方法1) 访谈正式得 :事先准备好得非正式得访谈 :开放得 ,头脑风
10、暴 ,情景分析2) 面向数据流自顶向下求精3) 简易得应用规格说明技术4) 快速建立软件原型4. 分析建模结构化分析实质上就是一种创建模型得活动。通过需求分析而建立得模型必须达到下述得三个基本目标描述用户得需求。为软件设计工作奠定基础。定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品。5.模型(Model):就是为了理解事物而对事物作出得一种抽象,就是对事物得书面上得无歧义文字或图形得描述、5.1.5.2.6.模型就是对问题得简化。要从多个角度认识事物。分析模型:数据模型(实体联系图)、功能模型(数据流图卜行为模型(状态转换图)。7.8.需求分析成果:软件需求规格说实体
11、-联系图(ER 图,entity-relationship diagram)(1)数据模型得主要成:数据对象,数据对象:对软件必f 属性:定义了数据 联系:数据对象彼此类型:一对一联系、一实体-联系图得符号表示【: 逊可相互连接得方式称为联系9.10.11.环境P41,寸属信息得抽象。.可以有属性。要求会画),数据对象彼此间相互连接得关系,也称为关 联系,就性联系*- 实体数据流图(DFb,Pgta即*廿受得变换(书本P4347,要会数据字典(DD:,Data Dictionary):就是关丁数据得信息得集合0)7描绘信息流与数据从输入移动到得过程中所经数据流图中包含得所有元素得定义得集合(书
12、本P49 51,要会画)状态转换图(SD,State Diagram):通过描绘系统得状态及引起系统状态转换得事件,来表示系统得行为。用于建立行为模型。状态:就是任何可以被观察到得系统行为模式。状态规定了系统对事件得响应方式 事件:就是在某个特定时刻发生得事情息。(书本 P47 49),就是引起系统做动作或(与)转换状态得控制信性能功能数据(五大需求)将来外存file架构 C/S,B/S四大设计构件之间得接口接口 -人一机接口三型两化功能模型系统化层次化过程ProcessProcedure(步骤)行为模型数据模型如何设计:必须依据原理、原则、规则、准则模块:就是由边界元素限定得相邻得程序元素得
13、序列,而且有一个整体标识符来代表它。,把这模块化:就就是把程序划分成可独立命名且独立访问得模块,每个模块完成一个子功能些模块集成起来构成一个整体,可以完成指定得功能满足用户得需求。(1)一组相邻元素(2)一个边界(3)一个名字(标识符ID)Why模块化?1)降低复杂度2)有利于团队分工协作How to模块化? Meyer模块化5标准1)模块可分解性(降低复杂性)2)模块可组装性(可重用,reuse)3)模块可理解性(易于维护)4)模块连续性(副作用小)5)模块保护性(屏蔽异常)抽象(abstract):抽出事物得本质特征,而暂时不考虑它们得细节 找共性,略特性抓主要,略次要 效降低模块数量 逐
14、步求精:为了集中精力解决主要问题而尽量推迟对问题细节得考虑。Miller法则:一个人在任何时候都只能把精力集中在7 2个知识块上。7 2全局变量信息隐藏局部变量块内:高内聚,一个模块只做一件事 模块独立Y参数少块间:低耦合,KIS(keep it simple)J类型简单结构化设计原理:1)模块化2)抽象3)信息隐藏4)逐步求精 启发原则:1)改进软件结构提高模块独立性2)模块规模应该适中(LOCcode3) 深度、宽度、扇出与扇入都应当适中(7 2原则)4)模块得作用域应该在控制域之内5) 力争降低模块接口得复杂度(接口 KIS)6)设计单出口单入口得模块7)模块得功能应该可以预测 设计结果
15、描述工具:建模工具软件工具工具-建模工具-开发工具IPO 图(Input Process Output):描述模块(总体)架构表示:C/S,B/S ,层次层次图+ IPO图=HIPO图结构图:(P76)Yourdon提出得结构图就是进行软件结构设计得另一个有力工具 面向设计流得设计方法三种设计方法一面向数据结构得设计方法 I面向对象得设计方法设计优化:无有好优精人一机界面设计问题MI CUI GUI AUI MMI1. 系统响应时间(长度、易变性)嗓成式(内含,开始就设计在软件中)2. 用户帮助措施*I嵌入式/附加式(联机文档)1)完备性2)选择性(menu, F1 , help)3)如何显示
16、帮助信息4)返回/退出(ESC escape ,按钮)5)怎样组织帮助信息层次结构(导航)Web页(超链接)3. 出错信息处理1)可理解性2)建设性3)警示性4)视听性5)友好性4. 命令交互UI设计得重要性:1)用户评价产品得依据2)占总设计量得50%以上3)涉及到美学、人一机工程学、心理学4)UI工程师成为一种岗位UI设计原则:以人为本、人性化、美、方便-与谐美 一致-对称人一机界面设计过程:用户界面设计就是一个迭代得过程界面设计指南(瞧瞧微软得界面设计)1)一般交互2)信息显示3)数据输入结构化方法学SA SD vSPST1-1965gOto语句1968(书本P89)1972拼且每如果一
17、个程序得代码块仅仅通过顺序、选择与循环这三种控制结构进行连接个代码块只有一个入口与一个出口,则称这个程序就是结构化得。1)顺序2) 选择(单路、双路、多路、多重)3) 循环(for、当型循环、直到型循环、枚举过程设计工具N-S盒图PAD图IUML活动图判定树判定表 表伪码语言 语言(要会画这些图,会根据伪码语言转化为上述各种图,还要掌握几种图之间得转换 ) 数据得三类逻辑结构1)顺序2)选择3)重复第五章结构化实现测试定义:为了发现错误而执行程序得过程错误编写时产生得-故障运行时发生得测试具有破坏性,而其它得环节都就是建设性得。但就是其破坏时为了更好得建设,保证质量得有效途径测试得目标(G、M
18、yer)1)定义:测试就是为了发现程序中得错误而执行程序得过程2)好得测试:好得测试方案就是极可能发现迄今为止尚未发现得错误得测试方案3)成功得测试:成功得测试就是发现了至今为止尚未发现得错误得测试目得测试方案 一组输入I一组输出(预期得结果)测试得准则1)追溯到需求:所有得测试都应该能追溯到用户得需求2) 及早计划:应该在测试之前得相当长时间,就指定出测试计划3) 2、8定律 :把 Pareto原理应用于软件测试。Pareto原理告诉我们,测试发现得错误中 得80%很可能就是由程序中 20%得模块造成得4) 从小到大:测试应该从“小模块”开始,并逐步进行“大模块”测试5)不可穷尽:穷举测试就
19、是不可能得6)第三方(丙方)测试:为了达到最佳得测试效果,应该由独立得第三方来从事测试工作 所谓最佳效果,就就是指最大可能性发现错误得测试,这也就是测试得基本目标黑盒测试:接口处、功能测试测试方法I白盒测试:结构测试流图P110(要会根据程序流程图转化)体现了程序判断得节点白盒测试技术:1)逻辑覆盖2)路径覆盖程序得复杂度度量(P115,要会根据流图,计算出程序得复杂度)流图中得区域数 =环形复杂度3种方法-流图中得环形复杂度=流图中得边数-图中节点数 + 2流图中得环形复杂度=图中判定节点得数目 + 1复杂:指人得体力与脑力受到挑战独立路径(P115)定义:就是指至少引入程序得一个新处理语句
20、集合或一个新条件得路径 自顶向下从左向右逐步增加黑盒测试技术(P120)等价类划分 边界值分析。错误预测测试步骤(从小到大) 单元 子系统系统*验收*平行运行集成测试集成测试得策略深度优先厂自顶向下“一边运行新系统,一边运行旧系统YJ宽度优先I自底向上软件得可靠性可靠性:时间段,在规定得时间段内,成功运行程序得概率 可用性:时间点,在一个时间点上,成功运行程序得概率-MTTF:Mean Time To Failure,平均无故障时间 MTTR:Mean Time To Repair,平均维修时间 测试排除bug *发现bug厂质量第六章面向对象方法学导论面向观点、世界观、软件观System?1
21、)若干部件得集合2)部件具有独立得功能与边界3)部件之间具有相互联系,这些联系构成结构4)部件间相互作用,构成运动对象(P151)在研究或解决问题得过程中关注得人、事物、概念OO(Object Oriented,面向对象)起源学习、掌握、运用面向对象方法学得四个要点:面向对象=对象+类+继承+通信1)认为客观世界就是由各种对象组成得,任何事物都就是对象,复杂得对象可以由比较简单得对象以某种方式组合而成2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据与一组方法。3)按照子类与父类得关系,把若干个对象类组成一个层次结构得系统4)对象彼此之间仅能通过传递消息互相通信面向对象方法学得优点1
22、)与人类习惯得思维方法一致2)稳定性好3)可重用性好4)较易开发大型软件产品5)可维护性好面向对象得一些概念1. 对象:就是封装了数据结构以及可以施加在这些数据结构上得操作得封装体,这个封装体有可以唯一标识它得名字,而且向外界提供一组服务。2. 类:就就是对具有相同数据与相同操作得一组相似对象得定义3. 实例:就就是有某个特定得类所描述得一个具体得对象4. 消息:就就是要求某个对象执行在定义它得那个类中所定义得某个操作得规格说明书5. 方法:就就是对象所能执行得操作,也就就是类中所定义得服务6. 属性:类中说定义得数据,它就是对客观世界实体所具有得性质得抽象7. 封装:就就是把某个事物包起来,
23、使外界不知道该事物得具体内容8. 继承:就是指能够直接获取已有得性质与特征,而不必重复定义她们9. 多态性:就是指子类对象可以像父类对象那样使用,同样得消息既可以发送给父类也可以发送给子类对象。10. 重载:函数重载就是指在同一作用域内得若干个参数特征不同得函数可以使用相同得 函数名字面向对象得三种关系:继承组成关联)以数据为中心(2)实现了封装 (3) 本质上具有并行性(4) 模块独立性好 面向对象建模:三种模型得建模工具:对象模型:类图功能模型:用例图(用况图)动态模型:状态图,时序图面向对象得建模步骤:系统观点啥们UML得9种图对象模型:最基本、最核心、最重要状态图:描述了单一对象,在其
24、生命周期内得变化规律事件 event 瞬间得状态时间段时序图:多个对象得交互。时序图得每个对象有各自对应一个状态图第7&8章架构成中心 用况驱动增量与迭代-对象模型3型 功能模型动态模型-自顶向下5层逐步求精*啥们之序面向对象(00A)得任务与过程分析:搞清楚、弄明白软件得需求,并根据需求建模 研究需求识别对象建立模型面向对象分析得策略:三型五层:自顶向下、逐步求精 五层:主题层、类与对象层、结构层、属性层、服务层需求陈述P167用户提供、表现多样内容:范围、需求、假设问题:歧义、矛盾对策:甲乙共商,原型化需求例子ATM (课本P167)建立对象模型广类:名词 kind of关系:part o
25、f、 with 词法分析属性:量词(重量、身高、年龄)、形容词方法:动词候选筛选确定优化UC 矩阵 user customer建立动态模型顺序图状态图(多对象)(单一对象)需求陈述I编写脚本画顺序图案例研究:电梯系统(课本得P186 P190)00A 00D OOP(3型4图)(3型4图)IIfor需求for机器/实现3型4图:对象模型i类图功能模型一用例图动态模型顺序图、状态图OOD(面向对象设计)准则:P1921.模块化2.抽象3.信息隐藏4.弱耦合5.强内聚6.可重用启发规则:1. 设计结果应该清晰易懂2. 一般/特殊结构得深度应适当3. 设计简单得类4. 使用简单得协议5. 使用简单得
26、服务6. 把设计变动减至最小第9章(老师没讲)第10章UML(P232)(自己瞧,一定要会画9种图)第11章计划管理:就就是通过计划、组织与控制等一系列得活动,合理得配置与使用各种资源,以达到既定目 标得过程。,合理得配置与使用各种资源软件项目管理:就就是通过计划、组织、控制等一系列得活动以便在预定成本与期限内开发符合客户需要得软件得过程(类)工程:大得、复杂得、由众多人一起完成得(对象)项目:一个具体得工程就是项目估量工作量V物(代码行)时.软件配置:程序、文件、数据 一对软件得配置进行管理得原因:需求得变更就是不可避免得风险(risk):导致失败得因素识别评估避免估算代码行:估k 概k预 决代码行 LOC KLOC估算量-功能点FP(fu nction poi nts)FP技术:(具体得计算方法P25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024成都信息工程大学辅导员招聘笔试真题
- 2025年加脂剂项目发展计划
- 2024年合阳县社区工作者招聘真题
- 2025秋统编版(2024)道德与法治一年级上册第一单元《4平平安安回家来》教学设计
- 2024年广西壮族自治区农业农村厅下属事业单位真题
- 2025年事业单位招聘考试公共基础知识仿真模拟考试试卷(四套)【答案】
- 2025年三明市三元区沪明小学招聘校聘教师考试试题【答案】
- 消防应急预案(15篇)
- 湘艺版二年级音乐下册《月圆曲》教案
- 2025年工程项目管理服务项目建议书
- 酒店服务流程与空间布局优化
- (2025)医疗护理员理论考试试题含答案
- 2025年广西中考语文试题卷(含答案)
- 建设工程法律培训
- 2025年南京市中考数学真题试卷
- 2025年呼伦贝尔农垦集团有限公司招聘笔试参考题库含答案解析
- 2025年重庆市中考数学试卷真题(含标准答案)
- 2024广西专业技术人员继续教育公需科目参考答案(97分)
- 湘少版小学全部英语单词
- 人教版九年级数学上册教材解读分析精编ppt
- 电子秤cal标定方法
评论
0/150
提交评论