SE Module1
SE Module1
SE Module1
Technology
Software Engineering
Module-1
1
Introduction to Software Engineering
Software Engineering is an engineering discipline whose focus is the cost-effective
development of high-quality software systems. It is a sub discipline of Computer
Science that attempts to apply engineering principles to the creation, operation,
modification and maintenance of the software components of various systems.
The cost of software engineering includes roughly 60% development costs and 40%
testing costs.
As per the IBM report, “31%of the project get cancelled before they are
completed, 53% overrun their cost estimates by an average of 189% and for
every 100 projects, there are 94 restarts
Factors Contributing to Software Crisis
Larger problems,
Lack of adequate training in software engineering,
Increasing skill shortage,
Low productivity improvements.
Some Software failures
What is Software
Characteristics of Software
Business Software
Embedded Software
Personal Computer
Software
Artificial Intelligence
Software
Software Crisis
Objectives of Software Engineering
The objectives of software engineering is to develop high quality software, in a timely
manner, within the budget and under the software production constraints. Below are
some basic objectives of software engineering:
Maintainability
Correctness
Reusability
Testability
Reliability
Portability
Adaptability
Software Development Life Cycle
Software development life cycle
(SDLC) is a structured process that is
used to design, develop, and test good-
quality software. SDLC, or software
development life cycle, is a
methodology that defines the entire
procedure of software development step-
by-step.
In this phase of SDLC, the actual development begins, and the programming is
built. The implementation of design begins concerning writing code.
Developers have to follow the coding guidelines described by their
management and programming tools like compilers, interpreters, debuggers,
etc. are used to develop and implement the code.
Stage 5:Testing
After the code is generated, it is tested against the requirements to make sure
that the products are solving the needs addressed and gathered during the
requirements stage.
During this stage, unit testing, integration testing, system testing, acceptance
testing are done.
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is
deployed.
Then based on the assessment, the software may be released as it is or with
suggested enhancement in the object segment.
After the software is deployed, then its maintenance begins.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real issues
come up and requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known as
maintenance.
SDLC MODELS
A software life cycle model is a descriptive representation of the software development cycle.
SDLC models might have a different approach but the basic phases and activity remain the
same for all the models.
Advantages
Risk analysis is too high in this life cycle
model.
Used for large and critical projects.
Software is developed in the early stage
of the life cycle.
Disadvantages
Disadvantages
1. Very rigid and least flexible.
6. Not a good for a complex project.
7. Software is developed during the implementation stage, so no early prototypes of the
software are produced.
8. If any changes happen in the midway, then the test documents along with the required
documents, has to be updated.
Agile Model
The meaning of Agile is swift or versatile.
"Agile process model" refers to a software development approach based on iterative
development. Agile methods break tasks into smaller iterations, or parts do not directly involve
long term planning.
The project scope and requirements are laid down at the beginning of the development process.
Plans regarding the number of iterations, the duration and the scope of each iteration are clearly
defined in advance.
Each iteration is considered as a short time "frame" in the Agile process model, which typically
lasts from one to four weeks. The division of the entire project into smaller parts helps to
minimize the project risk and to reduce the overall project delivery time requirements.
Phases of Agile Model
1. Requirements gathering: In this phase, you must define the requirements. You should explain
business opportunities and plan the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with stakeholders to
define requirements. You can use the user flow diagram or the high-level UML diagram to show
the work of new features and show how it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the work begins. Designers
and developers start working on their project, which aims to deploy a working product. The
product will undergo various stages of improvement, so it includes simple, minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's performance and
looks for the bug.
5. Deployment: In this phase, the team issues a product for the user's work environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.
Prototype Model
The prototype model requires
that before carrying out the
development of actual software,
a working prototype of the
system should be built. A
prototype is a toy
implementation of the system. A
prototype usually turns out to be
a very crude version of the
actual system, possible
exhibiting limited functional
capabilities, low reliability, and
inefficient performance as
compared to actual software.
RAD Model
RAD Model or Rapid Application Development model is a software development process based
on prototyping without any specific planning. In RAD model, there is less attention paid to the
planning and more priority is given to the development tasks. It targets at developing software
in a short span of time.
• Business Modeling – In this phase, business functions and product scope
are decided during various meetings between the requirements planning
team and the client team.
• Data Modeling – In the data modeling phase, all the information derived
in the business modeling phase is analyzed and separated into different
data elements important for the business.
• Process Modeling – In this phase, all the data objects gathered in the
process modeling phase are transformed into required useful
information.
• Testing and Turnover – In this stage, all the modules and interfaces of the
prototype are tested
Evolutionary Process Model
What are standards
2. Which is the following is the most important feature of the spiral model?
e. Coding
b. Design
c. Preliminary Investigation and Analysis
d. Testing
3. Which is the following is the not a life cycle model?
a. Spiral
b. Protyping
c. Waterfall
d. CMM
Thank you
64