[go: up one dir, main page]

0% found this document useful (0 votes)
47 views8 pages

C206 Notes

The document outlines the Software Development Life Cycle (SDLC), detailing its seven phases from planning to maintenance, and emphasizes the importance of sustainable software engineering principles. It also discusses various software development methodologies, particularly Agile, and the Scrum framework, including roles, artifacts, and events. Additionally, it covers stakeholder considerations, requirements types, user stories, use case diagrams, and software testing goals and approaches.

Uploaded by

mansarai67
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views8 pages

C206 Notes

The document outlines the Software Development Life Cycle (SDLC), detailing its seven phases from planning to maintenance, and emphasizes the importance of sustainable software engineering principles. It also discusses various software development methodologies, particularly Agile, and the Scrum framework, including roles, artifacts, and events. Additionally, it covers stakeholder considerations, requirements types, user stories, use case diagrams, and software testing goals and approaches.

Uploaded by

mansarai67
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

SDLC (Software Development Life Cycle)

Definition: A structured process for planning, creating, testing, and


deploying software.
7 Phases of SDLC:
Phase Key Activities People Artifacts
Involved Produced

1. Project initiation, Product Owner, Project Plan


Planning idea generation, System User,
setting schedule, Project Manager
estimating budget

2. Analysis Stakeholder Product Owner, Use Cases, User


identification, System User, Stories, Functional
requirement System Analyst, Spec Document
gathering, defining Project Manager
scope

3. Design UI/UX, data design, System Analyst, ERD, UI


system Architect, DB Prototypes,
architecture, Admin, System
business rules Software Architecture
Engineer, Diagram, Class &
Designer Sequence
Diagrams

4. Frontend, backend, Developers, Source Code,


Developm middleware UI/UX Designers Configuration Files
ent implementation

5. Testing Unit, Integration, Developers, QA Test Plan, Test


System, UAT, Engineers, Cases, Test
Security, Users Specification
Performance Document
testing

6. Staged release, System Admin, Training Plans,


Deployme data migration, Support User Manual,
nt training Engineers Installer

7. Bug fixes, System Analyst, Change Request


Maintenan enhancements, Support Docs, Maintenance
ce patching, upgrades Engineers Logs, Software
Patches

Six principles of Sustainable Software Engineering


 Carbon Efficiency: Build applications that are carbon efficient.
 Electricity Efficiency: Build applications that are energy efficient.
 Carbon Awareness: Consume electricity with the lowest carbon
intensity.
 Hardware Efficiency: Build applications that are hardware efficient.
 Measurement: Improve sustainability through measurement.
 Climate Commitments: Defining the exact mechanism of carbon
reduction.

📌 SOFTWARE DEVELOPMENT METHODOLOGIES (SDM)


Methodol Characteristi Pros Cons Best For
ogy cs

Waterfall Sequential, Easy to Inflexible, Small, well-


phase-driven manage, low defined
well docu, customer projects
involvement,
not for
complex
stuff

Spiral Risk-driven, Great risk Expensive, High-risk,


iterative, risk managemen complex, complex
analysis at t, flexible time- systems
each phase consuming,
needs
experienced
team

RAD Fast, Rapid Not for Time-


prototyping, feedback, complex critical,
involves users adaptable to systems, changing
closely changes needs skilled requirement
devs s

Agile Iterative, High Needs Projects


flexible, user- adaptability, skilled team, with
centric, involves hard for changing
incremental customers large needs
projects

DevOps CI/CD, Fast Needs Any org


collaboration delivery, cultural/tool wanting
between dev improve investment efficiency
and operation reliability
team
📌 AGILE SOFTWARE DEVELOPMENT
4 Core Values of Agile Manifesto:
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan

12 Agile Principles:
1. Customer satisfaction through early and continuous delivery
2. Welcome changing requirements—even late in development
3. Deliver working software frequently
4. Business people and developers work together daily
5. Build projects around motivated individuals
6. Face-to-face conversation is the most effective communication
7. Working software is the primary measure of progress
8. Promote sustainable development
9. Continuous attention to technical excellence
10. Simplicity—the art of maximizing the amount of work not done
—is essential
11. Best architectures emerge from self-organizing teams
12. Reflect and adapt regularly
📌 SCRUM FRAMEWORK
👤 Scrum Roles
Role Responsibilities

Product Owner Defines product vision, prioritizes backlog,


accepts/rejects work

Scrum Master Facilitates meetings, removes blockers, enforces


Scrum practices

Development Self-organizing, delivers sprint goal, estimates tasks


Team

🛠 Scrum Artifacts
Artifact Description

Product Master list of features, prioritized by Product Owner


Backlog

Sprint Tasks chosen for the sprint; includes Burn Down Chart
Backlog to track progress

Product Completed, tested, and potentially shippable software


Increment at the end of a sprint

Scrum Events (Activities)


Activity Purpose Frequency

Backlog Grooming Refine, prioritize, and estimate Ongoing


user stories

Sprint Planning Define sprint goal and tasks Start of each


sprint

Sprint Execution & Develop increment, resolve Daily


Daily Scrum blockers, daily 15-min stand-up

Sprint Review Demo the work, gather feedback End of sprint

Sprint Reflect on sprint, identify End of sprint


Retrospective improvements

📌 STAKEHOLDERS
Stakeholder Groups:
Group Examples

Internal/External Admins, staff, customers, suppliers


System Users

Development & Developers, Analysts, Project Managers, QA,


Support Team Documentation Writers

Authorities Shareholders, Regulators, Legal, Compliance


Officers, Executives

If the stakeholder includes the general public, you must consider:


 Accessibility
 Inclusivity (e.g., multilingual support)
 Privacy compliance (e.g., PDPA)
 Simplicity of UI
📌 REQUIREMENTS
✅ Functional Requirements:
 Define what the system does
 E.g., "User can register for an account"
⚙️Non-Functional Requirements:
 Define how the system behaves (performance, security, etc.)
 E.g., "System must respond within 2 seconds"
Subtypes include:
 Performance
 Security
 Usability
 Scalability
 Sustainability (e.g., CPU efficiency, hardware lifecycle)
📌 USER STORIES
Definition: Short descriptions from the user’s perspective to define a
feature.
INVEST Model:
 Independent
 Negotiable
 Valuable
 Estimable
 Small
 Testable
📌 USE CASE DIAGRAMS
Purpose: Shows interactions between users (actors) and the system (use
cases)
Components:
Component Description

Actor Person/system interacting with system


(Primary/Secondary)

Use Case Function that yields a result (verb + noun e.g.,


"Withdraw Cash")

System Defines system scope


Boundary

Associations Lines showing interaction between actor and use case

<<include>> Base use case must include another use case

<<extend>> Optional/conditional use case that adds to a base

📌 SOFTWARE TESTING
Goals of Testing:
 Ensure functional requirements met
 Ensure performance, usability, and security
🧪 Testing Approaches:
Approa Knowledge Performed
ch Required By
White- Internal knowledge Developers
box

Black- No internal Testers/


box knowledge Users

Gray- Partial knowledge Dev +


box testers

🌍 Test Environments:
Environment Purpose

Dev Environment Individual modules tested by


developers

System Integration Integrated components tested as a


Testing system

UAT/Staging End-user tests full business flow before


release

🧩 Functional Testing Levels:


1. Unit Testing – smallest parts
2. Integration Testing – interfaces
3. System Testing – whole system
4. User Acceptance Testing (UAT) – business goals
⚙️Non-Functional Testing Types:
Type Purpose

Performan Speed under normal


ce conditions

Load Behavior under peak load

Stress System stability under


overload

Security Identifying vulnerabilities

Usability How easy is it to use

📝 Test Artifacts:
Artifact Purpose

Test Plan Scope and schedule of testing

Test Details what to test (derived from


Specifications requirements)

Test Cases Detailed input/output actions


Test Scripts Manual/automated steps

Test Data Input data (valid, invalid, boundary)

You might also like