0% found this document useful (0 votes)
18 views56 pages

Unit 1

The document outlines the layered approach to software engineering, emphasizing the importance of quality, processes, methods, and tools in software development. It details key process activities such as software specifications, development, validation, and evolution, as well as various software development models including Agile methodologies like Scrum and Extreme Programming. Additionally, it highlights the core values of Extreme Programming and its practices, such as pair programming and continuous integration.

Uploaded by

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

Unit 1

The document outlines the layered approach to software engineering, emphasizing the importance of quality, processes, methods, and tools in software development. It details key process activities such as software specifications, development, validation, and evolution, as well as various software development models including Agile methodologies like Scrum and Extreme Programming. Additionally, it highlights the core values of Extreme Programming and its practices, such as pair programming and continuous integration.

Uploaded by

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

S S JAISWAL

LECTURER IN COMPUTER ENGINEERING

Government Polytechnic, Chhatrapati


Sambhajinagar
Software Engineering.-A layered Technology
approach
• Software engineering - Layered Approch Software engineering is a
fully layered technology.
• To develop a software, we need to go from one layer to another.
• All these layers are related to each other and each layer demands the
fulfillment of the previous layer.
The layered technology consists of:
1. Quality focus
The characteristics of good quality software are
 Correctness of the functions required to be performed by the software.
 Maintainability of the software Integrity i.e. providing security so that the
unauthorized user cannot access information or data.
 Usability i.e. the efforts required to use or operate the software.
2. Process :
 It is the base layer or foundation layer for the software engineering.
 The software process is the key to keep all levels together.
It defines a framework that includes different activities and tasks.
 In short, it covers all activities, actions and tasks required to be carried out for
software development.
Process defines a framework for a set of key process areas (KPAs)
Key Process Activities
• There four basic key process activities are:
• Software Specifications: In this process, detailed description of a
software system to be developed with its functional and non-
functional requirements.
• Software Development: In this process, designing, programming,
documenting, testing, and bug fixing is done.
• Software Validation: In this process, evaluation software product is
done to ensure that the software meets the business requirements as
well as the end users needs.
• Software Evolution: It is a process of developing software initially,
then timely updating it for various reasons.
3. Methods :
 The methods are used to understand how to implement technical processes for
building software.
 It provides the technical way to implement the software.
It includes collection of tasks starting from communication, requirement analysis,
and design modelling, program construction, testing and support.

4. Tools :
Software engineering tools provide automated or semi-automated support for the
process and the methods.
The tools are integrated i.e the information created by one tool can be used by the
other tool.
a system for the support of software development, called computer-aided software
engineering.
CASE tool are useful in analysis,design,program and in testing
Software development models are various
processes or methods that are chosen for project
development depending on the objectives and
goals of the project.
Prescriptive Process Models
• Waterfall Model
• Incremental Model
• Prototyping Model
• Spiral Model
3. Methods :
 The methods are used to understand how to implement technical processes for
building software.
 It provides the technical way to implement the software.
It includes collection of tasks starting from communication, requirement analysis,
and design modelling, program construction, testing and support.

4. Tools :
Software engineering tools provide automated or semi-automated support for
the process and the methods.
The tools are integrated i.e the information created by one tool can be used by
the other tool.
a system for the support of software development, called computer-aided
software engineering.
CASE tool are useful in analysis,design,program and in testing
Agile methodology
Terminologies in Agile Scrum
 Daily Scrum: The main purpose or objective of daily scrum is to inspect the
progress of the sprint goal and to adapt the sprint backlog to adjust the
upcoming planned work.
 Sprint Review: The main objective of the sprint review is to inspect the
outcome of the sprint and determine the future adaptation. The teams
shows the results of them to the stakeholders and get the required feedback
from them.
 Sprint Retrospective: The main objective of sprint retrospective is to help
the team to build the habit of continuous process of improvement The
purpose of the Sprint Retrospective is to plan ways to increase quality and
effectiveness. The Scrum Team inspects how the last Sprint went.
 Sprint Backlog: The list of everything which the team commits to
achieve in a sprint is known as Sprint Backlog. If it is developed once
nobody can add to the sprint backlog except the development team.
 Product Backlog: The ordered list of every single thing which is
needed in the product based on the product goal is known as
product backlog. It is never complete, and it is always evolving.
 sprint : is a set period of time during which specific work has to be
completed and made ready
 Product increment: In each sprint, the development team creates a
product increment. This is ultimately a small part of the "final"
product. Each Product Increment should be potentially shippable.
This means that it does not have to be delivered, but it should be in a
deliverable state.
• Product Owner: Product owner is responsible for managing the demand
of the companies its multiple stakeholders and partners. They are liable
for better return in the investments.
• Development Team: The development team are the group of individuals
which collaborate together to create and execute the required
production milestone. These teams are responsible to be self-organise
and to make necessary choices to acquire the desired tasks and complete
those tasks timely.
• Scrum Master: Scrum masters are defined as the product team which
implement scrum to generate a profitable value proposition. They are
responsible for managing the product team, development team and also
the company. They manage the work, plan and break down the given
task between the team to acquire the desired outcomes.
• Extreme programming is a lightweight, efficient, low-risk, flexible,predictable, scientific,
and fun way to develop a software.
• eXtreme Programming (XP) was developed to address the specific needs of software
development by small teams in the face of vague and changing requirements.
• Extreme Programming is one of the Agile software development methodologies. It
provides values and principles to guide the team behavior.
• The team is expected to self organize.
• Extreme Programming provides specific core practices where- Each practice is simple and
self-complete. Combination of practices produces more complex and emergent behavior.
• Extreme Programming is based on the following values-
• Communication
• Simplicity
• Feedback
• Courage
• Respect
Values of extreme programming
XP has simple rules that are based on 5 values to guide the teamwork:
• Communication. Everyone on a team works jointly at every stage of
the project.
• Simplicity. Developers strive to write simple code bringing more
value to a product, as it saves time and effort.
• Feedback. Team members deliver software frequently, get feedback
about it, and improve a product according to the new requirements.
• Respect. Every person assigned to a project contributes to a
common goal.
• Courage. Programmers objectively evaluate their own results
without making excuses and are always ready to respond to
changes.
• Extreme Programming involves-
• Planning: The first stage of Extreme Programming is planning. During this phase,
clients define their needs in concise descriptions known as user stories. The
team calculates the effort required for each story and schedules releases
according to priority and effort
• Starting with a simple design just enough to code the features at hand and
redesigning when required.
• Programming in pairs (called pair programming), with two programmers at one
screen, taking turns to use the keyboard. While one of them is at the keyboard,
the other constantly reviews and provides inputs.
• Integrating and testing the whole system several times a day.
• Putting a minimal working system into the production quickly and upgrading it
whenever required.
• Keeping the customer involved all the time and obtaining constant feedback.
Iterating facilitates the accommodating changes as the software evolves with
the changing requirements.
• XP is based on the frequent iteration through which the developers
implement User Stories. User stories are simple and informal statements
of the customer about the functionalities needed. A User Story is a
conventional description by the user of a feature of the required system.
• Pair Programming: XP encourages pair programming where two
developers work together at the same workstation. This approach helps in
knowledge sharing, reduces errors, and improves code quality.
• Continuous Integration: In XP, developers integrate their code into a
shared repository several times a day. This helps to detect and resolve
integration issues early on in the development process.
• Refactoring: XP encourages refactoring, which is the process of
restructuring existing code to make it more efficient and maintainable.
Refactoring helps to keep the codebase clean, organized, and easy to
understand.

You might also like