Discussion
In the technological aspects of the modern world, the development of software is very complicated. It requires very careful planning and analysis for meeting the required outcomes. It is also required that the software methods must be done by developers who can face challenges in their life for addressing the software development processes. However, a software quality aspect can sometimes be hampered due to rapid deployment of methods in software development life cycle. This report discusses about two types of software development methods namely the JSD and the RUP methods. The RUP process is used to enhance the productivity of the team members by providing each of them the resources for getting information and experience at the same time. These resources are the templates or information or even guidelines. In the same time the JSD is in view of utilitarian best down decay and can be perused top-down or base up. JSP modeling involves in the development of info and yield that in the end makes the structure of final design. This report also includes a discussion of the contrasting characteristics among the two. Furthermore, the report also includes an analysis of the method by utilizing the NIMSAD frameworks.
This section of the report discusses about the two methodologies. These are the JSD and the RUP methods. In addition, the discussions of the methodologies according to the NIMSAD framework are also shown in this section of the report.
This section outlines the two software methods, JSD (Jackson System Development) and the Rup (Rational Unified Process).
JSD (Jackson System Development):
The Jackson System Development is also known as Jackson Structured Programming (JSP), is a strategy for program design and modeling. It starts with contemplations about what is known and builds up a program plan that turns out to be more entire as the model is put through proceeded with cycles. This section has just centered on how basic issues could be separated and, arrangements planned that are later changed into code. This section focuses on permitting understudies in understanding rationale and how to think logically before coding.
From the technical point of view, there are major stages involved in Jackson System Development. In this process, each of the stages is divided into several steps as well as sub-steps. Hence, there are a number of ways of organizing the technical work. There is a major technical stage as well as project planning of the work is included in it. The modeling stage of the developers makes an explanation of several aspects of specific business. The model explanation includes actions, entities as well as associated information. A particular action is considered as an event and generally external reality. It is related to the system as well as occurrence of the particular system. The data of Jackson System Development is stored for every entity. The outcome of the modeling stage is considered as a set of variable, diagrams as well as definitions, which explains the following.
Outline of the methodologies
In the network stage, it is required to develop a precise explanation of the system that includes the output, which needs to be generated in such way that appears to the specific user. The network of communicating sequential process is a concept, which is developed by Tony Haore. In the network, a program is made for every entity during the modeling stage. New programs are added for several reasons like collecting inputs for doing actions, generating inputs and calculation of generated outputs.
The use of Jackson Program Design incorporate little scale advancement of program modules, reports, successive document handling, and comparable zones that don’t include modeling the-extensive. However, a wide range of issues can be explained utilizing JSP, and it is a reasonable, strong framework for pondering issues. Researches show JSP/JSD (Jackson Structured design) is broadly perceived and utilized as a part of Europe than in the USA. JSP’s aims have been very certain as far as creating organized frameworks, specifically how modules are incorporated to shape the entire application.
The major features of the JSD process are:
- Teachable-it has a well arrangement of characterized steps, it is conceivable to clarify and indicate how this framework is connected and how it functions.
- CONSISTENT- Based on a solitary issue for examination, distinctive software engineers or experts will think of pretty much a similar program design.
- SIMPLE- The strategy does not include excessively complex principles, awkward methodology or troublesome documentations to recall.
- UNIVERSAL- Specifications are delivered that can be actualized in the dialect the engineer wants.
There ought to be a basic and certifiable communication between a segment of the issue and a segment of the arrangement. The two techniques additionally utilize comparable ideas to portray the issue area.
RUP (Rational Unified Process):
The RUP (Rational Unified Process) is supposed to be an engineering process for software development. It is mainly used to provide an approach for efficient handling of tasks and responsibilities within an organization. The main aim of the process involves the efficient software development process which helps in meeting the needs of the end-users without causing any restraints in the budget or schedule (Papadopoulos 2015). This process has been developed using a simple and a clear architecture that is mainly used to provide a common functionality across various sub-platforms of the processes.
This helps in keeping a same level of information procedures among these members of the team and thus helps in working effectively. Moreover, the Rational Unified Process is more focused in the development of models in place of paper documents that helps in creating a better understanding of the various processes involved.
The RUP process is considered to be an effective guide needed for the efficient use and implementation of UML (Unified Modeling Languages) tools. The use of the UML languages is mainly used for the creation and design of industrial architecture and diagrams which depicts a clear meaning of the process methodology (Pathak and Saha 2013). In addition, the use of RUP method is basically done with the use of tools that automates a large part of the software development process. The main processes which can be done by using these tools are the visual processing, programming, testing or analyzing.
JSD (Jackson System Development)
The RUP methods for software development depict the most effective ways for developing a great architecture for the process. This process of software development consists of six steps which are depicted below:
- Development of software in an iterative manner: The major steps involved in the software development process involve defining the problems statement, designing the solutions to it, building the solutions and testing of the product in the end (Pathak and Saha 2013). However, in the modern technology, the implementation of these processes cannot be done in an effective manner.
- Management of requirements: The RUP process is used to describe the process required for organizing or documenting the various functional and non-functional requirements which thereby ensures effective amount of communications. They are also considered to be able to provide effective threads for the development and delivery of a software effective process.
- Use of component based architectures: The process of the RUP method is used for focusing on the main concepts of model development and analyzing it to gain systematic advantages in terms of robustness (Pinciroli et al. 2017). This is mainly done before committing to the full-scale development of the system.
- Visualization by modeling software: This section of the process is used to depict the method of visually modeling the building blocks that can be effectively used to capture the behavior and structure of the components. This mainly helps in the process of abstraction which is defined by denoting the process of showing the required codes without using any background details.
- Verification of software quality: The rejection of software according to today’s standards is mostly due to the poor reliability or performance (Rajagopalan, Mathew and Sugumaran 2016). This needs for quality in the software performance in terms of consistency, performance and reliability.
- Control the changes in software: The ability to successfully apply the required changes in the process and also to monitor the success of it is a necessity that must be adopted by each software development systems.
This section of the report discusses about the comparison among the two methods following the NIMSAD rule of comparisons. The NIMSAD (Normative Information Model-Based System Analysis and Design) consists of three different phases which is further divided into eight various steps (Möller, Bellin and Creutzburg 2015). These steps are used to perform the comparison among the two different methodologies. The various processes are the problem situation (methodology context), intended problem solver (methodology solver) and process of problem solving (methodology).
Stage 1- Understanding the ‘situation of concern’
The need for analyzing the situation is a necessity for all the processes involved in software development. This stage will be used to build the boundaries that will determine the level of interest and communications. This will also help in mitigation of any dangers to the system and will also help in establishing a clear communications among the two.
In JSD, the situation is analyzed in the modeling stage. This stage helps the developers of the software to make the required descriptions that will be followed by the system (Arango-López et al. 2017). This process is carried out by analyzing the business and choosing the required information and dumping the irrelevant one. In RUP, the analysis process involves the gathering of information and assessing the number of risks in each of the processes in an iterative manner.
Stage 2- Performing the diagnosis
Diagnosis is a process which is used to get an understanding of the system and what possible gains will be provided from the situation. In case of the JSD method, a model is made with a precise description which enables the developers to ask very detailed questions. This is mainly used to encourage good communications and understanding among the various end-users and developers (Paternoster et al. 2014). In case of the RUP methodology, the methods helps to organize and document the various processes and check the constraints and the functionalities of each of them.
Stage 3- Defining the prognosis outline
This section is used to make a comparison among the ideal outcome and the provided outcome of a process. In case of the JSD, the modeling descriptions include various entities and actions which are used to cause an update to the database. This problem is done by listing the definitions and the attributes of the systems. In case of the RUP methodology, the main processes involve the design, analysis and adoption of the software. This will be used to get and idea of the desired outcome.
RUP (Rational Unified Process)
Stage 4- Defining Problems
After analyzing the aforementioned steps, the problem solver needs to analyze the presence of any problems in the system to address them in an effective manner. This is to be done by the personnel responsible for solving the problem. The problem mapping is the main objective which is addressed in this section. In case of the JSD method, any kinds of problems are solved by correcting them later on. The stages and the sub-stages involved are used for the technical works which is always passed through the supervision of the project manager. In case of the RUP methods, the use of feedback mechanisms are adopted which helps in correcting any problems in the system. This also helps in maintaining the image that was intended to be made among the audiences.
Stage 5- Deriving notional systems
A notional system is accompanied after the completion of the above stages. This is basically done to map the information regarding the detection of any problems and application of the recommended solutions for addressing them in the software processes.
In case of the JSD, the process of this methodology involves the mapping of real world parameters in the form of objects and entities using the help of system specification diagrams. In addition, they are also used to distinguish among the events that are responsible for carrying the data among various entities (Dubois and Tamburrelli 2013). In case of the RUP methods, the use of wide ranges of modeling techniques for producing use case diagrams is adopted. This is mainly done for creating and validating the system architecture.
Stage 6- Performing conceptual/logical design
This section is mainly used to get a re-evaluation of the previous steps of the process. The main steps that are included in this section are the re-evaluation of the boundaries and the constraints. In case of the JSD method, the main design phase is done by making a single program for each of the entities which are then used to make a network. This process is then followed with the addition of many other programs. These programs are mainly added to collect the inputs, detect the errors in them and pass them to entity programs. In addition, they are also used to generate action inputs which do not correspond to external events. Lastly, the calculation of the output is also done by this process. In case of the RUP method, a robust and flexible design is always preferred which can be used to integrate any changes needed or any types of necessary requirements according to the set criteria. In addition, the software that will be developed is going to be fully comprehended by the members and also will be allowed for reuse (Highsmith 2013). The components that are used in this section are non-trivial modules which are made to serve a certain function in the network only. Moreover, the network can be developed by either the ad-hoc networks or the internet methods.
Comparison among the two methods
Stage 7- Performing physical design
This step is used to develop the physical infrastructure which mainly focuses on the logical designs of the above mentioned process. It includes the presence of various constraints and resources so that effective analysis can be done.
In case of the JSD method, there are two methods of connecting the programs in a network. These are mainly done by using data streams in the network or by using the state vector inspection (Chuang, Luor and Lu 2014). In addition, the entity diagram is mainly used to play a great role in the connection of various programs. The process is carried out by drawing the whole network diagram where different networks have one entity program in common. In case of the RUP method, visual modeling software is used to make the necessary implementations of the architectural diagrams. This mainly helps in the process of abstraction which shows the required codes without using any background details.
Stage 8- Implementing the design
This process is mainly used to implement the designs which were depicted in the above mentioned processes. This is mainly used to translate the document into real world entities.
In case of the JSD method, the implementation process is basically done by considering two parameters. These are the design of physical data and the reconfiguration of the network by adding programs to the network. The physical data is mainly done by designing the files and database in the system. This also depends on the type of DBMS used for this process (Yu and Petter 2014). In addition, the reconfiguration of the network is done to add the various other programs to the system architecture. This gradually broadens the network and helps in performing swiftly. In case of the RUP process, the implementation process is done by using modeling tools in the system. This process is followed by verifying the quality of the software made and by adding any further specifications if needed. All the various processes involved have the quality assessment integrations in the system which helps in quick design, planning and analysis, execution and evaluation of the processes.
It can be seen from the comparison made that the models cannot be used to capture any real world attributes in case of the JSD. In addition, it also cannot be used to cope with real-world situations. Moreover, it can deliver theoretical solutions for problems in the real world. Lastly, it is also used to promote the entity interactions in a sequential way.
In case of the RUP methodology, the models developed can be used to analyze and adopt real world attributes. Moreover, in ill-structured situations can also be referenced by abiding with this process. Furthermore, the management of the implementations can also be done by delivering information system blueprint. Lastly, it can also be used to promote object oriented approach.
Conclusion:
Thus, it can be concluded from this report that the use of the Jackson System Development and the Rational Unified Process can be used to develop a great system for software implementations. It can be said from the RUP method of software development that it is basically used to develop iterative implementations of the system which can be used to remove the presence of any risks in the system and will also develop a flexible and a systematic architecture. The RUP process is used to enhance the productivity of the team members by providing each of them the resources for getting information and experience at the same time. These resources are the templates or information or even guidelines. In addition, it can also be said about the JSD method that its use is mainly done to provide the programming frameworks and the various other structural and functional parameters of the software development process. JSP is a strategy for planning programs as arrangements of consecutive procedures; JSD is a technique for determining and outlining frameworks whose conduct is describable regarding groupings of occasions. Moreover, according to the NIMSAD frameworks for comparing among these two methods are mainly done to contrast among the two and make an outline among the two.
References:
Abrahamsson, P., Salo, O., Ronkainen, J. and Warsta, J., 2017. Agile software development methods: Review and analysis. arXiv preprint arXiv:1709.08439.
Ahimbisibwe, A., Ahimbisibwe, A., Daellenbach, U., Daellenbach, U., Cavana, R.Y. and Cavana, R.Y., 2017. Empirical comparison of traditional plan-based and agile methodologies: Critical success factors for outsourced software development projects from vendors’ perspective. Journal of Enterprise Information Management, 30(3), pp.400-453.
Arango-López, J., Collazos, C.A., Vela, F.L.G. and Castillo, L.F., 2017, July. A Systematic Review of Geolocated Pervasive Games: A Perspective from Game Development Methodologies, Software Metrics and Linked Open Data. In International Conference of Design, User Experience, and Usability (pp. 335-346). Springer, Cham.
Barnard, J., Drevin, G. and Huisman, M., 2017, September. A framework to determine the suitability of software development methodologies for the development of location-based games. In International Conference on Entertainment Computing (pp. 335-342). Springer, Cham.
Brhel, M., Meth, H., Maedche, A. and Werder, K., 2015. Exploring principles of user-centered agile software development: A literature review. Information and Software Technology, 61, pp.163-181.
Chuang, S.W., Luor, T. and Lu, H.P., 2014. Assessment of institutions, scholars, and contributions on agile software development (2001–2012). Journal of Systems and Software, 93, pp.84-101.
DESPA, M.L., 2014. Comparative study on software development methodologies. Database Systems Journal, 5(3).
Dubois, D.J. and Tamburrelli, G., 2013, August. Understanding gamification mechanisms for software development. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (pp. 659-662). ACM.
Ghobadi, S., 2015. What drives knowledge sharing in software development teams: A literature review and classification framework. Information & Management, 52(1), pp.82-97.
Highsmith, J., 2013. Adaptive software development: a collaborative approach to managing complex systems. Addison-Wesley.
Kumar, G. and Bhatia, P.K., 2014, February. Comparative analysis of software engineering models from traditional to modern methodologies. In Advanced Computing & Communication Technologies (ACCT), 2014 Fourth International Conference on (pp. 189-196). IEEE.
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.
Mc Hugh, M., McCaffery, F., Casey, V. and Pikkarainen, M., 2017. Integrating agile practices with a medical device software development lifecycle.
Möller, T., Bellin, K. and Creutzburg, R., 2015, March. Design and development of a prototypical software for semi-automatic generation of test methodologies and security checklists for IT vulnerability assessment in small-and medium-sized enterprises (SME). In SPIE/IS&T Electronic Imaging (pp. 94110O-94110O). International Society for Optics and Photonics.
Moniruzzaman, A.B.M. and Hossain, D.S.A., 2013. Comparative study on agile software development methodologies. arXiv preprint arXiv:1307.3356.
Papadopoulos, G., 2015. Moving from Traditional to Agile Software Development Methodologies Also on Large, Distributed Projects. Procedia-Social and Behavioral Sciences, 175, pp.455-463.
Paternoster, N., Giardino, C., Unterkalmsteiner, M., Gorschek, T. and Abrahamsson, P., 2014. Software development in startup companies: A systematic mapping study. Information and Software Technology, 56(10), pp.1200-1218.
Pathak, K. and Saha, A., 2013. Review of agile software development methodologies. International Journal of Advanced Research in Computer Science and Software Engineering, 3(2).
Pinciroli, F., Zeligueta, L., Lund, M.I. and Justo, J.L.B., 2017. Systematic Mapping Protocol-Coverage of Aspect-Oriented Methodologies for the Early Phases of the Software Development Life Cycle. arXiv preprint arXiv:1702.02653.
Rajagopalan, S., Mathew, S. and Sugumaran, V., 2016. Fit of Development Methodologies in Software Projects.
Sheffield, J. and Lemétayer, J., 2013. Factors associated with the software development agility of successful projects. International Journal of Project Management, 31(3), pp.459-472.
Stoica, M., Mircea, M. and Ghilic-Micu, B., 2013. Software development: Agile vs. traditional. Informatica Economica, 17(4), p.64.
Vijayasarathy, L.R. and Butler, C.W., 2016. Choice of software development methodologies: Do organizational, project, and team characteristics matter?. IEEE Software, 33(5), pp.86-94.
Yu, X. and Petter, S., 2014. Understanding agile software development practices using shared mental models theory. Information and Software Technology, 56(8), pp.911-921.