Introduction
Core Java is a computer programming language that serves
general purpose computer programming. The programming language is specifically
object-oriented, class-based, and concurrent among other attributes. Its design
is specifically aimed at having few implementation dependencies. Its primary
intention is to let the application developers write the program once and test
it anywhere without limitations. This means that compiled core Java code can
run on almost all the platforms that support Java without requiring
recompiling. Java-created applications are compiled to bytecode that has the
capabilities to run on various Java virtual machines (JVM) without the need to
worry about the architecture of the computer. Since its introduction, core
Java, has been growing in popularity as one of the most used programming
languages. It is mostly used for client-server web applications. More than ten
million developers have developed applications using core Java as of 2015. Core
Java borrows most of its syntax from C and C++. However, its level facilities
are lower than both C and C++ (Flanagan, 1999).
Sun Microsystems are the original
developers of Core Java through James Gosling. The company released the
programming language in 1995 as a primary component of its Java platform. The
company also released the initial and reference implementation virtual
machines, class libraries, and the compilers under the application proprietary
licenses. Core Java has continued to evolve since its first introduction and
implementation. Its latest version is Java 8 which has a free support from the
Oracle. However, other versions have either Oracle or other companies support
or both on a commercial basis. This is not the end because there are every
signs and possibility that core Java will evolve further.
Core Java works on principles
thereby cementing its supremacy and authenticity. Every developer should,
therefore, stick by them for successful core Java programming. The principles
are also the goals of the programming language that became the pillars of its
creation. The five goals are (Groce&Visser, 2008):
·
The language should be
familiar, simple, and object-oriented
·
It must have security
and robustness
·
Its execution should be
high performance
·
It must be easily
interpretable, massively dynamic, and threaded
·
The language should be
easily portable and neutral to architectures
There have been nine major releases
of core Java by the time core Java 8 was being released. Surprisingly, core
Java 8 is the only version that is supported publicly. Some of the major
releases are JDK 1.0, JDK 1.1, J2SE 1.2, J2SE 1.3, J2SE 1.4, J2SE 5.0, Java
SE6, and Java SE7. One of the commendable features of the above core Java
versions is portability. It means that all the programs developed purposely for
Java platform run similarly on any set of hardware and operating system with
enough support of runtime.
I will be attached to a software
development company as an intern in software development using core Java. My
primary aim as an intern is ensuring there is a significant improvement in the
overall process of software development life cycle (SDLC). I will conduct my
software development duties vigorously and diligently to reduce the time it
takes to develop computer applications and software. The changes are important
to the stakeholders in the development of software and applications using core
Java. Most quality assurance teams fail to implement such changes.
Additionally, active participation of all the various stakeholders will
authenticate the development process and energize it for positive effects and
efficiency. Therefore, I will also be tasked with mobilizing every member of
the development team to make it a possibility (Williams, 2006).
Methodology
Action research is a research
methodology in practicing and conditioning of research activities in the
research field and in the places where researchers are conducting the research.
It largely and mainly involves the collaboration of researchers and various
stakeholders in an attempt to ensure that there are strong objectives and
suitable ways through which those particular objectives will be accomplished.
The improvement in the researcher’s practices leads to simultaneous improvement
of the environments in which the action research is taking place as well as the
society that is the part of the environment (Feldman, 2007).
Through communication between the
researchers and between them and the society and close observations, they can
make comprehensive and informed decisions about the topic of research in hand.
This helps them in coming up with the most suitable research methodology and
tools to use in improving the societal or organizational problem at hand. This
improvement also helps them to make significant improvements in their research
practices. Studies have shown that action research does not embrace neutrality.
Therefore, it means that each of the participants in the process of research
should participate actively. This leads to enhancement of comprehensive
understanding of the problem and the topic of research as well as the approach
that will be employed in solving the problem.
Action research is a brainchild of
Kurt Lewin. The German psychologist developed action research in 1946 during
one of his several research works in the community and concern with social
problems in his community at that time. His main focus was on the participative
groups that would enable him to address the crises better, positive changes,
and conflicts either within the society or the organizations. The term action
research first appeared in one of his works titled “Action Research and
Minority Problems” in 1946. He thought action research as a comparative study
of effects and conditions on different types of research and social actions
that would later lead to social action. Kurt Lewin’s imagination of action
research had spirals with each having repeating steps where each step was made
up of planning, action, observation, and reflection. He defined reflection as
fact-finding about the outcomes of the action. Action research continued to
develop in each generation of researchers (Lewin, 1946).
Eric Trist used action research in
later years for the purpose of improving it where possible. Both Kurt Lewin and
Eric Trist emphasized on active and professional collaboration between the
researcher and the client. Additionally, they advocated for embracing of roles
in group relations as the cornerstone of problem solving. Action research took
a serious and positive growth in the 1970s. Many researchers started applying
it in their works thereby improving it and have since developed to what is
being used today.
According to Kurt Lewin in the above
discussions, action research is a four-step process. The four steps are
planning, action, observation, and reflection. The four steps follow one
another in that order. They are also conducted iteratively until the
researchers meet the goals of the research and come up with a suitable solution
to the organizational or societal problem at hand. The researcher engages in
data collection in the planning stage. He analyzes the data and moves on to the
next stage of action. He conducts the planned action while borrowing much of
the action from the planning stage. The researcher then proceeds to the next
stage of observation. He notes down his observations in the planning and action
stage. The researcher may now proceed to the fourth and final stage of
reflection. The researcher reflects on several things such as what went well
and according to the plan and what might not have gone well and the
improvements required in the next iteration (Kidd &Krai, 2005).
I will use action research in my
position as an intern to conduct research process in software development using
core Java. Using action research is a sure way through which I will gain
software development experience and skills. The skills will not only be
beneficial to me but also to the company where I will be attached. Action
research will ensure active and motivated participation of the researcher and
other members of the team in the process of software development. Application
of action research will also give me freedom and opportunity to engage fully in
the development of other software in the company in the future or as soon as
the company will need my services. This full participation and engagement in
software development will have positive and significant effect in my practice
as a software developer. I will also improve my human relation skills and
appreciate what software development career offers (Lather, 1986).
Literature Review
Core Java,
Java programming or simply Java is a widely used and robust technology for
software development and creation of applications. Therefore, Java is both a
programming language and a platform. On the other hand, a platform is any
hardware or software environmental setting where software developers run their
programs. Therefore, since Java has its own environment (JRE) and API on which
it runs, it is referred to as a platform. A person who might not have
encountered Java might want to know where Java is used. According to the
studies, there are approximately three billion devices running on Java. It
means that there are many devices around the world where Java is currently
being used. Some of the devices where Java is being used are (Levenick, 2006):
1. Desktop applications like the acrobat reader, media player,
and antivirus among others
2. Several web applications such as javapoint.com
3. Mobile phone devices applications
4. Robotics
5. Embedded system
Types of Core Java Applications
As has been
seen in the description above, Core Java is a programming language that is used
in the process of developing systems, software, and applications. It develops
that have the capability of working on the local machine and the Internet. The
most known features of core Java is that it is object-oriented, and it works
across all the platform languages. Therefore, there are various categories of
programs which Java can be used to develop them such as (Russel, 2001):
Stand-alone applications
An
application is a type of program that runs on a PC or any computer under the OS
such as Windows, Mac OS, Linux, or Android of a computer or a mobile device.
The process of creating an application in Java is similar to creating a program
using another programming language. A stand-alone application can either be a
graphical user interface (GUI) based or console based. Console based Java
programs are the types of programs that run on being prompt by a command.
Furthermore, such programs do not display any screen based on GUI. The output
of such programs is console-based (Fain, 2011).
Web Applications
Web applications are the Java applications whose nature
is based on the web. They are simply web-based, and they require a web browser
to execute them. The web-based Java applications use a Server to store data.
Every time a user sends a request to have the application executed, the user
request is passed on to the server for an appropriate reply. Web-based
applications come as an Applet or a Servlet.
·
Applets:
These are Java programs that cannot work in any other environment except on the
Internet. Therefore, they are specifically created for that purpose. These
programs run through a browser embedded with a Java such as Firefox, Chrome,
Internet Explorer, and Netscape among others. Applets are created through any
Java development tool. It cannot work on the Internet without it being
contained within a web page. Java Applets programs include games developments
and visual effects among others (Gladychev, Patel, & O'Mahony, 1998).
·
Servlets:
Java is also appropriate for development of web-based n-tier applications. The
Java Application Programming Interfaces (APIs) on the server side address the
program processes and request of the client’s response. The server sides APIs
extend their capabilities of the standard Java APIs and are referred to as Java
servlets or server side applets. An HTML processing of a form is a simple use
of servlets. The servlets can also process databases as well as performing
server side transactions. Servlets execute through web servers (Hunter &
Crawford, 1998).
Distributed Applications
Distributed applications require a server to run.
Additionally, the applications use several servers simultaneously to back up
the data and information and prevent any losses that might occur. They are also
called enterprise applications. Such applications include banking applications,
and they are advantageous in that they have a high level of security,
clustering, and load balancing. EJB is used to create enterprise applications
in a Java development environment.
·
Database
applications: They are distributed applications that
use the JDBC API to connect to the database. They could either be applications
or applets. However, applets may face security challenges in the database
connections (Morgenthal, 1998).
Client Server Applications
Client server applications cannot execute without the
availability of web technology. Therefore, they are web dependent. The
application follows a less complicated Client-Server model in which a client
sends a request to the server directly. Examples of such applications are Yahoo
Chat. They are developed in Core Java and Web technologies (Kleinov &
Lehmann, 2002).
Proposal
. The software development process will largely entail a
systematic research process to ensure that the development process is conducted
according to the requirement, and it delivers the expected results. The
internship will be a subdivision of four iterations where each of the
iterations will entail different tasks and activities. Below are the iterations
(Oshana, 2006):
|
|
|
|
|
|
Iteration
1: Orientation – It includes an introduction to the
company’s management, employees, and its code of conducts and operations.
Furthermore, I will be introduced to the software development team and the
department of IT from where I will be working.
Iteration
2: Training – The iteration includes being guided
in the process of software development life cycle by the company’s experts in
the development process. I will also be introduced to the company’s specific
guidelines to the software development such as punctuality and adhering to
professional ethics in the process.
Iteration
3: Gathering SDLC tools – The iteration includes
collaborating with the software development team to identify and gather all the
tools that the implementation phase will require. This includes setting up the
computers on which the development will take place and installation the
computers will necessary software as well as the JDK (Saini & Kaur, 2014).
Iteration
4: Implementation – The activities of the iteration will
include the actual development of the software using Core Java. Therefore, we
will follow the SDLC process from the first step to the last step.
Iteration 1: Orientation
The orientation process defines the
introduction to the company’s management, employees, and its code of conducts
and operations. The basic governance of the company is well described during
the orientation. Furthermore, I was to have the introduction to the company
software development team and department of IT from where I was working. Java
is a technology that applies the principles of the DOT NET technology. It has
been on the application in the development of applications and currently in the
controlling and mobile computing systems. I take to present the internship
program iteration one that will describe my orientation at the company. The
program run for two weeks, and I had developed the undertaking of activities
into typical action research process of plan, action, observation, and
reflection.
Plan
Planning is the initial phase that will
define the overall plan for the orientation process. I developed a schedule for
the actions that I was to get involved with during the entire process of
orientation (Reschke,
Schelle&Gutsch, 1990). The plan for the orientation process at the
company was divided into several sections. Each section described the actual actions
that I was involved during the introduction process. The first division of the
plan was the familiarization of myself to the background of the company. The
phase activities will enable the understanding of the company locations and
strategic organization. The process is quite useful at it will get me the ideal
understanding of the directions and the major activities that the company takes
major very much. The second part of the plan for the orientation program will
be the understanding of the company operational goals along with the understanding
of the general company governance. The corporate governance of the company will
describe the policies, procedures, and principles that will have to follow and
apply as undertake the key tasks of the company.
The third tier of the plan will be the
familiarization with the company employees, management and the entire personnel
that impacts to the operations of the organization. The process will be
accomplished through the movement from one office to another to create the
relationship and get to know the persons that will impact much to my entire
activities at the company. The accomplishment of the process will also involve
the holding of meeting for the best of my success of the program. The follow-up
activity will include the determination of what it entails for me to work at
the company as a Java expert. In this case, I will take to have the
determination and understanding of the duties, roles, and responsibilities. At
the same time, skills are required for the attaining for the skills, I
undertake a small research over the same before I get into the training of
understanding application development using the core Java technology. The
schedule was prone to changes since before the training I had to have a good
preparation of which the activities were included within this last phase of the
orientation program.
Action
The activities of the program began with
the company pre-visit that I made before the actual date of reporting at the
company. I intentionally did the visiting to have the better understanding of
the strategic location of the company though it was part of the activities I
was to undertake within the plan. I reported at the working company some days
after the pre-visit. The initial activity that I began with during the program
was the familiarization with the company background. It is always important to
have the knowledge of the organization history so that you have the depiction
of what the company has given to the society and the operations the business
gets involved. I once more moved around discovering the terrain and the
strategic location of the company by defining the actual direction to the
specific departments and offices.
I went ahead to familiarize myself with
the company employees, management, and other stakeholders. The process was done
by moving from one office to the other. However, since the company is large, I
was to take almost two weeks just familiarizing and getting to know the
business staff I went by holding a meeting. The IT department used to hold
meetings with other departments with the key staffs from which I was introduced
and familiarized of the activities the staffs are involved. I then learned
about the company governance principles, policies and procedures through the
one to one meeting with the supervisor, IT department, operational department
and human resource representatives. The process was giving direction by then on
the way to go.
The most involving part was when I held
a meeting with the supervisor who defined the duties and roles along with the
responsibilities that I will be concerned with for that given period of the
organization. This was just the preparation for the next internship program
iteration phase of training. I organized myself and acquired some guide
materials from the company archive and simple research relating to core java as
I prepared for the training.
Observation
Planning in project management is the
primary key to the success of the project. The time I took to develop the plan
was limited by the benefit of the company planning template given by the
supervisor. I had an initial plan that saw me make a pre-visit to the company
that got me save time on the understanding of the company background. As I was
moving around the company, I noticed the way the business was strategized with
the inclusion of sign posts that gave directions as you move around the
organization. This described how the company developed strategic plan was well
planned and properly implemented. The company communication was well
established and benefited the team working (In Fischhoff, In Brewer, In Downs
& United States, 2011).
The company has some well defined
governing policies, principles, and procedures that have shaped the enterprise
to undertake the operations in an orderly and standardized manner. I discovered
the governance during the time of holding a meeting. Each personnel was focused
on the tasks he/she assigned and alongside that, there was teamwork motive that
I have never encountered (Pina & Joe, 2002). The staffs were cooperative to
each as depicted from the way they were describing the company governance in
the meetings. The meeting with the supervisor gave me a lesson as the
supervisor purposely insisted on focus, adhere to professional working
courtesy, handling of the tasks within the company governance. This gave me a
challenge of understanding the governance of the company in details.
As a preparation for the next activity,
the supervisor began with the definition of the roles, duties, and
responsibilities which describe the skills that I require. I had to respond to
the case and the training preparation I had given me the enthusiasm and moral
as I was waiting for the training.
Reflection
Orientation comes with its benefits when
enacted to new employees within a company. Orientation comes along with the measuring
of employee capability, quality and easy mode of adjusting within the
environment (Arthur, 2012). The initial activity of company pre-visit was the
special kind of orientation preparation. The ideology bore me a lot of time
saving, and it was a boost to the entire program. The background company
description defined the reputation of the company. The organization is
recognized for the most quality and standardized based companies that have
maintained a steady growth. One of the descriptions was basing on the defined
governance that focused on the management company relationship with the
employees and the overall governance. Indeed the look of the business from the
way the employees takes their duties you are just encouraged of wishing to be
part of the team.
In my opinion, the entire orientation
process was successful, however, during the meetings I wished the head of
departments and top management officials could attend to get me more empowered
with leadership and management skills. In any case, preparation is the key to
the success of every action that once can get involved. I was able to have a
defined plan that though was challenging but got me through succeeding about
the program. The orientation program gave me the well understanding of the company,
and as I had begun earlier, I was to have the deep understanding of the core
Java on top of the information the supervisor provided. There is the need of
training of the concepts so that during the actual development of core
Java-based application, I gain the expertise and firsthand experience of the
same.
Iteration 2: Training
The Training includes
being guided in the process of software development life cycle by the company’s
experts in the Core Java development process (T. Henry, Personal Communications,
February 29, 2016). The intern will also have an introduction to the company’s
specific guidelines to the software development such as the punctuality, and
adhering to the professional ethics.
That will form the basis for the subsequent iterations that will entail
a hands-on experience while applying the knowledge and experience guided from
the training. The researcher will also request the team of experts that will be
training him to arrange for an assessment to test the skills the intern will
have gained from the training session. The intern will use that assessment to
prepare adequately for the next iteration of gathering the SDLC tools and
implementation.
Plan
The researcher
planned to make some search on the Web so as to get an in-depth insight into
the area of Core Java development process and gain the basics knowledge of what
was expected from the training. The researcher also planned to come up with and
objectives list including the deliverables and milestones of the areas of
training that he would expect from the experts. The researcher also planned to
arrive early at the premises and request to be given a schedule and the outline
of the training so that he would align his objectives with the training session
and so gain maximally as per his expectations. The researcher also planned to
interact with the other interns and Java developers in the company that would
not be part of the training team. That will help in imparting the intern with
more experience and skills that entail not only Java development, but also the
execution of other tasks such as project management, communication, and
brainstorming software development meetings.
The intern also
planned to understand the challenges of software development and how to handle
those challenges so that the process of software development is made a success.
The other things that the intern planned were to have through insight are
concerning the selection of the development team and the qualifications that
the develops need to have so as to be trusted in developing a market-oriented
software that can be helpful in solving many of the common problems that
businesses face. The intern panned to
understand the entire process of software developing beginning with specification,
design, implementation, integration and testing of the developed software
application. The intern planned to put in place specific area that he wanted to
be handled during the training session for each phase of the development
process.
In the first
phase of the specification, the issues that the intern planned to get a
thorough knowledge on included what the phase involves, how to carry it out and
the specific deliverables for the phase. In the second phase the intern wanted
the trainers to address included the planning of the phase, how to define the
system, building prototypes and carrying out the object oriented design of the
new software system. In the third phase of software development, that is, the
implementation phase, the intern wanted to understand the elements and how to carry
out the development using Java language including the principles of programming
and rules in Java. The intern also
planned to understand how to perform unit the integration and testing that
formed the last phase of the SDLC process.
Action
The intern made
sure to conduct a search on the Web ahead of the iteration so as to familiarize
himself with the components of the training and the Java software development
process in general. The knowledge of those concepts would be helpful in
tailoring his plan and objectives to meet the requirements of the training (J.
Japheth, Personal Communications, March 05, 2016). The intern also arrived in
the software development company early enough and had to get the training
materials that helped him to make further refinement ion his plan and
objectives for the session. The intern then enquired of the room where the
internship was to take place. The intern
met with other interns who were already seated in the room, and they had a
great share of ideas and experiences regarding Core Java development before the
training began.
The training was
taking place in the company’s Java room that had a capacity of hundred
people. The company’s staffs that were
responsible for training the interns had training in Java, Java Applets,
software development, multimedia content development, Web user interface
design, and object-oriented design. The
developers introduced themselves before they would begin the training. They
also talked about the areas that each would handle for the period of two weeks
that the training was to take place. In the first week led by the senior Java
developer Mrs. Carrillo, the trainers trained on the first two phases of Java
software development that were, specifying the problem domain and designing the
solution. The training on the problem specification entailed how to create the
project development team, defining the vision of the project, conducting a
risks assessment and a feasibility study of the project and developing the
project plan. The deliverable is a well-written document containing properly
defined requirements of the software system.
As pertains the
third phase of software development, the researcher got training on the
planning and documenting the architecture of the proposed solution of a software
system. The training also involved the definition of the system, which is the
partitioning of the system to individual programs, defining and documenting
interfaces, and documenting the Java libraries.
There was also the training building the user interface prototypes and
the performing object-oriented design. In doing the object-oriented design, the
researcher learned how to create hierarchies as well as designing the field and
methods for the Java classes and interfaces.
The three basic classes that the intern learned how to develop included
the user interface classes, the problem domain classes, and the data management
classes.
In the fourth
phase, that is, implementation, the intern learned how to code the software. It
also involved writing the ‘for loops,’ if statements, the variables, catch
clauses and commented. There was also training on how to carry out unit testing
of the individual codes of the application, compiling and bugs fixing. The training on the last phase incorporated
how to get the various pieces of software to work together. The coding that
takes pace during this phase is for fixing bugs in the system. The researcher
also had top interact with other company staffs who were Junior Java developers
so as to get to understand other areas that may not have been properly
addressed. The intern also learns about the ethics as well as the legal
requirements while designing the software application. The researcher also got
training on the soft skills such as communication skills.
Observation
The Plan that
the researcher made concerning the training session was very substantial in
making the training session successful as observed. The researcher observed
that software development is a hectic process that should not be a one-man
show, especially when that project is a major one. The trainers mainly focused
on the practical design and development techniques that would be useful to the
intern in his future careers as a Java developer. The trainers assumed the
basics such as the Java language and APIs.
They had to focus on the basics because the employees normally want the
developers that have practical experience regarding the areas of their
professional (J. Japheth, Personal Communications, March 10, 2016). The intern
observed that software development is an area that requires much attention and
caution because there are many funds being pumped into the same, and so the
development process should deliver the desired deliverable.
The other
observation that the intern made was that there has to be careful planning
because a careful plan is what determines the success of the project. It is
better to take much time in developing the plan rather than hurriedly planning
and jumping into the execution because that can lead to frustrating results. The
intern also observed that the trainers were people that were well-versed wit
in-depth knowledge and experience concerning Core Java development and
programming due to their training and specialization in the area. For that
reason, they handled each area comprehensively and so the intern garnered much
knowledge in the session that would offer a good input into the skills in the
requirement to complete the remaining iterations. The intern also observed that
during the development of software, there has to be an adherence to rules and
regulations because software development is a critical area that is not without
rules and regulations.
The intern also
learned that Java language is majorly useful in the development of Web
applications, and it receives competition from other languages such as Visual
Basic and frameworks like Dot Net. For
that reason, it is required that an organization have a competent development
team that can be vigilant with the market trends so they can develop the
market-oriented products. By so doing, they will stand out and outdo the other
applications in the market. The intern
also observed that training of the staffs is something that cannot be ignored.
The training can help to impart them with the new skills that they do not have
so that they can effectively execute their tasks with ease (T. Joan, Personal
Communications, March 13, 2016). The
intern observed that the practical skills are vital, but the developers also
need the soft skills such as the communication skills because many times they
have to communicate with clients, stakeholders, and other project team members.
Reflection
The training
session on the devolvement process of Java software went so well in many areas
because from the same the intern got to learn how to structure it to meet the
user requirements. The researcher got to learn how to carry out all the
required steps from the requirements specification, planning, developing,
implementing, and integration and testing. The training also helped the intern
to garner the specific practical skills in light of Java development of
market-oriented applications. The intern learned how to work with the
development teams to ensure there is the success of the delftware development
process. The intern not only learned how to develop the application, but he
also learned some leadership skills such as how to direct team members in
accomplishing the given project. That knowledge and skills would prepare the
intern to handle technical tasks in the future concerning Java software development
(J. Japheth, Personal Communications, March 13, 2016).
The interaction
that the intern had with the members of the development team, the junior Java
developers of the company and the other non-Java developers provide a crucial
input that he did not and would not have gained from the trainers. The
companies also provided a good arena for learning. The company had a
substantial market share due to the competence and training of its team
members. They were people that had through knowledge in the area of Java
development, and they were also vigilant with the market trends so that they
could develop the software applications that would best meet the demands of the
market. The company had good plans for training the developers from time to
time so that they could acquire new skills to continue developing outstanding
software products to beat the competitors. It was a good thing to do the
internship in the company because the researcher got to learn many things that
were critical to his career as a young Java developer.
There are a few
things that the researcher noted while I the training in the software
development company. The researcher learned that the company majorly
concentrated in the development of Java applications without paying much
attention with other programming languages and platforms. The intern suggests
that the company also needs to examine other frameworks such as Dot Net
framework that is useful in the development of powerful web-based applications
with a market orientation. The intern also noted that most of the trainers did
not spend their time properly, and so they missed other areas that were crucial
to the training. The researcher suggests that the trainers should learn to keep
their time properly especially during the training so that they help the intern
to acquire all the skills he needs to become competent in his area of
profession.
Iteration 3: Gathering SDLC tools
The iteration includes collaborating with the
software development team to identify and gather all the tools that the implementation
phase will require. That includes setting up the computers on which the
development will take place and installation the computers will necessary
software as well as the JDK.
Plan
The intern
planned to meet the company’s Java software development team who would help to
provide him with the necessary knowledge required to accomplish the setting up
to the development environmental and getting all the tools ready for the
development of software. The intern wanted to learn the basics such as system
analysis and writing the user specifications as well as the functional
specifications of the software application. The intern also planned to learn
about the setting up of the PC from where he would be working while carrying
out the development of the required software application. Apart from setting up the computers, the
researcher also planned to understand the software tools that would be in
requirement. The intern planned to learn about how to acquire the software
tools, get them installed and also make the necessary configurations as
required.
Acquiring
information would also be something important because the lack of that
information makes the intern would not be successful in accomplishing the
required project (N. Didier, Personal Communications, March 15, 2016). In the
first phase the intern wanted to learn how to get the software product for
development and gather the necessary requirements while interacting with the
users of the application under development. The intern then planned to make a detailed
documentation of the user and system requirements. That would form the
foundation on how the researcher would structure the objectives and make the
plan for implementing those requirements. In the design phase of the
application, the intern planned to garner all the tools including the ones for
developing the right architecture and prototype for the application that would
be helpful in the subsequent phase. The intern also wanted to get the software
in place that would be helpful in describing the software system under
development and that included the SOA tools.
The other tools
that the researcher planned to acquire were the tools for the implementation
phase. They included setting up the code editor such as the Java beans and then
installing the Java Software Development Kit.
The intern also wanted to get all the testing tools ready so that the
testing would have accomplishment with ease in the next phase. That also entailed setting up the testing
environment. The intern planned to interact well with the development team so
as to properly understand the software to have development so that he would
avoid any mistakes that may accrue from the project execution due to lack of
properly understanding the requirements. The other plan that the intern had was
the accomplishment of the iteration within the time specified with all the
deliverables at hand at the end of this iteration.
Action
The intern
searched the company’s website and then came up with a solid plan regarding the
session and what it would require. In the first day, the intern met the
company’s Java developers in a brainstorming session so that they would brief
him on the software product under development. That session was very fruitful
because it was conducted well. The researcher got a thorough understanding of
the software under development and proceeded to begin gathering the tools and
the requirements for the software product and making an appropriate plan for
the development. The intern then made a plan on how to go about setting the
computers and implemented that plan successfully.
The intern set
the computers and made the necessary configurations on the computer because it
was of the same that he would be working in the subsequent phase. He tested the
installed computer and confirmed that it was working well. The intern then
embarked on gathering the project requirements. He had to meet the end users of
the software application that helped to shed more light on the project under
development. The intern also met the senior company managers and had to
brainstorm with them regarding the feasibility of the software project under
development. The researcher made sure that he outlined all the benefits that
would accrue from the software product if it would be successful. The intern solicited the help of the
developers to carry out the analysis of the gathered requirements and then made
a requirements specification document. The document clearly defined the user as
well as the system specifications (T. Henry, Personal Communications, March 25,
2016).
The intern then
garnered the software requirements for the design phase including the SOA
application tools. The intern then
installed the AutoCAD application that was helpful in the design of the
application architecture. The intern then got downloaded the Java software
development Kit and installed it in his working station. The user made the
necessary applications on the software and then installed the code editor,
particularly the Notepad++ and the JavaBeans.
The intern then installed the common JML tool suite or the development
phase of the software. The JML suite contains several other tools including the
type checker, JML compiler, runtime assertion checker, Javadoc, and the unit
testing generator framework (N. Didier, Personal Communications, March 25,
2016).. The JML tool suite saved the
intern the tasks of installing other tools that would otherwise be
time-consuming.
The researcher
then set up the testing tools for the software application. The first tool that the intern confirmed its
availability was the JML-JUnit tool that would be useful I the testing of the
unit codes. The intern installed the Mobius Program, Verification Environment
that contained a plethora of testing tools for a Java application. The other tools that the researcher acquired
were the JavaNCSS and the CheckStyle tools that would be useful in the code
analysis process. The researcher also got to test those tools to make sure that
they were working well to avoid frustrations in the last minute. The intern interacted with his supervisor and
the development team to have a thorough knowledge of the tools in requirement
and the supervisor also helped in the installation and the testing of those
tools. Lastly on of the senior developers had to evaluate the tools and their
suitability to the software under development so that he provided advice where
necessary.
Observation
The researcher
observed that a good plan is very important because it assures the success of s
project. The intern came to learn that
there were many tools useful in accomplishing the software development process
than he had anticipated. The intern also
learned that the structuring of the iterations in the form of the SDLC process
was very helpful in acquiring the tools that were specific to each phase of the
development. The intern also observed that the collaboration of the experienced
developers was of paramount importance as it helped to get the skills that the
intern did not have before. The software development process entails a lot, and
it is a process that is too involving according to the intent’s
observation. The intern also observed that
the developers were very substantial to the accomplishment of this iteration
through their advice and performance of the critical tasks.
The intern
observed that all the phase were as good and that there should be no phase that
the developer should ignore. For instance, the intern observed that the careful
analysis of the system and the specifications were something that was too as
compared to the other areas. That was because the intern had to go to the field
and gather the requirements using the right tools and make sure that the
information was as elaborate as possible so as to inform the project execution.
The analysis of those requirements also followed so as to have the properly
documented requirement ready to begin the development of the application in the
next phase. According to the researcher’s observations, the most important
thing was to produce the required deliverable at each phase. The deliverable in
this iteration was the tools and the requirement specification document because
the subsequent phase would entail only indoor activities majorly the
development of the required software product.
The intern also
observed that the installations of the software tools were also an involving
task that had to be performed with much care. The intern had to configure the
tools properly and test them to make sure that they worked properly and that
they produced the desired output. Almost
all the tools that were collected during this phase were open source, meaning
that the intern had to download and install them without having to pay for
them. Others were trial versions because the iteration was aimed at helping the
intern to understand how to set up the software tools as well as the hardware
tools. The researcher also observed that
there had to be the last evaluation of the tools by an experienced developer.
The purpose of doing that was to confirm that the right tools were in place and
that those tools were working properly; producing the desired results. It also came to the observation of the
researcher that even simple tasks of the research tasks required to go through
the software development process.
Reflection
The performance
of this iteration was very helpful to the researcher because it is the same
that resulted in having a thorough knowledge of the tools having requirements
in the software development process. The intern got to learn that there are
various tools in entirely all the phases of the SDLC methodology. The support that was offered by the
development team and the intern’s supervisor helped to make the iteration
successful. Many of the issues were also solved during this phase including the
issues regarding the ambiguity of the tools. The supervisor gave also coaching
while the selection of the tools was taking place as well as during the process
of installing and testing the tools. That helped the intern to learn many other
things on how to determine the tool specifications for a given task based on
the type and size of the project that needs to be developed.
The intern had
not interacted with a few of the tools before, but the supervisors gave him the
necessary knowledge that helped him to understand not only the configuration of
the tools but also how to work with the tools.
The intern got to understand how those tools worked and the basic
working standards for the tools. The interaction with other team members also
helped the intern to learn other things including the way one should conduct
oneself while carrying out the given tasks (N. Andrew, Personal Communications,
March 28, 2016). The freedom that the supervisor and the development team gave
helped the intern to learn how to work on my own and deliver the needed results
without any compromise of quality results. The iteration gave the intern the
confidence that having the right tools in place would make the project successful.
Also, the time given for accomplishing this iteration was more than enough as
the intern completed all the activities and had some time left to make other
vital inquirers into the area of software development.
The iteration,
however, faced some difficulties. For instance, while the intern was gathering
the requirements, some respondents that he made were not very positive while
others totally refused to provide any responses to the system. The intern plans
to solve that in the future by involving a large sample so that in case there
are those that may fail to respond positively, then the others can take care of
that. The supervisor was also unavailable sometimes for consultation, and that
resulted in looking for help from the other developers or junior members. The
company should have supervisors that are available all the time the interns
need them, and that can help in avoiding costly mistakes that may result from
lack of close supervision. The intern also suggests that the company to groups
the interns into two during the execution of tasks instead of each working
independently, hence wasting time and resources.
Iteration 4: Implementation
Plan
The activities
of the iteration will include the actual development of the software using Core
Java (N. Didier, Personal Communications, April 01, 2016). Therefore, we will
follow the SDLC process from the first step to the last step. The intern
planned to work closely with the company’s developers to develop an application
that had a market orientation and the one that would pass the user test. The
intern wanted to use the requirements specification, the plan properly, and the
tools gathered in the previous iteration to accomplish the development of the
software application. The intern planned to make sure that the resulting
software product had all the features as per the requirements specification
document. The other thing that the
intern planned to do was to leverage the software development methodology in
the developing of the software product at hand fully.
The intern
planned to utilize the services of the development team and the supervisors
closely so as to make sure that the project had development in the right manner
and that everything is done as required. The intern planned to schedule and structures
the development of the project in light of the available time and make sure
that all deliverables are produced within the time specified. The intern planned to make sure that he
carries out unit testing during this phases before the development team, and
the quality assurance officers would carry out the last testing of the
completed software product. The intern
planned to ensure that he closely followed the review process of the test cases
as he would not be allowed to carry it out due its sensitivity. It requires the
skills of the senior developers and the senior quality assurance officer. Below
is the model the intern would use.
Action
The intern met
the supervisors hand then he was given the mandate to carry out the development
of the software application in light of the software requirements at hand. The
intern began by examining the requirements once again so as to make sure he
thoroughly understood them and eliminated any ambiguity. The intern then developed the execution plan
to fit into the available time for the development of the application. The intern used the proper tools to draw the
architecture of the application in the first two days before translating the
design into the actual system. The
researcher is then designed and implemented first the user interface of the
software application before designing and implementing the backend systems,
ensuring that he leveraged all the coding principles and standards.
The intern also
made sure to leverage the required tools to carry out the unit testing. The
essence of carrying out the unit testing was to eliminate any issues that would
have caused the developed software product not to work as per the user
requirements. The unit testing was to
confirm if all the units of code worked well and that they produced the
required output (N. Andrew, Personal Communications, April 10, 2016). The
intern then met the development and the quality assurance team after
ascertaining that the software functioned as per the requirements. The
development team thoroughly tested the software product, and they also prepared
the tests cases that were to have an examination by the review team. The
purpose of the review was to make sure that the testing was thoroughly executed
and that it utilized all the available platforms to make sure that the software
worked on all the available platforms, producing the same results.
Observation
The intern
observed that the software development process is very helpful in guiding the
development of projects of any kind. The knowledge of this process contributed
to the success of the project task at hand. The researcher also observed that
he had to be careful while developing the application because any mistake that
he made would have culminated into wasting time correcting it. The supervisor that was given the intern had
mastery of the Java software development because he had worked as a senior
developer for nine years (N. Didier, Personal Communications, April 12, 2016). The
intern observed that the tools that he had collected in the previous iteration
worked well although he did not have the knowledge of how to use some of the
tools. The Web was sometimes helpful especially when the supervisor was not
near for consultation.
The researcher
also observed that the company took their project development projects
seriously, and although interns had to develop critical projects, they had to
be thoroughly supervised at very single step.
The intern also observed that the company had many customers that
enjoyed their services as the intern learned from the supervisor. Paying
attention to the market-oriented software products and having a strong software
development team is what made their clients stay (T. Henry, Personal
Communications, April 14, 2016). The
researcher also observed that the methodology that the company leveraged made
sure that all the elements and requirements were put into consideration while
carrying out the development of the application. The researcher also observed
that the company was very keen on the tasks that the interns performed so that
they would recruit some of them after the internship.
Reflection
The intern
observed that software development tasks were the most involving activity in
the company and the software development process. It is the time when the
intern got to learn the practical skills concerning software development and
the quality standards of the software that should be followed. The knowledge that the researcher had gained
from the previous iterations helped him to accomplish this iteration with less
difficulty. The intern got to acquire the problem-solving skills as required in
the software development field. The support that the developers gave the intern
was very helpful in making the software development successful. The intern got to acquire practical skills
that a complemented the ones that he had to learn in the previous iterations.
At the end of the iteration, the researcher evaluated all that he had done in
the company during the internship and discovered that he had accomplished 80
percent of his objectives.
The intern was
impressed by the internship that he had undertaken in Grand Technologies Inc.
the intern however suggests some improvements to this last iteration. The
company did not involve the intern while the review of the test cases was
taking place. Therefore, the intern suggests that there be involvement of the
intern in all the major activities sand tasks as he is there to learn. The intern also did not get close supervision
of the intern coordinator, and so he would not address his dissatisfactions to
anyone. Intern coordinators are the point of contact between the intern and the
company, and he is the one that handles the dissatisfactions of the intern. The
intern suggests that the coordinator should be available all the time to
address the intern issues.
Conclusion
The first
iteration was about orientation into Grand Technologies Inc, and the intern
learned many things concerning the company. The intern was able to have a
defined plan that though was challenging but got me through succeeding about
the program. The orientation program gave the researcher a well understanding
of the company, and as he had begun earlier, he was to have the deep
understanding of the core Java on top of the information the supervisor
provided. There is the need of training of the concepts so that during the
actual development of core Java-based application, the researcher gained the
expertise and firsthand experience of the same. In the training session, the
researcher got to learn how to carry out all the required steps from the
requirements specification, planning, developing, implementing, and integration
and testing. The training also helped the intern to garner the specific
practical skills in light of Java development of market-oriented applications.
The intern learned how to work with the development teams to ensure there is the
success of the delftware development process. The intern not only learned how
to develop the application, but he also learned some leadership skills such as
how to direct team members in accomplishing the given project.
The third
iteration had the intern gathering the necessary tools for the software
development process. The performance of this iteration was very helpful to the
researcher because it is the same that resulted in having a thorough knowledge
of the tools having requirements in the software development process. That
helped the intern to learn many other things on how to determine the tool
specifications for a given task based on the type and size of the project that
needs to be developed. In the last iteration, the researcher developed the actual
software.
During the
software development activity, the intern got to learn the practical skills
concerning software development and the quality standards of the software that
should be followed. The knowledge that
the researcher had gained from the previous iterations helped him to accomplish
this iteration with less difficulty. The intern got to acquire the
problem-solving skills as required in the software development field. The
support that the developers gave the intern was very helpful in making the
software development successful. The
intern got to acquire practical skills that a complemented the ones that he had
to learn in the previous iterations.
References
Arthur,
D. (2012). Recruiting, interviewing, selecting & orienting new employees.
Pp 299. New York: AMACOM, American
Management Association.
Fain, Y. (2011). Java programming 24-hour trainer.
Indianapolis, IN: John Wiley.
Feldman,
A. (2007). Validity and quality in action research. Educational action research, 15 (1), 21-32.
Flanagan,
D. (1999). Java enterprise in a nutshell:
A desktop quick reference. Beijing: O'Reilly.
Gladychev, P., Patel,
A., & O'Mahony, D. (1998). Cracking RC5 with Java applets. Concurrency:
Practice and Experience, 11 (13), 1165-1171.
Groce,
A., &Visser, W. (2008). Heuristics for Model checking Java programs. International Journal
on Software Tools for Technology Transfer, 6 (4), 260-276.
Hunter, J., &
Crawford, W. (1998). Java servlet
programming. Sebastopol, CA: O'Reilly Media.
In
Fischhoff, B., In Brewer, N. T., In Downs, J. S., & United States. (2011). Communicating
risks and benefits: An evidence-based user's guide.
Kidd,
S. A., &Krai, M. J. (2005). Practicing participatory action research. Journal of Counseling Psychology,
52 (2), 187-195.
Reschke,
H., Schelle, H., &Gutsch, R. W. (1990). Dimensions of project
management: Fundamentals, techniques, organization, applications. Pp 230.
Berlin: Springer-Verlag.
Russel, J. P. (2001). Java programming for the absolute beginner.
Roseville, CA: Prima Tech.
Saini, M., & Kaur,
K. (2014). A review of open source software development life cycle models. International
Journal of Software Engineering and its Applications, 8 (3), 417-434.
Williams,
R. (2006). Real-time systems development.
Burlington, MA: Elsevier Butterworth- Heinemann.
Sherry Roberts is the author of this paper. A senior editor at MeldaResearch.Com in custom nursing essay writing services services if you need a similar paper you can place your order for college essay writing services.
No comments:
Post a Comment