信息系统开发方法|产品线|软件复用|逆向工程
结构化开发方法
包含三部分:结构化分析,结构化设计,结构化程序设计,分别对应生命周期的系统分析,系统设计,系统实施
特点:
需求明确,目标清晰
阶段化,界限明确
开发文档规范化
设计方法结构化
缺点:
开发周期长
难以适应需求变化
很少考虑数据结构
面向对象
一切皆为对象,普适
快速原型法
需求多变,推进,演变,不能单独存在,需要结合别的方法使用
敏捷开发
以人为核心,关注开发人员和客户的交流
结对编程
关注代码质量
自适应开发
适应性,具体搞不太清楚
水晶方法
强调可配置,个性化
特性驱动编程
模型驱动的快速迭代开发过程
极限编程XP
核心是沟通,简明,反馈和勇气,不注重文档,测试先行,降低bu g出现率
并列争球法 scrum
特定周期做迭代
统一过程
提供了在组织中分派任务和责任的纪律方法,目标是在可以预见的日程和预算前提下,确保满足最终用户需求的高质量产品
用例驱动,以架构为中心,迭代和增量
软件产品线
产品线是一个产品集合,这些产品共享一个公共的,可管理的特征集,这个特征集能够满足特定领域的特定需求
核心资源:软件架构,构建,文档等
产品集合:产品线中的各种产品
建立方式
演化方式:迭代,更新
革命方式:推翻重做
逆向工程
逆向分析程序,力度在比源代码更高抽象层次上建立程序的表示过程,是设计的恢复过程(不仅仅是设计吧,这里能够得到架构思路,编码,文档等)
四个级别
实现级:语法书,符号表,过程设计
结构级:调用图,数据结构
功能级:反应功能
领域级:E-R模型
相关概念
重构:逻辑模型不变,实现方法变化
设计恢复:抽象出数据设计,结构设计和过程设计方面信息
正向工程:就是从现有系统中恢复设计信息,并且使用该信息去改变重构现有系统
再工程:站在巨人的肩膀上,重构已有系统,构建一个新版本,包括逆向工程,新需求的考虑和正向工程