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

Software Engineering Concepts E: Faculty

The document discusses software process models and agile software development. It describes generic process models that involve common activities like communication, planning, modeling, construction, and deployment. Prescriptive and sequential process models are also discussed. The document then covers agile software development life cycle (SDLC) models, principles, and benefits. Popular agile methods like Scrum and Extreme Programming are mentioned along with other agile methods and tools used to support agile development.

Uploaded by

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

Software Engineering Concepts E: Faculty

The document discusses software process models and agile software development. It describes generic process models that involve common activities like communication, planning, modeling, construction, and deployment. Prescriptive and sequential process models are also discussed. The document then covers agile software development life cycle (SDLC) models, principles, and benefits. Popular agile methods like Scrum and Extreme Programming are mentioned along with other agile methods and tools used to support agile development.

Uploaded by

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

Part III

Software Engineering Concepts


eDAC-2020

Faculty
Divya MG
[email protected]
C-DAC, Bangalore

1
Software Process Models
 A generic process models: It is a set of framework activities, actions, and
work tasks organized sequentially and chronologically. Process patterns
can be used to solve common problems that are encountered as part of the
software process. The 5 activities — Communication, Planning, Modeling,
Construction, and Deployment.

 Prescriptive process models: It has different process flow, but all perform
the same set of generic framework activities: communication, planning,
modeling, construction, and deployment.

 Sequential process models: They suggest a linear process flow that is often
inconsistent with modern realities in the software world. It is applied
where requirements are well defined and stable.
Example: Waterfall and V models.

 Incremental process models: Are iterative in nature and produce working


versions of software quite rapidly.
2
 Evolutionary models: It produces incremental work products
quickly. These models can be adopted to concept development to
long-term system maintenance.
Example: Prototyping and Spiral model
 The concurrent process model: It emphasizes component reuse and
assembly; the formal methods model that encourages a mathematical
based approach to software development and verification.
 An agile process model: The philosophy for software engineering
stresses four key issues:

the importance of self-organizing teams that have control over
the work they perform

communication and collaboration between team members and
between practitioners and their customers

a recognition that change represents an opportunity

an emphasis on rapid delivery of software that satisfies the
customer
Agile process models have been designed to address each of these
issues.
Example: Agile Modeling, Scrum, Extreme Programming (XP) 3
Types of SDLC models

1. Water Fall model


2. V shaped model
3. Incremental model
4. Prototype model
5. Spiral model
6. Agile model
7. Extreme programming model
8. Scrum model
9. Synchronize & Stabilize

4
Agile SDLC
 Agile is software development framework helps the organization to be more
flexible to change and to deliver workable software in a shorter span of time.

 Agile SDLC model is a combination of iterative and incremental process


models with focus on process adaptability and customer satisfaction by rapid
delivery of working software product.

 Agile Methods break the product into small incremental builds. These builds
are provided in iterations.

 Each iteration typically lasts from about one to three weeks. Every iteration
involves cross functional teams working simultaneously on various areas like
planning, requirements analysis, design, coding, unit testing, and acceptance
testing.

5
Benefits of Agile Development
1) Improved Quality
One of the greatest benefits of an Agile framework is improved
product quality. By breaking down the project into manageable units,
the project team can focus on high-quality development, testing, and
collaboration. Also, by producing frequent builds and conducting
testing and reviews during each iteration, quality is improved by
finding and fixing defects quickly and identifying expectation
mismatches early.
2) Focus on Business Value
Agile has an increased focus on delivering strategic business value by
involving business stakeholders in the development process. By doing
so, the team understands what’s most important and can deliver the
features that provide the most business value to their organization.

6
3) Focus on Users
Agile development uses user stories with business-focused acceptance
criteria to define product features. By focusing features on the needs of
real users, each feature incrementally delivers value, not just an IT
component. This also provides the opportunity to beta test software after
each Sprint, gaining valuable feedback early in the project and providing
the ability to make changes as needed.
4) Stakeholder Engagement
An Agile process provides multiple opportunities for stakeholder and
team engagement – before, during, and after each Sprint. By involving the
different types of stakeholders in every step of the project, there is a high
degree of collaboration between teams. This provides more opportunities
for the team to truly understand the business’ vision, deliver working
software early

7
5) Transparency
It provides a unique opportunity for clients or customers to be
involved throughout the project. This can include prioritizing features,
iteration planning and review sessions, or frequent software builds
containing new features. However, this also requires customers to
understand that they are seeing a work in progress in exchange for this
added benefit of transparency.
6) Early and Predictable Delivery
By using time-boxed, fixed schedule Sprints of 1-4 weeks, new features
are delivered quickly and frequently, with a high level of predictability.
This also provides the opportunity to release or beta test the software
earlier than planned if there is sufficient business value.
7) Predictable Costs and Schedule
Because each Sprint is a fixed duration, the cost is predictable and
limited to the amount of work that can be performed by the team in
the fixed-schedule time box.
8
8) Allows for Change
Agile allows for change. While the team needs to stay focused on
delivering an agreed-to subset of the product’s features during each
iteration, there is an opportunity to constantly refine and reprioritize
the overall product backlog. New or changed backlog items can be
planned for the next iteration, providing the opportunity to introduce
changes within a few weeks.
9) Promotes RPA at Scale
Agile principles like dedicated teams, upfront design, maintaining a
backlog, and sprint planning and retrospectives, give automation
teams the flexibility and control to govern and develop complex, end-
to-end processes at scale, at a much more efficient and effective rate
than a traditional waterfall approach does.

9
Agile SDLC

10
Some Agile Methods
 Adaptive Software Development (ASD)
 Feature Driven Development (FDD)
 Crystal Clear
 Dynamic Software Development Method (DSDM)
 Rapid Application Development (RAD)
 Scrum
 Extreme Programming (XP)
 Rational Unify Process (RUP)

11
Agile methods
Scrum and eXtreme are the popular Agile methodologies.
Below listed methodologies are used less frequently;
Dynamic System Development Method (DSDM)

This is an Iterative and incremental approach that emphasizes on


the continuous user involvement.
Test Driven Development (TDD)

This is a technique which has short iterations where new test cases
covering the desired improvement or new functionality are written
first.
Feature Driven Development

This is an iterative and incremental software development process.


Crystal

Crystal is an adaptive technique mainly used for software


development methodologies.
12
Agile - Tools
 The agile development enables flexibility while
maintaining organization by deploying a set of good tools that
help track the project and organize the team's progress. They don't
impose strict schedules and roles, but merely make it easier for the
developers to self-manage and converge on their goals.
 The tools support the project by helping the team identify the
requirements and split them into a number of smaller tasks. Then it
tracks the programmers as they work collaboratively on the parts. The
process is often split up into short cycles that gradually converge on
the final result. The cycles alternate between planning sessions and
code sprints. Keeping the cycle short and including plenty of developer
feedback in the planning lets the team adjust and focus.
 Agile tools organize the discussion and planning. The developers can
focus on each of the features, tasks, or bugs in separate threads.
Splitting the discussions up helps the project move forward at the
right rate for each section.
13
Few key AGILE based project
management Tools

14
1) Agile Manager
HP's Agile Manager is built to organize and guide teams from
the beginning as they plan and deploy working code through the
agile model. At the early stages of the cycle during the release
plan, the managers gather the user stories and decide how the
teams will attack them. These set the stage for the sprints and
deployment.

The tool gathers information directly from major tools such as


Jenkins, Git, Bamboo, and Eclipse.

15
2) Active Collab
Active Collab is organized to help software shops deliver code
and account for their time. The heart of the system is a list of
tasks that can be assigned and tracked from conception to
completion. A system-wide calendar helps the team understand
and follow everyone's roles. The system checks the amount of
time devoted to all the tasks so the team can determine how
accurate their estimates are.

16
3) LeanKit
LeanKit aims to imitate the conference room whiteboards
where most projects begin. It lets all team members post virtual
notes or cards that represent all the tasks, user stories, or bugs
that must be addressed. As the team finishes them, the board
updates faster than any whiteboard. The software also allows
multiple teams to work together in separate spaces while still
coordinating their interactions.

17
4) Icescrum
Created by a French company called Kagilum (KAnban-aGILe-
scrUM) in 2011, Icescrum is a free and open source solution for
teams of any size.

This tool is compatible with Linux, Windows, and Mac—and


integrates with a variety of popular apps like Box, Excel,
Dropbox, GitHub, Google Drive, Slack, and more.

18
5)Taiga
Awarded Best Agile Tool 2015 by the Agile awards, and Top 11
Project Management Tools 2016 by Opensource.com, Taiga
offers better functionality than many paid tools, including
backlogs, sprints, Kanban boards, and QA, along with the
ability to import from Trello, Jira, Asana, and Github.

19
6)Scrumpy
The unique selling point of Scrumpy software is that it allows
long-term story views and is completely written in Java. It is
specifically designed to help a product owner maintain a
meaningful long-term backlog of user stories.

20
7) JIRA Agile
The JIRA Agile tool adds a layer for agile project management
that interacts with the other major tools from Atlassian. The
team creates a list of project tasks with a tool called Confluence
and then tracks them on an interactive Kanban board that
developers can update as they work. The Kanban boards become
the center of everyone's focus in planning how to attack the code.

Atlassian JIRA is an issue and project tracking software to plan,


track and manage your projects. JIRA is mainly used by agile
development teams to customize your workflows, team
collaboration, and release software with confidence.

21
Glossary
1. Components of Jira Project: Issues and Workflows
2. Project: Is a place where the team can work together to manage
the tasks. Made up of Issues and Workflows
3. Task: Piece of work
4. Workflow: Every project will have workflow. The workflows
allows to move issues forward and backward
5. Issue: Unique in Jira. Issues are tasks, they contain information
about the work
6. Issue categories: Versions & Components
7. The status field indicates where the issue currently is in its
workplace
8. Workflow steps: ToDo/Design/Implementation/Review/Done
9. Status can be: Design/Develop/Quality Assurance/Release
10. Jira atlasian project template: Backlog / Selected for
Development/ In progress /Done
22
Glossary
1. To find ;
Critical Issues – Priority
Bugs – Type
Issues – Assignee
Issue being work done- Status

3. Quick search: For very simple search


4. Basic search: To easily search on field
5. Advanced search: For Complex search (Jira Query Search)
6. Filter search: For the search which is run very often

23
Key word related to Atlassian Jira

24
Report:
It is static view of information on a single page. It is a character
that illustrates the performance of the issues and projects.

SCRUM: It is a style of Agile development that encourages teams to self-


organize and deliver functionality iteratively in 2 to 4 weeks time
periods called Sprints. This allows teams to achieve continuous
development with very short release cycles.

Dashboard: Dynamic content and highly customizable shows dynamic


information in multiple gadgets. It is a page in Jira that gives insights
of the project. It contains gadgets to help to organize the projects,
assignments and achievements in different charts.

25
Project:
A Project is a single place in Jira for a team to work together to
manage projects tasks. Essentially it is a collection of issues. There
are 3 different types of projects in Jira that relate to each of the Jira
products namely Software, Service desk, and Business.

Task:
A task is a piece of work in Jira that doesn’t fall into any of the other
issues types. It’s an issue type in Jira.

Sub-Task:
Sub-Tasks are small units of work that need to be done as part of a
story, bug or task. It’s an issue type in Jira.

26
Workflow:
Workflows is the work process an issue must go through to
complete- what actions need to occur, when and by whom. A workflow
is made up of statuses and transitions

Backlog:
The backlog is the list of the outstanding user stories, bugs, and
features for a product or a sprint.

Story:
It describes functionality from a user’s perspective and become a
product feature. It’s an issue type in Jira.

27
Sprint
A sprint is a fixed time period in a continuous development cycle
where teams complete work from their product backlog. At the
end of the sprint, a team will typically have built and
implemented a working product increment.

Jira Software makes your backlog the center of your sprint


planning meeting, so you can estimate stories, adjust sprint
scope, check velocity, and re-prioritize issues in real-time.

A sprint is a short (ideally two to 4 week) period in which a


development team implements and delivers functionality by
completing stories. It is typically use in software SCURM
projects

28
Version:
A version in Jira is used to group all issues that are associated
with a certain release of a product.

Epic:
An epic is a large body of work in a software project. It is
essentially a large user story that can be broken down into a
number of smaller user stories. It may several sprints to
complete an epic.

29
Agile Vs Traditional SDLC Models

Traditional development Agile development


Fundamental Systems are fully specifiable, High quality adaptive
hypothesis predictable and are developed software is developed
through extended and by small teams that use
detailed planning the principle of
continuous
improvement of design
and testing based on
fast feed-back and
change
Management Command and control Leadership and
style collaboration
Knowledge Explicit Tacit
management
30
Agile Vs Traditional SDLC Models
Traditional development Agile development

Communication Formal Informal


Development Life cycle model Evolutionary-delivery
model (waterfall, spiral or modified model
models)
Organizational Mechanic (bureaucratic, Organic (flexible and
structure high formalization), participative,
targeting large encourages social
organization cooperation), targeting
small and medium
organizations
Quality control Difficult planning and strict Permanent control or
control. Difficult and late requirements, design
testing and solutions.
Permanent testing 31
Agile Vs Traditional SDLC Models
Traditional development Agile development

User requirements Detailed and defined before Interactive input


coding/implementation
Cost of restart High Low
Development direction Fixed Easily changeable

Testing After coding is completed Every iteration


Client involvement Low High
Requirements Very stable, known in Emergent, with rapid
advance changes
Architecture Design for current and Design for current
predictable requirements requirements
Remodeling Expensive Not expensive
Size Large teams and projects Small teams and
projects
Primary objectives High safety Quick value 32
Thank You

33
SCRUM
 SCRUM is an agile development method which concentrates
particularly on how to manage tasks within a team based development
environment.

 Basically, Scrum is derived from activity that occurs during rugby


match.

 Scrum believes in empowering the development team and advocates


working in small teams (say- 7 to 9 members). 

34
Scrum

 Scrum Master: Master is responsible for setting up the team, sprint


meeting and removes obstacles to progress
 Product owner: The Product owner creates product backlog,
prioritizes the backlog and is responsible for the delivery of the
functionality at each iteration
 Scrum Team: Team manages its own work and organizes the work to
complete the sprint or cycle
35
Scrum

36
Scrum advantages
 Agile scrum helps the company in saving time and money.

 Scrum methodology enables projects where the business requirements


documentation is hard to quantify to be successfully developed.

 Fast moving, cutting edge developments can be quickly coded and


tested using this method, as a mistake can be easily rectified.

 It is a lightly controlled method which insists on frequent updating of


the progress in work through regular meetings. Thus there is clear
visibility of the project development.

 Like any other agile methodology, this is also iterative in nature. It


requires continuous feedback from the user.

37
Scrum advantages
 Due to short sprints and constant feedback, it becomes easier to cope with the
changes.

 Daily meetings make it possible to measure individual productivity. This leads to


the improvement in the productivity of each of the team members.

 Issues are identified well in advance through the daily meetings and hence can be
resolved in speedily

 It is easier to deliver a quality product in a scheduled time.

 Agile Scrum can work with any technology/ programming language but is
particularly useful for fast moving web 2.0 or new media projects

 The overhead cost in terms of process and management is minimal thus leading
to a quicker, cheaper result.

38
Scrum disadvantages
 Agile Scrum is one of the leading causes of scope creep because unless
there is a definite end date, the project management stakeholders will
be tempted to keep demanding new functionality is delivered.

 If a task is not well defined, estimating project costs and time will not


be accurate. In such a case, the task can be spread over several sprints.

 If the team members are not committed, the project will either never
complete or fail.

39
Scrum disadvantages (cont…)
 It is good for small, fast moving projects as it works well only with
small team.

 This methodology needs experienced team members only. If the team


consists of people who are novices, the project cannot be completed in
time.

 Scrum works well when the Scrum Master trusts the team they are
managing. If they practice too strict control over the team members, it
can be extremely frustrating for them, leading to demoralisation and
the failure of the project

 If any of the team members leave during a development it can have a


huge inverse effect on the project development

 Project quality management is hard to implement and quantify unless


the test team are able to conduct regression testing after each sprint.
40

You might also like