Lesson 1 - Elective 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

Introduction to

Software
Development
Presented by S.A Dela Cruz
Introduction to Software
Development
Software development is the
process of creating computer
programs or applications that solve
specific problems or meet
particular needs. It encompasses
the entire process of conceiving,
designing, building, testing, and
maintaining software solutions. As
technology continues to evolve,
software development is integral to
nearly every aspect of modern life,
from mobile apps and web
applications to enterprise solutions.
Review of Software Design
Software design is the process of envisioning and defining software solutions that
meet specific functional and non-functional requirements. It is the bridge between
requirements analysis and coding, focusing on high-level structure and design
principles such as:

• Modularity: Breaking the software into manageable pieces, or modules, that


can be developed and maintained independently.
• Abstraction: Simplifying complex systems by focusing on high-level concepts
rather than the underlying details.
• Encapsulation: Grouping related data and operations into objects or modules
while hiding implementation details.
• Reusability: Designing software components so that they can be used across
different projects or parts of the same project.

Good software design ensures maintainability, scalability, and performance, leading


to a higher quality product.
Phases of Software Development
Life Cycle (SDLC)
Phases of Software Development
Life Cycle (SDLC)
The Software Development Life Cycle (SDLC) is a framework that outlines the stages
involved in software creation. These phases ensure that the software meets the
desired requirements and is delivered on time and within budget.
1. Requirement Analysis: Gathering requirements from stakeholders.
2. Design: Creating software architecture and design documents.
3. Implementation: Writing and compiling code.
4. Testing: Verifying that the software works as intended.
5. Deployment: Releasing the software to users.
6. Maintenance: Updating and fixing software post-deployment.
Phases of Software Development
Life Cycle (SDLC)
1. Requirement Analysis: Gathering requirements from
stakeholders.
1. Identify Stakeholders

2. Gather Requirements

3. Categorize Requirements

4. Prioritize Requirements

5. Document Requirements

6. Validate Requirements

7. Manage Requirements

8. Communicate
Phases of Software Development
Life Cycle (SDLC)
2. Design: Creating software architecture and design
documents.
1. Define Software Architecture

2. High-Level Architecture.

3. Architecture Diagrams.

4. Create Design Documents

5. Maintain and Update


Phases of Software Development
Life Cycle (SDLC)
3. Implementation: Writing and compiling code.
1. Prepare the Development Environment

2. Code Development

3. Compile and Build

4. Testing

5. Documentation and Review

6. Deployment Preparation

7. Ongoing Maintenance
Phases of Software Development
Life Cycle (SDLC)
4. Testing: Verifying that the software works as intended
1. Define Testing Strategy

2. Create Test Plans

3. Prepare Testing Environment

4. Execute Tests

5. Analyze Results

6. Perform Additional Testing

7. Review and Report

8. Finalize and Close Testing


Phases of Software Development
Life Cycle (SDLC)
5. Deployment: Releasing the software to users.
1. Prepare for Deployment
2. Deploy the software
3. Post-deployment activities
4. Ongoing Maintenance
5. Review and Improvement
6. Maintenance: Updating and fixing software post-deployment.
1. Monitor and Support
2. Issue Resolution
3. Updates and Enhancement
4. Backup and Recovery
5. Review and Improvement
6. Planning for Future Releases.
Software vs. System
SOFTWARE SYSTEM
Software: A collection of System: A complete,
programs, instructions, and functioning set of
data that tell a computer how interconnected components
to perform tasks. Software that work together to achieve
can be application-based (like a specific goal. In computing,
word processors or games) or a system includes both
system-based (like operating hardware and software. A
systems and utilities). computer system, for
instance, consists of the
operating system (software),
physical hardware, and
Software vs. System
Current Trends in Software
Development
The field of software development is
constantly evolving.
1. Cloud Computing: Cloud platforms (such
as AWS, Microsoft Azure, and Google
Cloud) enable scalable, on-demand
access to computing resources, making
it easier for businesses to deploy,
manage, and scale applications.
Example: Netflix uses AWS (Amazon Web
Services) to stream movies and TV shows to
millions of users worldwide. By leveraging
cloudinfrastructure, Netflix can easily scale
up or down depending on the demand,
ensuring seamless streamingwithout having
to maintain massive on-premise servers.
Current Trends in Software
Development
2. Artificial Intelligence (AI) and Machine
Learning (ML): More applications are
being built with AI and ML capabilities,
such as intelligent chatbots,
recommendation systems, and
predictive analytics.
Example: Spotify uses AI and ML
algorithms to create personalized playlist
like "Discover Weekly." These algorithms
analyze users' listening habits and
recommend songs based on patterns in the
data, improving user experience.
Current Trends in Software
Development
3. Low-Code/No-Code Development:
Platforms like Microsoft PowerApps
and OutSystems allow developers and
even non-programmers to create
applications with minimal hand-
coding, speeding up development
time.
Example: A small business owner
uses Wix (a no-code platform) to build a
website by dragging and dropping
elements like text boxes, images, and
buttons, without writing any code. This
allows them to create a professional
Current Trends in Software
Development
4. Cybersecurity: With the increasing
reliance on digital platforms, there is a
growing focus on building secure
applications that can prevent data
breaches, hacking, and other security
threats.
Example: Duo Security provides
two-factor authentication (2FA) solutions to
companies. When employees log into
sensitive company systems, they must
provide both a password and a verification
code sent to their phone, adding an layer of
security to prevent unauthorized access.
Activity 1: Design your Software
(Paper Prototype)
In a short bond paper (maximize the whole page) , create a prototype
for a small software project (e.g., a mobile app, website).
You will:
• Design the app's interface (on paper), drawing the layout of
screens (home screen, add task screen, etc.).
• Write what functions would be implemented in each phase of the
SDLC (e.g., adding tasks, marking tasks as complete).

Objective: This activity introduces the design and prototyping phase,


emphasizing how ideas evolve based on feedback.
Activity 1: Design your Software
(Paper Prototype)
Example:
Project: To-do list app.
Create a paper prototype for the app:
1. Sketch the interface: Draw the main screen with tasks listed, an
"Add Task" button, and checkboxes to mark tasks as complete.
2. Design the "Add Task" screen: Show input fields for task name, due
date, and priority level.

You might also like