SE IT Unit1pptx 2025 01 28 11 47 24
SE IT Unit1pptx 2025 01 28 11 47 24
to Software and
Subject : Software
Software Engineering Engineering
Subject Code: 01IT0601
Semester: 6th
1 2 3 4 5
How the How the How the How the How the
Customer Project System Programmer Business
Explains Leader Analyst Works Consultant
Requirement understand design it on it describe it
it
Why to Study Software Engineering?
Software Development Life Cycle without Software Engineering
6 7 8 9 10
6
Software Engineering
Engineerin
g
+ +
Computer Data Documents
Program Structure Soft & Hard
List of documentation & manuals
Formal Specification
Documentation
Analysis / Manuals
Context Diagram
Specification
Data Flow Diagram
User Manuals Operational
Documentation
Design
ER Diagram System Installation
Overview Guide
Implementat Source Code Listings Beginner’s
ion Cross-Reference Guide
Tutorials System
Listings Administration
Test Data Reference Guide
Testing Guide
Test Results
Software Application Domains
System
• System Software Software
Point of Sale,
• Application Artificial
Application Customized
intelligenc Software
Software e Software
Software
• Engineering /
Software
Scientific Software Application
• Embedded Domains Engineering
Web
/ Scientific
Application
Software Software
• Product line
Software Product Embedded
line Software
• Web Application Software
• Artificial
intelligence sw
Software Engineering
• Software Engineering is the application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of software; that is, the
application of engineering to software.
• "Quantifiable methods" refer to techniques or practices that can be measured or
expressed using numbers, in order to ensure a high level of precision, accuracy, and
control in software engineering.
The Evolving Role Of Software
• Software takes on a dual role. It is a product and, at the same time, the vehicle for
delivering a product.
• As a product, it delivers the computing potential embodied by computer hardware or,
more broadly, a network of computers that are accessible by local hardware, software is
an information transformer—producing, managing, acquiring, modifying, displaying, or
transmitting information that can be as simple as a single bit or as complex as a
multimedia presentation.
• As the vehicle used to deliver the product, software acts as the basis for the control of the
computer (operating systems), the communication of information (networks), and the
creation and control of other programs (software tools and environments).
The Evolving Role Of Software
• Computer software has evolved greatly in 50 years due to advancements in hardware,
computing architecture, memory, storage and input/output options leading to more
sophisticated and complex systems. This can result in great success but also pose
challenges for those developing complex systems.
• The individual programmer of the past has been replaced by a team of software
specialists, each responsible for a specific aspect of creating complex computer
applications.
• Despite the team approach, the same questions that were asked of the individual
programmer still need to be addressed -
The Evolving Role Of Software
• Why does software take so long to complete?
• Why are development expenses so high?
• Why can't all errors be found before customer release?
• Why is it hard to track progress during software development?
These questions reflect the concern over software development and have led to the
implementation of software engineering practices.
Software: A Crisis On The Horizon?
• The issues with software development have been called a "crisis" by many experts.
• There have been numerous books documenting the impact of past software failures,
however the industry has also seen great success leading some to question if the term
"crisis" is still appropriate.
• According to Webster's Dictionary, crisis is defined as a decisive moment in a course of
events.
• However, in regards to software quality and development speed, there has not been a
clear turning point, but rather gradual and evolving change with occasional
technological advancements in related fields.
Software: A Crisis On The Horizon?
• The word "affliction" means anything causing pain or distress, while the word "chronic"
means lasting a long time or recurring often.
• It is more fitting to call the problems faced in software development a chronic affliction
rather than a crisis.
• The set of problems that are encountered in the development of computer software is not
limited to software that "doesn't function properly."
• Rather, the affliction encompasses problems associated with how we develop software,
how we support a growing volume of existing software, and how we can expect to keep
pace with a growing demand for more software.
Software Myths
• Nowadays, knowledgeable professionals understand that myths are false beliefs that have
created difficulties for both managers and technical personnel.
• However, changing old attitudes and beliefs is challenging and some outdated myths
about software development are still prevalent.
Management Myths
Customer Myths
Software Process
• Each software engineering action is Software Engineering action #1.1
Task Sets Work tasks
defined by a task set that identifies … Work products
Quality assurance points
…
work to be completed, product to be
Software Engineering action #1.k
produced, quality assurance points Task Sets Work tasks
… Work products
& milestones to indicate progress … Quality assurance points
Modeling Construction
Creating models to Code Generation
understand requirements (manual or automated)
and shows design of &
software to achieve Testing
requirements (to uncover errors in the code)
• Software project tracking and control: allows the software team to assess
progress against the project plan and take any necessary action to maintain the
schedule.
• Risk management: assesses (evaluates) risks that may affect the outcome of
the project or the quality of the product.
• Software quality assurance: defines and conducts the activities required to
ensure software quality.
• Technical reviews: assesses software engineering work products in an effort to
uncover and remove errors before they are propagated to the next activity.
• Measurement: defines and collects process, project and product measures that
assist the team in delivering software that meets stakeholders’ needs.
• Software configuration management: it manages the effects of change
throughout the software process.
Umbrella Activities Cont.
• Reusability management: it defines criteria for work product reuse
(including software components) and establishes mechanisms to
achieve reusable components.
• Work product preparation and production: it encompasses (includes)
the activities required to create work products such as models,
documents, logs, forms and lists.
Software Process Models
SDLC
Communi Phases
cation
Deployment
SDLC Planning
Software
Development
Life
Cycle
Construction Modeling
Different Process Models
Process model is selected based
on different parameters
Process Models
Type of the project & people
Complexity of the project
• Waterfall Model (Linear Sequential
Size of team Model)
Expertise of people in team
• Incremental Process Model
Working environment of team
• Prototyping Model
Software delivery deadline
• The Spiral Model
• Rapid Application Development Model
• Agile Model
The Linear Sequential Model
The Linear Sequential Model
• Sometimes called the classic life cycle or the waterfall model, the linear sequential
model suggests a systematic, sequential approach to software development.
• It is very simple to understand and use.
• In a waterfall model, each phase must be completed before the next phase can begin and
there is no overlapping in the phases.
• In this Waterfall model, typically, the outcome of one phase acts as the input for the next
phase sequentially.
The Linear Sequential Model
• Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
• Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.
• Maintenance − There are some issues which come up in the client environment. To fix
those issues, patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.
The Linear Sequential Model
Application:
• Every software developed is different and requires a suitable SDLC approach to be followed based on
the internal and external factors. Some situations where the use of Waterfall model is most appropriate
are :
• Ample resources with required expertise are available to support the product.
Advantage:
Disadvantage:
1. Identification of ‘stakeholders’.
3. Negotiations of stakeholders struggling vigorously for win condition. Software project team
conciliate for a win-win result with concern. Then determine next level objectives, constraints, and
alternatives.
4. Evaluation of the process and product and then analyzing and resolving or reducing the risks to
make it easy.
5. Defining the next level of product and process for proper working.
7. Reviewing of the product and giving the necessary and important comments on it.
The RAD Model
The RAD Model
• Rapid Application Development (RAD) is a software development process with a short
development cycle, achieved by using components.
• It's a fast version of the linear sequential model. If requirements are clear and scope is
limited, it can result in a fully functional system in a short period of time (60-90 days). It
includes specific phases.
• Business modeling involves modeling the flow of information among business functions
to understand the source, generation, destination, and processing of information.
• Data modeling involves refining the information flow defined in business modeling into
a set of data objects with defined attributes and relationships between them to support the
business.
The RAD Model
• Process modeling involves transforming the data objects defined in data modeling to
achieve the necessary information flow for implementing business functions. It involves
creating processing descriptions for actions such as adding, modifying, deleting, or
retrieving data objects.
• Application generation aims to reuse existing program components or create reusable
ones, using automated tools to facilitate software construction.
• Testing and turnover. Since the RAD process emphasizes reuse, many of the program
components have already been tested. This reduces overall testing time. However, new
components must be tested.
The RAD Model
• If a business application can be modularized in a way that enables each major function to
be completed in less than three months (using the approach described previously), it is a
candidate for RAD.
• Each major function can be addressed by a separate RAD team and then integrated to
form a whole.
• Like all process models, the RAD approach has drawbacks
• requires sufficient human resources, committed developers and customers,
• require appropriate applications that can be modularized.
• It may not be suitable for systems with high technical risks, such as heavy use of new
technology or high interoperability requirements.
The Concurrent Development Model
a n
Th
k
Y o u