unit1 notes
unit1 notes
Introduction
Software serves as the basis for modern scientific investigation and engineering
problem solving.
Software Engineering is the field of Computer Science that deals with the
building of software systems which are so large and complex that they are built by
a team or teams of engineers.
Defining Software
Software is a set of programs, procedures, algorithms and its documentation
concerned with the operation of a data processing system.
Legacy Software
The older programs which are developed decades ago that are still in use by
performing modifications in order to meet the business requirements. Many
legacy systems remain supportive to core business functions and are important to
business. Hence, legacy software is characterized by longevity and business
criticality.
Sometimes the additional characteristic that is present in legacy software is poor
quality. Legacy systems some times have inextensible designs, convoluted code,
testcases and result that were never archived, a poorly maintained change
history, lack of support and documentation make it difficult to troubleshoot the
issues and leaving the system to security threats.
SOFTWARE PROCESS
SOFTWARE PROCESS
Software Processes are Complex and include a very large number of activities.
A Software Process can be defined as the set of activities and associated results
that produce a software product.
Software Processes also have attributes or characteristics that include :
8. Rapidity : How fast can the process of delivering the system be completed?
ESSENCE OF PRACTICE
SOFTWARE MYTHS
(i) Management Myths:
Myth 1:
Fact:
● Software experts do not know all the requirements for the software
development.
Myth 2:
The addition of the latest hardware will improve the software development.
(ii)Customer Myths:
Myth 1:
Fact:
Myth 2:
Fact:
Myths 1:
They believe that their work has been completed with the writing of the
plan.
Fact:
SOFTWARE PROCESS
PROCESS MODELS
Umbrella activities
● In this activity, the developing team accesses project plan and compares
● If these project plans do not match with the predefined schedule, then
2. Risk management
● Risk is an event that may or may not occur.
improvements.
● The technical person focuses on the quality of the software from the
components.
maintenance, which involves fixing any issues that arise after the
plan is made just for the next increment and not for any kind of
2. Design & Development: At any time, the plan is made just for the
next increment and not for any kind of long-term plan. Therefore,
Once the core features are fully developed, then these are refined
specified.
2. The complexity of the spiral model can be more than the other
sequential models.
PROTOTYPING
Prototyping is defined as the process of developing a working replication
of a product or system that has to be engineered.
Step 4: Initial User Evaluation: This step describes the preliminary testing
where the investigation of the performance model occurs, as the customer
will tell the strengths and weaknesses of the design, which was sent to
the developer.
Step 6: Implement Product and Maintain: This is the final step in the phase
of the Prototyping Model where the final system is tested and distributed
to production, here the program is run regularly to prevent failures.
comfort.
for refinement.
every phase. Then alternative solutions possible for the phase are
2. Identify and resolve Risks: During the second quadrant, all the
identified and the risks are resolved using the best possible
strategy. At the end of this quadrant, the Prototype is built for the
through testing. At the end of the third quadrant, the next version
4. Review and plan for the next Phase: In the fourth quadrant, the
The spiral model supports coping with risks by providing the scope
expertise.
CONCURRENT MODEL
Project managers who track project status in terms of the major phases [of the classic
life cycle] have no idea of the status of their projects. These are examples of trying to
track extremely complex sets of activities using overly simple models.
For example, early in a project the customer communication activity (not shown in the
figure) has completed its first iteration and exists in the awaiting changes state. The
analysis activity (which existed in the none state while initial customer communication
was completed) now makes a transition into the under development state. If, however,
the customer indicates that changes in requirements must be made, the analysis
activity moves from the under development state into the awaiting changes state.
The concurrent process model defines a series of events that will trigger transitions
from state to state for each of the software engineering activities.
Advantages
● Task completion time: Concurrent models can minimize the time it takes to
complete a task.
● Ease of use: Concurrent models can be easy to understand and use.
● Ease of documentation: Concurrent models can be simple to document.
Disadvantages
● Increased risk of errors: Poor communication and collaboration between
team members can lead to more errors.
● Requires more planning time: The development team needs to spend more
time planning and organizing the project to implement concurrent
engineering properly.
● Software requires more maintenance: Software may require more
maintenance after using the concurrent model.
What is Agile Model?
The Agile Model was primarily designed to help a project adapt quickly to
change requests. So, the main aim of the Agile model is to facilitate quick
project completion. To accomplish this task, agility is required. Agility is
achieved by fitting the process to the project and removing activities that
may not be essential for a specific project. Also, anything that is a waste
of time and effort is avoided. The Agile Model refers to a group of
development processes. These processes share some basic characteristics
but do have certain subtle differences among themselves.
1. Requirement Gathering:- In this step, the development team must
development team should plan the time and effort needed to build
working of the new features and show how they will apply to the
product.
and resolve any issues that may arise when different units
6. Feedback:- This is the last step of the Agile Model. In this, the team
ADVANTAGES
● It reduces the total development time of the whole project.
project goals.
Disadvantages
● The agile model depends highly on customer interactions so if the