System Analysis and Design
A life cycle model is a term which describes the process of the planning through to the deployment of a new software on a system, covering items such as specification analysis and implementation/testing, to enable the developers to create the software, and to ensure that the end user gets what they want.
The waterfall model is a common method used when designing and implementing new software. It was designed to be a simple yet effective method to enable developers and users design a software together. In the Waterfall model, each phase must be completed before you can move onto the next stage, which primarily makes it for small projects where there are absolute requirements. At the end of each phase, there is a review which helps the developers know that they are on track, whether to continue with the project and what steps to take. Also, the testing element of this model can only take place after the development is complete.
See the below diagram which shows each step of the waterfall process:
The processes are:
- Requirement Gathering and Analysis
- System Design
Image Source – (ISTQB, 2016)
The first step of this method involves getting to know what the client wants out of the system, and analyze them to see if it is realistic and achievable, to plan out how the software can be created. The second step involves designing the system to meet the needs of the client. The third is implementing the software in a test environment for the fourth step which is testing the software. The fifth step is deploying the system to the client. After all of this has been completed, the software or system must be maintained.
- One of the main advantages of the Waterfall model is that it is very easy to understand and follow due to the design of it. It has a very rigid design with each stage having its own deliverables and review process.
- In this model, there are no overlaps in the stages meaning that everything is very clear and defined making it quite effective when used in the correct way.
- Because the Waterfall model has a very clear and defined structure it is very good for a project that has clear goals on what needs to be achieved and due to its structure, it is a great tool to use even if you are inexperienced.
- This model can only be used when the requirements of the project are clear, as each stage requires its own review stage and cannot move any further if goals are not set. There can be no ambiguous requirements in a project using this method.
- There are high amounts of risk and uncertainty due to a very rigid structure, no goals can be changed or reviewed after the originals have been set.
- It cannot be used on projects which are ongoing because there is no way to change anything once one stage has been completed. This also means that there is little opportunity for the customer to review the product.
The Evolutionary Prototyping Model was designed as a software development model which incorporates the end user at almost every stage during the process. This is used so that consumers can have their say on the product during the developmental stage of the software to know that the developers have created a product which meets their needs.
There are four main stages to this model to follow, they are as follows:
- The identification process, which is used to get the basic requirements this software must achieve. It is designed in this way as many consumers may not know the absolute requirements of the software as it is generally a continuous project.
- The prototype phase in which the developers will make a prototype or multiple prototypes of the product in order to get the basic requirements met.
- Verification of the prototype process in which the developers can use surveys and experimentation for the consumer. This stage is used so people can add their thoughts about the product and find out if there is anything that could be added or changed to make it better.
- The final stage is changing the prototype per the feedback that the consumer gave to the developers to meet the needs of the client.
This cycle will then repeat until the customer is completely happy with their product and the development process is complete.
One of the main advantages to this methodology is that the user ends up with a more accurate product due to their consistent input into the design process. Developers can learn from the consumer and vice versa.
This also brings another benefit into play, meaning that any unexpected requirements or additions to the software can be added at developmental stage, resulting in a more accurate product too. It is a very flexible method.
Another benefit is that you can see a constant progression throughout the development of the software, and customers can begin to see the benefits of using this software and being able to have constant input.
The main disadvantage of this method is that the process may go on for a very long time due to the repeatable feedback process.
Many developers using this method may fully scrap the process and go for a code-and-fix development process, leading to a poor reputation, with this method being seen as “quick and dirty”.
Because of the constant input from the customer, the focus can be taken away from how maintainable the software is, mainly looking at the needs of the consumer.
The RAD model is used as an incremental development model, in which the all of the components of the software are developed in parallel and seen as “mini-projects”. These components will be scheduled, and delivered where it is compiled into a full software. This software can then be handed over to the consumer for feedback relating to the requirements. See the below diagram for a visual explanation of these timeboxed components:
Of course, the number of components will vary for each software, however this gives a representation of the processes involved. There will be a specific set of teams which will all be responsible for a specific area of the software. After this process is complete the components will be amalgamated into one complete prototype.
Image Source – (Find Nerd, 2015)
There are four main steps involved in this model, and they are as follows:
- Requirement Planning which is like the analysis stage within the waterfall model, however this plan incorporates a constant review of each element to ensure that the project will meet the user’s needs throughout the prototype stage.
- The design phase takes place after the initial needs have been determined, where the developer’s teams will generate an initial prototype for review by the user. This prototype will then be refined as the process continues.
- The construction phase where the developers will take the preferred prototypes of each section of the software and create a full functional program.
- The final stage takes place after the in-house testing and construction has finished and the client will be using and implementing the software as normal. The developers will be available for a set amount of time for corrective maintenance and to incorporate feedback.
The main advantage is the reduced development time due to the development being split into different teams and section which means the process is extremely efficient.
Because the components are managed by their own team, and there is generally more than one version of each section, elements can be transferred, increasing the reusability.
This method encourages customer feedback on each section which means that there are clear and defined goals as the project moves along and quick reviews often happen.
This system is heavily reliant on a strong and experienced team to identify new and existing requirements, meaning some projects may be delayed.
This method only works on modelized systems and heavily relies on modeling skills.
One of the main advantages of using lifecycle models is that you can firstly get a strong idea on what the consumer wants, and you to create a plan of attack on how you can achieve these. It enables you to plan and possibly create prototypes to create an efficient program for the consumer to. This ensures that the customer will be happy with the product that you have made, due to their consistent input within the development stage.
In general, using a lifecycle model when developing a software can reduce the development time of the software. This is because you have a rigid schedule which you can stick to, as well as clear goals and objectives through liaising with the customer which increases the efficiency at developmental stage. Many of these plans are made to be easy to read and to follow, meaning you know exactly what is happening at each stage of the process, further increasing the efficiency.
Many plans allow you to review the product with the customer throughout the developmental stage meaning that you can remove areas of the software which do not meet the standard that the customer is after. You are also able to edit certain features to add functionality, or even design new elements that will help the consumer with their end goal.
Some plans allow you to really structure the development process of the software which can help you decide who will be undertaking what task, i.e. assessing strengths and putting teams together to reach your final goal. This also improves efficiency, as you could divide up the development into teams to reach the end goal much faster, and still create a great product.
Lots of new life cycles allow you to visibly see the progress of the software, meaning the team stays motivated to complete the job due to clear and structures goals which work you through to the deployment and maintenance stages of the development. It also means that the consumer will see a steady stream of progress which will also keep them happy.
Feasibility reports are made to examine a proposal, which allows a business or team to determine whether a project will be successful. For example, in an IT environment, you could discuss the lease of laptops using a plan rather than purchasing laptops outright. The below paragraphs discuss the components of a feasibility report and why each of them is included.
The first main stage of a feasibility report is the to identify the scope of the project. This means you will need to identify the issue that you will be addressing within the project. The scope must be clearly defined, as it may confuse the people involved in the project, and having unclear goals can be catastrophic to a project or job. The area that will be affected e.g. the IT department whether that be directly or indirectly. The scope essentially enables you to get an accurate study, because you have clear and defines goals.
Undertaking a market analysis during a feasibility report can be critical. It allows you to examine environments like yours to assess the strengths and weaknesses of different approaches to implement the project. You will then be able to create a SWOT analysis (Strengths, Weaknesses, Opportunities and Threats) which were faced by other users to make your own decisions on how the project will be undertaken.
As a part of your feasibility report, you should always analyze the requirements. These requirements will be based upon the technical requirements and the requirements of the organization. Identification of technical requirements will enable you to identify which technical resources/personnel you will need to complete said project. Meanwhile you should be considering what organization procedures and requirements that you must follow, whether that be related to recommended vendors for equipment or any security laws or procedures with data protection. This is essential because it allows you to get an idea on how you will approach the project.
After the first three steps, you will then be able to get an idea on how the project will be completed, therefore allowing you to decide on the approach. You must find a happy medium and decide upon a recommended course of action, or a solution that incorporates the organizational requirements. You can discuss various approaches and select a solution that best fits the needs per the scope. It must always be 1) a practical solution and 2) meet the needs of everyone.
After the approach has been decided, you will then compile a short section which examines the cost effectiveness of that approach, which can help you build an estimate of the total costs. You can cross reference previous approaches for comparison purposes. After you have completed this, you will compile the cost summary, which will provide information on the return on investment and a cost to benefit analysis.
The final step of a feasibility study is the review stage. This is where all the elements mentioned above will be analyzed in a formal review with either a team or business partners depending on the size of the project. It is used to firstly confirm that it is an accurate report and then decide on whether you go ahead with the project or not. At this stage, you may be asked to change some details, to engage the project or it may be full rejected. All parties involved in the review should all sign a document to agree to the project.
In this section I will be discussing the impact of the criteria of feasibility reports (see above) and assess what impact they have on a systems investigation.
The main impact that identifying the scope will have, is ensuring that the team undertaking the project as well as the business know exactly what the issue is that they are trying to resolve. It will allow for a guided discussion on the possible steps that you can take to complete this project, and analyze each one collated into the feasibility study. It will clearly define to everyone the goal they will be working towards on the project to keep everyone on the same page, and keeps everyone working towards a similar goal. It can also help the business and the team understand what areas could benefit from the new system and assess them against the current system for a full review.
Taking the time to understand and review different methods and approaches that other people in your position have taken can be an extremely important step in the process. It will allow you to analyze these methods side by side so you can get an idea on what approach could be best for you. You may also wish to amalgamate different approaches into one sophisticated one, which may help you to efficiently reach your goal. You are then able to have a discussion regarding these steps and decide as a team which would be best for the current situation based on skills and experience as well as requirements.
Understanding the requirements of both the team and the organization is arguably one of the most critical steps in the feasibility study. It will essentially allow you to get an idea of what will be possible and what wont. Basing it off the team’s requirements will allow you to get an idea of who is capable to undertake which role, to see whether a certain approach will be possible or whether you must go back to the drawing board, or even scrap the idea totally. Understanding the organization requirements can help you to plan around any eventuality such as procedures regarding safety and even laws such as the data protection act. It can also influence you with the decision of the approach method.
Deciding the approach of the project is the major step in moving onto the processes of the actual project. It allows you to weigh up all the different approaches comparing how you will meet the scope, the market needs and the needs of the business and personnel. It will allow you to have a guided discussion on each approach compared to the needs and which one will suit everyone the best whilst discussing all the previous points. It finally completes the research and discussion to prepare you for the assignment.
After you have selected the approach that you will be following, you will then have to analyze how much the project will cost. It helps you to ensure that you are still in budget, and are meeting the needs of the business in that respect. It will allow you to contrast different approaches and their effectiveness compared to each of their costs to ensure you choose the most efficient method. It will also enable you to put together a final figure of costings to present to the business.
Reviewing all your decisions regarding the project whilst presenting them to the business, will allow you to firstly ensure that all needs of the business have been met to ensure that everyone is happy with the solution to the original email. It will also allow you to get the go ahead from the business as to whether you can go ahead with the project, or whether you will need to make any changes to the original approach to ensure the solution is the most efficient possible.
BBC, 2016. BBC Bitesize. [Online]
Available at: http://www.bbc.co.uk/education/guides/zp3kd2p/revision/9
[Accessed 09 January 2017].
Exforys, 2015. Exforys. [Online]
Available at: http://www.exforsys.com/career-center/project-management-life-cycle/the-evolutionary-prototyping-model.html
[Accessed 09 January 2017].
Find Nerd, 2015. Find Nerd. [Online]
Available at: http://findnerd.s3.amazonaws.com/imagedata/4325/4325.jpg
[Accessed 09 January 2017].
ISTQB, 2015. ISTQB. [Online]
Available at: http://istqbexamcertification.com/what-is-rad-model-advantages-disadvantages-and-when-to-use-it/
[Accessed 09 January 2017].
ISTQB, 2016. ISTQB. [Online]
Available at: http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/
[Accessed 09 January 2017].
ISTQB, 2016. ISTQB. [Online]
Available at: http://istqbexamcertification.com/wp-content/uploads/2012/01/Waterfall-model.jpg
[Accessed 09 January 2017].
MWANZONI, 2016. LinkedIn. [Online]
Available at: https://www.linkedin.com/pulse/key-components-good-feasibility-study-mwanzoni-ltd
[Accessed 10 January 2017].