代写范文

留学资讯

写作技巧

论文代写专题

服务承诺

资金托管
原创保证
实力保障
24小时客服
使命必达

51Due提供Essay,Paper,Report,Assignment等学科作业的代写与辅导,同时涵盖Personal Statement,转学申请等留学文书代写。

51Due将让你达成学业目标
51Due将让你达成学业目标
51Due将让你达成学业目标
51Due将让你达成学业目标

私人订制你的未来职场 世界名企,高端行业岗位等 在新的起点上实现更高水平的发展

积累工作经验
多元化文化交流
专业实操技能
建立人际资源圈

Title

2013-11-13 来源: 类别: 更多范文

SCATS Software Design Specification Draft November 5, 2001 Authors: Belete Ayele Asfaw beletea@ifi.uio.no Mihail Korabelnikov mihailk@ifi.uio.no Juma Hemed Lungo jumal@ifi.uio.no Miria Grisot miriag@ifi.uio.no Jose L. Nhampossa leopoldo@ifi.uio.no Ou Weiqing ouw@ifi.uio.no Johnny Nordvik johnnyno@ifi.uio.no Revisions |Version |Primary Author(s) |Description of Version |Date Completed | |Draft |Juma Hemed Lungo. |Information about the revision. This table does not need to be |11/05/01 | | | |filled in whenever a document is touched, only when the version| | | | |is being upgraded. | | . Contents Revisions 1 Contents 2 1 THE TASK 3 1.1 Purpose 3 1.2 Correction to the analysis 3 1.3 Quality Goals 3 2 TECHNICAL PLATFORM 4 2.1 Hardware and Operating System 4 2.2 System software 4 2.3 System Interface 4 2.4 Design language 4 3 ARCHITECTURE 5 3.1 System architecture 5 3.2 Component Architecture 5 3.3 Process Architecture 5 3.4 Standards 5 4 MODEL COMPONENTS 6 4.1 Structure 6 4.2 Classes 7 5 USER – INTERFACE COMPONENT 8 5.1 Structure 8 5.2 Sequence diagrams 9 5.2.1 Employee registration 10 5.2.2 Product registration 10 5.2.3 Sales Registration 11 5.2.4 Customer Registration 11 5.2.5 System Login 12 5.2.6 Update Information 12 5.2.7 System Output 13 6 RECOMMENDATIONS 13 6.1 The system’s usefulness 13 6.2 Plan for initiating use 13 6.3 Implementation Plan 14 7 APPENDENCIES 14 THE TASK 1 Purpose The target system should ease the sales administrative work of BOEC Company. It should be useful in organizing sales, producing sales statistic’s reports and keep tracks of what products have been sold and in which quantity (inventory control). 2 Correction to the analysis We made correction to the analysis document. Specifically we adjusted a few model associations and specified some attributes. These changes will be shown in the class diagram. We also have added new class the use interface class to the system model. 3 Quality Goals Figure I show the priority of quality criteria we placed special emphasis on portability and usability, because without these characters, the system will not be used at all. We addressed portability primary in the architecture, and use ability in the interface design. We also placed some emphasis on correctness and comprehensibility, as these characters are traditionally valued highly in IT research communities. |CITATION |VERY IMPORTANT |IMPORTANT |LESS IMPORTANT |IRRELEVANT |EASILY FULFILLED | |Usable |X | | | |X | |Secure | | |X | | | |Efficient | | | | |X | |Correct | |X | | | | |Reliable | | |X | | | |Maintainable | | |X | | | |Testable | | |X | | | |Flexible | | |X | | | |Comprehensible | |X | | | | |Reusable | | |X | | | |Portable |X | | | | | |Interoperable | | | |X | | Figure 1: Priorities of quality criteria TECHNICAL PLATFORM 1 Hardware and Operating System The system was designed for and developed on PC. These must be powerful enough to run the latest version of the most widely used operating system. Here are UNIX (LINUX) and Windows 9x /NT/2000 2 System software We are considering acquiring Java. Our design is based on implementing the system in Java and having available a library with classes for handling the standard user Interface elements. We also assume the availability of a database facility that can save the model components objects. Finally, we plan to use the latest version of the windows Internet Explorer and windows 2000. 3 System Interface Apart from a PC, the system requires a laser printer that can print in A4 or letter format. The OS must handle the interface to the printer. 4 Design language The design document is based on the Unified Modeling Language (UML) notation (Fowler et al, 2000). ARCHITECTURE 1 System architecture The software will operate in the context of Client Server. 2 Component Architecture We selected traditional three-layered architecture: a user interface, a model component (which also comprises the functions) and a component under the model component, which serves as an interface to the database system. Figure 2: Class diagram show the system’s component architecture 3 Process Architecture The system is executed on stand-alone components with a single user. There fore, there are no problems with concurrent processes that are not handled by the operating system. The control is placed in the user interface component, which is as well handled by the OS and the applied libraries. The OS handles the laser printer. 4 Standards The design windows and error messages adheres to the windows standard. MODEL COMPONENTS The model component implements model and functional requirements. There is no function component because the functions will be implemented as operations in the Model component. 1 Structure In relation to the analysis document’s class diagram, we made few changes. Figure 3 shows the resulting class diagram. [pic] Figure 3: The resulting Class Diagram for the SCATS application. 2 Classes Following is our specification of the classes that contain essential attributes and non-trial operations a. Employee Purpose: Register basic information about employee of BOEC company and aggregate each employee’s roles Attributes: EmployeeID, Surname, firstname, Title, Address, email, fax, telephone. Operations: Create Employee, Create role, Initiate Employee, show employee, delete employee b. Customer: Purpose: Register basic information about all customers of BOEC company. Attributes: CustomerID, Surname, firstname, address, tel, fax, email. Operations: CreateCustomer, InitiateCustomer, showCustomer, deleteCustomer c. Product Purpose: Register information of all products sold by BOEC Company Attributes: ProductID, ProductDescription, ProductPriceperUnit, Quantity. Operations: Create Product, Initiate Product, Show Product, Delete Product, change price, show price. d. Order Purpose: Register all orders issued by the BOEC Customers. Attributes: OrderID, dateReceived, isPrepaid, number, price Operations: Create Order, Initiate Order, Show Order, dispatch, delete order. e. Orderline Purpose: Register all orderliness. Attributes: ID, quantity, price, isSatisfied Operations: Create Orderline, Initiate Orderline, Show Orderline, Delete Order_line, show_orderline. USER – INTERFACE COMPONENT 1 Structure Each Window and each print will be implemented as a class with one object. The window and print class inherit general features from a standard user-interface library. When the system started, the “control” class generates an object to which the control is given. The control handles the general menu and delegates control to other user-interface objects. [pic] Figure 4: Model of the User Interface 2 Sequence diagrams This chapter contains the sequence diagrams based on the Use Cases for the SCATS application. [pic] Figure 5: The figure shows the Use Cases for the SCATS application 1 Employee registration [pic] Figure 6: The Sequence Diagram for the Employee Registration Use Case 2 Product registration [pic] Figure 7: The Sequence Diagram for the Product Registration Use Case 3 Sales Registration [pic] Figure 8: The Sequence Diagram for the Sales Registration Use Case 4 Customer Registration [pic] Figure 9: The Sequence Diagram for the Customer Registration Use Case 5 System Login [pic] Figure 10: The Sequence Diagram for the System Login Use Case 6 Update Information [pic] Figure 11: The Sequence Diagram for the Update Information Use Case 7 System Output [pic] Figure 12: The Sequence Diagram for the System Output Use Case RECOMMENDATIONS 1 The system’s usefulness Our design meets the most essential criteria, with the following notes: Usability: This should be evaluated by testing the first version of the system Portability: The system is in itself not particularly portable. However, by building it on what are now the most popular technical platforms, the system can achieve the desired dissemination. 2 Plan for initiating use We expect that the user, BOEC Company, will handle training and installation. We will simply send them the system and a manual on diskette. Should BOEC staff find difficulties in using the system, we shall conduct training of the system. 3 Implementation Plan We recommend that the first version of the system is developed by three programmers, supported by a member of our team, and supplemented by people with knowledge of the chosen tools We expect that it will be possible to develop the first increment (version) of the system in six person-weeks. In addition, it might require one person-week to evaluate the system and learn the chosen tools. We estimate that it will take approximately one more person-week to test the first increment (version) and write the User’s Manual. APPENDENCIES The JAVA source code listed in this appendix is generated by the CASE tool Tau_UML based on the Domain model and the sequence diagrams shown in this document. // CLASS CUSTOMER // File : Customer.java // // Project : in219p22 // Configuration : Design 1 // Phase : Implementation 1 // System : SCATS 1 // import java.util.Vector; // Begin user import section // End user import section // Do not delete this line -- Start Class Declarations public class Customer extends Object { // Data attributes private int customerID; private String surname; private String firstName; private String address; private int tlf; private int fax; private String email; // Association attributes protected Vector customerhasorderSet; // Default constructor public Customer() { customerhasorderSet = new Vector(); // Start user code section // End user code section } // User defined constructors // Methods public void createCustomer() { } public void initiateCustomer() { } public void showCustomer() { } public void deleteCustomer() { } // Do not delete this line -- regeneration end marker // Attribute accessors public int getCustomerID() { return customerID; } public void setCustomerID(int customerID_) { customerID = customerID_; } public String getSurname() { return surname; } public void setSurname(String surname_) { surname = surname_; } public String getFirstName() { return firstName; } public void setFirstName(String firstName_) { firstName = firstName_; } public String getAddress() { return address; } public void setAddress(String address_) { address = address_; } public int getTlf() { return tlf; } public void setTlf(int tlf_) { tlf = tlf_; } public int getFax() { return fax; } public void setFax(int fax_) { fax = fax_; } public String getEmail() { return email; } public void setEmail(String email_) { email = email_; } // Association accessors public void addCustomerhasorder(Order customerhasorder_) { if (customerhasorder_ == null) return; customerhasorder_.setOrderforcustomer(null); customerhasorder_.orderforcustomer = this; customerhasorderSet.addElement(customerhasorder_); } public void removeCustomerhasorder(Order customerhasorder_) { if (customerhasorder_ == null) return; customerhasorder_.orderforcustomer = null; customerhasorderSet.removeElement(customerhasorder_); } public Vector getCustomerhasorderSet() { return (Vector)customerhasorderSet.clone(); } } // class Customer // Do not delete this line -- End Class Declarations CLASS Employee // // File : Employee.java // // Project : in219p22 // Configuration : Design 1 // Phase : Implementation 1 // System : SCATS 1 // import java.util.Vector; // Begin user import section // End user import section // Do not delete this line -- Start Class Declarations public class Employee extends Object { // Data attributes private int empID; private String surname; private String firstName; private String title; private String address; private int tlf; private int fax; private String email; // Association attributes protected Vector employeereceiveorderSet; // Default constructor public Employee() { employeereceiveorderSet = new Vector(); // Start user code section // End user code section } // User defined constructors // Methods public void createEmp() { } public void createRole() { } public void initiateEmp() { } public void showEmp() { } public void deleteEmp() { } // Do not delete this line -- regeneration end marker // Attribute accessors public int getEmpID() { return empID; } public void setEmpID(int empID_) { empID = empID_; } public String getSurname() { return surname; } public void setSurname(String surname_) { surname = surname_; } public String getFirstName() { return firstName; } public void setFirstName(String firstName_) { firstName = firstName_; } public String getTitle() { return title; } public void setTitle(String title_) { title = title_; } public String getAddress() { return address; } public void setAddress(String address_) { address = address_; } public int getTlf() { return tlf; } public void setTlf(int tlf_) { tlf = tlf_; } public int getFax() { return fax; } public void setFax(int fax_) { fax = fax_; } public String getEmail() { return email; } public void setEmail(String email_) { email = email_; } // Association accessors public void addEmployeereceiveorder(Order employeereceiveorder_) { if (employeereceiveorder_ == null) return; employeereceiveorder_.setOrderisattendedbyemployee(null); employeereceiveorder_.orderisattendedbyemployee = this; employeereceiveorderSet.addElement(employeereceiveorder_); } public void removeEmployeereceiveorder(Order employeereceiveorder_) { if (employeereceiveorder_ == null) return; employeereceiveorder_.orderisattendedbyemployee = null; employeereceiveorderSet.removeElement(employeereceiveorder_); } public Vector getEmployeereceiveorderSet() { return (Vector)employeereceiveorderSet.clone(); } } // class Employee // Do not delete this line -- End Class Declarations CLASS ORDER // // File : Order.java // // Project : in219p22 // Configuration : Design 1 // Phase : Implementation 1 // System : SCATS 1 // import java.util.Date; import java.util.Vector; // Begin user import section // End user import section // Do not delete this line -- Start Class Declarations public class Order extends Object { // Data attributes private int OrderID; private Date dateReceived; private Boolean isPrepaid; private int quantity; private double price; // Association attributes protected Employee orderisattendedbyemployee; protected Customer orderforcustomer; protected Vector orderhasorderlineSet; // Default constructor public Order(Employee orderisattendedbyemployee_, Customer orderforcustomer_) { orderisattendedbyemployee = orderisattendedbyemployee_; orderforcustomer = orderforcustomer_; orderhasorderlineSet = new Vector(); // Start user code section // End user code section } // User defined constructors // Methods public void createOrder() { } public void intiateOrder() { } public void showOrder() { } public void dispatch() { } public void deleteOrder() { } // Do not delete this line -- regeneration end marker // Attribute accessors public int getOrderID() { return OrderID; } public void setOrderID(int OrderID_) { OrderID = OrderID_; } public Date getDateReceived() { return dateReceived; } public void setDateReceived(Date dateReceived_) { dateReceived = dateReceived_; } public Boolean getIsPrepaid() { return isPrepaid; } public void setIsPrepaid(Boolean isPrepaid_) { isPrepaid = isPrepaid_; } public int getQuantity() { return quantity; } public void setQuantity(int quantity_) { quantity = quantity_; } public double getPrice() { return price; } public void setPrice(double price_) { price = price_; } // Association accessors public Employee getOrderisattendedbyemployee() { return orderisattendedbyemployee; } public void setOrderisattendedbyemployee(Employee orderisattendedbyemployee_) { if (orderisattendedbyemployee != null) orderisattendedbyemployee.employeereceiveorderSet.removeElement(this); if (orderisattendedbyemployee_ != null) orderisattendedbyemployee_.employeereceiveorderSet.addElement(this); orderisattendedbyemployee = orderisattendedbyemployee_; } public Customer getOrderforcustomer() { return orderforcustomer; } public void setOrderforcustomer(Customer orderforcustomer_) { if (orderforcustomer != null) orderforcustomer.customerhasorderSet.removeElement(this); if (orderforcustomer_ != null) orderforcustomer_.customerhasorderSet.addElement(this); orderforcustomer = orderforcustomer_; } public void addOrderhasorderline(OrderLine orderhasorderline_) { if (orderhasorderline_ == null) return; orderhasorderline_.setOrderlinefororder(null); orderhasorderline_.orderlinefororder = this; orderhasorderlineSet.addElement(orderhasorderline_); } public void removeOrderhasorderline(OrderLine orderhasorderline_) { if (orderhasorderline_ == null) return; orderhasorderline_.orderlinefororder = null; orderhasorderlineSet.removeElement(orderhasorderline_); } public Vector getOrderhasorderlineSet() { return (Vector)orderhasorderlineSet.clone(); } } // class Order // Do not delete this line -- End Class Declarations CLASS ORDERLINE // // File : OrderLine.java // // Project : in219p22 // Configuration : Design 1 // Phase : Implementation 1 // System : SCATS 1 // // Begin user import section // End user import section // Do not delete this line -- Start Class Declarations public class OrderLine extends Object { // Data attributes private int id; private int quantity; private double price; private boolean isSatisfied; // Association attributes protected Order orderlinefororder; protected Product ordelineforproduct; // Default constructor public OrderLine(Order orderlinefororder_, Product ordelineforproduct_) { orderlinefororder = orderlinefororder_; ordelineforproduct = ordelineforproduct_; // Start user code section // End user code section } // User defined constructors // Methods public void initiateOrderLine() { } public void showOrderLine() { } public void deleteOrderLine() { } public void showPrice() { } // Do not delete this line -- regeneration end marker // Attribute accessors public int getId() { return id; } public void setId(int id_) { id = id_; } public int getQuantity() { return quantity; } public void setQuantity(int quantity_) { quantity = quantity_; } public double getPrice() { return price; } public void setPrice(double price_) { price = price_; } public boolean getIsSatisfied() { return isSatisfied; } public void setIsSatisfied(boolean isSatisfied_) { isSatisfied = isSatisfied_; } // Association accessors public Order getOrderlinefororder() { return orderlinefororder; } public void setOrderlinefororder(Order orderlinefororder_) { if (orderlinefororder != null) orderlinefororder.orderhasorderlineSet.removeElement(this); if (orderlinefororder_ != null) orderlinefororder_.orderhasorderlineSet.addElement(this); orderlinefororder = orderlinefororder_; } public Product getOrdelineforproduct() { return ordelineforproduct; } public void setOrdelineforproduct(Product ordelineforproduct_) { if (ordelineforproduct != null) ordelineforproduct.producthasorderlineSet.removeElement(this); if (ordelineforproduct_ != null) ordelineforproduct_.producthasorderlineSet.addElement(this); ordelineforproduct = ordelineforproduct_; } } // class OrderLine // Do not delete this line -- End Class Declarations CLASS PRODUCT // // File : Product.java // // Project : in219p22 // Configuration : Design 1 // Phase : Implementation 1 // System : SCATS 1 // import java.util.Vector; // Begin user import section // End user import section // Do not delete this line -- Start Class Declarations public class Product extends Object { // Data attributes private int productID; private String description; private int quantity; private double pricePerUnit; // Association attributes protected Vector producthasorderlineSet; // Default constructor public Product() { producthasorderlineSet = new Vector(); // Start user code section // End user code section } // User defined constructors // Methods public void createProduct() { } public void InitiateProduct() { } public void showProduct() { } public void deleteProduct() { } public void showPrice() { } public void changePrice() { } // Do not delete this line -- regeneration end marker // Attribute accessors public int getProductID() { return productID; } public void setProductID(int productID_) { productID = productID_; } public String getDescription() { return description; } public void setDescription(String description_) { description = description_; } public int getQuantity() { return quantity; } public void setQuantity(int quantity_) { quantity = quantity_; } public double getPricePerUnit() { return pricePerUnit; } public void setPricePerUnit(double pricePerUnit_) { pricePerUnit = pricePerUnit_; } // Association accessors public void addProducthasorderline(OrderLine producthasorderline_) { if (producthasorderline_ == null) return; producthasorderline_.setOrdelineforproduct(null); producthasorderline_.ordelineforproduct = this; producthasorderlineSet.addElement(producthasorderline_); } public void removeProducthasorderline(OrderLine producthasorderline_) { if (producthasorderline_ == null) return; producthasorderline_.ordelineforproduct = null; producthasorderlineSet.removeElement(producthasorderline_); } public Vector getProducthasorderlineSet() { return (Vector)producthasorderlineSet.clone(); } } // class Product // Do not delete this line -- End Class Declarations ----------------------- User interface Model with functions Database
上一篇:To_the_Moon 下一篇:The_Soprano