SE Unit I
SE Unit I
SE Unit I
Intelligence.
Discipline, etc.
Need of SDLC
The development team must determine a suitable life cycle model for
a particular plan and then observe to it.
Without using an exact life cycle model, the development of a
software product would not be in a systematic and disciplined
manner. When a team is developing a software product, there must be
a clear understanding among team representative about when and
what to do. Otherwise, it would point to chaos and project failure.
This problem can be defined by using an example. Suppose a
software development issue is divided into various parts and the parts
are assigned to the team members. From then on, suppose the team
representative is allowed the freedom to develop the roles assigned to
them in whatever way they like. It is possible that one representative
might start writing the code for his part, another might choose to
prepare the test documents first, and some other engineer might begin
with the design phase of the roles assigned to him. This would be one
of the perfect methods for project failure.
A software life cycle model describes entry and exit criteria for each
phase. A phase can begin only if its stage-entry criteria have been
fulfilled. So without a software life cycle model, the entry and exit
criteria for a stage cannot be recognized. Without software life cycle
models, it becomes tough for software project managers to monitor
the progress of the project.
SDLC Cycle
The senior members of the team perform it with inputs from all the
stakeholders and domain experts or SMEs in the industry.
Business analyst and Project organizer set up a meeting with the client
to gather all the data like what the customer wants to build, who will
be the end user, what is the objective of the product. Before creating a
product, a core understanding or knowledge of the product is very
necessary.
Stage5: Testing
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it
is deployed.
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
Incremental Model
Spiral Model
Advantages
Disadvantages
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. In many instances, the client only has a general view of
what is expected from the software product. In such a scenario where
there is an absence of detailed information regarding the input to the
system, the processing needs, and the output requirement, the
prototyping model may be employed.
Steps of Prototype Model
V-Model
Verification
Verification is the process of checking that software achieves its goal
without any bugs. It is the process to ensure whether the product that
is developed is right or not. It verifies whether the developed product
fulfills the requirements that we have. Verification is simply known
as Static Testing.
Static Testing
Verification Testing is known as Static Testing and it can be simply
termed as checking whether we are developing the right product or
not and also whether our software is fulfilling the customer’s
requirement or not. Here are some of the activities that are involved
in verification.
Inspections
Reviews
Walkthroughs
Desk-checking
Validation
Validation is the process of checking whether the software product is
up to the mark or in other words product has high-level
requirements. It is the process of checking the validation of the
product i.e. it checks what we are developing is the right product. it
is a validation of actual and expected products. Validation is simply
known as Dynamic Testing.
Dynamic Testing
Validation Testing is known as Dynamic Testing in which we
examine whether we have developed the product right or not and
also about the business needs of the client. Here are some of the
activities that are involved in Validation.
1. Black Box Testing
2. White Box Testing
3. Unit Testing
4. Integration Testing
1. Easy to Understand.
2. Testing Methods like planning, test designing happens well
before coding.
3. This saves a lot of time. Hence a higher chance of success over
the waterfall model.
4. Avoids the downward flow of the defects.
5. Works well for small plans where requirements are easily
understood.
Phases of the Unified Process: The Unified Process is with five basic
framework activities depicted in figure . It depicts the “phases” of the
UP and relates them to the generic activities.
The inception phase of the UP encompasses both customer
communication and planning activities. The elaboration phase
encompasses the communication and modeling activities of the
generic process model. The construction phase of the UP is identical
to the construction activity defined for the generic software process.
The transition phase of the UP encompasses the latter stages of the
generic construction activity and the first part of the generic
deployment (delivery and feedback) activity. Software is given to end
users for beta testing and user feedback reports both defects and
necessary changes. In addition, the software team creates the
necessary support information (e.g., user manuals, troubleshooting
guides, installation procedures) that is required for the release. The
production phase of the UP coincides with the deployment activity of
the generic process. During this phase, the ongoing use of the
software is monitored, support for the operating environment
(infrastructure) is provided, and defect reports and requests for
changes are submitted and evaluated. A software engineering
workflow is distributed across all UP phases.
System Engineering Hierarchy:
Introduction to CMM:
Capability maturity model (CMM) – Software Engineering
Level-1: Initial
No KPIs defined.
Processes followed are Adhoc and immature and are not
well defined.
Unstable environment for software development .
No basis for predicting product quality, time for completion,
etc.
Limited project management capabilities, such as no
systematic tracking of schedules, budgets, or progress.
We have limited communication and coordination among
team members and stakeholders.
No formal training or orientation for new team members.
Little or no use of software development tools or
automation.
Highly dependent on individual skills and knowledge rather
than standardized processes.
High risk of project failure or delays due to a lack of process
control and stability.
Level-2: Repeatable
Focuses on establishing basic project management policies.
Experience with earlier projects is used for managing new
similar-natured projects.
Project Planning- It includes defining resources required,
goals, constraints, etc. for the project. It presents a detailed
plan to be followed systematically for the successful
completion of good-quality software.
Configuration Management- The focus is on maintaining
the performance of the software product, including all its
components, for the entire lifecycle.
Requirements Management- It includes the management
of customer reviews and feedback which result in some
changes in the requirement set. It also consists of
accommodation of those modified requirements.
Subcontract Management- It focuses on the effective
management of qualified software contractors i.e. it manages
the parts of the software developed by third parties.
Software Quality Assurance- It guarantees a good quality
software product by following certain rules and quality
standard guidelines while developing.
Level-3: Defined
At this level, documentation of the standard guidelines and
procedures takes place.
It is a well-defined integrated set of project-specific software
engineering and management processes.
Peer Reviews: In this method, defects are removed by using
a number of review methods like walkthroughs, inspections,
buddy checks, etc.
Intergroup Coordination: It consists of planned
interactions between different development teams to ensure
efficient and proper fulfillment of customer needs.
Organization Process Definition: Its key focus is on the
development and maintenance of standard development
processes.
Organization Process Focus: It includes activities and
practices that should be followed to improve the process
capabilities of an organization.
Training Programs: It focuses on the enhancement of
knowledge and skills of the team members including the
developers and ensuring an increase in work efficiency.
Level-4: Managed
At this stage, quantitative quality goals are set for the
organization for software products as well as software
processes.
The measurements made help the organization to predict the
product and process quality within some limits defined
quantitatively.
Software Quality Management: It includes the
establishment of plans and strategies to develop quantitative
analysis and understanding of the product’s quality.
Quantitative Management: It focuses on controlling the
project performance in a quantitative manner.
Level-5: Optimizing
This is the highest level of process maturity in CMM and
focuses on continuous process improvement in the
organization using quantitative feedback.
The use of new tools, techniques, and evaluation of software
processes is done to prevent the recurrence of known
defects.
Process Change Management: Its focus is on the
continuous improvement of the organization’s software
processes to improve productivity, quality, and cycle time
for the software product.
Technology Change Management: It consists of the
identification and use of new technologies to improve
product quality and decrease product development time.
Defect Prevention It focuses on the identification of causes
of defects and prevents them from recurring in future
projects by improving project-defined processes.
Expands to various
Primarily focused
disciplines like
on software
Scope systems engineering,
engineering
hardware
processes.
development, etc.
Offers flexibility to
More rigid structure
tailor process areas
Flexibility with predefined
to organizational
practices.
needs.