SlideShare a Scribd company logo
1 of 23
NAME :SAYAN GHOSH
ROLL:14400120032
SUBJECT :SOFTWARE
ENGINEERING
SUBJECT CODE :ESC 501
1
INTRODUCTION TO SOFTWARE ENGINEERING
Software engineering is the study of and practice of engineering to build, design, develop,
maintain, and retire software.
● Examples are: computer language programming and coding, software
testing, debugging, OOD, database management, etc.
2
SOFTWARE DEVELOPMENT LIFE CYCLE MODELS
SDLC is a process that defines the various stages involved in the development of software for
delivering a high-quality product. SDLC stages cover the complete life cycle of a software i.e. from
inception to retirement of the product.
Adhering to the SDLC process leads to the development of the software in a systematic and
disciplined manner.
Types of Software developing life cycles (SDLC) :
1. Classical Waterfall Model
2. Iterative Waterfall Model
3. Prototyping Model
4. Evolutionary Model
5. Spiral Model
3
● CLASSIC WATERFALL MODEL
The classical Waterfall Model was the first Process Model. It is also known as a linear-sequential
life cycle model. It is very simple to understand and use.
Classical waterfall model is the earliest, best known and most commonly used methodology. It is a
sequential lifecycle that is simple to understand and use each phase has to be completed finished
before another start which means no overlapping is allowed.
• Feasibility study
• Requirements analysis and specifications
• Design
• Coding and unit testing
• Integration and system testing
• Maintenance
4
● ITERATIVE WATERFALL MODEL
Iterative Waterfall Model is the extension of the Waterfall model. This model is almost same as the
waterfall model except some modifications are made to improve the performance of the software
development. The iterative waterfall model provides customer’s feedback paths from each phase to
its previous phases.
Iterative Waterfall Model strengths
❏ Easy to understand, easy to use.
❏ Provides a reference for inexperienced staff.
❏ Milestones are well understood by the team.
❏ It provides requirements stability.
❏ Facilitates strong management controls.
5
● PROTOTYPING MODEL
The prototyping model is applied when detailed information related to input and
output requirements of the system is not available. In this model, it is assumed that
all the requirements may not be known at the start of the development of the
system. This model allows the users to interact and experiment with a working
model of the system known as prototype. The prototype gives the user an actual
feel of the system.
Types of PrototypingModels
❏ Rapid Throwaway prototypes
❏ Evolutionary prototype
❏ Incremental prototype
❏ Extreme prototype
6
● SPIRAL MODEL
The spiral model is an SDLC model that combines elements of an iterative
software development model with a waterfall model. It is advisable to use this
model for expensive, large and complex projects.
Stages of SpiralModel
It has four stages
❏ Determineobjectivesandidentifyalternativesolutions
❏ Identifyandresolverisks
❏ Developnextleveloftheproduct
❏ Reviewandplanforthenextphase
7
SOFTWAREDESIGN
Software engineering is the process of analyzing user needs and designing,
constructing, and testing end-user applications that will satisfy these needs through
the use of software programming languages. It is the application of engineering
principles to software development.
● COUPLING:Coupling in software engineering is the inter-dependency or degree of
relationship between multiple modules/packages/components. Coupling is also called
Inter-Module Binding.
● COHESION :Cohesion refers to what module can do, internally. It is also called Intra-Module
binding as it measures the strength of relationship of functionalities inside a
module/package/component. Cohesion should always be high means that a
module/package/component is focused on what it should be doing, i.e. only methods relating to
the intention of the class.
8
TYPES OF COUPLING
1. DataCoupling:When modules shared primitive data between them.
2. StampCoupling:When modules shared composite or structural data between them and It must be a non-
global data structure. for example, Passing object or structure variable in react components.
3. ControlCoupling:When data from one module is used to direct the structure of instruction execution in
another.
4. ExternalCoupling:When two modules shared externally imposed data type that is external to the
software like communication protocols, device interfaces.
5. CommonCoupling:When two modules shared the same global data & dependent on them, like state
management in JavaScript frameworks.
6. ContentCoupling:When two modules shared code and can modify the data of another module, which is the
worst coupling and should be avoided.
9
TYPES OF COHESION
1. FunctionalCohesion:The execution of the task related to the problem is the only concern
from all the elements inside the module.
2. SequentialCohesion:The output of an element is the input of other element in a module i.e.,
data flow between the parts.
3. CommunicationalCohesion:Multiple elements in a module operate on same input data and
produce same output data.
4. ProceduralCohesion:The activities in module are related by sequence, otherwise they are not
related.
5. CoincidentalCohesion:The activities with meaningless relationship with one another are
contributed by the elements in the module
10
UMLDIAGRAM
Interaction diagrams are a subclass of behavioral diagrams that give emphasis to object
interactions and also depicts the flow between various use case elements of a system. In simple
words, it shows how objects interact with each other and how the data flows within them. Today,
UML is accepted by the Object Management Group (OMG) as the standard
for modeling software development.
The key to making a UML diagram is connecting shapes that represent
an object or class with other shapes to illustrate relationships and the
flow of information and data.
11
Types of UMLDiagrams
 Structural UMLdiagrams
❖ Class diagram
❖ Package diagram
❖ Object diagram
❖ Component diagram
❖ Composite structure diagram
❖ Deployment diagram
 Behavioral UMLdiagrams
❖ Activity diagram
❖ Sequence diagram
❖ Use case diagram
❖ State diagram
❖ Communication diagram
❖ Interaction overview diagram
❖ Timing diagram
12
CODINGSTANDARDS AND GUIDELINES
Codingstandardsare the set of guidelines or norms that are globally set or are set by various
software development organizations (and they hold only to that particular organization) and
these guidelines should be followed by all the developers to produce a good quality software.
There are various benefits of using the coding standards while coding the software like,
● Code understanding becomes easier
● Entire code of the whole software has same format and style of coding
● Encourages good programming skills
Most of the top software developing companies set their codingstandardby their own and
these standards are followed by the developers of that particular organizations only.
However, there are some common representative coding standards and guidelines that are
more overly applicable to all and are mostly followed by every developer or organization.
Following are some of them,
13
❑ Rulesforglobalvariablesdeclaration:
There are rules which define what type of variables can be declared as global and what cannot.
This helps to maintain the confidentiality of the data and is also helpful in cases where the
access rights are to be provided only to the selected group of users.
❑ Namingconventions:
Naming conventions are set for declaring any sort of entity or variable within the software. This
provides a regularity in the structure of the names defined. For example, ‘every button should
have its name in all capitals’ can be a naming convention.
❑ Contents ofheaders:
The data that must be there in the header of each module has a pre-defined format. This usually
includes the name of the module, data of creation, date of approval, developer’s or author’s
name, synopsis, description of the module, description of the variables and functions defined in
the module,etc.
14
❑ Error returnconventions:
There are certain conditions in which the input data is bounded within some range. If in such
cases, the data entered by the user exceeds the particular range, then an error message should
be displayed. The range and criteria for which the error should pop up is defined in the error
return conventions.
❑ Usecodingstyle thatiseasytounderstandandisgloballyaccepted:
It is recommended that the coding style that is being followed must be easy to understand and
should be similar to that which is globally accepted or else it would be difficult for the user to
understand it and also it would take time for the developers to develop a habit of following a
completely new coding format.
❑ Thelengthoffunctionsormethodsshouldbesmall:
It is a good practice to keep the body of the functions small, nearly about 10-12 code lines. This
makes the code readable and easily modifiable.
15
❑ Do not unnecessarily use statements that break the control flow of
statements:
It is advised not to use jump, goto and function calls unnecessarily as it takes extra
time for the processor to break the going flow, search for the mentioned statement,
load those statements, execute them and then return to the previous calling
function. Therefore, try to avoid such situations as much as possible.
❑ Choose identifier names uniquely within the module:
Every identifier at least within the module must have a unique name to avoid
ambiguity.
16
SOFTWARE TESTING
Software testing is a process, to evaluate the functionality of a software
application with an intent to find whether the developed software met the
specified requirements or not and to identify the defects to ensure that the
product is defect-free in order to produce a quality product.
Some of the reasons why testing become a very significant and integral part of
the field of information technology are as follows.
❖ Cost-effectiveness
❖ Customer Satisfaction
❖ Security
❖ Product Quality
17
DIFFERENT TYPES OF SOFTWARE TESTING
❖ Manual Testing:
 Manual testing is the process of testing the software by hand to learn more about it, to
find what is and isn’t working.
 This usually includes verifying all the features specified in requirements documents, but
often also includes the testers trying the software with the perspective of their end user’s in
mind.
 Manual test plans vary from fully scripted test cases, giving testers detailed steps and
expected results, through to high-level guides that steer exploratory testing sessions.
18
❖ AutomationTesting:
Automation testing is the process of testing the software using an automation
tool to find the defects.
In this process, testers execute the test scripts and generate the test results
automatically by using automation tools.
Some of the famous automation testing tools for functional testing include
Selenium and KatalonStudio.
19
SOFTWARETesting Levels:
❖ Unit Testing
❖ Integration Testing
❖ System Testing
❖ Acceptance Testing
20
❖ Unit Testing:
Unit Testing is done to check whether the individual modules of the source code are working properly. i.e.
testing each and every unit of the application separately by the developer in the developer’s environment.
It is AKA Module Testing or Component Testing.
❖ Integration Testing:
Integration Testing is the process of testing the connectivity or data transfer between a couple of unit tested
modules. It is AKA I&T Testing or String Testing. It is subdivided into the Top-Down Approach, Bottom-Up
Approach, and Sandwich Approach (Combination of Top-Down and Bottom-Up).
21
❖ System Testing (End to End Testing):
It’s a black box testing. Testing the fully integrated application is also called as an end to end scenario testing.
To ensure that the software works in all intended target systems. Verify thorough testing of every input in the
application to check for desired outputs.
Testing of the user’s experiences with the application.
❖ Acceptance Testing:
To obtain customer sign-off so that software can be delivered and payments received. Types of Acceptance
Testing are Alpha, Beta & Gamma Testing.
22
ThankYou
23

More Related Content

Similar to Software Engineering CSE/IT.pptx

SDLC Models
SDLC ModelsSDLC Models
SDLC ModelsCoddy5
 
Software development life cycle.
Software development life cycle.Software development life cycle.
Software development life cycle.RishavChandel1
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd modelsSukhdeep Singh
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptxDylanTilbury1
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3Warui Maina
 
Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)dipenpatelpatel
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship ChecklistRyan Polk
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile projectHarald Soevik
 
System software design1
System software design1System software design1
System software design1PrityRawat2
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelAmr E. Mohamed
 
Comparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyComparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyIJMER
 

Similar to Software Engineering CSE/IT.pptx (20)

Ooad quest and ans
Ooad quest and ansOoad quest and ans
Ooad quest and ans
 
SDLC Models
SDLC ModelsSDLC Models
SDLC Models
 
Software development life cycle.
Software development life cycle.Software development life cycle.
Software development life cycle.
 
My 15 day intern report
My 15 day intern reportMy 15 day intern report
My 15 day intern report
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
 
Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile project
 
System software design1
System software design1System software design1
System software design1
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
Introduction to problem solving in C
Introduction to problem solving in CIntroduction to problem solving in C
Introduction to problem solving in C
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle Model
 
Comparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyComparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available Methodology
 

More from TheULTIMATEALLROUNDE

More from TheULTIMATEALLROUNDE (7)

vai pdf name change kore de.pptx
vai pdf name change kore de.pptxvai pdf name change kore de.pptx
vai pdf name change kore de.pptx
 
Web.pptx
Web.pptxWeb.pptx
Web.pptx
 
Web Database.pptx
Web Database.pptxWeb Database.pptx
Web Database.pptx
 
lec10svm.ppt
lec10svm.pptlec10svm.ppt
lec10svm.ppt
 
Banglka.pptx
Banglka.pptxBanglka.pptx
Banglka.pptx
 
_14400120021_Human Computer Interaction (2).pptx
_14400120021_Human Computer Interaction (2).pptx_14400120021_Human Computer Interaction (2).pptx
_14400120021_Human Computer Interaction (2).pptx
 
SAYAN14_HCI PDF.pptx
SAYAN14_HCI PDF.pptxSAYAN14_HCI PDF.pptx
SAYAN14_HCI PDF.pptx
 

Recently uploaded

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Recently uploaded (20)

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Software Engineering CSE/IT.pptx

  • 1. NAME :SAYAN GHOSH ROLL:14400120032 SUBJECT :SOFTWARE ENGINEERING SUBJECT CODE :ESC 501 1
  • 2. INTRODUCTION TO SOFTWARE ENGINEERING Software engineering is the study of and practice of engineering to build, design, develop, maintain, and retire software. ● Examples are: computer language programming and coding, software testing, debugging, OOD, database management, etc. 2
  • 3. SOFTWARE DEVELOPMENT LIFE CYCLE MODELS SDLC is a process that defines the various stages involved in the development of software for delivering a high-quality product. SDLC stages cover the complete life cycle of a software i.e. from inception to retirement of the product. Adhering to the SDLC process leads to the development of the software in a systematic and disciplined manner. Types of Software developing life cycles (SDLC) : 1. Classical Waterfall Model 2. Iterative Waterfall Model 3. Prototyping Model 4. Evolutionary Model 5. Spiral Model 3
  • 4. ● CLASSIC WATERFALL MODEL The classical Waterfall Model was the first Process Model. It is also known as a linear-sequential life cycle model. It is very simple to understand and use. Classical waterfall model is the earliest, best known and most commonly used methodology. It is a sequential lifecycle that is simple to understand and use each phase has to be completed finished before another start which means no overlapping is allowed. • Feasibility study • Requirements analysis and specifications • Design • Coding and unit testing • Integration and system testing • Maintenance 4
  • 5. ● ITERATIVE WATERFALL MODEL Iterative Waterfall Model is the extension of the Waterfall model. This model is almost same as the waterfall model except some modifications are made to improve the performance of the software development. The iterative waterfall model provides customer’s feedback paths from each phase to its previous phases. Iterative Waterfall Model strengths ❏ Easy to understand, easy to use. ❏ Provides a reference for inexperienced staff. ❏ Milestones are well understood by the team. ❏ It provides requirements stability. ❏ Facilitates strong management controls. 5
  • 6. ● PROTOTYPING MODEL The prototyping model is applied when detailed information related to input and output requirements of the system is not available. In this model, it is assumed that all the requirements may not be known at the start of the development of the system. This model allows the users to interact and experiment with a working model of the system known as prototype. The prototype gives the user an actual feel of the system. Types of PrototypingModels ❏ Rapid Throwaway prototypes ❏ Evolutionary prototype ❏ Incremental prototype ❏ Extreme prototype 6
  • 7. ● SPIRAL MODEL The spiral model is an SDLC model that combines elements of an iterative software development model with a waterfall model. It is advisable to use this model for expensive, large and complex projects. Stages of SpiralModel It has four stages ❏ Determineobjectivesandidentifyalternativesolutions ❏ Identifyandresolverisks ❏ Developnextleveloftheproduct ❏ Reviewandplanforthenextphase 7
  • 8. SOFTWAREDESIGN Software engineering is the process of analyzing user needs and designing, constructing, and testing end-user applications that will satisfy these needs through the use of software programming languages. It is the application of engineering principles to software development. ● COUPLING:Coupling in software engineering is the inter-dependency or degree of relationship between multiple modules/packages/components. Coupling is also called Inter-Module Binding. ● COHESION :Cohesion refers to what module can do, internally. It is also called Intra-Module binding as it measures the strength of relationship of functionalities inside a module/package/component. Cohesion should always be high means that a module/package/component is focused on what it should be doing, i.e. only methods relating to the intention of the class. 8
  • 9. TYPES OF COUPLING 1. DataCoupling:When modules shared primitive data between them. 2. StampCoupling:When modules shared composite or structural data between them and It must be a non- global data structure. for example, Passing object or structure variable in react components. 3. ControlCoupling:When data from one module is used to direct the structure of instruction execution in another. 4. ExternalCoupling:When two modules shared externally imposed data type that is external to the software like communication protocols, device interfaces. 5. CommonCoupling:When two modules shared the same global data & dependent on them, like state management in JavaScript frameworks. 6. ContentCoupling:When two modules shared code and can modify the data of another module, which is the worst coupling and should be avoided. 9
  • 10. TYPES OF COHESION 1. FunctionalCohesion:The execution of the task related to the problem is the only concern from all the elements inside the module. 2. SequentialCohesion:The output of an element is the input of other element in a module i.e., data flow between the parts. 3. CommunicationalCohesion:Multiple elements in a module operate on same input data and produce same output data. 4. ProceduralCohesion:The activities in module are related by sequence, otherwise they are not related. 5. CoincidentalCohesion:The activities with meaningless relationship with one another are contributed by the elements in the module 10
  • 11. UMLDIAGRAM Interaction diagrams are a subclass of behavioral diagrams that give emphasis to object interactions and also depicts the flow between various use case elements of a system. In simple words, it shows how objects interact with each other and how the data flows within them. Today, UML is accepted by the Object Management Group (OMG) as the standard for modeling software development. The key to making a UML diagram is connecting shapes that represent an object or class with other shapes to illustrate relationships and the flow of information and data. 11
  • 12. Types of UMLDiagrams  Structural UMLdiagrams ❖ Class diagram ❖ Package diagram ❖ Object diagram ❖ Component diagram ❖ Composite structure diagram ❖ Deployment diagram  Behavioral UMLdiagrams ❖ Activity diagram ❖ Sequence diagram ❖ Use case diagram ❖ State diagram ❖ Communication diagram ❖ Interaction overview diagram ❖ Timing diagram 12
  • 13. CODINGSTANDARDS AND GUIDELINES Codingstandardsare the set of guidelines or norms that are globally set or are set by various software development organizations (and they hold only to that particular organization) and these guidelines should be followed by all the developers to produce a good quality software. There are various benefits of using the coding standards while coding the software like, ● Code understanding becomes easier ● Entire code of the whole software has same format and style of coding ● Encourages good programming skills Most of the top software developing companies set their codingstandardby their own and these standards are followed by the developers of that particular organizations only. However, there are some common representative coding standards and guidelines that are more overly applicable to all and are mostly followed by every developer or organization. Following are some of them, 13
  • 14. ❑ Rulesforglobalvariablesdeclaration: There are rules which define what type of variables can be declared as global and what cannot. This helps to maintain the confidentiality of the data and is also helpful in cases where the access rights are to be provided only to the selected group of users. ❑ Namingconventions: Naming conventions are set for declaring any sort of entity or variable within the software. This provides a regularity in the structure of the names defined. For example, ‘every button should have its name in all capitals’ can be a naming convention. ❑ Contents ofheaders: The data that must be there in the header of each module has a pre-defined format. This usually includes the name of the module, data of creation, date of approval, developer’s or author’s name, synopsis, description of the module, description of the variables and functions defined in the module,etc. 14
  • 15. ❑ Error returnconventions: There are certain conditions in which the input data is bounded within some range. If in such cases, the data entered by the user exceeds the particular range, then an error message should be displayed. The range and criteria for which the error should pop up is defined in the error return conventions. ❑ Usecodingstyle thatiseasytounderstandandisgloballyaccepted: It is recommended that the coding style that is being followed must be easy to understand and should be similar to that which is globally accepted or else it would be difficult for the user to understand it and also it would take time for the developers to develop a habit of following a completely new coding format. ❑ Thelengthoffunctionsormethodsshouldbesmall: It is a good practice to keep the body of the functions small, nearly about 10-12 code lines. This makes the code readable and easily modifiable. 15
  • 16. ❑ Do not unnecessarily use statements that break the control flow of statements: It is advised not to use jump, goto and function calls unnecessarily as it takes extra time for the processor to break the going flow, search for the mentioned statement, load those statements, execute them and then return to the previous calling function. Therefore, try to avoid such situations as much as possible. ❑ Choose identifier names uniquely within the module: Every identifier at least within the module must have a unique name to avoid ambiguity. 16
  • 17. SOFTWARE TESTING Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect-free in order to produce a quality product. Some of the reasons why testing become a very significant and integral part of the field of information technology are as follows. ❖ Cost-effectiveness ❖ Customer Satisfaction ❖ Security ❖ Product Quality 17
  • 18. DIFFERENT TYPES OF SOFTWARE TESTING ❖ Manual Testing:  Manual testing is the process of testing the software by hand to learn more about it, to find what is and isn’t working.  This usually includes verifying all the features specified in requirements documents, but often also includes the testers trying the software with the perspective of their end user’s in mind.  Manual test plans vary from fully scripted test cases, giving testers detailed steps and expected results, through to high-level guides that steer exploratory testing sessions. 18
  • 19. ❖ AutomationTesting: Automation testing is the process of testing the software using an automation tool to find the defects. In this process, testers execute the test scripts and generate the test results automatically by using automation tools. Some of the famous automation testing tools for functional testing include Selenium and KatalonStudio. 19
  • 20. SOFTWARETesting Levels: ❖ Unit Testing ❖ Integration Testing ❖ System Testing ❖ Acceptance Testing 20
  • 21. ❖ Unit Testing: Unit Testing is done to check whether the individual modules of the source code are working properly. i.e. testing each and every unit of the application separately by the developer in the developer’s environment. It is AKA Module Testing or Component Testing. ❖ Integration Testing: Integration Testing is the process of testing the connectivity or data transfer between a couple of unit tested modules. It is AKA I&T Testing or String Testing. It is subdivided into the Top-Down Approach, Bottom-Up Approach, and Sandwich Approach (Combination of Top-Down and Bottom-Up). 21
  • 22. ❖ System Testing (End to End Testing): It’s a black box testing. Testing the fully integrated application is also called as an end to end scenario testing. To ensure that the software works in all intended target systems. Verify thorough testing of every input in the application to check for desired outputs. Testing of the user’s experiences with the application. ❖ Acceptance Testing: To obtain customer sign-off so that software can be delivered and payments received. Types of Acceptance Testing are Alpha, Beta & Gamma Testing. 22