Aluminum Process
Aluminum Process
Aluminum Process
OACS
Optimum Aluminum Computer System
Supervisor:
First and foremost I would like to thank the director of Arab Open University -
Lebanon branch, Mrs. Fairouz F. Sarkis and all IT departments’ directors, tutors, and
staff. AOU made it possible for me to acquire my bachelor degree in Information
Technology and Computing, without quitting my job!
Special thanks to Dr. Nuhad Aman Eddine, Dr. Ali Atieh and Dr. Ahmad Fadlallah
for their help and concern in better quality of teaching and respect for students.
My thanks and gratefulness for Mr. Ali Harb, Mr. Bassam Azoury, Mr. Nabil Rahal,
and Mr. Tarek Mahmoud for their valuable and supportive assistance which made it
possible to get over many obstacles.
Table of Contents
PREFACE ……………………………………………………………………………………………. 1
I: INTRODUCTION ………………………………………………………………….…. 2
1.1 Background of the Project …………………………………………….…………. 2
1.2 Purpose of the Project ……………………………………………………………. 2
1.3 Objectives of the Project …………………………………………………………. 2
Bibliography ……………………………………………………………………..33
Preface
Most of software application systems that were developed for industrial uses were
exclusively oriented towards computerized and automated machinery only. Hence, very
few software applications were developed for factories with non computerized
machineries.
In Lebanon, the major part of aluminum factories use non computerized machines,
where machines operators do all the cuttings for various parts of aluminum doors and
windows. In fact those machines operators are human workers, who have skills in
cutting and operating the machines.
In general most of the aluminum factories do not follow a systematic scheme for the
overall business procedures. So it is not strange to get lost in following up a pending
project, or some accounts of certain customers, but the worst part is the major loss of
valuable aluminum materials due to misunderstood measurements or calculation
mistakes. (Here it is “mistakes” not errors because they are committed by human
personnel rather than smart machines!)
The idea of OACS project is to approach this domain and see what could be offered
to facilitate-with-accuracy the production process of doors and windows, without
transferring the factory machines into computerized ones.
1
I: INTRODUCTION
Taking in consideration the previous facts, I tried to make a projection for the
non-computerized, non-systematic, and manually calculated lists into a computer
system that tries to trim most of the latter problems and to relief human operators
from the hard job of calculations.
2
the business owner or manager to control the production procedures in the
factory, and keep track of important data which is needed for current and future
work.
1.3.2 Specific Objectives
The core of OACS is the cutting lists engine that produces optimum cutting
lists for aluminum doors and windows for the different projects to be
constructed. The procedure of producing these lists is the most important part
in the aluminum factory. It is how fast and how accurate these lists are
generated. OACS cutting lists engine will generate lists in a very short time
with a very high precision of measurements for every related-cut-part of a
series of windows or doors.
The main problem is producing aluminum doors and windows cutting lists
with precise measurements, which is the responsibility of each one of the
machine operators. (Human operators)
Calculation mistakes always come up in the cutting lists, due to manual
calculations.
A lot of operators and machines time, is wasted on the complex calculation
procedures.
Due to some erroneous results of lists, many aluminum raw materials and
workers time are wasted out.
The Over-All productivity of the aluminum factory is slowed down due to the
previously mentioned problems.
There is no systemic and standard profiling for customers and their performed
projects.
Finally, customers wouldn’t be satisfied due to all of mentioned problems.
(Project deficiencies, slow procedures, etc…)
3
2.2 Suggested Solution
It will organize and preserve all data about customers, projects, aluminum profile
specifications, in a reliable and well defined database.
It will provide monetary accounts and invoicing system for each customer.
(Accounts are generated according to charter fees and cost of materials in every
performed project)
The main target of OACS is to produce a "Solution" for the required cutting lists,
for each project. The "Solution" part of OACS will contain the calculation
engine, which performs all mathematic operations, according to specific
business rules, that depend on different product types. (These specifications are
the core of this industry, where the list, contain precise measurements of every
part, out of many, that will produce a finished product, such as a window or
door. Detailed explanation of these specifications will be introduced in the
design stage)
OACS is a computer system, which delivers optimum solutions for the non-
computerized aluminum factories. OACS computer application will deliver the
following:
Computerized cutting lists for aluminum doors and windows based on various
standards of aluminum profiles and the specified inputs from managers that
concern the specifications of different projects.
4
Reports and printed out sheets of cutting lists for aluminum doors and
windows, to be used by aluminum factory machine operators and glass factory
cutters. (The glass cutting lists sheets of each project are just sent to the glass
factory)
OACS will handle all the profiling operations that concern the business domain
(profiles for customers, projects, products, accounts, and factory managers.)
OACS will preserve all the profiled operations data of the business domain
(profiles for customers, projects, products, accounts, and factory managers) in
a relational database.
Technical terms of various parts that are cut and assembled in the aluminum
factory to form an aluminum window or door of various types:
- Bottom Track: The part that constitutes the bottom frame of a door/window.
- Side Track: The part that constitutes one of the sides of a door/window frame.
- Bottom Panel: The bottom part of a sliding door/window panel.
- Side Panel: One of the side parts of a sliding door/window panel that usually
contains a handle and hook lock mechanism.
- Adapter: A small narrow rail to adapt double sided rails together.
- Screen: Identical sliding panel with aluminum net-wires. (Insect trap)
5
to automate the generation of precise cutting lists), in setting the best outcomes
and targets for the OACS project.
The design of OACS came out to achieve the set aims and targets
mentioned above, and proposed a decent solution for each of the mentioned
problems. Customers, managers, projects, solutions, and accounts data is
organized and preserved in a related database, and the manual generation of
cutting lists is replaced with a cutting list engine that automates the procedure of
taking in all measurements data from managers, and producing high precision
cutting lists with all business rules covered according to the product profile
features and customers’ demands.
6
3.2 Project Schedule: OACS Time-Management Schedule. (Image is tilted for a better view)
7
IV: REVIEW OF RELATED LITERATURE
4.1 Related Literature
The related literature search is focused upon two different fields of sources:
1- Keyword(s) search
2- Search by Author's Name
3- Search by Title
Keywords search gives the largest number of search result links, which
consumes a lot of time to find a specific reference. On the other hand, search by
Author's Name or by Title, results in limited number of feedback links, which are
closely related to the desired reference. We used this method to conduct my
literature search.
8
4.3 Evaluation of Related Literature
An evaluation example of the chosen book “Practical Standards for Microsoft Visual
Basic ” by James D. Foxall. (See bibliography for further information about book publishers)
Presentation
The book is well structured and has an organized layout. All topics are well
indexed, which made it easy to find any topic of interest. I found most of the
book content suitable for both beginners and advance programmers who wish to
learn Microsoft Visual Basic.
Relevance
After reading the targeted parts of the book, I found it very useful. I aimed
to learn new programming techniques that I don't have yet, and reading the book
made it easy and clear to get them.
Objectivity
Since Visual Basic is a very popular programming language, many
developers extended its capabilities and functionalities. But the author had
specific objectives about the practical standards of this language, and those
objectives were made very clear.
Method
Basically, the book is a practical reference. Most of its methods rely on
developer teams at Microsoft and Tigerpaw Software:
- Development and Support for Tigerpaw Software.
- Microsoft Certified Solution Provider specializing in commercial database
applications.
- The Microsoft Windows and Microsoft Office environments teams.
Provenance
Since Microsoft is the exclusive inventor of Visual Basic, and James D.
Foxall is one of Microsoft developers' team leaders, the book is more than
reliable. In addition it is published by Microsoft press.
Timeliness
Most of the book content states the practical standards of Visual Basic,
which means that it applies to whatever version of this language. Also it is
mostly based on the final version of Microsoft Visual Basic 6. (No newer
versions of this language were released. A new approach is in place, VB.Net)
9
V: SPECIFICATIONS ANALYSIS
- Business expert’s interviews. It was the basic and richest method that provided
us with most of the business domain rules, procedures, standards, and
contracting details. Upon visiting different aluminum factories, we noticed
little variation in cutting methods among them. Also they were conducting the
other procedures in the same sense, procedures such as contracting projects,
registering needed data on papers, and even using the same aluminum profiles.
(Those are mostly common amongst all aluminum factories)
It will introduce an invoice system for the customers (charter fees and cost
of materials for the performed projects.)
The "Solution" part of OACS will contain the calculation engine, which
performs all mathematic operations, according to specific business rules, that
10
depend on different product types and produces precise cutting lists for each
project, ready to be used by machinery operators.
11
Contracting and Solution Use Case Diagram and Functionality
(The following numberings are related to Contracting and Solution Use Case Diagram)
12
mathematical calculations, based on the measured width and height of
every window or door, and the chosen type of an aluminum profile)
2- Total square area of aluminum and glass for all windows and doors of
one project solution.
3.5.1- The system saves automatically all of a solution results into the system
database.
3.5.2- The system prints out a hard copy of the "Cutting Lists Results" only that
will be used by machines operators.
4- Create Customer Account
- The manager creates an account for a customer upon contracting a project, using
Customer ID and Project ID.
- The manager sets the "Prices and Fees" per meter for the performed project.
- The manager saves data to Accounts Profile in the database.
4.1- The system generates an invoice after a solution for a project is generated,
acquiring total square area of aluminum and glass from the Cutting List
Engine results.
- The system will automatically saves data to Accounts Profile in the
database.
4.2- The system generates and prints out a predefined payments receipt.
OACS preserves all its data in a database run and maintained in MS SQL
server.
To enhance the layout and output of some forms, OACS used ActiveX
controls like iGrid2.0 and some additional DLL library files that are
13
included with OACS package in addition to the installation instructions for
optimum performance. (In Readme.txt file)
The cutting lists sheets for aluminum windows and doors (In addition to
glass cutting lists) will make use of Microsoft Excel as reports output and
for the hard copies printouts.
During the various stages of the project, I used some tools that aided me in the;
management, design, and in development procedures of the project.
14
VI: SYSTEM DESIGN
6.1 System Architecture
OACS is composed of three main modules: (See the figure)
1- Profiling System
2- Solution Engine
3- OACS SQL Database
- Log-In Form
- Main Form
- Customers Form
- Customer Accounts Form
- Managers Form
- Aluminum Profiles Form
- Projects Form
15
- Log-In Form: A simple security measure that requires a user ID and a password to
allow the system user (A computer operator) to log-in and operate the system. No
need for user accounts and access control in OACS system.
- Main Form: After a successful login, the main form is displayed. The main form
contains all the links to the other forms, with a short explanation about the role of
each form.
- Customers Form: This form takes in all needed data about the customer, such as:
Customer ID, Customer Name, Customer Address, and Customer Phone, and stores
them in the related customer table of OACS relational database.
16
- Customer Accounts Form: It takes in all needed data about a Customer Account, such
as: Account ID, Customer ID (from Customers table) and Project ID (from related
Projects table). In addition to input Charter Fees, Total Square Area (from the related
project Solution table), Total Payment (calculated by multiplying input Charter Fees by
Total Square Area) and Number of Payments. All data of this form is stored in the
related customer accounts table of OACS relational database.
- Managers Form: Managers Form takes in all needed data about the
manager/managers, such as: Manager ID, Manager Name, Manager Address, and
Manager Phone. Data is stored in the related Managers table of OACS relational
database. Managers hold the responsibility of contracting projects with customers,
and taking the needed measurements for doors and windows in each projects, in the
form of width and height.
17
- Aluminum Profiles Form: This subsystem takes in all technical data about the
product, such as: Product ID, Product Name, Product Color, and Product
Dimensions (Width x Height x Length). Data is stored in the related Aluminum
Profiles table of OACS relational database.
- Projects Form: The Projects Form takes in needed data about the project, such as:
Project ID, Project Location, Project Description, Start Date and Finish Date. In
addition to ID of the manager assigned to the project and the ID of the project owner
customer. Data is stored in the related Projects table of OACS relational database.
18
6.1.2 Solution Engine
Also in this form the totals of square meters of aluminum and glass for
each project solution will be calculated and displayed. In addition the
solution engine will export the cutting lists of aluminum parts and glass
plates separately into MS Excel to be printed out as hard copies.
All the relevant results of cutting lists are stored in related table of
OACS database, and might be displayed or kept for future reference.
19
6.1.3 OACS SQL Database
Classes
Alum: Short for Aluminum, this class is designed to hold related and technical
data about Aluminum such as: ID, Name, Color, Description, Width, Length,
Thick (short for Thickness) and Weight. One instance of this class is in
relationship with none or many instances of class Solution.
20
Customer: The Customer class is designed to hold related data about customers
such as: ID, FName (First Name), LName (Last Name), Address, and Phone
number. One instance of this class is in relationship with none or many
instances of class Project.
Invoice: The Invoice class is designed to hold related data about the customer
account, such as: ID (account ID), ProjectID, CustID (Customer ID), InvDate
(Invoice Date), TotalSQ (Total square area), Total (total cost), and Payments.
One instance of this class is in relationship with none or many instances of
class Project.
Project: Class Project is designed to hold related data about the project, such
as: ID (project ID), CustID (Customer ID), MgrID (manager ID), Location,
Description, SDate (start date) and EDate (end date). One instance of this class
is in relationship with none or many instances of class Solution.
Solution: The Invoice class is designed to hold related data about the Solution,
such as: ID (solution ID), ProjectID, AlumID, Qty (quantity), Width, Height,
Total (total square area of every WxH of a door/window), Types (either gate or
window), Panels (either 2 or 4 panels), Base, Side, P_width (panel width),
P_height (panel height), Scr_w (screen width), Scr_h (screen height), Adapter,
G_width (glass height), G_Height (glass height) and G_Total (glass total).
None or many instances of class Solution is/are in relationship with one
instance of class Alum. Also none or many instances of class Solution is/are in
relationship with one instance of class Project.
Hint: For further details about the used term, review section 2: “SYSTEM
REQUIREMENTS AND SCOPE”, subsection 2.5: “Definition of Terms”.
21
6.2 Data Flow Diagram (DFD)
OACS has a main module that contains the cutting list engine; it is the "Solution"
module. The following DFDs shows input, storage, and output operations of the Solution
module in different levels.
22
Level 1 DFD for Solution Data Input Process
23
Level 1 DFD for Solution Data Output Process
24
6.3 Program / System Flow Process / System Flowchart
First, customer, project, manager, and aluminum product profile provide the
solution module with the needed data, and then the cutting list engine in the solution
module generates the wanted lists through a series of inputs from the manager
(quantity, width, height, type, and number of panels of each door/window) and
calculations according to business rules.
Also the solution module generates total square area of the whole project and the
result sheets of cutting lists.
The generated total square area of one whole project is used in the invoice form
with the relevant data about the owner customer of the project to calculate the total
cost of the project according to charter fees set by factory manager in command.
25
6.3.2 SYSTEM FLOWCHARTS
26
o Project Solution Flowchart:
27
6.4 ER Diagrams
- Alum (ID, Name, Color, Description, Width, Height, Length, Thickness, Weight)
- Solution (ID, ProjectID, AlumID, Qty, Width, Height, Total, Type, Panels, Base, Side,
P_width, P_height, Scr_w, Scr_h, Adapter, G_width, G_Height, G_Total)
28
6.5 Methods Used in Developing the System and Justifications
First, we used the iteration model in the system requirements stage. The
data collection and interviews with business experts were done iteratively. We
investigated about one part of the system, let’s say the “Solution” module in
OACS, then after analysis, many gaps appeared and needed more investigation
again and again until those gaps were filled. For example, in the first two
interviews with two respectful business experts, many facts appeared about the
requirements for an aluminum project solution. As we tried to move on to other
modules of the system, we found out many missing requirements in the solution
module still needed more investigation to be done. So we interviewed more
business experts, and got all the answers.
At the first beginnings of the project, we tried to finish up each part of the
system completely, by adopting the waterfall method, but soon ran into a dead
end. During interviews, no one of the interviewees accepted to be interviewed
that way, I mean to extract every small detail about one part of his business from
the first time, which was impossible!
Also while designing OACS; it was merely useless to try finishing up each
part of the system without the need to refine it again by adding new features or
removing inappropriate ones.
29
VII: SYSTEM DEVELOPMENT AND TESTING
7.1 Sample Output Screens/ Forms/ Reports with sample data
30
7.2 System Testing
Partitioning the system into tasks and sub-tasks helped a lot in the testing
procedures. When a sub-task is finished, we conducted some testing procedures
and debugged the errors if any and moved one to the next sub-task until all the
sub-tasks of a certain task were completely tested.
b. Black box testing: the important thing about the techniques of the black
box testing so it tests the system input data. We tested a random range of
input values, and then we used lower, upper, and middle bound values to
make sure that no errors will occur upon all types of input values users
might use.
c. White box testing: we selected testing cases inputs so that we can check
the paths in the code and find out the correct output. When any aspect of
the implementation is modified, we re-conducted the white box testing.
31
VIII: CONCLUSION AND RECOMMENDATIONS
8.1 Conclusion
On the other hand, OACS approaches a business domain where most of the
work and procedures are conducted in a non-systematic and non-organized
forma. In some of its aspects, we enjoyed work in some stages, specifically the
conducted investigations with business experts. That experience provided us
with lots of communication and interviewing skills. Other aspects of design
and coding urged us to push our abilities to the limit in order to come up with
the most suitable solution.
Also a complete module for payments would be suitable for the non-prototype
system. In addition, a stock control module might be added to follow up the
aluminum inventory stock and the aluminum suppliers.
32
Bibliography
- Foxall, James D., Practical Standards for Microsoft Visual Basic, Published by
Microsoft Press, Redmond, Washington. Copyright © 2000 by James D. Foxall.
- Alan Beaulieu, Learning SQL, Second Edition, Published by O’Reilly Media, Inc., 1005
Gravenstein Highway North, Sebastopol, CA 95472., Copyright © 2009 O’Reilly
Media.
- Visio 2007 Automation Reference, Object Library Reference for the 2007 Microsoft
Office System. MS Office 2007 integrated help system.
- United States Aluminum, Commercial Products Group, SD series 2000 technical data
and specifications manual of aluminum sliding doors and windows. Release date
2009.
33