软件需求与分析课堂测试十一 —综合案例建模分析

发布时间 2023-12-21 23:37:31作者: Weebles

软件需求与分析课堂测试十一

综合案例建模分析100分)

销售订货管理系统是ERP的源头,如何管控销售订单下达、评审、跟进,不光是从软件上做约束管理,同时要从工作流程规定上做规范。

开发目的】

规范公司订单下达、评审业务流程,提高客户订单准时交货率。

适用范围】

适用于公司订单处理过程。

术语定义】

岗位职责】

4.1 业务部/市场部:负责《销售订单》的下达及评审跟进。

4.2 工程部:负责《销售订单》的要求确认评审,并负责订单变更要求的确认。

4.3 计划部:负责《销售订单》的交期评审,并确保订单按时间完成。

需求内容】

5.1 业务部或市场部接到客户订单后,如果库存有,则直接开具《发货单》经财务部审核后从仓库出货;如果没库存,针对公司销售策略,按以下要求执行:

5.1.1 国际业务部接收订单全部在系统生成《销售订单》。

5.1.2 国内市场部,每月25号与计划部组织会议,分析本月销售情况并讨论下月产品预测,形成《预测销售订单》并由PMC部录入云上ERP系统。如国内市场部接到固定客户订单,且订单数量大于200PCS以上,由市场部业务员直接下达《销售订单》。

5.2 业务部业务员接到客户的订单,经严格审核相关内容后,将其在云上ERP系统中转化为内部的《销售订单》,同时订单的各项内容必须按以下要求进行描述。

5.2.1 样品鉴定会未召开或试产没有通过的新产品不允许下订单。

5.2.2 下订单之前,业务人员需对订单产品特殊要求,需提前与工程部做确认订货产品是否已完成BOM制定。

5.2.3 任何订单的交期日期须满足《产品生产周期表》中的规定。

5.2.4 如有订单附页内容,需详细全面并作确认。

5.2.5 如有不能确认之需求(如包装材料需要得到客户的确认),要求初步规定确认日期。

5.3 《销售订单》制作后,需手工打印出来,并按以下顺序进行订单评审过程。

5.3.1 首先将《销售订单》通过云上ERP系统提交给工程部,工程部按订单要求进行评审动作,并制定订单BOM用料清单。

5.3.2 订单 BOM用料清单完成后,并提交给计划部进行交期评审,注明:工程部评审的时间规定: 每日下订单有新产品(需完全重做BOM)低于或等于10款,则要求一天内完成,超出一款则可顺延至次日完成。

5.3.3 计划部主管确认具体生产完工日期,并在系统中作交期回复,并最终核准《销售订单》,将订单返回业务部,并要求在一个工作日内完成。

5.3.4 业务部对《销售订单》评审好的交期进行确认后,如有异议,可找计划部经理进行协调沟通,并做最后结果确定,完成后系统审核《销售订单》,并纸质评审文档进行归档。

5.3.5 由《预测需求计划》形成的订单,不需要通过评审动作,在制定云上ERP制单时,销售类型为预测销售。

5.3.6 标准产品只要计划部与业务部评审交期签字即可,非标准产品订单评审需要采购、品质、工程参与并签字。

5.4 订单评审完成后,如有变更需按如下规定进行处理:

5.4.1 如客户提出交期或产品要求变更,需由业务部填写《销售订单变更及通知单》,然后交给计划部,由计划部组织重新评审工作。同时评审完成后,对于订单待确认的要求(如包装料)没有按确认时间提供,则同样需由业务部提出《订单变更申请通知》,计划部并按实际情况进行交期顺延。

5.4.2 如计划部无法按评审交期交货,需在交期的基础上提前三天填写《销售订单变更及通知单》,然后交给业务部,由业务部进行与客户沟通。

5.4.3 变更后的结果,需在云上ERP系统中将该订单通过变更动作,将内容更新!

5.5 为满足客户需求,业务部有急插单,但要求下达急插单,至少提前七个工作日内,并在下订单时注明急插单,原有订单交期应和客人商议顺延,所有调配须要以书面形式《销售订单变更及通知单》通知。

5.6 《销售订单》经计划部安排生产完成后,并办理了入库业务。业务员及时按客户销售合同的交货日期进行发货处理。

5.7 业务部如有非订单类需求,需要计划部安排处理,以《联络单》形式处理,联络单需经过业务部负责人审批通过。

5.8 业务部需与计划部每月召开一次订单交货需求分析,依公司销售策略需要,制定公司的销售需求预测,形成《预测需求计划》,作为下一阶段生产备料的准备工作。《预测需求计划》由计划计划员在系统转化成《销售订单》,并按预定计划时间进行生产安排。

5.9 每个月5号前,安排专人统计上一个月订单准时交付率,并提交给计划部,要求计划部针对不能准时交货的笔数进行分析,并提出对应的改善措施。

5.10 《产品生产周期表》每半年与计划部更新一次,并经过分管领导审批,由文控中心受控发行。

 

 

销售订货工作流程如下图所示:

 

根据上述需求完成下列问题。

1、需求定义:(20分)

1)根据上述描述,绘制系统工作上下范围图。(5分)

 

 

2)绘制系统业务流程图。(10分)

 

 

2、结构化建模案例分析:(20分)

(1)绘制系统的功能结构图。(10分)

 

 

2)根据上述描述,绘制完整的数据流图。(10分)

 

 

3、面向对象建模案例分析:(30分)

(1)绘制系统顶层用例图。(10分)

 

 

(2)绘制系统细化完整用例图。(10分)

 

 

(3)分析系统类模型,找出类之间的关系并画出类图。(10分)

业务部/市场部与销售订单:业务部/市场部负责下达和评审销售订单。

工程部与销售订单:工程部负责确认销售订单的要求,并处理订单变更要求。

计划部与销售订单:计划部负责评审销售订单的交期,并确保订单按时完成。

业务部与发货单:业务部开具发货单,经过财务部审核后从仓库出货。

国际业务部与销售订单:国际业务部接收客户订单后在系统中生成销售订单。

国内市场部与预测销售订单:国内市场部每月与计划部组织会议,形成预测销售订单并由PMC部录入系统。

业务员与客户订单:业务员接到客户订单后,将其转化为内部销售订单。

销售订单与样品鉴定会、试产、BOM制定、产品生产周期表、订单附页内容等:销售订单的内容必须符合相关规定和要求。

销售订单与手工打印:制作好的销售订单需要手工打印出来进行评审过程。

工程部与BOM用料清单:工程部根据销售订单要求制定BOM用料清单。

计划部与交期评审、生产完工日期、交期回复、核准销售订单等:计划部负责对销售订单进行评审和确定交期,并将核准的销售订单返回给业务部。

业务部与销售订单评审、确认交期、系统审核等:业务部对销售订单进行评审和确认交期,并进行系统审核和归档。

预测需求计划与销售订单:由预测需求计划形成的订单不需要通过评审动作,直接在系统中制单。

标准产品与计划部、业务部评审交期签字等:标准产品的订单评审只需要计划部和业务部的评审和签字。

非标准产品与采购、品质、工程参与并签字等:非标准产品的订单评审需要采购、品质、工程等部门的参与和签字。

业务部与客户、计划部与业务部的沟通协调等:对于变更或急插单等情况,需要业务部与客户和计划部进行沟通协调。

计划部与生产安排、入库业务等:计划部负责安排生产并办理入库业务。

业务部与非订单类需求处理等:业务部有非订单类需求时,需要以联络单形式提交给计划部进行处理。

业务部与计划部的订单交货需求分析等:业务部与计划部每月召开一次订单交货需求分析会议,制定公司的销售需求预测。

 

 

 

4、系统原型展示:根据你的类图,开发系统原型,并录制视频或撰写文档展示说明。(30

1)根据类图,用源代码定义类的变量和方法具体的方法体不用10

public class Department {

    private String name;

 

    public Department(String name) {

        this.name = name;

    }

 

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

}

 

public class SalesOrder {

    private int orderId;

    private Customer customer;

    private List<Product> products;

 

    public SalesOrder(int orderId, Customer customer, List<Product> products) {

        this.orderId = orderId;

        this.customer = customer;

        this.products = products;

    }

 

    public int getOrderId() {

        return orderId;

    }

 

    public void setOrderId(int orderId) {

        this.orderId = orderId;

    }

 

    public Customer getCustomer() {

        return customer;

    }

 

    public void setCustomer(Customer customer) {

        this.customer = customer;

    }

 

    public List<Product> getProducts() {

        return products;

    }

 

    public void setProducts(List<Product> products) {

        this.products = products;

    }

}

 

public class Product {

    private int productId;

    private String productName;

    private double price;

 

    public Product(int productId, String productName, double price) {

        this.productId = productId;

        this.productName = productName;

        this.price = price;

    }

 

    public int getProductId() {

        return productId;

    }

 

    public void setProductId(int productId) {

        this.productId = productId;

    }

 

    public String getProductName() {

        return productName;

    }

 

    public void setProductName(String productName) {

        this.productName = productName;

    }

 

    public double getPrice() {

        return price;

    }

 

    public void setPrice(double price) {

        this.price = price;

    }

}