软件工程——实验2:面向对象软件设计方法

实验二 面向对象软件设计方法

一、实验目的

1、掌握使用Visio或Rational Rose绘制类图的步骤;

2、掌握软件工程的基本知识;

3、掌握面向对象软件设计的基本知识;

4、掌握建立类图、顺序图、状态图、部署图的绘制方法。

二、实验环境与设备

  1. 硬件环境:微机1台;
  2. 软件环境:操作系统:Windows 10;建模工具:EdrawMax;

三、实验内容

根据附件1给出的《简单的学生选课管理系统需求描述》采用面向对象分析方法给出系统的设计类图、课程注册用例的交互图(顺序图)。

四、建模思路

4.1 系统角色用例分析

4.1.1 学生
  1. 查询新学期开设课程;
  2. 查询讲课教师情况;
  3. 课程注册;
  4. 查询成绩单;
  5. 登录。
4.1.2 教师
  1. 查询新学期开设课程;
  2. 查询选课学生情况;
  3. 登记成绩单。
  4. 登录。
4.1.3 教务管理员
  1. 信息(教师信息、学生信息和课程信息)维护、安全管理;
  2. 开启、关闭“课程注册”;
  3. 登录。

4.2 体系结构设计

4.2.1 设置分析类
(1)边界类

边界类负责目标软件系统与外部执行者之间的交互,包括:①界面控制:包括输入数据的格式及内容转换,输出结果的呈现,软件运行过程中界面的变化与切换等。②外部接口:实现目标软件系统与外部系统或外部设备之间的信息交流和互操作。主要关注跨越目标软件系统边界的通信协议。③环境隔离:将目标软件系统与操作系统、数据库管理系统、应用服务器中间件等环境软件进行交互的功能与特性封装于边界类之中,使目标软件系统的其余部分尽可能地独立于环境软件。

经过分析,考虑到用户的输入和信息获取,将输入信息接口、显示面板接口(输入)、显示面板接口(输出)作为边界类。

(2)控制类

控制类作为完成用例任务的责任承担者,负责协调、控制其他类共同完成用例规定的功能或行为。一般情况下,一个用例对应一个控制类;不过对于不同用例的任务类似较多的情况下,也有多个用例共享同一控制类的情况。

结合上述三类用户的用例分析,设定控制类如下:

对于读者,将课程查询、教师信息查询、课程注册、成绩单查询、登录作为控制类;对于教师,将课程查询、选课学生查询、成绩单登记、登录作为控制类;对于教务管理员,将信息维护、安全管理、课程注册开启/关闭、登录作为控制类。

又考虑到账号注册需求,增设注册为控制类;三类用户的登录在本质上一致,只是身份权限不同,登陆后跳转不同的操作界面;读者和教师的课程查询功能一致。所以,最终设置登录、课程查询、教师信息查询、课程注册、成绩单查询、选课学生查询、成绩单登记、信息维护、安全管理、课程注册开启/关闭作为控制类。

(3)实体类

实体类负责保存目标软件系统中具有持久意义的信息项并向其他类提供信息访问的操作。其操作具有“内向收敛”特征,仅向目标软件系统的其余部分提供读、写信息项内容的必要的操作接口,一般不涉及业务逻辑处理。

考虑数据持久存储,对于学生:需要查询新学期开设课程,设置选课数据为实体类;需要查询讲课教师情况,设置教师数据为实体类;需要课程注册,设置选课数据为实体类;需要查询成绩单,设置成绩数据为实体类;需要登录,设置学生数据为实体类。对于教师:需要查询新学期开设课程,设置选课数据为实体类;需要查询选课学生情况,设置选课数据、学生数据为实体类;需要登记成绩单,设置成绩数据为实体类;需要登录,设置教师数据为实体类。对于教务管理员:需要信息维护,设置学生数据、教师数据、课程数据为实体类;需要安全管理,设置安全服务为实体类;需要登录,设置管理员数据为实体类。

考虑到重复操作需求,设置教师数据、学生数据、管理员数据、选课数据、成绩数据、安全服务为实体类。又因为教师、学生、管理员的数据都可以包含于用户数据,最终设置用户数据、教师数据、学生数据、管理员数据、选课数据、成绩数据、安全服务为实体类。

图1  学生选课管理系统的体系结构设计 

4.3 界面设计

经过分析,设置登录界面、注册界面、教师界面、教务管理员界面、学生界面。其中,教师界面、教务管理员界面、学生界面同属用户界面。

图2  学生选课管理系统的界面设计类图

五、设计模型

5.1 设计类图

图3  学生选课管理系统的设计类图

5.2 课程注册用例的顺序图

图4  课程注册用例的顺序图

六、结果分析

6.1 设计类图完成结果分析

学生选课管理系统的功能模型可以分成四大模块,分别是登录模块、学生管理模块、教师管理模块和教务管理员管理模块。其中,登录模块可引申出注册模块。因此,其软件需求与我们设计类图中的界面类完全一致。

学生管理模块下分课程查询、讲课教师查询、课程注册、成绩单查询四个部分;教师管理模块下分课程查询、选课学生情况查询、成绩单登记三个部分;教务管理员模块下分课程注册管理、安全维护两个模块,其中安全维护又可细分为信息管理和安全服务。其软件需求与我们设计类图中的接口设计一致。

考虑到数据的持久存储,上文分析的实体类与设计类图中的构件设计一致。

故我们所构建的设计类图较好地对接了软件的各个功能需求实现,有比较匹配的一致型。并且对于数据的持久存储和软件的安全性均有考虑。

6.2 心得体会

这是软件工程的第二次实验课,主要针对课本第六至九章的内容进行了巩固与实践。在第一次实验对、系统需求分析的基础上,综合考虑各种制约因素,通过体系结构设计、用户界面设计及详细设计过程,实现软件设计,完成设计类图和课程注册用例的顺序图。

首先,我从抽象的角度刻画出组成目标软件系统的模块以及它们之间的逻辑关系和协作关系,从而设计体系结构模型。这里需要特别注意的是,高层设计不能缺位,否则会使模块的功能、行为、接口出现冗余、冲突、无法协同工作的情况。并且,需要充分考虑数据持久存储和软件安全性的保障。

其后,建立界面设计模型。利用面向对象的界面模型设计方法,我们需要先考虑清楚有哪些界面类以及它们之间的界面流转关系。再去分析每个类中界面元素组织、布局、预期响应行为和呈现形态。

接下来,设计模型必须说明用户界面模型和体系结构模型中的设计元素如何协同工作以实现每项软件需求,即进行用例设计模型。此处实验要求中以设计课程注册用例的顺序图反映学习情况。最后,将上述所有模型整合优化,进行详细设计模型设计,获得设计类图。

通过本次实验对建模思路的整理与分析,使得我更加深入得了解了软件设计过程,并对其中的各阶段过程有了掌握。与此同时,对绘图软件的操作和运用也愈发娴熟。

  • 26
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引言 1.1编写目的 图书管理系统详细设计设计的第二个阶段,这个阶段的主要任务是在图书管理系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。 概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计。具体的说,模块设计就是要为已经产生的图书管理各子系统设计详细的算法。但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述, 直接翻译、转化为用某种程序设计语言书写的程序。 1.2 参考资料 《实用软件工程》 《Oracle数据库》 《数据结构》 《软件工程概述》 2.软件结构 3.模块描述 3.1 模块名称 登陆模块 3.1.1功能描述 (1)功能类型:查询数据 (2)功能描述: 提高系统的安全性 (3)前提业务: 无 (4)后继业务: 02管理模块 (5)功能约束:权限约束 3.1.2类属性和类方法 3.1.3 重要的算法 进行对索要登陆人员进行信息注册,给予所登陆的账号进行登陆,并且进行验证。 3.2 模块名称 管理模块 3.2.1功能描述 (1) 功能类型:其他 (2)功能概述: 总体归纳图书馆管理功能 (3) 前提业务:登陆模块(01) (4) 后续业务: 021, 022, 023, 024, 03(5)功能约束: 权限约束 (6) 约束描述: (7) 操作权限:图书馆管理人员 3.2.2类属性和类方法 3.2.3 重要的算法 1).图书编号生成(自动生成)录入时自动生成,对于新书的编号,显示添加图书完成后的页面中 2).图书信息修改(即对该类图书总量能修改,包含图书的编号 数据库操作,根据数据库显示修改之前,后的页面 3).注销(破损图书) 数据库操作,注销页面 唯一编号--检索出先关书籍信息--删除 4).查询 3.3 模块名称 (031)图书信息查询模块 3.3.1功能描述 (1) 功能类型:查询数据 (2)功能概述: 显示查询结果 (3)前提业务: 无 (4) 后继业务: (5) 功能约束:没有约束; (6)约束描述: (7)操作权限: 面向所有用户 3.3.2类属性和类方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阮阮的阮阮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值