0% found this document useful (0 votes)
9 views

SOEN4305 - Software Engineering-Part 2

Uploaded by

nurasadiq14
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

SOEN4305 - Software Engineering-Part 2

Uploaded by

nurasadiq14
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

SOEN4305 - Software

Engineering (400L FS)


DR. O. ELIJAH

SOEN4305 2024 – DR. O.ELIJAH


Part 2
SOFTWARE DEVELOPMENT METHODOLOGIES

SOEN4305 2024 – DR. O. ELIJAH


Outline
Introduction to software Engineering
Software development process
Basic Steps in software development
 Home work
 Attendance

SOEN4305 2024 – DR. O. ELIJAH


Python Setup and tutorials
 Join the youtube link for Python tutorials
https://www.youtube.com/watch?v=RrRBeYZeP_o&t=219s

SOEN4305 2024 – DR. O. ELIJAH


Introduction
What is software Engineering?
Software Engineering is an engineering discipline that involves all
aspects of developing and maintaining a software product.

SOEN4305 2024 – DR. O. ELIJAH


Introduction
What are the four P’s that constitute software engineering?

1. People 2. Product

3. Project 4. Process

SOEN4305 2024 – DR. O. ELIJAH


Introduction
What are the four P’s that constitute software engineering?
1. People 2. Product

• Business Management (within software • Project documentation


house) • Code
• Project Management • Test documents
• Development Team • Customer documents
• Customers • Productivity measurements
• End Users

SOEN4305 2024 – DR. O. ELIJAH


Introduction
What are the four P’s that constitute software engineering?
3. Project 4. Process

• Planning A software process is a framework


• Requirements analysis for carrying out the activities of a
• Design project in an organized and
• Implementation disciplined manner
• Testing
• Maintenance

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
What is software development methodology?
Software development methodologies are systematic approaches
used by software development teams to plan, build, test, and
deliver software products efficiently and effectively.

Why is software development methodology important?


 Helps to reduce or eliminate waste of time and resources
 Beneficial to development teams and customers
 Helps to provide a more accurate delivery timeline

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Software processes are also called software models

• Linear or waterfall Model


• Agile model
• Scrum
• Kanban
• Lean Software Development
• Spiral model
• Rapid Application Development (RAD):
• V-model
• Big Bang Model

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Linear or waterfall model •Sequential: The linear model, often referred to as the
Waterfall model, follows a strict sequence of phases:
requirements, design, implementation, testing, deployment,
and maintenance.

•Rigidity: It is less adaptable to changing requirements, as


changes late in the process can be costly and time-consuming.

•Best Suited For: Well-understood projects with stable


requirements where changes are unlikely.

Example of a Linear model

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Spiral model •The Spiral Model combines elements of both iterative and
incremental development with risk management.
•It involves multiple cycles of planning, risk assessment,
engineering, and evaluation.
•It is particularly suited for projects with high levels of
uncertainty and risk.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Agile model •Agile is a flexible and iterative approach that emphasizes
collaboration, customer feedback, and adaptability.
•It breaks development into small increments or iterations,
typically lasting 2-4 weeks.
•Scrum, Kanban, and Extreme Programming (XP) are
popular Agile frameworks.
•Agile accommodates changing requirements and
encourages continuous improvement.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Agile model Scrum:
Scrum is an Agile framework that organizes work into time-
boxed iterations called sprints.
It includes roles like Scrum Master, Product Owner, and
Development Team.
Daily stand-up meetings (Daily Scrum) are used to coordinate
work and address impediments.
Scrum emphasizes transparency, inspection, and adaptation.

Kanban:
Kanban is an Agile methodology that visualizes work as a flow
on a Kanban board.
Work items move through different stages, from the "to-do"
column to the "done" column.
It aims to optimize workflow, limit work in progress (WIP), and
improve efficiency.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
RAD

•RAD is an incremental software development


methodology that prioritizes rapid prototyping and
quick feedback from end-users.
•It is ideal for projects where time-to-market is
critical.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
The V-Model

•The V-Model is an extension of the Waterfall


Model that emphasizes the importance of
testing and validation.
•It pairs each development phase with a
corresponding testing phase.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Big Bang Model

•The Big Bang Model is an informal approach


where development begins without a clear plan or
methodology.
•It is typically used for small, experimental
projects and is considered high-risk.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process
Lean Software Development

•Lean is based on principles from lean manufacturing and


focuses on eliminating waste in the software development
process.
•It emphasizes delivering value to the customer, reducing
lead times, and continuous improvement.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process

The choice of a specific model or methodology depends on various factors,


including the project's complexity, size, goals, and organizational culture.

SOEN4305 2024 – DR. O. ELIJAH


Software Development Process

The choice of a specific model or methodology depends on various factors,


including the project's complexity, size, goals, and organizational culture.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
• Planning
• Design
• Implementation
• Testing
• Deployment
• maintenance and support
• Documentation
• Feedback and Iteration
• Project closure

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
• Planning
Requirement Analysis: • Design
•Understand and gather requirements from • Implementation
• Testing
stakeholders, including clients, users, and other • Deployment
• maintenance and support
relevant parties. • Documentation
• Feedback and Iteration
•Document and prioritize requirements to create a • Project closure
clear scope for the project.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
• Planning
Planning: • Design
•Create a project plan that outlines the project's • Implementation
• Testing
timeline, budget, resources, and goals. • Deployment
• maintenance and support
•Define the software architecture and design to • Documentation
• Feedback and Iteration
meet the requirements. • Project closure
•Identify potential risks and plan for mitigation.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Design: • Planning
• Design
•Create a detailed design of the software system, • Implementation
• Testing
including the overall structure, data models, and • Deployment
• maintenance and support
user interfaces. • Documentation
•Decide on the technology stack and development • Feedback and Iteration
• Project closure
tools to be used.
•Develop prototypes or mockups to validate design
concepts.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Implementation: • Planning
• Design
•Write the actual code for the software based on • Implementation
• Testing
the design specifications. • Deployment
•Follow coding standards and best practices. • maintenance and support
• Documentation
•Conduct code reviews to ensure code quality and • Feedback and Iteration
• Project closure
consistency.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Testing: • Planning
• Design
•Develop and execute test cases to verify that the • Implementation
• Testing
software functions correctly and meets the • Deployment
• maintenance and support
specified requirements. • Documentation
•Perform various types of testing, such as unit • Feedback and Iteration
• Project closure
testing, integration testing, and user acceptance
testing.
•Fix and retest any identified defects or issues.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Deployment: • Planning
• Design
•Prepare the software for deployment to the target • Implementation
• Testing
environment, whether it's a production server or a • Deployment
• maintenance and support
user's device. • Documentation
•Perform deployment activities, including • Feedback and Iteration
• Project closure
installation, configuration, and data migration if
necessary.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Maintenance and support: • Planning
• Design
•Monitor the software in the production • Implementation
• Testing
environment to ensure it continues to function • Deployment
• maintenance and support
correctly. • Documentation
•Address and fix any issues or bugs that arise after • Feedback and Iteration
• Project closure
deployment.
•Provide ongoing support and updates as needed,
including adding new features or enhancements.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Documentation: • Planning
• Design
•Create documentation for users, administrators, • Implementation
• Testing
and developers, including user manuals, API • Deployment
• maintenance and support
documentation, and technical documentation. • Documentation
• Feedback and Iteration
• Project closure

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Feedback and Iteration: • Planning
• Design
•Gather feedback from users and stakeholders to • Implementation
• Testing
identify areas for improvement. • Deployment
•Use this feedback to plan and prioritize future • maintenance and support
• Documentation
iterations or updates to the software. • Feedback and Iteration
• Project closure

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Requirement Analysis
Project Closure: • Planning
• Design
•Review the project's overall success and • Implementation
• Testing
performance against the initial plan and • Deployment
• maintenance and support
requirements. • Documentation
•Conduct a post-project evaluation to identify • Feedback and Iteration
• Project closure
lessons learned and areas for improvement in
future projects.
•Document and archive project-related materials
and code.

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Feasibility and planning
• Requirements
• User interface design
• System and program design
• Implementation (coding)
• Acceptance and release
• Operation and maintenance

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Feasibility and planning
• Requirements
• User interface design
• System and program design
• Implementation (coding)
• Acceptance and release
• Operation and maintenance

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Feasibility and planning
• Requirements
• User interface design
• System and program design
• Implementation (coding)
• Acceptance and release
• Operation and maintenance

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Feasibility and planning
• Requirements
• User interface design
• System and program design
• Implementation (coding)
• Acceptance and release
• Operation and maintenance

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Feasibility and planning
• Requirements
• User interface design
• System and program design
• Implementation (coding)
• Acceptance and release
• Operation and maintenance

SOEN4305 2024 – DR. O. ELIJAH


Basic Steps in Software Development
• Feasibility and planning
• Requirements
• User interface design
• System and program design
• Implementation (coding)
• Acceptance and release
• Operation and maintenance

SOEN4305 2024 – DR. O. ELIJAH


Attendance

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
1. Which software development model is known for its sequential and linear approach to software
development?

i. Agile

ii. Waterfall

iii. Scrum

iv. DevOps

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
2. In which software development model is the development process divided into smaller, incremental
iterations?

i. Waterfall

ii. Agile

iii. Spiral

iv. V-Model

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
3. Which software development model is most suitable for projects with well-defined requirements and
minimal changes expected during development?

i. Agile

ii. Waterfall

iii. RAD

iv. Scrum

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
4. Which model emphasizes extensive documentation throughout the development process?

i. Agile

ii. Waterfall

iii. Spiral

iv. Kanban

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
5. Which software development model is focused on delivering a minimum viable product (MVP) quickly
and iteratively improving it based on user feedback?

i. Waterfall

ii. Scrum

iii. Agile

iv. RAD

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
6. True or False:

a. The Waterfall model allows for changes to be easily incorporated at any stage of development.

b. In the Agile model, the development team and the customer collaborate closely throughout the
project.

c. The V-Model is an extension of the Waterfall model that includes extensive testing phases.

d. The Spiral model is suitable for projects with high risks and uncertainties.

e. In the DevOps model, development and operations teams work independently with minimal
communication.

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
7. Fill in the Blank:

a. The __________ model is characterized by a series of phases, including requirements, design,


implementation, testing, deployment, and maintenance.

b. Agile methodologies value __________ and responding to change over following a plan.

c. The __________ model is often used in projects with evolving or unclear requirements.

d. The primary goal of the __________ model is to deliver a working software increment at the end of
each iteration.

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
8. Match the software development model with its description.

A. Waterfall

B. Agile

C. Spiral

D. DevOps

i. Emphasizes collaboration between development and operations teams.

ii. Sequential and linear model with distinct phases.

iii. Iterative model with a focus on adaptability and customer feedback.

iv. Incorporates risk analysis and multiple iterations of the development process.

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
9. Multiple Choice:

a. What is the first step in the software development process?

i. Coding

ii. Requirements gathering

iii. Testing

iv. Deployment

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
10. Which step involves designing the overall structure and architecture of the software system?

i. Coding

ii. Testing

iii. Design

iv. Documentation

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
11. Which step ensures that the software functions correctly and meets the specified requirements?

i. Requirements gathering

ii. Deployment

iii. Testing

iv. Maintenance

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
12. Which step involves fixing bugs, adding new features, and making updates to the software after it has
been deployed?

i. Requirements gathering

ii. Deployment

iii. Testing

iv. Maintenance

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
13. In which step are user needs and system requirements analyzed and documented?

i. Coding

ii. Deployment

iii. Requirements gathering

iv. Maintenance

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
14. True or False:

a. The software development process typically starts with coding.

b. Requirements gathering involves collecting and documenting the needs and expectations of users and
stakeholders.

c. Testing is performed to ensure that the software functions as intended and meets the specified requirements.

d. Maintenance is the final step in the software development process.

e. Designing the software's architecture is not a necessary step in software development.

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
15. Fill in the Blank:

a. ___________ is the process of writing code to implement the functionality of the software.

b. ___________ involves making improvements and updates to the software after it has been deployed.

c. ___________ is the step where user feedback and testing results are used to identify and fix issues.

d. ___________ is the step where the software's overall structure and components are planned.

e. ___________ is the step where user needs and system requirements are gathered and documented.

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
16. Match the software development step with its description.

A. Requirements gathering

B. Design

C. Coding

D. Testing

E. Maintenance

i. Collecting and documenting user needs and system requirements.

ii. Writing code to implement the software's functionality.

iii. Making improvements and updates to the software post-deployment.

iv. Ensuring that the software functions correctly and meets requirements.

v. Planning the software's overall structure and components.

SOEN4305 2024 – DR. O. ELIJAH


Assignment No 1
The assignment will be submitted on Google Class. I will share the
link with the class reps.

SOEN4305 2024 – DR. O. ELIJAH

You might also like