SlideShare una empresa de Scribd logo
1 de 49
SOFTWARE ENGINEERING
(CSE 2014)
Department of Computer Science and Engineering
School of Engineering,
PRESIDENCY UNIVERSITY
TEXT BOOK AND REFERENCE BOOKS
Dept. of CSE, SOE, Presidency University
2
 REFERENCE MATERIALS:
 Text book(s):
 Roger S. Pressman, “Software Engineering – A Practitioner’s Approach”, VII
Edition, McGraw-Hill, 2017.
 Bob Hughes, Mike Cotterell, Rajib Mall, “Software Project Management”, VI
Edition, McGraw-Hill, 2018.
 Reference book(s):
 Ian Sommerville, “Software Engineering”, IX Edition, Pearson Education
Asia, 2011.
 Rajib Mall, “Fundamentals of Software Engineering”, VI Edition, PHI
learning private limited, 2014.
CHAPTER 1 - CONTENTS
1.Need for Software Engineering
2.Professional Software Development
3.Software Engineering Ethics
4.Software Engineering Practice-Essence of Practice,
5.General Principles Software Development Life Cycle
6.Waterfall Model – Classical Waterfall Model
7.Waterfall Model – Iterative Waterfall Model
8.Evolutionary model-Spiral
9.Evolutionary model-Prototype
What is Software & What is
Engineering?
•The term is made of two words, software and
engineering.
•Software is the programs and routines for a
computer or the program material for an
electronic device which make it run.
•Example: Excel or Windows or iTunes.
•Engineering on the other hand, is all about
developing products, using well-defined, scientific
principles and methods.
What is Software Engineering?
•Software engineering is defined as a process of
analyzing user requirements and then designing,
building, and testing software application which will
satisfy those requirements.
•As per IEEE, in its standard 610.12-1990, defines
software engineering as the application of a
systematic, disciplined, which is a computable
approach for the development, operation, and
maintenance of software.
Need for Software Engineering
The need of software engineering arises because of higher rate
of change in user requirements and environment on which the
software is working.
This includes:
Large software - It is easier to build a wall than to a house or
building, likewise, as the size of software become large
engineering has to step to give it a scientific process.
Scalability- If the software process were not based on
scientific and engineering concepts, it would be easier to re-
create new software than to scale an existing one.
Contd..
Cost- As hardware industry has shown its skills and huge
manufacturing has lower down the price of computer and
electronic hardware. But the cost of software remains high if
proper process is not adapted.
Dynamic Nature- The always growing and adapting nature of
software hugely depends upon the environment in which user
works. If the nature of software is always changing, new
enhancements need to be done in the existing one. This is
where software engineering plays a good role.
Quality Management- Better process of software development
provides better and quality software product.
Software is
Professional Software Development
•Professional Software Development is about the
emerging profession of software engineering – and
professional software practices that support
economical creation of high-quality software.
•What does a professional software engineer do?
•Software engineers develop, design, and test software
applications. They apply engineering principles to the
process of building software.
•Programming languages like C++, Java, and Python,
they design software for computer applications, mobile
apps, cloud platforms, and web applications.
Software Engineering Ethics
•Software engineering ethics establishes principles of
conduct that members of the profession are expected
to observe in the practice of software engineering.
•Software engineering ethics covers a wide ethical
spectrum. It participates in general, professional, and
technical ethics.
Software Engineering Ethics
The software engineers shall adhere to the following Eight
Principles:
1. PUBLIC – Software engineers shall act consistently with
the public interest.
2. CLIENT AND EMPLOYER – Software engineers shall act
in a manner that is in the best interests of their client and
employer consistent with the public interest.
3. PRODUCT – Software engineers shall ensure that their
products and related modifications meet the highest
professional standards possible.
4. JUDGMENT – Software engineers shall maintain integrity
and independence in their professional judgment.
Contd..
5. MANAGEMENT – Software engineering managers and
leaders shall subscribe to and promote an ethical approach to
the management of software development and maintenance.
6. PROFESSION – Software engineers shall advance the
integrity and reputation of the profession consistent with the
public interest.
7. COLLEAGUES – Software engineers shall be fair to and
supportive of their colleagues.
8. SELF – Software engineers shall participate in lifelong
learning regarding the practice of their profession and shall
promote an ethical approach to the practice of the profession.
What is the essence of software engineering practice?
•Essence intuitively describes all common aspects of
a software development endeavour and helps teams
understand where they are, what's missing or what
needs to be addressed - regardless of each team's
prescribed way of working.
•The essence of software engineering practice might
be described as: understand the problem, plan a
solution, carry out the plan, and examine the result
for accuracy.
Software Practice
•Practice is a broad array of concepts, principles,
methods, and tools that you must consider as
software is planned and developed.
•It represents the details—the technical
considerations —that are below the surface of the
software process—the things that you’ll need to
actually build high-quality computer software.
The Essence of Software Practice
George Polya, in a book written in 1945 (!), describes the
essence of software engineering practice and suggests:
1.Understand the problem
(communication and analysis).
2.Plan a solution
(modeling and software design).
3.Carry out the plan (code generation).
4.Examine the result for accuracy
(testing and quality assurance).
Dept. of CSE, SOE, Presidency University
19
Understand the Problem
• Who has a stake in the solution to the problem? That is, who
are the stakeholders?
• What are the unknowns? What data, functions, and features
are required to properly solve the problem?
• Can the problem be compartmentalized? Is it possible to
represent smaller problems that may be easier to understand?
• Can the problem be represented graphically? Can an analysis
model be created?
Dept. of CSE, SOE, Presidency University
20
Plan the Solution
• Have you seen similar problems before? Are there patterns
that are recognizable in a potential solution? Is there existing
software that implements the data, functions, and features
that are required?
• Has a similar problem been solved? If so, are elements of the
solution reusable?
• Can subproblems be defined? If so, are solutions readily
apparent for the subproblems?
• Can you represent a solution in a manner that leads to
effective implementation? Can a design model be created?
Dept. of CSE, SOE, Presidency University
21
Carry Out the Plan
•Does the solution conform to the plan? Is source code
traceable to the design model?
•Is each component part of the solution provably correct?
Has the design and code been reviewed, or better, have
correctness proofs been applied to algorithm?
Dept. of CSE, SOE, Presidency University
22
Examine the Result
•Is it possible to test each component part of the
solution? Has a reasonable testing strategy
been implemented?
•Does the solution produce results that conform
to the data, functions, and features that are
required? Has the software been validated
against all stakeholder requirements?
Dept. of CSE, SOE, Presidency University
23
Core Principles of Software Development Life Cycle
• The Reason It All Exists: Provide value to the customer and
the user. If you can’t provide value, then don’t do it.
• KISS:Keep It Simple, Stupid! All design should be as simple
as possible, but no simpler. This facilitates having a more
easily understood and easily maintained system.
• Maintain the product and project “vision”: A clear vision is
essential to the success of a S/W project.
• What you produce, others will consume: Always specify,
design, and implement knowing someone else have to
understand what you are doing.
Contd..
• Be open to the Future: Never design yourself into a corner.
Always ask “what if,” and prepare yourself for all possible
answers by creating systems that solve the general problem,
not just the specific one.
• Plan Ahead for Reuse: Planning ahead for reuse reduces the
cost and increases the value of both the reusable components
and the systems into which they are incorporated.
• Think! : Placing clear, complete thought before action
almost always produces better results.
Software Process Model
•A software process model is an abstraction of the
actual process, which is being described.
•It can also be defined as a simplified representation
of a software process.
•Each model represents a process from a specific
perspective
Waterfall Model
•The waterfall model is a classical model used in
system development life cycle to create a system
with a linear and sequential approach.
•It is termed as waterfall because the model develops
systematically from one phase to another in a
downward fashion.
Classical 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.
• The classical waterfall model divides the life cycle into a set
of phases. This model considers that one phase can be started
after the completion of the previous phase.
Classical Waterfall Model
• That is the output of one phase will be the input to the next
phase.
• Thus the development process can be considered as a
sequential flow in the waterfall. Here the phases do not
overlap with each other.
• The different sequential phases of the classical waterfall
model are shown in the below figure:
Classical Waterfall Model
Dept. of CSE, SOE, Presidency University
30
Classical Waterfall model Phases
• 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.
• These different identified solutions are analyzed based on
their benefits and drawbacks, The best solution is chosen and
all the other phases are carried out as per this solution
strategy.
Classical Waterfall model Phases
• 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: 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 customers.
Classical Waterfall model Phases
• 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.
• It includes high-level and detailed design as well as the
overall software architecture. A Software Design Document
is used to document all of this effort (SDD)
• 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.
Classical Waterfall model Phases
• Integration and System testing: Integration of different
modules are undertaken soon after they have been coded and
unit tested.
• 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.
Classical Waterfall model Phases
• 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.
Advantages of Classical Waterfall Model
• This model is very simple and is easy to understand.
• Phases in this model are processed one at a time.
• Each stage in the model is clearly defined.
• This model has very clear and well-understood milestones.
• Process, actions and results are very well documented.
• Reinforces good habits: define-before- design, design-before-
code.
• This model works well for smaller projects and projects
where requirements are well understood
Drawbacks of Classical Waterfall Model
•No feedback path
•Difficult to accommodate change requests
•No overlapping of phases
Iterative Waterfall Model
• the classical waterfall model is hard to use.
• The Iterative waterfall model can be thought of as
incorporating the necessary changes to the classical waterfall
model to make it usable in practical software development
projects.
• It is almost the same as the classical waterfall model except
some changes are made to increase the efficiency of the
software development.
• The iterative waterfall model provides feedback paths from
every phase to its preceding phases, which is the main
difference from the classical waterfall model.
Iterative Waterfall Model
Advantages of Iterative Waterfall
Model :
•Feedback Path
•Simple
•Cost-Effective
•Well-organized
Drawbacks of Iterative Waterfall Model :
•Difficult to incorporate change requests
•Incremental delivery not supported
•Overlapping of phases not supported
•Risk handling not supported
•Limited customer interactions
Incremental process model
Evolutionary Models
Dept. of CSE, SOE, Presidency University
43
• Software system evolves over time as requirements often
change as development proceeds.
• Usually a set of core product or system requirements is well
understood, but the details and extension have yet to be defined.
• You need a process model that has been explicitly designed to
accommodate a product that evolved over time.
• It is iterative that enables you to develop increasingly more
complete version of the software.
• Types: Prototyping and Spiral models.
Evolutionary Models - Prototyping
Dept. of CSE, SOE, Presidency University
44
• When to use: Customer defines a set of general objectives but
does not identify detailed requirements for functions and features.
Or Developer may be unsure of the efficiency of an algorithm, the
form that human computer interaction should take.
• Advantages: Both stakeholders and software engineers like the
prototyping paradigm. Users get a feel for the actual system, and
developers get to build something immediately. However,
engineers may make compromises in order to get a prototype
working quickly. The less-than-ideal choice may be adopted
forever after you get used to it.
Evolutionary Models - Prototyping
Dept. of CSE, SOE, Presidency University
45
communication
Quick
plan
Modeling
Quick design
Construction
of prototype
Deployment
delivery &
feedback
Evolutionary Models - Spiral
Dept. of CSE, SOE, Presidency University
46
• It couples the iterative nature of prototyping with the controlled
and systematic aspects of the waterfall model and is a risk-driven
process model generator that is used to guide multi-stakeholder
concurrent engineering of software intensive systems.
• Two main distinguishing features: one is cyclic approach for
incrementally growing a system’s degree of definition and
implementation while decreasing its degree of risk. The other is a
set of anchor point milestones for ensuring stakeholder
commitment to feasible and mutually satisfactory system
solutions.
Evolutionary Models - Spiral
Dept. of CSE, SOE, Presidency University
47
Three Concerns of Evolutionary Models
Dept. of CSE, SOE, Presidency University
48
 First concern is that prototyping poses a problem to project
planning because of the uncertain number of cycles required to
construct the product.
 Second, it does not establish the maximum speed of the evolution.
If the evolution occur too fast, without a period of relaxation, it is
certain that the process will fall into chaos. On the other hand if the
speed is too slow then productivity could be affected.
 Third, software processes should be focused on flexibility and
extensibility rather than on high quality. We should prioritize the
speed of the development over zero defects. Extending the
development in order to reach high quality could result in a late
delivery of the product when the opportunity niche has disappeared.
Module 1 Completed

Más contenido relacionado

Similar a CSE_2014 SE MODULE 1 V.10.pptx

unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxKalpna Saharan
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxGodwin Monserate
 
Rekayasa-Perangkat-Lunak-Pertemuan-1.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-1.pptRekayasa-Perangkat-Lunak-Pertemuan-1.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-1.pptAuliyaRahman9
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineeringMohesh Chandran
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineeringSHREEHARI WADAWADAGI
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 
UNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxUNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxDevnath13
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Module1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfModule1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfGerard Alba
 
Software Engineering - Introdution.ppt
Software Engineering - Introdution.pptSoftware Engineering - Introdution.ppt
Software Engineering - Introdution.pptSasiR18
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 

Similar a CSE_2014 SE MODULE 1 V.10.pptx (20)

Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptx
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Rekayasa-Perangkat-Lunak-Pertemuan-1.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-1.pptRekayasa-Perangkat-Lunak-Pertemuan-1.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-1.ppt
 
chapter 1.ppt
chapter 1.pptchapter 1.ppt
chapter 1.ppt
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineering
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
lect1.pdf
lect1.pdflect1.pdf
lect1.pdf
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
UNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxUNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptx
 
se
sese
se
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Module1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfModule1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdf
 
Software Engineering - Introdution.ppt
Software Engineering - Introdution.pptSoftware Engineering - Introdution.ppt
Software Engineering - Introdution.ppt
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

CSE_2014 SE MODULE 1 V.10.pptx

  • 1. SOFTWARE ENGINEERING (CSE 2014) Department of Computer Science and Engineering School of Engineering, PRESIDENCY UNIVERSITY
  • 2. TEXT BOOK AND REFERENCE BOOKS Dept. of CSE, SOE, Presidency University 2  REFERENCE MATERIALS:  Text book(s):  Roger S. Pressman, “Software Engineering – A Practitioner’s Approach”, VII Edition, McGraw-Hill, 2017.  Bob Hughes, Mike Cotterell, Rajib Mall, “Software Project Management”, VI Edition, McGraw-Hill, 2018.  Reference book(s):  Ian Sommerville, “Software Engineering”, IX Edition, Pearson Education Asia, 2011.  Rajib Mall, “Fundamentals of Software Engineering”, VI Edition, PHI learning private limited, 2014.
  • 3. CHAPTER 1 - CONTENTS 1.Need for Software Engineering 2.Professional Software Development 3.Software Engineering Ethics 4.Software Engineering Practice-Essence of Practice, 5.General Principles Software Development Life Cycle 6.Waterfall Model – Classical Waterfall Model 7.Waterfall Model – Iterative Waterfall Model 8.Evolutionary model-Spiral 9.Evolutionary model-Prototype
  • 4. What is Software & What is Engineering? •The term is made of two words, software and engineering. •Software is the programs and routines for a computer or the program material for an electronic device which make it run. •Example: Excel or Windows or iTunes. •Engineering on the other hand, is all about developing products, using well-defined, scientific principles and methods.
  • 5.
  • 6. What is Software Engineering? •Software engineering is defined as a process of analyzing user requirements and then designing, building, and testing software application which will satisfy those requirements. •As per IEEE, in its standard 610.12-1990, defines software engineering as the application of a systematic, disciplined, which is a computable approach for the development, operation, and maintenance of software.
  • 7.
  • 8. Need for Software Engineering The need of software engineering arises because of higher rate of change in user requirements and environment on which the software is working. This includes: Large software - It is easier to build a wall than to a house or building, likewise, as the size of software become large engineering has to step to give it a scientific process. Scalability- If the software process were not based on scientific and engineering concepts, it would be easier to re- create new software than to scale an existing one.
  • 9. Contd.. Cost- As hardware industry has shown its skills and huge manufacturing has lower down the price of computer and electronic hardware. But the cost of software remains high if proper process is not adapted. Dynamic Nature- The always growing and adapting nature of software hugely depends upon the environment in which user works. If the nature of software is always changing, new enhancements need to be done in the existing one. This is where software engineering plays a good role. Quality Management- Better process of software development provides better and quality software product.
  • 11.
  • 12. Professional Software Development •Professional Software Development is about the emerging profession of software engineering – and professional software practices that support economical creation of high-quality software. •What does a professional software engineer do? •Software engineers develop, design, and test software applications. They apply engineering principles to the process of building software. •Programming languages like C++, Java, and Python, they design software for computer applications, mobile apps, cloud platforms, and web applications.
  • 13. Software Engineering Ethics •Software engineering ethics establishes principles of conduct that members of the profession are expected to observe in the practice of software engineering. •Software engineering ethics covers a wide ethical spectrum. It participates in general, professional, and technical ethics.
  • 14. Software Engineering Ethics The software engineers shall adhere to the following Eight Principles: 1. PUBLIC – Software engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. 4. JUDGMENT – Software engineers shall maintain integrity and independence in their professional judgment.
  • 15. Contd.. 5. MANAGEMENT – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. 6. PROFESSION – Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 7. COLLEAGUES – Software engineers shall be fair to and supportive of their colleagues. 8. SELF – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
  • 16. What is the essence of software engineering practice? •Essence intuitively describes all common aspects of a software development endeavour and helps teams understand where they are, what's missing or what needs to be addressed - regardless of each team's prescribed way of working. •The essence of software engineering practice might be described as: understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.
  • 17. Software Practice •Practice is a broad array of concepts, principles, methods, and tools that you must consider as software is planned and developed. •It represents the details—the technical considerations —that are below the surface of the software process—the things that you’ll need to actually build high-quality computer software.
  • 18.
  • 19. The Essence of Software Practice George Polya, in a book written in 1945 (!), describes the essence of software engineering practice and suggests: 1.Understand the problem (communication and analysis). 2.Plan a solution (modeling and software design). 3.Carry out the plan (code generation). 4.Examine the result for accuracy (testing and quality assurance). Dept. of CSE, SOE, Presidency University 19
  • 20. Understand the Problem • Who has a stake in the solution to the problem? That is, who are the stakeholders? • What are the unknowns? What data, functions, and features are required to properly solve the problem? • Can the problem be compartmentalized? Is it possible to represent smaller problems that may be easier to understand? • Can the problem be represented graphically? Can an analysis model be created? Dept. of CSE, SOE, Presidency University 20
  • 21. Plan the Solution • Have you seen similar problems before? Are there patterns that are recognizable in a potential solution? Is there existing software that implements the data, functions, and features that are required? • Has a similar problem been solved? If so, are elements of the solution reusable? • Can subproblems be defined? If so, are solutions readily apparent for the subproblems? • Can you represent a solution in a manner that leads to effective implementation? Can a design model be created? Dept. of CSE, SOE, Presidency University 21
  • 22. Carry Out the Plan •Does the solution conform to the plan? Is source code traceable to the design model? •Is each component part of the solution provably correct? Has the design and code been reviewed, or better, have correctness proofs been applied to algorithm? Dept. of CSE, SOE, Presidency University 22
  • 23. Examine the Result •Is it possible to test each component part of the solution? Has a reasonable testing strategy been implemented? •Does the solution produce results that conform to the data, functions, and features that are required? Has the software been validated against all stakeholder requirements? Dept. of CSE, SOE, Presidency University 23
  • 24. Core Principles of Software Development Life Cycle • The Reason It All Exists: Provide value to the customer and the user. If you can’t provide value, then don’t do it. • KISS:Keep It Simple, Stupid! All design should be as simple as possible, but no simpler. This facilitates having a more easily understood and easily maintained system. • Maintain the product and project “vision”: A clear vision is essential to the success of a S/W project. • What you produce, others will consume: Always specify, design, and implement knowing someone else have to understand what you are doing.
  • 25. Contd.. • Be open to the Future: Never design yourself into a corner. Always ask “what if,” and prepare yourself for all possible answers by creating systems that solve the general problem, not just the specific one. • Plan Ahead for Reuse: Planning ahead for reuse reduces the cost and increases the value of both the reusable components and the systems into which they are incorporated. • Think! : Placing clear, complete thought before action almost always produces better results.
  • 26. Software Process Model •A software process model is an abstraction of the actual process, which is being described. •It can also be defined as a simplified representation of a software process. •Each model represents a process from a specific perspective
  • 27. Waterfall Model •The waterfall model is a classical model used in system development life cycle to create a system with a linear and sequential approach. •It is termed as waterfall because the model develops systematically from one phase to another in a downward fashion.
  • 28. Classical 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. • The classical waterfall model divides the life cycle into a set of phases. This model considers that one phase can be started after the completion of the previous phase.
  • 29. Classical Waterfall Model • That is the output of one phase will be the input to the next phase. • Thus the development process can be considered as a sequential flow in the waterfall. Here the phases do not overlap with each other. • The different sequential phases of the classical waterfall model are shown in the below figure:
  • 30. Classical Waterfall Model Dept. of CSE, SOE, Presidency University 30
  • 31. Classical Waterfall model Phases • 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. • These different identified solutions are analyzed based on their benefits and drawbacks, The best solution is chosen and all the other phases are carried out as per this solution strategy.
  • 32. Classical Waterfall model Phases • 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: 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 customers.
  • 33. Classical Waterfall model Phases • 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. • It includes high-level and detailed design as well as the overall software architecture. A Software Design Document is used to document all of this effort (SDD) • 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.
  • 34. Classical Waterfall model Phases • Integration and System testing: Integration of different modules are undertaken soon after they have been coded and unit tested. • 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.
  • 35. Classical Waterfall model Phases • 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.
  • 36. Advantages of Classical Waterfall Model • This model is very simple and is easy to understand. • Phases in this model are processed one at a time. • Each stage in the model is clearly defined. • This model has very clear and well-understood milestones. • Process, actions and results are very well documented. • Reinforces good habits: define-before- design, design-before- code. • This model works well for smaller projects and projects where requirements are well understood
  • 37. Drawbacks of Classical Waterfall Model •No feedback path •Difficult to accommodate change requests •No overlapping of phases
  • 38. Iterative Waterfall Model • the classical waterfall model is hard to use. • The Iterative waterfall model can be thought of as incorporating the necessary changes to the classical waterfall model to make it usable in practical software development projects. • It is almost the same as the classical waterfall model except some changes are made to increase the efficiency of the software development. • The iterative waterfall model provides feedback paths from every phase to its preceding phases, which is the main difference from the classical waterfall model.
  • 40. Advantages of Iterative Waterfall Model : •Feedback Path •Simple •Cost-Effective •Well-organized
  • 41. Drawbacks of Iterative Waterfall Model : •Difficult to incorporate change requests •Incremental delivery not supported •Overlapping of phases not supported •Risk handling not supported •Limited customer interactions
  • 43. Evolutionary Models Dept. of CSE, SOE, Presidency University 43 • Software system evolves over time as requirements often change as development proceeds. • Usually a set of core product or system requirements is well understood, but the details and extension have yet to be defined. • You need a process model that has been explicitly designed to accommodate a product that evolved over time. • It is iterative that enables you to develop increasingly more complete version of the software. • Types: Prototyping and Spiral models.
  • 44. Evolutionary Models - Prototyping Dept. of CSE, SOE, Presidency University 44 • When to use: Customer defines a set of general objectives but does not identify detailed requirements for functions and features. Or Developer may be unsure of the efficiency of an algorithm, the form that human computer interaction should take. • Advantages: Both stakeholders and software engineers like the prototyping paradigm. Users get a feel for the actual system, and developers get to build something immediately. However, engineers may make compromises in order to get a prototype working quickly. The less-than-ideal choice may be adopted forever after you get used to it.
  • 45. Evolutionary Models - Prototyping Dept. of CSE, SOE, Presidency University 45 communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  • 46. Evolutionary Models - Spiral Dept. of CSE, SOE, Presidency University 46 • It couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model and is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of software intensive systems. • Two main distinguishing features: one is cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. The other is a set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.
  • 47. Evolutionary Models - Spiral Dept. of CSE, SOE, Presidency University 47
  • 48. Three Concerns of Evolutionary Models Dept. of CSE, SOE, Presidency University 48  First concern is that prototyping poses a problem to project planning because of the uncertain number of cycles required to construct the product.  Second, it does not establish the maximum speed of the evolution. If the evolution occur too fast, without a period of relaxation, it is certain that the process will fall into chaos. On the other hand if the speed is too slow then productivity could be affected.  Third, software processes should be focused on flexibility and extensibility rather than on high quality. We should prioritize the speed of the development over zero defects. Extending the development in order to reach high quality could result in a late delivery of the product when the opportunity niche has disappeared.