软件工程基础实验.docx
- 文档编号:27275374
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:32
- 大小:564.44KB
软件工程基础实验.docx
《软件工程基础实验.docx》由会员分享,可在线阅读,更多相关《软件工程基础实验.docx(32页珍藏版)》请在冰豆网上搜索。
软件工程基础实验
软件工程基础实验
LT
1.
2.
3.对系统做出概要分析,拟定开发流程;
4.绘制出甘特图;
5.绘制线性时间图。
一、实验数据记录结果分析
系统流程图:
甘特图:
线性时间图:
二、实验结论
成功绘制出图书管理系统的系统流程图,甘特图,线性时间图。
三、实验总结
对系统流程的理解直接决定业务逻辑的正确与否,错误的系统流程将导致系统开发逻辑设计不合理。
甘特图和线性时间图能直观的展示出系统开发的进度,有利于监督项目开发,调整开发进度。
实验二
需求分析
一、实验室名称
综合
二、试验项目名称
需求分析
三、实验目的
1.学会如何根据客户的需求整合需求分析报告;
2.了解和使用IDEF1X图和UML类图对系统做出概要设计;
3.学会使用visio绘制IDEF1X图和UML类图;
4.学会使用visio绘制用例图。
四、实验内容
1、请从下面的描述中找出绘制数据流图的四种成分并用Visio绘制数据流图。
某培训中心要研制一个计算机管理系统。
它的业务是:
将学员发来的信件收集分类后,按几种不同的情况处理。
(1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
(2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。
(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。
2、有一简单选课系统,用文字描述如下,试用IDEF1X图和UML类图描述该系统的信息模型,并用Visio绘制该IDEF1X图和UML类图。
1)基本描述:
在该系统中,有学院、教师、课程、学生等实体,他们的属性分别是:
学院:
学院编号、学院名称、地址、联系电话、院长等基本属性;
教师:
教师编号、姓名、性别、年龄、职称、所在学院等属性;
课程:
课程编号、课程名称、课程性质(必修/选修)、学分、开课学院等属性;
学生:
学号、姓名、性别、年龄、入学时间、学院等属性。
教学班实体:
教学班号、上课教师、课程、上课学期、上课时间、上课周次。
2)功能需求如下:
(1)能完成基本信息的维护:
即各实体的基本信息的增、删、改、查。
(2)排课:
为教师安排一学期所上的课程。
一位教师在一学期可以上一门课或多门课,也可以不上课;一门课可以有多个教师上,但是不同的教师上的课应该属于不同的教学班。
(3)学生选课:
学生根据教学要求进行选课。
在学生选课之前检查该学生是否有选课资格(比如是否欠费、前期课程是否修完并通过);一个学生可以选多门课、一门课可以被多个学生选修,但是一个学生不能选择同一门课的不同教学班;如果学生选了一门课的某个教学班后再选该门课的其他教学班系统应做出出错提示;统计已选教学班的学生人数;一个教学班的选课名额有限;学生选课后,如果发现选课不合理可以退选、重选;选课结束后应提供打印课程表的功能。
3、请用Visio或RationalRose绘制如图2所示的用例图。
五、试验方案分析与设计
整理分析各个功能需求。
六、实验器材(设备,元器件)
七、实验步骤
1.对系统进行分析,整合用户需求;
2.绘制数据流图;
3.绘制IDEF1X图;
4.绘制UML类图;
5.绘制用例图。
八、实验数据记录结果分析
数据流图:
IDEF1X图:
UML类图:
用例图:
九、实验结论
成功绘制出数据流图,绘制IDEF1X图,绘制UML类图,绘制用例图。
十、实验总结
对visio不熟悉导致进度特别慢,以后应该加强对工具使用的练习,要熟练使用常用工具。
绘制UML类图的时候要明确各个类之间的关系。
实验三
系统设计
一.实验室名称
二综
二.试验项目名称
系统设计
三.实验目的
1.掌握:
结构化数据流设计技术、面向对象设计技术;
2.掌握:
Visio工具绘制软件结构图;
3.掌握:
Rose或Visio工具绘制UML模型图。
四.实验内容
1、试针对实验二的培训中心管理系统,试用结构化设计方法对其进行设计,并用Visio绘制其对应的软件结构图。
(选做)
2、某室内保温系统的描述如下:
如果主开关置于“加热”状态,保温系统的控制器负责开关锅炉,监视锅炉系统的燃油流量和燃烧状态,进而调节进入房间的热流量。
当室内温度降至(Tr-2)度以下,控制器启动锅炉。
这里Tr是用户设定的理想室温。
锅炉启动过程如下:
(1)控制器向锅炉的马达发送信号;
(2)控制器监视马达速度。
马达达到正常操作速度时,启动点火并打开油阀;
(3)控制器监视水温,一旦水温达到预定值,发信号打开水流循环阀。
热水开始在室内循环。
(4)如果发生异常情况,燃油流量指示器和光感器向控制器发信号。
此时控制器发信号关闭系统。
(5)一旦室内温度达到(Tr-2)度,控制器首先关闭油阀,延迟5秒钟后关闭锅炉马达。
系统须满足以下限制:
(1)锅炉停机后重启必须延迟5秒钟;
(2)在主开关关闭或油阀关闭5秒钟内应指示锅炉停机。
试据此对系统进行设计,采用RationalRose绘制控制器的状态图,同时用顺序图描述锅炉启动过程。
五.试验方案分析与设计
依据软件设计原则,对系统进行设计。
六.实验器材(设备,元器件)
七.实验步骤
(1)建立软件结构图的基本步骤:
1.先添加函数/子例程;
2.再添加有条件调用;
3.然后添加调用连线;
4.最后为调用线添加数据流或标志流。
(2)Rose建立UML图的基本步骤:
1.启动Rose,建立新模型,保存模型;
2.在某视图下建立模型。
八.实验数据记录结果分析
控制器状态图:
锅炉启动过程顺序图:
九.实验结论
成功绘制出控制器状态图和锅炉启动过程顺序图。
十.实验总结
对visio不熟悉导致进度特别慢,自学软件使用技巧的能力差,以后应该加强对工具使用的练习,要熟练使用常用工具。
绘制UML类图的时候要明确各个类之间的关系。
实验四
系统实现
一.实验室名称
二综
二.试验项目名称
系统实现
三.实验目的
1.掌握:
系统实现的有关技术及其相关工具。
四.实验内容
1、试对图3所示的课程管理对象类图,采用Java在Eclipse下编码实现,并用JUnit框架对某Java类进行测试。
图3类图
2、针对某网站,采用SilkTest和SilkPerformer分别进行功能测试和性能测试。
(选做)
五.试验方案分析与设计
1.设计的系统功能如下:
六.实验器材(设备,元器件)
七.实验步骤
1.进入:
[Window]菜单下的[Preferences],选择Java支:
⏹检测已安装的JRE;
⏹设置工作台选项;
⏹设置新建项目选项;
⏹设置Java编辑器。
2.选择[File]->[New]->[Project],从弹出的窗口中选[Java]->[JavaProject],单击下一步;
3.输入项目名,并确定项目保存的文件目录,单击完成即可,在Java透视图中的“资源管理器”中便可看到创建的项目。
4.选择新建的项目;
5.在工具栏中单击“创建Java类”按钮(带有一个C标记);
6.在弹出的窗口中输入类名称,并设置有关属性(如选中publicstaticvoidmain(String[]args)),单击完成,则Java编辑窗口会自动打开。
7.在Window主菜单下选择Preferences;
8.从弹出的菜单中打开Java菜单,单击ClasspathVariables;
9.单击New,在弹出的对话框中设置junit.jar的路径信息,单击确定即可。
八.实验数据记录结果分析
1.用户登录界面User.java
importjava.awt.Container;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
publicclassUserextendsJFrame{
privateJLabeluse,password;
privateJTextFieldk1;//用户名输入框
privateJPasswordFieldk2;//密码输入框
privateJButtonb1,b2;
//登录窗口
publicUser(JFramef){
super("系统登录");
Containerc=getContentPane();
c.setLayout(newFlowLayout());
use=newJLabel("学号:
");
use.setFont(newFont("Serif",Font.PLAIN,20));
password=newJLabel("密码:
");
password.setFont(newFont("Serif",Font.PLAIN,20));
k1=newJTextField(12);
k2=newJPasswordField(12);
b1=newJButton("登录");
b2=newJButton("退出");
//设置登录方法
//BHandlerb=newBHandler();
//EXITd=newEXIT();
//b1.addActionListener(b);
//b2.addActionListener(d);
//添加控件
c.add(use);
c.add(k1);
c.add(password);
c.add(k2);
c.add(b1);
c.add(b2);
setBounds(600,300,250,150);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
//主函数
publicstaticvoidmain(String[]args){
Userf1=newUser(newJFrame());}}
效果图:
2.用户界面:
Menu.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassMenuextendsJFrameimplementsActionListener{
Addstu增加学生界面;
Updatastu修改学生界面;
Delstu删除学生界面;
AddC增加课程界面;
DelC删除课程界面;
UpdateC修改课程界面;
AddSC增加选课界面;
DelSC删除选课界面;
UpdateSC修改选课界面;
Selstu学生查询界面;
JPanelpCenter;
CardLayoutcard=null;
JLabellabel=null;
JMenuBarmb=newJMenuBar();//菜单栏
JMenum1=newJMenu("学生管理");
JMenuItemadd1=newJMenuItem("add1");
JMenuItemupdata1=newJMenuItem("updata1");
JMenuItemdelete1=newJMenuItem("delete1");
JMenum2=newJMenu("课程管理");
JMenuItemadd2=newJMenuItem("add2");
JMenuItemupdata2=newJMenuItem("updata2");
JMenuItemdelete2=newJMenuItem("delete2");
JMenum3=newJMenu("选课管理");
JMenuItemadd3=newJMenuItem("add3");
JMenuItemupdata3=newJMenuItem("updata3");
JMenuItemdelete3=newJMenuItem("delete3");
JMenum4=newJMenu("查询管理");
JMenuItem学生查询=newJMenuItem("查询信息");
JMenuItemm5=newJMenuItem("系统退出");
Fontt=newFont("sanerif",Font.PLAIN,12);
publicMenu(){
this.setTitle("学生选课管理系统");
try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch(Exceptione){System.err.println("不能设置外观:
"+e);}
//组合菜单
addMenu1();
addMenu2();
addMenu3();
addMenu4();
addJMenuBar();
setJMenuBar(mb);
label=newJLabel("选课管理系统",JLabel.CENTER);
label.setFont(newFont("宋体",Font.BOLD,36));
label.setHorizontalTextPosition(SwingConstants.CENTER);
label.setForeground(Color.red);
//点击事件
add1.addActionListener(this);
updata1.addActionListener(this);
delete1.addActionListener(this);
m5.addActionListener(this);
add2.addActionListener(this);
delete2.addActionListener(this);
updata2.addActionListener(this);
add3.addActionListener(this);
delete3.addActionListener(this);
updata3.addActionListener(this);
学生查询.addActionListener(this);
card=newCardLayout();
pCenter=newJPanel();
pCenter.setLayout(card);
增加学生界面=newAddstu();
修改学生界面=newUpdatastu();
删除学生界面=newDelstu();
增加课程界面=newAddC();
删除课程界面=newDelC();
修改课程界面=newUpdateC();
增加选课界面=newAddSC();
删除选课界面=newDelSC();
修改选课界面=newUpdateSC();
学生查询界面=newSelstu();
pCenter.add("欢迎界面",label);
pCenter.add("增加学生界面",增加学生界面);
pCenter.add("修改学生界面",修改学生界面);
pCenter.add("删除学生界面",删除学生界面);
pCenter.add("增加课程界面",增加课程界面);
pCenter.add("删除课程界面",删除课程界面);
pCenter.add("修改课程界面",修改课程界面);
pCenter.add("增加选课界面",增加选课界面);
pCenter.add("删除选课界面",删除选课界面);
pCenter.add("修改选课界面",修改选课界面);
pCenter.add("学生查询界面",学生查询界面);
add(pCenter,BorderLayout.CENTER);
validate();
setVisible(true);
setBounds(400,150,400,280);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addWindowListener(newWindowAdapter(){//关闭程序时的操作
publicvoidwindowClosing(WindowEvente){System.exit(0);}});
validate();}
privatevoidaddJMenuBar(){
mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5);}
privatevoidaddMenu4(){
m4.add(学生查询);m4.setFont(t);}
privatevoidaddMenu3(){
m3.add(add3);m3.add(updata3);m3.add(delete3);m3.setFont(t);}
privatevoidaddMenu2(){//将菜单加入到菜单栏中
m2.add(add2);m2.add(updata2);m2.add(delete2);m2.setFont(t);}
privatevoidaddMenu1(){
m1.add(add1);m1.add(updata1);m1.add(delete1);m1.setFont(t);}
publicvoidactionPerformed(ActionEvente){
Objectobj=e.getSource();
if(obj==m5){System.exit(0);}
else{if(obj==add1){card.show(pCenter,"增加学生界面");}
else{if(obj==updata1){card.show(pCenter,"修改学生界面");}
else{if(obj==delete1){card.show(pCenter,"删除学生界面");}
else{if(obj==add2){card.show(pCenter,"增加课程界面");}
else{if(obj==delete2){card.show(pCenter,"删除课程界面");}
else{if(obj==updata2){card.show(pCenter,"修改课程界面");}
else{if(obj==add3){card.show(pCenter,"增加选课界面");}
else{if(obj==delete3){card.show(pCenter,"删除选课界面");}
else{if(obj==updata3){card.show(pCenter,"修改选课界面");}
else{if(obj==学生查询){card.show(pCenter,"学生查询界面");
}}}}}}}}}}}}
publicstaticvoidmain(String[]args){newMenu();}}
效果图:
3.添加界面:
AddC.java/AddSC.java/Addstu.java
importjava.awt.*;
importjavax.swing.*;
importjava.sql.*;
importjava.awt.event.*;
publicclassAddCextendsJPanelimplementsActionListener{
JTextField课号,课名;
JButton录入;
publicAddC(){
try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println("不能设置外观:
"+e);}
课号=newJTextField(12);
课名=newJTextField(12);
录入=newJButton("录入");
录入.addActionListener(this);
Boxbox1=Box.createHorizontalBox();//横放box
Boxbox2=Box.createHorizontalBox();
Boxbox3=Box.createHorizontalBox();
Boxbox4=Box.createHorizontalBox();
box1.add(newJLabel("课号:
"));
box1.add(课号);
box2.add(newJLabel("课名:
"));
box2.add(课名);
box4.add(录入);
BoxboxH=Box.createVerticalBox();//竖放box
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(Box.createVerticalGlue());
JPanelmessPanel=newJPanel();
messPanel.add(boxH);
setLayout(newBorderLayout());
add(messPanel,BorderLayout.CENTER);
validate();}
效果图:
4.添加界面:
UpdateC.java/UpdateSC.java/Updatestu.java
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
importjavax.swing.*;
publicclassUpdateCextendsJPanelimplementsActionListener{
Stringsave=null;
JTextField课号1,课号,课名;
JButton修改,查找;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 基础 实验