0% found this document useful (0 votes)
4 views11 pages

Software Engineering Overview and Models

Uploaded by

yuvraj53534
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views11 pages

Software Engineering Overview and Models

Uploaded by

yuvraj53534
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1 Software Engineering,V SEM BCA

UNIT 1 OVERVIEW
1.1 Introduction
Software engineering is an engineering discipline that is concerned with all aspects
of software production from the early stages of system specification through to
maintaining the system after it has gone into use.

▶ Software costs
• Software costs often dominate computer system costs. The costs of software
on a PC are often greater than the hardware cost.
• Software costs more to maintain than it does to develop. For systems with
a long life, maintenance costs may be several times development costs.
• Software engineering is concerned with cost-effective software development.
▶ Software products
▶ Generic products
• Stand-alone systems that are marketed and sold to any customer who
wishes to buy them.
• The specification of what the software should do is owned by the software
developer and decisions on software change are made by the developer.
• Examples – PC software such as graphics programs, project management
tools; CAD software; software for specific markets such as appointments
systems for dentists.
▶ Customized products
• Software that is commissioned by a specific customer to meet their own
needs.
• The specification of what the software should do is owned by the customer
for the software and they make decisions on software changes that are
required.
• Examples – embedded control systems, air traffic control software, traffic
monitoring systems.
▶ Essential attributes of good software:
Good software is characterized by several key attributes, including:
1. Functionality: The software meets the requirements and specifications that
it was designed for, and it behaves as expected when it is used in its intended
environment.
2. Usability: The software is easy to use and understand, and it provides a
positive user experience.
3. Reliability: The software is free of defects and it performs consistently and
accurately under different conditions and scenarios.
4. Performance: The software runs efficiently and quickly, and it can handle
large amounts of data or traffic.
5. Security: The software is protected against unauthorized access and it keeps
the data and functions safe from malicious attacks.
6. Maintainability: The software is easy to change and update, and it is well-
documented, so that it can be understood and modified by other developers.

1 Ms. Naina B A, Dept of BCA, Christ College,Mysuru


2 Software Engineering,V SEM BCA

7. Reusability: The software can be reused in other projects or applications, and


it is designed in a way that promotes code reuse.
8. Scalability: The software can handle an increasing workload and it can be
easily extended to meet the changing requirements.
9. Testability: The software is designed in a way that makes it easy to test and
validate, and it has a comprehensive test coverage.

▶ Software process activities are as follows:


• Software specification, where customers and
engineers define the software that is to be
produced and the constraints on its operation.
• Software development, where the software is
designed and programmed.
• Software validation, where the software is
checked to ensure that it is what the customer
requires.
• Software evolution, where the software is
modified to reflect changing customer and
market requirements.
▶ Software Application types
▶ Stand-alone applications
• These are application systems that run on a local computer, such as a
PC. They include all necessary functionality and do not need to be
connected to a network.
▶ Interactive transaction-based applications
• Applications that execute on a remote computer and are accessed by
users from their own PCs or terminals. These include web applications
such as e-commerce applications.
▶ Embedded control systems
• These are software control systems that control and manage hardware
devices. Numerically, there are probably more embedded systems than
any other type of system.
▶ Batch processing systems
• These are business systems that are designed to process data in large
batches. They process large numbers of individual inputs to create
corresponding outputs.
▶ Entertainment systems
• These are systems that are primarily for personal use and which are
intended to entertain the user.
▶ Systems for modeling and simulation
• These are systems that are developed by scientists and engineers to
model physical processes or situations, which include many, separate,
interacting objects.
Web software engineering:

▶ Software reuse is the dominant approach for constructing web-based systems.

2 Ms. Naina B A, Dept of BCA, Christ College,Mysuru


3 Software Engineering,V SEM BCA

o When building these systems, you think about how you can
assemble them from pre-existing software components and
systems.
▶ Web-based systems should be developed and delivered incrementally.
It is now generally recognized that it is impractical to specify all
o
the requirements for such systems in advance.
▶ User interfaces are constrained by the capabilities of web browsers.
▶ Technologies such as AJAX allow rich interfaces to be created within a
web browser but are still difficult to use. Web forms with local scripting
are more commonly used.
1.2 Software engineering ethics

▶ Software engineering involves wider responsibilities than simply the


application of technical skills.
▶ Software engineers must behave in an honest and ethically responsible way if
they are to be respected as professionals.
▶ Ethical behaviour is more than simply upholding the law but involves
following a set of principles that are morally correct.
Issues of professional responsibility

▶ Confidentiality
• Engineers should normally respect the confidentiality of their
employers or clients irrespective of whether or not a formal
confidentiality agreement has been signed.
▶ Competence
• Engineers should not misrepresent their level of competence. They
should not knowingly accept work which is outside their competence.
▶ Intellectual property rights
• Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be
careful to ensure that the intellectual property of employers and clients
is protected.
▶ Computer misuse
• Software engineers should not use their technical skills to misuse other
people’s computers. Computer misuse ranges from relatively trivial
(game playing on an employer’s machine, say) to extremely serious
(dissemination of viruses).
1.3 Software process Models

▶ The software process is a a structured set of activities required to develop a


software system.
• Many different software processes but all involve:
• Specification – defining what the system should do;
• Design and implementation – defining the organization of the system
and implementing the system;
• Validation – checking that it does what the customer wants;

Ms. Naina B A, Dept of BCA, Christ College,Mysuru


3
4 Software Engineering,V SEM BCA

• Evolution – changing the system in response to changing customer


needs.
A software process model is an abstract representation of a process. It presents a
description of a process from some particular perspective.

1.3.1 The 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.
• In a waterfall model, each phase must be completed before the next
phase can begin and there is no overlapping in the phases.
• 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 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

4 Ms. Naina B A, Dept of BCA, Christ College,Mysuru


5 Software Engineering,V SEM BCA

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.

Advantages:
• 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.
• Easy to arrange tasks.

Disadvantages:

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

1.3.2 Incremental development


• Incremental Model is a process of software development where
requirements divided into multiple standalone modules of the software
development cycle.
• In this model, each module goes through the requirements, design,
implementation and testing phases.
• Every subsequent release of the module adds function to the previous
release. The process continues until the complete system achieved.

Ms. Naina B A, Dept of BCA, Christ College,Mysuru


5
6 Software Engineering,V SEM BCA

Fig: Incremental Model

The various phases of incremental model are as follows:

1. Requirement analysis: In the first phase of the incremental model, the


product analysis expertise identifies the requirements. And the system
functional requirements are understood by the requirement analysis team. To
develop the software under the incremental model, this phase performs a
crucial role.

2. Design & Development: In this phase of the Incremental model of SDLC,


the design of the system functionality and the development method are
finished with success. When software develops new practicality, the
incremental model uses style and development phase.

3. Testing: In the incremental model, the testing phase checks the


performance of each existing function as well as additional functionality. In
the testing phase, the various methods are used to test the behaviour of each
task.
Advantage

• Errors are easy to be recognized.


• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.
Disadvantage
• Need for good planning
• Total Cost is high.
• Well defined module interfaces are needed.

6 Ms. Naina B A, Dept of BCA, Christ College,Mysuru


7 Software Engineering,V SEM BCA

Spiral Model

• The Spiral model of software development is shown in fig. The diagrammatic representation of
this model appears like a spiral with many loops.
• The exact number of loops in the spiral is not fixed. Each loop of the spiral represents a phase
of the software process. For example, the innermost loop might be concerned with feasibility
study.
• The next loop with requirements specification, the next one with design, and so on. Each phase
in this model is split into four sectors (or quadrants) as shown in the fig.

Fig : Spiral Model

First quadrant (Objective Setting)


• During the first quadrant, it is needed to identify the objectives of the phase.
• Examine the risks associated with these objectives.
- Second Quadrant (Risk Assessment and Reduction)
• A detailed analysis is carried out for each identified project risk.
• Steps are taken to reduce the risks. For example, if there is a risk that the requirements
are inappropriate, a prototype system may be developed.
- Third Quadrant (Development and Validation)
• Develop and validate the next level of the product after resolving the identified risks.
- Fourth Quadrant (Review and Planning)
• Review the results achieved so far with the customer and plan the next iteration around
the spiral.
• Progressively more complete version of the software gets built with each iteration
around the spiral.

1.3.3 Reuse-oriented software engineering


• Today some software is reuse able, we use basic architecture of system such
as design, code etc and changes are made if required and incorporate into
system.
• When people working on software project if design and code are similar to other
software then we use that software and modify them according to our need
and include them into their system.
Requirement specification and system validation stages are general process used
in different software process but other stages used in this model are
different.
1. Component Analysis:-
According to given requirement, component is selected to implement
that requirement specification. That is not possible the selected component
provide the complete functionality, but that is possible the component used
provide some of the functionality required.
2. Requirement Modification: -
Information about component that is selected during component
analysis is used to analysis requirement specification. Requirements are
modified according to available components. Requirement modification is
critical then component analysis activity is reused to find relative solution.
3. System design with reuse:-
During this stage the design of the system is build. Designer must
consider the reused component and organize the framework. If reused
component is not available then new software is develop.
4. Development and Integration:-
Components and COTS system are integrated to develop new software
Integration in this model is part of development rather than separate activity.
Advantages:-

• It can reduce the overall cost of software development as compared to


other model.
• It can reduce the risk.
• It can save the time of software development. b/c testing of component
is minimize.
• Faster delivery of software.

Disadvantages:-

• Reuse-oriented model is not always practical in its pure form.


• Compromises in Requirement may lead to a system that does not meet
the real requirement of the user.

Ms. Naina B A, Dept of BCA, Christ College,Mysuru


7
8 Software Engineering,V SEM BCA

• Organization using the reusable component, are not able to control the
new version of component, this may lead to lost control over the system
evolution.

1.4 Process activities

• The four basic process activities of specification, development, validation and


evolution are organized differently in different development processes.
• In the waterfall model, they are organized in sequence, whereas in incremental
development they are inter-leaved.

1.4.1 Software specification

▶ The process of establishing what services are required and the constraints on
the system’s operation and development.

▶ The requirements engineering process aims to produce an agreed


requirements document that specifies a system satisfying stakeholder
requirements.

▶ There are four main activities in the requirements engineering process:

• Requirements Elicitation: This is the process of gathering information


about the needs and expectations of stakeholders for the software system.
This step involves interviews, surveys, focus groups, and other techniques to
gather information from stakeholders.
• Requirements Analysis: This step involves analyzing the information
gathered in the requirements elicitation step to identify the high-level goals
and objectives of the software system. It also involves identifying any
constraints or limitations that may affect the development of the software
system.
• Requirements Specification: This step involves documenting the
requirements identified in the analysis step in a clear, consistent, and
unambiguous manner. This step also involves prioritizing and grouping the
requirements into manageable chunks.

8 Ms. Naina B A, Dept of BCA, Christ College,Mysuru


9 Software Engineering,V SEM BCA

• Requirements Validation: This step involves checking that the


requirements are complete, consistent, and accurate. It also involves
checking that the requirements are testable and that they meet the needs
and expectations of stakeholders.
• Requirements Management: This step involves managing the requirements
throughout the software development life cycle, including tracking and
controlling changes, and ensuring that the requirements are still valid and
relevant.

1.4.2 Software design and implementation


• The implementation stage of software development is the process of
converting a system specification into an executable system.
• A software design is a description of the structure of the software to be
implemented, the data models and structures used by the system, the
interfaces between system components and, sometimes, the algorithms
used.
• Four activities that may be part of the design process for information
systems are as follows:
o Architectural design, where you identify the overall structure of the
system, the principal components (sometimes called sub-systems or
modules), their relationships and how they are distributed.
o Interface design, where you define the interfaces between system
components.
o Component design, where you take each system component and
design how it will operate.
o Database design, where you design the system data structures and
how these are to be represented in a database.

1.4.3 Software validation


• Verification and validation (V & V) is intended to show that a system
conforms to its specification and meets the requirements of the system
customer.
• Involves checking and review processes and system testing.
• System testing involves executing the system with test cases that are derived
from the specification of the real data to be processed by the system.
• Testing is the most commonly used V & V activity.

• Development or component testing


o Individual components are tested independently;

9 Ms. Naina B A, Dept of BCA, Christ College,Mysuru


10 Software Engineering,V SEM BCA

o Components may be functions or objects or coherent groupings of


these entities.
• System testing
o Testing of the system as a whole. Testing of emergent properties is
particularly important.
• Acceptance testing
o Testing with customer data to check that the system meets the
customer’s needs.

1.4.4 Software evolution


• The flexibility of software systems is one of the main reasons why more and
more software is being incorporated in large, complex systems.
• Once a decision has been made to manufacture hardware, it is very
expensive to make changes to the hardware design.
• However, changes can be made to software at any time during or after the
system development.
• Even extensive changes are still much cheaper than corresponding changes
to system hardware.
• Software engineering as an evolutionary process where software is
continually changed over its lifetime in response to changing requirements
and customer needs.

10 Ms. Naina B A, Dept of BCA, Christ College,Mysuru

You might also like