SPOC学校专有课程
UML面向对象分析和建模
分享
spContent=本课程介绍软件设计理念、方法,帮助同学们成长为优秀的软件设计师!当同学们完成了Java等语言的学习之后,面对一个需要开发的软件系统,该如何入手呢?定义多少个类?定义每个类多少个属性、哪些操作?如何定义类之间的关系?为什么?这样的软件系统能够承受今后需求的不断变更吗?想学的话一起来吧!
—— 课程团队
课程概述

本课程是以面向对象方法学为主要分析法,以UML语言描述面向对象方法学的三种模型--对象模型、动态模型和功能模型。这三种模型涉及采用面向对象技术开发软件项目的需求分析、总体设计和详细设计三个阶段的内容。这三个阶段包括的模型有:UML Usecase用例模型描述业务系统的功能;UML类图模型、UML对象图模型、UML构件图模型描述业务系统的静态结构;UML时序图模型、UML活动图模型、UML状态图模型描述业务系统的动态行为。通过本课程的学习,使学生获得面向对象方法学知识、面向对象分析与设计的技能,培养学生的面向对象抽象能力,掌握UML建模工具的使用和面向对象分析与设计方法,使学生能够利用UML建模工具对实际业务系统进行分析和设计,进一步加深面向编程语言的理解和掌握,并为后续的相关实训课程和毕业设计打下良好的基础。

授课目标

    面对一个软件开发项目,学会如何入手去解决问题,从问题领域分析、建模,到形成设计的过程;既要思考实现系统功能这一基本要求,更要考虑如何使设计方案具有扩展性、适应性。掌握常用的设计工具,以便很好地去展示设计思想。

 

成绩 要求

考试课《UML面向对象分析与建模》的期末总评成绩包括3个部分,分别为平时作业、实验报告和期末考试。重点体现过程化考核形式,把期末总评成绩分散到整个学期学习的全过程。具体要求及成绩评定方法如下:

(1)平时作业(10%)

布置至少三次课后作业,作业包括课后思考题和分析设计题,评分以答题思路的规范性、整洁性、整体性、逻辑性、正确性为依据,每次满分为100分,最后取平均分。如果作业雷同本次作业记零分。


(2)模型设计文档和实验报告(30%)

选择有针对性的设计实验,要求学生通过一个完整业务系统的UML建模,完成实验并撰写模型设计文档和实验报告。模型设计文档和实验报告的评分以设计和实验完成的质量为依据,每次满分100分,最后取平均分。如有雷同,本次实验报告记零分。

(3)期末考试(50%)

期末进行综合闭卷考试,总分为100分,题型为选择题、判断题、分析题和设计题。期末卷面成绩未达总分50%者,该门课程成绩作不及格处理。


课程大纲
预备知识

C++ 或者Java等面向对象程序设计语言

UML及其工具,如 Enterprise Architect


参考资料

教材

 Applying.UML.and.Patterns,3rd.Edition , Graig Larman


参考书

Object.Oriented.Thought.Process.The.2nd.Edition.

Head.First Object Oriented Analysis and Design (2006.11)

深入浅出面向对象分析与设计,李云华著

常见问题

【1】为什么要设计、为什么恰当的软件设计是一种过程、它很重要吗?

答:良好的设计,能够使待开发系统更准确地满足客户的需要,同时有更大的可能性满足今后的需求变化,比如 客户业务扩展、技术更新、运行环境的改变等,极大地降低客户运营成本。

软件设计有一定的步骤,它的输入是领域模型、用例模型、前景文档、补充需求说明文档等资料。在此基础上,给出初步的架构设计、模块划分、类图。对一些重要的功能模块,通过设计顺序图可以动态检测 其实现的可行性、对部分模块通过状态图来分析各种状态下处理的各种事件等。如果遇到不合适的地方,需要返回前一阶段进行改进。设计是一个需要不断演化、完善的过程。

设计很重要!


【2】什么是面向对象设计、有没有超越面向对象设计的设计方法?

答:以面向对象的思维方式去研究、分析待开发系统,找出其中的对象、对象的属性、对象之间的关系、为对象分析分配职责,在对象的分工协作过程中完成整个系统的功能,这是面向对象设计。

谈不上“超越面向对象设计”。设计的方式目前看来主要有两大类: 面向功能分析设计、面向对象分析设计。对一个大而复杂的系统,一般先用面向功能的方式,对系统进行分层、或者划分子系统的方式。对某一个具体的子系统,考虑采用面向对象的设计方式。


【3】什么是好的设计、如何区分好的设计与坏的设计?

答:好的设计,有一些质量属性可以作为衡量的标准:如,可扩展性、可移植性、可靠性、可重用性等。符合这些性质的设计方案,一般而言,就是好的设计。

至于如何区分,笼统的标准就是 “满足客户需要的设计”,就是好的设计。理论一点评判,就是满足上述的质量标准。


【4】如何去设计、针对通常的设计问题,有没有现成的“处方”?

有,设计模式(design pattern)。前人为了解决某类问题,给出了很好的解决方案。当前的待开发系统也遇到类似的问题,可以考虑、借鉴前人的这个解决方案,省时、省力、可靠。