You are on page 1of 23

Unit -1

Engineering Perspective

Software Engineering:
(1) The application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software; that is, the
application of engineering to software.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 1


Process, Methods, and Tools

Any engineering approach (including software engineering) must rest on an


organizational commitment to quality.
Process, Methods, and Tools --Software engineering is a layered technology.
The foundation for software engineering is the process layer. Software engineering
process is the glue that holds the technology layers.
Process defines a framework for a set of key process areas (technical methods are
applied, work products (models, documents, data, reports, forms, etc.) are produced,
milestones are established, quality is ensured)

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 2


CONTINUED…..
Software engineering methods provide the technical how-to's for
building software. Methods encompass a broad array of tasks that
include requirements analysis, design, program construction, testing, and
support.

Software engineering tools provide automated or semi-automated


support for the process and the methods. When tools are integrated so
that information created by one tool can be used by another, a system for
the support of software development, called computer-aided software
engineering, CASE.
A common process framework is established by defining a small number
of framework activities that are applicable to all software projects,
regardless of their size or complexity. A number of task sets—each a
collection of software engineering work tasks, project milestones

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 3


SOFTWARE general agreement among

DEVELOPMENT
software engineers on the
major steps of a software
process

02/13/2022
PROCESS
DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 4
SOFTWARE
DEVELOPMENT PROCESS
In order for software to be consistently well engineered, its
development must be conducted in an orderly process.
It is sometimes possible for a small software product to be
developed without a well-defined process.
However, for a software project of any substantial size, involving
more than a few people, a good process is essential.
The process can be viewed as a road map by which the project
participants understand where they are going and how they are
going to get there.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 5


CORRESPONDENCE
BETWEEN PROBLEM-
SOLVING AND SOFTWARE
PROCESSES
Problem-Solving Phase Software Process Step
Define the Problem ----- Analyze and Specify Software
Requirements Solve the Problem --- Design and Implement
Software Product Verify the Solution -- Test that Product Meets
Requirements

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 6


QUALITY CRITERIA
1. The process is suited to the people involved in a project and the
type of software being developed.
 2. All project participants clearly understand the process, or at
minimum the part of the process in which they are directly involved.
3. If possible, the process is defined based on the experience of
engineers who have participated in successful projects in the past, in
an application domain similar to the project at hand.
4. The process is subject to regular evaluation, so that adjustments
can be made as necessary during a project, and so the process can be
improved for future projects.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 7


GENERAL CONCEPTS OF
SOFTWARE PROCESSES--
PROCESS TERMINOLOGY
software process: a hierarchical collection of process steps;
hierarchical means that a process step can in turn have sub-steps
 process step: one of the activities of a software process, for
example "Analyz e and Specify Software Requirements" is the first
step in Figure 1
 software artifact: a software work product produced by a process
step; for example, a requirements specification document is an
artifact produced by the "Analyz e and Specify" step;
ordered step: a process step that is performed in a particular order in
relation to other steps

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 8


CONTINUED--
process enactment: the activity of performing a process; most
process steps are enacted by people, but some can be automated and
enacted by a software development tool
 step precondition: a condition that must be true before a process
step is enacted; for example, a precondition for the "Design and
Implement" step could be that the requirements specification is
signed off by the customer
 step postcondition: a condition that is true after a process step is
enacted; for example, a postcondition for the "Design and
Implement" step is that the implementation is complete and ready to
be tested for final delivery.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 9


SOFTWARE DEVELOPMENT LIFE CYCLE
PROCESS(SDLC)
SDLC is a process that defines the various stages involved in the
development of software for delivering a high-quality product.
SDLC stages cover the complete life cycle of a software i.e. from
inception to retirement of the product.
Adhering to the SDLC process leads to the development of the
software in a systematic and disciplined manner.
SDLC Cycle represents the process of developing software.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 10


SDLC
 Purpose of SDLC is to deliver a high-quality product which is as per the customer’s
requirement.

SDLC has defined its phases as, Requirement gathering, Designing, Coding,
Testing, Deployment and Maintenance.
For Example, A software has to be developed and a team is divided to work
on a feature of the product and is allowed to work as they want. One of the
developers decides to design first whereas the other decides to code first and
the other on the documentation part.
This will lead to project failure because of which it is necessary to have a
good knowledge and understanding among the team members to deliver an
expected product.

30/12/02/13/20222021 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 11


02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 12
SDLC PHASES

Requirement gathering and analysis


Design
Implementation or coding
Testing
Deployment
Maintenance

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 13


#1) REQUIREMENT
GATHERING AND ANALYSIS

During this phase, all the relevant information is collected from the customer to develop
a product as per their expectation. Any ambiguities must be resolved in this phase only.
Business analyst and Project Manager set up a meeting with the customer to gather all
the information like what the customer wants to build, who will be the end-user, what is
the purpose of the product. Before building a product a core understanding or
knowledge of the product is very important.
For Example, A customer wants to have an application which involves money
transactions. In this case, the requirement has to be clear like what kind of transactions
will be done, how it will be done, in which currency it will be done, etc.
Once the requirement gathering is done, an analysis is done to check the feasibility of
the development of a product. In case of any ambiguity, a call is set up for further
discussion.
Once the requirement is clearly understood, the SRS (Software Requirement
Specification) document is created. This document should be thoroughly understood by
the developers and also should be reviewed by the customer for future reference.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 14


#2) DESIGN
In this phase, the requirement gathered in the SRS document is used
as an input and software architecture that is used for implementing
system development is derived.
to transform the requirements into complete and detailed
system design specifications.
This design phase serves as input for the next phase of the model.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 15


THERE ARE TWO KINDS OF
DESIGN DOCUMENTS
High-Level Design (HLD)
Brief description and name of each module , An outline about the
functionality of every module, Interface relationship and
dependencies between modules, Database tables identified along
with their key elements,Complete architecture diagrams along
with technology details
Low-Level Design(LLD)
Functional logic of the modules,Database tables, which include
type and size,Complete detail of the interface, Complete input and
outputs for every module

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 16


#3) IMPLEMENTATION OR
CODING

Implementation/Coding starts once the developer gets the Design document. The
Software design is translated into source code. All the components of the software are
implemented in this phase.
developers start build the entire system by writing code using the chosen
programming language. In the coding phase, tasks are divided into units or modules
and assigned to the various developers. It is the longest phase of the Software
Development Life Cycle process.
In this phase, Developer needs to follow certain predefined coding guidelines. They
also need to use programming tools like compiler, interpreters, debugger to generate
and implement the code.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 17


#4) TESTING

Testing starts once the coding is complete and the modules are
released for testing. In this phase, the developed software is tested
thoroughly and any defects found are assigned to developers to get
them fixed.
Retesting, regression testing is done until the point at which the
software is as per the customer’s expectation. Testers refer SRS
document to make sure that the software is as per the customer’s
standard.
During this phase, QA and testing team may find some
bugs/defects which they communicate to developers. The
development team fixes the bug and send back to QA for a re-test.
This process continues until the software is bug-free, stable, and
working according to the business needs of that system.
02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 18
#5) DEPLOYMENT
Once the product is tested, it is deployed in the production environment or
first UAT (User Acceptance testing) is done depending on the customer
expectation.
In the case of UAT, a replica of the production environment is created and
the customer along with the developers does the testing. If the customer
finds the application as expected, then sign off is provided by the customer
to go live.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 19


#6) MAINTENANCE

After the deployment of a product on the production environment, maintenance of the


product i.e. if any issue comes up and needs to be fixed or any enhancement is to be
done is taken care by the developers.
customers start using the developed system, following 3 activities occur
 Bug fixing – bugs are reported because of some scenarios which are not tested at
all
 Upgrade – Upgrading the application to the newer versions of the Software
 Enhancement – Adding some new features into the existing software

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 20


CONCLUSION

Several different process models exist and vary mainly in the


frequency, application and implementation of the above techniques,
other models attempt to implement the solution to a problem in one
big-bang approach,
while others adopt an iterative approach whereby successively
larger and more complete versions of the software are built with each
iteration of the process model.

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 21


CAPABILITY MATURITY
MODEL (CMM)
A bench-mark for measuring the maturity of an organization’s software
process
CMM defines 5 levels of process maturity based on certain Key Process
Areas (KPA)

02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 22


CMM LEVELS
Level 5 – Optimizing (< 1%) Level 2 – Repeatable (~ 15%)
-- process change management -- software configuration
-- technology change management management
-- defect prevention -- software quality assurance
-- software project tracking and
Level 4 – Managed (< 5%) oversight
-- software quality management -- software project planning
-- quantitative process management -- requirements management
Level 3 – Defined (< 10%) Level 1 – Initial (~ 70%)
-- peer reviews
-- intergroup coordination
-- software product engineering
-- integrated software management
-- training program
-- organization process definition
-- organization process focus
02/13/2022 DR.A.VALARMATHI,ANNA UNIVERSITY,CHENNAI,BIT CAMPUS 23

You might also like