Design
The design phase
of the software development process entails the translation of the software
requirements into an architectural design to display how the completed system
would look like if it were developed. That is to say that; it is the process of
defining the components, interfaces, the modules, the architecture as well as
the data for the software under development. It entails a logical design and a
physical design of the software under development. The architectural design of
the software emphasizes on the architecture of the software including the
structure, behavior as well as other views of the software and analysis. In the
logical design of the software, there is an abstract representation of data
flows, system inputs as well as outputs of the software application. The
logical design incorporates coming up with ER diagrams. On the other hand,
physical design is the design of the actual input as well as the output for the
software application. That is to say, physical design involves the design of
data input, the verification of the data, processing of the data and the
display of the data.
Planning
In this phase of
design of the software application, I planned to develop an application for the
system that would meet the business needs of the system while taking into
account the resources, the time as well as the costs. I planned to assemble all
the information gathered during the requirements gathering phase as this would
guide the design of this software application. I planned to identify what would
have usage as I would use it during the development. I planned to begin with the architectural
design, and then come up with the logical design of the software application
before finally coming up with the physical design. That chronological process of the software
application design would help in laying a good foundation for what would be in
the requirement for the software application under development. I would make the architectural design of the
system and its behavior as clear as possible in the architectural design.
In then logical
design, I planned to ensure that all the inputs, the data flows as well as the
outputs of the system are clear and that they demonstrate what the system would
take as input and the results that it would produce. I would demonstrate the three parts of the
system in the physical dei8sgn including the output part, the data processing
and the output of the system. I planned
to ensure there is harmonious tying of the system components and modules of the
system to demonstrate how they would work in the actual system to have
development bin the next phase. That was because any flaw in the design would
lead to a flaw in the coding and finally make the system dysfunctional, so this
phase was very important and I would ensure that it took place as desired. I
planned to ensure that software application design produced a perfect software
application specification as it would appear in the completed application.
I planned to
determine the high-level design for the application as well as the low-level
design and differentiate the two in a clear manner and show their relationship.
I planned to find out what would have usage in the development of this software
application, all the standards and conventions to have usage in this project
and the style of the software application under development. I also planned next to come up with the
program design that would show the programs that would have coding of this
system and what those programs would entail including how they would interlink
to make the entire system function as desired. I would also ensure that I
incorporate in the design how the software application would work with other
systems and how the testing of the application would take place.
In the design
phase of the software application, I also planned to come up with resource
estimation as this would help to estimate the costs and also come up with the
project schedule. It is also in this phase that I planned to decide on how the
documentation of the system would have development as well as the plans for
testing and implementing the system. I planned to ensure that the software
application design would include all the features of the completed system under
development. I would carry out each
activity within the time scheduled and to ensure that I would not lag behind
schedule as time management is vital for any project development. The work
breakdown structure and the network diagram would be helpful in ensuring that
all the activities take place within the specified time and that each time
produces the required deliverables.
Action
I embarked on
the development of a plan of this phase so as to make sure that everything took
place within the specified time. I came up with the activities that were in
requirement and then produced a network diagram and work breakdown structure
for the application. I ensured that I gathered all the materials that would be
in the requirement for the designing of this software application. I assembled all the data gathered in the
requirements gathering phase, and that was helpful to me in ensuring that everything
was in place before beginning then the design of the application. After I had
put in place all the data and the required resources for the design of the
application, I began with the architectural design of the application. I
demonstrated all the architecture of the system including the modules,
components. I designed the behavior of these components and how they would
interact with each other to produce the required output.
I then developed
the logical part of the system to shoe the data flow for the system including
the data input and the data output for the system. I showed how the data would be flowing from
one end to another and how the system and how the components would interact
with the data input. I designed the entire entity relationship diagram and the
data flow diagrams for the application. I followed the logical design of the
application with the physical design so as to ensure that the system showed
clearly the output section, the input section as well as the processes within
the system. I ensured that all the
components and the modules worked together in harmony and that there was no
flaw in the design of the application as it would culminate to the introduction
of flaws in the coding phase. I revised
thoroughly the design and ensured that the high level of design was okay as
well as the low-level design of the software application.
I then
determined all the hardware and the software that was in the requirement to
accomplish the development of the system so that arrangements would take place
on how to acquire those requirements. I calculated all the human effort
required and how the process of development would take place from start to
finish. I also developed the program design fo9r the system whereby I broke the
system into components that would be programmable. That breakdown would also
make it easy to implement any changes that would be in requirement during the
process of developing the software application. I also ensured that the
breaking of the system would help to reuse the components and the modules of
the system where it would be appropriate. I also ensured that there was clear
interactivity of the various modules and components demonstrated in this
design. I used the design to come up with the project development schedule and
the cost estimate for the process of developing the system in the next phase. I
also ensured that I outline how the documentation of the system would take
place including the plan for testing, training and installation of the system.
The end product was a system specification of the whole system.
Observation
I observed that
the design of the system entailed a lot, and it as involved as the system
development of the system. I also observed that it was a phase that required
much care as any mistake in this phase would culminate in the failure of the
application to have development in the next phase. I also observed that there
had to be the chronological design of the system requirements including the
logical, architectural and the physical design of the system. The chronological
design of those components was necessary as one component would lead to the
development of the next component in that order. I also observed that the information from the
requirements gathering phase was very important because it would help to
understand what the system required and so incorporate it into the design. I
observed that the system design has to do a great deal of work because he/she
has to collaborate with the system analyze so as to understand all the software
application requirements and then put those requirements to a paper.
The design phase
of the software application development is what entails the physical outlook of
the system as well as the internal outlook of the same to show the interactions
between the various components and modules. My other observation was that the
designer has to find out all the resources required for the development of the
whole system and the use the recourse to determine the project schedule and the
cost estimates for the whole project. I
observed that everything taking place in this phase must have the entire
project in mind; otherwise the development phase for the application would be
problematic or ineffective. The system designer has to understand all the
deliverables of the project and the costs for the various hardware and software
that need the development of the application at hand. Bi observed that I had to have mastery of
drawing and architecture both using the software and the manual process in case
the software failed.
Reflection
The design phase
of software application development went on as required in most of the areas.
It helped me have more understanding into the area of application design as
part of the software development lifecycle.
It is because of this iteration that I came to understand more the
importance of the design phase. I had been taking the design phase lightly, but
this iteration on design had helped me come to appreciate the design of the
application and how to go about it. I used to understand that the development
of an application would take place even without the design or that the design
could come later after the coding. The iteration on software design helped me
understand that the design of the system was a must before the rest of the
phases would take place. It is the phase that opens an avenue for the next
phases in the cycle of software application development.
In this
iteration of the software application development, however, there are things
that did not go as anticipated at the beginning of the phase. The knowledge on
software application design is very vital to any software engineer because, in
all the software development projects, there has to be the design phase as part
of the development process. I, however,
did not understand this fact until I had to have involvement in this iteration
to have knowledge of how to conduct it. I did not incorporate other essential
experts in software engineering that would help to shed more light on this
process of software application design. I would have the experts involved in
the future as it is a very vital that requires much consultation. There were other things that I also left out
in this phase because of the time factor, but I would ensure that, in the future,
those things will have achievement as I would ensure that I have enough time
for iteration.
Deployment
In the system
deployment phases of software application development, I would have a
requirement to participate in the deployment of a developed application. The
deployment phase of a software application is a complex process and is a
critical aspect of the process of software application development. It is the
phase where the software application developed gets a thorough screening before
release to the users. What would be the use of developing an application if it
will not have a deployment? It would be useless, and there would be a waste of
time and resources developing something that is unusable at the end. It also
follows a series of stages just like any other phase of the software development
process.
Planning
In my plan to
prepare for the deployment phase, I had to liaise with the necessary staff in
one of the companies wherein I was to take part in the software application
development as an intern. I planned to
follow steps in the deployment process so as to ensure that, in the end, I
would have an in-depth knowledge and understanding of all the phases and how to
carry them out myself. I planned to ensure that I follow up right from the
brainstorming session to the final testing of the application. In the
brainstorming, there was a discussion for the approach to use session towards
the plan for software application deployment. I planned to ensure that I
understood how the development team collects the views of the attendees and then
comes to a consensus on the way to approach the deployment of the developed
application. That would add me to some understanding and knowledge ion how to
approach the entire process effectively.
I planned to
have a list of the things that I needed to have a better undertaking on in
light of the software application deployment in the company in question. I
planned to increase my knowledge don the deployment workflow design, the
development environment, the staging environment, and the other elements regarding
the deployment of a software application. It would help me have more knowledge
to differentiate between the three types of environments in software
application development including the development, the staging, and the
production environment. I planned to understand how to carry out the testing
and the elimination of bugs in the developed software application, how to
implement the required features, and how the release of the supplication would
take place. I planned to understand if
there is any automatic environment or the company would use manual deployment
and the difference between the two types of deployments.
I planned to
understand how the company deals with a quickly changing environment and how
the monitoring of the deployment and the staging process takes place so as to
ensure that it takes place with less difficulty. I would understand what
happens when things do not go as planned, for instance when the deployment team
realizes there is a defect in the developed application during the deployment
phase. Another thing that I wanted to
understand in detail is the way to conduct automatic deployment into the
production environment. I would understand how the company handles the
deployments of the various teams without the possibility of overwriting. I would ensure that I have active
participation in the whole process so as to grasp every concept and have a
hands-on skills and experience that would be helpful in the future. Before the
completion, I would check to see what objectives I was able to achieve and
those that I did not achieve.
Action
Ahead of the
material day for deployment I had a chance to carry out research on the company
website so as to understand how the deployment activity of a developed software
application takes place. In the material day, I had to go to the company where
I was to participate in the workshop regarding the deployment of a developed
application. I arrived in good time, and I had a chance to attend the
brainstorming session where there was a discussion of the process to follow in
accomplishing the deployment of a developed application. There were various
opinions from the team or experts that were in the brainstorming session, and I
ensured that I did not lag behind. I made some inquiries from the team members
so as to enhance my understanding of some concepts that I did not understand
before. The team finally came up with a schedule on the way to go in
accomplishing the deployment of the application.
The team came up
with was workflow, and I discovered that the workflow was part of the
development workflow. The workflow entailed the description of three
environments including the development, the staging, and the production
environment. There were minor updates to the application under deployment, and
it was the mandate of the development team to make those changes and get back
the application to the deployment team. The changes took place as suggested and
then there was a direct merge of the application into the staging environment.
In the staging environment, there was the testing and quality assurance
compliance checking for the software application. After they had completed the
testing of the application, they merged the application into the development
branch. There was then the merging of the development branch and the production
branch whereby the deployment took place onto the production environment. Below
is the guideline regarding how the deployment took place in each environment?
The deployment
then took place in the development environment whereby the team had a
development environment of the application with automatic deployment
installation. They claimed that this wasted a lot of time although it had an
advantage of not installing the application ion their computers. The automatic
deployment to the development environment also helped the deployment team avoid
the task of performing the tests of the application locally on their personal
computers. It also helped eliminate the need to push, commit and deploy the
system completely. That made an
allowance for any changes in the future. In the staging environment, there was
the implementation of the changes identified from the development environment.
The team then merged the new application into the staging environment using the
automatic option. At that point, quality
assurance for application began, and the testers went to the staging servers
and had to verify that the code was working as desired.
There was also
the deployment in the production environment whereby the changed and tested
features had deployment into the production environment. Those features
implemented in different branches had to undergo merging into the development
environment first before they would have deployment onto the production
environment. The team then checked the application in the production
environment for the last time to identify any debugger breakpoints, incomplete
features as well as verbose logging and to make final changes to the
application. The team then verified the application after deploying it to the
production environment and checked the features again to make sure that they
were working properly. They closed the deployment when they found out that
everything was okay.
Observation
I observed that
the deployment of a software application was a hectic process that took pace
with much care and many testing to ensure that the application is having
deployment worked as per the software specifications at the onset of
development. I observed that the
deployment team had to work hand in hand with the development team so as to
ensure they understood all the features and the objectives of the application
under deployment. The team also had to make some suggestions in case they
discovered that there were lacking some features in the developed application. I also observed that the deployment of the
developed application had to take place in three environments including the
development, staging, and the production environment. The production
environment was the last environment where the deployment of the application
was to take place.
I also observed that the team preferred
automatic deployment of the application in the different environments despite
the fact that this option consumed much time. Another thing that I observed was
that sometimes deployments did not go as planned and so the team had to roll
back the application so as to have those features implemented. I also observed
that sometimes rollbacks would come with more havoc than the defective
application or than the issue that one was trying to solve. I also observed that
that the team had to use the workflow for the development branch because it
contained all the features for the developed application. The automatic deployment was good, but I
observed that it was not wise to use it for the deployment to the production
environment.
That was because
the usage of automatic deployment for the production environment would make the
environment very vulnerable. So, manual deployment was the best approach in the
production environment. The staging environment
was useful in merging the changes from all the developers so as to ensure that
the application contained all the changes made by different individuals or
teams. The deployment of the application would not be successful without the
collaboration of all the members of the deployment team. I observed that their
harmony helped in speeding the deployment process that otherwise would take a
long time due to the usage of automatic deployment. All the team members had to
understand the features and the objectives of the developed application, and
that would help them make the necessary enhancements to the application before
its deployment takes place into the production environment. The existence of
the three environments for deployment helped to identify changes early enough
before releasing the developed application to users. If changes were to take
place later, it would be costly to do so.
Reflection
The deployment
phase was very enriching because of the many things that I did and learned from
the same. It helped me to understand that the deployment of an application
takes place in three environments, something that I did not know before. It helped me learn that there are always new
features to have inclusion in the developed application and to rush towards the
deployment into the production environment could lead to the failure of the
system to pass the final acceptance testing that would take place in the users’
environment. I got to understand the different development environments and so
gained practical knowledge and experience regarding software application
deployment. I learned that deploy end of an application was one of the most
important stages in the process of software development. That was because it
would be meaningless to develop an application and then fail to deploy it. Initially, I thought that the deployment of
an application was similar to release, but I came to know the distinction
between this phase of deployment and release. The meeting with the deployment
team in this company was very helpful. It made me appreciate my career as a
software application developer.
In this
iteration, I learned how to approach the complex and less complex applications
during the deployment. I learned that making quick changes on the application
would result in the introduction of more defects or bugs onto the developed
application that would be costly remove.
I also learned that sometimes the rollback of an application was vital
to in case the application did not meet the requirements in light of the features
required. In that case, however, there
has to be careful thought before rashly implementing the changes. I learned
that every single change had to have approval by the whole team because it was
unacceptable to make any change without the entire team having consensus.
Sherry Roberts is the author of this paper. A senior editor at MeldaResearch.Com in cheap term papers if you need a similar paper you can place your order from top research paper writing companies.
No comments:
Post a Comment