2014-12-15 21:33:58 u013031565 阅读数 1337

       学习完UML,我们要把它和之前的软件工程结合起来。软件工程是从整体的角度说了软件开发的步骤,保证了所开发软件的质量。而UML作为一种统一建模语言,是用来设计软件蓝图的可视化建模语言,可以更好的实现软件的需求。

      下面是结合UML和软工的一个导图,总结了软件开发每个部分对应的UML中的图:

       通过这个结合,我们知道了,UML对于软件开发是必不可少的。

      小结:在UML学习中感觉理论知识很少,重要的是动手实践。在看UML视频的时候,只是对当时讲的有点印象,然后做了笔记,等到实践的时候才真正的深入理解……所以我们的学习需要的是反复,而不是在一个地方转圈,这样只会搞晕自己!多多反复,多多实践!



2011-09-25 11:01:09 zhenyaoMilenfan 阅读数 58

软件工程和建筑工程有异曲同工之处,以下是我的观点:

 

1.项目经理就是工地的包工头,负责工程的进度

 

2.常用的Jar就像钢筋水泥,要怎么样的钢筋水泥,要怎么搭配

 

3.软件设计就是工程设计,设计得好抗震能力就强,也比较美观

 

4.程序员就像是工地的堆砖砌瓦的工人

 

5.技术总监就是建筑工程里设计建筑蓝图的人

2014-11-02 18:38:50 u013045552 阅读数 3370

软件的需求分析阶段知道系统要“做什么”,而软件设计阶段我们明白的是“怎么做”。

软件的设计分为:总体设计/\详细设计

设计基本原理:


总体设计的任务和过程

总体设计分为:面向数据,面向功能,面向对象的分析


设计原则:独立性,规模,深,宽,入,出。作用域。接口。单入单出。预测(黑盒子)

总体设计图形工具

1.层次图:描述层次结构。

2.HIPO图:在层次图的基础上,把图中除了顶层的方框外都加上编号****基本形式:输入,处理,输出。

3.结构图(SC):表达程序结构图形的表示方法,反映程序模块间的层次关系和联系。

成分:模块,模块间调用关系,通信,辅助控制符号。

结构图的四中类型:传入,传出,变换,协调

结构图VS数据流图

数据流图反映的是程序中数据流的情况

结构图反映的是程序中控制流的情况

结构图VS程序流程图

Battle1

结构图着重反映模块间的隶属关系,即调用关系和层次关系。

程序流程图表达程序执行的顺序及执行顺序依赖的条件。

Battle2

结构图着眼于软件系统的总体结构,不涉及内部细节,只考虑模块作用,以及上下级模块关系

程序流程图表达执行程序的具体算法

面向数据流的设计方法

目标:给出设计软件结构的一个系统化途径。

作用:信息流映射成软件结构。

映射的方法由信息流的类型决定

    信息流的类型分为两类

 1.变换流:信息-->系统-->外换内-->加工-->内换外-->离开。

    变换型系统结构图:输入,变换中心,输出。

 2.事务流:信息-->输入-->处理-->输入类型选动作-->执行

    根据信息流类型,进行不同的分析。

       变换分析:把具有变换流特点的数据流图按预先确定的模式映射成软件结构

       事务分析:设计步骤跟变换分析类似,不同之处是数据流图到软件结构的映射方式不同。事务流映射的软件结构包括一个接收分支和一个发送分支。

2009-12-29 22:10:00 kingsuyue 阅读数 2973

一、 名词解释

1、 软件工程——

建立在系统化、规范化、数量化等工程原则和方法上的,关于软件开发各阶段的定义、任务和作用的工程学科。p1包括软件开发技术、软件项目管理两方面内容。

2、 模型——

对现实的简化,提供系统的蓝图,包含架构[总体]设计和组件[详细]设计;包含重要的因素忽略不相干的细节;一个系统可以从不同视角使用不同模型进行描述;模型可以是架构的[侧重于组织]、也可以关注行为[系统的动作] p3

3、 对象——

现实世界中具有静态特征和动态特征的某个具体的实际事物。P6

4、 封装——

把属性和操作封在一个对象里,不允许外界直接存取和使用。包含属性与行为的结合和信息屏蔽两层含义。P7

5、 消息——

向对象发出的[服务]请求,包括服务的对象标识、服务标识、输入信息和回答信息等。P7定义对象之间单路通信,是从发送方到接收方的控制流,激发某操作、唤醒信号或导致对象的创建或撤消。P164用箭头表示,符号见表10-1

6、 继承——

派生类或子类自动拥有基类或父类的全部属性和操作的类创建方法。P8

7、 多态——

同一操作作用于不同对象,有不同解释或不同的执行结果。P9两种——编译时、运行时;3实现方式——接口、继承、抽象类。

8、 UML——

一种功能强大的、面向对象的可视化系统分析的建模语言p23

[对面向对象系统进行可视化、详述、构造和文档化的工具,已成为软件建模的工业标准。]

9、 视图——

从某个方面或角度出发描述系统,或表达系统某个方面特征的一个或多个图。p63

10、 动作事物——

时间、空间上的动作,模型的动词;最基本的是交互与状态机p69

11、 交互——

一组对象在特定上下文、为达到特定目的进行一系列消息交换组成的动作,要列出每个操作的消息、动作次序、连接关系。p69

12、 状态——

13、 用例——P78

14、 事件流——P79

15、 对象关联——

16、 可见性——

描述属性和操作是否可被其他类引用p95

17、 活动——

18、 激活——

对象被占用以完成某任务,用矩形条表示。P165

19、 状态——

对对象或交互在其生命周期中所满足的条件、执行某些动作或等待某些事件的抽象。P47

20、 迁移——

两种状态之间的关联描述,指特定事件发生且满足某种条件时由前一状态进入后一状态,也称为激活迁移,由“源状态”转换到“目标状态”。P50

21、 动作——

动作P134一组最小的可执行行为,耗时与外界历时比可忽略

22、 动作[状态]——

原子的不可中断的行为状态。

23、 状态机——

由输入集、输出集、状态集及其映射关系集构成的、记录给定时刻或状态下事物根据不同输入所引起的变化而改变状态或引发动作。

24、 软件开发——

针对问题进行软件需求与系统分析、设计、编程、测试和维护的求解过程,主要活动有两个:认识和描述问题、解决问题。

25、 用例——

抽象描述系统产生对特定参与者有价值而且可观测的结果而执行的一组动作。P69系统与特定角色交互执行的一系列动作。

26、 活动类——

其对象有一个或多个进程或线程的类

27、 组件——

28、 节点——

29、 面向对象——

从事物的本质特点出发来看待事物、分析事物及其相互的内在关系的方法论。

30、 类——

具有相同属性与服务的一组对象的集合。

31、 元模型——

定义用于描述模型的体系结构和语言,是元元模型的实例。

32、 模型——

对客观存在的研究对象或将要建立的系统构成与行为的抽象描述,有赖于抽象方法和观察视角或层次。

33、 属性p95——

类所代表的事物特性,3种可见性

34、 操作p96——

一类对象能做事务的抽象,相当于服务的实现,由返回类型、名称和参数表构成的签名完整描述。4类可见性:包内公有“~

35、 职责p97

—类或其它元素的契约或义务,是特征属性和行为操作的较高层次集合命名

36、 转换p132——

特定事件发生或某条件满足时对象完成一定动作而从源状态转变到目标状态,分4种:内、外、完成、复合。

P132包括5部分信息:源、目标、触发事件、监护条件、动作

37、 监护条件P134——

触发转换必须满足的条件,是一个布尔表达式。

38、 泳道图——

将动作、状态及动作按负责的对象用垂直线进行分组的活动图p146

39、 状态——

对对象或交互在其生命周期中所满足的条件、执行某些动作或等待某些事件的抽象。

40、 组件(Component)

p185:是系统中定义良好接口的、可替换的物理实现单元;可以是源代码、二进制或可执行的组件。

41、 节点(Node)p196

——运行时计算资源的物理要素,具有内存和运算能力、位置

双向工程

二、 选择题

优秀的程序除了功能正确、性能优良以外,还应该易读、易用、易维护p1

软件工程包括两方面内容:软件开发技术和软件项目管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境;软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理和项目计划等

经典的软件工程思想将软件开发分成5个阶段:需求分析阶段(Requirements Capture)、系统分析与设计(System Analysis and Design)阶段、系统实现(Implementation)阶段、测试(Testing)阶段和维护(Maintenance)阶段

 

1、 1、最适合UML的开发过程描述是_____

A、结构化开发过程                     B、用例驱动、架构为中心、增量迭代

C、模型驱动的软件开发过程 D、面向对象开发过程

2、 2UML的规则不包括______

A.命名 B.范围 C.可见性   D.扩展机制 E完整性 F执行

3、 3UML语言体系结构不包括_____

A、元元模型  B、原模型  C、模型  D、用户对象

4、 4、类不可用于对系统中_____建模。

A、词汇 B、职责分布 C、非软件事物     D、动态行为

5、 5UML的公共机制不包括______

A.规格说明 B.修饰 C.通用划分 D.命名 E扩展机制

6、 6、用于对系统中反应型实体进行建模的是__ __

A、状态图      B、活动图      C、顺序图      D、协作图

7、 7、用于对系统功能需求进行建模的是__ ___

A、状态图      B、活动图      C、顺序图      D、用例图

8、 8、用于对系统中实体之间动态交互过程建模的是__  ___

A、状态图     B、活动图        C、交互图    D、用例图

9、 9、根据定义,构件不具有以下哪个特征:__  ___

A、有用性     B、独立性        C、适应性    D、易用性

E、商业性     F、递归性     G、接口标准化    H、多态性

10、 10、状态机不是__  ___的局部视图。

A、对象  B、系统总体行为  C、实体的行为    D、用例或协作

1D  2B  3C  4A

1A      2B       3C       4B

三、 填空题

1、 类元的可见性表示符号中:“+”表示公有的,“-”表示______的,
#”表示_____的。

 

2、 UML定义的一些基本的描述事物的语义规则有5种:_______、范围、_____________________

3、 仔细查看下图,识别模型元素,并填入标注框内。

1

2

3

A 触发状态 B 并发分支符号

C 停止状态 D 并发汇合符号

4、 教材介绍的最流行的三种设计工具是EARoseJBOOP13

5、 UML的模型元素包括__________________P63

6、 UML提供的通用机制可以为模型元素提供额外的_______________

四、 简答题

1、 通用建模语言的必要性p4

共享、统一语义[个性化理解];更好地规划、更快开发;减少复杂性影响

2、 建模4原则

选择合适、准确的模型

多角度、多方式表达

以切合实际需要、表达重要细节为准

独立模型的关联才能很好地表现系统

3、 面向对象的四种关系及其表达模式

对象的分类关系:一般/特殊结构

对象之间的组成关系:整体/部分结构

对象属性之间的静态联系:实例连接

对象行为之间的动态联系:消息连接

4、 OMT-2的建模特征p11

引入各种独立于语言的符号;

用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模;

定义的概念和符号,可用于软件开发的分析、设计和实现的全过程

5、 OOSE的建模特征

面向用例,引入外部角色描述用例;

用例贯穿始终,包括系统测试与验证;

适合于业务过程和需求分析。

6、 软件开发的CASE工具一般包括哪几类?

分析、设计、代码生成、测试、文档编制与生成、逆向工程等p13

7、 开发工具的作用

使设计与构建变得更直观、更容易理解和修改

8、 对象模型的五个层次p13

类与对象层、属性层、服务层、结构层和主题层,分别对应建立对象模型的5项主要活动:发现对象、定义类、定义属性、定义服务、识别结构。

9、 Rose的四个视图及作用

用例视图Use Case View、逻辑视图Logical View、组件视图Component View、配置视图Deployment View

用例视图:包括系统的所有参与者、用例和用例图,还可包括用例的局部视图——时序图和协作图;与实现无关,只关注高层功能

逻辑视图:关注系统如何实现用例表达的功能,描述组件之间的关联,包括组件的细节因素如特定类、类图和状态图等

组件视图:说明组件及其各自构成要素如模型代码库、可执行文件、运行库等,是代码的实际模块

配置视图:关注系统的实际配置[可不同于逻辑结构];还说明系统性能及处理措施如容错、网络带宽、故障恢复与响应时间等p49

10、 构成UML4个部分是?

视图、图、模型元素、通用机制p63

11、 UML5种视图的内容和作用

p64用例、逻辑、组件、并发、配置

用例视图:强调系统的外部参与者看到的或需要的系统功能

描述系统应该具备的功能;直接驱动其他视图的开发;是测试依据——验证标准

使用者:

逻辑视图:从系统的静态结构和动态行为角度显示如何实现系统功能

系统内部结构与动态协作关系

使用者:设计、开发者

并发视图:显示系统的并发性,解决并发系统存在的通信与同步问题

资源有效利用、代码并行执行及系统异步事件或消息处理,线程之间的通信与同步

使用者:开发、集成

组件视图:显示代码组件的组织结构

使用者:开发

配置视图:显示系统的具体配置,即计算机和设备组成的物理结构

节点上运行实例的部署、各节点设备连接

使用者:开发、集成、测试;评估成果与资源分配

5种视图组合成UML的完整模型。

12、 9种图的内容和作用p66-67

1.用例图:显示谁是相关的用户,用户希望系统提供什么服务,用户需要为系统提供的服务,以便使系统的用户更容易地理解这些元素的用途,也便于软件开发人员最终实现这些元素,它最常用来描述系统以及子系统。

多个参与者与系统用例之间的连接

2.类图:描述类,接口,协作以及它们之间关系的图,用来显示系统中各个类的静态结构。

描述应用领域概念,类、关联

3.对象图:描述的是参与交互的各个对象在交互过程中某一时刻的状态.对象可以看作是类图在某一时刻的实例

多个类实例——对象之间的关联,系统运行的快照——某时间可能呈现的状况

4.状态图:是系统分析的一种常用的工具,它通过建立类对象的生存周期模型来描述随时变化的动态行为,系统分析员在对系统建模时,最先考虑的不是基于活动之间的控制流,而是基于状态之间的控制流,因为系统中对象的状态变化最易发现和理解

补充说明类,其对象可能具有的所有状态及其转换事件

5.时序图:是以时间为序的表示方法,主要用来描述对象的时间顺序

多个对象之间的动态协作,实现一个用例或事件处理功能

6.协作图:描述对象及其间的链

强调与[上下文]环境的关联

7.活动图:是某件事情正在进行的状态,即可以是现实生活中正在进行的某一项工作,也可以是软件系统某个对象的一个操作,活动在状态机表现为由一系列动作组成的非原子的执行过程协作图:描述的是和对象结构相关的信息 它的用途是表示类操作的实现。它可以说明类操作用到的参数,局部变量以及操作中永久链。

描述执行算法的工作流程涉及的活动,控制的流转、决策和条件

8.组件图:是系统实现视图的图形表示,而其中的一个组件图只能表示系统实现视图的一部分,也就是说任何一个组件图都不能描述系统实现的所有方面,只能系统中组件组合起来才能表示完整的系统实现视图,组件中可以包涵注释和约束,也可以包涵或子系统它们都可以将系统中的模型元素组织成较大的组块。

代码物理结构

9.配置图:显示实际的计算机和设备已经它们之间的必要连接,也可以显示连接的类型,还有可以显示配置和配置之间的依赖的关系。不过每个配置必须存在于某些节点上。

系统的软硬件物理结构

10.包图:是维护和控制系统总体结构的重要建模工具.对复杂系统进行建模,经常需要处理大量的类 ,接口,组件.节点和图,这时就有必要将这些元素进行分组,即把语义相近并倾向于同一个变化的元素组织起来加入同一个包中,以方便理解和处理整个模型

13、 UML4类事物

P68结构、动作、分组、注释

14、 7种结构事物

P68类、接口、协作、用例、活动类、组件和节点。

15、 3种扩展组件p73

p73构造型、标记值、约束

16、 建模步骤图

p74

17、 类图建模的3种方式

系统词汇、简单协作、逻辑数据库模式p94

18、 类之间的4种关系中最常用的关联关系的6种修饰

p101是名称、角色、多重性、聚合、组合和导航性。

19、 状态机由5部分组成:

状态、转换、事件、活动和动作。p124

20、 活动图与流程图的区别

3条,对象活动顺序与规则体现的系统行为而非处理过程[控制结构——顺序、分支、循环];并发表示与否;面向对象或面向过程。p145

21、 时序图与协作图的3个相同点

规定责任、支持消息、衡量工具p175

22、 区别

交互映射——链;有效时间——激活p176

23、 3种组件类型

配置、工作产品、执行

24、 UML四层元模型体系结构是什么?

元元模型、元模型、模型、运行实例[应用、方案]p206

25、 UML3种基本构造块是什么?

事物、关系和图。P9

26、 UML定义的4种基本事物是什么?

结构事物、行为事物、分组事物、注释事物p68

27、 用例图构成要素及用例间的4种关系是什么?

执行者或主角、用例和关系;用例间的4种关系是关联、泛化、扩展和包含。

28、 UML概念模型的3种要素是什么?

基本构造块、规则和公共机制。

29、 UML5种基本关系是什么?

关联、依赖、泛化、实现、聚合p70

30、 UML5种动态建模机制是什么?

用例图、协作图、顺序图、活动图和状态图。

 

31、 时序图的四个要素

对象(Object)、生命线(Lifeline)、消息(Message)、激活(Activation) p163

32、 Rup的二维开发模型

P237横轴表示项目的时间维,是过程展开的生命周期特征,描述术语包括周期(Cycle)、阶段(Phase)、迭代(Iteration)、里程碑(Milestone);纵轴以自然的逻辑内容[核心工作流]来组织,术语包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow),如图16-5所示。

33、 构造型扩展机制的优点

模型元素的扩展与调整、UML简单化p209-210

34、 RUP的迭代开发模型的优点

与传统的瀑布模型相比较,迭代过程具有以下优点

1)降低在一个增量上的开支风险

开发人员重复某个迭代,只损失这一个有误开发迭代的花费

2)降低产品无法按照既定进度进入市场的风险

尽早确定风险,可尽早解决问题而不至于在开发后期匆匆忙忙

3)加快整个开发工作的进度

清楚问题的焦点所在,开发人员的工作会更有效率

迭代过程模式更容易适应需求的变化

用户需求通常是在后续阶段中不断细化的

35、 说明UML过程的几个关键流程的三个方面是什么?

制品、工作人员、工作流

五、 综合题

1、 1、识图辨义

2、 2、建模

3、 2.1建立学生选课的用例图

4、 2.2请绘制用例图描述有关教学系统中的“学生选课”功能需求

5、 2.3根据网络化选课经验,绘制学生下载备选课信息的的协作图

6、 2.4根据网络化选课经验,绘制学生下载备选课信息的的协作图

 

2016-05-15 21:55:58 u013553804 阅读数 229

详细设计
目标:确定如何具体实现所要求的系统。
不是具体编写程序,而是设计程序的“蓝图”。
详细设计的结果决定最终程序代码的质量。

结构程序设计
E.W.Dijkstra 最早提出结构程序设计:程序质量与程序中包含的Goto语句的数量成反比(1965)。

1966 ,Bohm, Jacopini ,证明了只用“顺序”、“选择”、“循环”控制结构就能实现任何单入口单出口程序。
1968年,Dijkstra建议从一切高级语言中取消GO TO语句,只用3种基本控制结构写程序。

理论上,最基本的控制结构只有两种:顺序、循环结构(选择结构可由其两者构造)。

学界认识到,不是简单去掉Goto语句的问题,而是要创立一种新的程序设计方法。

——结构化程序设计(IBM率先成功运用),随后在美国宇航局空间实验室飞行模拟系统的设计中,结构化程序设计技术再获成。

结构程序设计:
一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。

使用结构程序设计技术的好处:
1)提高软件开发工程的成功率和生产率;
2)系统有清晰的层次结构,容易阅读理解;
3)单入口单出口的控制结构,容易诊断纠正;
4)模块化可以使得软件可以重用;
5)程序逻辑结构清晰,有利于程序正确性证明。

经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择和DO_WHILE循环;
扩展的结构程序设计:除了三种基本控制结构,还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构和两种扩充结构,还使用BREAK等结构。

人机界面设计
交互式系统中,人机界面设计和数据库设计、体系结构设计及过程设计一样重要。
6.2.1 设计问题
1. 系统响应时间;
系统响应时间重要属性:长度、易变性(系统响应时间相对于平均响应时间的偏差)
2. 用户帮助;
帮助分类:集成的(设计在软件里边)、附加的(联机用户手册)
3. 出错信息处理;
4. 命令交互

(1)是否每个菜单选项都有对应的命令?
(2)采用何种命令形式?(功能键、输入命令、控制系列)
(3)学习和记忆命令的难度?忘了命令怎么办?
(4)用户是否可以定制或缩写命令?

(1)信息应该用用户可以理解的术语描述
(2)信息应该提供有助于从错误中恢复的建设性意见
(3)信息应该指出错误可能导致那些负面后果,以便
用户检查是否出现问题,并在确实出现问题时及时解决。
(4)信息应该伴随着听觉上或视觉上的提示。
(5)信息不能带有指责色彩,不能责怪用户。

设计过程
用户界面设计是一个迭代的过程。(先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见修改)

评估标准:
(1)系统及其界面的规格说明书的长度和复杂程度,预示了用户学习使用该系统所需工作量
(2)命令或动作的数量、命令的平均参数个数或动作中单个操作的个数,预示了系统的交互时间和总体效率
(3)设计模型中包含的动作、命令和系统状态的数量,预示了学习使用该系统时需要记忆的内容的多少。
(4)界面风格、帮助设施和出错协议,预示了界面的复杂程度及其接收该界面的程度。

人机界面设计指南
1. 一般交互指南;(涉及信息显示、数据输入和系统整体控制)
2. 信息显示指南;(信息的不完整、含糊的或难于理解的)
3. 数据输入指南。(选择命令、输入数据和向系统提供输入)


欢迎关注我的微信个人订阅号
这里写图片描述
每天多学一点0.0

软件工程之初识UML

阅读数 898

没有更多推荐了,返回首页