System Development
Circle diagram representing the four phases of a traditional system development life cycle including the requirements analysis phase in the upper left wedge, the design phase in the upper right wedge, the implementation phase in the lower right wedge, and the testing phase in the lower left wedge.
Requirement Analysis
Requirements analysis requires significant input from stakeholders, such as potential users, as well as those with other ties, such as legal or financial interests.
Requirements analysis is a critical phase in the systems engineering and software development process.
It involves the determination and documentation of the needs and expectations of stakeholders for a new or altered product. This process is complex and multifaceted, often requiring input from a diverse group of stakeholders, each with their own unique perspective and interests. The requirements analysis process consists of three steps:
Compiling and analyzing the needs of the system use Negotiating with project stakeholders on trade-offs between wants, needs, costs, and feasibility Developing a set of requirements identifying the necessary features and services of the completed system The system requirement specification (SRS) is a written agreement between all parties that records the system requirements and guides system development.
The SRS also helps resolve disputes that arise during development.
Implementation and Integration
The system is built during the Implementation Phase, including such things as developing programs and databases and creating data files.
System Maintenance
During system maintenance, the system is monitored, evaluated, and modified as needed.
System maintenance is a continuous phase that covers a wide variety of activities, including troubleshooting application errors and incompatibilities, updating documentation, and providing end-user support.
There are four primary categories of software maintenance: corrective, adaptive, perfective, and preventive.
The goal of corrective maintenance is to remove errors to ensure functionality of the system. Adaptive maintenance is performed when organizational changes affect system requirements, such as changes in the organizational procedures, forms, or system controls and security needs Perfective maintenance is performed when new components are introduced, or existing components are improved, to enhance overall system performance Preventive maintenance refers to changes made to increase the life span of systems and could include restructuring, optimizing code, or updating documentation that impacts the scalability, stability, and maintainability of the system
Quality Control & Quality Assurance
Quality Control and Documentation: Quality control extends beyond product standards to include the meticulous recording of each step in the development process. Importance of Each Step Documentation: Documenting every stage of development ensures traceability, accountability, and process consistency. Future Reference and Continuity: Comprehensive documentation serves as a vital historical record for future reference, aiding in project continuity and knowledge preservation. Consequences of Poor Documentation: Inadequate documentation can lead to confusion, non-compliance with regulations, and repeated errors due to a lack of historical project insight.
Documentation
A system is not effective unless people can learn to use it and maintain it properly. Documentation is an important part of a system. The production of documentation is a component of the system development process.
Software Code
A major part of software development system documentation is software code. The code needs to be versioned and presented in a readable format.
System Engineering Methodologies
Waterfall Method
The Waterfall Method is a sequential project management model, and each step in this method can be described as follows:
Requirements: Define and document the project objectives, end-user expectations, and system functionality needed to meet those goals. Analysis: Examine the requirements to understand their implications, feasibility, and to clarify any ambiguities before proceeding to design. Design: Develop a plan or blueprint for the system that details specifications, architecture, and interfaces between system components. Implementation: Code and assemble the system components based on the design specifications, creating the actual software or system. Testing: Systematically verify that the implementation matches the design and requirements, and that it performs as expected, identifying and fixing defects. Agile Methodologies
Agile Methods are system development methodologies that propose incremental implementations, respond to rapidly changing requirements, and reduce the emphasis on rigorous requirements.
Scrum and extreme programming are both examples of agile methodologies.
Scrum is a hands-on system consisting of simple steps:
The system owner makes a prioritized wish list. The scrum team selects an item toward the top of the wish list and plans the implementation during an event called "sprint." The team completes the list of objectives while assessing progress in daily meetings called scrums. The sprint ends with the system ready to be released. A new sprint starts, using another item on the wish list. This process continues until the prioritized wish list is clear. Agile development is quick, increases customer satisfaction, values employees, and reduces rework.