Software engineering Assignment on Process Development Models
Question
Task: Provide an in-depth description of various development models used in the current software industry, along with their advantage and disadvantages. Include minimum 15 references in Harvard style.
Answer
Process Models; Evolution and Rationale:
It is a challenge in the field of software engineering to adopt with the rapidly changing methodologies and associated reliably factor. This software engineering assignment is a historic overview of the research domain of the software evolution along with the research themes and detecting the research challenges for the coming years. It is a standard developmental approach constituting of various activities involving process models and components. The classification has been done into project metrics, process metrics and the product metrics. Each and every matrix is having an objective and significance contributing to software development projects. The major objective of the software metrics is to analyse and identify the quality aspects of the product on which the work is going on currently. Additionally, the facts regarding the quality improvement and quality prediction also gets done in the software metrics. In this software, all the features can easily be counted or measured. The major functionalities of software metrics are identifying or analyzing the performance of the software, planning regarding the working items, productivity measurement and several others. There are four major functions of management that are related with the software metrics. The major functions include planning, organization, control and Management (Singh and Gautam 2016).
. In this software engineering assignment, three process models are to be followed as Waterfall process model, Rapid Application and Development model and Spiral Model. In the contextual discussion, the compare and contrast approach has been adopted to critically analyses the chosen process models. The waterfall model is comprising of the separate and isolated phases of specification and development while the spiral model in the different specification development and various phases are included. Finally it can be considered that it is a glance about the process that these models that are specific are the abstractions of that process which can easily be used for explaining different approaches that are related to the development of the software (David and Anand 2018).
In the field of software engineering, the waterfall process model plays an important role as it follows a sequential method in the software development. The waterfall process model represents several functional steps in software development. Waterfall model adopts an approach which has positive and as well as the negative impact on software development methodology.
The positive aspects of waterfall process model are direct planning and designing in the conceptual development phase. All the process of software development has been divided into various sub-components that contribute to developmental methodology. All the documents and data required for the project could be incorporated into the process model methodology. Design application, fix application and deploy application is the main component of the contextual process model(Chowdhury et al. 2018). A certain degree of control is needed in the case of the waterfall process model to maintain rigor and creativity balance. There are various advantages and disadvantages of a waterfall process model that needs to be looked after while adopting it for any software development project. The major advantages of the process model are focusing on a structured approach and efficient control over the project. The process model allows the following and arranging of all tasks allocated for the project development. Various changes and incorporations could be possible in the middle of the project development based on client feedback.
The critical features of rapid application development model are powerful development phases and techniques associated with the methodology. The short period for project execution is one of the significant features of this model. The rapid development model works much faster compared to other SDAL methods. The major advantages of rapid development are flexibility and the ability to change corresponding to requirements and feedback. The model has to reduce the overall project risk when it is useful. The rapid development model focuses on delivery as it is the highest priority set from the Clint end. The disadvantage of this software engineering assignment model is that it is not suitable for smaller projects that have fewer tasks and confined by budget constraints. The model cannot be suitable for any developmental methodology when the technical risk is high. The rapid application development model has been updating every year but the basic focus of development confined within the four basic step of the process model mechanism. These four basic steps are such as requirement define, prototype, received client feedback, and finalize software. From the beginning, rapid application development set separate it from traditional development. The development cycle requires helping to give specific requirements. The nature board helps us to give various points of development. Prototype is the most important step to develop. Does not follow the hard set for requirement. Created development and activities as can it fast. In response is not limited only pure reason, but still visuals and interface.
Spiral model incremental development is the combined of a waterfall model. Each phase in spiral model incremental development starts with ambition for design and ends with the client analyze to improve. The important advantages of the spiral model incremental development are the transformation or extra causality can be done by the next stage(Kumara and Rashid 2018).
The simplified description of a software process from the perspective of a specific process is related with the process models. There is several software characteristics that get counted are measured in it. Additionally the performance of the software, planning task, productivity measurement also gets done in the same. The status of the software process and the project is described in the matrix. It also plays an important role in providing the objective information. It is basically a proactive management strategy that plays an important role in identifying the potential problems. Additionally, with this software engineering assignment the problems can easily be identified and solved. It works just like a decision making entity and it assesses the impacts of each and every decision that is taken. It also plays an important role in providing the rational for the alternative selection. In order to track the status of the business process, the business metrics is highly used. There are some of the important aspects that are included in the business metrics. The aspects include investors, employees, executive, middle managers and the customers as well. It also monitors the performance of the project and also tracks several aspects including the social media matrix, marketing metrics, camping, statistics of the program and others. Additionally, the business metrics also monitor the sales performance, new opportunity and the leads as well (de et al. 2015).
Metrics is a unit of measurements. Metric is also used to mean specific measurements on a particular item. Object-oriented design and developing are also done by this. It is based on software size, software development effort, software development schedule, software defects, software progress (design, coding, testing,). Most metrics are indirect. Accurately measure the property of the software process by this (Mohovi? et al. 2018).
The Waterfall process model has many advantages as well as disadvantages; the first advantage is that the process model is quite comprehensive and user-friendly while being implemented in the practical scenario. Secondly, the structure of this software engineering assignment waterfall process is rigid which helps in managing the methodology. The Unit phase has a clearly defined reviewing process and has well-defined deliverables. In the waterfall model the processing of the phases takes place each at a time and therefore completed. Whenever requirements of the various smaller projects are well defined and comprehensive, then the waterfall model works efficiently. The model meets the user’s requirements and needs for the project. Users in the waterfall model usually have lesser needs for the supporting systems. The model provides the scope of outstanding documentation for the developers. The model has a much longer working life compared to other models (Voas and Kuhn 2017) .
The major disadvantages of the waterfall process model are once the component of an application undergoes testing then it is an arduous task to go back and modify something that was not included in the initial conceptual stage. Until the later stages, the process cannot produce any software. There is a great amount of risk factor and uncertainty involved in the process. The waterfall model is not suitable for object-oriented and difficult projects. The various running as well as long processes does not suit the waterfall process model. Projects where the requirement varies from moderate to high be not well suited for the waterfall model. The model is too costly for maintenance purpose. The model requires additional training for the employees. The waterfall model needs more in-depth research into the needs of the users (Neufelder, 2018).
The Rapid Application Development (RAD) process model has many advantages as well as disadvantages; the first advantage is that the RAD model is known to significantly shorten the time for the project’s development. The components of the RAD model are recyclable. In the process, the reviews take place quickly as compared to the other processes. Synthesis from the very beginning of the process helps in solving a lot of issues related to the process of amalgamation. There is greater flexibility in the project due to the redesigning being done following the developer. The model has an opportunity of lesser number of defects due to its illustration. The process model uses a much lesser amount of time compared to other process models. The development of the RAD model is less complex compared to other process models. The use of codes is lessened due to reusing the codes as well as the available code generators. There is an expanded speed of development as well as the quality also increases (Eisty et al. 2018).
There are various disadvantages of the Rapid Application Development process model, the first is that a strong team is required and the individual performances are counted for identifying the various requirements of the business. The RAD model requires extremely skilled designers and developers for the processing of the task. With the help of the RAD model, the system can easily get modulated.
The RAD process model is highly dependent on the modeling skills. Problems can occur if the process is completed within a less amount of time. The process model cannot be used for projects with fewer budgets due to the higher cost of the RAD model. The rate of producing the automated code is also very high. RAD model developers face issues when the project duration is further delayed. The projects in the RAD model can fail if the developers are less committed to fulfillment in the developing of their software within time. The RAD development process has many fewer features compared to other process models. The process has reduced expandability compared to the other models (Polan?i? and Cegnar 2017).
The spiral model that is an incremental development model has advantages as well as some disadvantages. The advantages are that the model can analyze the risk involved in a great amount hence the probability of avoiding the risk is increased. The Spiral Model is the type of model that is good for the larger variants of projects which is necessary for well working in a business. The spiral model has a good acceptance as well as provides good control of the documents. The newer or extra functionalities can be put together after the expected time. The software of the spiral model can be established earlier in the software life cycle. The estimations for the cost as well as the schedule of the project become exceptional as the project further continues. The end product of the spiral model can be customized to a great length. Observing the process is much easier in the spiral model (Haraty and Hu 2018).
The disadvantages associated with the spiral model are that the model can cost a lot of money in comparison to the other process models. The spiral model is designed for projects where the risk factor ranges from medium to high range. The spiral model eventually is not appropriate for projects where the risk factor is less. The success of the software development projects in the spiral model is dependent on how they can analyze the amount of risk involved in it. The spiral model is not intended for smaller projects as it is not accustomed to it. The objectives and the confirmable milestones may be hard to define incase of the spiral model. The work process associated with the spiral model may continue for an unspecified amount of time. The documentation in this software engineering assignment model could be prolonged in comparison to the other models. The spiral model makes it easier to monitor the process, also makes it more effective. In the spiral model methodology endpoint of the project may be complex compared to the other models. As per the model, the guidelines and the agreements must be followed strictly in the process of development. The spiral model is regarded as a tough process in comparison to the other models(Podelski and Westphal 2016).
In Software design metrics, data is collected from a communications system. Design metrics are used to identify error-prone and change-prone system functionality. Complex programs was constructed with simple code metrics by the above mentioned methodology (Mshelia et al. 2019).
Flow metrics is used to investigate the use of design stages in software development. It is used to identify UNIX flowcharts in developmental process. It also evaluates potential UNIX design associated with the development process. The structures’ design and analysis of a software system is based on qualitative grounds. It is based on some possible paths of information flow. Components are used to evaluate the design. Three types of models are discussed here like the Waterfall Model, Rapid Application Model, Spiral Model.
It is also considered as the classical model. Additionally this software engineering assignment model also gets referred with the linear sequential life cycle. In this software engineering assignment model, each and every face is completely involved in a linear direction. Small projects, this model is highly used. For this model it is important to have a large team size. At the initial stage, it is easy to make the changes. Additional in this model it is important to have a a huge time for software running process.
Rapid application development is an incremental model. In this model, change can be done in any stages. In this model, the risk amount is very low. In this software engineering assignment project, a small team is required for smoot execution. The RAD model could be preferred for handling big and small projects. Delivery process is very high. In the RAD model, software running time is less. This RAD model critically depends upon risk analysis and associated outcomes.
In software development process, Spiral model has been playing an important role. For risk handling, spiral model provides support where spirals numbers are uncounted. The nodes are constituting of phases of spiral model. Phases need to be developed by the manager depends on the risk associated with the software development process. Spiral model is called Meta-Model in many cases of software development process. In this model, there are many advantages like customers satisfaction, as well as Risk handling, flexibility in requirements, good for large project. There are also have disadvantages such as high associated cost than other models and associated complexity. Time management is very difficult for this software engineering assignment model because risk analysis is taken a huge time. Spiral Model is the combination of both prototype and sequential which creates high effectiveness for a big project. The specific activities are done by a spiral model when the magnitude of software is huge and the prototype is small competed to the use cases. Using spiral model, software is created strategically. It also strategically handled the software. Risk evaluation is properly analysis by this model. In this model, software is produced fast. Systemically more features are added. According to the feedback of the customers, the changes are implemented very fast. It is very costly for a smaller project. Each spiral is known as a loop. There is a separate development process for each loop in a spiral model (Francese et al. 2015).
Spiral model is used for continuous risk evaluation for the software. The spiral model plays an important role in resolving the complicated requirements and clarification. Spiral models’ working process based on an evolutionary method. Risk of errors are identified in the spiral model. Rectifying process is very faster in this process. This model is adopted by developers. There is a low amount of risk in the spiral model. It is easy to change the flexibility in the spiral model (Alakus et al. 2019).
In this software engineering assignment, there is a wide usage of the waterfall model. Waterfall model is unstable. In this model, a test is very impossible for early stage. Unless the system coding is completed, the system performance cannot be examined.
IBM had invented the RAD model in the year 1980. The use of powerful developments tools and techniques are the critical features of this model. Using this model, a software project can be broken into small modules for implementation, then each module divided into separate teams. Each module has various basic steps like analyzing, designing, coding, testing. Fewer developers are required for reducing the costs. With known requirements and the needed short development time, this software engineering assignment model should be used. Modularized and reusable components are suitable for this. In the case of the domains expert of teams this software engineering assignment model can be used as the relevant knowledge and the ability, the powerful technique is a must. The model should be selected only when the budget permits the needed automated tools and techniques (Rosenberg et al. 2017).
The project details control activities in the masters’ of the team. In addition to it the existence of the outcoming result null. In the case of design metrics, it is preferable to count the synthetics. The result of the study advise that it can be a low-cost technique.
Unstructured ModelDevelopment can be approached without any attention to organizethe activities, resources or to the planning and analysis of the item involved in the developmental work. An organization can simply pour into a project the needed elements of people, money then set off working in the hope that something useful will be produced.
In order to develop the Heavyweight Model software the model heavyweight methodologies are widely used. It is one of the prominent and traditional manners of developing the software. There is a continuous series in including the required definitions, building solution process, testing and others that are included in these methodologies. Additionally, it also required the process of defining and documenting the set of requirements that are suitable and appropriate.
Software process are the activities which involve in producing a software system. General activities are specified, designed and implemented and evaluated. Software process models are the abstract representation of the process. There are various pre -existing models to develop systems for different sizes of projects and requirements. In software development methodologies a system can be developed with the help of Waterfall Models and Spiral Models. Each model has an advantage and disadvantages for the system development and so each model tries to eliminate the disadvantage of the previous model for the upcoming work. .
References
Alakus, T.B., Das, R. and Turkoglu, I., 2019, September. An Overview of Quality Metrics Used in Estimating Software Faults. In 2019 International Artificial Intelligence and Data Processing Symposium (IDAP) (pp. 1-6). IEEE.
Chowdhury, A.Z.M., Bhowmik, A., Hasan, H. and Rahim, M.S., 2018. Analysis of the veracities of industry used software development life cycle methodologies. arXiv preprint arXiv:1805.08631.
David, K. and Anand, R., 2018. Determination of influencing metricsin water fall model. International Journal of Engineering & Technology, 7(2.26), pp.7-12.
de Oca, I.M.M., Snoeck, M., Reijers, H.A. and Rodríguez-Morffi, A., 2015. A systematic literature review of studies on business process modeling quality. Information and software technology, 58, pp.187-205.
Eisty, N.U., Thiruvathukal, G.K. and Carver, J.C., 2019, April. Use of Software Process in Research Software Development: A Survey. In Proceedings of the Evaluation and Assessment on Software Engineering (pp. 276-282). ACM.
Francese, R., Gravino, C., Risi, M., Scanniello, G. and Tortora, G., 2015, August. On the use of requirements measures to predict software project and product measures in the context of android mobile apps: a preliminary study. In 2015 41st Euromicro Conference on Software Engineering and Advanced Applications (pp. 357-364). IEEE.
Haraty, R.A. and Hu, G., 2018. Software process models.
Kahloun, F. and Channouchi, S.A., 2016. Quality criteria and metrics for business process models in higher education domain: case of a tracking of curriculum offers process. Procedia Computer Science, 100, pp.1016-1023.
Kumara, M. and Rashid, E., 2018. An efficient software development life cycle model for developing software project. International Journal of Education and Management Engineering, 8(6), pp.59-68.
Mohovi?, M., Mauša, G. and Grbac, T.G., 2018, January. Using Threshold Derivation of Software Metrics for Building Classifiers in Defect Prediction. In Seventh Workshop on Software Quality Analysis, Monitoring, Improvement, and Applications.
Mshelia, Y.U., Apeh, S.T. and Olaye, E., 2019, July. Towards a Unified Process Model for Comprehensive Software Metrics Suite: An Introduction. In 2019 19th International Conference on Computational Science and Its Applications (ICCSA) (pp. 52-56). IEEE.
Neufelder, A.M., 2018. Ensuring software reliability. CRC Press.
Nidagundi, P. and Novickis, L., 2016. Introduction to lean canvas transformation models and metrics in software testing. Applied Computer Systems, 19(1), pp.30-36.
Podelski, A. and Westphal, B., 2016. Lecture 5: Procedure & Process Models.
Polan?i?, G. and Cegnar, B., 2017. Complexity metrics for process models–A systematic literature review. Computer Standards & Interfaces, 51, pp.104-117.
Rosenberg, D., Boehm, B., Wang, B. and Qi, K., 2017, July. Rapid, evolutionary, reliable, scalable system and software development: The resilient agile process. In Proceedings of the 2017 International Conference on Software and System Process (pp. 60-69). ACM.
Singh, B. and Gautam, S., 2016, December. The impact of software development process on software quality: A review. In 2016 8th International Conference on Computational Intelligence and Communication Networks (CICN) (pp. 666-672). IEEE.
Voas, J. and Kuhn, R., 2017. What happened to software metrics?. Computer, 50(5), p.88.