python day 17
-
UML:unified modeling languages,是一种基于面向对象的可视化建模语言。
-
画图语言:画图要合理。即符合逻辑。
-
历史:
3.1. 软件功能越来越强大,导致不可维护性,出现了软件危机,国际组织,召集了50个顶尖程序员解决这个问题。
3.2. 软件工程:用工程学的方法论来指导软件开发,目的是来解决软件危机。
3.3. 按照工程学的角度,最重要的一步就是建模。
3.4. 建模:建立模型。图纸+沙盘。模型分为很多种角度。
3.5. 在中国,软件的大多数消费者是政府。政府采购计划有保护政策。 -
软件公司人员构成:
4.1. 系分:系统分析员
4.2. 项目经理(pm):外国的项目经理都是经验丰富的。外国可以做一辈子开发。外国生活成本小,中国生活成本大,中国的程序员浮躁,经常跳槽。主要负责项目协调,沟通能力很强。
4.3. leader组长:管理经验要丰富。
4.4. 业务咨询:在中国,往往比程序员工资要高。
4.5. 开发人员
4.6. 设计人员:全程参与项目。
4.7. 业务人员
4.8. 测试人员
4.9. 技术顾问 -
cmm: capability maturity model。能力成熟度模型,印度提出来的。
-
三类企业的划分:
6.1. 一类企业:卖标准,ajb, j2ee.
6.2. 二类企业: 卖产品,
6.3. 三类企业:做项目, -
软件工程的生命周期---瀑布模型:使用软件工程指导软件开发,有优点,也有缺点。
7.1. 生命周期的图示:
7.2. 五个阶段
7.2.1. 需求分析:价值最高。
7.2.1.1.问题定义:要做什么样的系统,目标是什么?
7.2.1.2. 可行性研究:
时间可行性:限定时间内能开发出来吗?
经济可行性:对方出得起我想要的钱吗?
技术可行性:技术上能实现吗?
7.2.2系统分析和设计:价值第二高。
技术含量比较高,有经验的人才能胜任。
概要设计
详细设计
7.2.3. 写代码:coder
7.2.4. 测试:也是有技术含量的。但不到专业程度,就没有技术含量。调试就量在测试。单元测试。都是在提高软件的健壮性。
单元测试,白盒测试,能看到源码来测试的。
集成测试,墨盒测试,看不到源码的。
冒烟测试,
压力测试,大流量压力,loadrunner,ab|apache
7.2.5. 维护:纠错性维护和改进性维护。
7.3. 瀑布模型:依赖性强
缺点:慢
7.4. 真实的项目是怎么运作的? -
软件生命周期---RUP(统一软件开发过程)
统一软件开发过程(Rational Unified Process,RUP):一个通用的软件流程框架,以架构为中心,用例驱动的迭代化开发流程。对于实现的项目有很强的指导意义。
RUP用二维坐标来描述。横轴通过时间来组织,是过程展开的生命周期特征,体现开发过程的动态结构;纵轴以内容来组织,体现开发过程的静态结构。
四个阶段:
初始阶段:主要人员是项目经理和系统分析师,主要任务是系统可行性分析,创建基本的需求,识别系统的关键任务。
细化阶段:主要目标是创建可执行的构件基线,精化风险评估,捕捉大部分的系统功能需求用例,为构造阶段创建详细需求。主要就是展现用户所期望的需求。
构造阶段:完成所有的需求,分析和设计,该阶段的制品将演化成最终系统。
交付:将完整的系统部署到用户所处的环境中。
RUP是不断迭代的。
RUP分为6个核心过程工作流和3个核心支持工作流。
OOP(面向对象编程):OOA(面向对象分析),OOD(面向对象设计)。
建模的原则:
正确的模型
使用者的身份和使用的原因是评判模型好坏的关键。
必须保证简化过程不掩盖关键问题。
学uml的目标:
能看懂产品经理或系统分析设计人员画的图 。
UML中的图:
静态模型图:描述系统的静态结构的。
用例图:use case diagram
用例图(use case diagram):也称为用户模型图,是从客户的角度来描述系统功能。是第一步。
参与者(Actor):与系统打交道的人或其他系统即使用该系统的人或事物。用人形图来表示参与者。
用例(use case):代表系统的某项完整的功能。在UML中用一个椭圆表示。
关系:定义用例之间的关系。-----泛化关系,扩展关系,包含关系。
关联关系:角色与用例之间的关系。用户有用户登录功能。
泛化关系,即父类与子类的关系。
扩展关系,extend,用户验证密码失败可以找回密码功能。
包含关系:include,虚线箭头连接,实行此功能的先决条件。
类图 class diagram
定义:
类图是面向对象系统建模中最常用的图,是定义其他图的基础。
类图主要用来显示系统中的类,接口,以及它们之间的关系。
类图包含的主要元素有类,接口和关系,其中关系有关联关系,泛化关系,依赖关系,实现关系。在类图中也可以包含注释和约束。
类是类图的主要组件,由类名,属性,方法3部分组成。UML中属性和方法是可选的。
UML中公有用+,私有用-,保护类型用#表示,但是软件工具可以自定义。
UML中类图的关系:
关联:强调的是实体之间有一定的数量上的对应关系。
图示:
聚合:不强调生命周期,但是强调整体和部分。
组成关系:
代码中实现聚合与组成:
泛化:在UML中,泛化关系是用来表示类与类,接口与接口之间的继承关系。泛化关系有时也称为"is a kind of "关系。就是类的继承。用一条实绩空心箭头由子类指向父类。
依赖:对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系。
实现:类与接口之间的关系,由类指向接口。有两种表现形式,取决于接口的表现形式:
接口在UML中一个带有名称的圆圈表示,并且通过一条实绩与它的模型元素相连。有时候接口也使用普通 类符号表示。
动态模型图:描述行为的。
时序图:用于描述对象之间传递消息的时间顺序,即用例中的行为顺序。
图一:
图二:
基本概念:
一个例子:
活动图本质上就是流程图。它用于描述系统的活动,判定点和分支等。通常描述方法内部的调用过程。
基本概念:
图一:
图二:
例子:
状态图:通过建立对象的生存周期模型来描述对象随着时间变化的动态行为。
基本概念:
图:
图:
协作图:也叫合作图,是一种交互图。
时序图主要侧重于对象间消息传递在时间上的先后关系,而协作图表达对象间的交互过程及对象间的关联关系。
例子
图:
对象图:
例子:
包图:
基本概念:
组件图:
基本概念:
部署图:
基本概念: