SOFTWARE
ENGINEERING
The term software engineering
is composed of two words,
software and engineering.
Software Engineering as an engineering
branch associated with the development
of software product using well-defined
scientific principles, methods and
procedures.
The outcome of software engineering is
an efficient and reliable software product.
NEEDS OF SOFTWARE ENGINEERING
The importance of software engineering lies in the
fact that a specific piece of Software is required in
almost every industry, every business, and purpose.
As time goes on, it becomes more important for
the following reasons that we will be discussing in
detail:
1.Reduces Complexity
2.Handling Big Projects
3.To Minimize Software costs
4.To decrease time
5.Effectiveness
6.Reliable Software
1. Reduces Complexity
Dealing with big Software is very
complicated and challenging. Thus, to
reduce the complications of projects,
software engineering has great
solutions. It simplifies complex problems
and solves those issues one by one.
2. Handling Big Projects
Big projects need lots of patience,
planning, and management, which you
never get from any company. The
company will invest its resources;
therefore, it should be completed within
the deadline. It is only possible if the
company uses software engineering to
deal with big projects without problems.
3. To Minimize Software Costs
Software engineers are paid highly as
Software needs a lot of hard work and
workforce development. These are developed
with the help of a large number of codes. But
programmers in software engineering project
all things and reduce the things which are not
needed. As a result of the production of
Software, costs become less and more
affordable for Software that does not use this
method.
4. To Decrease Time
If things are not made according to
the procedures, it becomes a huge
loss of time. Accordingly, complex
Software must run much code to get
definitive running code. So, it takes
lots of time if not handled properly.
5. Effectiveness
Making standards decides the
effectiveness of things. Therefore,
a company always targets the
software standard to make it more
effective. And Software becomes
more effective only with the help
of software engineering.
6. Reliable Software
The Software will be reliable if
software engineering, testing, and
maintenance are given. As a
software developer, you must
ensure that the Software is secure
and will work for the period or
subscription you have agreed
CHARACTERESTICS
OF
GOOD SOFTWARE
Operational
This tells us how well
software works in
operations. It can be
measured on:
 Budget
 Usability
 Efficiency
 Correctness
 Functionality
 Dependability
 Security
 Safety
Transitional
This aspect is important
when the software is
moved from one platform
to another:
 Portability
 Interoperability
 Reusability
 Adaptability
Maintenance
This aspect briefs about
how well a software has
the capabilities to
maintain itself in the ever-
changing environment:
 Modularity
 Maintainability
 Flexibility
 Scalability
Characteristics of Good Software
Functionality:The software meets the requirements and specifications that it was designed for, and it
behaves as expected when it is used in its intended environment.
Usability: The software is easy to use and understand, and it provides a positive user experience.
Reliability: The software is free of defects, and it performs consistently and accurately under different
conditions and scenarios.
Performance: The software runs efficiently and quickly, and it can handle large amounts of data or
traffic.
Security: The software is protected against unauthorized access, and it keeps the data and functions
safe from malicious attacks.
Maintainability: The software is easy to change and update, and it is well-documented, so that it can
be understood and modified by other developers.
Reusability: The software can be reused in other projects or applications, and it is designed in a way
that promotes code reuse.
Scalability: The software can handle an increasing workload, and it can be easily extended to meet
the changing requirements.
Testability: The software is designed in a way that makes it easy to test and validate, and it has a
comprehensive test coverage.
DIFFERENT SOFTWARE LIFE CYCLE
MODEL MODULE
SOFTWARE MODEL: By using diagrams
and various modeling languages,
software modeling helps in visualizing
and understanding the complex aspects
of the software, making it easier to
plan, develop, and manage the system.
Top 8 Software Development Models
• 1. Waterfall Model
• 2. V-Model
• 3. Incremental Model
• 4. RAD Model
• 5. Iterative Model
• 6. Spiral Model
• 7. Prototype model
• 8. Agile Model
The Waterfall process is a step-
by-step development and project
management process. As the
name suggests, this model
follows a straight path where
each step (like planning,
designing, building, testing, and
launching) needs to be finished
before moving to the next. This
approach works well for projects
where all the steps are clear from
the beginning.
The validation phase involves
dynamic analysis methods and testing
to ensure the software product meets
the customer’s requirements and
expectations. This phase includes
several stages including unit testing,
integration testing, system testing
and acceptance testing.
V-Design: In V-Design the left side
represents the development activity, the
right side represents the testing activity.
The verification phase refers to the
practice of evaluating the
product development process to
ensure the team meets the specified
requirements. The verification phase
includes several steps: business
requirement analysis, system
analysis, software architecture design,
module design and coding.
Incremental Model is a
process of software
development where
requirements divided into
multiple standalone
modules of the software
development cycle. In this
model, each module goes
through the requirements,
design, implementation
and testing phases.
RAD model stands
for rapid application
development model.
The methodology of
RAD model is similar
to that of
incremental or
waterfall model. It is
used for small
projects.
The basic concept of
Iterative model is that the
software should be
developed through repeated
cycles or what we also call
iteration and only a small
part of it should be
developed at a time. This
model was developed to
overcome the drawbacks of
the classical waterfall model.
The Spiral Model is one of
the most important
Software Development Life
Cycle models
. The Spiral Model is a
combination of the waterfall
model and the iterative
model.
Prototype model is an activity in
which prototypes of software
applications are created. First a
prototype is created and then the
final product is manufactured
based on that prototype.
One problem in this model is that
if the end users are not satisfied
with the prototype model, then a
new prototype model is created
again, due to which this model
consumes a lot of money and time.
The Spiral Model is a
combination of the
waterfall model and
the iterative model.
THANKYOU

Sofware Engineering LECTURE COMPUTER SCIENCE.pptx

  • 1.
  • 2.
    The term softwareengineering is composed of two words, software and engineering.
  • 3.
    Software Engineering asan engineering branch associated with the development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product.
  • 4.
    NEEDS OF SOFTWAREENGINEERING
  • 5.
    The importance ofsoftware engineering lies in the fact that a specific piece of Software is required in almost every industry, every business, and purpose. As time goes on, it becomes more important for the following reasons that we will be discussing in detail: 1.Reduces Complexity 2.Handling Big Projects 3.To Minimize Software costs 4.To decrease time 5.Effectiveness 6.Reliable Software
  • 6.
    1. Reduces Complexity Dealingwith big Software is very complicated and challenging. Thus, to reduce the complications of projects, software engineering has great solutions. It simplifies complex problems and solves those issues one by one.
  • 7.
    2. Handling BigProjects Big projects need lots of patience, planning, and management, which you never get from any company. The company will invest its resources; therefore, it should be completed within the deadline. It is only possible if the company uses software engineering to deal with big projects without problems.
  • 8.
    3. To MinimizeSoftware Costs Software engineers are paid highly as Software needs a lot of hard work and workforce development. These are developed with the help of a large number of codes. But programmers in software engineering project all things and reduce the things which are not needed. As a result of the production of Software, costs become less and more affordable for Software that does not use this method.
  • 9.
    4. To DecreaseTime If things are not made according to the procedures, it becomes a huge loss of time. Accordingly, complex Software must run much code to get definitive running code. So, it takes lots of time if not handled properly.
  • 10.
    5. Effectiveness Making standardsdecides the effectiveness of things. Therefore, a company always targets the software standard to make it more effective. And Software becomes more effective only with the help of software engineering.
  • 11.
    6. Reliable Software TheSoftware will be reliable if software engineering, testing, and maintenance are given. As a software developer, you must ensure that the Software is secure and will work for the period or subscription you have agreed
  • 12.
  • 14.
    Operational This tells ushow well software works in operations. It can be measured on:  Budget  Usability  Efficiency  Correctness  Functionality  Dependability  Security  Safety Transitional This aspect is important when the software is moved from one platform to another:  Portability  Interoperability  Reusability  Adaptability Maintenance This aspect briefs about how well a software has the capabilities to maintain itself in the ever- changing environment:  Modularity  Maintainability  Flexibility  Scalability
  • 15.
    Characteristics of GoodSoftware Functionality:The software meets the requirements and specifications that it was designed for, and it behaves as expected when it is used in its intended environment. Usability: The software is easy to use and understand, and it provides a positive user experience. Reliability: The software is free of defects, and it performs consistently and accurately under different conditions and scenarios. Performance: The software runs efficiently and quickly, and it can handle large amounts of data or traffic. Security: The software is protected against unauthorized access, and it keeps the data and functions safe from malicious attacks. Maintainability: The software is easy to change and update, and it is well-documented, so that it can be understood and modified by other developers. Reusability: The software can be reused in other projects or applications, and it is designed in a way that promotes code reuse. Scalability: The software can handle an increasing workload, and it can be easily extended to meet the changing requirements. Testability: The software is designed in a way that makes it easy to test and validate, and it has a comprehensive test coverage.
  • 16.
    DIFFERENT SOFTWARE LIFECYCLE MODEL MODULE
  • 17.
    SOFTWARE MODEL: Byusing diagrams and various modeling languages, software modeling helps in visualizing and understanding the complex aspects of the software, making it easier to plan, develop, and manage the system.
  • 18.
    Top 8 SoftwareDevelopment Models • 1. Waterfall Model • 2. V-Model • 3. Incremental Model • 4. RAD Model • 5. Iterative Model • 6. Spiral Model • 7. Prototype model • 8. Agile Model
  • 19.
    The Waterfall processis a step- by-step development and project management process. As the name suggests, this model follows a straight path where each step (like planning, designing, building, testing, and launching) needs to be finished before moving to the next. This approach works well for projects where all the steps are clear from the beginning.
  • 20.
    The validation phaseinvolves dynamic analysis methods and testing to ensure the software product meets the customer’s requirements and expectations. This phase includes several stages including unit testing, integration testing, system testing and acceptance testing. V-Design: In V-Design the left side represents the development activity, the right side represents the testing activity. The verification phase refers to the practice of evaluating the product development process to ensure the team meets the specified requirements. The verification phase includes several steps: business requirement analysis, system analysis, software architecture design, module design and coding.
  • 21.
    Incremental Model isa process of software development where requirements divided into multiple standalone modules of the software development cycle. In this model, each module goes through the requirements, design, implementation and testing phases.
  • 22.
    RAD model stands forrapid application development model. The methodology of RAD model is similar to that of incremental or waterfall model. It is used for small projects.
  • 23.
    The basic conceptof Iterative model is that the software should be developed through repeated cycles or what we also call iteration and only a small part of it should be developed at a time. This model was developed to overcome the drawbacks of the classical waterfall model.
  • 24.
    The Spiral Modelis one of the most important Software Development Life Cycle models . The Spiral Model is a combination of the waterfall model and the iterative model.
  • 25.
    Prototype model isan activity in which prototypes of software applications are created. First a prototype is created and then the final product is manufactured based on that prototype. One problem in this model is that if the end users are not satisfied with the prototype model, then a new prototype model is created again, due to which this model consumes a lot of money and time.
  • 26.
    The Spiral Modelis a combination of the waterfall model and the iterative model.
  • 27.