Salespoint facilitates the core purpose of developing the point-of-sale applications, which are known for supporting significant types of the sales activities. The salespoint applications avail goods as well services listed in the catalogs. However, in this case, users want the toy salespoint administrators to meet the shop management responsibilities that include checking the supplies, ordering good in the appropriate time, refilling the stocks as well as cash registers, adding new items and accounting for the stock as well as sufficiently provide the most accurate updates regarding the stock available. The software requirements include the browsers, the programming language and the media players at the same time. The hardware components include the computer, assembler, the BIOS and other connected or built-in hardware. Apart from the software and hardware requirements, more attention is given to three general areas.
The first area of concern include the application control which avail the most fundamental classes assigned to the structures of the point-of-sale applications. This introduces the sense of application framework for the salespoint while dictating the architectural decisions following the significant concepts of SalesProcess, SalesPoint and shopping. Every salespoint in the system prompts interaction with the customers while invoking the functionality of rolling back, logging interactions and a sense of commitment at the same time. Data management is another general area that hosts fundamental classes meant for structuring as well as managing data. Significant concepts include stock, which facilitates the actual instances of the desirable objects. The second concept is that of databasket, which is analogous to shopping basket. The GUI components are equally significant and play a significant role in terms of displaying as well as manipulating the contents of stocks and catalogs. Finally, User management facilitates sufficient categories that define distinguished capabilities of the users.
Types of Risks
Risks are uncertain events which can occur or may not occur in the future stage of a project and its occurrence is accompanied by potential losses. In the case of a software development project, there are several risks whose occurrence is common, especially when the project analysis and implementation are accompanied by any kind of ignorance. This risk affects the project at different levels and some of them can even lead to the closure of the project. It is for this reason that there is need to do an effective analysis of the software related risks through the identification of the possible risks and coming up with the most appropriate way of preventing, handling or mitigating them at an early stage before they cause any loss (Hu et al. 2013). There are five main categories of risks that can affect a software development project, this are:
Budget risks - This is wrong assumptions or estimates made on the budget aimed in developing implementation and management of a software project. The risk occurs in three major forms: cost overruns which entail unexpected incurred costs that result from underestimations of the actual cost in the process of budgeting. The second form is project scope expansion which entails expanding the needs that ought to be achieved for the project to be successful and finally wrong budget estimation.
Operational risks - This is risks that occur as a result of losses resulting from deficient or failed policies, systems or procedures (Hiekata et al. 2016). Other causes of operational risks include improper employee training, poor resource planning, insufficient resources, poor communication among the team members and failure to address high priority conflicts.
Technical risks- This is risks related to the knowledge base being utilised in the project that fails in performance and functionality. They are caused by the complexity of the project, using obsolete technology, continuous changes in the requirements of the project.
Schedule risks- these risks occur when the timeline meant for the project tasks is improperly addressed. This results from improper tracking of the available resources, wrong time estimation, abrupt project scope expansion, and negligence, which result in difficulties or failure in identifying complex elements of the project that can take much time (Wallace and Keil 2004).
Programmatic risks - This are also referred to as external risks and they are usually beyond the project management control. They include bankruptcy, changes in government rules and restrictions, changes in customer preferences and product strategy and market development.
Risk Mitigation
There are three major strategies for effectively handling these risks. This can be through mitigation, risk monitoring and risk management and planning. Risk mitigation is the core strategy which involves appropriate and applicable procedures which will help in eliminating, reducing or controlling the adverse effects of the risks to the project. There are four major mitigation options applicable in software development project scenario (Nurdiani et al. 2011). This is:
Avoidance - this involves keeping away from the activities that will lead to a certain risk. This involves adjusting different important elements in the project to ensure that the specific type of risk is complete handles. These elements include the project schedule, scope or any other constraints.
Acceptance- this is the act of consenting to the risk. This option is mostly used to the risks whose mitigation expenses are more than the expenses that will be incurred in the case that the risk will be tolerated. When this option is selected the risk is carefully analysed and continuously monitored to ensure that it does not create a huge impact to project implementation (McManus 2012).
Limiting the risks - This is the most common mitigation option in software development projects. It involves conducting a critical analysis of the risk, possible causes, the most appropriate way in which the risk can be handled as well as possible alternatives to the provided solution. This option usually combines the methodology or procedures used in avoidance and acceptance options to minimize or reduce the impact or the intensification of the risk.
Transferring the risks - This option is mostly applicable to the types of risks which have a very low probability of happening but in the case that they take place they usually leave a very huge financial impact. They are therefore mitigated by sharing with other parties through forming a partnership with the respective applicable parties, outsourcing or by purchasing insurance coverage for the respective risk (Kliem and Ludin 2019).
Software development is a continuous process which entails activities such as designing, conceptualizing, specifying, documenting, programming, examining and bug fixing whose main aim is not only creating but also maintaining all the components that make up the application. Software are developed for varying reasons an element that has led to the development of different tools and techniques. Briefly, there are significant methodologies that host different tools and techniques. Common methodologies include the waterfall method, the incremental and iterative development, the spiral method and the rational unified process. All these methodologies have the capacity of hosting a range of tools and techniques that are felt convenient for different but more specific case scenarios. However, for the case of a doll company, there are three major applicable tools. These include Blue J, Eclipse, and Netbeans
BLUE J - This is a free and open-source integrated development environment that runs with the help of a Java Development kit and is suitable in not only teaching and learning object-oriented programming but also small scale software development. The class structure of the software being developed is usually displayed on the main screen which enhances interactive creation and testing of the objects. The interactive property of Blue J tool is combined with simple and clean user interface make it easy to experiment with the developed object, determine challenges and come up with possible solutions. Blue J is also preferred by most software developers as it is registered and licensed under GNU GPL with classpath exception (Bennedsen and Schulte 2010)
Net-Beans, on the other hand, is a free open type source of IDE which is applicable for several programming languages such as Java, C++, PHP, CSS, HTML among others. It mostly utilized in the quick development of Java desktop, mobile and web applications. Java is preferred by most application developers for its ability to run on any computer with a Java virtual machine which makes it useful with different types of the operating system, common ones being: Mac OS, and Windows. Netbeans has four major special features: this is its ability to perfectly support the latest Java technologies, its fast and smart code editing nature, its easiness and efficiency in project management and finally rapid user interface development features (Arefin and Khatchadourian 2015).
Eclipse - This is also a free and open-source type of IDE known for having a base workspace and plugin the system which can be extended to enhance the customization of the environment. It is commonly written using Java language and primarily utilized in creating Java applications; however, using the plugins, it can also be used in creating applications for other related programming languages (Smith and Milinkovich 2007). Its main special feature is being faster especially when dealing with incremental compilation. This is because they use a custom compiler which is quite different from other normal compilers.
After analysing all the methodologies mentioned in this report, the subclasses and development of the Java application for the toy stock can best be addressed through the waterfall methodology. It is essentially regarded as a classical approach first developed by Dr. Winston W. Royce who published a paper in the year 1970 and dubbed it waterfall model. This methodology puts more emphasis on the logical progression across the software development lifecycle, which is denoted as SDLC (Matharu et al. 2015). The sequential process paves way for execution of every phase deemed relevant and plays a focal role in the entire project. Significant phases that this methodology provides to the software development include establishment of the system requirements, system analysis, design, coding, testing as well as implementation and operations. The linear and the sequential nature of this methodology paves way for effective development of every phase, testing it and improving on each subclass without affecting other subclasses that would already have been developed. The prime advantage is felt along the essence of departmentalization as well as managerial control. It is also easy to set schedules with waterfall compared to other methodologies (Hiekata et al. 2016). The convenience of this methodology paves way for the apparent use of BlueJ as far as Java programming is put into consideration. It carries with it a clean interface which makes it easy for the developers.
The toy salespoint Java application is expected to meet the most desirable outcome at the end of the software development process. The intended objective of the Java application was to ensure that the Admin can create and sell stock, as well as view the sales at the same time. Any user who logs in the system expects the Admin to have updated the stock for toys and refill it when it when needed. Along the test plan, the test report is attracted to the test criteria, which points at the layout matches design, the working of the buttons, validation and error handling at the same time. With the report first focusing on the layout matches design, the software needs to display the desirable pop up when details are fed in the system. More attention is given to the behaviour of the system on the Admin and the user end. Initialization demands the login details and whether the prompt messages are likely to trigger the display of the next page (Zschaler et al. 2014). While this may appear as an automatic process as expected by the designer, system details might be expected in actual sense.
Secondly, the test plan looks at whether the buttons are working in the most desirable manner or not. It is expected that the save or the OK buttons would appear in time and the prompt the system to move to the next page. Apart from the system delays, the buttons are expected to work appropriately without creating further problems. Cases where the buttons do not work or even do not appear when the Admin or the User has entered the right details might cause alarm with indications of erroneous code or system design. A validation check might equally be introduced to determine if the system is allowing communication between the Admin and the user. If the User asks for either the BookID or the Book Name, then the Admin is required to provide the details. However, failure of validation checks, system details and wrong prompt messages and display of the buttons might prompt the final stage of this criterion, which narrows down to error handling (Zschaler et al. 2014). Error handling includes profiling the erroneous area as indicated or noted in the system and pursues measures that can put the system back to its effective operating mode. Some of the measures include code speed optimization, code adjustments and reduction of the bulkiness of the code with a check on the consistency of system performance.
The report establishes the significant course of developing the Toy salespoint java application, which allows the admin to check, view and sell stock while users would want the admin to update and refill the stock where necessary. The report has already noted the essence or the need to work on the subclasses for application control, data management as well as user management among other significant components. The components work in a more correlated manner while ensuring flow of information from the user and admin end. The choice of waterfall model and BlueJ as tools for developing the system suits the system requirements. The efficiency of the system is a subject covered under the test plan, which points at the rate of the system response among other key parameters. The risk analysis has established possible risks the development process is likely to encounter. Some of the highlighted risks include the budget risks, schedule risks and operational risks among others. This may call for risk mitigation strategies, which need to be observed as one way of enhancing the efficiency of the system. Some of the strategies that have been highlighted include risk acceptance and risk avoidance. The report has also indicated the need to improve on the performance of the system.
The Toy Salespoint Java Application provides an interactive avenue between the Admin and the users. The admin is engaged in stock and shop management responsibilities which include creating, checking stock and viewing sales based on the authority assigned to the admin. The user expects the admin to refill and update stock of toys from time to time. The good thing with this system entails the sectionalized functions as categorized in the general areas indicated before. The need for application control points at the instantaneous areas said to represent significant points of interactions with the potential users. In every new salespoint application, it sounds more convenient to establish at least a single application subclass. Every interaction happening between the user and the system is essentially modelled by the state machines. Commonly, user interactions would happen across the states and computations would occur within the significant transitions.
Reification of the structure across the behaviour of the interaction supports provision of the simulation functionality. The second good thing about this system is data management, which attracts the significant notion regarding the catalogs associated to the items as well as stocks pointing at object-specific information. The stocks may carry with them the stockitems or what is arbitrary known as the nested stocks. Every stock is linked to the corresponding catalog item. The framework or the application enforces what is demoted as a synchronization constraint across the catalogs and the stocks. A critical focus regarding the significant classes established under data management constitutes the interfaces, patterns and the virtual objects. Under the interfaces, the application gives room for the standard implementation, which maintains data in memory. In terms of patterns, the design takes advantage of the composite design pattern in the ultimate course of representing what is known as the nested structure of both the stocks and the catalogs. In terms of the virtual objects, it is worth noting that the interfaces would represent the stocks. In practical sense, this may never be true especially when retrieving the concrete stockitems.
While the development process may look all perfect, there are still areas that need significant improvement. Erroneous areas in the system are likely to constitute system delays with respect to the delays in terms of response. This can happen during the implementation phase in which a subclass takes time to execute compared to the intended time. It is important that system delays should be given ultimate attention with appropriate measures set aside to handle it. Another area of concern includes the erroneous display of buttons or the prompt messages. This is critical and might call for a recheck of the codes or revise the bulky areas to reduce redundancy. Plans set out for meeting the need for improvements include an established course for code speed optimization as one way of reducing system delays. Code speed optimization is an entire process that aims at ensuring that the code are not bulky and do not lead to unnecessary delays in terms of the response of the system.
Arefin, M. and Khatchadourian, R., 2015, October. Porting the NetBeans Java 8 enhanced for loop lambda expression refactoring to eclipse. In Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (pp. 58-59). ACM.
Bennedsen, J. and Schulte, C., 2010. BlueJ visual debugger for learning the execution of object- oriented programs?. ACM Transactions on Computing Education, 10(2).
Hiekata, K., Mitsuyuki, T., Goto, T. and Moser, B.R., 2016, October. Design of Software Development Architecture Comparison of Waterfall and Agile Using Reliability Growth Model. In ISPE TE (pp. 471-480).
Hu, Y., Zhang, X., Ngai, E.W.T., Cai, R. and Liu, M., 2013. Software project risk analysis using Bayesian networks with causality constraints. Decision Support Systems, 56, pp.439-449.
Kliem, R.L. and Ludin, I.S., 2019. Reducing project risk. Routledge.
Mahadevan, L., Kettinger, W.J. and Meservy, T.O., 2015. Running on Hybrid: Control Changes when Introducing an Agile Methodology in a Traditional" Waterfall" System Development Environment. CAIS, 36, p.5.
Matharu, G.S., Mishra, A., Singh, H. and Upadhyay, P., 2015. Empirical study of agile software development methodologies: A comparative analysis. ACM SIGSOFT Software Engineering Notes, 40(1), pp.1-6.
McManus, J., 2012. Risk management in software development projects. Routledge.
Nurdiani, I., Jabangwe, R., Šmite, D. and Damian, D., 2011, August. Risk identification and risk mitigation instruments for global software development: Systematic review and survey results.
In 2011 IEEE Sixth International Conference on Global Software Engineering Workshop (pp. 36-41). IEEE.
Smith, D. and Milinkovich, M., 2007. Eclipse: A premier open source community. Open Source Business Resource, July, 2007.
Vijayasarathy, L.R. and Butler, C.W., 2015. Choice of software development methodologies: Do organizational, project, and team characteristics matter?. IEEE software, 33(5), pp.86-94.
Wallace, L. and Keil, M., 2004. Software project risks and their effect on outcomes. Communications of the ACM, 47(4), pp.68-73.
Zschaler, S., Demuth, B. and Schmitz, L., 2014. Salespoint: A Java framework for teaching object-oriented software development. Science of Computer Programming, 79, pp.189- 203.
Take a deeper dive into Navigating the Intersection of Technology, Terrorism, and Human Rights with our additional resources.
It is observed that students take pressure to complete their assignments, so in that case, they seek help from Assignment Help, who provides the best and highest-quality Dissertation Help along with the Thesis Help. All the Assignment Help Samples available are accessible to the students quickly and at a minimal cost. You can place your order and experience amazing services.
DISCLAIMER : The assignment help samples available on website are for review and are representative of the exceptional work provided by our assignment writers. These samples are intended to highlight and demonstrate the high level of proficiency and expertise exhibited by our assignment writers in crafting quality assignments. Feel free to use our assignment samples as a guiding resource to enhance your learning.