A system is a set of components which are combined to achieve a common purpose. An example of a system is a computer system. This consists of hardware components like the motherboard and Central Processing Unit (CPU) and software components like the operating system (OS) which all come together to form a working computer, which can be used to achieve tasks like browsing or sending/receiving information. Systems like these usually require to be analyzed from time to time in order to ensure that they are running if good working order or to make sure that the system in use is as efficient as possible and that it is not obsolete. This is done through systems analysis. Systems analysis, which is performed by a system analyst, is a problem-solving technique that is used by businesses to identify their main problem areas and strengths in their systems, in order to expand on their strengths and try to rectify the problems for their systems to run as efficiently as possible. This is achieved by breaking down the system into bite size pieces which are then studied to ensure everything is running smoothly.
A) Outline the principles of systems analysis identifying development lifecycle models, developmental tools and techniques
In order to properly analyze a system, there are sets of steps to follow known as software development lifecycle models (SDLC). A software development lifecycle model is the process and steps involved in developing a software from planning it to implementing it. There are several software development lifecycle models, and each of them is suited to adapt to a scenario.
The first and oldest lifecycle model is the waterfall model. All other lifecycle models are based off this model. This model has six main stages/phases, requirements, system design, implementation, integration and testing, deployment of system and maintenance
This software development model, has several advantages to its user, if used in the correct way
1. It is easy to use and understand because the phases are direct and straight forward, so they are easy to follow
2. Since it is easy to use, it provides structure to inexperienced staff, so it wont be hard for them to understand the steps that they need to follow
3. The milestones are well understood, because before you move to the next step, the milestones for the previous step must be laid out and checked
4. Since the milestones must be laid out, it is good for management control, as these milestones can be used to judge the analysts progress as they progress.
This SDLC model also has its disadvantages
1. All requirements must be known upfront so, any requirements given after the requirements phase cannot be incorporated into the system
2. Deliverables for each stage are considered frozen therefore, once you move on to the next phase you cannot go back to edit the deliverables in the previous stage
3. Since you cannot go back to make these changes, it does not reflect the problem-solving nature of software development
4. There is little opportunity for the customer to preview the system, so they may not be able to verify if the system meets their standards until after the system is complete
This specific SDLC is adapted for use in the following situations;
WHEN TO USE WATERFALL MODEL
1. When requirements are well known
2. When technology is understood
3. When product definition Is stable
4. When the tasks are easy to arrange
5. When stages are clearly defined
This SDLC model is a variant of the waterfall model that emphasizes on testing of the product after every phase
This model also has its advantages when used in the correct way
1. Emphasize planning for verification and validation of the product in early stages of product development
2. Each deliverable must be testable
3. Project management can track progress by milestones
4. Easy to use
And with these advantages, there are also some disadvantages of using v shaped SDLC model
1. Does not easily handle concurrent events because of the testing that happens after the phases, which would make it take up a lot of time
2. Does not handle iterations or phases because if you go back to the previous phase, you will have to test it again and that will use up a lot of time
3. Does not easily handle dynamic changes in requirements
4. Does not contain risk analysis activities
The v shaped model also has situation which it is adapted to perform well in
WHEN TO USE V SHAPED MODEL
1. Excellent choice for systems requiring high reliability hospital patient control applications
2. All requirements are known up-front
3. When it can be modified to handle changing requirements beyond analysis phase
4. Solution and technology are known
in this SDLC model, the developers build a prototype during the requirements phase, which is then evaluated by end users. When they receive the feedback from the client, they use this feedback to improve the product. This process goes on until the client is fully satisfied with the product
1. Developers learn from the customers, because the customers are always giving feedback to the system analyst
2. The end product will be more accurate as customer input is always available, so they are able to tell the system analyst where he/she is going wrong so they can easily rectify their mistakes.
3. There are steady, visible signs of progress for the customer to see, since they are always required to give feedback
4. Unexpected requirements can be accommodated, if the customer decides to add them later because the system analyst updates the system according to the feedback that they receive from the customer
1. The process might continue forever, because the customer will always find a new requirement that needs to be incorporated into the system
2. Incomplete or inadequate problem analysis, since the customer may tend to focus more on adding new features rather than fixing the already available things
3. The complexity of the system may increase as the scope of the system may expand beyond original plans as the customer adds more and more requirements
4. Bad reputation for quick-and-dirty methods, since the analyst knows that more requirements will eventually be added into the system
WHEN TO USE PROTOTYPING MODEL
1. Requirements are unstable or have to be clarified
2. As the requirements clarification stage of a waterfall model
3. Develop user interfaces
4. Short-lived demonstrations
5. New, original development
4.RAPID APPLICATION MODEL
This is a software development model that uses minimal planning in favor of rapid prototyping
1. Reduced cycle time and improved productivity with fewer people means lower costs
2. Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs
3. It is adaptable and flexible to changes
4. It is easier to transfer deliverables as scripts, high-level abstractions and intermediate codes are used
1. It can’t be used for smaller projects
2. Not all applications are compatible with RAD
3. Requires highly skilled designers, since it is easier for them to do this without making errors
4. Developers and customers must be committed to rapid-fire activities in an abbreviated time frame
WHEN TO USE RAPID APPLICATION DEVELOPMENT
1. Reasonably well-known requirements
2. User involved throughout the life cycle
3. Project can be time-boxed
4. Functionality delivered in increments
5. High performance not required
5.SPIRAL SDLC MODEL
it Is a combination of iterative nature of prototyping and some of the aspects of waterfall model.
This model is divided into some framework activities, also called task regions. Every framework activity represents one section of the spiral path. As the development process starts, the software team perform activities that are indirect by a path around the spiral model in a clockwise direction. It begins at the center of the spiral model.
1. Provides early indication of insurmountable risks, without much cost
2. Users see the system early because of rapid prototyping tools
3. Critical high-risk functions are developed first
4. The design does not have to be perfect
1. Time spent for evaluating risks too large for small or low-risk projects
2. Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive
3. The model is complex
4. Risk assessment expertise is required
WHEN TO USE SPIRAL MODEL
1. When creation of a prototype is appropriate
2. When costs and risk evaluation is important
3. For medium to high-risk projects
4. Long-term project commitment unwise because of potential changes to economic priorities
B. Illustrate the main stages of a development lifecycle using waterfall as your lifecycle model. As you illustrate these stages, also discuss the most appropriate uses of different development lifecycle models citing their benefits and situations
B) Illustrate the main stages of a development lifecycle using waterfall as your lifecycle model. As you illustrate these stages, also discuss the most appropriate uses of different development lifecycle models citing their benefits and situations
The Waterfall Model was the first Process Model to be introduced as an SDLC. It is very simple to understand and use. In a Waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.
In the Waterfall approach, the whole process of software development is divided into separate phases. The waterfall model is a sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.
Requirements defines needed information, function, behavior, performance and interfaces.
Design data structures, software architecture, interface representations, algorithmic details.
Implementation source code, database, user documentation, testing.
Integration and testing – All the units developed in the implementation phase are integrated into a system after testing of each unit to find out if there are any imperfections in the system
Deployment of system – Once the testing is done, the product is deployed in the customers business or released into the market where it can be bought off the shelf
Maintenance – making modifications to the system or an individual component to alter attributes or improve performance. These modifications arise either due to change requests initiated by the customer, or defects uncovered during live use of the system. The client is provided with regular maintenance and support for the developed software
C) Explain the benefits of structured analysis in relation to systems and design
Benefit 1 Higher Efficiency
Structured analysis improves project efficiency. Following the steps means theres little room to miss the important details, which would have otherwise been overlooked
You have a plan in place and establish feasibility at an early stage, because the plan will help to guide you and make it easier for you to progress. The use of data also ensures projects dont run over time and budget, which will save a lot of effort time and money. This has an impact at all levels of the project. You get your models completed quicker, and it will be easier for the analyst to build the system. You also cover every problem the project may face. Therefore, there is less time required to deal with issues that customers bring up later on.
Benefit 2 It Takes Client Needs into Account
One of the benefits of using structured analysis is that the customers needs and requirements are considered from an early stage. The process of analyzing and modelling the current system helps as it allows you to ask and hear the issues firsthand from the customer themselves. You also consider other options, which gives your client a variety of choices to choose from
At every phase, you take in the clients input, which helps with how much time the project takes because the project wont have to be reviewed heavily by the customer afterwards. This will also lead to a higher customer satisfaction, because the project will better meet the clients needs.
Benefit 3 Better Risk Analysis
Since you analyze all the parts of the project, the risks involved in the project become clear and the project can be modelled to adapt to these risks. Since you also get a better image of what the customer wants, you also risk less as you design the model, since you already know the customers needs and requirements.
In the testing phase, you have to look at the project that you have come up with and see if it works well with the companys plans and requirements which reduces the risk of an inefficient project being created, as every problem found will be dealt with.
As you consider different ideas while working on the project, you come up with many alternatives, of which you can choose the best of, and this will decrease the risk of someone coming up with a better idea than yours
Benefit 4 It Makes Projects More Manageable
You confront the issue of feasibility during the early stages of the process. You collect data, consider the problem, and come up with a solution. As a result, the project grows from a solid foundation. You understand how youll manage every stage of the project, and who you must involve.
Using structured analysis when developing models helps you to determine the workload your team takes on. You can assign tasks confidently, and ensure you have the correct people in place.
It comes down to the planning. The data you have available shows you exactly what you need to do. Your models build on this information. As the process continues, you identify problem areas and tasks. For example, youll know when to invite contributions from electricians. Plus, you can tackle potential structural issues early in the process.
Structured analysis gives you control of the project from start to finish.
Benefit #5 Create Updateable Models
Structured analysis doesnt just take the clients present needs into account. It also considers future issues. It allows for the creation of models you can modify and update as time goes on.
This is particularly useful during the pre-construction stage. Your models may face last minute changes. An uncaught design flaw could cause issues, or the client may change their requirements.
Each demands modification of the existing model. Sometimes, you may need to add to your model based on the clients new requirements. Combine the structured analysis approach with the right building information modelling software. This helps in several ways.
For example, you can code new data sets into the model to reflect the changes. The building information modelling structure also allows you to share these changes with your team. Everybody can contribute to the ongoing maintenance and updating of the model during development. As a result, new client demands dont set the project back too far. Your model can adapt to them, in preparation for the construction phase.
As you can see, the processes behind structured analysis dont just apply to software development. You can adapt them to the models you build. In doing so, you will reap the benefits of using structured analysis.
These benefits include greater efficiency, which leads to faster project turnarounds. Youll spend less time and money on projects, allowing you to take more work on. Clients feel more involved in the process and feel happier with the results. You can also create plans for the work to come and incorporate all the relevant project data.
Also, structured analysis helps you understand the risks associated with your project. Applying the technique also results in the creation of more flexible, updateable models.
Think of your model as the development stage for a piece of software. Use it to iron out the bugs. You can then move onto construction.