Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Unit -01

Introduction to software engineering


What is software engineering?
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 the Impact of software engineering?


1. Enhances software Development Processes
Se has introduced well defined processes, methodologies, tools to create more effective and
efficient software. This has led to development of more robust, high -performances
E.g.: A software engineer might use specialized software testing tool to find and fix error
2. Adoption of standardized methodologies
The emergence of se has given rise to standardized methodologies, such as waterfall, agile,
DevOPs model
E.g.: The Agile methodology break down into large project into smaller task
3. Improved collaboration and Team work
Has promoted better collaboration among various stake holder, including developers,
designers, tester and project manager
4. Higher Quality and Reliability of software
5. Driving Innovation and growth
6. Economic impact and job Creation
7. Societal impact

Need or Benefits or goal of Software engineering


1. Managing Large and complex software project
2. Ensuring scalability
3. Controlling costs
4. Adapting to Dynamic Nature
5. Focusing on Quality Management
6. Improved Maintenance and Support
7. Enhanced Security
8. Better Resources Management
9. Facilitating Reusability and Modularity

Software Development life cycle


According to Roger Pressman SDLC is a process that encompasses all activities required to develop ,
maintain, and update a software system

Phases of SDLC
Planning — in this phase, you are conducting thorough research on the product you are planning to
develop. You are then discussing your plans with clients and stakeholders. You are also identifying
the pros and cons of the current software methods you are using. Thus, you can double down on the
pros and reduce the cons to a minimum. In order to make this research process as accurate as possible,
you should take a look at your customer’s feedback. Feedback should include surveys, interviews,
questionnaires, quizzes, and more. It’s super important to know what your customers want so that you
can build it for them. In the end, you are not going to make a profit if you don’t deliver the product
your customers truly desire. But be careful! Sometimes, even your customers don’t know what they
really want. As the great 

Requirements Analysis — Once research is completed you can proceed forward to creating


an SRS (Software Requirements Specification) document. In this document, you are going to describe
all the product’s features. Then you are going to present the SRS doc to the stakeholders so that they
can either accept it or reject it. It depends on the time and financial constraints.

Design — Once the SRS doc is completed, your team, specifically the product architects, will create
another document — the DDS (Design Document Specification).In the DDS, you’ll have your features
thoroughly described. Inside the document, you’ll also have the budget and time estimates required
for the product to be completed successfully. You’ll basically have everything your developers need
to start working on the actual product. But prior to that, the DDS must be approved by the client and
the stakeholders. Sometimes, changes are required due to various reasons ranging from time and
budget estimates to software robustness.
Implementation / Development — The implementation phase in SDLC typically takes the longest
period of time as it involves the actual development of the product. Your developers will work on
creating a product based on the DDS. Also, depending on DDS’s robustness, developers will either
code without much hassle or will have trouble along the way. They must also select the most
appropriate coding language for the type of software you are building. It’s vital to notice that the
communication between your team at this phase must be effective and accurate. That’s because your
developers will need to communicate with the QA (quality assurance) testers, the product and project
managers. This will help them in developing a product your customers will genuinely enjoy. Since
DevOps is becoming popular lately, developers are starting to broaden their coding skills. This makes
them responsible for a large part of the entire software development life cycle process including the
testing stage. Here’s a great article by Detective on scaling up security with DevOps and CI/CD
practices.

Testing — Once the product is developed, the software development life cycle testing phase follows.
Here, the QA testers have to go through the codebase in order to find bugs and errors. If issues are
reported, the product is turned back to the developers for them to rectify the flaws and roll it out
again. This phase repeats until the product becomes flawless.

Deployment — Once all the errors are removed, the product is rolled out to the market automatically.

Maintenance and improvement — After deployment, you should observe how the market reacts to
your product. Then based on the feedback you receive, you create reports on what needs to be
improved.

Software Life cycle Model


There are 5 types

1. Classical waterfall model


2. Iterative waterfall model
3. Prototyping Model
4. Evolutionary Model
5. Spiral model

Classical waterfall model


The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-
sequential life cycle model. 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. The
Waterfall model is the earliest SDLC approach that was used for software development. The waterfall
Model illustrates the software development process in a linear sequential flow. This means that any
phase in the development process begins only if the previous phase is complete. In this waterfall
model, the phases do not overlap.
1. Requirement Gathering and analysis − All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
document.
2. System Design − The requirement specifications from first phase are studied in this phase
and the system design is prepared. This system design helps in specifying hardware and
system requirements and helps in defining the overall system architecture
3. Implementation − With inputs from the system design, the system is first developed in small
programs called units, which are integrated in the next phase. Each unit is developed and
tested for its functionality, which is referred to as Unit Testing.
4. 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.
5. 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.
6. 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.

You might also like