版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41035588/article/details/83473124
一、软件建模概述
什么是建模
任何事情都应该先想清楚了才能做,软件开发亦是如此,不能一上来就写代码,应该知道:要做什么?要做成什么样?怎样去做?
软件设计:把软件开发想清楚的过程
软件工程:对软件开发全过程进行建模与管理
模型:对问题的书面上的无歧义文字图片的描述,简言之,模型就是对实现的简化,通过模型,们可以了解所研究事物的本质。
最杰出的模型:地图
UML:统一建模语言,就是描述模型的语言
建模原则
1.选择建立什么样的模型对于发现和解决问题具有重要影响,正确的建模有助于提高开发者的洞察力(例如盖狗窝加避雷针,毫无意义)
2.每个模型有多种表达的方式,使用者的身份和使用的原因是评判模型好坏的关键。
3.最好的模型总能切合实际,模型是现实 的简化,必须保证简化过程不会掩盖任何重要的细节(在地图找珠穆朗玛峰)
建模的实现过程
1.
UML(工具:StarUML)
1.UML:统一建模语言,是一种基于面向对象的建模语言
2.UML采用一组形象化的图形(类图)符号作为建模语言,使用这些符号可以形象的描述系统的各个方面
3.UML通过建立图形之间的各种关系(如类与类之间的关系)来描述模型
UML中一共有十种图(红得重点)
【用例图】:
- 练习
【类图】
1.类图是面向对象系统建模中最常用的图,是定义其他图的基础
2.类图主要是用来显示系统中的类,接口以及他们之间的关系
3.类图包含的主要元素有类,接口,和关系,其中关系有泛化(继承),关联,依赖,和实现,在类图中也可以包含注释和约束。
类的实现关系如下图用虚线
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
class Car
{
public:
void run()
{
cout <<"Car 启动!"<< endl;
}
};
//如果说张三类有一个成员方法,将Car类当作一个形参或返回值来传递,并且zhangsan没有Car成员,就说zhangsan类依赖于Car,zhangsan类--------->Car类
class Zhangsan
{
public:
void goWork(Car* car)
{
car->run;
}
//或者
Car* fie()
{}
};
int main()
{
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
class Car
{
public:
void run()
{
cout <<"Car 启动!"<< endl;
}
};
//李四类在gowork() 中用到了另外一个Car方法,并且李四类还有Car成员,就说li4类关联Car类,关联比依赖 更紧密(一个亲儿子,一个假儿子)
class li4
{
public:
void gowork()
{
car.run();
}
private:
Car car;
};
int main()
{
return 0;
}
引擎可以是自己的,也可以是别人的
均是自己的
对象图
不常用
【时序图】
ATM用户登陆时序图
泳道
协作图
,可读性差,同顺序图,可以用顺序图代替
包图
主要是java有包
运维要搞部署图
如下