软件工程基础实验
更新时间:2023-03-15 15:18:01 阅读量: 教育文库 文档下载
实验一
可行性研究与项目计划
一、 实验室名称
综合
二、 实验项目名称
图书管理系统
三、 实验目的
1. 了解和使用甘特图,系统流程图,线性时间图来描绘系统开发流程和进度;
2. 学会使用visio绘制常用的流程图。
四、 实验内容
图书管管理系统更便于对图书进行分类和管理,对借阅者进行时间限定,使得借书的效益更高更安全。提高工作效益,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现了自动化。图书管管理系统的主要功能为:书目管理、借阅证管理、借还图书、查询、缴费。书目管理主要是针对管理员身份而言的(比如新增书目,删除书目等等);借阅证管理分为五部分:注册、补发、挂失、暂停、注销;借还图书:借书、还书;查询:图书查询、借阅时间缴费主要
是计算超期罚款并交纳费用。
图书管管理系统的系统流程图如图1所示。
借阅证学 生计算机终端缴费审查借阅证并进入系统学生缴费表选择功能借还图书查询借阅图书表学生借阅证表借阅证管理图1 系统流程图
试对系统进行可行性研究,用Visio绘制图书管管理系统的系统流程图,同时制定系统的开发计划,用Gantt图和时间线图描述进度计划安排。
五、 实验方案分析与设计
运用专业的方法整理分析图书管理流程,并对功能进行整合。
六、 实验器材(设备,元器件)
七、 实验步骤
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或Rational Rose绘制如图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秒钟内应指示锅炉停机。
试据此对系统进行设计,采用Rational Rose绘制控制器的状态图,同时用顺序图描述锅炉启动过程。
五.试验方案分析与设计
依据软件设计原则,对系统进行设计。
六.实验器材(设备,元器件) 七.实验步骤
(1)建立软件结构图的基本步骤: 1. 先添加函数/子例程; 2. 再添加有条件调用; 3. 然后添加调用连线;
4. 最后为调用线添加数据流或标志流。 (2)Rose建立UML图的基本步骤:
1. 启动Rose,建立新模型,保存模型; 2. 在某视图下建立模型。
八.实验数据记录结果分析
控制器状态图:
锅炉启动过程顺序图:
九.实验结论
成功绘制出控制器状态图和锅炉启动过程顺序图。
十.实验总结
对visio不熟悉导致进度特别慢,自学软件使用技巧的能力差,以后应该加强对工具使用的练习,要熟练使用常用工具。绘制
UML类图的时候要明确各个类之间的关系。
实验四 系统实现
一.实验室名称 二综
二.试验项目名称
系统实现
三.实验目的
1.
掌握:系统实现的有关技术及其相关工具。
四.实验内容
1、试对图3所示的课程管理对象类图,采用Java在Eclipse下编码实现,并用JUnit框架对某Java类进行测试。
查找=new JButton(\查找学生信息\); 查找1=new JButton(\查找课程信息\); 查找2=new JButton(\查找选课信息\);
Box box1=Box.createHorizontalBox();//横放box Box box2=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox(); Box box5=Box.createHorizontalBox(); Box box6=Box.createHorizontalBox(); 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)); box4.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();//竖放box boxH1.add(box1); boxH1.add(box2);
boxH1.add(Box.createVerticalGlue()); Box boxH2=Box.createVerticalBox();//竖放box boxH2.add(box4); boxH2.add(box6);
boxH2.add(Box.createVerticalGlue()); Box boxH3=Box.createVerticalBox();//竖放box boxH3.add(box5); boxH3.add(box7);
boxH3.add(Box.createVerticalGlue()); 查找.addActionListener(this); 查找1.addActionListener(this); 查找2.addActionListener(this); JPanel messPanel=new JPanel();
JPanel picPanel=new JPanel(); JPanel threePanel=new JPanel(); messPanel.add(boxH1); picPanel.add(boxH2); threePanel.add(boxH3);
setLayout(new BorderLayout()); JSplitPane splitV=new
JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);//分割
add(splitV,BorderLayout.CENTER); JSplitPane splitV1=new
JSplitPane(JSplitPane.VERTICAL_SPLIT,splitV,threePanel);//分割
add(splitV1,BorderLayout.CENTER); validate();} 效果图:
九.实验结论 十.实验总结
通过本次实验提高了自己的动手能力 认真领悟了软件工程设计过程。
ActionListener{ Addstu 增加学生界面; Updatastu 修改学生界面; 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(\ JMenuItem updata1=new JMenuItem(\ JMenuItem delete1=new JMenuItem(\ JMenu m2=new JMenu(\课程管理\
JMenuItem add2=new JMenuItem(\ JMenuItem updata2=new JMenuItem(\
JMenuItem delete2=new JMenuItem(\ JMenu m3=new JMenu(\选课管理\
JMenuItem add3=new JMenuItem(\ JMenuItem updata3=new JMenuItem(\ JMenuItem delete3=new JMenuItem(\ JMenu m4=new JMenu(\查询管理\
JMenuItem 学生查询=new JMenuItem(\查询信息 \ JMenuItem m5=new JMenuItem(\系统退出\ Font t=new Font (\ public Menu (){
this.setTitle(\学生选课管理系统\ try
{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch(Exception e){System.err.println(\不能设置外观: \ //组合菜单 addMenu1(); addMenu2(); addMenu3(); addMenu4(); addJMenuBar();
setJMenuBar(mb);
label=new JLabel(\选课管理系统\ label.setFont(new Font(\宋体\
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=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(\欢迎界面\
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(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);}
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);m1.setFont(t); }
public void actionPerformed(ActionEvent e){ Object obj=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, \生查询界面\ }}}}}}}}}}}}
public static void main(String[] args) {new Menu();}} 效果图:
3.添加界面:AddC.java/AddSC.java/Addstu.java import java.awt.*; import javax.swing.*; import java.sql.*; import java.awt.event.*;
学
public class AddC extends JPanel implements ActionListener{
JTextField 课号,课名; JButton 录入;
public AddC(){ try
{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exception
e){System.err.println(\不能设置外观: \+e);} 课号=new JTextField(12); 课名=new JTextField(12); 录入=new JButton(\录入\); 录入.addActionListener(this);
Box box1=Box.createHorizontalBox();//横放box Box box2=Box.createHorizontalBox(); Box box3=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox(); box1.add(new JLabel(\课号:\)); box1.add(课号);
box2.add(new JLabel(\课名:\));
box2.add(课名); box4.add(录入);
Box boxH=Box.createVerticalBox();//竖放box boxH.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(messPanel,BorderLayout.CENTER); validate();} 效果图:
4.添加界面:UpdateC.java/UpdateSC.java /Updatestu.java import java.awt.*;
import java.awt.event.*; import java.sql.*; import javax.swing.*;
public class UpdateC extends JPanel implements ActionListener{ String save=null;
JTextField 课号1,课号,课名; JButton 修改,查找; public UpdateC(){ 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();//横放box Box box2=Box.createHorizontalBox(); Box box3=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox();
正在阅读:
软件工程基础实验03-15
本体管阀试题03-29
我最喜欢的娃娃作文300字07-13
一次函数与几何图形综合教学设计11-23
党建工作自查自评报告01-18
简历04-15
开工第一课安全培训心得体会.docx07-30
快乐的五一劳动节作文优秀8篇03-25
《颜回好学》《范仲淹有志于天下》06-08
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 软件工程
- 实验
- 基础
- 《左传》的艺术成就
- 甘肃省瓜州县第二中学七年级数学下册 第一章 整式的乘除回顾与思考课时作业1(无答案)(新版)北师大版
- 2019河南农业大学函授本科招生(最新)
- 浅谈《诗经》中的女子形象
- 如何在小学数学教学中引导学生自主学习-最新文档
- 水中鱼的虚像是在鱼的正上方吗
- 山东省淄博市临淄区皇城镇第二中学九年级(五四制)上学期期中考试物理试题
- 心理咨询答辩问题与答案
- 陕西师大附中初2016届第七次模拟考试语文试题
- 畜牧标准化养殖等项目 中央预算内投资专项管理办法(试行)
- 吉林省汪清县第三中学校人教版七年级地理上册复习 第一章到第四章 练习(附答案)$820198
- 浙江省磐安县第二中学高中语文 专题一自编练习 苏教版必修3
- 云南省玉溪市峨山彝族自治县第一中学2019届高一10月月考数学试题 Word版含答案
- 关于对企业仓储管理合理化(论文)
- 浅谈乡镇机构改革的难点与对策
- 2019届甘肃省宁县第五中学七年级地理上册 1.3 地图(1)导学案 新人教版
- 社区矫正知识考试试题
- JSP期末复习试题
- 6-2喷油泵性能实验
- 基本公共卫生服务项目绩效考核工作计划