0% found this document useful (0 votes)
78 views

Software Engineering: Unit-2

Software engineering is the application of engineering principles to the design, development, operation and maintenance of software in a systematic method. It aims to produce reliable and efficient software through well-defined scientific principles, techniques and procedures. Some key aspects of software engineering include managing large and complex software projects, improving quality, managing costs and schedules, and addressing the dynamic nature of software. The software development life cycle (SDLC) provides a framework for tasks in the software development process from requirements gathering to maintenance. Common SDLC models include waterfall, iterative, incremental and agile models.

Uploaded by

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

Software Engineering: Unit-2

Software engineering is the application of engineering principles to the design, development, operation and maintenance of software in a systematic method. It aims to produce reliable and efficient software through well-defined scientific principles, techniques and procedures. Some key aspects of software engineering include managing large and complex software projects, improving quality, managing costs and schedules, and addressing the dynamic nature of software. The software development life cycle (SDLC) provides a framework for tasks in the software development process from requirements gathering to maintenance. Common SDLC models include waterfall, iterative, incremental and agile models.

Uploaded by

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

Software Engineering

Unit-2
• What is Software Engineering?

• The term software engineering is the product of two words, software,


and engineering.

• The software is a collection of integrated programs

• Engineering is the application of scientific and practical knowledge


to invent, design, build, maintain, and improve frameworks, processes,
etc.
• Software Engineering is an engineering branch related to the evolution of
software product using well-defined scientific principles, techniques, and
procedures.
• The result of software engineering is an effective and reliable software product.

• Definition:1
• Software Engineering is a systematic, disciplined, quantifiable study and
approach to the design, development, operation, and maintenance of a software
system

• Definition:2
Software engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and work
efficiently on real machines.
• Why is Software Engineering required?

• Software Engineering is required due to the following reasons:


• To manage Large software
• For more Scalability
• Cost Management
• To manage the dynamic nature of software
• For better quality Management
• Objectives of Software Engineering: 
• Efficiency – 
The software should not make wasteful use of computing devices such as
memory, processor cycles, etc.
• Correctness – 
A software product is correct if the different requirements as specified in the
SRS document have been correctly implemented.
• Reusability – 
A software product has good reusability if the different modules of the product
can easily be reused to develop new products.
• Portability – 
In this case, the software can be transferred from one computer system or
environment to another.
• Software Crisis
1.Size: Software is becoming more expensive and more complex with the growing
complexity and expectation out of software. For example, the code in the consumer
product is doubling every couple of years.

2.Quality: Many software products have poor quality, i.e., the software products
defects after putting into use due to ineffective testing technique. For example,
Software testing typically finds 25 errors per 1000 lines of code.

3.Cost: Software development is costly i.e. in terms of time taken to develop and the
money involved.

4.Delayed Delivery: Serious schedule overruns are common. Very often the software
takes longer than the estimated time to develop, which in turn leads to cost shooting
up. For example, one in four large-scale development projects is never completed.
SDLC(software development life cycle)
• Software Development Life Cycle (SDLC) is a process used by the software
industry to design, develop and test high quality software’s.

• The SDLC aims to produce a high-quality software that meets or exceeds customer
expectations.

• SDLC is the acronym of Software Development Life Cycle.

• It is also called as Software Development Process.

• SDLC is a framework defining tasks performed at each step in the


software development process.
• What is SDLC ?

• SDLC is a process followed for a software project, within a software


organization. 

• It consists of a detailed plan describing how to develop, maintain,


replace and alter or enhance specific software. 

• The life cycle defines a methodology for improving the quality of


software and the overall development process.
• The following figure is a graphical representation of the various stages
of a typical SDLC
• #1) Requirement Gathering and Analysis.
• #2) Design.
• #3) Implementation or Coding.
• #4) Testing.
• #5) Deployment.
• #6) Maintenance.
• Stage 1: Requirement Analysis
• Requirement analysis is the most important and fundamental stage in SDLC.

• It is performed by the senior members of the team with inputs from the customer

• Stage 2: Defining Requirements


• Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or
the market analysts.

• This is done through an SRS (Software Requirement Specification) document


which consists of all the product requirements to be designed and developed
during the project life cycle.
• Stage 3: Designing the Product Architecture
• SRS is the reference for product architects to come out with the best architecture
for the product to be developed.

• Based on the requirements specified in SRS, usually more than one design
approach for the product architecture is proposed and documented in a DDS -
Design Document Specification.
• Stage 4: Building or Developing the Product

• In this stage of SDLC the actual development starts and the product is built.

• The programming code is generated as per DDS during this stage.


• Stage 5: Testing the Product

• This stage is usually a subset of all the stages as in the modern SDLC models, the testing
activities are mostly involved in all the stages of SDLC.

• However, this stage refers to the testing only stage of the product where product defects are
reported, tracked, fixed and retested, until the product reaches the quality standards defined
in the SRS.

• Testing:
• Unit testing
• Integration testing
• Acceptance Testing
• Unit Testing

• During this first round of testing, the program is submitted to assessments that
focus on specific units or components of the software

• To determine whether each one is fully functional.

• The main aim of this endeavor is to determine whether the application


functions as designed.

• In this phase, a unit can refer to a function, individual program or even a


procedure
• Integration Testing

• Integration testing allows individuals the opportunity to combine all of the


units within a program and test them as a group.

• This testing level is designed to find interface defects between the


modules/functions.

• This is particularly beneficial because it determines how efficiently the units


are running together
• System Testing

• System testing is the first level in which the complete application is tested


as a whole

• System Testing is very important because it verifies that the application meets
the technical, functional, and business requirements that were set by the
customer.
• Acceptance Testing

• The final level, Acceptance testing (or User Acceptance Testing), is conducted
to determine whether the system is ready for release

• During this final phase, the user will test the system to find out whether the
application meets their business’ needs.

• Once this process has been completed and the software has passed, the
program will then be delivered to production.
• Stage 6: Deployment in the Market and Maintenance

• Once the product is tested and ready to be deployed it is released formally in the
appropriate market.

• Sometimes product deployment happens in stages as per the business strategy of


that organization. The product may first be released in a limited segment and
tested in the real business environment (UAT- User acceptance testing).

• After the product is released in the market, its maintenance is done for the existing
customer base.
Software Development Models
Waterfall model

RAD Model

Spiral Model

Incremental Model

Iterative Model

Agile Model
• Waterfall model:

• The Waterfall model follows through all development stages: analysis,


design, coding/implementation, testing, deployment, maintenance,
respectively. 

• Each phase has specific delivery deliverables and is strictly documented.

• The next step cannot start before the previous one is completed.

• Therefore, for instance, software requirements cannot be re-assessed


during the development/coding stage
• It is also impossible to view and test the software until the last deployment
phase is completed,

• which leads to higher project risks and unpredictable project outcomes. 

• This model can be used in: 

• Small and medium-sized simple projects (developing small companies’


websites) with clearly defined and unchanging requirements. 
• RAD Model (Rapid Application Development) 

• RAD (Rapid Application Development) is a concept that products can be


developed faster and of higher quality through

• Gathering requirements using workshops or focus groups

• The re-use of software components

• Less formality in reviews and other team communication


• When to use RAD Model?
• When the system should need to create the project that modularizes in a
short span time (2-3 months).

• When the requirements are well-known.

• When the technical risk is limited.

• Advantage of RAD Model


• This model is flexible for change.
• Each phase in RAD brings highest priority functionality to the customer.
• It reduced development time.
• Disadvantage of RAD Model
• It required highly skilled designers.
• All application is not compatible with RAD.
• Incremental Process model

• The incremental model combines the elements of waterfall model and they are applied
in an iterative fashion.

• The first increment in this model is generally a core product.

• Each increment builds the product and submits it to the customer for any suggested
modifications.

• The next increment implements on the customer's suggestions and add additional
requirements in the previous increment.

• This process is repeated until the product is finished.


• Advantages of incremental model

• This model is flexible because the cost of development is low


and initial product delivery is faster.

• It is easier to test and debug during the smaller iteration.

• Disadvantages of the incremental model

• The cost of the final product may cross the cost estimated
initially.

• This model requires a very clear and complete planning.


Agile Software development Process Model
• "Agile process model" refers to a software development approach based on iterative
development

• Agile methods break tasks into smaller iterations, or parts do not directly involve long term
planning

• The project scope and requirements are laid down at the beginning of the development process.

• Plans regarding the number of iterations, the duration and the scope of each iteration are
clearly defined in advance.

• Each iteration is considered as a short time "frame" in the Agile process model,
• . 
• which typically lasts from one to four weeks.

• The division of the entire project into smaller parts helps to minimize the
project risk and to reduce the overall project delivery time requirements

• Each iteration involves a team working through a full software


development life cycle including planning, requirements analysis, design,
coding, and testing before a working product is demonstrated to the client.
• Phases of Agile Model:

• Following are the phases in the Agile model are as follows:


1.Requirements gathering
2.Design the requirements
3.Construction/ iteration
4.Testing/ Quality assurance
5.Deployment
6.Feedback
• When to use the Agile Model?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team all the time.
• When project size is small.
• Advantage(Pros) of Agile Method:

1.Frequent Delivery

2.Face-to-Face Communication with clients.

3.Efficient design and fulfils the business requirement.

4.Anytime changes are acceptable.

5.It reduces total development time.


• Disadvantages(Cons) of Agile Model:

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


decisions taken throughout various phases can be misinterpreted at any time by
different team members.

2.Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.
SCRUM

• WHAT IS SCRUM?
• A Better Way Of Building Products
• Scrum is a framework 
• Scrum is a lightweight framework that helps people, teams and
organizations generate value through adaptive solutions for complex
problems.
• The Scrum Team
• The fundamental unit of Scrum is a small team of people, a Scrum Team.
The Scrum Team consists of one Scrum Master, one Product Owner, and 
Developers. Within a Scrum Team,

You might also like