您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第5节 SEI-软件工程方法
软件工程导论(5)软件工程方法zhu.kerry@gmail.com方法的作用虽然没有银弹zhu.kerry@gmail.com本章内容5.1软件方法论5.2用户需求的获取方法5.3软件工程的分析方法5.4软件工程的设计方法5.5软件测试方法@gmail.com本章内容5.1软件方法论5.2用户需求的获取方法5.3软件工程的分析方法5.4软件工程的设计方法5.5软件测试方法@gmail.com什么是工程的方法?@gmail.com5.1软件方法论系统工程方法论5.1.2软系统方法论5.1.3软件工程方法体系zhu.kerry@gmail.com系统工程方法论系统工程方法论是针对复杂多变和不确定性的特点,综合应用运筹学、系统动力学、控制论、信息论等有关学科的理论和方法,将数理统计、概率论、线性代数、模糊数学等作为定性分析和定量分析的有效工具,深入地分析问题,寻求问题解决的最优策略动态系统理论、自动机理论、霍尔三维结构、系统分析法、成本效益分析、计划协调技术、关键路线法等问题定义确定目标系统综合系统分析系统评价系统创建系统实施zhu.kerry@gmail.com软系统方法论是一项运用系统思维方法解决非系统问题的定性研究的技术,目的是解决那些包含有大量社会的、政治的以及人为因素的问题zhu.kerry@gmail.com软系统方法的逻辑@gmail.com丰富图的一个示例@gmail.com软件工程方法体系抽象原则给出软件工程问题求解全过程的最基本原则体系规范原则是规范整体解题思路及解决方案的验证局部规范原则是规范解决模块、组件等局部问题的原则发现现实问题抽象模型解决问题zhu.kerry@gmail.com方法结构化程序设计方法面向对象方法面向构件方法面向服务方法基于净室思想的方法基于敏捷思想的方法自适应开发方法动态系统开发方法测试驱动方法……zhu.kerry@gmail.com示例zhu.kerry@gmail.com本章内容5.1软件方法论5.2用户需求的获取方法5.3软件工程的分析方法5.4软件工程的设计方法5.5软件测试方法@gmail.com需求访谈•哪些人将会使用这个软件系统?•他们希望该软件系统达到什么样的效果?•以前使用过其它类似的软件系统吗?从一组语境无关的问题开始然后,站在用户的角度展开要询问的问题,寻求更多的需求信息,挖掘用户潜在的功能需求zhu.kerry@gmail.com便利的应用规约技术在中立的地点举行会议建立筹备和参与会议的规则建议一个议程,能够覆盖需求范围所有的要点,但不鼓励思维的任意流动一个“协调者控制会议使用一种“定义机制”目标是标识问题、提出解决方案的元素、评估不同的方法以及刻画初步解决方案的需求集合鼓励建立客户和开发者的联合团队,一起工作以标识问题、提出解决方案的元素、刻画初步解决方案的需求集合zhu.kerry@gmail.com本章内容5.1软件方法论5.2用户需求的获取方法5.3软件工程的分析方法5.4软件工程的设计方法5.5软件测试方法@gmail.com如何分析问题?@gmail.com5.3软件工程的分析方法5.3.1系统分析方法5.3.2问题分析方法5.3.3根本原因分析5.3.4决策分析zhu.kerry@gmail.com系统分析方法整体分析结构分析层次分析相关分析@gmail.com问题分析方法问题说明阶段:提出目标,确定评价指标和约束条件分析研究阶段:提出各种备选方案并预计一旦实施后可能产生的结果评估结果:将各方案的评价比较结果提供给决策者,作为判断抉择的依据zhu.kerry@gmail.com根本原因分析在开发周期的每个阶段实施根本原因分析,为有效开展缺陷预防活动提供依据应用在解决各个方面的问题的过程中得到提倡,形成一种文化或一种机制,而对每个人应形成一种处理问题的习惯问题根本原因解决方案zhu.kerry@gmail.com决策分析选择决策技术和结构层次,制订决策分析与决定的计划建立作为决策基础的评价准则。建立并运用决策分析指导原则,确定推荐的候选方案。依据评价准则进行综合分析、讨论和审查,然后选择相应的评价方法,依据准则来评价候选方案。最终选择的候选方案应附有所选择的技术、准则和作出选择的依据@gmail.com本章内容5.1软件方法论5.2用户需求的获取方法5.3软件工程的分析方法5.4软件工程的设计方法5.5软件测试方法@gmail.com设计中最关键的问题?@gmail.com软件危机5.4.1原型设计方法5.4.2结构化方法5.4.3面向对象方法5.4.4面向构件设计方法5.4.5面向服务方法5.4.6可视化方法@gmail.com原型设计方法在获取基本的需求定义后,利用可视化的开发环境或工具,快速地建立一个目标系统的粗线条版本基于可视化原型,用户更能清楚地表达自己的需求,提供反馈意见原型分为抛弃式原型和演化式原型抛弃式原型不作为最终产品,具有探索和实验目的,或只是作为需求确认的工具演化式原型,最终软件系统是在原型的基础上逐步形成、修改、完善和完成的@gmail.com原型设计方法的实现过程@gmail.com结构化方法面向数据结构的软件设计方法问题分析法系统关联图信息隐蔽方法采用自顶向下、逐步求精设计过程,将系统分解为若干功能模块,然后逐个实现每一个具体的功能模块zhu.kerry@gmail.com问题分析法先分解再合成,根据输入、输出数据结构指导系统的分解,在系统分析指导下再逐步合成系统zhu.kerry@gmail.com系统关联图用于定义系统与系统外部实体间的界限和接口的简单模型,可以明确外部实体和系统之间通过接口传递的数据流和信息流zhu.kerry@gmail.com面向对象方法面向对象方法从所处理的数据入手,以数据为中心来描述系统充分挖掘了“关系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现软件的开发可以视为“类”的抽象及其关联的建模过程软件的运行是对象的实例化及其状态的演变过程,对象与对象之间通过发送消息相互联系zhu.kerry@gmail.com对象与类对象的行为通过操作展示,外界不可以直接访问其内部属性(封装性),操作的实现对用户透明类是对具有相同内部状态和外部行为对象结构的描述,它定义了表示对象状态的实例变量集和表示对象行为的方法集。子类可以继承父类的实例变量和方法、重载父类的某个行为(虚函数),同时还可以定义新的变量和方法消息传递是对象间惟一的交互方式zhu.kerry@gmail.com示例@gmail.com面向对象分析分析是提取和整理用户需求,并建立问题域精确模型的过程面向对象分析一般需要建立3个模型(功能模型、对象模型和动态模型)并定义相应的服务zhu.kerry@gmail.com面向对象设计开-闭原则单一职责原则里氏代换原则依赖倒转原则接口隔离原则合成/聚合复用原则迪米特法则把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程zhu.kerry@gmail.com面向构件设计方法就是用“构件”取代“代码”,构件成为软件产品或系统的基本结构单元构件可以完成一个或多个功能的特定服务,并为用户提供标准接口系统构件可以分为业务构件、服务构件、展现构件、逻辑构件、运算构件等从传统的关注点分离到构件组装业务构件是软件过程的主线索,并基于业务构件来识别出服务构件,然后就是业务构件的实现、验证和部署@gmail.com构件的层次@gmail.com基于构件的网状结构@gmail.com面向服务方法@gmail.comSOA架构模式SOA模式在三个主要参与者——“服务提供者、服务消费者和服务代理”之间定义了交互模型zhu.kerry@gmail.comSOA系统架构的层次@gmail.comSOA系统服务层实现@gmail.comSOD的建模和架构方法@gmail.com可视化方法借助可视开发工具,直接在图形用户界面上来完成绝大部分的软件设计和编程工作,可以自定义、修改和拖拽各项操作界面元素可视开发工具能实现程序代码的自动生成zhu.kerry@gmail.com示例@gmail.com可视化IDE@gma
本文标题:第5节 SEI-软件工程方法
链接地址:https://www.777doc.com/doc-4128752 .html