携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情
构件化开发方法
基于构件/组件的软件开发是解决复杂环境下软件规模与复杂性的一种手段
构件通过连接件连接在一起,共同构成一个建筑物
构件与对象的关系
构件:独立部署单元、作为第三方的组装单元、没有(外部可见)状态
对象:一个实例单元,具有唯一标志、可能具有状态,此状态外部可见、封装了自己的状态和行为
构件并非一定包含类,一个类元素只能属于一个构件
构件的获取
1)从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可复用的构件
2)通过遗留工程,将具有潜在复用价值的构件提取出来,得到可复用的构件
3)从市场上购买现成的商业构件
4)开发新的符合要求的构件
构件的分类
| 关键字分类法 | 关键字分类法将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构,每个概念用一个描述性的关键字表示 |
|---|---|
| 刻面分类法 | 刻面分类法定义若干用于刻画构件特征的“刻面”,每个面包含若干概念,这些描述构件在刻面上的特征。刻面可以描述构件执行的功能、被操作的数据、构件应用的语境或其他特征 |
| 超文本方法 | 所有构件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览时检索。 |
构件复用的方法
| 关键字分类法 | 系统在图形界面上将构件库的关键字树形结构直观的展示给用户,复用者通过对树形结构的逐级浏览,寻找需要的关键字并提取相应的构建。也可以直接给出关键字(可含通配符),由系统自动给出合适的候选构建清单。这种方法的有点是比较简单、易于实现,但在某些场合没有应用价值,因为复用者往往无法利用构件库中已有的关键字来描述期望的构件功能或行为,对树形结构的浏览也容易使使用者迷失方向。 |
|---|---|
| 刻面分类法 | 该方法基于刻面分类法,由三步构成,分别是构造查询、检索构件和对构件进行排序。这种方法的有点是它易于实现相似构件的查找,但复用者在构造查询时比较麻烦 |
| 超文本方法 | 复用者首先给出一个或数个关键字,系统在构件的说明文档中进行精确或模糊的语法匹配,匹配成功后,向复用者列出相应的构件说明。这种方法的优点是用户界面友好,但在某些情况下复用者难以在超文本浏览过程中正确选取构件。 |
面向服务的方法
面向服务的分析与设计
| 抽象级别 | 操作。最低层,代表单个逻辑单元的事物,包含特定的结构化接口,并且返回结构化的响应 |
|---|---|
| 服务。代表操作的逻辑分组 | |
| 业务流程。最高层,为了实现特定业务目标而执行的一组长期运行的动作或者活动。 |
原型方法
在系统开发初期必须明确系统的功能要求,确定系统边界。原型法也称快速原型法可以根据用户初步需求利用系统工具快速建立一个系统模型,与用户交流
按照实现功能划分
| 水平原型 | 垂直原型 |
|---|---|
| 行为原型,用于界面。细化需求但并未实现功能 | 结构化原型,用于复杂算法的实现,实现了部分功能 |
按照最终结果划分
| 抛弃式 | 演化式 |
|---|---|
| 探索式原型,解决需求不确定性、二义性、不完整性、含糊性 | 逐步演化为最终系统,用于易于升级和优化的场合,适用于Web项目 |
敏捷开发
特点:1、以人为本 2、与用户紧密协作 3、面对面沟通 4、尽早发布增量 6、小而自主的开发团队 7、适用于规模小的项目
极限编程
特点:
1、在更短的周期内,更早的提供具体、持续的反馈信息
2、迭代的进行计划编制,首先在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断的发展它
3、依赖于自动测试程序来监控开发进度,并及早的捕获缺陷
4、依赖于口头交流、测试和源程序进行沟通
5、倡导持续的演化式的设计
6、依赖于开发团队内部的紧密协作
7、尽可能达到程序员短期利益和项目长期利益的平衡