软件工程基础实验.doc

上传人:叶*** 文档编号:37574441 上传时间:2022-09-01 格式:DOC 页数:29 大小:182.50KB
返回 下载 相关 举报
软件工程基础实验.doc_第1页
第1页 / 共29页
软件工程基础实验.doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《软件工程基础实验.doc》由会员分享,可在线阅读,更多相关《软件工程基础实验.doc(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验一可行性研究与项目计划一、 实验室名称 综合二、 实验项目名称 图书管理系统三、 实验目的1. 了解与使用甘特图,系统流程图,线性时间图来描绘系统开发流程与进度;2. 学会使用visio绘制常用的流程图。四、 实验内容图书管管理系统更便于对图书进行分类与管理,对借阅者进行时间限定,使得借书的效益更高更安全。提高工作效益,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现了自动化。图书管管理系统的主要功能为:书目管理、借阅证管理、借还图书、查询、缴费。书目管理主要是针对管理员身份而言的(比如新增书目,删除书目等等);借阅证管理分为五部分:注册、补发、挂失、暂停、注销;借还图书:借书

2、、还书;查询:图书查询、借阅时间缴费主要是计算超期罚款并交纳费用。图书管管理系统的系统流程图如图1所示。图1 系统流程图试对系统进行可行性研究,用Visio绘制图书管管理系统的系统流程图,同时制定系统的开发计划,用Gantt图与时间线图描述进度计划安排。五、 实验方案分析与设计运用专业的方法整理分析图书管理流程,并对功能进行整合。六、 实验器材(设备,元器件)七、 实验步骤1. 对图书管理系统进行分析,整合用户权限与操作;2. 根据用户操作流程画出系统流程图;3. 对系统做出概要分析,拟定开发流程;4. 绘制出甘特图;5. 绘制线性时间图。八、 实验数据记录结果分析系统流程图:甘特图:线性时间

3、图:九、 实验结论成功绘制出图书管理系统的系统流程图,甘特图,线性时间图。十、 实验总结对系统流程的理解直接决定业务逻辑的正确与否,错误的系统流程将导致系统开发逻辑设计不合理。甘特图与线性时间图能直观的展示出系统开发的进度,有利于监督项目开发,调整开发进度。实验二 需求分析一、 实验室名称 综合二、 试验项目名称 需求分析三、 实验目的1. 学会如何根据客户的需求整合需求分析报告;2. 了解与使用IDEF1X图与UML类图对系统做出概要设计;3. 学会使用visio绘制IDEF1X图与UML类图;4. 学会使用visio绘制用例图。四、 实验内容1、请从下面的描述中找出绘制数据流图的四种成分并

4、用Visio绘制数据流图。某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。(1) 如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。(2) 如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件与帐目文件上做相应的修改,并给学生注销单。(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。2、 有一简单选课系统,用文字描述如下,试用IDEF1X图与UML类图描述该系统的信息模型,并用Visio绘制该I

5、DEF1X图与UML类图。1)基本描述:在该系统中,有学院、教师、课程、学生等实体,他们的属性分别是:学院:学院编号、学院名称、地址、联系 、院长等基本属性;教师:教师编号、姓名、性别、年龄、职称、所在学院等属性;课程:课程编号、课程名称、课程性质(必修/选修)、学分、开课学院等属性;学生:学号、姓名、性别、年龄、入学时间、学院等属性。教学班实体:教学班号、上课教师、课程、上课学期、上课时间、上课周次。2)功能需求如下:(1)能完成基本信息的维护:即各实体的基本信息的增、删、改、查。(2)排课:为教师安排一学期所上的课程。一位教师在一学期可以上一门课或多门课,也可以不上课;一门课可以有多个教师

6、上,但是不同的教师上的课应该属于不同的教学班。(3)学生选课:学生根据教学要求进行选课。在学生选课之前检查该学生是否有选课资格(比如是否欠费、前期课程是否修完并通过);一个学生可以选多门课、一门课可以被多个学生选修,但是一个学生不能选择同一门课的不同教学班;如果学生选了一门课的某个教学班后再选该门课的其他教学班系统应做出出错提示;统计已选教学班的学生人数;一个教学班的选课名额有限;学生选课后,如果发现选课不合理可以退选、重选;选课结束后应提供打印课程表的功能。3、请用Visio或Rational Rose绘制如图2所示的用例图。五、 试验方案分析与设计 整理分析各个功能需求。六、 实验器材(设

7、备,元器件)七、 实验步骤 1.对系统进行分析,整合用户需求; 2.绘制数据流图; 3.绘制IDEF1X图; 4.绘制UML类图; 5.绘制用例图。八、 实验数据记录结果分析数据流图:IDEF1X图:UML类图:用例图:九、 实验结论成功绘制出数据流图,绘制IDEF1X图,绘制UML类图,绘制用例图。十、 实验总结对visio不熟悉导致进度特别慢,以后应该加强对工具使用的练习,要熟练使用常用工具。绘制UML类图的时候要明确各个类之间的关系。实验三系统设计一实验室名称 二综二试验项目名称 系统设计三实验目的1. 掌握:结构化数据流设计技术、面向对象设计技术;2. 掌握:Visio工具绘制软件结构

8、图;3. 掌握:Rose或Visio工具绘制UML模型图。四 实验内容1、试针对实验二的培训中心管理系统,试用结构化设计方法对其进行设计,并用Visio绘制其对应的软件结构图。(选做)2、某室内保温系统的描述如下:如果主开关置于“加热”状态,保温系统的控制器负责开关锅炉,监视锅炉系统的燃油流量与燃烧状态,进而调节进入房间的热流量。当室内温度降至(Tr-2)度以下,控制器启动锅炉。这里Tr 是用户设定的理想室温。锅炉启动过程如下:(1)控制器向锅炉的马达发送信号;(2)控制器监视马达速度。马达达到正常操作速度时,启动点火并打开油阀;(3)控制器监视水温, 一旦水温达到预定值, 发信号打开水流循环

9、阀。热水开始在室内循环。(4)如果发生异常情况,燃油流量指示器与光感器向控制器发信号。此时控制器发信号关闭系统。(5)一旦室内温度达到(Tr-2)度,控制器首先关闭油阀,延迟5秒钟后关闭锅炉马达。系统须满足以下限制:(1)锅炉停机后重启必须延迟5秒钟;(2)在主开关关闭或油阀关闭5秒钟内应指示锅炉停机。试据此对系统进行设计,采用Rational Rose绘制控制器的状态图,同时用顺序图描述锅炉启动过程。五试验方案分析与设计 依据软件设计原则,对系统进行设计。六实验器材(设备,元器件)七实验步骤 (1)建立软件结构图的基本步骤: 1. 先添加函数/子例程; 2. 再添加有条件调用; 3. 然后添

10、加调用连线; 4. 最后为调用线添加数据流或标志流。(2)Rose建立UML图的基本步骤: 1. 启动Rose,建立新模型,保存模型; 2. 在某视图下建立模型。八实验数据记录结果分析控制器状态图:锅炉启动过程顺序图:九实验结论成功绘制出控制器状态图与锅炉启动过程顺序图。十实验总结对visio不熟悉导致进度特别慢,自学软件使用技巧的能力差,以后应该加强对工具使用的练习,要熟练使用常用工具。绘制UML类图的时候要明确各个类之间的关系。实验四系统实现一实验室名称二综二试验项目名称 系统实现三实验目的1. 掌握:系统实现的有关技术及其相关工具。四实验内容1、试对图3所示的课程管理对象类图,采用Jav

11、a在Eclipse下编码实现,并用JUnit框架对某Java类进行测试。图3 类图2、针对某网站,采用SilkTest与SilkPerformer分别进行功能测试与性能测试。(选做)五试验方案分析与设计 1.设计的系统功能如下:六实验器材(设备,元器件)七实验步骤 1. 进入:Window菜单下的Preferences,选择Java支:n 检测已安装的JRE;n 设置工作台选项;n 设置新建项目选项;n 设置Java编辑器。2. 选择File-New-Project,从弹出的窗口中选Java-Java Project,单击下一步;3. 输入项目名,并确定项目保存的文件目录,单击完成即可,在Ja

12、va透视图中的“资源管理器”中便可看到创建的项目。4. 选择新建的项目;5. 在工具栏中单击“创建Java类”按钮(带有一个C标记);6. 在弹出的窗口中输入类名称,并设置有关属性(如选中public static void main(String args),单击完成,则Java编辑窗口会自动打开。7. 在Window主菜单下选择Preferences;8. 从弹出的菜单中打开Java菜单,单击Classpath Variables;9. 单击New,在弹出的对话框中设置junit.jar的路径信息,单击确定即可。八实验数据记录结果分析1.用户登录界面User.javaimport java

13、.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class User extends JFrame private JLabel use,password; private JTextField k1;/用户名输入框 pr

14、ivate JPasswordField k2;/密码输入框 private JButton b1,b2;/登录窗口public User(JFrame f)super(系统登录);Container c=getContentPane();c.setLayout(new FlowLayout();use=new JLabel(学号: );use.setFont(new Font(Serif,Font.PLAIN,20);password=new JLabel(密码: );password.setFont(new Font(Serif,Font.PLAIN,20);k1=new JTextFie

15、ld(12);k2=new JPasswordField(12);b1=new JButton(登录);b2=new JButton(退出);/设置登录方法/BHandler b=new BHandler();/EXIT d=new EXIT();/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);setResizab

16、le(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/主函数public static void main(String args) User f1=new User(new JFrame();效果图:2. 用户界面:Menu.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class Menu extends JFrame implements ActionListenerAddstu 增加学生界面;Updatastu 修改学生界面

17、;Delstu 删除学生界面;AddC 增加课程界面;DelC 删除课程界面;UpdateC 修改课程界面;AddSC 增加选课界面;DelSC 删除选课界面;UpdateSC 修改选课界面;Selstu 学生查询界面;JPanel pCenter;CardLayout card=null;JLabel label=null;JMenuBar mb=new JMenuBar();/菜单栏JMenu m1=new JMenu(学生管理);JMenuItem add1=new JMenuItem(add1 );JMenuItem updata1=new JMenuItem(updata1 );JM

18、enuItem delete1=new JMenuItem(delete1 );JMenu m2=new JMenu(课程管理);JMenuItem add2=new JMenuItem(add2 );JMenuItem updata2=new JMenuItem(updata2 );JMenuItem delete2=new JMenuItem(delete2 );JMenu m3=new JMenu(选课管理);JMenuItem add3=new JMenuItem(add3 );JMenuItem updata3=new JMenuItem(updata3 );JMenuItem de

19、lete3=new JMenuItem(delete3 );JMenu m4=new JMenu(查询管理);JMenuItem 学生查询=new JMenuItem(查询信息 );JMenuItem m5=new JMenuItem(系统退出);Font t=new Font (sanerif,Font.PLAIN,12);public Menu ()this.setTitle(学生选课管理系统);try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.er

20、r.println(不能设置外观: +e);/组合菜单addMenu1();addMenu2();addMenu3();addMenu4();addJMenuBar();setJMenuBar(mb);label=new JLabel(选课管理系统,JLabel.CENTER);label.setFont(new Font(宋体,Font.BOLD,36);label.setHorizontalTextPosition(SwingConstants.CENTER);label.setForeground(Color.red);/点击事件add1.addActionListener(this);

21、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(

22、this);card=new CardLayout();pCenter=new JPanel();pCenter.setLayout(card);增加学生界面=new Addstu();修改学生界面=new Updatastu(); 删除学生界面=new Delstu();增加课程界面=new AddC();删除课程界面=new DelC();修改课程界面=new UpdateC();增加选课界面=new AddSC();删除选课界面=new DelSC();修改选课界面=new UpdateSC();学生查询界面=new Selstu();pCenter.add(欢迎界面,label);pC

23、enter.add(增加学生界面,增加学生界面);pCenter.add(修改学生界面,修改学生界面);pCenter.add(删除学生界面,删除学生界面);pCenter.add(增加课程界面,增加课程界面);pCenter.add(删除课程界面,删除课程界面);pCenter.add(修改课程界面,修改课程界面);pCenter.add(增加选课界面,增加选课界面);pCenter.add(删除选课界面,删除选课界面);pCenter.add(修改选课界面,修改选课界面);pCenter.add(学生查询界面, 学生查询界面);add(pCenter,BorderLayout.CENTER

24、);validate();setVisible(true);setBounds(400,150,400,280);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); addWindowListener(new WindowAdapter()/关闭程序时的操作public void windowClosing(WindowEvent e)System.exit(0); );validate();private void addJMenuBar() mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5

25、);private void addMenu4() m4.add(学生查询);m4.setFont(t);private void addMenu3() m3.add(add3);m3.add(updata3);m3.add(delete3);m3.setFont(t);private void addMenu2() /将菜单加入到菜单栏中m2.add(add2);m2.add(updata2);m2.add(delete2);m2.setFont(t); private void addMenu1() m1.add(add1);m1.add(updata1);m1.add(delete1);

26、m1.setFont(t); public void actionPerformed(ActionEvent e)Object obj=e.getSource();if(obj=m5)System.exit(0);elseif(obj=add1)card.show(pCenter,增加学生界面);elseif(obj=updata1) card.show(pCenter,修改学生界面);elseif(obj=delete1) card.show(pCenter, 删除学生界面);elseif(obj=add2) card.show(pCenter, 增加课程界面);elseif(obj=del

27、ete2) card.show(pCenter, 删除课程界面);elseif(obj=updata2) card.show(pCenter, 修改课程界面);elseif(obj=add3) card.show(pCenter, 增加选课界面);elseif(obj=delete3) card.show(pCenter, 删除选课界面);elseif(obj=updata3) card.show(pCenter, 修改选课界面);elseif(obj=学生查询) card.show(pCenter, 学生查询界面);public static void main(String args) n

28、ew Menu();效果图:3. 添加界面:AddC.java/AddSC.java/Addstu.javaimport java.awt.*;import javax.swing.*;import java.sql.*;import java.awt.event.*;public class AddC extends JPanel implements ActionListenerJTextField 课号,课名;JButton 录入;public AddC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassNa

29、me();catch(Exception e)System.err.println(不能设置外观: +e);课号=new JTextField(12);课名=new JTextField(12);录入=new JButton(录入);录入.addActionListener(this);Box box1=Box.createHorizontalBox();/横放boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();box1.add(n

30、ew JLabel(课号:);box1.add(课号);box2.add(new JLabel(课名:);box2.add(课名);box4.add(录入);Box boxH=Box.createVerticalBox();/竖放boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(boxH);setLayout(new BorderLayout();add(messP

31、anel,BorderLayout.CENTER);validate();效果图:4. 添加界面:UpdateC.java/UpdateSC.java /Updatestu.javaimport java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class UpdateC extends JPanel implements ActionListenerString save=null;JTextField 课号1,课号,课名;JButton 修改,查找;public UpdateC(

32、)try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println(不能设置外观: +e);课号1=new JTextField(12);课号=new JTextField(12);课名=new JTextField(12);修改=new JButton(修改);查找=new JButton(查找);Box box1=Box.createHorizontalBox();/横放boxBox box2=Box.createHorizontalBox(

33、);Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box5=Box.createHorizontalBox();box1.add(new JLabel(课号:,JLabel.CENTER);box1.add(课号);box2.add(new JLabel(课名:,JLabel.CENTER);box2.add(课名);box3.add(修改);box5.add(new JLabel(课号:,JLabel.CENTER);box5.add(课号1);box5.add(查找);修改.addActi

34、onListener(this); 查找.addActionListener(this);Box boxH=Box.createVerticalBox();/竖放boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPanel picPanel=new JPanel();JPanel messPanel=new JPanel();messPanel.add(box5);picPanel.add(boxH);setLayout(new BorderLayo

35、ut();JSplitPane splitV=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割add(splitV,BorderLayout.CENTER);validate();5. 删除界面:DelC.java/DelSC.java /Deltu.javaimport java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class DelC extends JPanel implements Actio

36、nListenerString save=null;JTextField 课号1,课号,课名;JButton 删除,查找;public DelC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println(不能设置外观: +e);课号1=new JTextField(12);课号=new JTextField(12);课名=new JTextField(12);删除=new JButton(删除);查找=new JButton(查找);B

37、ox box1=Box.createHorizontalBox();/横放boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box5=Box.createHorizontalBox();box1.add(new JLabel(课号:,JLabel.CENTER);box1.add(课号);box2.add(new JLabel(课名:,JLabel.CENTER);box2.add(课名);box4.add(删除);box

38、5.add(new JLabel(课号:,JLabel.CENTER);box5.add(课号1);box5.add(查找);Box boxH=Box.createVerticalBox();/竖放boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();删除.addActionListener(this); 查找.addActionListener(this);JPanel picPanel=new JPanel();JPanel messPanel=new

39、 JPanel();messPanel.add(box5);picPanel.add(boxH);setLayout(new BorderLayout();JSplitPane splitV=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割add(splitV,BorderLayout.CENTER);validate();6. 查询界面:Selsto.javaimport java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing

40、.*;public class Selstu extends JPanel implements ActionListenerJTextField 学号,姓名,系别;JButton 查找;JTextField 课号,课名;JButton 查找1;JTextField 课号1,学号1,成绩;JButton 查找2; public Selstu ()学号=new JTextField(12);姓名=new JTextField(12);系别=new JTextField(12);课号=new JTextField(12);课名=new JTextField(12);课号1=new JTextFie

41、ld(12);学号1=new JTextField(12);成绩=new JTextField(12);查找=new JButton(查找学生信息);查找1=new JButton(查找课程信息);查找2=new JButton(查找选课信息);Box box1=Box.createHorizontalBox();/横放boxBox box2=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box5=Box.createHorizontalBox();Box box6=Box.createHorizontalBo

42、x();Box box7=Box.createHorizontalBox();box1.add(new JLabel(学号:,JLabel.CENTER);box1.add(学号);box1.add(new JLabel(姓名:,JLabel.CENTER);box1.add(姓名);box1.add(new JLabel(系别:,JLabel.CENTER);box1.add(系别);box2.add(查找);box4.add(new JLabel(课号:,JLabel.CENTER);box4.add(课号);box4.add(new JLabel(课名:,JLabel.CENTER);b

43、ox4.add(课名);box6.add(查找1);box5.add(new JLabel(课号:,JLabel.CENTER);box5.add(课号1);box5.add(new JLabel(学号:,JLabel.CENTER);box5.add(学号1);box5.add(new JLabel(成绩:,JLabel.CENTER);box5.add(成绩);box7.add(查找2); Box boxH1=Box.createVerticalBox();/竖放boxboxH1.add(box1);boxH1.add(box2);boxH1.add(Box.createVerticalGlue();Box boxH2=Box.createVerticalBox();/竖放boxboxH2.add(box4);boxH2.add(box6);boxH2.add(Box.createVerticalGlue(); Box boxH3=Box.createVerticalBox();/竖放boxboxH3.add(box5);boxH3.add(box7);boxH3.add(Box.createVertical

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com