【Lesson 1】Foundation of Systems Development
What is Information System?
An information system is a combination of hardware, software, data, people, and procedures that work together to process, store, and distribute information to support an organization’s operations, decision making, and strategic goals.
Main Components
- Hardware: This includes all the physical components of the system, such as the computer, servers, storage devices, network devices, and other peripheral devices.
- Software: This includes all the programs and applications that are used to process and manage data, including operating systems, database management systems, word processing software, and other productivity tools.
- Data: This refers to the information that is processed and stored by the system. It can be in various forms, such as text, images, audio, and video.
- Procedures: These are the rules and processes that are used to govern the operation of the information system. They include policies, protocols, and guidelines for data security, data management, and system maintenance.
- People: This refers to the users of the system, including IT professionals, managers, and end-users. They are responsible for using the system, managing the data, and ensuring the system is functioning properly.
All these components work together to create a functional information system that can be used to process and manage data efficiently and effectively.
What is SDLC (System Development Life Cycle)?
The System Development Life Cycle (SDLC) is a process used by software development teams to design, develop, test, and deploy high-quality software systems. SDLC is a series of phases that software development teams follow to create software applications that meet the needs of customers and users.
The SDLC process typically includes the following stages:
- Planning: In this stage, the project goals and objectives are defined, and a feasibility study is conducted to determine whether the project is worth pursuing.
- Requirements gathering and analysis: In this stage, the requirements for the software system are gathered from stakeholders, analyzed, and documented.
- Design: In this stage, the software architecture and technical specifications are developed, and a detailed design of the software system is created.
- Implementation: In this stage, the software is developed, coded, and tested.
- Testing: In this stage, the software is tested to ensure that it meets the requirements and specifications, and any issues or defects are identified and fixed.
- Deployment: In this stage, the software is released and deployed to the production environment.
- Maintenance: In this stage, the software is monitored and updated as needed to ensure that it continues to meet the needs of users and customers.
10 Most Popular and Commonly used SDLC Mehodologies
- Waterfall model
- Agile methodology
- Scrum
- Kanban
- Spiral model
- Rapid application development (RAD)
- DevOps
- Lean software development
- Feature-driven development (FDD)
- Extreme programming (XP)
Waterfall model
The Waterfall model is a software development methodology that follows a sequential and linear approach. It consists of a series of phases, each of which must be completed before moving on to the next.
The phases are typically:
- Requirements gathering and analysis
- Design
- Implementation
- Testing
- Deployment
- Maintenance
Pros
- It is simple and easy to understand.
- Each stage is completed before moving on to the next, which can help with project management and scheduling.
- Well-defined stages and deliverables can help with documentation and regulatory compliance.
Cons
- It is less flexible and adaptable to changing requirements compared to other SDLC methodologies.
- Testing occurs only at the end of the development cycle, which can result in expensive and time-consuming rework if defects are discovered late.
- The model does not account for iterative feedback or collaboration from stakeholders, which can lead to a product that does not meet the user’s needs.
Differencies Comparing to others
Compared to other SDLC methodologies, the waterfall model is less iterative and less flexible. Agile methodologies, for example, emphasize iterative development, collaboration with stakeholders, and the ability to quickly adapt to changing requirements. The waterfall model is more appropriate for projects where the requirements are well-defined and unlikely to change significantly during development. It is also commonly used for projects where the software needs to comply with strict regulatory or quality requirements.
Agile methodology
Agile methodology is an approach to project management that focuses on flexibility and collaboration between team members. Instead of following a strict linear process like the Waterfall model, Agile projects are broken down into small phases called sprints. Each sprint involves a cross-functional team of developers, designers, and stakeholders working together to complete a specific set of tasks.
One of the key advantages of Agile methodology is that it allows for overlap between phases. This means that team members can work on different parts of the project at the same time, instead of waiting for each phase to be completed before moving on to the next one. Agile also emphasizes regular communication and collaboration between team members, as well as adapting to changes in requirements and priorities throughout the project.
Scrum
The main difference between Scrum and Waterfall methodologies is their approach to project management. Waterfall is a linear, sequential approach to software development where each phase of the project is completed before moving onto the next one. In contrast, Scrum is an Agile methodology that emphasizes flexibility, collaboration, and iterative development.
The key difference between Scrum and other Agile methodologies is that Scrum is specifically designed for managing complex projects with rapidly changing requirements. Scrum accomplishes this by breaking the project into smaller, more manageable pieces and delivering working software in short iterations. Scrum also emphasizes frequent communication and collaboration between team members, which helps to ensure that everyone is on the same page and that the project stays on track.
New Words (Phrases)
Feasibility Study
A feasibility study is a preliminary analysis conducted to assess the practicality and viability of a proposed project or initiative, taking into account various factors such as technical, financial, operational, legal, and regulatory considerations.
Stakeholders
Stakeholders are individuals, groups, or organizations that have a vested interest or concern in a particular project, business, or organization.
linear approach
A linear approach, also known as a sequential approach, is a method of working in which tasks or activities are completed in a specific order, one after the other, with the completion of each task or phase dependent on the successful completion of the previous one.