Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software Engineering: I.Venkanna & A.Venugopal Rao

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 27

SOFTWARE ENGINEERING

By
I.VENKANNA & A.VENUGOPAL RAO
Assoc.Prof. Asst.Prof.

Dept of C.S.E

MALLA REDDY INSTITUTE OF


TECHNOLOGY & SCIENCE
Course Objectives

• To understanding of software process models such as


waterfall and evolutionary models.
• To understanding of software requirements and SRS
document.
• To understanding of different software architectural
styles.
• To understanding of software testing approaches such
as unit testing and integration testing.
• To understanding on quality control and how to
ensure good quality software.
Course Outcomes

• Ability to identify the minimum requirements for the


development of application.

• Ability to develop, maintain, efficient, reliable and


cost effective software solutions

• Ability to critically thinking and evaluate


assumptions and arguments.
UNIT -I
Introduction to Software Engineering
• Software Engineering is the science and art of
building significant software systems that are:
1) on time.
2) on budget.
3) with acceptable performance.
4) with correct operation.
The Evolving Role of the Software

1. It is a product

2. vehicle for delivering a product.

As a product, it delivers the computing potential embodied


by computer hardware.

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 other
programs (software tools and environments).
Changing Nature of Software

• System software
• Application software
• Engineering/scientific software
• Embedded software
• Product-line software
• Web applications
• Artificial intelligence software
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.
Software Myths

• Software Development Myths: Pressman (1997)


describes a number of common beliefs or myths that
software managers, customers, and developers
believe falsely. He describes these myths as
``misleading attitudes that have caused serious
problems.''
A Generic View of Process: Layered
Technology
Software engineering is a fully layered technology.

To develop a software, we need to go from one layer to


another.
All these layers are related to each other and each layer
demands the fulfillment of the previous layer.
A Process Framework
• A software framework provides a standard way to
build and deploy applications.
• Process Pattern :A process pattern is a group of
proven steps, that complete a specific task or tasks,
and provide a consistently favorable result for a
common problem. In other words, they are a template
for achieving your specific goal consistently.
• Process Assessment: Software process assessment
examines whether the software processes are
effective and efficient in accomplishing the goals.
The Capability Maturity Model Integration
(CMMI)
• The Capability Maturity Model Integration
(CMMI) is a process and behavioral model that helps
organizations streamline process improvement and
encourage productive, efficient behaviors that
decrease risks in software, product and service
development.
• The CMMI was developed by the Software
Engineering Institute at Carnegie Mellon University
as a process improvement tool for projects, divisions
or organizations.
Levels of CMM
• The CMMI model breaks down organizational
maturity into five levels. For businesses that embrace
CMMI, the goal is to raise the organization up to
Level 5, the “optimizing” maturity level. Once
businesses reach this level, they aren’t done with the
CMMI.
• CMMI’s five Maturity Levels are:
Initial: an unpredictable environment that increases
risk and inefficiency.
Managed: There’s a level of project management
achieved. Projects are “planned, performed, measured
and controlled”.
Defined: At this stage, organizations are more proactive
than reactive. There’s a set of “organization-wide
standards” to “provide guidance across projects,
programs and portfolios.”
Quantitatively managed: This stage is more measured
and controlled. The organization is working off
quantitative data to determine predictable processes
that align with stakeholder needs.
Optimizing: Here, an organization’s processes are stable
and flexible. At this final stage, an organization will be
in constant state of improving and responding to changes
or other opportunities.
Personal and Team Process Models

Personal Process Models: The personal software


process is about making individual engineers work to
the best of their abilities.
Software engineers should accept responsibility for
the quality of their work Software engineers can do this
only if they have a way of evaluating quality and
improving quality .
Team Process Models: The Team Software Process
(TSP), along with the Personal Software Process,
helps the high-performance engineer to
-ensure quality software products
-create secure software products
-improve process management in an organization.
Process Models
• Process models may include activities that are part of
the software process, software products, e.g.
architectural descriptions, source code, user
documentation, and the roles of people involved in
software engineering.
• Examples:
The waterfall model
Incremental model
The spiral model
Evolutionary model
Specialized process models.
The Unified process
The waterfall model: The Waterfall Model was the
first Process Model to be introduced. 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.
Incremental Model:
The incremental build model is a method of software
development where the product is designed,
implemented and tested incrementally until the product
is finished. It involves both development and
maintenance.
Spiral model: Spiral model is one of the most
important Software Development Life Cycle models,
which provides support for Risk Handling. In its
diagrammatic representation, it looks like a spiral with
many loops. The exact number of loops of the spiral is
unknown and can vary from project to project. Each
loop of the spiral is called a Phase of the software
development
• Evolutionary model: It is a combination of iterative
and Incremental of software development life cycle.
Delivering your system in a big bang release,
delivering it in incremental process over time is the
action done in this model. Some initial requirements
and architecture envisioning need to be done.
Fig 5: Evolutionary model
• The unified Processed: Unified process (UP)
is an architecture-centric, use-case driven,
iterative and incremental development process
that leverages Unified Modeling Language
(UML)
Any Suggestions!!!

You might also like