Monday, January 14, 2019

Proposal for software development in a real-time organization


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

Buy thesis Online for Cheap

We are keen on ensuring that, any time students Buy thesis Online papers from our website, they get good grades that align with their expec...