Software Developmet - Notes
Software Developmet - Notes
Requirements Gathering:
● Understanding and documenting the needs and expectations of
stakeholders.
● Defining the scope, objectives, and constraints of the software project.
Design:
● Creating the software architecture and high-level system design.
● Planning the user interface and defining data structures.
Implementation:
● Writing code based on the design specifications.
● Using programming languages, development frameworks, and libraries.
Testing:
● Conducting various testing types, including unit, integration, system, and
user acceptance testing.
● Identifying and fixing defects and issues.
Deployment:
● Deploying the software to production environments.
● Ensuring proper installation and configuration.
Maintenance and Support:
● Ongoing activities to keep the software operational.
● Addressing bug fixes, updates, and enhancements.
Waterfall Model:
● Linear and sequential approach.
● Progresses through stages one after the other.
● Well-suited for projects with clear, stable requirements.
Agile Model:
● Iterative and incremental development.
● Emphasizes collaboration, adaptability, and customer feedback.
● Agile frameworks include Scrum and Kanban.
DevOps:
● Combines development and operations to streamline the software delivery
process.
● Focuses on automation, continuous integration, and continuous
deployment.
Lean Software Development:
● Minimizes waste and focuses on delivering value to the customer.
● Emphasizes efficiency, reducing unnecessary features or processes.
Modularity:
● Breaking down software into smaller, manageable components or
modules.
● Enhances code reusability and maintainability.
Testing and Quality Assurance:
● Rigorous testing to identify and rectify defects.
● Ensures software reliability and performance.
Documentation:
● Comprehensive documentation of code, design, and user manuals.
● Facilitates understanding and future maintenance.
Version Control:
● Using version control systems (e.g., Git) to track changes and collaborate
efficiently.
Security:
● Incorporating security practices to protect against vulnerabilities and
cyber threats.
User-Centric Design:
● Prioritizing the user experience and usability.
● Involving user feedback throughout the development process.
Changing Requirements:
● Adapting to evolving user needs and business objectives.
Project Management:
● Ensuring on-time delivery, budget management, and resource allocation.
Technical Debt:
● Accrued inefficiencies and shortcuts that may hinder future development.
Scalability:
● Designing software to handle increased loads and user demands.
Security:
● Identifying and mitigating vulnerabilities and ensuring data protection.