软件的本质特性:
构造性,演化性,知识密集,逻辑产物。
软件开发模型:瀑布模型,螺旋模型,喷泉模型,演化模型
瀑布模型:文档驱动。系统可能不满足客户的需求
螺旋模型:风险驱动。风险分析人员需要有经验。且经过充分训练
喷泉模型:更多的增量和迭代
演化模型:需求驱动。需求分组会影响全局系统
软件危机:现象:软件开发费用和进度失控,软件的可靠性差,软件难以维护。
原因:需求不明确,缺少有力的技术、方法学和工具,复杂程度越来越高,人的原因
软件开发呈现的变化:
反映对象:从 以个体计算过程 为反映对象向 以群体合作过程 为反映对象的发展
开发基础:从 以单个软件开发为主 向 以集成式开发为主 的发展
关注内容:从 以正面功能为核心 向兼顾侧面约束 的发展
运行方式:从 纯被动式的方式 向 部分主动式的方式 发展
提交形式:从 以 产品 为中心向 以 服务 为中心 的发展
开销比重:从 开发为主要开销向开发、演化开销并重 的发展
面向方面的编程(AOP):追求 调用者和被调用者之间的解耦
代理的特征:自治性,反应性,主动性,社会性
什么是工作流:工作流是一类能够完全或者部分自动执行的业务过程,本质上讲是
使在多个参与者之间按照某种预定义的规则传递文档、信息或任务
的过程自动进行。
软件开发过程新进展:(1) 统一软件开发过程(RUP)
生命周期的四个阶段:初始阶段,细化阶段,构造阶段,交付阶段
(2) 敏捷开发方法
Agile software development is a groupof software development methodologies based on
iterative and incremental development,where requirements and solutions evolve through
collaboration between self-organizing, cross functional teams.
(3) 面向侧面的软件开发(AOP)
(4) 测试驱动的软件开发
在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
(5) 基于构件的软件开发
构件的定义:一个构件是一个组装单元,它具有约定式规范的接口以及明确的依赖环境,构件可以被独立地部署,由第三方组装
软件构件则是软件系统中 具有一定意义的相对独立的构成成分。软件构件主要是指可复用软件构件。
构件是可以被复用的软件构成成分,由