0% found this document useful (0 votes)
11 views19 pages

SEN Micro Project

Software engineering is the discipline focused on the design, development, and maintenance of software, addressing issues like quality and project management. It follows a structured Software Development Lifecycle (SDLC) that includes stages such as requirement gathering, design, coding, testing, and maintenance. The document also discusses various software types, historical context, layered technology, and models like the Waterfall and V-model, highlighting their advantages and disadvantages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views19 pages

SEN Micro Project

Software engineering is the discipline focused on the design, development, and maintenance of software, addressing issues like quality and project management. It follows a structured Software Development Lifecycle (SDLC) that includes stages such as requirement gathering, design, coding, testing, and maintenance. The document also discusses various software types, historical context, layered technology, and models like the Waterfall and V-model, highlighting their advantages and disadvantages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 19

What is Software Engineering

Introduction

Definition: Software engineering is a detailed study of engineering to the design,


development and maintenance of software. Software engineering was introduced to address
the issues of low-quality software projects. Problems arise when a software generally exceeds
timelines, budgets, and reduced levels of quality. It ensures that the application is built
consistently, correctly, on time and on budget and within requirements. The demand of
software engineering also emerged to cater to the immense rate of change in user
requirements and environment on which application is supposed to be working.

Description: A software product is judged by how easily it can be used by the end-user and
the features it offers to the user. An application must score in the following areas:-

1) Operational: -This tells how good a software works on operations like budget , usability,
efficiency, correctness ,functionality , dependability , security and safety.

2) Transitional: - Transitional is important when an application is shifted from one platform


to another. So, portability, reusability and adaptability come in this area.

3) Maintenance: - This specifies how good a software works in the changing environment.
Modularity, maintainability, flexibility and scalability come in maintenance part.

Software Development Lifecycle or SDLC is a series of stages in software engineering to


develop proposed software application, such as:

1) Communication

2) Requirement Gathering

3) Feasibility Study

4) System Analysis

5) Software Design

6) Coding

7) Testing

8) Integration

9) Implementation

10) Operations and maintenance

11) Disposition

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 1
What is Software Engineering

Software engineering generally begins with the first step as a user-request initiation
for a specific task or an output. He submits his requirement to a service provider
organization. The software development team segregates user requirement, system
requirement and functional requirements. The requirement is collected by conducting
interviews of a user, referring to a database, studying the existing system etc. After
requirement gathering, the team analyses if the software can be made to fulfil all the
requirements of the user. The developer then decides a roadmap of his plan. System analysis
also includes an understanding of software product limitations. As per the requirement and
analysis, a software design is made. The implementation of software design starts in terms of
writing program code in a suitable programming language. Software testing is done while
coding by the developers and thorough testing is conducted by testing experts at various
levels of code such as module testing, program testing, product testing, in-house testing and
testing the product at user’s engagement and feedback.

Types of Software

 Application Software.
 System Software.
 Firmware.
 Programming Software.
 Driver Software.
 Freeware.
 Shareware.
 Open Source Software.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 2
What is Software Engineering

History

Beginning in the 1960s, software engineering was seen as its own type of engineering.
Additionally, the development of software engineering was seen as a struggle. It was difficult
to keep up with the hardware which caused many problems for software engineers. Problems
included software that was over budget, exceeded deadlines, required extensive de-bugging
and maintenance, and unsuccessfully met the needs of consumers or was never even
completed. In 1968 NATO held the first Software Engineering conference where issues
related to software were addressed: guidelines and best practices for the development of
software were established.

The origins of the term "software engineering" have been attributed to various
sources. The term "software engineering" appeared in a list of services offered by companies
in the June 1965 issue of COMPUTERS and AUTOMATION and was used more formally in
the August 1966 issue of Communications of the ACM (Volume 9, number 8) “letter to the
ACM membership” by the ACM President Anthony A. Oettinger,it is also associated with the
title of a NATO conference in 1968 by Professor Friedrich L. Bauer, the first conference on
software engineering.Margaret Hamilton described the discipline "software engineering"
during the Apollo missions to give what they were doing legitimacy.At the time there was
perceived to be a "software crisis". The 40th International Conference on Software
Engineering (ICSE 2018) celebrates 50 years of "Software Engineering" with the Plenary
Sessions' keynotes of Frederick Brooks and Margaret Hamilton.

In 1984, the Software Engineering Institute (SEI) was established as a federally


funded research and development center headquartered on the campus of Carnegie Mellon
University in Pittsburgh, Pennsylvania, United States. Watts Humphrey founded the SEI
Software Process Program, aimed at understanding and managing the software engineering
process. The Process Maturity Levels introduced would become the Capability Maturity
Model Integration for Development(CMMI-DEV), which has defined how the US
Government evaluates the abilities of a software development team.

Modern, generally accepted best-practices for software engineering have been


collected by the ISO/IEC JTC 1/SC 7 subcommittee and published as the Software
Engineering Body of Knowledge (SWEBOK). Software engineering is considered one of
major computing disciplines.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 3
What is Software Engineering

Layered Technology in Software Engineering

Software engineering is fully a layered technology, to develop software we need to go from


one layer to another. All the layers are connected and each layer demands the fulfillment of
the previous layer.

Layered technology is divided into four parts:

1. A quality focus: It defines the continuous process improvement principles of software. It


provides integrity that means providing security to the software so that data can be accessed
by only an authorized person, no outsider can access the data. It also focuses on
maintainability and usability.

2. Process: It is the foundation or base layer of software engineering. It is key that binds all
the layers together which enables the development of software before the deadline or on time.
Process defines a framework that must be established for the effective delivery of software
engineering technology. The software process covers all the activities, actions, and tasks
required to be carried out for software development.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 4
What is Software Engineering

Process activities are listed below:-

Communication: It is the first and foremost thing for the development of software.
Communication is necessary to know the actual demand of the client.

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

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

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

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

3. Method: During the process of software development the answers to all “how-to-do”
questions are given by method. It has the information of all the tasks which includes
communication, requirement analysis, design modeling, program construction, testing,
andsupport.

4. Tools: Software engineering tools provide a self-operating system for processes and
methods. Tools are integrated which means information created by one tool can be used by
another.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 5
What is Software Engineering

Software Process Framework

Framework is a Standard way to build and deploy applications. Software Process


Framework is the foundation of complete software engineering process. Software process
framework includes set of all umbrella activities. It also includes number of framework
activities that are applicable to all software projects.

A generic process framework encompasses five activities which are given below one by one:

1. Communication:
In this activity, heavy communication with customers and other stakeholders, as well
as requirement gathering is done.
2. Planning:
In this activity, we discuss the technical related tasks, work schedule, risks, required
resources, etc.
3. Modeling:
Modeling is about building representations of things in the ‘real world’. In modeling
activity, a product’s model is created in order to better understand the requirements.
4. Construction:
In software engineering, construction is the application of set of procedures that are
needed to assemble the product. In this activity, we generate the code and test the
product in order to make better product.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 6
What is Software Engineering

5 .Deployment:
In this activity, a complete or non-complete product or software is represented to the
customers to evaluate and give feedback. On the basis of their feedback, we modify
the product for supply of better product.
Umbrella activities include:

Risk Management
 Software Quality Assurance (SQA)
 Software Configuration Management (SCM)
 Measurement
 Formal Technical Reviews (FTR)

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 7
What is Software Engineering

Software Design And Implementation

The implementation phase is the process of converting a system specification into an


executable system. If an incremental approach is used, it may also involve refinement of the
software specification.A software design is a description of the structure of the software to be
implemented, data models, interfaces between system components, and maybe the algorithms
used.The software designers develop the software design iteratively; they add formality and
detail and correct the design as they develop their design.Here’s an abstract model of the
design process showing the inputs, activities, and documents to be produced as output.

Waterfall model in software engineering :

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.

Waterfall Model – Design

Waterfall approach was first SDLC Model to be used widely in Software Engineering to
ensure success of the project. In "The Waterfall" approach, the whole process of software
development is divided into separate phases. In this Waterfall model, typically, the outcome
of one phase acts as the input for the next phase sequentially.The following illustration is a
representation of the different phases of the Waterfall Model.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 8
What is Software Engineering

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 9
What is Software Engineering

The sequential phases in Waterfall model are −

 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.
 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.
 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.
 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.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 10
What is Software Engineering

 All these phases are cascaded to each other in which progress is seen as flowing
steadily downwards (like a waterfall) through the phases. The next phase is started
only after the defined set of goals are achieved for previous phase and it is signed off,
so the name "Waterfall Model". In this model, phases do not overlap.

Waterfall 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 −

 Requirements are very well documented, clear and fixed.


 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.

Waterfall Model - Advantages

 The advantages of waterfall development are that it allows for departmentalization


and control. A schedule can be set with deadlines for each stage of development and a
product can proceed through the development process model phases one by one.
 Development moves from concept, through design, implementation, testing,
installation, troubleshooting, and ends up at operation and maintenance. Each phase of
development proceeds in strict order.
 Some of the major advantages of the Waterfall Model are as follows −
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 11
What is Software Engineering

Waterfall Model - Disadvantages

 The disadvantage of waterfall development is that it does not allow much reflection or
revision. Once an application is in the testing stage, it is very difficult to go back and
change something that was not well-documented or thought upon in the concept stage.
 The major disadvantages of the Waterfall Model are as follows −
 No working software is produced until late during the life cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 12
What is Software Engineering

V-model

The V-model is a type of SDLC model where process executes in a sequential manner
in V-shape. It is also known as Verification and Validation model. It is based on the
association of a testing phase for each corresponding development stage. Development of
each step directly associated with the testing phase. The next phase starts only after
completion of the previous phase i.e. for each development activity, there is a testing activity
corresponding to it.

Verification: It involves static analysis technique (review) done without executing code. It is
the process of evaluation of the product development phase to find whether specified
requirements meet.

Validation: It involves dynamic analysis technique (functional, non-functional), testing done


by executing code. Validation is the process to evaluate the software after the completion of
the development phase to determine whether software meets the customer expectations and
requirements.

So V-Model contains Verification phases on one side of the Validation phases on the other
side. Verification and Validation phases are joined by coding phase in V-shape. Thus it is
called V-Model.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 13
What is Software Engineering

Design Phase:

 Requirement Analysis: This phase contains detailed communication with the


customer to understand their requirements and expectations. This stage is known as
Requirement Gathering.
 System Design: This phase contains the system design and the complete hardware and
communication setup for developing product.
 Architectural Design: System design is broken down further into modules taking up
different functionalities. The data transfer and communication between the internal
modules and with the outside world (other systems) is clearly understood.
 Module Design: In this phase the system breaks down into small modules. The
detailed design of modules is specified, also known as Low-Level Design (LLD).
Testing Phases:

Unit Testing:

 Unit Test Plans are developed during module design phase. These Unit Test Plans are
executed to eliminate bugs at code or unit level.
 Integration testing: After completion of unit testing Integration testing is performed.
In integration testing, the modules are integrated and the system is tested. Integration
testing is performed on the Architecture design phase. This test verifies the
communication of modules among themselves.
 System Testing: System testing test the complete application with its functionality,
inter dependency, and communication.It tests the functional and non-functional
requirements of the developed application.
 User Acceptance Testing (UAT): UAT is performed in a user environment that
resembles the production environment. UAT verifies that the delivered system meets
user’s requirement and system is ready for use in real world.

Industrial Challenge: As the industry has evolved, the technologies have become more
complex, increasingly faster, and forever changing, however, there remains a set of basic
principles and concepts that are as applicable today as when IT was in its infancy.

 Accurately define and refine user requirements.


 Design and build an application according to the authorized user requirements.
 Validate that the application they had built adhered to the authorized business
requirements.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 14
What is Software Engineering

Principles of V-Model:

 Large to Small: In V-Model, testing is done in a hierarchical perspective, For


example, requirements identified by the project team, create High-Level Design, and
Detailed Design phases of the project. As each of these phases is completed the
requirements, they are defining become more and more refined and detailed.
 Data/Process Integrity: This principle states that the successful design of any project
requires the incorporation and cohesion of both data and processes. Process elements
must be identified at each and every requirements.
 Scalability: This principle states that the V-Model concept has the flexibility to
accommodate any IT project irrespective of its size, complexity or duration.
 Cross Referencing: Direct correlation between requirements and corresponding
testing activity is known as cross-referencing.
 Tangible Documentation: This principle states that every project needs to create a
document. This documentation is required and applied by both the project
development team and the support team. Documentation is used to maintaining the
application once it is available in a production environment.

Advantages:
 This is a highly disciplined model and Phases are completed one at a time.
 V-Model is used for small projects where project requirements are clear.
 Simple and easy to understand and use.
 This model focuses on verification and validation activities early in the life cycle
thereby enhancing the probability of building an error-free and good quality product.
 It enables project management to track progress accurately.

Disadvantages:
 High risk and uncertainty.
 It is not a good for complex and object-oriented projects.
 It is not suitable for projects where requirements are not clear and contains high risk
of changing.
 This model does not support iteration of phases.
 It does not easily handle concurrent events.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 15
What is Software Engineering

Agile Software Development

Agile is a time-bound, iterative approach to software delivery that builds software


incrementally from the start of the project, instead of trying to deliver all at once.

Why Agile?

Technology in this current era is progressing faster than ever, enforcing the global
software companies to work in a fast-paced changing environment. Because these businesses
are operating in an ever-changing environment, it is impossible to gather a complete and
exhaustive set of software requirements. Without these requirements, it becomes practically
hard for any conventional software model to work.

The conventional software models such as Waterfall Model that depends on


completely specifying the requirements, designing, and testing the system are not geared
towards rapid software development. As a consequence, a conventional software
development model fails to deliver the required product.

This is where agile software development comes to the rescue. It was specially
designed to curate the needs of the rapidly changing environment by embracing the idea of
incremental development and developing the actual final product.

Let’s now read about the on which the Agile has laid its foundation:

Principles:

1. Highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
2. It welcomes changing requirements, even late in development.
3. Deliver working software frequently, from a couple of weeks to a couple of months,
with a preference to the shortest timescale.
4. Build projects around motivated individuals. Give them the environment and the
support they need, and trust them to get the job done.
5. Working software is the primary measure of progress.
6. Simplicity the art of maximizing the amount of work not done is essential.
7. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 16
What is Software Engineering

Advantages:

 Deployment of software is quicker and thus helps in increasing the trust of the
customer.
 Can better adapt to rapidly changing requirements and respond faster.
 Helps in getting immediate feedback which can be used to improve the software in the
next increment.
 People – Not Process. People and interactions are given a higher priority rather than
process and tools.
 Continuous attention to technical excellence and good design.

Disadvantages:

 In case of large software projects, it is difficult to assess the effort required at the
initial stages of the software development life cycle.
 The Agile Development is more code focused and produces less documentation.
 Agile development is heavily depended on the inputs of the customer. If the customer
has ambiguity in his vision of the final outcome, it is highly likely for the project to
get off track.
 Face to Face communication is harder in large-scale organizations.
 Only senior programmers are capable of taking the kind of decisions required during
the development process. Hence it’s a difficult situation for new programmers to
adapt to the environment.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 17
What is Software Engineering

Conclusion

Approaches to software development, you have extended your knowledge


of the important ideas in software development. We investigated the characteristics of a good
software system, and considered what a development process would need to include to build
such software. You saw that there is no single development process to suit the variety of
users’ requirements. However there must be a disciplined approach to software development,
especially in the case of large projects.
We introduced the notion that it is good practice to split a project into
smaller, more manageable activities. When developing good software systems, you should
focus on the users’ needs and, wherever possible, make use of replaceable and reusable
modules – components. The overall software architecture should be constructed around the
users’ requirements.

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 18
What is Software Engineering

Reference

 https://www.geeksforgeeks.org/software-engineering-sdlc-v-model/
 https://www.javatpoint.com/software-engineering-v-model
 https://www.javatpoint.com/software-engineering-v-model

D.Y.PATIL TECHNICAL CAMPUS,FACULTY OF ENGINEERING & FACULTY OF


MANAGEMENT TALSANDE (Polytechnic wing) Page 19

You might also like