0% found this document useful (0 votes)
10 views92 pages

Software Engineering Notes - 1 - 1707815619210

Uploaded by

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

Software Engineering Notes - 1 - 1707815619210

Uploaded by

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

Unit 1

Introduction to Software Engineering


What is Software Engineering?

Definition:
Software engineering is an engineering-based
approach to software development.
A software engineer is a person who applies
the engineering design process to design,
develop, test, maintain, and evaluate
computer software.
Software engineering is the branch of
computer science that deals with the
design, development, testing,
and maintenance of software
applications.
A good software developer must have a solid
knowledge of specific technical languages

 Software developers should also carry out


development plans and program software, lead
and manage the whole software development
lifecycle, and simultaneously operate several
activities in various phases of the SDLC
The Main Essential Qualities of a
Software Developer
 The Main Essential Qualities of a Software Developer
 Practical knowledge of software development or programming
languages and their frameworks

 Currently, the most popular programming languages in the world


are JavaScript, PHP, HTML, CSS, SQL, TypeScript, Python, etc.
 Currently, the most popular software development frameworks
are Node.js, React.js, Vue.js, jQuery, Angular, Laravel, etc.
 ·
The Role of a Software Engineer: Who is a Software Engineer?

 A software engineer is a professional responsible for designing,

developing, and implementing software solutions to fulfill a

client’s technical requirements.


The Main Essential Qualities of a
Software Developer
 Most software engineers operate in specific
areas, starting from creating web applications
and customer support systems, to working with
databases, operating systems, and maintaining
already-existing software solutions.
Software Developer Vs. Software Engineer - Key Differences In
Responsibilities & Job Duties
Itis safe to say that a software developer is
a subtype of a software engineer.
Types of software engineers

 There are 2 types of software engineers: application software

developers and system software developers.

 1. Application software developers


 2.System software developers
Application software developers
 Application software developers are client-focused tech

professionals who work both on the back-end and front-

end software development processes


main functions of application software
developers
 Some of the main functions of application software developers include:

 · Design software for the end users,

 · Develop and implement applications for various operating systems such as


iOS, Android, Linux, Windows, etc.,

 · Conduct technical requirements analysis (if necessary),

 · Constantly maintain and support the software and release updates.


System software developers

 Unlike application software developers, who deal


with the full-stack development of various software
applications, system software developers work on the
back-end development most of the time.
 This type of software engineer is responsible for both
the hardware and software development processes.
The core responsibilities of a system
software developer include:
 Building operating systems and networks for user-facing applications,
 · Integrating various systems into one platform by working with disparate
systems and computer data processing systems,
 · Operating as general IT managers and system architects,
 · Working with technical documentation and keeping up to date with new
technologies
 The Main Essential Qualities of a Software Engineer
 · Broad knowledge of various programming languages
 · Practical experience with knowledge in software development and computer
operating systems
 · Ability to debug software and systems
 · Ability to build scalable and specific pipelines and languages
 · Technical project management skills and a clear understanding of the SDLC
 · Ability to create necessary tools to build and implement software
What are Principles of Software Engineering

 Software engineering involves the systematic design,


development, testing, and maintenance of software
systems.

 There are several principles that guide the practice of software

engineering to ensure the creation of high-quality, reliable, and

maintainable software. Here are some key principles:


Principles of Software Engineering

 Requirements Specification:
 Clearly define and document the requirements before starting the development
process.
 Understand and prioritize the needs of the end-users and stakeholders.
 Design Before You Build:
 Create a detailed design before starting the implementation.
 Design should address both functional and non-functional aspects of the software.
 Modularity:
 Break down the software into smaller, manageable modules.
 Each module should have a well-defined and limited scope of functionality.
Principles of Software Engineering

 Abstraction:
 Use abstraction to simplify complex systems.
 Hide unnecessary details and focus on the essential features.
 Encapsulation:
 Bundle data and methods that operate on the data into a single unit (class or module).
 Encapsulation helps in controlling access and maintaining a clear interface.
 Reuse:
 Reuse existing components, libraries, and code whenever possible.
 Promote the development and use of modular, reusable code.
 Scalability:
 Design the software to handle growth in data, users, and functionality.
 Ensure that the system can scale gracefully as requirements evolve.
Principles of Software Engineering

 Testing:
 Conduct thorough testing at different levels (unit, integration, system, acceptance)
to catch defects early.
 Automated testing is encouraged to improve efficiency.
 Documentation:
 Maintain clear and comprehensive documentation throughout the software
development lifecycle.
 Documentation aids understanding, maintenance, and future development.
 Version Control:
 Use version control systems to manage changes in the codebase.
 Version control helps in tracking changes, collaborating with a team, and rolling back
to previous states if needed.
Principles of Software Engineering

 Continuous Integration and Continuous Deployment (CI/CD):


 Implement CI/CD pipelines to automate the process of integrating code changes and
deploying them to production.
 This ensures rapid and reliable delivery of software.
 Feedback Loop:
 Establish a feedback loop with stakeholders, users, and within the development team.
 Gather feedback early and often to adapt to changing requirements.
 Security:
 Prioritize security considerations throughout the development process.
 Regularly update dependencies, conduct security audits, and follow best practices to
mitigate vulnerabilities.
Principles of Software Engineering

 Maintainability:
 Design and develop software with an emphasis on ease of maintenance.
 Write clean, readable, and well-documented code.
 Adaptability:
 Design software systems that can adapt to changing requirements and
environments.
 Plan for future updates and improvements.
what are the software development
process ?
 Here are some key aspects of a typical software development process:
 Requirements Analysis: Understanding and documenting the needs and
expectations of the end-users and stakeholders.
 Design: Creating a blueprint or plan for the software solution based on the
requirements analysis.
 Implementation: Writing the actual code according to the design
specifications.
software development process ?

 Testing: Verifying that the software behaves as expected and meets the
specified requirements.
 Deployment: Introducing the software to the end-users or the production
environment.
 Maintenance: Making updates, fixing bugs, and ensuring the ongoing
functionality and usability of the software.
software development process ?

 Documentation: Creating and maintaining documentation to aid in


understanding, using, and maintaining the software.
 Version Control: Managing changes to the source code and tracking different
versions of the softwar
what are software myths?

 Myth: More Features Mean Better Software.


 Reality: The quality of software is not solely determined by the number of
features. In fact, focusing on essential features and ensuring they work well is
often more important than adding numerous functionalities.
 Myth: Testing Can Ensure Bug-Free Software.
 Reality: While testing is crucial for identifying and fixing bugs, it cannot guarantee
bug-free software. Complete absence of bugs is practically impossible, and testing
helps in minimizing risks, not eliminating them entirely.
 Myth: Once It's Deployed, the Work Is Done.
 Reality: Software development is an ongoing process. After deployment,
maintenance, updates, and improvements are necessary to adapt to changing
requirements, address issues, and ensure continued functionality.
 Myth: All Projects Should Follow a Single Development Methodology.
 Reality: Different projects may benefit from different development methodologies.
Agile, Waterfall, DevOps, etc., each have their strengths and weaknesses. The
choice should depend on project requirements and team dynamics.
 Myth: The Best Developers Work Alone.
 Reality: Effective software development often involves collaboration. Teams with
diverse skills and perspectives can contribute to a more robust and well-rounded
solution.
 Myth: The Latest Technology Is Always the Best Choice.
 Reality: While staying updated on technology trends is essential, blindly adopting
the latest tools or frameworks without considering project requirements and team
expertise can lead to suboptimal results.
 Myth: Adding More Developers Will Speed Up the Project.
 Reality: The "mythical man-month" concept suggests that adding more people to a
late project only makes it later. Communication overhead and the learning curve
for new team members can initially slow down progress.
 Myth: Documentation Is a Waste of Time.
 Reality: Documentation is crucial for understanding, maintaining, and evolving
software. While excessive documentation can be counterproductive, having clear
and concise documentation is essential for effective collaboration and knowledge
transfer.
 Myth: Users Know Exactly What They Want.
 Reality: Users may have a general idea of their needs, but it's common for
requirements to evolve as the project progresses. Regular communication and
feedback with users are essential for building a successful product.
What are the characteristic of Quality
software?

 Quality software is characterized by various attributes that


contribute to its effectiveness, reliability, maintainability, and
overall success. Here are some key characteristics of quality
software:
key characteristics of quality software

 Functionality:
 Completeness: The software should provide all the features and capabilities specified in the
requirements.
 Accuracy: The system should produce accurate results and perform its intended functions without
errors.
 Reliability:
 Stability: The software should be stable and reliable, providing consistent performance under various
conditions.
 Fault Tolerance: The system should be able to recover gracefully from unexpected errors or failures.
 Usability:
 User-Friendliness: The software should be easy to use and navigate, with a user interface that is
intuitive and well-designed.
 Efficiency: The system should not require excessive user effort to perform tasks, and it should
provide timely responses.
key characteristics of quality software

 Performance:
 Speed: The software should be responsive and provide acceptable performance in terms of speed
and efficiency.
 Scalability: The system should be able to handle increased loads and data without a significant
degradation in performance.
 Maintainability:
 Modularity: The software should be modular, allowing for easy updates, modifications, and
enhancements without affecting the entire system.
 Readability: Code should be well-organized and documented, making it easy for developers to
understand and maintain.
 Scalability:
 Adaptability: The software should be able to adapt to changing requirements and environments.
 Scalability: The system should handle an increasing amount of data or users without a significant
decrease in performance.
key characteristics of quality software

 Security:
 Confidentiality: Protecting sensitive information and ensuring that unauthorized
users cannot access restricted data.
 Integrity: Ensuring that data is accurate and has not been tampered with.
 Availability: Ensuring that the system is available and accessible to authorized
users when needed.
 Compatibility:
 Interoperability: The software should be able to work seamlessly with other
systems or software.
 Platform Independence: The ability to run on different operating systems or
environments.
 Testability:
 Verifiability: The software should be testable, with clear criteria for verifying that
it meets specified requirements.
 Maintainability: Testing and debugging should be efficient, and the system should
be easy to troubleshoot.
 Compliance:
 Standards Compliance: Adhering to industry standards and best practices.
 Legal Compliance: Ensuring that the software complies with relevant laws and
regulations.
what is aspects to the Software Crisis:

 The term "Software Crisis" was coined in the early days of computing to

describe the challenges and issues associated with software development.


 Increasing Complexity:
 As software systems grew in size and complexity, traditional development methods,
which were often ad-hoc and lacked systematic processes, struggled to keep pace.
 Cost Overruns and Delays:
 Many software projects experienced significant cost overruns and delays. The
estimates for development time and resources were often inaccurate, leading to
frustration and financial losses.
 Lack of Quality:
 Software developed during this period often suffered from reliability issues, bugs,
and poor performance. The quality of the software was a major concern.
 Inability to Cope with Change:
 Traditional methods were not well-suited to handling changes in requirements. As
user needs evolved, it became challenging to modify and adapt existing software.
 Limited Reusability:
 There was a lack of emphasis on reusable components, leading to redundant
development efforts. Developers were often reinventing the wheel instead of
building on existing solutions.
 Human Resource Limitations:
 The shortage of skilled software developers compounded the challenges. The demand for
qualified professionals exceeded the available supply, leading to a lack of expertise in many
projects.
 Documentation and Maintenance Challenges:
 Inadequate documentation practices made it difficult for developers to understand and
maintain existing software. This lack of documentation hindered the ability to address issues
and make improvements.
What are the key component of object
model?
 Here are key components of an object model:
 Objects: Objects are instances of classes and represent individual entities in
the system. They encapsulate data (attributes) and behavior (methods or
functions).
 Classes: Classes serve as blueprints or templates for creating objects. They
define the properties and methods that objects instantiated from the class
will have.
 Attributes: Attributes are the data or properties associated with an object. They

represent the characteristics or state of an object.

 Methods: Methods are functions or procedures associated with an object. They

define the behavior or actions that an object can perform.

 Relationships: Object models also include relationships between objects. These

relationships define how objects interact and collaborate within the system.
What is Analysis model?

 The analysis model is a representation of the system requirements and

functionalities from the perspective of end-users. It is created during the

analysis phase of the software development life cycle and serves as a bridge

between the problem domain and the solution domain.


 Key elements of an analysis model include:
 Use Cases: Descriptions of system interactions with external entities to accomplish
specific goals.
 Scenarios: Instances of use cases, providing detailed steps of how a use case is
executed.
 Activity Diagrams: Visual representations of workflows and business processes.
 Requirements: A detailed specification of the functional and non-functional
requirements of the system.
 The analysis model helps in understanding the problem domain, documenting
user requirements, and defining the functionality that the system must
provide. It is an essential step before transitioning to the design phase, where
the object model and other design artifacts are created
DIFFERENCE BETWEEN OBJECT ORIENTED
APPROACH AND STRUCTURED APPROACH

OBJECT ORIENTED APPROACH STRUCTURED APPROACH


 It is also called as OOA,OOD,OOP.  It is also called as structured

system development.
Bottom-Up approach.
 Top –Down approach.-modular
 Views information system as programming, Stepwise refinement.
collection of interactive objects
 Primary focus on identifying and
that work together to accomplish
modling the processes in a system.
tasks. OR it is data oriented.
OR It is process oriented.
 Data and processes are  There is a separation of data and
encapsulated into object. process.
 Risk is low.(error minimum)  Risk high.
What is process model

 A process model is a representation or abstraction of a process within a

system or organization. It is a visual or textual description that illustrates how

activities, tasks, or steps are carried out to achieve a particular goal or

produce a specific output. Process models are widely used in various fields,

including software engineering, business management, project management,

and manufacturing.
Key characteristics of a process model
include:
 Key characteristics of a process model include:
 Representation: It provides a clear and structured representation of the
sequence of activities or steps involved in a process.
 Flow of Activities: It defines the flow and dependencies of activities within
the process, showing the order in which they are executed.
 Inputs and Outputs: It identifies the inputs required for each activity and the
outputs produced as a result.
 Roles and Responsibilities: It may specify the roles and responsibilities of
individuals or entities involved in each activity.
 Control Flow: It describes how the control and data flow through the process,
indicating decision points, branching, and looping.
Types of process models

 1.Generic Process Model:


 A generic process model is a high-level abstraction that represents the fundamental
stages or phases that most processes go through. It provides a conceptual framework
that can be applied to various types of processes across different domains. While
specific details may vary, the generic process model outlines the common stages that
a process typically follows.
 Prescriptive Process Models:
 Prescriptive process models provide specific guidance and recommendations for how a
particular type of project or process should be executed. These models prescribe the
steps, activities, and tasks that should be undertaken to achieve successful outcomes.
They are often associated with best practices and are intended to guide practitioners
in the application of proven methods.
Example of process models,

 There are various example of process models, and their complexity depends
on the specific context and purpose. Some common types include:
 Waterfall Model: A linear sequential flow of activities where progress is seen
as flowing steadily downwards through phases such as conception, initiation,
analysis, design, construction, testing, and maintenance.
 Iterative Models: Processes that involve repeating cycles, with each iteration
refining the product based on feedback from the previous iteration.
 Agile Models: Adaptive and flexible models that prioritize collaboration and
customer feedback, emphasizing iterative development and quick response to
change.
 Unified Modeling Language (UML): A standardized modeling language that
uses diagrams to represent various aspects of a system, including processes.
Waterfall Model

 The classical waterfall model is the basic software development life cycle

model. It is very simple but idealistic. Earlier this model was very popular

but nowadays it is not used. But it is very important because all the other

software development life cycle models are based on the classical waterfall

model.
 1. Feasibility Study

 The main goal of this phase is to determine whether it would be financially

and technically feasible to develop the software.

 The feasibility study involves understanding the problem and then determining

the various possible strategies to solve the problem


 2. Requirements Analysis and Specification
 The aim of the requirement analysis and specification phase is
to understand the exact requirements of the customer and
document them properly. This phase consists of two different
activities.
 Requirement gathering and analysis: Firstly all the requirements
regarding the software are gathered from the customer and then the
gathered requirements are analyzed
 Requirement specification: These analyzed requirements are
documented in a software requirement specification (SRS) document.
SRS document serves as a contract between the development team and
 Design
 The goal of this phase is to convert the requirements acquired in the SRS into
a format that can be coded in a programming language.
 4. Coding and Unit Testing
 In the coding phase software design is translated into source code using any
suitable programming language. Thus each designed module is coded. The
aim of the unit testing phase is to check whether each module is working
properly or not.
 5. Integration and System testing

 Integration of different modules is undertaken soon after they have been coded and unit

tested. Integration of various modules is carried out incrementally over a number of steps.

During each integration step, previously planned modules are added to the partially

integrated system and the resultant system is tested. Finally, after all the modules have

been successfully integrated and tested, the full working system is obtained and system

testing is carried out on this.


 System testing consists of three different kinds of testing activities as
described below.
 Alpha testing: Alpha testing is the system testing performed by the
development team.
 Beta testing: Beta testing is the system testing performed by a friendly set of
customers.
 Acceptance testing: After the software has been delivered, the customer
performed acceptance testing to determine whether to accept the delivered
software or reject it
 6. Maintenance
 Maintenance is the most important phase of a software life cycle. The effort
spent on maintenance is 60% of the total effort spent to develop a full
software.
 There are basically three types of maintenance.
 Corrective Maintenance: This type of maintenance is carried out to correct errors
that were not discovered during the product development phase.
 Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
 Adaptive Maintenance: Adaptive maintenance is usually required for porting the
software to work in a new environment such as working on a new computer
platform or with a new operating system.
Waterfall process model
What is the Evolutionary Model?

 The Evolutionary development model divides the development cycle into


smaller, incremental waterfall models in which users can get access to the
product at the end of each cycle.

 Feedback is provided by the users on the product for the planning stage of the
next cycle and the development team responds, often by changing the
product, plan, or process.
 Therefore, the software product evolves with time.
 All the models have the disadvantage that the duration of time from the start
of the project to the delivery time of a solution is very high.
 The evolutionary model solves this problem with a different approach.
 The evolutionary model suggests breaking down work into smaller chunks,
prioritizing them, and then delivering those chunks to the customer one by
one.
 The number of chunks is huge and is the number of deliveries made to the
customer.
 The main advantage is that the customer’s confidence increases as he
constantly gets quantifiable goods or services from the beginning of the
project to verify and validate his requirements.
 The model allows for changing requirements as well as all work is broken
down into maintainable work chunks.
 Advantages Evolutionary Model
 Adaptability to Changing Requirements: Evolutionary models work effectively in
projects when the requirements are ambiguous or change often. They support
adjustments and flexibility along the course of development.
 Early and Gradual Distribution: Functional components or prototypes can be
delivered early thanks to incremental development. Faster user satisfaction and
feedback may result from this.
 User Commentary and Involvement: Evolutionary models place a strong emphasis
on ongoing user input and participation. This guarantees that the software offered
closely matches the needs and expectations of the user.
 Improved Handling of Difficult Projects: Big, complex tasks can be effectively
managed with the help of evolutionary models. The development process is made
simpler by segmenting the project into smaller, easier-to-manage portions
 Disadvantages Evolutionary Model
 Communication Difficulties: Evolutionary models require constant cooperation and
communication. The strategy may be less effective if there are gaps in communication or if
team members are spread out geographically.
 Dependence on an Expert Group: A knowledgeable and experienced group that can quickly
adjust to changes is needed for evolutionary models. Teams lacking experience may find it
difficult to handle these model’s dynamic nature.
 Increasing Management Complexity: Complexity can be introduced by organizing and
managing several increments or iterations, particularly in large projects. In order to guarantee
integration and synchronization, good project management is needed.
 Greater Initial Expenditure: As evolutionary models necessitate continual testing, user
feedback and prototyping, they may come with a greater starting cost. This may be a problem
for projects that have limited funding.
Unified Process

 Unified Process is based on the enlargement and refinement of a system through multiple iterations,

with cyclic feedback and adaptation. The system is developed incrementally over time, iteration by

iteration, and thus this approach is also known as iterative and incremental software development.
concurrent model

 it is collection of techniques and mechanisms that enable a computer

program to perform several different tasks simultaneously, or apparently

simultaneously.
 The concurrent model is a methodology in which multiple phases of the software

development process are performed simultaneously (concurrently). The main goal

of the concurrent development model is to produce a final product that meets the

customer's requirements while minimizing the overall development time and cost.
Advance process model

 Agile Model

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 project scope and requirements are laid

down at the beginning of the development process. Plans regarding the number of iterations,

the duration and the scope of each iteration are clearly defined in advance.
 Phases of Agile Model:
 Following are the phases in the Agile model are as follows:
 Requirements gathering
 Design the requirements
 Construction/ iteration
 Testing/ Quality assurance
 Deployment
 Feedback
4.Pre-project
2.Feasibility Study
3.Business Study B.Tech / MCA
4.Functional Model Iteration DBMS
5.Design and build Iteration Learn Latest Tutorials
Data Structures
6.Implementation Next TopicSplunk
Iterative Model
DAA
7.Post-project
SPSS
Operating System
Feature Driven Development(FDD): 1. Requirements gathering: In this phase, you must define the requirements.
You should explain business opportunities and plan the time and effort
needed to build the project. Based on this information, you can evaluate
technical and economic feasibility.
Swagger
Computer Network
This method focuses on "Designing and Building" features. In contrast to other smart methods, FDD describes the small steps of the work that should be obtained separatel
ADVERTISEMENT
2. Design the requirements: When you have identified the project, work with
stakeholders to define requirements. You can use the user flow diagram or
the high-level UML diagram to show the work of new features and show how

For Videos Join Our Youtube Channel: Join


it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the

Lean Software Development: ← Compiler


PrevNext →
work begins. Designers and developers start working on their project, which

Feedback Transact-SQL
aims to deploy a working product. The product will undergo various stages of
improvement, so it includes simple, minimal functionality.

Design
Trending Technologies
4. Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.
5. Deployment: In this phase, the team issues a product for the user's work
environment.

Lean software development methodology follows the principle "just in time production." The lean method indicates the increasing speed of software development and red
6. Feedback: After releasing the product, the last step is feedback. In this, the
team receives feedback about the product and works through the feedback.

feedback@javatpoint •Send
Agile Testing Methods:
ADVERTISEMENT

your Feedback toComputer


ADVERTISEMENT

Tumblr
•Scrum

8.Eliminating Waste
•Crystal

Organization
•Dynamic Software Development Method(DSDM)
•Feature Driven Development(FDD)
•Lean Software Development

Artificial Intelligence
Help Others, Please Share
•eXtreme Programming(XP)
Scrum
SCRUM is an agile development process focused primarily on ways to
manage tasks in team-based development conditions.
ADVERTISEMENT
There are three roles in it, and their responsibilities are:

2.Amplifying learning
•Scrum Master: The scrum can set up the master team, arrange the meeting

DiscreteReactJS
and remove obstacles for the process
•Product owner: The product owner makes the product backlog, prioritizes

Mathematics
the delay and is responsible for the distribution of functionality on each
repetition.

AWS
•Scrum Team: The team manages its work and organizes the work to
complete the sprint or cycle.

Preparation
eXtreme Programming(XP)
This type of methodology is used when customers are constantly changing

3.Defer commitment (deciding as late as possible)


demands or requirements, or when they are not sure about the system's
performance.
Crystal:

Regex
There are three concepts of this method-
1.Chartering: Multi activities are involved in this phase such as making a

Ethical Hacking
development team, performing feasibility analysis, developing plans, etc.
2.Cyclic delivery: under this, two more cycles consist, these are:
1. Team

Selenium
updates
the

4.Early delivery
release
plan.

Aptitude
2. Integrat
ed
product

Reinforcement Learning
delivers
to the

Computer Graphics
utorialLearn PHP TutorialLearn HTML TutorialLearn JavaScript TutorialLearn jQuery TutorialLearn Spring Tutorial
users.
3.Wrap up: According to the user environment, this phase performs

5.Empowering the team Cloud Computing


deployment, post-deployment.
Dynamic Software Development Method(DSDM):
DSDM is a rapid application development strategy for software development
and gives an agile project distribution structure. The essential features of
DSDM are that users must be actively connected, and teams have been given

Reasoning
the right to make decisions. The techniques used in DSDM are:
4.Time Boxing

R Programming
5.MoSCoW Rules
6.Prototyping

Software Engineering
6.Building Integrity
The DSDM project contains seven stages:
7.Pre-project
8.Feasibility Study

Hadoop
9.Business Study
10.Functional Model Iteration
11.Design and build Iteration
12.Implementation

Verbal Ability
13.Post-project
Feature Driven Development(FDD):
This method focuses on "Designing and Building" features. In contrast to

7.Optimize the whole RxJS


other smart methods, FDD describes the small steps of the work that should
be obtained separately per function.

Web Technology
erview QuestionsAngular Interview QuestionsSelenium Interview QuestionsSpring Boot Interview QuestionsHR Inte
Lean Software Development:
Lean software development methodology follows the principle "just in time

ReactJS
production." The lean method indicates the increasing speed of software
development and reducing costs. Lean development can be summarized in
seven phases.
14.Eliminating Waste

Interview Questions
15.Amplifying learning
16.Defer commitment (deciding as late as possible)
17.Early delivery

CyberReact Native
18.Empowering the team
19.Building Integrity

Security
20.Optimize the whole
When to use the Agile Model?
•When frequent changes are required.

Data Science
•When a highly qualified and experienced team is available.
•When a customer is ready to have a meeting with a software team all the
time.

When to use the Agile Model?


•When project size is small.

Company Questions
Advantage(Pros) of Agile Method:
1.Frequent Delivery
2.Face-to-Face Communication with clients.

Python Design Patterns


3.Efficient design and fulfils the business requirement.

Automata
4.Anytime changes are acceptable.
5.It reduces total development time.

HP, HTML, CSS, JavaScript,


• jQuery, ReactJS, Node.js, AngularJS, Bootstrap, XML, SQL, PL/SQL, MySQL etc.
ADVERTISEMENT

Angular 7
Disadvantages(Cons) of Agile Model:

When frequent changes are required.


6.Due to the shortage of formal documents, it creates confusion and crucial
decisions taken throughout various phases can be misinterpreted at any time
by different team members.
7.Due to the lack of proper documentation, once the project completes and

, making it suitable
When afor both beginners
and experiencedand
team isexperienced developers.
the developers allotted to another project, maintenance of the finished


project can become a difficulty.

highly qualified available. Python Pillow


Next TopicIterative Model

← PrevNext →
C Programming
•When a customer is ready to have a meeting with a software team all the time. Blockchain
the companies. •When project size is small. C++ Python Turtle
Git
Java Keras
Machine Learning
Advantage(Pros) of Agile Method:
.Net
 1. Requirements gathering: In this phase, you must define the requirements.
You should explain business opportunities and plan the time and effort
needed to build the project. Based on this information, you can evaluate
technical and economic feasibility.
 2. Design the requirements: When you have identified the project, work
with stakeholders to define requirements. You can use the user flow diagram
or the high-level UML diagram to show the work of new features and show
how it will apply to your existing system.
 3. Construction/ iteration: When the team defines the requirements, the
work begins. Designers and developers start working on their project, which
aims to deploy a working product. The product will undergo various stages of
improvement, so it includes simple, minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.
 5. Deployment: In this phase, the team issues a product for the user's work
environment.

6. Feedback: After releasing the product, the last step is feedback. In this,
the team receives feedback about the product and works through the
feedback.
Agile Testing Methods:

 Scrum
 Crystal
 Dynamic Software Development Method(DSDM)
 Feature Driven Development(FDD)
 Lean Software Development
 eXtreme Programming(XP)
 Scrum
 SCRUM is an agile development process focused primarily on ways to manage
tasks in team-based development conditions.
 There are three roles in it, and their responsibilities are:
 Scrum Master: The scrum can set up the master team, arrange the meeting
and remove obstacles for the process
 Product owner: The product owner makes the product backlog, prioritizes
the delay and is responsible for the distribution of functionality on each
repetition.
 Scrum Team: The team manages its work and organizes the work to complete
the sprint or cycle.
 eXtreme Programming(XP)
 This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance.
 Crystal:
 There are three concepts of this method-
 Chartering: Multi activities are involved in this phase such as making a development team,
performing feasibility analysis, developing plans, etc.
 Cyclic delivery: under this, two more cycles consist, these are:
 Team updates the release plan.
 Integrated product delivers to the users.
 Wrap up: According to the user environment, this phase performs deployment, post-deployment.
When to use the Agile Model?

 When frequent changes are required.


 When a highly qualified and experienced team is available.
 When a customer is ready to have a meeting with a software team all the
time.
 When project size is small.
Advantage(Pros) of Agile Method:

 Frequent Delivery
 Face-to-Face Communication with clients.
 Efficient design and fulfils the business requirement.
 Anytime changes are acceptable.
 It reduces total development time.
Disadvantages(Cons) of Agile Model:

 Due to the shortage of formal documents, it creates confusion and crucial


decisions taken throughout various phases can be misinterpreted at any time
by different team members.
 Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project
can become a difficulty.
What is V-model and W-model in Software Testing

 V model and W model are two of the most important models that are
followed in the process of software testing. V Model, also known as
Verification and Validation Model, is similar to waterfall model that follows a
sequential path of execution of processes.
 Waterfall model is a linear sequential design approach in which the progress
flows in one direction.
On the other hand, W model is a sequential approach to test a product and
can be done only once the development of the product is complete with no
modifications required to be done in between.
This type of testing is most suitable for short-term projects as medical
applications.
V-Model

 V-Model
 Devised by the late Paul Rook in 1980s, V-model was developed with an aim to
improve the efficiency and effectiveness of software development. The model
was accepted both in Europe and Asia as an alternative to waterfall model.
 V-model is a step-by-step process in which the next phase begins only after the

completion of the present phase. The steps in this process do not move in a linear way.

Instead, the steps in this process are bent upwards. When this model is compared with

the waterfall model, there are larger chances of emphasizing on products testing.

If this model is used to test a product, there is an assurance that the final product

developed will be of high quality.


Advantages and Disadvantages of V model

 Advantages of the V model


 Simple and easy
 Systematic
 East to track
 Testing starts from requirement phase itself
 All the Functional Areas can be covered
 Instructions and recommendations included
 Detailed explanations of problems
 Defects can be found at an early stage
 Works well for small projects
 Disadvantages of the V model
 Not flexible
 Regular updates required if changes in the project are required
 Can’t be used in complex projects
 No scope for risk management and mitigation
 One the project is over its end
 When to use the V model?
 Mostly used in the smaller level project with budget constraints
 Can be used when the testing time is less
 When you have enough senior and experienced testers
 Optimum for projects which will not have any changes in between the project
W-Model

 Introduced by Paul Herzlich, W-model signifies the one-to-one relationship


that exists between the documents and test activities.

You might also like