0% found this document useful (0 votes)
8 views98 pages

Se Unit 1

This document serves as an introduction to software engineering (SE), explaining its core concepts and importance. What is Software Engineering? SE is an engineering branch related to the evolution of software products using well-defined scientific principles, techniques, and procedures. The goal is to produce software that is efficient, easy to use, and easy to maintain. It's crucial because software is part of many aspects of life, and there's a demand for high-quality, secure, and scalable

Uploaded by

epicwilliams
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)
8 views98 pages

Se Unit 1

This document serves as an introduction to software engineering (SE), explaining its core concepts and importance. What is Software Engineering? SE is an engineering branch related to the evolution of software products using well-defined scientific principles, techniques, and procedures. The goal is to produce software that is efficient, easy to use, and easy to maintain. It's crucial because software is part of many aspects of life, and there's a demand for high-quality, secure, and scalable

Uploaded by

epicwilliams
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/ 98

Introduction

Study of & Programming


Different Models with
ESP8266
Chapter-1: Introduction

Prof. Arpita Vaidya


Assistant Professor
Department of Computer Science and Engineering
Content

1. Why Study of SE……………….…………………………1


2. Requirements…………………………………………….10
3. Software Characteristics….……………………….…12
4. Application ……………………………….………………. 23

INDEX
What is Software?
Software is :
1) Computer program that when executed provide desired
features, function & performance
2) Data Structure that enable programs to easily manipulate
information
3) Descriptive information in both hard and soft copy that
describes the operation and use of programs

Computer
+ Data
+ Documents
Program Structure Soft & Hard
What is Engineering ?

Definition:

• Software Engineering is an engineering branch related to the


evolution of software product using well-defined scientific
principles, techniques, and procedures. The result of software
engineering is an effective and reliable software product.
What is Software Engineering?

• The term is made of two words - Software and Engineering.

➢ The software is a collection of integrated programs.

• Software subsists of carefully-organized instructions and code written by


developers on any of various particular computer languages.

➢ Engineering is the application of scientific and practical knowledge


to invent, design, build, maintain, and improve frameworks, processes,
etc.

• Goal of software engineering is to produce software that is efficient, easy


to use, and easy to maintain
What is Software Engineering?

A branch of engineering that deals with software development


Combines principles of computer science and engineering
Focus on:
• Systematic development
• Maintenance
• Testing and validation

Why Is It Important?
Software is part of everything: phones, cars, health, education
Demand for high-quality, secure, scalable systems
Drives innovation and automation
Requirements

• Software Engineering is required due to the following


reasons:
❖ To manage Large software

❖ For more Scalability

❖ Cost Management

❖ To manage the dynamic nature of software

❖ To decrease time
Software Characteristics

Figure 1.1 Circuit diagram of Interfacing with wifi module[6].


COMPONENTS OF SOFTWARE CHARACTERISTICS

• There are 6 components of Software Characteristics-


Software Characteristics

• Complexity: Software systems can be highly complex, with


numerous interacting components.
• Invisibility: Software is intangible and cannot be seen or touched.
• Changeability: Software is often changed and updated to adapt to
new requirements or fix issues.
• Conformity: Software must confirm to external constraints like
hardware, system interfaces, and other software.
• Ease of Replication: Once developed, software can be easily
replicated and distributed with minimal cost.
Software Characteristics
Functionality:
Functionality refers to the set of features and capabilities that a
software program or system provides to its users.
functionality in software include:
1. Data storage and retrieval
2. Data processing and manipulation
3. User interface and navigation
4. Communication and networking
5. Security and access control
6. Reporting and visualization
7. Automation and scripting
Software Characteristics
Reliability:
Its ability to perform its functions correctly and consistently over time.
Factors that can affect the reliability of software include:
1. Bugs and errors in the code
2. Lack of testing and validation
3. Poorly designed algorithms and data structures
4. Inadequate error handling and recovery
5. Incompatibilities with other software or hardware
Software Characteristics
Reliability:
To improve the reliability of software, various techniques, and
methodologies can be used, such as testing and validation, formal
verification, and fault tolerance.
Required functions are:
➢ Recoverable
➢ Fault tolerance
➢ Maturity
Software Characteristics
Efficiency:

• It refers to the ability of the software to use system resources (such as memory,
processing power, and network bandwidth) in the most effective and efficient
manner.

• Factors that can affect the efficiency of software include:

• Poorly designed algorithms and data structures

• Inefficient use of memory and processing power

• High network latency or bandwidth usage

• Unnecessary processing or computation and Optimized code


Software Characteristics

Efficiency:

• To improve the efficiency of software, various techniques, and


methodologies can be used, such as performance analysis, optimization,
and profiling.

• Required functions are:

➢ Times

➢ Performance
Software Characteristics

Usability:

• It refers to the extent to which the software can be used with ease the
amount of effort or time required to learn how to use the software.

• Required functions are:

➢ Understandability

➢ Learnability

➢ Operatability
Software Characteristics

Maintainability:

• It refers to the ease with which modifications can be made in a software


system to extend its functionality, improve its performance or correct
errors.

• Required functions are:

➢ Testability

➢ Stability

➢ Changeability
Software Characteristics

Portability:

• A set of attributes that bears on the ability of software to be


transferred from one environment to another, without minimum
changes.

• Required functions are:

➢ Adaptability

➢ Install-ability

➢ Replace-ability
Software Applications

1. System Software
Operating Systems (Windows, macOS, Linux, etc.), Utilities (antivirus,
disk cleanup, backup and recovery, etc.)
2. Real Time Software
Aircraft navigation programs, Multimedia broadcasts, Multi-player
video games, Data analysis programs and Stock-trading applications
3. Business Software
CRM (customer relationship management), ERP (Enterprise Resource
Planning) software, Microsoft Dynamics 365
Software Applications

4. Engineering & Scientific Software


AutoCAD (for design), MATLAB (for data analysis and modeling), SolidWorks
(for 3D design), ANSYS (for simulation), SPSS Statistics (for statistical analysis),
and LabVIEW (for data acquisition and control systems)
5. Embedded Software
Calculators, Image processing systems in medical imaging equipment, Traffic
control systems in traffic lights, Control functions of a video game controller
6. Personal Computer Software
Operating systems, Internet browsers, Spreadsheets, Bitmap graphics editors
Software Applications

7. Web Based Software


Google Docs, Gmail, Facebook, Twitter, Amazon, and Netflix
8. Artificial Intelligence Software
ChatGPT, Google Assistant, Chatbots, Grammerly, Amazon Alexa,
Face Recognition
PPT Content Resources Reference :

1. Book Reference
Software Engineering: A Practitioner's Approach, by R.S.Pressman published
by TMH.
2. Reference Books:
3. Software Engineering, 8th Edition by Sommerville, Pearson.
4. Software Engineering 3rd Edition by Rajiv Mall, PHI.
5. An Integrated Approach to Software Engineering by Pankaj Jalote Wiley India, 2009.
Introduction
Study of & Programming
Different Models with
ESP8266
Chapter-1: Introduction

Prof. Arpita Vaidya


Assistant Professor
Department of Computer Science and Engineering
Content

1. Software Layered approaches………………………1


2. Methods ……………………………………………………..5
3. Tools ….………………………………….…….……………..5

INDEX
PPT Content Resources Reference :

1. Book Reference
Software Engineering: A Practitioner's Approach, by R.S.Pressman published
by TMH.
2. Reference Books:
3. Software Engineering, 8th Edition by Sommerville, Pearson.
4. Software Engineering 3rd Edition by Rajiv Mall, PHI.
5. An Integrated Approach to Software Engineering by Pankaj Jalote Wiley India, 2009.
Introduction
Study of & Programming
Different Models with
ESP8266
Chapter-1: Introduction

Prof. Arpita Vaidya


Assistant Professor
Department of Computer Science and Engineering
Content

1. Software Process………………………………….1
2. Process Framework Activities………………….5
3. SDLC…………………………………….…….……………..7
4. Generic view of Software engineering……10

INDEX
Process activities are listed below:-

i. Communication: It is the first and foremost thing for the development of


software. Communication is necessary to know the actual demand of the
client.

ii. Planning: It basically means drawing a map for reduced the complication of
development.

iii. Modeling: In this process, a model is created according to the client for better
understanding.

iv. Construction: It includes the coding and testing of the problem.

v. Deployment:- It includes the delivery of software to the client for evaluation


and feedback.
Software development life cycle

• SDLC consists of a precise plan that describes how to


develop, maintain, replace, and enhance specific software.
The life cycle defines a method for improving the quality
of software and the all-around development process.

• Without using an exact life cycle model, the development


of a software product would not be in a systematic and
disciplined manner.
Software development life cycle
Software development life cycle

• Also known as Software development life cycle (SDLC) or


Application development life cycle Models
• Process models prescribe a distinct set of activities, actions,
tasks and milestones (deliverables) required to engineer high
quality software.
• Process models are not perfect, but provide roadmap for
software engineering work.
• Software models provide stability, control and organization to a
process that if not managed can easily get out of control.
• Software process models are adapted (adjusted) to meet the
needs of software engineers and managers for a specific
project.
Generic View Of Software Engineering
PPT Content Resources Reference :

1. Book Reference
Software Engineering: A Practitioner's Approach, by R.S.Pressman published
by TMH.
2. Reference Books:
3. Software Engineering, 8th Edition by Sommerville, Pearson.
4. Software Engineering 3rd Edition by Rajiv Mall, PHI.
5. An Integrated Approach to Software Engineering by Pankaj Jalote Wiley India, 2009.
Introduction
Study of & Programming
Different Models with
ESP8266
Chapter-1: Introduction

Prof. Arpita Vaidya


Assistant Professor
Department of Computer Science and Engineering
Content

1. Waterfall Model……………….…………………………1
2. Incremental Process Model………………………….5
3. Evolutionary Process Model….…………..…….… 8
4. Prototype Model……………………….………………. 10
5. Spiral Model………………………………………………..13
6. Concurrent Process……………………………………..17

INDEX
Waterfall Model

When requirements for a problems are well understood then this model is
used in which work flow from communication to deployment is linear
Waterfall Model Advantages
Simple to implement and manage
When to use ?
 Requirements are very well known,
clear and fixed
Drawbacks
 Unable to accommodate
 Product definition is stable
changes at later stages, that is
 Technology is understood required in most of the cases.
 There are no ambiguous (unclear)  Working version is not available
requirements during development. Which can
 Ample (sufficient) resources with lead the development with
required expertise are available major mistakes.
freely  Deadlock can occur due to delay
 The project is short in any step.
 Not suitable for large projects.
Incremental Process Model

 There are many situations in which initial software


requirements are reasonably well defined, but the overall
scope of the development effort prevent a purely linear
process.
 In addition, there may be a compelling need to provide a
limited set of software functionality to users quickly and
then refine and expand on that functionality in later
software releases.
 In such cases, there is a need of a process model that is
designed to produce the software in increments.
Incremental Process Model

o The incremental model combines elements of linear and parallel process


flows.
o This model applies linear sequence in a iterative manner.
o Initially core working product is delivered.
o Each linear sequence produces deliverable “increments” of the software.
Incremental Process Model Advantages

 It might deliver basic file  Generates working software


management, editing and quickly and early during the
document production functions in software life cycle.
the first increment  It is easier to test and debug
during a smaller iteration.
 more sophisticated editing in the
second increment;  Customer can respond to each
 spelling and grammar checking in
built.
the third increment; and  Lowers initial delivery cost.
 advanced page layout capability in  Easier to manage risk because
the fourth increment. risky pieces are identified and
When to use? handled during iteration.

 When the requirements of the complete


system are clearly defined and understood but
staffing is unavailable for a complete
implementation by the business deadline.
Evolutionary Software Process Model
Evolutionary Software Process Model
• When a set of core product or system requirements is well
understood but the details of product or system extensions have
yet to be defined.
• In this situation there is a need of process model which specially
designed to accommodate product that evolve with time.
• Evolutionary Process Models are specially meant for that which
produce an increasingly more complete version of the software
with each iteration.
• Evolutionary Models are iterative.
• They are characterized in a manner that enables you to develop
increasingly more complete versions of the software.
• Evolutionary models are
• Prototyping Model
• Spiral Model
Prototype Model
When to use?
• Customers have general objectives of software but do not have detailed
requirements for functions & features.
• Developers are not sure about efficiency of an algorithm & technical
feasibilities.

 It serves as a mechanism for identifying software requirements.


 Prototype can be serve as “the first system”.
 Both stakeholders and software engineers like prototyping model
 Users get feel for the actual system
 Developers get to build something immediately
Prototype Model
Prototype Model
Problem Areas
• Customer demand that “a few fixes” be applied to make the
prototype a working product, due to that software quality suffers as
a result
• Developer often makes implementation in order to get a prototype
working quickly; without considering other factors in mind like OS,
Programming language, etc.

Advantages

• Users are actively involved in the development


• Since in this methodology a working model of the system is provided,
the users get a better understanding of the system being developed
• Errors can be detected much earlier
Spiral Model
Spiral Model
Spiral Model • It provides the potential for rapid
development.
• Software is developed in a series of
evolutionary releases.
• Early iteration release might be
prototype but later iterations
provides more complete version of
software.
• It is divided into framework
activities (C,P,M,C,D). Each activity
represent one segment of the spiral
• Each pass through the planning
region results in adjustments to
• the project plan
• Cost & schedule based on
feedback
Spiral Model
When to use spiral Model ? Advantages
• For development of large  High amount of risk analysis hence,
scale / high-risk projects. avoidance of Risk is enhanced.
• When costs and risk  Strong approval and documentation
evaluation is important. control.
• Users are unsure of their  Additional functionality can be added
needs. at a later date.
• Requirements are  Software is produced early in
complex. the Software Life Cycle.
• New product line. Disadvantages
• Significant (considerable)  Can be a costly model to use.
changes are expected.  Risk analysis requires highly specific expertise.
 Project’s success is highly dependent on the
risk analysis phase.
 Doesn’t work well for smaller projects.
Concurrent process
Concurrent process
PPT Content Resources Reference :

1. Book Reference
Software Engineering: A Practitioner's Approach, by R.S.Pressman published
by TMH.
2. Reference Books:
3. Software Engineering, 8th Edition by Sommerville, Pearson.
4. Software Engineering 3rd Edition by Rajiv Mall, PHI.
5. An Integrated Approach to Software Engineering by Pankaj Jalote Wiley India, 2009.
Introduction
Study of & Programming
Different Models with
ESP8266Model
Chapter-1:Agile

Prof. Arpita Vaidya


Assistant Professor
Department of Computer Science and Engineering
Content

1. Agility……………….…………………………………………3
2. Agile Methodology…………..………………………….4
3. Agile Process Model and its types….……………11
4. Extreme Programming…………………………………12
5. Scrum………………………………………………………….16
6. ASD……………………………………………………………..20
7. DSD……………………………………………………………..22
8. FDD…………………………………………………………….24
9. Crystal…………………………………………………………26

INDEX
10.Agile Modeling…………………………………………….28
Agile Development
Agility
Agile Methodology
Change ! Change ! Change !

• Why there are changes in


requirements? It is not
necessary that it’s a
mistake. there are four
fundamental sources of
change [pressman]:
• New business or market
conditions dictate changes
in product requirements or
business rules.
Change ! Change ! Change !

3. Reorganization or business growth /


downsizing causes changes in project
priorities or software engineering team
structure.

4. Budgetary or scheduling constraints


cause a redefinition of the system or
product: money & time are most
important factors to be taken care in any
project.
Where agile methodology does not work
Agile Process Models
Extreme Programming (XP)

Adaptive Software Development (ASD)

Dynamic Systems Development Method (DSDM)

Feature Driven Development (FDD)

Crystal

Agile Modelling (AM)


Extreme Programming
 The most widely used approach to agile software development
 A variant of XP called Industrial XP (IXP) has been proposed to target process for
large organizations
 It uses object oriented approach as its preferred development model

XP Values

 Communication: To achieve effective communication, it emphasized close & informal


(verbal) collaboration between customers and developers
 Simplicity: It restricts developers to design for immediate needs not for future needs
 Feedback: It is derived from three sources the implemented software, the customer
and other software team members, it uses Unit testing as primary testing
 Courage: It demands courage (discipline), there is often significant pressure to design
for future requirements, XP team must have the discipline (courage) to design for
today
 Respect: XP team respect among members
XP Process
Planning
1. Planning 2. Design 3. Coding 4. User Stories
Testing • Customers assigns value (priority)
• Developers assigns cost (number of
development weeks)
Project velocity
• Computed at the end of first release
• Number of stories implemented in first
release
• Estimates for future release
• Guard against over-commitment
XP Process
CRC • Keep-it-Simple (Design of extra functionality is discouraged)
card • Preparation of CRC card is work project
Design

• CRC cards identify and organize object oriented classes


• Spike Solutions (in case of difficult design problem is encountered)
• Operational prototype intended to clear confusion
• Refactoring
• Modify internals of code, No observable change

• Develops a series of Unit test for stories included in current release


• Complete code perform unit-test to get immediate feedback
Coding

• XP recommend pair-programming, “Two heads are better than one”


• Integrate code with other team members, this “continuous integration”
helps to avoid compatibility & interfacing problems, “smoke testing”
environment to uncover errors early

• Unit test by developers & fix small problems


Testing

• Acceptance tests - Specified by customer


• This encourages regression testing strategy whenever code is
modified
Pair Programming
Scrum is an agile process model which is used for developing the complex software
What is Scrum? systems.
It is a lightweight process framework.
Lightweight means the overhead of the process is kept
as small as possible in order to maximize the productivity.
Product Product

Product
Backlog Owner

Daily Scrum Meeting

Sprint
A scrum is a method of
restarting play in rugby that
involves players packing
closely together with their
heads down and attempting to
gain possession of the ball.
Scrum Frame work at Glance
Inputs from
Team Selects starting
Customers, Team,
at top as much as it
Managers
can commit to deliver Scrum
Daily
Master
by end of sprint Scrum
Meetings

Sprint Review

Product Owner

Finished Work

Product Sprint Sprint


Backlo Planning Backlo
g Meeting g Sprint end date and
Prioritized list of what is Sprint Retrospective
team deliverable do
required: features, bugs to not change
fix...
Backlog
 It is a prioritized list of project requirements or features that must be provided to the
customer.
 The items can be included in the backlog at any time.
 The product manager analyses this list and updates the priorities as per the
requirements.

Sprint
 These are the work units that are needed to achieve the requirements mentioned
in the backlogs.
 Typically the sprints have fixed duration or time box (of 2 to 4 weeks, 30 days).
 Change are not introduced during the sprint.
 Thus sprints allow the team members to work in stable and short-term
environment
Backlog
 It is a prioritized list of project requirements or features that must be provided to the
customer.
 The items can be included in the backlog at any time.
 The product manager analyses this list and updates the priorities as per the
requirements.

Sprint
 These are the work units that are needed to achieve the requirements mentioned
in the backlogs.
 Typically the sprints have fixed duration or time box (of 2 to 4 weeks, 30 days).
 Change are not introduced during the sprint.
 Thus sprints allow the team members to work in stable and short-term
environment
ADAPTIVE SOFTWARE DEVELOPMENT
• Emphasizes adaptability to respond to changing requirements and
environments.
• It focuses on continuous learning and is considered a part of agile
software development.
• Iterative Development: ASD breaks down the project into small,
manageable iterations, delivering incremental values.
• Risk Management: ASD involves identifying and addressing risks early in
the development process.
• Continuous Testing: It integrates testing throughout the development
process to ensure high-quality outcomes.
• Decentralized Control: It encourages decision-making at the team level
instead of relying on top-down directives.
• Customer Satisfaction: It prioritizes customer satisfaction by delivering
products that meet their needs and expectations.
ADAPTIVE SOFTWARE DEVELOPMENT PHASES
Dynamic System Development Methods

 Feasibility study: By analysing the business requirements and constraints the


viability of the application is determined
 Business study: The functional and informational requirements are identified and
then the business value of the application is determined
 Functional model iteration: The incremental approach is adopted for
development
 Design and build iteration: If possible design and build activities can be carried
out in parallel
 Implementation: The software increment is placed in the working environment
Dynamic System Development Methods
o Provides a framework for building and maintaining systems
Feature driven Development(FDD)

It is practical
process model
for object
oriented
software
engineering

In FDD, the feature means client valued


function.
Feature driven Development(FDD) Design by
feature
1. Develop overall  For each feature the sequence
model diagram is created
 The high-level walkthrough of scope
and detailed domain walkthrough are Build by feature
conducted to create overall models.
 Finally the class owner develop the
2. Build feature list actual code for their classes
 List of features is created and
expressed in the following form
<action> the <result> <by for of to> a(n)
<object>
For Ex. “Display product-specifications of the
product”

3. Plan by feature
 After completing the feature list the
development plan is created
Crystal

o Crystal methods are flexible approaches used in Agile software


development to manage projects effectively.
o They adapt to the needs of the team and the project, promoting
collaboration, communication, and adaptability for successful
outcomes.
o The methods are color-coded to significant risk to human life. It is
mainly for short-term projects by a team of developers working out
of a single workspace
Crystal
Agile Modeling

• 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.
• -Each iteration is considered as a short time "frame" in the
Agile process model, which typically lasts from one to four
weeks. The division of the entire project into smaller parts
helps to minimize the project risk and to reduce the overall
project delivery time requirements
Agile Modeling
PPT Content Resources Reference :

1. Book Reference
Software Engineering: A Practitioner's Approach, by R.S.Pressman published
by TMH.
2. Reference Books:
3. Software Engineering, 8th Edition by Sommerville, Pearson.
4. Software Engineering 3rd Edition by Rajiv Mall, PHI.
5. An Integrated Approach to Software Engineering by Pankaj Jalote Wiley India, 2009.

You might also like