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

MODULE 1

The document provides an introduction to software engineering, detailing its definition, processes, and various models such as Waterfall, V-Model, Incremental, Evolutionary, Concurrent, Agile, XP, Scrum, and Kanban. Each model is described with its phases, advantages, and disadvantages, emphasizing the systematic approach to software development and the importance of communication and collaboration. The Agile process is highlighted for its iterative nature and flexibility in accommodating changing requirements.

Uploaded by

yatinchauhan786
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

MODULE 1

The document provides an introduction to software engineering, detailing its definition, processes, and various models such as Waterfall, V-Model, Incremental, Evolutionary, Concurrent, Agile, XP, Scrum, and Kanban. Each model is described with its phases, advantages, and disadvantages, emphasizing the systematic approach to software development and the importance of communication and collaboration. The Agile process is highlighted for its iterative nature and flexibility in accommodating changing requirements.

Uploaded by

yatinchauhan786
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

MODULE 1.

INTRODUCTION TO
SOFTWARE ENGINEERING

By Ms. Rujuta Vartak

1
SOFTWARE ENGINEERING

• Software is a program or set of programs containing instructions that provide desired functionality.
• Engineering is the process of designing and building something that serves a particular purpose and finds a
cost-effective solution to problems.
• Software Engineering is the process of designing, developing, testing, and maintaining software. It is a
systematic and disciplined approach to software development that aims to create high-quality, reliable, and
maintainable software.

2
SOFTWARE PROCESSES

• A software process is the set of activities and associated outcome that produce a software product. Software engineers
mostly carry out these activities. These are five key process activities, which are common to all software processes.
These activities are
• 1. Communication: communicate and collaborate with customer for the project and gather requirements that help define
software features and functions.
• 2. Planning : planning activity creates a “map” that helps guide the team as it makes the journey. The map is called
software project plan
• 3. Modeling(coding) : A software engineer creating models to better understand software requirements and the design
that will achieve those requirements.
• 4. Construction(testing): This activity combines code generation (either manual or automated) and the testing that is
required to uncover errors in the code.
• 5. Deployment: the software is delivered to the customer who evaluates the delivered product and provides feedback
based on the evaluation.

3
CMM

• The Software Engineering Institute (SEI) Capability Maturity Model (CMM)


specifies an increasing series of levels of a software development
organization. The higher the level, the better the software development
process, hence reaching each level is an expensive and time-consuming
process

4
CMM Model

5
GENERIC PROCESS MODEL

• The software process is represented schematically in following figure. Each framework activity is populated
by a set of software engineering actions. Each software engineering action is defined by a task set that
identifies the work tasks that are to be completed, the work products that will be produced, the quality
assurance points that will be required, and the milestones that will be used to indicate progress.

6
GENERIC PROCESS MODEL

7
WATERFALL MODEL

• The waterfall model, sometimes called the classic life cycle, suggests a
systematic, sequential approach to software development that begins with
customer specification of requirements and progresses through planning,
modeling, construction, and deployment, culminating in ongoing support of the
completed software.

8
WATERFALL MODEL

9
V MODEL

• The V-model is a type of SDLC model where process executes in a sequential


manner in V-shape.
• It is also known as Verification and Validation model.
• It is based on the association of a testing phase for each corresponding development
stage.
• Development of each step directly associated with the testing phase.
• The next phase starts only after completion of the previous phase i.e. for each
development activity, there is a testing activity corresponding to it.

10
11
THERE ARE THE VARIOUS PHASES OF VERIFICATION PHASE OF
V-MODEL:
• Business requirement analysis: This is the first step where product requirements understood from the customer's
side. This phase contains detailed communication to understand customer's expectations and exact requirements.
• System Design: In this stage system engineers analyze and interpret the business of the proposed system by studying
the user requirements document.
• Architecture Design: The baseline in selecting the architecture is that it should understand all which typically
consists of the list of modules, brief functionality of each module, their interface relationships, dependencies,
database tables, architecture diagrams, technology detail, etc. The integration testing model is carried out in a
particular phase.
• Module Design: In the module design phase, the system breaks down into small modules. The detailed design of the
modules is specified, which is known as Low-Level Design
• Coding Phase: After designing, the coding phase is started. Based on the requirements, a suitable programming
language is decided. There are some guidelines and standards for coding. Before checking in the repository, the final
build is optimized for better performance, and the code goes through many code reviews to check the
performance.

12
• Advantages:

• Time Saving

∙ This is a highly disciplined model and Phases are completed one at a time.

∙ V-Model is used for small projects where project requirements are clear.

∙ Simple and easy to understand and use.

∙ This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an error-free and good quality
product.

∙ It enables project management to track progress accurately.

• Disadvantages:

∙ High risk and uncertainty.

∙ It is not a good for complex and object-oriented projects.

∙ It is not suitable for projects where requirements are not clear and contains high risk of changing.

∙ This model does not support iteration of phases.

∙ It does not easily handle concurrent events.


13

INCREMENTAL PROCESS MODELS

• 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. Every subsequent release of the module adds function to the previous release. The process
continues until the complete system achieved

14
INCREMENTAL MODEL

15
VARIOUS PHASES OF INCREMENTAL
MODEL

• 1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise identifies the
requirements. And the system functional requirements are understood by the requirement analysis team. To develop
the software under the incremental model, this phase performs a crucial role.

• 2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system functionality and
the development method are finished with success. When software develops new practicality, the incremental model
uses style and development phase.

• 3. Testing: In the incremental model, the testing phase checks the performance of each existing function as well as
additional functionality. In the testing phase, the various methods are used to test the behavior of each task.
• 4. Implementation: Implementation phase enables the coding phase of the development system. It involves the final
coding that design in the designing and development phase and tests the functionality in the testing phase. After
completion of this phase, the number of the product working is enhanced and upgraded up to the final system
product

16
WHEN WE USE THE INCREMENTAL
MODEL?

• When the requirements are superior.


• A project has a lengthy development schedule.
• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the product.
• You can develop prioritized requirements first.

17
ADVANTAGE OF INCREMENTAL MODEL

• Errors are easy to be recognized.


• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.

18
DISADVANTAGE OF INCREMENTAL
MODEL

• Need for good planning.


• Well defined module interfaces are needed.
• Problem might cause due to system architecture as such not all requirements
collected up front for the entire software lifecycle.
• Each iteration phase is rigid and does not overlap each other.

19
EVOLUTIONARY PROCESS MODELS

• The evolutionary model is a combination of the Iterative and Incremental models of the
software development life cycle.
• Evolutionary model is also referred to as the successive version model.

20
DIAGRAM

21
Application of Evolutionary Model

1. It is used in large projects where you can easily find modules for incremental
implementation.
2. Evolutionary model is commonly used when the customer wants to start using
the core features instead of waiting for the full software.
2. Evolutionary model is also used in object oriented software development
because the system can be easily portioned into units in terms of objects.
3. Customer requirements are not fixed, but clear concept.

22
NECESSARY CONDITIONS FOR IMPLEMENTING
THIS MODEL

• Customer needs are clear and been explained in deep to the developer team.
• There might be small changes required in separate parts but not a major
change.
• As it requires time, so there must be some time left for the market
constraints.
• Risk is high and continuous targets to achieve and report to customer
repeatedly.
• It is used when working on a technology is new and requires time to learn

23
ADVANTAGES EVOLUTIONARY MODEL

1. In evolutionary model, a user gets a chance to experiment partially developed


system.
2. It reduces the error because the core modules get tested thoroughly.

24
Disadvantages Evolutionary Model

• 1. The delivery of full software can be late due to different changes by


customers during development.
2. Sometimes it is hard to divide the problem into several versions that would be
acceptable to the customer which can be incrementally implemented and
delivered.

25
CONCURRENT MODELS

Inactive: No activity
Under Development: any activity performed
Awaiting changes: If customer want any changes
Under Review: Testing activity start
Under revision: Do all Require changes
Baseline: as per the SRS document
Done: project completed and Deployed.

26
CONTINUE..

• The concurrent development model is called as concurrent model.


• • The communication activity has completed in the first iteration and exits in
• the awaiting changes state.
• • The modeling activity completed its initial communication and then go to the
• underdevelopment state.
• • If the customer specifies the change in the requirement, then the modeling
• activity moves from the under development state into the awaiting change
• state.
• • The concurrent process model activities moving from one state to another
• state

27
Advantages of the concurrent development model
• This model is applicable to all types of software development processes.
• It is easy for understanding and use.
• It gives immediate feedback from testing.
• It provides an accurate picture of the current state of a project.

Disadvantages of the concurrent development model


• It needs better communication between the team members. This may not be
achieved all the time.
• It requires to remember the status of the different activities.

28
AGILE PROCESS

• The meaning of Agile is swift or versatile. "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.

29
AGILE PROCESS

30
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

31
AGILITY PRINCIPLES

• 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
• 2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage.
• 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference for a shorter timescale.
• 4. Business people and developers must work together daily throughout the project.
• 5. Build projects around motivated individuals. Give them the environment and support they need, and
trust them to get the job done.
• 6. The most efficient and effective method of conveying information to and within a development
team is face-to-face conversation.
• 7. Working software is the primary measure of progress.
• 8. Agile processes promote sustainable development. The sponsors, developers, and users should be
able to maintain a constant pace indefinitely.
• 9. Continuous attention to technical excellence and good design enhances agility.
• 10. Simplicity — the art of maximizing the amount of work not done — is essential.
• 11. The best architectures, requirements, and designs emerge from self-organizing teams.
• 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.
32
EXTREME PROGRAMMING (XP)

• XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to


develop a software.
• eXtreme Programming (XP) was conceived and 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

• The five values of XP are communication, simplicity Feedback, courage and


respect.
• Follows object oriented approach.

33
WORKING OF XP

CRC card

34
• Advantages-
• 1. fewer documentation required
• 2. collaboration with customer
• 3. Flexibility to developers.
• 4. Easy to manage
• Disadvantages
• 1. Depends heavily on customer interaction
• 2. Transfer of technology to new team members may be quite challenging due to lack of
documentation.

35
SCRUM MODEL

• Scrum is the type of Agile framework. It is a framework within which people can address
complex adaptive problem while productivity and creativity of delivering product is at
highest possible values. Scrum uses Iterative process. Silent features of Scrum are:
• Scrum is light-weighted framework
• Scrum emphasizes self-organization
• Scrum is simple to understand
• Scrum framework help the team to work together

36
SCRUM MODEL

37
• Advantages
• 1. Large projects are broken down into small sprints.
• Customers are involved so based results are ensured
• Disadvantages:
• Once decide the sprint backlog items cannot be changed.

38
KANBAN MODEL

• Kanban is a popular framework which is used to implement agile software development. It takes real time
communication of capacity and complete transparency of work. The work items are represented in a kanban board
visually, allowing team members to see the state of every piece of work at any time.
• Boards:
The kanban board is the agile project management tool that designed the necessary visualized work, limited
work-in-progress, and maximizes flow (or efficiency). It uses cards, columns, and provides continuous improvement to
help technology and service teams who commit the right amount of work and get it done.

39
40
CONTINUE..

• Elements of a kanban board


• A person called David Anderson divides the kanban board into five different
components. These are Visual signals, columns, work-in-progress limits, a
commitment point, and a delivery point.

41
• Visual Signals: The kanban board is a visual card (stickies, tickets, or otherwise). Kanban team
write their projects and work items onto cards, usually per person each card. For agile teams,
each card could encapsulate into one user story. Once the board completed, this visual team
helps team members and stock members quickly to understand what the team is working.
• Columns: The column represents the specific activities that compose a "workflow" together.
The card flows through a workflow until its completion. The workflow may be a simple as "To
Do," "In Progress," "Complete," or much more complicated.
• Work in progress (WIP) Limits: The work in progress limits are the maximum number of cards
which can be in one column. This is at any given time. It gives the alert signal that you committed
too much work.
• Commitment point: Kanban teams also maintain a backlog for their board. This is where the
customers and team member put ideas for projects that the team can pick up. The team
members pick up plans when they are ready. The committed point is a movement where the
design is picked up by the team, and work starts on the project.
• Delivery point: It is the end point of a kanban team's workflow. Mostly the delivery point for
every team is when the product and services are handed to the customer.

42
WHEN WOULD THE KANBAN APPROACH BE
NEEDED?

• Kanban is best suited in the below scenarios:


• Dynamic/ frequent changing requirements which need to be delivered faster.
• In case of changing priorities, the prioritized work can be pulled by the team as soon as the WIP limit drops.
• Frequent releases are there (Periodically).
• When incoming work is continuous.
• Where task priority needs to be decided dynamically based upon task nature and type.
• The best suit is for Ticket or Production support projects.
• Kanban could be used by any function of an organization as well, for instance in Marketing, Sales, and HR.

43
Kanban Scrum

Kanban is an ongoing process. Scrum sprints have a start and stop dates

Kanban has no formal roles. Role is clearly defined of each team in the scrum (product owner,
development team, and scrum master). Both teams are
self-organized.

A kanban board is used throughout the lifecycle of a project Scrum board is cleared and recycled after each sprint.

This board is more flexible with regards to tasks and timing. Its This board has the number of tasks and a strict deadline to
task can be reprioritized, reassigned, or updated as needed. complete them.

44

You might also like