Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
5 views39 pages

Introduction To SE Unit-1-1

The Software Engineering course aims to provide knowledge on estimation, design, testing, and quality management for large software projects, covering topics like process models and Agile Development. Upon completion, students will be able to translate user requirements into software specifications, apply design patterns, and manage testing and resources effectively. The course emphasizes the importance of software engineering in managing complexity, cost, and quality in software development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views39 pages

Introduction To SE Unit-1-1

The Software Engineering course aims to provide knowledge on estimation, design, testing, and quality management for large software projects, covering topics like process models and Agile Development. Upon completion, students will be able to translate user requirements into software specifications, apply design patterns, and manage testing and resources effectively. The course emphasizes the importance of software engineering in managing complexity, cost, and quality in software development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

SOFTWARE ENGINEERING (SE)

 COURSE OBJECTIVES:
 The aim of the course is to provide an understanding of the working knowledge of the techniques
for estimation, design, testing and quality management of large software development projects.
 Topics include process models, software requirements, software design, software testing, software
process / product metrics, risk management, quality management, and Agile Development.
 COURSE OUTCOMES:
 After the Course Completion, the students will be able to:
 Translate end-user requirements into system and software requirements, using UML, and
structure the requirements into a Software Requirements Document (SRD).
 Identify and apply appropriate software architectures and patterns to carry out high level
design of a system and be able to critically compare alternative choices.
 Develop a simple testing report, and to manage time, processes and resources effectively by
prioritizing competing demands to achieve personal, and team goals.
 Demonstrate Agile Development, & Testing Techniques.
SOFTWARE ENGINEERING (SE)
 COURSE OBJECTIVES:
 Explain the phases of Software Development,
 Teach the Customer Requirement Gathering Techniques,
 Teach Software Design Techniques,
 Demonstrate Coding Standards, &
 Apply the Testing Techniques on Software.
 COURSE OUTCOMES:
 After the Course Completion, the students will be able to:
 Understand the need of Software Life Cycle Models,
 Demonstrate the Requirements of the Software Systems Process,
 Summarize the System Models of Software Engineering,
 Choose Appropriate Software Architecture Style for Real – Time Software Projects, &
 Analyze various Testing Techniques, Risk Management & Software Quality of the Software Products.
UNIT – 1
INTRODUCTION TO SOFTWARE ENGINEERING
CONTENTS
 Introduction to Software Engineering (SE):
 The Evolving Role of Software,
 Changing Nature of Software, &
 Software Myths.
 Software Requirements:
 Functional Requirements,
 Non – Functional Requirements,
 User Requirements,
 System Requirements,
 Interface Specification, &
 The SRD (Software Requirements Document).
 Software Development Life Cycle (SDLC).
 Process Models for Software Development.
 Waterfall Model, and
 Prototyping Evolutionary Models:
 Incremental Model,
 Spiral Model,
 Unified Model, &
 Agile Developmental Process Model.
UNIT – 1
INTRODUCTION TO SOFTWARE ENGINEERING
 CONTENTS:
 Introduction to Software Engineering (SE).
 Evolving Role of Software.
 Software Crisis.
 Changing Nature of Software.
 Software Myths.
 Software Development Life Cycle (SDLC).
 Process Models for Software Development.
 Waterfall Model,
 Prototyping Evolutionary Models:
 Incremental Model,
 Spiral Model, and
 Agile Developmental Process Model.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE ENGINEERING (SE):
 The term is made of “two” words: software, and engineering.
 “Software” is more than just a program code. i.e., A ‘program’ is an executable code, which serves some computational
purpose. ‘Software’ is considered to be collection of executable programming code, associated libraries and
documentations. Software, when made for a specific requirement is called as “software product”.
 “Engineering” on the other hand, is all about developing products, using well-defined, scientific principles and methods.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE ENGINEERING (SE):
 The term is made of “two” words: software, and engineering.
 The “software” is a collection of integrated programs. Software subsists (maintain / support) of carefully-organized
instructions and code written by developers on any of various particular computer languages.
 Computer programs and related documentation such as requirements, design models and user manuals.
 “Engineering” is the application of scientific and practical knowledge to invent, design, build, maintain, and improve
frameworks, processes, etc.

 Hence, the “Software Engineering” is an engineering branch related to the “evolution of software product using well-defined
scientific principles, techniques, and procedures”. The outcome (or) the result of software engineering is an ‘effective and
INTRODUCTION TO SOFTWARE ENGINEERING
WHY IS SOFTWARE ENGINEERING REQUIRED ???
 “Software Engineering” is required due to the following reasons:
 To manage Large Software (by assembling right team, defining the project scope, define
deadlines & milestones, establish individual & team goals, communicate early often, make
meetings meaningful, gather requirements, and so on…,.),
 For more Scalability (to measure the system’s ability either by increase or decrease in
performance & cost in response to changes in application and system processing demands),
 Cost Management (the process of planning & controlling the costs associated with running a
business like the process of collecting, analyzing, & reporting cost information on budget
forecasting, & monitoring them),
 To manage the Dynamic Nature of Software (the way of always growing and adapting nature of
software hugely depends upon the environment in which user works, i.e., if the nature of software
is always changing, new enhancements need to be done in the existing one), and
 For better Quality Management (the Software Quality Assurance – SQA ensures that the
developers to find bugs and errors at the early stages of software development. Therefore, they
spend a lot less time and money fixing them).
INTRODUCTION TO SOFTWARE ENGINEERING
NEED OF SOFTWARE ENGINEERING:
 The necessity of software engineering appears because of a higher rate of progress in user
requirements and the environment on which the program is working.
 Therefore, the need of Software Engineering can be defined as:
 Huge Programming: It is simpler to manufacture a wall than to a house or building, similarly, as the measure of
programming become extensive engineering has to step to give it a scientific process.
 Adaptability: If the software procedure were not based on scientific and engineering ideas, it would be simpler to
re-create new software than to scale an existing one.
 Cost: As the hardware industry has demonstrated its skills and huge manufacturing has let down the cost of
computer and electronic hardware. But the cost of programming remains high if the proper process is not adapted.
 Dynamic Nature: The continually growing and adapting nature of programming hugely depends upon the
environment in which the client works. If the quality of the software is continually changing, new upgrades need to
be done in the existing one.
 Quality Management: Better procedure of software development provides a better and quality software product.
INTRODUCTION TO SOFTWARE ENGINEERING
CHARACTERISTICS OF GOOD SOFTWARE ENGINEER:
 The features / characteristics that good software engineers should possess are as follows:
 Exposure to systematic methods, i.e., familiarity with software engineering principles.
 Good technical knowledge of the project range (Domain knowledge).
 Good programming abilities.
 Good communication skills:
 These skills comprise of oral, written, and interpersonal skills.
 High motivation.
 Sound knowledge of fundamentals of computer science.
 Intelligence.
 Ability to work in a team.
 Discipline, etc.
INTRODUCTION TO SOFTWARE ENGINEERING
IMPORTANCE OF SOFTWARE ENGINEERING:
 The importance of software engineering is as follows:
 Reduced Complexity: Big software is always complicated and challenging to progress. Software engineering has a
great solution to reduce the complication of any project. Software engineering divides big problems into various
small issues. And then start solving each small issue one by one. All these small problems are solved independently to
each other.
INTRODUCTION TO SOFTWARE ENGINEERING
IMPORTANCE OF SOFTWARE ENGINEERING:
 The importance of software engineering is as follows:
 To minimize software cost: Software needs a lot of hardwork and software engineers are highly paid experts. A lot of
manpower is required to develop software with a large number of codes. But in software engineering, programmers
project everything and decrease all those things that are not needed. In turn, the cost for software productions becomes
less as compared to any software that does not use software engineering method.
 To decrease time: Anything that is not made according to the project always wastes time. And if you are making great
software, then you may need to run many codes to get the definitive running code. This is a very time-consuming
procedure, and if it is not well handled, then this can take a lot of time. So if you are making your software according to
the software engineering method, then it will decrease a lot of time.
 Handling big projects: Big projects are not done in a couple of days, and they need lots of patience, planning, and
management. And to invest six and seven months of any company, it requires heaps of planning, direction, testing, and
maintenance. No one can say that he has given four months of a company to the task, and the project is still in its first
stage. Because the company has provided many resources to the plan and it should be completed. So to handle a big
project without any problem, the company has to go for a software engineering method.
INTRODUCTION TO SOFTWARE ENGINEERING
IMPORTANCE OF SOFTWARE ENGINEERING:
 The importance of software engineering is as follows:
 Reliable software: Software should be secure, means if you have delivered the software, then it should work for at least its
given time or subscription. And if any bugs come in the software, the company is responsible for solving all these bugs.
Because in software engineering, testing and maintenance are given, so there is no worry of its reliability.
 Effectiveness: Effectiveness comes if anything has made according to the standards. Software standards are the big target of
companies to make it more effective. So Software becomes more effective in the act with the help of software engineering.

SOFTWARE ENGINEERING as the BODY OF KNOWLEDGE:


 The Software Engineering Body of Knowledge (SWEBOK) is an international standard ISO/IEC TR 19759:2005[1] specifying a
guide to the generally accepted Software Engineering Body of Knowledge.
 The Guide to the Software Engineering Body of Knowledge (SWEBOK Guide) has been created through cooperation among
several professional bodies and members of industry and is published by the IEEE Computer Society (IEEE).
 The standard can be accessed freely from the IEEE Computer Society. In late 2013, SWEBOK V3 was approved for publication
and released. In 2016, the IEEE Computer Society kicked off the SWEBOK Evolution effort to develop future iterations of the
body of knowledge.
INTRODUCTION TO SOFTWARE ENGINEERING
THE EVOLVING ROLE OF SOFTWARE:
 Today, 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. Whether it resides within a cellular phone or
operates inside a mainframe computer, 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). Software delivers the most important product of our time—information.
 Hence, the Software transforms personal data (e.g., an individual’s financial transactions) so that the data can
be more useful in a local context; it manages business information to enhance competitiveness; it provides a
gateway to worldwide information networks (e.g., Internet) and provides the means for acquiring information
in all of its forms.
INTRODUCTION TO SOFTWARE ENGINEERING
THE EVOLVING ROLE OF SOFTWARE:
 The role of computer software has undergone significant change over a time span of little more than 50
years. Dramatic improvements in hardware performance, profound changes in computing architectures,
vast increases in memory and storage capacity, and a wide variety of exotic input and output options have
all precipitated more sophisticated and complex computer-based systems. The lone programmer of an
earlier era has been replaced by a team of software specialists, each focusing on one part of the technology
required to deliver a complex application.

[OR]
 Today, the evolving role of software takes on a dual role. They are:
1. It is a Product / Software as a Product, and
2. Vehicle for delivering a Product / Software as a Vehicle.
1. Software as a Product:
 As a product, it delivers the computing potential embodied by computer hardware. Whether it resides within
a mobile phone or operates inside a mainframe computer, software is an information transformer.
INTRODUCTION TO SOFTWARE ENGINEERING
THE EVOLVING ROLE OF SOFTWARE:
2. Software as a Vehicle:
 As the vehicle, it is 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 other programs (software tools
and environments).
 The role of computer software has undergone significant change over the last half-century (for the past 50 Years).
 Sophistication and complexity can produce dazzling results when a system succeeds, but they can also pose huge problems
for those who must build complex systems.
 Common questions to lone programmer and team / group of specialists can be questioned when modern computer –
based systems are built:
1. Why does it take so long to get software finished?
 The process can take a long time to finish due to the many complexities often associated with designing software.
First and one of the harder parts is to understand the requirements, many times the one requesting the software
is non-technical so this needs to be translated to the development team. This process could be a back & forth
between the requester and the developer. Hence, you must design a “proof of concept” to map out the
INTRODUCTION TO SOFTWARE ENGINEERING
THE EVOLVING ROLE OF SOFTWARE:
 Common questions to lone programmer and team / group of specialists can be questioned when modern
computer – based systems are built:
2. Why are development costs so high?
 Every stage that is stated above is performed by either a single person or multiple teams in case of an
enterprise application. There is a minimum cost incurred for using a person or a resource. Person/
Resource are charged on per hour basis. Every step in the software development process is estimated
roughly. After proof of concept an exact estimation of resource/hour is allocated and finally the cost is
arrived.
3. Why can’t we find all errors before we give the software to our customers?
 Most cases functional testing is done by developers after which integration, regression, testing for bugs
and performance testing are done by testers. Some bugs like environmental bugs, bugs that occur
because developer does programming on single machine and production environment has distributed
environment cannot be avoided. Sometimes dll’s get upgraded, functionality gets depreciated and the
INTRODUCTION TO SOFTWARE ENGINEERING
THE EVOLVING ROLE OF SOFTWARE:
 Common questions to lone programmer and team / group of specialists can be questioned when modern
computer – based systems are built:
2. Why are development costs so high?
 Every stage that is stated above is performed by either a single person or multiple teams in case of an
enterprise application. There is a minimum cost incurred for using a person or a resource. Person/
Resource are charged on per hour basis. Every step in the software development process is estimated
roughly. After proof of concept an exact estimation of resource/hour is allocated and finally the cost is
arrived.
3. Why can’t we find all errors before we give the software to our customers?
 Most cases functional testing is done by developers after which integration, regression, testing for bugs
and performance testing are done by testers. Some bugs like environmental bugs, bugs that occur
because developer does programming on single machine and production environment has distributed
environment cannot be avoided. Sometimes dll’s get upgraded, functionality gets depreciated and the
INTRODUCTION TO SOFTWARE ENGINEERING
THE EVOLVING ROLE OF SOFTWARE:
 Common questions to lone programmer and team / group of specialists can be questioned when modern
computer – based systems are built:
4. Why do we spend so much time and effort maintaining existing programs?
 Systems contain critical information about customers. It gives information about business like who are
our customers, what is the market that is good, which markets are bad. Is a particular product selling
good/bad. All the information are critical to the business owners and maintaining the systems that
contain these information is critical. If information is lost business looses valuable information.
5. Why do we continue to have difficulty in measuring progress as software is being developed and
maintained?
 Process is always difficult to maintain. As many teams are involved in developing software, some teams
can work on same code. In such case communication is essential. If some team takes partially
completed code of other team and puts in production, team A's functionality may work correctly but
the other teams incorrect code can break some other portion of the system. Hence process is difficult to
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE APPLICATION DOMAINS:
 The nature of software has changed a lot over the years as follows:
1. System Software: Infrastructure software come under this category like compilers, operating systems, editors,
drivers, etc. Basically, system software is a collection of programs to provide service to other programs. The
characteristics of System Software can be defined as:
 Heavy interaction with computer hardware,
 Heavy usage with multiple users,
 Concurrent operation that needs scheduling,
 Resource Sharing,
 Sophisticated Process Management,
 Complex Data Structures, and
 Multiple External Interfaces.
2. Real – Time Software: These software are used to monitor, control and analyze real world events as they occur. An
example may be software required for weather forecasting. Such software will gather and process the status of
temperature, humidity, and other environmental parameters to forecast the weather.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE APPLICATION DOMAINS:
 The nature of software has changed a lot over the years as follows:
3. Embedded Software: This type of software is placed in “Read-Only-Memory (ROM)”of the product and
control the various functions of the product. The product could be an aircraft, automobile, security system,
signaling system, control unit of power plants, etc. The embedded software handles hardware components and
is also termed as “intelligent software”.

4. Business Software: This is the largest application area. The software designed to process business applications
is called “business software”. Business software could be payroll, file monitoring system, employee
management, account management. It may also be a data warehousing tool which helps us to take decisions
based on available data. Management information system, enterprise resource planning (ERP) and such other
software are popular examples of business software.

5. Personal Computer (PC) Software: The software used in personal computers are covered in this category.
Examples are word processors, computer graphics, multimedia and animating tools, database management,
computer games etc. This is a very upcoming area and many big organizations are concentrating their effort
here due to large customer base.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE APPLICATION DOMAINS:
 The nature of software has changed a lot over the years as follows:
6. Engineering / Scientific Software: A broad array of “number – crunching programs that range from astronomy to
volcanology, from automotive stress analysis to orbital dynamics, and from computer – aided design (CAD) to molecular
biology, from genetic analysis to meteorology”.

7. Product – Line Software: These are designed to provide a specific capability for use by many different customers. Product –
Line Software can focus on a limited & esoteric marketplace. For example, Inventory Control Products addresses more mass
consumers.

8. Artificial Intelligence Software: Artificial Intelligence software makes use of non-numerical algorithms to solve complex
problems that are not amenable to computation or straight forward analysis. Examples are expert systems, artificial neural
network, signal processing software etc.

9. Web / Mobile Applications based Software: The software related to web applications come under this category. Examples
are CGI, HTML, Java, Perl, DHTML etc.

Legacy Software: “Legacy software” is software that has been around a long time and still fulfills a business need. It is
mission critical and tied to a particular version of an operating system or hardware model (vendor lock-in) that has gone end-
of-life. Generally, the lifespan of the hardware is shorter than that of the software. [OR]
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE APPLICATION DOMAINS:
Legacy Software:
 A “legacy system” is outdated computing software and/or hardware that is still in use. The system still meets
the needs it was originally designed for, but doesn’t allow for growth. What a legacy system does now for the
company is all it will ever do. A legacy system’s older technology won’t allow it to interact with newer systems.
[OR]
 A “legacy app” is frequently tied to a specific version of an OS or coding language. For example, an application
built to run on Windows 7 might not be able to run on Windows 10, despite middleware or glue code added by
an application development team or the OS being generally backward compatible.
[OR]
 An “legacy app” is application that was written for an earlier operating system or hardware platform. For
example, mainframe applications were legacy apps when the world embraced client/server networks. Windows
3.1 applications were legacy apps when Windows 95 was introduced.
[OR]
INTRODUCTION TO SOFTWARE ENGINEERING
LEGACY SOFTWARE:
 The word “legacy” denoting or relating to software or hardware that has been superseded ( refers a place) but is
difficult to replace because of its wide use.
 “Dayani-Fard” describe the legacy software in the following way:
 “Legacy Software Systems” were developed decades ago and have been continually modified to meet changes in
business requirements and computing platforms. The proliferation (rapid increase in the number or amount of
something) of such systems is causing headaches for large organizations who find them costly to maintain and risky
to evolve.

CHARACTERISTICS OF LEGACY SOFTWARE:


 Longevity (Lifetime) : Very high,
 Business criticality : High,
 Poor quality,
 Convoluted code, and
 Poor or non-existent documents, test cases.
INTRODUCTION TO SOFTWARE ENGINEERING
LEGACY SOFTWARE:
 However, as time passes the organizations tries to keep / use the legacy systems often evolve for one or more
following reasons:
 The system works satisfactorily, and the owner sees no reason to change it.
 The costs of redesigning or replacing the system are prohibitive because it is large and complex.
 Retraining on a new system would be costly in lost time and money, compared to the anticipated
appreciable benefits of replacing it (which may be zero).
 The system requires near-constant availability, so it cannot be taken out of service, and the cost of
designing a new system with a similar availability level is high. Examples include systems to handle
customers' accounts in banks, computer reservations systems, air traffic control etc.
 The way that the system works is not well understood. Such a situation can occur when the designers of
the system have left the organization, and the system has either not been fully documented or
documentation has been lost.
INTRODUCTION TO SOFTWARE ENGINEERING
Changes Needed in Legacy Software:
 To use the legacy systems at present the following are the changes needed like:
 The software must be adopted to meet the needs of new computing environments or technology.
 The software must be enhanced to implement new business requirements.
 The software must be extended to make it interoperable with more modern systems or databases.
 The software must be re-architected to make it viable within a network environment.
CHANGING NATURE OF SOFTWARE:
 “Four” broad categories of software are evolving to dominate the industry. And yet, these
categories were in their infancy little more than a decade ago. They are:
1. WebApps,
2. Mobile Applications,
3. Cloud Computing, and
4. Product Line Software.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE MYTHS:
 “Software Myths” are erroneous beliefs (a misconception resulting from incorrect information) about software
and the process that is used to build it. We categorize myths from ‘three’ different perspectives. They are:
1. Management Myths,
2. Customer Myths, and
3. Practitioner’s Myths / Programmer’s Myths.
1. Management Myths:
Myth: We already have a book that’s full of standards and procedures for building software. Won’t that provide
my people with everything they need to know?
Reality: The book of standards may very well exist, but is it used? Are software practitioners aware of its
existence? Does it reflect modern software engineering practice? Is it complete? Is it adaptable? Is it streamlined
to improve time-to-delivery while still maintaining a focus on quality? In many cases, the answer to all of these
questions is “no.”
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE MYTHS:
1. Management Myths:
Myth: If we get behind schedule, we can add more programmers and catch up (sometimes called the “Mongolian
horde” concept).
Reality: Software development is not a mechanistic process like manufacturing. As new people are added, people
who are working must spend time educating the newcomers, thereby reducing the amount of time spent on
productive development effort. People can be added but only in a planned and well coordinated manner.
Myth: If I decide to outsource the software project to a third party, I can just relax and let that firm build it.
Reality: If an organization does not understand how to manage and control software projects internally, it will
invariably struggle when it out-sources software projects.

2. Customer Myths:
Myth: A general statement of objectives is sufficient to begin writing programs – we can fill in the details later.
Reality: Although a comprehensive and stable statement of requirements is not always possible, an ambiguous
“statement of objectives” is a recipe for disaster.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE MYTHS:
2. Customer Myths:
Myth: A general statement of objectives is sufficient to begin writing programs—we can fill in the details later.
Reality: Although a comprehensive and stable statement of requirements is not always possible, an ambiguous
“statement of objectives” is a recipe for disaster.
Myth: Software requirements continually change, but change can be easily accommodated because software is flexible.
Reality: It is true that software requirements change, but the impact of change varies with the time at which it is
introduced. When requirements changes are requested early (before design or code has been started), the cost impact is
relatively small. However, as time passes, the cost impact grows rapidly.

3. Practitioner’s Myths:
Myth: Once we write the program and get it to work, our job is done.
Reality: Someone once said that “the sooner you begin ‘writing code,’ the longer it’ll take you to get done.” Industry
data indicate that between 60 and 80 percent of all effort expended on software will be expended after it is delivered to
the customer for the first time.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE MYTHS:
3. Practitioner’s Myths:
Myth: Until I get the program “running” I have no way of assessing its quality.
Reality: One of the most effective software quality assurance mechanisms can be applied from the
inception of a project – the technical review.
Myth: The only deliverable work product for a successful project is the working program.
Reality: A working program is only one part of a software configuration that includes many
elements.
Myth: Software engineering will make us create voluminous and unnecessary documentation and
will invariably slow us down.
Reality: Software engineering is not about creating documents. It is about creating a quality
product. Better quality leads to reduced rework.
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC):
 A Software Life Cycle Model, (also termed process model) is a pictorial and diagrammatic representation of
the software life cycle. A life cycle model represents all the methods required to make a software product
transit through its life cycle stages. It also captures the structure in which these methods are to be
undertaken.

 In other words, a life cycle model maps the various activities performed on a software product from its
inception to retirement. Different life cycle models may plan the necessary development activities to phases
in different ways. Thus, no element which life cycle model is followed; the essential activities are contained
in all life cycle models though the action may be carried out in distinct orders in different life cycle models.
During any life cycle stage, more than one activity may also be carried out.

SDLC CYCLE:
 Software Development Life Cycle Model (SDLC Cycle) represents the process of developing software.
SDLC framework includes the following steps:
INTRODUCTION TO SOFTWARE ENGINEERING
SDLC CYCLE:

Stage – 1: Planning and Requirement Analysis


 “Requirement Analysis” is the most important and necessary stage in SDLC.

 The senior members of the team perform it with inputs from all the stakeholders and domain experts or SMEs
(subject matter experts) in the industry.
INTRODUCTION TO SOFTWARE ENGINEERING
SDLC CYCLE:
Stage – 1: Planning and Requirement Analysis

 Planning for the quality assurance requirements and identifications of the risks associated with the projects
is also done at this stage.

 Business analyst and Project organizer set up a meeting with the client to gather all the data like what the
customer wants to build, who will be the end user, what is the objective of the product. Before creating a
product, a core understanding or knowledge of the product is very necessary.

 For Example, A client wants to have an application which concerns money transactions. In this method, the
requirement has to be precise like what kind of operations will be done, how it will be done, in which
currency it will be done, etc.

 Once the required function is done, an analysis is complete with auditing the feasibility of the growth of a
product. In case of any ambiguity, a signal is set up for further discussion.
INTRODUCTION TO SOFTWARE ENGINEERING
SDLC CYCLE:
Stage – 1: Planning and Requirement Analysis

 Once the requirement is understood, the SRS (Software Requirement Specification) document is
created. The developers should thoroughly follow this document and also should be reviewed by
the customer for future reference.

Stage – 2: Defining Requirements

 Once the requirement analysis is done, the next stage is to certainly represent and document the
software requirements and get them accepted from the project stakeholders.

 This is accomplished through "SRS" – Software Requirement Specification document which


contains all the product requirements to be constructed and developed during the project life
cycle.
INTRODUCTION TO SOFTWARE ENGINEERING
SDLC CYCLE:
Stage – 3: Designing the Project

 The next phase is about to bring down all the knowledge of requirements, analysis, and design of
the software project. This phase is the product of the last two, like inputs from the customer and
requirement gathering.

Stage – 4: Developing the Project

 In this phase of SDLC, the actual development begins, and the programming is built. The
implementation of design begins concerning writing code. Developers have to follow the coding
guidelines described by their management and programming tools like compilers, interpreters,
debuggers, etc. are used to develop and implement the code.
INTRODUCTION TO SOFTWARE ENGINEERING
SDLC CYCLE:
Stage – 5: Testing

 After the code is generated, it is tested against the requirements to make sure that the products
are solving the needs addressed and gathered during the requirements stage.

 During this stage, unit testing, integration testing, system testing, & acceptance testing is done.

Stage – 6: Deployment

 Once the software is certified, and no bugs or errors are stated, then it is deployed.

 Then based on the assessment, the software may be released as it is or with suggested
enhancement in the object segment.

 After the software is deployed, then its maintenance begins.


INTRODUCTION TO SOFTWARE ENGINEERING
SDLC CYCLE:
Stage – 7: Maintenance
 Once when the client starts using the developed systems, then the real issues come up and requirements to be
solved from time to time.
 This procedure where the care is taken for the developed product is known as maintenance.

NEED OF SDLC CYCLE:


 The development team must determine a suitable life cycle model for a particular plan and then observe to it.

 Without using an exact life cycle model, the development of a software product would not be in a systematic

and disciplined manner.

 When a team is developing a software product, there must be a clear understanding among team

representative about when and what to do. Otherwise, it would point to chaos and project failure. This

problem can be defined by using an example:


INTRODUCTION TO SOFTWARE ENGINEERING
NEED OF SDLC CYCLE:

1. Suppose a software development issue is divided into various parts and the parts are assigned to the team

members.

2. From then on, suppose the team representative is allowed the freedom to develop the roles assigned to them in

whatever way they like.

3. It is possible that one representative might start writing the code for his part, another might choose to prepare

the test documents first, and some other engineer might begin with the design phase of the roles assigned to

him. This would be one of the perfect methods for project failure.

 A software life cycle model describes entry and exit criteria for each phase. A phase can begin only if its stage-

entry criteria have been fulfilled.

 So, without a software life cycle model, the entry and exit criteria for a stage cannot be recognized. Without

software life cycle models, it becomes tough for software project managers to monitor the progress of the

project.
INTRODUCTION TO SOFTWARE ENGINEERING
PROCESS MODELS FOR SOFTWARE DEVELOPMENT:

1. Suppose a software development issue is divided into various parts and the parts are assigned to the team

members.

2. From then on, suppose the team representative is allowed the freedom to develop the roles assigned to them

in whatever way they like.

3. It is possible that one representative might start writing the code for his part, another might choose to

prepare the test documents first, and some other engineer might begin with the design phase of the roles

assigned to him. This would be one of the perfect methods for project failure.

 A software life cycle model describes entry and exit criteria for each phase. A phase can begin only if its stage-entry

criteria have been fulfilled.

 So, without a software life cycle model, the entry and exit criteria for a stage cannot be recognized. Without

software life cycle models, it becomes tough for software project managers to monitor the progress of the project.
INTRODUCTION TO SOFTWARE ENGINEERING
WHY SOFTWARE ENGINEERING ???
 The term is made of two words: software, and engineering.
 The “software” is a collection of integrated programs. Software subsists (maintain / support) of carefully-organized
instructions and code written by developers on any of various particular computer languages.
 Computer programs and related documentation such as requirements, design models and user manuals.
 “Engineering” is the application of scientific and practical knowledge to invent, design, build, maintain, and improve
frameworks, processes, etc.

You might also like