System Lifecycle gives structure and allows a project manager to manage a project rather than reacting to problems as they arise
Waterfall Model Key Features:
Stages are arranged in order and completed one by one
Developers cannot proceed to the next stage until the previous stage has been completed
Each stage ends with a deliverablehandover document informing the next stage of development
Advantages of the Waterfall model:
Problems are quickly identified in the early stages and thoroughly investigated in the design phase
Customers understand what the final product will look like as the system is defined in the early stages
Thorough documentation is produced at each stage, allowing progress to be tracked easily
Staff changes are unlikely to impact the future of the project as documentation allows new staff to pick up the system
Disadvantages of the Waterfall model:
Customers often cannot define what they want or understand the capabilities of technology
It can be difficult to define what is required at the beginning of a project, leading to potential wasted development time
Difficult to identify problems that may occur due to work done in other areas of a system
Backtracking is required if there is a modification to the system or if a bug remains undiscovered in late stages of development
Agile focuses on developing working software rather than documentation
Agile Methodologies (Extreme Programming):
Focuses on communication between programmers/teams with clients/customers
Encourages straightforwardsolutions rather than complex ones
Encourages feedback and working in pairs
Scrum focuses on regular iterations to create functional prototypes quickly
Fixed length iterations called sprints
Several teams work on the same project simultaneously with each team focusing on a different piece of functionality
Regular meetings called scrums
Advantages of Agile:
Working software is produced at a much faster pace
Closer collaborations between stakeholders
Constant customer feedback ensures the product meets customer expectations
Changes can be made at any time
Makes integration of new technologies easy, especially on systems with a long development lifecycle
System can be used with some features missing
Disadvantages of Agile:
Relatively new way of working which may not fit into the experiences of customers
Documentation can be neglected
Tracking progress is more difficult as progression is not linear
Requires cooperation from the customer to provide feedback
Stakeholders are people or groups with an interest in the development of software, such as business employees, programmers, end users, and hardware suppliers
Users must not be confused with customers; they are the people who will use the software on a dailybasis
Programmers are the people developing the system and are invaluable to system analysts as they can spot subtle issues with a system
Project Managers are responsible for monitoring the progress of a project and ensuring it is completedon time
System Analysts must find exactly what a customer wants and work closely with a company to create specifications for a piece of software that developers must meet
Problem Definition is the process of identifying issues in a customer’s current system and finding solutions with a new project
Feasibility Study ensures that a project is completable and desirable for the developing company and customer to develop the software
Economic Feasibility: ensures the project can be completed within a set budget and allows for reasonable profits
Time Feasibility: examines if a project can be completed within the set time frame
Technical Feasibility: examines if the development company has the skills to develop the desired product
Political Feasibility: examines the impact on a company’s reputation if a piece of software is developed
Legal Feasibility: examines if a project complies with legislation and potential liability
Analysis, Requirements, and Designs start with the Fact Finding/Discovery Phase, aiming to find exactly what is required of a system and produce specifications for development
Methods include Observation, Questionnaires, Document Collection, and Interviews
Advantages of Fact Finding/Discovery Phase methods:
Observation: picks up parts of the system not immediatelyobvious to customers
Questionnaires: can get a largenumber of differentopinions
Document Collection: reliable and shows most of the data stored on the current system
Interviews: large amounts of information can be gathered quickly
Disadvantages of Fact Finding/Discovery Phase methods:
Observation: some people feel threatened when observed and behave differently
Questionnaires: not all employees will complete them, responses can vary widely
Document Collection: may contain sensitive information and give a limited view of the system
Interviews: time-consuming, interviewees may not answer truthfully or be intimidated
Testing involves giving software to end-users to identify bugs or needed improvements for the user’s experience
White Box Testing: tests the structure of the code
Black Box Testing: tests the program alongside the requirements
Alpha and Beta Testing: alpha builds are unstable, beta builds are close to the final product
End-User Testing: takes place before the customer purchases the system
Documentation includes User Documentation and Technical/Maintenance Documentation
User Documentation: targeted guides teaching users how to access different features of the software
Technical/Maintenance Documentation: outlines how a system was created and the inner workings of each section of code
Implementation is the process of installing a system at the client’s site
Direct Changeover: risky, involves swapping to the new system immediately
Phased Changeover: old and new system used simultaneously, introducing new features in steps
Pilot Changeover: small parts of a business use the system initially
Parallel Changeover: old and newsystem run side by side to minimize downtime