SE Unit-I
SE Unit-I
(19CSE314)
Introduction
NOTICE: Slides are extracted from “Software Engineering – A Practitioner’s Approach” by Pressman R S & Other Internet resources.
CO3: Apply the appropriate software design methodology for a given scenario
2
Evaluation Criteria
External
Internal (70) Total
(30)
Total
Components Marks
Marks
Mid term 20 20
End Internal +
Continuous Assessment Semester External =
Quiz 10 = 30 100
(Theory)
50
Lab Assignments (4) 20
Continuous Assessment
(Lab): Capstone Project Capstone Project
20
Evaluation
3
Discussion Contents
Unit –I
Process Models – Introduction & Overview
Introduction to Agile
Agile Manifesto & its Principles
Over-view of Various Agile methodologies - Scrum, XP, Lean, and Kanban
Agile Requirements - User personas, story mapping, user stories, estimating
and prioritizing stories
INVEST & Acceptance Criteria, Definition of Done
Release planning
Key aspects of Scrum: Roles - Product Owner, Scrum Master, Team,
Manager in scrum
Scrum process flow: Product backlog, sprints backlog, scrum meetings,
demos
How sprint works: Sprint Planning, Daily scrum meeting, updating sprint
backlog, Burn down chart, sprint review, sprint retrospective
Scrum Metrics velocity, burn down, defects carried over 4
Discussion Outcomes
On successful completion of the Unit, students will be able to:
CO3: Apply the appropriate software design methodology for a given scenario
5
Introduction to Software
Defining a Software!!
Software is:
(1) Instructions that when executed provide desired features, function, and
performance;
(2) Data structures that enable the programs to adequately manipulate information;
(3) Descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs;
Or
The software can be best defined as a set of instructions, technically referred to as
programs, that perform operations and specific tasks based on the commands of
the user. Every single task that a user intends to perform is regulated by
software.
No wonder, there are other more relative definitions! However, more formal
definitions probably won’t measurably improve the understanding.
To accomplish that, it’s important to examine the characteristics of
software that make it different from other things that human beings build.
Introduction to Software
Characteristics of Software
1. Software is developed or
engineered; it is not
manufactured in the
classical sense.
2. Software doesn't wear out.
3. Most Software aims to be
custom built.
Introduction to Software
Types of Software
System Software: This is a collection of programs written to service other programs and
characterized by heavy interaction with computer hardware; heavy usage by multiple users;
concurrent operation that requires scheduling, resource sharing, and sophisticated process
management; complex data structures; and multiple external interfaces
Application Software: This is software is stand-alone programs that solve a specific business need
or control business functions in real time (e.g., point-of-sale transaction processing, real-time
manufacturing process control).
Engineering / Scientific Software: This is based on “number crunching” algorithms.
Applications range from astronomy to volcanology, from automotive stress analysis to space shuttle
orbital dynamics, and from molecular biology to automated manufacturing Computer-aided design,
system simulation, and other interactive applications
Embedded Software: This resides within a product or system and is used to implement and
control features and functions for the end user and for the system itself, like, key pad control for a
microwave oven, digital functions in an automobile, etc.,
Product-line Software: This is designed to provide a specific capability for use by many different
customers. Product-line software can focus on a limited and esoteric marketplace (e.g., inventory
control products) or address mass consumer markets (e.g., MS Office, Multimedia, DBMS, and
personal and business financial applications).
Web Applications: In other words, Web Apps. This network-centric software not only provide
stand-alone features, computing functions, and content to the end user but also are integrated with
corporate databases and business applications
AI Software: This makes use of nonnumerical algorithms to solve complex problems that are not
amenable to computation or straightforward analysis
Software Engineering
Engineering & Software Engineering
Engineering is just application of scientific and practical knowledge to
design, build and create products and processes
How to Engineer the Software?
Understand the problem before you build a solution
Design is a pivotal software engineering activity
Both Quality and Maintainability are an outgrowth of good design.
Tools
Methods
Process Models
Quality Focus
Organizations commit to Quality!!!
Holds the technology layers together and enables
rational and timely development of the software
Provides “technical how-to’s” for building software
Provides the automated or semiautomated support for the
Process and the Methods
Software Process
A few Terminologies to understand….
A Process is a collection of activities, actions, and tasks that are
performed when some work product is to be created.
An Activity strives to achieve a broad objective (e.g., communication with
stakeholders) and is applied regardless of the application domain, size of the
project, complexity of the effort, or degree of rigor with which software
engineering is to be applied.
An Action (e.g., architectural design) encompasses a set of tasks that
produce a major work product (e.g., an architectural design model).
A Task focuses on a small, but well-defined objective (e.g., conducting a
unit test) that produces a tangible outcome.
Deployment Communication
Model
Modeling
Software Planning
Software
Process
Validation Development
Flows
Life Cycle
Modeling
Construction
Modeling
63