Professional Documents
Culture Documents
Dr.G.VENKATESWARA RAO
Professor
Department of CSE
GITAM Institute of Technology (GIT)
Visakhapatnam – 530045
Email: vgurrala@gitam.edu
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
15th September 2020 1
Topics to be covered
What is software and hardware?
What is software engineering and Importance of software engineering
Role of software engineering
Software Engineering is a layered technology
Process framework activities
Dual Role of Software
Changing Nature of Software
Software Models-Waterfall model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
25 August 2020
What is software and hardware?
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
• Software is developed or engineered; it is not manufactured in
the classical sense
– Impacts the management of software projects
• Software doesn't wear out
– Hardware bathtub curve compared to the software ascending
spiked curve
• Although the industry is moving toward component-based
construction, most software continues to be custom built (it is
still complex to build)
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 4
Software Failure Curve
What is software engineering?, Importance of software engineering and role of software
engineering
Software engineering is an engineering discipline that is concerned with all aspects of software
production
The application of a systematic, disciplined, quantifiable approach to the development, operation, and
maintenance of software; that is, the application of engineering to software
Software engineering is the establishment and use of sound engineering principles in order to obtain
economically software that is reliable and works efficiently on real machines
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 6
Importance
• Software engineering is important because
specific software is needed in almost every industry, in
every business, and for every function. It becomes
more important as time goes on – if something breaks
within your application portfolio, a quick, efficient, and
effective fix needs to happen as soon as possible.
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 7
Role of software engineering
• All software industries to develop their products from scratch to maintenance level
• You'll create, maintain, audit and improve systems to meet particular needs, often as
advised by a systems analyst or architect, testing both hard and software systems to
diagnose and resolve system faults.
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 8
Software Engineering is a layered technology
• Software Engineering is a layered technology. It means software
engineering encompasses a process, methods for managing and
engineering software, and tools.
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 9
• Any engineering approach must rest on organizational commitment to
quality which fosters a continuous process improvement culture.
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 11
Generic Process framework activities
• A process framework establishes the foundation for a complete software engineering
process by identifying a small number of framework activities that are applicable to
all software projects, regardless of their size or complexity.
• In addition, the process framework encompasses a set of umbrella activities that are
applicable across the entire software process.
• A generic process framework for software engineering encompasses five activities:
– Communication
– Planning
– Modeling
– Construction
– Deployment
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 12
• Communication: communicate with customer to understand objectives and
gather requirements
• Planning: creates a “map” defines the work by describing the tasks, risks and
resources, work products and work schedule.
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Changing Nature of Software
Seven broad categories of computer software challenges for software engineers
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Changing Nature of Software
• Embedded software-resides with in a product or system and is used to implement and
control features and functions for the end users and for system itself (eg. Keypad
control for microwave oven etc)
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Modeling: Software Requirements Analysis
• Helps software engineers to better understand the problem they will
work to solve
• Encompasses the set of tasks that lead to an understanding of what the
business impact of the software will be, what the customer wants, and
how end-users will interact with the software
• Uses a combination of text and diagrams to depict requirements for
data, function, and behavior
– Provides a relatively easy way to understand and review requirements
for correctness, completeness and consistency
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Modeling: Software Design
• Brings together customer requirements, business needs, and technical considerations to form the “
blueprint” for a product
• Creates a model that that provides detail about software data structures, software architecture, interfaces, and components
that are necessary to implement the system
• Architectural design
– Represents the structure of data and program components that are required to build the software
– Considers the architectural style, the structure and properties of components that constitute the system, and
interrelationships that occur among all architectural components
• Component-level Design
– Defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each
software component
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Prescriptive Models
• Every software engineering organization should describe set of frame work
activities for software process it adopts
• Each frame work activity with set of software engineering actions, and
defined each action in terms of task set that identifies the work(work product)
to meet the goals
• Regardless of the process model that is selected , software engineers have
Traditionally a generic process frame work…communication, planning,modelling,
construction and deployment
• Precriptive because they describe set of process element –frame work activities
, se actions, tasks , work products, quality assurance etc
• All software models can accommodate gneric frame work activities
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Process models
• The waterfall model
• Incremental process models
– The Increment Model
– RAD Model
• Evolutionary process models
– Prototyping Model
– The Spiral Model
– The Concurrent development model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Prescriptive software models
• The waterfall life cycle model
• The waterfall model was the first, and for a time, the only process model. This model is also known as
the “traditional” or “typical” software life cycle.
Communication
Project initiation
Requirement Planning
gathering Estimating
Scheduling
Modeling
tracking
Analysis
Construction
Design
Code Deployment
Test Delivery
Support
Feedback
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
The water fall S/W development process
What
How
Do it
Test
• Analysis Design Implementation Use
Testing
Maintenance
• The waterfall model is also called as 'linear-sequential model' or classic life cycle model’.
It is the oldest software paradigm. This model suggests a systematic, sequential approach to software
development.
• The software development starts with requirements gathering phase. Then progresses
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Advantages of the Waterfall Model
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
• Waterfall Model with Feedback
Communication
Planning
Modeling
Construction
Deployment
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
When to Use Waterfall Model?
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Incremental process models
RAD Model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023 29
The Increment Model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
The Increment Model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
RAD Model
• Rapid application development is a software development
methodology that uses minimal planning in favor of rapid
prototyping, for product delivery.
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
RAD Model
• Rapid Application Development focuses on gathering
customer requirements through workshops or focus
groups, early testing of the prototypes, continuous
integration and rapid delivery.
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
The advantages of the RAD Model are as follows
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
The disadvantages of the RAD Model are as follows
– Prototyping Model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023 38
Prototyping Model
• Follows an evolutionary and iterative approach
• Used when requirements are not well understood
• Serves as a mechanism for identifying software requirements
• Focuses on those aspects of the software that are visible to the
customer/user
• Feedback is used to refine the prototype
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Evolutionary Prototyping Model – Strengths
Customers/end users can visualize the system requirements as they are gathered
looking at the prototype.
Developers learn from customers and hence no ambiguities regarding domain or
production environment.
Allows flexible design and development.
Interaction with the prototype stimulates the awareness of additionally needed
functionality.
Unexpected requirements and requirements changes are easily accommodated.
Steady and visible signs of progress are produced.
Delivery of an accurate and maintainable end-product.
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Prototyping Model
(Potential Problems)
• The customer sees a "working version" of the software, wants to stop all
development and then buy the prototype after a "few fixes" are made
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
The Spiral Model
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
The Spiral Model
Friday, January 20, 2023 Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
The Concurrent development model
• The concurrent process model defines a series of events
that will trigger transition from state to state for each of the
software engineering activities.
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
• The concurrent process model is applicable to all types
of software development and provides an accurate
picture of the current state of a project.
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering
Friday, January 20, 2023
Recap – Summary – What you have learnt
24 August 2020
Department of CSE, GIT; Course Code and Course Title:EID303: Software Engineering 50