Software Engineering Concepts E: Faculty
Software Engineering Concepts E: Faculty
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.
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 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 a technique which has short iterations where new test cases
covering the desired improvement or new functionality are written
first.
Feature Driven Development
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.
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.
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.
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
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.
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.
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
33
SCRUM
SCRUM is an agile development method which concentrates
particularly on how to manage tasks within a team based development
environment.
34
Scrum
36
Scrum advantages
Agile scrum helps the company in saving time and money.
37
Scrum advantages
Due to short sprints and constant feedback, it becomes easier to cope with the
changes.
Issues are identified well in advance through the daily meetings and hence can be
resolved in speedily
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 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.
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