Systems Development Life Cycle (SDLC)

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Match the SDLC phase with its primary objective:

Planning = Define project scope, objectives, resources, and timelines. Design = Define solution system based on requirement and analysis decision. Implementation = Development, testing, and deployment of the software. Maintenance = System support to keep the system healthy.

Match each Git command with its function:

git branch feature-branch = Creates a new branch. git checkout feature-branch = Switches to an existing branch. git commit -m "message" = Records changes to the repository. git push origin main = Uploads local repository content to a remote repository.

Match roles within a software development team with their responsibilities:

Product Owner = Defines product vision, prioritizes features, and ensures alignment with business needs. Project Manager = Plans, executes, and monitors project progress, managing scope, timeline, and resources. Business Analyst = Gathers and analyzes business needs and translates them into functional requirements. Software Developer = Writes and maintains code to implement features and fix bugs.

Match each Software Development Life Cycle phases with its description:

<p>Planning = The initial phase where the project's objectives, scope, and feasibility are determined. Analysis = The phase in which business needs and requirements are understood and documented. Design = The phase where the solution is defined based on the requirements and analysis decisions. Implementation = The phase involving development, testing, and deployment of the software.</p> Signup and view all the answers

Match the branch type to their purpose in Git workflow:

<p>Master/Main = Holds the production-ready code. Develop = Integration branch for ongoing development and new features. Feature = Where new features are developed in isolation. Release = Used to prepare for a new production release.</p> Signup and view all the answers

Match the testing environments with their purpose:

<p>Development Environment = Where developers build the application and make code updates. Testing Environment = Used to identify and fix bugs before release. Staging Environment = An exact replica of production for final testing. Production Environment = The final environment where the software is live and accessible to users.</p> Signup and view all the answers

Match the story point estimates with their meaning:

<p>1 = Very small tasks 2 = Small tasks 3 = Medium tasks 5 = Hard tasks</p> Signup and view all the answers

Match the advantage and disadvantage of SDLC:

<p>Advantage = Goals and Standards are clearly defined Disadvantage = Some methods are not flexible</p> Signup and view all the answers

Match the following concepts with their corresponding descriptions:

<p>Software Development = A systematic process of designing, coding, testing, and deploying software applications. Application Development = Often used to refer to the activity of computer programming. Software Developer = Build products from scratch or modify existing software Quality Assurance Tester = To evaluate the feature of a software</p> Signup and view all the answers

Match the following SDLC methodologies

<p>Agile Methodology = An iterative and incremental approach software Iterative Approach = promoting incremental work cycles Kanban Methodology = Employ a visual board to track tasks and workflow Waterfall Methodology = Where each phase completed before moving on to the next</p> Signup and view all the answers

Match the SDLC Steps with phase description:

<p>Planning = work on a problem you are passionate about solving Assess feasibility = critical aspects of a project to determine completion probability. Analysis = Understand business needs and processing needs Implementation = Development &amp; Testing, Deployment</p> Signup and view all the answers

Match the software developers role with its definition

<p>Application Developer = Develop apps for mobile devices Web Developer = create and maintain websites System Developer = design and build operating systems Front End Developer = designing the user interface</p> Signup and view all the answers

Match the git commands with its function

<p>git push origin main = Upload local repo and content to remote repo git branch -d feature-branch = Deletes feature-branch git add <filename> = Stages a specific file for commit git fetch = Downloads changes from remote, without merging</p> Signup and view all the answers

Match the Branch Types with its Purpose in Git workflow:

<p>Master/main = The main production-ready branch Develop = Integration branch for ongoing development Feature/abc = New features under development Release/x.x = Prepares code for production release</p> Signup and view all the answers

Match the description with following Quality Testing type:

<p>Performance Testing = checks the speed, stability, and scalabilty of the app Security Testing = evaluates the apps ability to prevent risks Usability Testing = evaluates ease of use Productivity = Ability to produce at scale.</p> Signup and view all the answers

Match the Software Development method with its description:

<p>Software Development = encompasses a systematic process of designing Software Testing = to evaluating a system or its components to find whether it satisfies specified requirements Agile Testing = champions adapting to change through ongoing feedback from customers Local Development Environment = workspace on a developer's computer</p> Signup and view all the answers

Match the Git commands with its description

<p>git diff = Shows file differences not yet staged git fetch = Downloads changes from remote, without merging Software Testing can be defined as: = analyzing a software item to detect the differences between existing and required conditions Software Testing = process of evaluating a system or its components</p> Signup and view all the answers

Match the SDLC process with its description:

<p>Planning = Defining project scope, objectives, resources, and timelines Product Owner = Achieve project delivery deadlines within scope and budget Achieve project delivery = Identifies and efficiently resolve issues Creation and Tracking = tracking of project plans</p> Signup and view all the answers

Match the SDLC model with its function:

<p>Facilitates Development = Well-structured environment developor productivity Ensures Quality Assurance = Test environments replicate production settings Support Development Process = Environments play a critical role in streamlining the deployment process Branches = Allows developers to work on changes without affecting the main codebase</p> Signup and view all the answers

Match each of the following:

<p>Production = Is the culmination of the development lifecycle Cloud-Based Development Environment = Allows for scalability, collaboration Performance Optimization = System runs efficiently and scales well Beta Testing = identify user feedback an potential software defects</p> Signup and view all the answers

Flashcards

Software Development

A systematic process for designing, coding, testing, and deploying software applications.

SDLC (Software Development Life Cycle)

A conceptual model outlining the stages involved in developing or altering a system.

Planning Phase (SDLC)

Defines the problem, scope, and feasibility of existing systems or projects.

Assess Feasibility

To analyze critical aspects of a project to determine the probability of successful completion.

Signup and view all the flashcards

Analysis Phase (SDLC)

Understanding business and processing needs for software development.

Signup and view all the flashcards

Design Phase (SDLC)

Defining the solution system based on requirements and analysis decisions.

Signup and view all the flashcards

Implementation phase

The action of building, testing, and deploying within the SDLC process.

Signup and view all the flashcards

Waterfall Methodology

A step-by-step design process, similar to a cascading flow.

Signup and view all the flashcards

Agile Methodology

An iterative and incremental approach with small, functional segments.

Signup and view all the flashcards

Iterations or Sprints

Work cycles in Agile Methodology that help deliver functional software.

Signup and view all the flashcards

Agile's approach

It champions change through customer feedback.

Signup and view all the flashcards

User Stories

Short, simple descriptions of a feature from the end user’s view.

Signup and view all the flashcards

Epics

A collection of issues that needs working on.

Signup and view all the flashcards

Kanban

A Japanese term meaning 'card you can see'.

Signup and view all the flashcards

T-shirt sizing

A project estimation technique to estimate the effort required to complete tasks.

Signup and view all the flashcards

Branching

A branch is an independent line of development for changes.

Signup and view all the flashcards

Master/Main Branch

The main, production-ready codebase.

Signup and view all the flashcards

Develop Branch

A branch for integrating new features and ongoing development.

Signup and view all the flashcards

Release Branch

Branch for preparing code for a new production release.

Signup and view all the flashcards

Hotfix Branch

Fixed critical bugs in production

Signup and view all the flashcards

Study Notes

Systems Development Life Cycle (SDLC)

  • SDLC is a conceptual model outlining the stages of developing or altering a system.
  • It defines the roles and responsibilities of team members at each phase.
  • SDLC offers a clear project view and well-defined goals, allowing developers to backtrack if needed.
  • Unexpected issues may complicate SDLC, and some methods lack flexibility.
  • SDLC is also known as "Software" or "Application" Development Life Cycle.

SDLC Phases

  • Planning defines the problem and scope and assesses project feasibility.
  • Analysis involves understanding business and processing needs.
  • Design defines the solution system based on requirements and analysis.
  • Implementation encompasses development, testing, and deployment.
  • Maintenance includes system support and enhancements.

PayPal's Origins

  • Originally named Confinity, it focused on cryptography and PalmPilot payments.
  • The focus shifted to digital wallets, leading to funding and email requests.
  • Confinity merged with Elon Musk's X.com in 2000.
  • eBay acquired PayPal in 2002 for $1.5 billion.
  • In 2015, eBay spun off PayPal as an independent company.

Software Development Overview

  • Software Development is a systematic process that includes designing, coding, testing, and deploying to meet user needs.
  • This process integrates methodologies to create functional and maintainable code.
  • Software Development is important because it enhances innovation, productivity, security, and problem-solving across industries.
  • Software development aims to produce efficient, reliable, and user-friendly applications.

SDLC - Planning Phase

  • Planning defines the project scope, objectives, resources, and timelines.
  • This phase establishes a framework for project execution and stakeholder alignment.
  • Key roles include Product Owner, Project Manager, Business Analyst, and Chief Technology Officer.
  • Responsibilities include meeting deadlines within budget, managing out-of-scope activities, and building stakeholder relationships.
  • Project plans are created and tracked, plus feedback is collected for continuous improvement.
  • Input is added into project management tools and templates.
  • Client-facing projects can be managed.

SDLC Roles and Responsibilities

  • Product Owner: Focuses on product vision and backlog and ensures alignment with business needs.
  • Project Manager: Focuses on project execution, delivery, and schedule and manages scope, timeline, and resources.
  • Business Analyst: Focuses on business requirements and process analysis and translates them into functional requirements.
  • Key skills for the Product Owner include communication, decision-making, and stakeholder/backlog management.
  • Key skills for the Project Manager are time management, leadership, communication, and resource allocation.
  • Key skills for the Business Analyst are analytical thinking, problem-solving, documentation, and process modeling.

Application Development and Software Developers

  • Application Development refers to computer programming, which involves writing and maintaining source code.
  • Software developers research, design, build, test, and implement software.
  • Software developers build products from scratch or modify existing software using creative thinking and problem-solving skills.
  • Types of developers include Application, Web, System, and Game Developers.

Qualities of a Good Software Developer

  • Good developers learn new languages, rewrite old code, participate in challenges, and attend conferences.

Software Testing Explained

  • Software Testing is evaluating whether a system satisfies specified requirements.
  • It involves executing a system to identify gaps, errors, or missing requirements.
  • Software testing analyzes software to detect differences between existing and required conditions, as well as evaluate features.

Qualities of a good software tester

  • Good software testers have communication, passion, technical & analytical skills, attitude and productivity

Software Roles

  • Soft Skills include Manager and Business Analyst.
  • Hard Skills include Developer and specialized positions like Performance, Security, Usability, and Test Automation.
  • Other roles include Project Manager, Product Owner, DevOps Engineer, and UI/UX Developer.

Software Methodologies

  • Software Methodologies are structured processes guiding software development.
  • SDLC Methodologies include Agile, which uses iterations or sprints.
  • The Agile methodology promotes work cycles as iterations, thus delivering functional software during the development process.
  • Each cycle results in a functional software piece that can be reviewed, tested, and improved.
  • Agile promotes collaboration, responds to change, and delivers frequent software updates.
  • The Agile approach adapts to change through customer feedback.

Agile Development: Scrum Framework

  • In Scrum, the Product Owner maintains the vision, the Scrum Master facilitates the process, and the Development Team delivers product increments.
  • Epics are collections of tasks or stories.
  • Stories are descriptions of features from the user’s perspective.
  • A Sprint is a time-boxed period to complete epics and stories as a logical unit.

Sprints and Product Backlogs

  • Sprints organize work into segments.
  • The Product Backlog is a prioritized list that guides the team’s efforts.
  • Sprints usually last 1-4 weeks.
  • Sprint is a time-limited phase that contributes to completing the bigger Epic.
  • T-shirt sizing is a project estimation technique to estimate the effort needed.

Sprint Planning and Story Points

  • In Agile, Sprint Planning involves the Scrum team defining the work for the upcoming sprint.
  • The team selects items from the Product Backlog for the Sprint Backlog.
  • Story points measure of the effort needed to complete a task.

Stand-ups, Sprint Reviews, and Retrospectives

  • Daily Stand-up meetings foster alignment and transparency among team members.
  • Sprint Reviews ensures reflection and adjustment based on feedback.
  • Sprint Review reviews the completed work.
  • Sprint Retrospective reflects on areas for improvement.

User Stories

  • Focus on the end user written from their perspective of their persona.
  • User Story: Filter Products by Price Range example includes a description and acceptance criteria.
  • Kanban uses a visual board to track tasks and workflow to enhance transparency.
  • Kanban supports continuous delivery and promotes a steady flow of work to minimize bottlenecks.

Software Development Methodologies

  • Software development uses a phased process in which each phase is completed before moving to the next phase
  • Each phase of the Waterfall methodology impacts the next. The stages include requirements gathering and design specifications.
  • Other stages include implementation of code, verification through testing and maintenance of the software post-deployment.

SDLC Advantages and Disadvantages

  • The Waterfall method provides clear guidelines and timelines but has inflexibility.
  • Environments in software development simulate stages for progression of apps.
  • Development, Beta, and Production Environment are some environment examples.

Software Development Environments

  • Development Environment involves code updates and commits.
  • Testing Environment involves identifying and fixing bugs.
  • Staging Environment involves an exact replica of production.
  • Production Environment involves the code being pushed to live.
  • The development environment is used to build the application and is facilitated by a Git repository.

Local vs Cloud Development Environments

  • Local Development Environment is a workspace on a developer's computer where applications can be tested before code changes.
  • Examples of Local Development Environment include Visual Studio Code, Eclipse, and Netbeans
  • Cloud-Based Development Environment is hosted in the cloud and allows for scalability and collaboration.
  • Examples of Cloud-Based Development Environment include Github Codespaces, Google Cloud Shell, and Cloud9 (AWS).

Git

  • Git stores your project and saves your code versions for you to access when needed.
  • Azure Repos, AWS CodeCommit, Git Hub, Bit Bucket and Git Lab, are all examples for where you can run Git
  • Basic Git commands are used for branching, staging, committing, pushing/pulling and inspection
  • Git Branch commands include: creates, switch, delete a feature branch
  • Git Staging commands include: Stages a specific file or Stages all modified and new files
  • Git Committing Changes includes: Commits staged files with a message
  • Commits are pushed or pulled to other developers on your team
  • Git status tracks the developers changes

Software Development Environment importance in SDLC

  • Using a SDLC environment facilitates development, ensures quality assurance and supports deployment

Branch in Software Development

  • A branch is where developers work on changes without affecting the main codebase.
  • Branches help isolate development, test before production, have team collaboration and parallel development

Common Branch Types

  • In Git Master is the production-ready branch, Develop is for ongoing development, while Feature is for new features
  • The Release branch prepares code for production, and the Hotfix branch assists with urgent fixes for production

GIT Branching Strategy

  • The Main Branch (Master) holds production-ready code, where the tags indicate releases
  • All releases are finalized and merged into Master after tested
  • Develop Branch is the integration branch and used to prepare release branches
  • Feature Branches get merged on the Develop Branch
  • The Hotfix Branch starts from the master branch, gets the fix applied and merged back as well for deployment.

Check in new/existing Branch

  • git checkout -b creates and/or switches to a new branch
  • From there you write your code and # Work on code...
  • git checkout develop goes back to dev branch
  • Finally, # To merge changes, execute git merge feature/login-system

Github work flow

  • Start with master or create/checkout a new branch
  • Make code changes and commit
  • Create pull request for approval

Beta Environment

  • The Beta environment involves external testing to find issues not found in previous phases.
  • The goal is to gauge user experience, identify defects, and validate performance.
  • User feedback helps developers identify usability issues and adjust before the final launch.

Production Environment

  • The Production environment is where the software becomes fully operational for users.
  • It marks the end of the development lifecycle as tested and ready for operations.

Live Environment Characteristics

  • These include stability and security, which are factors for Performance Optimization, all ensure long-term user satisfaction.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Introduction to System Analysis & Design
21 questions
SDLC Phases and System Design
48 questions
System Design Life Cycle (SDLC)
10 questions

System Design Life Cycle (SDLC)

VerifiablePanther3141 avatar
VerifiablePanther3141
Use Quizgecko on...
Browser
Browser