23
logistics, etc. at each step, starting with risk analyses and feasibility studies in the Concept Definition phase.
2.5. System Modeling
According to Pressman 2005, As a software engineer, it is very important to pay attention in system modeling. System modeling is an
important element of the system engineering process. The focus is on the world view or the detailed view, the engineer creates models that: define the
processes that serve the needs of the view under consideration and represent the behavior of the processes and the assumptions on which the behavior is
based.
2.6. Computer Engineering
The witer major is Informatic Engineering and specified in software engineering. There are many meanings of Informatic Engineering in the
world. The writer will explain them one by one which related with the field study and the project title.
The writer classified them, such as: 1. According to Sommerville 2009, “Software engineering is an
engineering discipline which is concerned with all aspect of software
production.
2. According to Pressman 2010, “Software Engineering is a people who
create computer softaware practice the art or the craft of the discipline”.
24
2.7. The Waterfall Process Model
Based on Pressman 2010, the waterfall model, sometimes called the classic life cycle, suggests a systematic, sequential approach to software
development that begins with customer specification of requirements and progresses through planning, modeling, construction, and deployment,
culminating in ongoing support of the complete software. It uses when the requirements for a problem are well understood –
when work flows from communication through deployment in a reasonably linear fashion.
Figure 2.2: The Waterfall Model 2.7.1 Communication
Communication was begun when the writer responded to the user request for help. The bridge in communicating step understands
the request even it’s hard to do. Before customer requirement can be analyzed, modeled, or
specified they must be gathered through the communication activity. Effective communication among developer, stakeholders and users is
very needed, its important to achive the purpose. In communication
Communication Modelling
Planning Construction
Deployment
25
steps, there are many principles in which very helpfull to do communication.
The principles in communication are: 1. Listening the user’s words. By listening, the writer could
identify the problem occurred and the writer can ask the question when she felt unclear with the user’s words.
2. The writer is preparing the equipment before interviewing the user. The equipments are needed such as: agenda for writing
some note and write down all the important things and a recorder to record the conversation. Understanding the problem
before continuing to another topic and do some research to understand the business domain.
3. Face to face communication will work better when some representation of the relevant information is present.
4. The writer tried to describe to the user what product, feature and function that she wants to build.
5. The writer focused in one topic. After resolving that topic, the writer will move to another topic.
6. The writer does negotiation with the user. The project runs smoothly when both of user or writer agrees with the decision.
26
2.7.2. Planning
According to Pressman 2010, planning activity encompasses a set of management and technical practices that enable the software
team to define a road as it travels toward its strategic goal and tactical objectives.
In planning stage, the writer will do some activities, such as: 1. Understand the scope of the project.
2. Estimating based on the writer knowing. 3. Track the plan frequently and make adjusments as required
2.7.3. Modelling
In building the system, the writer needs to create a model to make better understanding. A model must be capable of representing
the information that software transform, the architecture and functions that enable the transformation to occur, the features that
user desire, and the behaviour of the system as the transformation is taking place.
In software engineering work, two classes of models can be created:
1. Requirement Models
It can be called as analysis model. It represents customer request by depicting the software in three different domains:
information domain, functional domain and behavioural domain.
27
The writer uses requirement models to translate what the user needs such as flow chart and data flow diagram. Using them is
very useful because the user can have well understanding in system’s flow and the writer can work easier based on the data
flow and flow chart.
2. Design Model
It represents characteristic of the software that help practitioners to construct it effectively: the architecture, the user interface and
component level detail. Design model is very helpful because it not only could
communicate information to user who will test the software and to other who may maintain the software in the future but also it
helps to simplify program flow. In this writing thesis, the writer provides Entity Relationship
Diagram ERD, Genetic Algorithm GA model and the interface of the system.
2.7.4. Construction
Construction is a set of coding and testing tasks that lead to operational software engineering work.
1. Coding
The writer will transform the modelling design into a set of code. Before coding, the writer tries to understand the problem
28
that she is trying to solve. The writer also understand the concept of programming then the writer select a programming
language that provides tools that will make the writer’s work easier. In coding, it was divided into two kinds of activities,
such as: installing the software needed and coding for the interface and for the system. After finishing coding in the first
line, the writer will perform unit test and correct error that the writer has uncovered.
2. Testing
Testing is a process of executing a program with the intent of finding an error. It was divided into two types of testing, such
as white box testing and black box testing. White-box test design allows one to peek inside the box,
and it focuses specifically on using internal knowledge of the software to guide the selection of test data. Synonyms for white-
box include: structural, glass-box and clear-box. Black-box test design is usually described as focusing on
testing functional requirements. Synonyms for black-box include: behavioural, functional, opaque-box, and closed-box.
29
2.7.5. Deployment
Deployment is performing delivery, support and feedback. It occurs as each software increment is presented to the customer.
2.8. Type of Algorithms
Based on the previous research Steven : 2008 and Ivan : 2008, now a day, using genetic algorithm can solve the optimization problem in
scheduling. Many problems occur when some institutions have a large data and too many entity inside because, it gives a bad effect in the processing.
As we know, when we do some activities in processing random data, the important thing that we want to achieve is optimization in all aspect ex:
search process. The problems were : How to create population which is needed in genetic algorithm ? How to code in each gen or cromossom ?.
Beside Genetic Algorithm, the writer found some searching algorithm methods such as the binary search, the depth-first search and the branch and
bound. This below is a table about the strength and the weakness of using the
genetic algorithm, the binary search, the depth-first search and the branch and bound.
Table 2.1. The List of Algorithm No
Name of the Algorithm The Strength
The Weakness
1. The Binary Search
• Its used to search for stored data
• Its used to efficiently • The biggest
disadvantage of this method is a slow
30
retrieve information stored in computer
memory if a user has a large database of
name stored convergence rate.
2. The Depth – First Search
• Its used to efficiently find a set of action
that will move from a given initial state to a
given goal
• it may store only those states currently
in the search stack
• It is less space efficient.
• It cannot be easily extended to check
liveness properties. • Counter examples
cannot be obtained directly from the
queue.
3. The Branch and Bound
• Its used to find the shortest path
• Finds an optimal solution if the
problem is of limited size and enumeration
can be done in
reasonable time. • Extremely time-
consuming: the number of nodes in
a branching tree can be too large.
4. The Genetic Algorithm
• Its a kind of general class of search
• The idea is to efficiently find a
solution to a problem in a large space of
candidate solutions
• Easy and flexible in implementing and it
has high speed in processing because it
works by using code this type is very
suitable with scheduling problem
• The GA behavoiur can be complicated
• It feels difficult for setting the parameter
31
2.9. The Concept of Genetic Algorithms 2.9.1. The Origins of Artificial Species