S&M Presentation - Done.

You might also like

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

SIMULATING SOFTWARE DEVELOPMENT PROCESS

Syed Mudassir Hussain Shah 1799-2021


Hafsa Suleman 2018-2021
Kaleem Majeed
Table of Content:

 Software development process


 Agile model
 Waterfall Model
 DevOps
Software development process
The software development process is a
systematic set of activities and steps
undertaken to design, create, test, deploy, and
maintain software products. It encompasses
various methodologies, such as Agile,
Waterfall, or DevOps, and involves stages
like requirements gathering, design, coding,
testing, and deployment, with the ultimate
goal of delivering a high-quality software
solution that meets specified needs.
AGILE MODEL
01
Introduction:
The meaning of Agile is swift or versatile. “ Agile
process model" refers to a software development
approach based on iterative development. Agile
methods break tasks into smaller iterations, or parts
do not directly involve long term planning. The
requirements are laid down at the beginning of the
development process. Plans regarding the number of
iterations, the duration of each iteration are clearly
defined in advance.
Phases of the Agile Model:
The Agile breaks down tasks into smaller iterations, each of which lasts for a short time frame (one to four weeks)
in the overall process model.

1. Requirement gathering

2. Design
3. Coding
4. Testing/Verification
5. Review/Feedback
6. Deployment and Maintenance
When to use the Agile Model?
1. When project size is large.
2. When frequent changes are required.
3. When a highly qualified and experienced
team is available.
4. When a customer is ready to have a meeting
with a software team all the time.
5. Projects with flexible timelines and budget.
EXAMPLE: INSTAGRAM SOCIAL APPLICATION:

Requirements are:

1. Follow-Un follow Option


2. Edit profile
3. Search
4. Messaging
5. Post photos
6. Upload story
7. To make reels
8. Go Live
Agile advantages:
1. Supports customer involvement and customer
satisfaction.
2. Strong communication of the software team
with the customer.
3. Little planning required.
4. Anytime changes are acceptable.
5. Updated versions of functioning software are
released every week.
6. It reduces total development time
Challenges in Agile Model:
Changing Requirements:
Adapting to evolving project requirements can be challenging, especially if changes occur
frequently or late in the development process.
Communication Issues:
Ineffective communication within development teams or between teams and stakeholders can lead to
misunderstandings, delays, and quality issues.
Documentation and Planning:
Agile places more emphasis on working software over comprehensive documentation. While this
promotes adaptability, it can be a challenge for teams that require extensive documentation for
compliance or regulatory purposes. Agile's preference for just-in-time planning can also be a
hurdle for teams that are accustomed to detailed upfront planning.
Why we use/consider agile in simulation and modelling:

• Agile in simulation and modeling is like having a flexible, step-by-step, collaborative, always-checking,
problem-solving, and fast-paced superhero for building accurate and effective models.
• Flexibility: Agile lets us easily change plans, perfect for adapting our model when new information or ideas
come up.
• Step-by-Step Improvement: We build and fix our model bit by bit, making it better over time instead
of all at once.
• Teamwork: Agile is like a teamwork champion, making sure everyone with different skills collaborates
well. This is crucial in modeling, where you need math, coding, and subject expertise.
• Always Checking and Fixing: Agile keeps us constantly checking and fixing things. In modeling, this
means our model is always accurate and up-to-date.
• Quick Results for Quick Adjustments: Agile gets us results fast. For modeling, this means seeing
progress sooner and making changes quickly.
Water Fall Model 02
Definition:
The Waterfall Model is a classical and linear software development
methodology that organizes the software development process into
sequential phases, resembling the downward flow of a waterfall.
In this model, each phase serves as a foundation for the next one, with
progress moving steadily from initiation through completion. This way of
working is very organized and strict. It means that you finish one step
completely before starting the next one.
Phases of waterfall model
1. Requirement gathering

2. Design
3. Coding
4. Testing/Verification
5. Deployment and
Maintenance
When to use waterfall Model:
Requirements Are Clear:
If you have a very clear and well-understood set of requirements
from the beginning.
Limited Changes Expected:
When you don't anticipate many changes during the development
process.
Client Prefers a Predictable Timeline:
If your client prefers a predictable timeline and is comfortable waiting
until the end for the final product.
Smaller Projects:
It can be suitable for smaller projects with straightforward needs
Advantages:
Clear Structure:
It provides a straightforward and easy-to-understand structure, making it simple to
manage and follow.
Well-Defined Phases:
Each phase has specific goals and deliverables, enhancing clarity and project organization.
Detailed Documentation:
The model emphasizes comprehensive documentation at each stage, aiding in project
understanding and future maintenance.
Easy to Manage:
It's easier to manage as there is a clear path of progression, and each phase has its own
set of tasks and objectives.
Challenges in Waterfall model:
Limited Flexibility:
Waterfall's strict sequence makes it hard to adapt to changes mid-project.
Late Issue Detection:
Testing occurs after development, leading to late discovery of problems.
Customer Involvement at the End:
Customer feedback is limited until the final stages, risking misalignment with expectations.
Long Delivery Time:
Sequential phases contribute to a potentially lengthy overall project timeline.
DevOps
03
Definition:
• DevOps, a portmanteau of "development" and "operations," is a set of practices, principles, and cultural
philosophies aimed at improving collaboration and communication between software development (Dev) and
IT operations (Ops) teams. The primary goal of DevOps is to streamline and automate the software
development and delivery process, enabling organizations to deliver high-quality software products more
rapidly, reliably, and efficiently.
Development Department:
Software Development: This involves writing code, designing user interfaces, implementing features, and
ensuring the functionality and performance of the software.
Coding and Programming: Developers, engineers, and programmers work in the development
department to write, test, and maintain code.
Testing: Development teams are responsible for testing their code to identify and fix bugs, ensure the software
meets requirements, and maintain the overall quality of the codebase. Version Control: Development teams
use version control systems (e.g., Git) to manage and track changes to the codebase, enabling collaboration and
providing a history of code modifications.
Operations Department:
Infrastructure Management: The operations department is responsible for managing and maintaining
the IT infrastructure, including servers, networks, databases, and other components necessary for running
software applications.
Deployment: Ops teams handle the deployment of software into production environments. This involves
configuring servers, managing resources, and ensuring that the application runs smoothly in the production
environment.
Monitoring and Maintenance: Operations teams monitor the performance and health of applications
and infrastructure in real-time. They respond to incidents, troubleshoot issues, and perform routine maintenance
to keep systems running efficiently.
Security: Ops teams play a critical role in ensuring the security of the IT infrastructure and applications. This
includes implementing security measures, managing access controls, and addressing vulnerabilities to protect
against cyber threats.
Scalability and Reliability: Ops teams work to ensure that the infrastructure can scale to accommodate changes
in demand.
BENEFITS OF DevOps:
• Faster Time-to-Market: DevOps practices enable organizations to deliver software updates and
features more quickly. Automation of testing, integration, and deployment processes accelerates the entire
development lifecycle, reducing time-to-market for new releases.
• Improved Collaboration: DevOps fosters collaboration and communication between development
and operations teams. Breaking down silos and encouraging shared responsibilities leads to better
understanding, alignment of goals, and overall improved teamwork.
• Continuous Feedback: DevOps emphasizes real-time monitoring and feedback loops, providing
insights into application and infrastructure performance. Teams can quickly identify issues, measure the
impact of changes, and make informed decisions for continuous improvement.
Applications of DevOps in Simulation and modeling:

1. Collaboration and Communication:


DevOps encourages collaboration between different teams, and in simulation and modeling, this is crucial.
Bringing together experts from various domains (e.g., simulation experts, domain specialists, data scientists) can
enhance the quality of models and simulations.
2. Continuous Integration (CI) and Continuous Deployment (CD):
Implementing CI/CD practices in simulation and modeling allows for the automated building, testing, and
deployment of models. This ensures that the latest version of the model is always available and ready for use.
Automated Testing:
Quality Assurance for Models: Implementing automated testing for models ensures that they meet
specified criteria and perform as expected. This includes validating model outputs, assessing the impact of
parameter changes, and identifying potential errors or inconsistencies.
THANKS!

You might also like