Friday, June 19, 2020

Types of Software Development Models Research Assignment - 2200 Words

Types of Software Development Models Research Assignment (Coursework Sample) Content: System DevelopmentName:Institution:.SOFTWARE DEVELOPMENTSoftware development life cycle is the orderly process followed when developing a software. The processes do not only involve programming but also requirements specification, analysis, and design. Correct software model has to be selected carefully to facilitate the development process. Therefore, software developers have to choose an appropriate model based on specific concerns and requirements of a system. There are several SDLC models that are explored to facilitate the selection of the best model.Types of Software Development ModelsWaterfall modelThis model is whereby software development proceeds sequentially from one phase to another. Each phase has specific deliverables that have to be completed before the next phase can begin. This traditional model does not allow changes to be made in a previous phase once it is done. The sequence flows downwards steadily. When a previous phase is complete, we move to th e next phase. Though, it is expensive to fix bugs when using this model since it only allows testing when a software development is complete. Its major advantage is that it is easy to use where requirements are clearly specified.V-modelThis is as a result of the advanced development of the waterfall model. The phases move linearly downwards until the implementation phase where they turn upwards to form a V-shape. It is used when requirements are clearly specified and development technology is also familiar. It provides verification and validation of software in its initial stages of development. Unfortunately, V-model is rigid like the waterfall model, it is difficult to make adjustments but if made are very expensive.Prototyping ModelIt creates prototypes and gives it to users to evaluate and recommend it. This approach is useful when a user requirements are not clearly defined and are bound to changes. Types of prototyping include throwaway, evolutionary and incremental. Throwaway prototyping is whereby prototypes are disposed instead of being used to form part of the final system. Evolutionary prototyping is where the first prototype is used iteratively up to the proposed final system. Incremental prototyping allows separate prototypes to be combined up together to form the final system. Prototyping model provides user interactions during development though it leads to confusion due to inadequate analysis.Spiral ModelIt uses both the features of prototyping and waterfall models. This model is mainly used in complex software which needs regular enhancements. It has four phases, those are planning phase, risk analysis phase, engineering phase and evaluation phase. This model highly emphasizes on risk analysis since it is risk-driven. Therefore, its success relies heavily on risk analysis. Its major advantage is that it is possible to add some new functionalities during the final stages of its development.Agile ModelThis is an iterative model where iteration p rovides complete software. It requires user interactions in order for it to be successful. This is because user gives feedback as the development proceeds. It also works where requirement needs are not well specified. There are four types of agile models which are scrum, extreme development, test driven development and future driven development (Stamelos, 2007).Development MethodologySince the requirements of the accounting software are well documented, waterfall model will be used. User requirements are clear and fixed hence gives waterfall model a better chance than other models. Further, the technology used in waterfall model is familiar. This eliminates the need to read and understand other models that are unfamiliar. Thus, less time in software development. Finally, resources and expertise needed are readily available. This speeds up the development process as there is no need to look for other external resources.Phases of Waterfall ModelRequirements AnalysisThis is the first p hase of system development. It involves requirement gathering, feasibility study, and preliminary risk analysis. The techniques of data collections such as interviews and questionnaires that are used to gather data from stakeholders. This information is useful as it helps in understanding the business value of the project. Feasibility analysis is also carried out to determine if the project should proceed or not. It is important to note that risk analysis helps in analyzing and determining possible risks during a software development process.DesignThis phase is divided into two, logical design and physical design. It takes the output from requirements analysis phase then breaks it down to its input. The design is created based on requirements gathered in the previous phase. Hardware and software specifications are also considered in this phase. This phase also entails design of database and user interface. Entity relational diagrams and flow diagrams are also constructed to show rel ations and data flow in the proposed system.ImplementationThis is where coding comes in. The actual development of the system takes place in this phase. Each system unit is developed and tested to ensure that they achieve the expected functionality. The need to learn a new technology is solved by allocating time for learning it before programming can actually start. This phase relies on design document obtained from design phase to implement a program.System TestingAfter unit testing, all units are integrated into one system. Then the system is tested to ensure that it is functioning well. The system must be able to achieve its functionalities properly. Hence, an anomaly arising from the system ought to be reported to enable the correction of the bug. The bugs are detected, analyzed and then debugging process takes over. The developed software is debugged until it is stable and can handle assigned operation. After this phase, the system is ready for deployment.DeploymentOnce testing and debugging is complete, then it is necessary to set up the software operating environment before it can be deployed to the users. This is where a complete working software is launched live to the market. It is the final phase of software development. The software support teams interact with the end users to get their feedback and attend to their concerns. The key deliverable in this phase is an operational system that is already integrated with the working environment.MaintenanceThis is the final phase of system development life cycle. It marks the end of development of a complete working system. Maintenance carried out are enhancement, adaptive and correction. Enhancement maintenance is carried out to add more features to the system. Adaptive maintenance is when a system is modified to conform to its environment and its need. Finally, correction maintenance is whereby bugs in a system are fixed.Security PrinciplesLeast privilege principleThis design principle requires that gran ting of user access should be minimal. The access should be based on a specific time limit. Granting access without considering this principle may lead to illegal modification of data. Thus, an attacker can exploit it to cause intentional or unintentional damage to a system. Least privilege principle helps to limit changes of a systems data. This is applied by use of passwords (Kim Solomon, 2013). Nevertheless, limiting administrative rights can also be used to achieve this principle as it limits privileges a user have.Economy of mechanism designThis design principle requires that system design should be simple. Further, the system should not have design and implementation errors when in use. This principle is achieved by proper analysis of the system before implementing it. It is necessary to develop a well-researched blueprint for a system development. The blueprint should be able to develop a comprehensive system that is robust and can handle unexpected operations appropriately. A system should not fail when it counters unusual occurrences.Separation privilege designThis principle requires that a system should not permit user access based on only one condition. Several privileges are broken down into different components among users so that there is a collective agreement when performing an operation. All these components have to jointly work together for an operation to go through. Systems users must meet several conditions for them to be allowed to gain access to it. It states that using a double key to control access is better than using a single key. This means that access to a system should not be granted based on only one condition but many. Therefore, it limits the possibility of security breach thus protecting system resources.Psychological acceptabilityIt requires that access to system resources should not be made difficult. Using system should be easy and direct in spite of security mechanisms (Gungor Hancke, 2009). A user interface is very vita l to any user. It provides the interface between the user and the system. Therefore, this principle advocate for a friendly and easy to use interface. To achieve this, the user interface has to be well designed with proper labels. Proper labels help is easy navigation when using a system. Ambiguous user interface designs are discouraged to prevent confusion when a system is in use.Open designIt states that system designs should be open rather than being secret. Furthermore, it is difficult for a system in distribution to maintain its design secrecy. Therefore, algorithms and security of a system should not depend on how secret underlying design architecture is. This principle suggests that the security of a system is not added by its design secrecy. More importantly, ignorance of system opponents do not also guarantee zero likeliho...

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.