《软件工程开发案例.ppt》由会员分享,可在线阅读,更多相关《软件工程开发案例.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程结构化软件开发案例 “我不用软件工程所学的开发方法,一样可以做出系统!所以,这套工程化的方法用处也不大!”错误错误 假设你正在从事软件开发工作。某私立职业学校财务科长请你研究用学校拥有的微型计算机生成工资明细表和各种财务报表的可能性。情景假设:结构化软件开发结构化软件开发问题定义问题定义你要解决的问题是什么?1.财务科长为什么要提出这个要求?2.预期的项目规模?目前的工资计算成本新系统的开发成本新系统的运行费用关于工资支付系统规模和目标的报告书结构化软件开发结构化软件开发问题定义问题定义 系统规模和目标的报告书 2009.5.19项目名称:问题:项目目标:项目规模:初步设想:可
2、行性研究:工资支付目前计算工资和编制报表的费用太高研究开发费用较低的新工资支付系统的可能性开发成本应该不超过7.2万(正负20)用学校自己的计算机系统生成工资明细表和财务报表 为了更全面的研究工资支付项目的可能性,建议进行超过两周的可行性研究。结构化软件开发结构化软件开发可行性研究可行性研究澄清系统规模和目标研究现有的系统导出高层逻辑模型进一步确定系统规模和目标导出供选择的解法推荐最佳方案草拟开发计划写出文档提交审查结构化软件开发结构化软件开发可行性研究可行性研究了解现有系统工作情况的直接方法:咨询两位会计结构化软件开发结构化软件开发可行性研究可行性研究教师课时表任务表职工工资支付系统工资表工
3、资明细表银行教师职工职工教师课时表任务表审核数据审核后的数据排序专用表格计算课时费计算岗位津贴计算工资总额计算个人所得税计算住房公积金计算保险费计算实发工资工资表工资明细表编制报表报表更新分类账分类账会计教师职工银行教务处办公室主任收集数据1审核数据2加工事务数据3D4报表D1事务数据D2工资表D3工资明细表更新分类账5分发工资明细表4教师职工会计银行课时表任务表事务数据事务数据事务数据加工结果加工结果加工结果报表信息分类账目工资信息工资明细表工资明细表工资明细表导出供选择的解法考虑解决方案时需要考虑的因素:向用户提供几种供选择的解决方案:低成本、中等成本、高成本两个月发一次工资用计算机复制现
4、有系统功能长远考虑建立完整的管理信息系统技术可行性、操作可行性、经济可行性中等成本方案的系统流程图:导出供选择的解法课时表任务表数据收集程序事务数据工资支付程序工资表工资明细表报表中等成本方案的成本/效益分析:开发成本:人力(5人月,6000元/人月):3.0万元硬件购买:1.2万元总计:4.2万元新系统的运行费用:人力和物资(250元/月):0.3万元/年维护:0.1万元/年总计:0.4万元/年现有系统的运行费用:2.4万元运行费用每年节省:2.0万元年节省现在值(以5计算)累计现在值12320000200002000019047.62元18181.82元17241.38元19047.62元
5、37229.44元54470.82元投资回收期:2.28年纯收入:12470.82元推荐最佳方案中等成本高成本低成本草拟开发计划实现中等成本方案的工资支付系统的粗略计划:阶段需要用的时间(月)可行性研究需求分析总体设计详细设计实现总计0.510.5125结构化软件开发结构化软件开发需求分析需求分析需求分析阶段的主要任务:确定系统必须做什么?需求分析阶段的工作基础:可行性研究阶段的数据流图细化数据流图回溯法 沿数据流图回溯,一般来说,从数据流图的输出端着手分析是有意义的。因为系统最基本的功能是产生需要的输出数据,在输出端出现的数据元素决定了系统的基本构成。教师职工收集数据1审核数据2加工事务数据
6、3D4报表D1事务数据D2工资表D3工资明细表更新分类账5分发工资明细表4教师职工会计银行课时表任务表事务数据事务数据事务数据加工结果加工结果加工结果报表信息分类账目工资信息工资明细表工资明细表工资明细表工资明细表上包含的数据元素教职工编号教职工姓名基本工资职务职称生活补贴书报费交通费洗理费课时费岗位津贴工资总额个人所得税住房公积金保险费实发工资回溯法发现的问题记录:结构化软件开发结构化软件开发需求分析需求分析1.必须搞清基本工资、生活补贴、书报费、交通费和洗理费等数据元素存储在何处;2.必须搞清课时费和岗位津贴的计算方法;3.必须搞清个人所得税、住房公积金和保险费的计算方法;写出文档初稿数据
7、流图、数据字典、IPO表结构化软件开发结构化软件开发需求分析需求分析名字:工资总额别名:总工资描述:扣除个税、公积金和保险费之前一个教职工的月工资格式:数,最大值9999.99位置:工资明细表名字:个人所得税别名:个税、所得税描述:政府每月征收的个人收入所得税格式:数,最大值9999.99位置:工资明细表IPO表表系统:工资支付作者:06电子商务班日期:2009.5.19模块:计算工资总额算法编号:被调用:输入:基本工资,课时费,岗位津贴,生活补贴,书报费,交通费,洗理费 输出:工资总额 调用:处理:工资总额基本工资课时费岗位津贴书报费生活补贴交通费洗理费 局部数据元素:注释:教师岗位津贴为0
8、职工课时费为0结构化软件开发结构化软件开发需求分析需求分析定义逻辑系统1.人事数据存储更新人事数据2.正常课时费每月授课时数每节课的课时费职称系数;岗位津贴职称系数津贴等级基数任务等级 超额课时费年度超出课时数每节课课时费0.23.住房公积金(工资总额课时费或岗位津贴)10 保险费养老保险失业保险医疗保险 个人所得税(工资总额免征税所得 3500)税率 81210最新扣税率最新扣税率全月应纳税所得额 税率 速算扣除数(元)不超过1500元 3%0 超过1500元至4500元 10%105 超过4500元至9000元 20%555 超过9000元至35000元 25%1005 超过35000元至
9、55000元 30%2755 超过55000元至80000元 35%5505 超过80000元 45%13505 教务处办公室主任收集数据1审核数据2加工事务数据3D4报表D1事务数据D2工资表D3工资明细表更新分类账5分发工资明细表4教师职工会计银行课时表任务表事务数据事务数据事务数据加工结果加工结果加工结果报表信息分类账目工资信息工资明细表工资明细表工资明细表D5年度数据年度数据D6人事数据人事数据更新人事数据6结构化软件开发结构化软件开发需求分析需求分析l细化数据流图 使用功能分解的方法来细化数据流图:选取数据流图上功能过分复杂的处理,把它分解成若干个子功能,较低层次的子功能成为新数据流
10、图上的处理,有自己的数据存储和数据流。取数据3.1计算正常工资3.2计算超额课时费3.3更新年度数据3.4印表格3.5D1事务数据D6人事数据D5年度数据D3工资明细表D2工资表D4报表年度数据年度数据取来的数据人事数据工资明细表报表信息工资信息取来的数据取来的数据取来的数据事务数据对“加工事务数据”的细化书写正式的文档软件需求规格说明书结构化软件开发结构化软件开发需求分析需求分析数据流图数据字典IPO表构成软件需求规格说明书的主要成分技术审查管理复查结构化软件开发结构化软件开发需求分析需求分析组长本系统分析员两名会计结构化软件开发结构化软件开发总结总结 通过案例的学习,对比自己所做的课程设计
11、分析阶段的工作,你有什么收获?本阶段要搞清楚的问题:结构化软件开发结构化软件开发总体设计总体设计 概括地说,系统应该如何实现?确定物理方案设计软件结构结构化软件开发结构化软件开发总体设计总体设计判断数据流特征确定输入流和输出流的边界分解对设计结果进行优化变换流孤立出变换中心若干次分解总体设计总体设计分解分解第一级分解:计算计算教职工工资教职工工资接收工资数据接收工资数据计算工资计算工资印出计算结果印出计算结果总体设计总体设计分解分解计算计算教职工工资教职工工资接收工资数据接收工资数据印出计算结果印出计算结果计算工资计算工资取数据取数据收集事务数据收集事务数据计算正计算正常工资常工资计算计算超额
12、课时费超额课时费更新年更新年度数据度数据印表格印表格第二级分解:审核事务数据审核事务数据总体设计总体设计初步优化初步优化计算计算教职工工资教职工工资接收工资数据接收工资数据计算工资计算工资印出计算结果印出计算结果取数据取数据收集事务数据收集事务数据计算正计算正常工资常工资计算计算超额课时费超额课时费更新年更新年度数据度数据印表格印表格收集事务数据收集事务数据印表格印表格总体设计总体设计数据库设计数据库设计库名表名salary user personnelaffairyearsalary1salary2系统使用者账号信息人事数据事务数据年度数据工资明细表中动态变化的项目工资明细表中相对固定的项目
13、总体设计总体设计数据库设计数据库设计user表的设计:字段名数据类型能否为空是否主键数据类型用户名字符否是密码字符否否总体设计总体设计数据库设计数据库设计personnel表的设计:字段名数据类型能否为空是否主键职工编号数字否是职工姓名字符否否职务字符否否职称字符否否生活补贴数字是否书报费数字是否交通费数字是否洗理费数字是否affair表的设计:字段名数据类型能否为空是否主键职工编号数字否是职工姓名字符否否课时数数字是否授课班级数数字是否任务数数字是否总体设计总体设计数据库设计数据库设计year表的设计:字段名数据类型能否为空是否主键职工编号数字否是职工姓名字符否否本年度累计授课时数数字是否总体设计总体设计数据库设计数据库设计salary1表的设计:字段名数据类型能否为空是否主键职工编号数字否是职工姓名字符否否课时费数字是否总体设计总体设计数据库设计数据库设计岗位津贴数字是否工资总额数字否否个人所得税数字是否实发工资数字否否生活补贴数字是否书报费数字是否交通费数字是否洗理费数字是否salary2表的设计:总体设计总体设计数据库设计数据库设计字段名数据类型能否为空是否主键职称字符否是保险费数字是否住房公积金数字是否
限制150内