Skill Development Practical File
Skill Development Practical File
OBJECTIVE: Explain Software development life cycle with the help of stages and
SDLC.
THEORY:
Software Development is the development of software for distinct purposes. For software
development, there is a specific programming language like Java, Python, C/C++, etc. The entire
process of software development isn’t as simple as its definition, it’s a complicated process.
Accordingly, it requires an efficient approach from the developer in the form of the Software
Development Life Cycle (SDLC).
SDLC specifies the task(s) to be performed at various stages by a software engineer/developer.
It ensures that the end product is able to meet the customer’s expectations and fits in the
overall budget. Hence, it’s vital for a software developer to have prior knowledge of this
software development process.
2. Analysis: In this stage, the team analyzes the requirements of the software project in
detail. This includes gathering and documenting requirements from stakeholders and
identifying any potential risks or challenges that may arise.
3. Design: In this stage, the team creates a detailed design of the software system. This
includes creating technical specifications, selecting software architecture and
frameworks, and developing a detailed plan for coding and testing.
4. Implementation: In this stage, the team begins to build the software system
according to the design created in the previous stage. This includes coding, unit testing,
integration testing, and debugging.
5. Testing: In this stage, the team tests the software system thoroughly to ensure that it
meets the requirements and is free of defects. This includes functional testing,
performance testing, security testing, and user acceptance testing.
6. Deployment: In this stage, the team deploys the software system to the production
environment. This includes preparing the software for release, training users, and
ensuring that the system is ready for use.
7. Maintenance: In this stage, the team provides ongoing maintenance and support for
the software system. This includes addressing issues that arise after deployment,
releasing updates and patches, and ensuring that the system remains secure and
functional over time.
Conclusion :- 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.
EXPERIMENT-2
OBJECTIVE: Discuss SDLC Model a) Waterfall Model (b)RAD Model (c)Spiral
Model (d) V-Model (e) Agile Model
THEORY: A software life cycle model (also termed process model) is a pictorial and
diagrammatic representation of the software life cycle. A life cycle model represents all the
methods required to make a software product transit through its life cycle stages. It also captures
the structure in which these methods are to be undertaken.
There are several SDLC models used in software development. Here are the most popular ones:
a) Waterfall Model: The waterfall model is a sequential SDLC model that follows a linear
and structured approach to software development. The process starts with requirements
gathering, followed by design, implementation, testing, and deployment. Each phase of the
development process must be completed before the next one can begin. The waterfall
model is suitable for projects where the requirements are well-defined and changes are
unlikely to occur.
b) RAD Model: The Rapid Application Development (RAD) model is an iterative and
incremental SDLC model that focuses on rapid prototyping and feedback. It emphasizes on
customer involvement, prototyping, and quick delivery of software. The RAD model is
suitable for projects that require a fast turnaround time and can accommodate changes in
requirements.
c) Spiral Model: The Spiral model is an iterative and incremental SDLC model that
combines elements of both waterfall and iterative development models. It emphasizes on
risk analysis and management, and the development process progresses in a series of
iterations. The Spiral model is suitable for large and complex projects where there is a high
degree of risk and uncertainty.
d) V-Model: The V-Model is a linear SDLC model that emphasizes on testing and verification
at each stage of the development process. It follows a sequential approach, where each
stage of the development process is paired with a corresponding testing phase. The V-
Model is suitable for projects where the requirements are well-defined, and testing is a
critical aspect of the development process.
e) Agile Model: The Agile model is an iterative and incremental SDLC model that focuses on
flexibility, collaboration, and customer feedback. It emphasizes on continuous delivery,
quick adaptation to changing requirements, and a collaborative approach to software
development. The Agile model is suitable for projects where the requirements are
constantly evolving, and there is a need for frequent iterations and releases.
Conclusion :- Each SDLC model has its advantages and disadvantages, and the choice of model
depends on the project requirements and constraints. The selection of the appropriate model is
critical for the success of the software development project.
EXPERIMENT-3
OBJECTIVE: Explain the Role of QA in Software Quality Management
1. Defining Quality Standards: QA defines quality standards and guidelines for software
development. These standards and guidelines are used to ensure that the software meets
the required quality standards and that the development process is aligned with best
practices.
3. Testing: QA plays a crucial role in testing the software. This involves creating test plans,
test cases, and executing tests to ensure that the software meets the required functional,
performance, and security requirements.
Conclusion :- In summary, the role of QA in Software Quality Management is to ensure that the
software development process is executed in a way that leads to high-quality software products.
This is achieved by defining quality standards, reviewing requirements, testing, defect
management, continuous improvement, and validation and verification.
EXPERIMENT-4
OBJECTIVE: Define the ISO Standard in term of Software development
SO and IEEE are two of the most well-known international standards that enable software
businesses all around the globe better structure their operations by providing a well-defined and
effective framework.
These standards are a list of principles and good practices that are used to help software companies
increase the quality of their services and organisation of processes to reach better results. The ISO is
a global standard-setting organization that spans sectors including software and food. ISO's major
purpose is to assist businesses to improve their processes and therefore their services by offering a
set of standards and norms to follow:
ISO/IEC 12207 and ISO/IEC 15288 standards are the most important for software
development and can be replaced by each other, both referring to the Software life cycle
processes. Other standards that are relevant to software development:
ISO/IEC 15939 (Software measurement process) specifies the activities and tasks that are
required to create, implement, and enhance the software measurement process. It doesn't
provide a list of software metrics or give tools for estimating the qualities of a software
product or process.
ISO/IEC 14143 (Software measurement - Functional size measurement). Although
these standards are used to assist software development, they are unrelated to the current
issue and will not be discussed further.
An annex to the standard discusses how to modify ISO 12207 for a specific project. The first step is
to determine the project environment's attributes. Project criticality and team size may be factors.
All project stakeholders must be consulted on how the ISO 12207 procedure should be customized
to their specific project needs.
The project's methods, activities, and tasks should be selected based on this consultation. Not
described in ISO 12207 but included in the contract are processes, activities, and tasks. Also, record
who is accountable for each process, activity, or task. All customization decisions should be
documented with explanations.
To comply with ISO 12207, an organization must identify what procedures, actions, and tasks are
necessary to be performed in order to meet the standard's minimal requirements. Compliance can be
improved and discussed as the acquirer and supplier define the contract.
Regardless, we believe the question can be answered positively. Towards this end, we present
implementation recommendations that will ensure an agile-based project meets ISO 12207. These
rules are based on both the standard and the features of agile approaches.
One way to ensure an agile development team adheres to the ISO12207 standard is to delegate that
responsibility to one or more persons. Thus, this individual helps the team to develop the
appropriate artifacts in accordance with the standard.
To guarantee that developers, notable programmers, are not burdened by the documentation and
administrative chores required to comply with the standard, an organizational model similar to
Brooks's [Brooks 1995] is suggested. An administrator (who manages all administrative issues such
as resources and legalities), an editor (who ‘translates' the surgeon's documentation for general
usage), an administrator's secretary, an editor's secretary, and a program clerk (who maintains
changing artifacts through version and configuration control) make up this model of a so-called
Surgical Team (who is an expert on programming language usage and other specifications).
The above development team organization concept was proposed in the 1960s. While it may not be
applicable for some current software engineering projects, it does offer some important concepts.
The idea that programmers should be kept away from administrative activities and documentation is
worth examining. In an agile project, this means ensuring compliance with the ISO standards
specified should create the relevant documentation without burdening the developers. So the
documentation sub-team should collect data in a non-intrusive manner.
The core tenet of ISO 29119 is that testing is the most important tool for risk mitigation and
avoidance. As a result, all of the standards use a risk-based approach and urge businesses to
concentrate on the most critical operations.
ISO standards help make the world a safer place and give consumers confidence that the products
they buy are safe, reliable, and of high quality. Regulators and governments count on ISO standards
to help develop better regulation, knowing they have a sound basis thanks to the involvement of
globally recognized experts.
Finally, compliance with ISO standards gives companies an advantage in the marketplace. ISO
certification provides assurance to potential customers that the company adheres to industry best
practices. In many industries, companies require that their suppliers are certified to certain relevant
ISO standards.
Conclusion :- The most important, undeniable benefits resulting from the implementation of ISO
standards are data security, greater reliability for clients, clear procedures and security of software
development lifecycle.
EXPERIMENT-5
THEORY:
A design pattern is a general repeatable solution to a commonly occurring problem in software
design. It is a way to capture and communicate best practices and expertise in software
development. Design patterns help developers to write code that is more modular, reusable, and
easy to understand.
Design patterns were first introduced in the 1990s by a group of software engineers known as the
"Gang of Four" (GoF) in their book "Design Patterns: Elements of Reusable Object-Oriented
Software." The book describes 23 design patterns that can be used in object-oriented programming
languages such as Java, C++, and Python.
1. Creational patterns: These patterns provide a way to create objects while hiding the creation logic
from the client. Examples of creational patterns include Singleton, Factory Method, and Abstract
Factory.
2. Structural patterns: These patterns describe how objects can be composed into larger structures
while keeping the relationships between them flexible and maintainable. Examples of structural
patterns include Adapter, Facade, and Decorator.
3. Behavioral patterns: These patterns focus on communication between objects, and how they
collaborate to achieve common goals. Examples of behavioral patterns include Observer,
Command, and Template Method.
By using design patterns, developers can avoid reinventing the wheel and benefit from the
experience of others who have solved similar problems. Design patterns can also help to reduce the
complexity of software systems, making them easier to maintain, modify, and extend over time.
Conclusion:-
The most important, undeniable benefits resulting from the implementation of ISO
standards are data security, greater reliability for clients, clear procedures and security
of software development lifecycle.