SE - Lab Manual
SE - Lab Manual
SE - Lab Manual
SOFTWARE ENGINEERING
(3150711)
B.E. Semester V
(Department of Computer Engineering)
Vision:
To transform the students into good human beings, employable engineering graduates and
education.
Mission:
To impart education to rural and urban students, so as to earn respect from the society and
thereby improving the living standards of their families and become asset for the industry
and society. To foster a learning environment with technology integration and individual
attention, so that the students imbibe quality technical knowledge, skill-development and
character building
Government Engineering College, Bhavnagar
To achieve excellence for providing value based education in computer science and
Mission:
Have careers in industry, research & academics focusing on the application of the
information technologies and take leadership positions in the industry and also initiate
Capable of adapting to new technologies and constantly upgrade their skills with an attitude
Act conscientiously about the potentials and the responsibilities of the computing profession
An ability to learn and use of open source tools in the areas like operating systems, computer
Certificate
Place: __________________
Date: __________________
The main motto of any laboratory/practical/field work is to enhance required skills and create ability
amongst students to solve real-time problems by developing relevant competencies in the
psychomotor domain. By keeping this in view, GTU has designed a competency-focused outcome-
based curriculum for engineering degree programs where sufficient weightage is given to practical
work. It shows the importance of enhancement of skills amongst the students, and it pays attention to
utilizing every second of time allotted for practical amongst students, instructors, and faculty members
to achieve relevant outcomes by performing the experiments rather than merely study-type
experiments. It is a must for the effective implementation of a competency-focused outcome-based
curriculum that every practical is keenly designed to serve as a tool to develop and enhance relevant
competency required by the various industry among every student. These psychomotor skills are very
difficult to develop through traditional chalk-and-board content delivery methods in the classroom.
Accordingly, this lab manual is designed to focus on industry-defined relevant outcomes rather than
the old practice of conducting practical to prove concepts and theories.
By using this lab manual, students can go through the relevant theory and procedure in advance before
the actual performance, which creates interest, and students can have a basic idea prior to the
performance. This, in turn, enhances pre-determined outcomes amongst students. Each experiment in
this manual begins with competency, industry-relevant skills, course outcomes as well as practical
outcomes (objectives). The students will also achieve safety and necessary precautions to be taken
while performing practical.
This manual also provides guidelines to faculty members to facilitate student-centric lab activities
through each experiment by arranging and managing necessary resources in order that the students
follow the procedures with required safety and necessary precautions to achieve the outcomes. It also
gives an idea of how students will be assessed by providing rubrics.
Software Engineering is an application of a systematic, defined, and measurable approach that begins
with requirement specification and progresses with planning, modeling, and testing, and concludes
with deployment. It is a layered paradigm that comprises processes, methods, and tools with the
bedrock of quality focus. The Software Engineering approach's main purpose is committed to
developing the software products within the stipulated time and budget with more quality. Quality
product motivates firmness, commodity, and delight.
Utmost care has been taken while preparing this lab manual; however, there is always a chance of
improvement. Therefore, we welcome constructive suggestions for improvement and removal of
errors, if any.
Practical – Course Outcome matrix
1. RATIONALE
• To study Software Development Life Cycle, Development models and Agile Software
development.
• To study fundamental concepts in software testing, including software testing objectives,
process, criteria, strategies, and methods.
• To discuss various software testing issues and solutions in software unit test; integration,
regression, and system testing.
• To learn the process of improving the quality of software work products.
• To gain the techniques and skills on how to use modern software testing tools to support
software testing projects.
• To expose Software Process Improvement and Reengineering
2. COMPETENCY
• The course content should be taught and analyze with the aim to develop different types of
skills so that students are able to acquire following competency:
• Software engineering models to development of the complex engineering software based on the
software development life cycle.
3. COURSE OUTCOMES
The following industry relevant competencies are expected to be developed in the student by
undertaking the practical work of this laboratory.
1. Teacher should provide the guideline with demonstration of practical to the students with all
features.
2. Teacher shall explain basic concepts/theory related to the experiment to the students before
starting of each practical
3. Involve all the students in performance of each experiment.
4. Teacher is expected to share the skills and competencies to be developed in the students and
ensure that the respective skills and competencies are developed in the students after the
completion of the experimentation.
5. Teachers should give opportunity to students for hands-on experience after the demonstration.
6. Teacher may provide additional knowledge and skills to the students even though not covered in
the manual but are expected from the students by concerned industry.
7. Give practical assignment and assess the performance of students based on task assigned to
check whether it is as per the instructions or not.
8. Teacher is expected to complete curriculum of the course.
1. Students are expected to carefully listen to all the theory classes delivered by the faculty
members and understand the COs, content of the course, teaching and examination scheme, skill
set to be developed etc.
2. Students shall organize the work in the group and make record of all observations.
3. Students shall develop maintenance skill as expected by industries.
4. Student shall attempt to develop related hand-on skills and build confidence.
5. Student shall develop the habits of evolving more ideas, innovations, skills etc. apart from those
included in scope of manual.
6. Student shall refer technical magazines and data books.
7. Student should develop a habit of submitting the experimentation work as per the schedule and
s/he should be well prepared for the same.
General Guidelines for Software Engineering Laboratory Work
1. Student has to perform all the practical as described in the practical list.
2. For performing the practical list, student can able to work individually or make a team of
maximum 3 students’ group.
3. For making the group, students must take care that the all the students of group must be from
same batch.
4. After establishing the team, every team will have to identify the problem area / definition for
performing the laboratory work.
5. Every team has to approve their problem definition to respective faculty member within 15 days
of the beginning of the semester.
6. Once the problem definition is approved by the faculty member, every team has to perform all
the practical based on their respective problem definition.
Practical – 1
AIM: Define the Problem statement of Software development and after identifying the requirements
based on the requirement engineering tasks prepare the Software Requirement Specification (SRS)
document.
• Objectives: Too learn how to define the problem statement for software development and how to
identify the requirements while performing requirements engineering tasks and to learn what are
the contents of SRS and how to write the contents in SRS.
• Theory:
o The process off collecting the software requirement from the client then understand,
evaluate and document it is called as requirement engineering.
o Requirement engineering constructs a bridge for design and construction.
1. Correctness: User review is used to provide the accuracy of requirements stated in the
SRS. SRS is said to be perfect if it covers all the needs that are truly expected from the
system.
2. Completeness: The SRS is complete if, and only if, it includes the following elements:
(2). Definition of their responses of the software to all realizable classes of input data
in all available categories of situations.
(3). Full labels and references to all figures, tables, and diagrams in the SRS and
definitions of all terms and units of measure.
3. Consistency: The SRS is consistent if, and only if, no subset of individual requirements
described in its conflict. There are three types of possible conflict in the SRS:
(1). The specified characteristics of real-world objects may conflicts. For example,
(a) The format of an output report may be described in one requirement as tabular but in
another as textual.
(b) One condition may state that all lights shall be green while another states that all
lights shall be blue.
(2). There may be a reasonable or temporal conflict between the two specified actions.
For example,
(a) One requirement may determine that the program will add two inputs, and another
determine that the program will multiply them.
(b) One condition may state that "A" must always follow "B," while other requires that
"A and B" co-occurs.
(3). Two or more requirements may define the same real-world object but use different
terms for that object. For example, a program's request for user input may be called a
"prompt" in one requirement's and a "cue" in another. The use of standard terminology
and descriptions promotes consistency.
4. Unambiguousness: SRS is unambiguous when every fixed requirement has only one
interpretation. This suggests that each element is uniquely interpreted. In case there is a
method used with multiple definitions, the requirements report should determine the
implications in the SRS so that it is clear and simple to understand.
5. Ranking for importance and stability: The SRS is ranked for importance and stability
if each requirement in it has an identifier to indicate either the significance or stability of
that particular requirement.
Typically, all requirements are not equally important. Some prerequisites may be
essential, especially for life-critical applications, while others may be desirable. Each
element should be identified to make these differences clear and explicit. Another way to
rank requirements is to distinguish classes of items as essential, conditional, and optional.
2. Forward Traceability: This depends upon each element in the SRS having a unique
name or reference number.
The forward traceability of the SRS is especially crucial when the software product enters
the operation and maintenance phase. As code and design document is modified, it is
necessary to be able to ascertain the complete set of requirements that may be concerned
by those modifications.
Concise: The SRS report should be concise and at the same time, unambiguous, consistent, and
complete. Verbose and irrelevant descriptions decrease readability and also increase error
possibilities.
Black-box view: It should only define what the system should do and refrain from stating how to
do these. This means that the SRS document should define the external behavior of the system
and not discuss the implementation issues. The SRS report should view the system to be
developed as a black box and should define the externally visible behavior of the system. For this
reason, the SRS report is also known as the black-box specification of a system.
Conceptual integrity: It should show conceptual integrity so that the reader can merely
understand it. Response to undesired events: It should characterize acceptable responses to
unwanted events. These are called system responses to exceptional conditions.
Verifiable: All requirements of the system, as documented in the SRS document, should be
correct. This means that it should be possible to decide whether or not requirements have been
met in an implementation.
• Background / Preparation:
1. Inception
• Inception is a task where the requirement engineering asks a set of questions to establish
a software process.
• In this task, it understands the problem and evaluates with the proper solution.
• It collaborates with the relationship between the customer and the developer.
• The developer and customer decide the overall scope and the nature of the question
2. Elicitation
In this task, the information taken from user during inception and elaboration and are
expanded and refined in elaboration.
Its main task is developing pure model of software using functions, feature and
constraints of a software.
4. Negotiation
In negotiation task, a software engineer decides the how will the project be achieved
with limited business resources.
To create rough guesses of development and access the impact of the requirements on the
project cost and delivery time.
5. Specification
In this task, formalize the requirement of the proposed software such as informative,
functional and behavioral.
6. Validation
The work product is built as an output of the requirement engineering and that is accessed
for the quality through a validation step.
The formal technical reviews from the software engineer, customer and other
stakeholders helps for the primary requirements validation mechanism.
7. Requirement management
It is a set of activities that help the project team to identify, control and track the
requirements and changes can be made to the requirements at any time of the ongoing
project.
These tasks start with the identification and assign a unique identifier to each of the
requirements.
The examples of traceability table are the features, sources, dependencies, subsystems
and interface of the requirement.
• In order to form a good SRS, here you will see some points which can be used and should be
considered to form a structure of good SRS. These are as follows :
1. Introduction
(i) Purpose of this document
(ii) Scope of this document
(iii) Overview
2. General description
3. Functional Requirements
4. Interface Requirements
5. Performance Requirements
6. Design Constraints
7. Non-Functional Attributes
8. Preliminary Schedule and Budget
9. Appendices
• Procedure:
o Every team has to identify the requirements of their projects and arrange as per the
requirement engineering document.
• Steps:
o Every team has to follow the given format as described in the below example.
o Example 1: Withdraw Cash from ATM
R.1: withdraw cash
Description: The withdraw cash function first determines the type of account that the user
has and the account number from which the user wishes to withdraw cash. It
checks the balance to determine whether the requested amount is available in
the account. If enough balance is available, it outputs the required cash,
otherwise it generates an error message.
R.1.1: Select withdraw amount option
Input: “withdraw amount” option
Output: user prompted to enter the account type
R.1.2: Select account type
Input: user option
Output: prompt to enter amount
R.2.2: Login
State: The renew option has been selected
Input: Membership number and password
Output: List of the books borrowed by the user is displayed, and user is prompted to
select the books to be renewed, if the password is valid. If the password is
invalid, the user is asked to reenter the password.
Processing: Password validation search the books issued to the user form the borrower’s
list and display
Next R.2.3 if password is valid and R.2.2 if password is invalid
function:
R.2.3: Renew selected books
Input: User choice for books to be renewed out of the books borrowed by him.
Output: Confirmation of the books successfully renewed and apology message for the
books that could not be renewed.
Processing: Check if anyone has reserved any of the requested books. Renew the books
selected by the use in the borrower’s list, if no one has reserved those books.
Software Requirement Specification (SRS) Format as name suggests, is complete
specification and description of requirements of software that needs to be fulfilled for successful
development of software system. These requirements can be functional as well as non-functional
depending upon type of requirement. The interaction between different customers and contractor
is done because its necessary to fully understand needs of customers.
Depending upon information gathered after interaction, SRS is developed which describes
requirements of software that may include changes and modifications that is needed to be done
to increase quality of product and to satisfy customer’s demand.
1. Introduction :
2. General description :
In this, general functions of product which includes objective of user, a user
characteristic, features, benefits, about why its importance is mentioned. It also
describes features of user community.
3. Functional Requirements:
In this, possible outcome of software system which includes effects due to
operation of program is fully explained. All functional requirements which
may include calculations, data processing, etc. are placed in a ranked order.
4. Interface Requirements :
In this, software interfaces which mean how software program communicates
with each other or users either in form of any language, code, or message are fully
described or explained. Examples can be shared memory, data streams, etc.
5. Performance Requirements:
In this, how a software system performs desired functions under specific
condition is explained. It also explains required time, required memory, maximum
error rate, etc.
6. Design Constraints:
In this, constraints which simply mean limitation or restriction are specified and
explained for design team. Examples may include use of a particular algorithm,
hardware and software limitations, etc.
7. Non-Functional Attributes:
In this, non-functional attributes are explained that are required by software
system for better performance. An example may include Security, Portability,
Reliability, Reusability, Application compatibility, Data integrity, Scalability
capacity, etc.
8. Preliminary Schedule and Budget:
In this, initial version and budget of project plan are explained which include
overall time duration required and overall cost required for development of
project.
9. Appendices:
In this, additional information like references from where information is gathered,
definitions of some specific terms, acronyms, abbreviations, etc. are given and
explained.
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Signature of Faculty:
Practical – 2
AIM: Prepare the Software Project Management Plan (SPMP) including following: 1) Estimation of
Size, Cost, Duration, Effort 2) Prepare the Schedule, Milestones using Gantt chart
• Objectives:
1. To perform Estimation of Size, Cost, Duration, Effort
2. To Prepare the Schedule, Milestones
• Theory:
Once a project is found to be feasible, software project managers undertake project planning. Project
planning is undertaken and completed even before any development activity starts. Project planning
consists of the following essential activities:
The effectiveness of the subsequent planning activities is based on the accuracy of these estimations.
Introduction (Objectives, Major Functions, Performance Issues, Management and Technical Constraints)
Project Estimates (Historical Data, Estimation Techniques, Effort, Cost, and Project Duration Estimates)
Project Resources Plan(People, Hardware and Software, Special Resources)
Schedules (Work Breakdown Structure, Task Network, Gantt Chart Representation, PERT Chart
Representation)
Risk Management Plan (Risk Analysis, Risk Identification, Risk Estimation, Abatement Procedures)
Project Tracking and Control Plan
Miscellaneous Plans(Process Tailoring, Quality Assurance)
Function Points
STEP 1: measure size in terms of the amount of functionality in a system. Function points are computed
by first calculating an unadjusted function point count (UFC).
Counts are made for the following categories
External inputs–those items provided by the user that describe distinct application-oriented data (such as
file names and menu selections)
External outputs–those items provided to the user that generate distinct application-oriented data (such
as reports and messages, rather than the individual components of these)
External inquiries–interactive inputs requiring a response
External files–machine-readable interfaces to other systems
Internal files–logical master files in the system
STEP 2: Multiply each number by a weight factor, according to complexity (simple, average or
complex) of the parameter, associated with that number. The value is given by a table:
STEP 4: Calculate the total TCF(Technical Complexity Factor) by giving a value between 0 and 5
according to the importance of the following points(next slide):
Technical Complexity Factors:
1.Data Communication 2.Distributed Data Processing 3.Performance Criteria 4.Heavily Utilized
Hardware 5.High Transaction Rates 6.Online Data Entry 7.Online Updating 8.End-user Efficiency
9.Complex Computations 10.Reusability 11.Ease of Installation 12.Ease of Operation 13.Portability
14.Maintainability
STEP 5: Sum the resulting numbers to obtain DI(degree of influence)
The Constructive Cost Model (COCOMO) is the most widely used software estimation model.
The COCOMO model predicts the effort and duration of a project based on inputs relating to the size
of the resulting systems and a number of "cost drives" that affect productivity.
The most important factors contributing to a project's duration and cost is the Development Mode.
Organic Mode: The project is developed in a familiar, stable environment, and the product is similar to
previously developed products. The product is relatively small, and requires little innovation.
Semidetached Mode: The project's characteristics are intermediate between Organic and Embedded.
Embedded Mode: The project is characterized by tight, inflexible constraints and interface
requirements. An embedded mode project will require a great deal of innovation.
Example:
Project-task scheduling is an important project planning activity. It involves deciding which tasks would
be taken up when. In order to schedule the project activities, a software project manager needs to do the
following:
Dependency among the different activities determines the order in which the different activities
would be carried out. If an activity A requires the results of another activity B, then activity A
must be scheduled after activity B. In general, the task dependencies define a partial ordering
among tasks, i.e. each tasks may precede a subset of other tasks, but some tasks might not have
any precedence ordering defined between them (called concurrent task). The dependency among
the activities is represented in the form of an activity network. Once the activity network
representation has been worked out, resources are allocated to each activity.
Resource allocation is typically done using a Gantt chart. After resource allocation is done, a
PERT chart representation is developed. The PERT chart representation is suitable for program
monitoring and control. For task scheduling, the project manager needs to decompose the project
tasks into a set of activities. The time frame when each activity is to be performed is to be
determined. The end of each activity is called milestone. The project manager tracks the progress
of a project by monitoring the timely completion of the milestones. If he observes that the
milestones start getting delayed, then he has to carefully control the activities, so that the overall
deadline can still be met.
Gantt charts are mainly used to allocate resources to activities. The resources allocated to
activities include staff, hardware, and software. Gantt charts (named after its developer Henry
Gantt) are useful for resource planning. A Gantt chart is a special type of bar chart where each
bar represents an activity. The bars are drawn along a time line. The length of each bar is
proportional to the duration of time planned for the corresponding activity. Gantt charts are
used in software project management are actually an enhanced version of the standard Gantt
charts. In the Gantt charts used for software project management, each bar consists of a white
part and a shaded part. The shaded part of the bar shows the length of time each task is estimated
to take. The white part shows the slack time, that is, the latest time by which a task must be
finished.
Quiz:
Suggested Reference:
I. COCOMO
II. Halstead complexity measures
III. COCOMO (Constructive Cost Model), Seminar on Software Cost Estimation WS 2002 / 2003,
presented by Nancy Merlo – Schett
IV. The Halstead metrics
V. Software Engineering, National Program on Technology Enhanced Learning
VI. Halstead Metrics, Verifysoft Technology
Rubric wise marks obtained:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Practical – 3
AIM: Prepare the following components of Data Flow Model: Data Dictionary, Data Flow Diagram
and Structure Chart
Objectives:
Theory:
• Process: Processes are represented by circle. The name of the process is written into the circle.
The name of the process is usually given in such a way that represents the functionality of the
process. More detailed functionalities can be shown in the next Level if it is required. Usually it
is better to keep the number of processes less than 7. If we see that the number of processes
becomes more than 7 then we should combine some the processes to a single one to reduce the
number of processes and further decompose it to the next level .
• External entity: External entities are only appear in context diagram. External entities are
represented by a rectangle and the name of the external entity is written into the shape. These
send data to be processed and again receive the processed data.
• Data store: Data stares are represented by a left-right open rectangle. Name of the data store is
written in between two horizontal lines of the open rectangle. Data stores are used as repositories
from which data can be flown in or flown out to or from a process.
• Data flow: Data flows are shown as a directed edge between two components of a Data Flow
Diagram. Data can flow from external entity to process, data store to process, in between two
processes and vice-versa.
.
• Background / Preparation:
Levels in Data Flow Diagrams (DFD)
The DFD may be used to perform a system or software at any level of abstraction. Infact,
DFDs may be partitioned into levels that represent increasing information flow and
functional detail. Levels in DFD are numbered 0, 1, 2 or beyond. Here, we will see
primarily three levels in the data flow diagram, which are: 0-level DFD, 1-level DFD,
and 2-level DFD.
0-level DFDM
It is also known as fundamental system model, or context diagram represents the entire
software requirement as a single bubble with input and output data denoted by incoming
and outgoing arrows. Then the system is decomposed and described as a DFD with
multiple bubbles. Parts of the system represented by each of these bubbles are then
decomposed and documented as more and more detailed DFDs. This process may be
repeated at as many levels as necessary until the program at hand is well understood. It is
essential to preserve the number of inputs and outputs between levels, this concept is
called leveling by DeMacro. Thus, if bubble "A" has two inputs x1 and x2 and one output
y, then the expanded DFD, that represents "A" should have exactly two external inputs
and one external output as shown in fig:
The Level-0 DFD, also called context diagram of the result management system is shown
in fig. As the bubbles are decomposed into less and less abstract bubbles, the
corresponding data flow may also be needed to be decomposed.
1-level DFD
2-Level DFD
2-level DFD goes one process deeper into parts of 1-level DFD. It can be used to project
or record the specific/necessary detail about the system's functioning.
• Procedure / Steps:
o Example: ATM System
Context DFD
The figure below shows a context Data Flow Diagram that is drawn for an Android supermarket
app. It contains a process (shape) that represents the system to model, in this case, the "ATM
System". It also shows the participants who will interact with the system, called the external
entities. In this example, there is only one external entity, which is the User. In between the
process and the external entity, there is a uni-directional connector, which indicates the existence
of information exchange between user and the ATM System, and the information flow is bi-
directional.
Context DFD is the entrance of a data flow model. It contains one and only one process and does
not show any data store, which makes the diagram simple.
Level 1 DFD
The figure below shows the level 1 DFD, which is the decomposition (i.e. break down) of
the ATM System process that is shown in the context DFD. Read through the diagram
and then we will introduce some of the key concepts based on this diagram.
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Practical – 4
AIM: Prepare the user’s view analysis: Describe different scenarios and Draw Use case
diagrams using UML
• Objectives:
1. To write different scenarios of the system’s execution.
2. To explore various UML use case diagram components to draw USECASE diagram.
• Theory:
o A use case diagram is used to represent the dynamic behavior of a system. It encapsulates
the system's functionality by incorporating use cases, actors, and their relationships. It
models the tasks, services, and functions required by a system/subsystem of an
application. It depicts the high-level functionality of a system and also tells how the user
handles a system.
o Purpose of Use Case Diagrams
The main purpose of a use case diagram is to portray the dynamic aspect of a
system. It accumulates the system's requirement, which includes both internal as
well as external influences. It invokes persons, use cases, and several things that
invoke the actors and elements accountable for the implementation of use case
diagrams. It represents how an entity from the external environment can interact
with a part of the system.
Following are the purposes of a use case diagram given below:
1. It gathers the system's needs.
2. It depicts the external view of the system.
3. It recognizes the internal as well as external factors that influence the system.
4. It represents the interaction between the actors.
o In a use-case diagram, an actor is a user of the system (i.e. Something external to the
system; can be human or non-human) acting in a particular role.
o A use-case is a task which the actor needs to perform with the help of the system,
e.g., find details of a book or print a copy of a receipt in a bookshop.
o We can draw a box (with a label) around a set of use cases to denote the system
boundary, as on the previous slide (“library system”).
Inheritance can be used between actors to show that all use cases of one actor are
available to the other:
If several use cases include, as part of their functionality, another use case, we have a
special way to show this in a use-case diagram with an <<include>> relation.
If a use-case has two or more significantly different outcomes, we can show this by
extending the use case to a main use case and one or more subsidiary cases.
• Background / Preparation:
How to draw a Use Case diagram?
It is essential to analyze the whole system before starting with drawing a use case diagram, and
then the system's functionalities are found. And once every single functionality is identified, they
are then transformed into the use cases to be used in the use case diagram.
After that, we will enlist the actors that will interact with the system. The actors are the person or
a thing that invokes the functionality of a system. It may be a system or a private entity, such that
it requires an entity to be pertinent to the functionalities of the system to which it is going to
interact.
Once both the actors and use cases are enlisted, the relation between the actor and use case/
system is inspected. It identifies the no of times an actor communicates with the system.
Basically, an actor can interact multiple times with a use case or system at a particular instance
of time.
Following are some rules that must be followed while drawing a use case diagram:
1. A pertinent and meaningful name should be assigned to the actor or a use case of a
system.
2. The communication of an actor with a use case must be defined in an understandable
way.
3. Specified notations to be used as and when required.
4. The most significant interactions should be represented among the multiple no of
interactions between the use case and actors.
Scenarios
• Scenarios are real-life examples of how a system can be used.
• They should include
– A description of the starting situation;
– A description of the normal flow of events;
– A description of what can go wrong;
– Information about other concurrent activities;
• Procedure / Steps:
o Developing Use Cases:
o Step One – Define the set of actors that will be involved in the story
Actors are people, devices, or other systems that use the system or product within
the context of the function and behavior that is to be described
Actors are anything that communicate with the system or product and that are
external to the system itself
o Step Two – Develop use cases, where each one answers a set of questions
1. What is use case diagram? Draw use case for library management system.
2. List relationship used in use case.
3. What Tests Can Help Find Useful Use Cases?
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer
to all questions
Signature of Faculty:
Practical – 5
AIM: Prepare the structural view: Draw Class diagram and object diagram.
• Objectives: to learn about UML class diagram and object diagram components.
• Theory:
o Class diagram:
The class diagram depicts a static view of an application. It represents the types of
objects residing in the system and the relationships between them. A class
consists of its objects, and also it may inherit from other classes. A class diagram
is used to visualize, describe, document various different aspects of the system,
and also construct executable software code.
It shows the attributes, classes, functions, and relationships to give an overview of
the software system. It constitutes class names, attributes, and functions in a
separate compartment that helps in software development. Since it is a collection
of classes, interfaces, associations, collaborations, and constraints, it is termed as
a structural diagram.
1. Upper Section: The upper section encompasses the name of the class. A class is a
representation of similar objects that shares the same relationships, attributes,
operations, and semantics. Some of the following rules that should be taken into
account while representing a class are given below:
1. Capitalize the initial letter of the class name.
2. Place the class name in the center of the upper section.
3. A class name must be written in bold format.
4. The name of the abstract class should be written in italics format.
2. Middle Section: The middle section constitutes the attributes, which describe the
quality of the class. The attributes have the following characteristics:
1. The attributes are written along with its visibility factors, which are public
(+), private (-), protected (#), and package (~).
2. The accessibility of an attribute class is illustrated by the visibility factors.
3. A meaningful name should be assigned to the attribute, which will explain
its usage inside the class.
3. Lower Section: The lower section contains methods or operations. The methods
are represented in the form of a list, where each method is written in a single line.
It demonstrates how a class interacts with data.
o Object diagram:
o Object diagrams are dependent on the class diagram as they are derived from the class
diagram. It represents an instance of a class diagram. The objects help in portraying a
static view of an object-oriented system at a specific instant.
o Both the object and class diagram are similar to some extent; the only difference is
that the class diagram provides an abstract view of a system. It helps in visualizing a
particular functionality of a system.
Notation of an Object Diagram
The object diagram holds the same purpose as that of a class diagram. The class diagram
provides an abstract view which comprises of classes and their relationships, whereas the
object diagram represents an instance at a particular point of time.
The object diagram is actually similar to the concrete (actual) system behavior. The main
purpose is to depict a static view of a system.
• Background / Preparation:
How to draw a Class Diagram?
The class diagram is used most widely to construct software applications. It not only
represents a static view of the system but also all the major aspects of an application. A
collection of class diagrams as a whole represents a system.
Some key points that are needed to keep in mind while drawing a class diagram are given
below:
Suggested Reference:
1) Domain Analysis.
2) Domain Analysis Using Textual Analysis Approach
3) Domain model
4) Business Modeling – The Domain Model
5) I. Y. Song, K. Yano, J. Trujillo, and S. Luján-Mora. "A Taxonomic Class Modeling Methodology for
Object-Oriented Analysis", In Information Modeling Methods and Methodologies, Advanced Topics in
Databases Series, Ed. (J Krostige, T. Halpin, K. Siau), Idea Group Publishing, 2004, pp. 216-240.
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Practical – 6
AIM: Prepare the behavioral view: Draw Sequence diagram and Collaboration diagram.
• Objectives: To explore and use various UML components of sequence diagram and
collaboration diagram
• Theory:
o Sequence diagram:
The sequence diagram represents the flow of messages in the system and is also
termed as an event diagram. It helps in envisioning several dynamic scenarios. It
portrays the communication between any two lifelines as a time-ordered sequence of
events, such that these lifelines took part at the run time. In UML, the lifeline is
represented by a vertical bar, whereas the message flow is represented by a vertical
dotted line that extends across the bottom of the page. It incorporates the iterations as
well as branching.
o Purpose of a Sequence Diagram
Actor
A role played by an entity that interacts with the subject is called as an actor. It is out of
the scope of the system. It represents the role, which involves human users and external
hardware or subjects. An actor may or may not represent a physical entity, but it purely
depicts the role of an entity. Several distinct roles can be played by an actor or vice versa.
Activation
It is represented by a thin rectangle on the lifeline. It describes that time period in which
an operation is performed by an element, such that the top and the bottom of the rectangle
is associated with the initiation and the completion time, each respectively.
Messages
The messages depict the interaction between the objects and are represented by arrows.
They are in the sequential order on the lifeline. The core of the sequence diagram is
formed by messages and lifelines.
Recursive Message: A self message sent for recursive purpose is called a recursive
message. In other words, it can be said that the recursive message is a special case of the
self message as it represents the recursive calls.
o Collaboration diagram:
The collaboration diagram is used to show the relationship between the objects in
a system. Both the sequence and the collaboration diagrams represent the same
information but differently. Instead of showing the flow of messages, it depicts the
architecture of the object residing in the system as it is based on object-oriented
programming. An object consists of several features. Multiple objects present in the
system are connected to each other. The collaboration diagram, which is also known as a
communication diagram, is used to portray the object's architecture in the system.
Following are the components of a component diagram that are enlisted below:
1.Objects: The representation of an object is done by an object symbol with its name and
class underlined, separated by a colon.
In the collaboration diagram, objects are utilized in the following ways:
o The object is represented by specifying their name and class.
o It is not mandatory for every class to appear.
o A class may constitute more than one object.
o In the collaboration diagram, firstly, the object is created, and then its class is specified.
o To differentiate one object from another object, it is necessary to name them.
2.Actors: In the collaboration diagram, the actor plays the main role as it invokes the
interaction. Each actor has its respective role and name. In this, one actor initiates the
use case.
3.Links: The link is an instance of association, which associates the objects and actors. It
portrays a relationship between the objects through which the messages are sent. It is
represented by a solid line. The link helps an object to connect with or navigate to
another object, such that the message flows are attached to links.
4. Messages: It is a communication between objects which carries information and
includes a sequence number, so that the activity may take place. It is represented by a
labeled arrow, which is placed near a link. The messages are sent from the sender to the
receiver, and the direction must be navigable in that particular direction. The receiver
must understand the message.
• Background / Preparation:
o How to Draw a Sequence Diagram
A sequence diagram represents the scenario or flow of events in one single use case.
The message flow of the sequence diagram is based on the narrative of the particular
use case.
Then, before you start drawing the sequence diagram or decide what interactions should
be included in it, you need to draw the use case diagram and ready a comprehensive
description of what the particular use case does.
From the above use case diagram example of ‘Create New Online Library Account’, we
will focus on the use case named ‘Create New User Account’ to draw our sequence
diagram example.
Before drawing the sequence diagram, it’s necessary to identify the objects
obje or actors that
would be involved in creating a new user account. These would be;
• Librarian
• Online Library Management system
• User credentials database
• Email system
Here
re are the steps that occur in the use case named ‘Create New Library User Account’.
• The librarian request the system to create a new online library account
• The librarian then selects the library user account type
• The librarian enters the user’s details
• Thee user’s details are checked using the user Credentials Database
• The new library user account is created
• A summary of the of the new account’s details are then emailed to the user
From each of these steps, you can easily specify what messages should be exchanged
exc
between the objects in the sequence diagram. Once it’s clear, you can go ahead and start
drawing the sequence diagram.
The sequence diagram below shows how the objects in the online library management
system interact with each other to perform the ffunction
unction ‘Create New Library User
Account’.
Sequence Diagram is an interaction diagram that details how operations are carried out --
what messages are sent and when. Sequence diagrams are organized according to time. The
time progresses as you go down the page. The objects involved in the operation are listed
from left to right according to when they take part in the message sequence.
Below is a sequence diagram for making a hotel reservation. The object initiating the
sequence of messages is a Reservation window.
Note That: Class and object diagrams are static model views. Interaction diagrams are
dynamic. They describe how objects collaborate.
o Determine the behavior for which the realization and implementation are specified.
o Discover the structural elements that are class roles, objects, and subsystems for
performing the functionality of collaboration.
o Choose the context of an interaction: system, subsystem, use case, and operation.
o Think through alternative situations that may be involved.
o Implementation of a collaboration diagram at an instance level, if needed.
o A specification level diagram may be made in the instance level sequence diagram for
summarizing alternative situations.
Quiz:
Suggested Reference:
1) Booch, G. et al. The Unified Modeling Language User Guide. Chapters 15, 18, 27. Addison-
Wesley.
2) Jacobson, I. et al. Object-Oriented Software Engineering: A Use-Case Driven Approach.
Addison-Wesley.
3) Fowler, M. UML Distilled: A Brief Guide to the Standard Object Modelling Language.
Chapter 5. Addison Wesley.
Rubric wise marks obtained:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Practical – 7
AIM: Prepare the behavioral view: Draw State-chart diagram and Activity diagram.
• Objectives:
• Theory:
o State Machine Diagram:
The state machine diagram is also called the Statechart or State Transition diagram, which
shows the order of states underwent by an object within the system. It captures the software
system's behavior. It models the behavior of a class, a subsystem, a package, and a complete
system.
It tends out to be an efficient way of modeling the interactions and collaborations in the
external entities and the system. It models event-based systems to handle the state of an
object. It also defines several distinct states of a component within the system. Each
object/component has a specific state.
Following are the types of a state machine diagram that are given below:
1. Initial state: It defines the initial state (beginning) of a system, and it is represented by a
black filled circle.
2. Final state: It represents the final state (end) of a system. It is denoted by a filled circle
present within a circle.
3. Decision box: It is of diamond shape that represents the decisions to be made on the basis
of an evaluated guard.
4. Transition: A change of control from one state to another due to the occurrence of some
event is termed as a transition. It is represented by an arrow labeled with an event due to
which the change has ensued.
5. State box: It depicts the conditions or circumstances of a particular object of a class at a
specific point of time. A rectangle with round corners is used to represent the state box.
• Background / Preparation:
o Types of State
An activity diagram can be used to portray business processes and workflows. Also, it used for
modeling business as well as the software. An activity diagram is utilized for the followings:
• Procedure / Steps:
o How to Draw a State Machine Diagram?
The state machine diagram is used to portray various states underwent by an object. The change
in one state to another is due to the occurrence of some event. All of the possible states of a
particular component must be identified before drawing a state machine diagram.
The primary focus of the state machine diagram is to depict the states of a system. These states
are essential while drawing a state transition diagram. The objects, states, and events due to
which the state transition occurs must be acknowledged before the implementation of a state
machine diagram.
Following are the steps that are to be incorporated while drawing a state machine diagram:
1. A unique and understandable name should be assigned to the state transition that describes
the behavior of the system.
2. Out of multiple objects, only the essential objects are implemented.
3. A proper name should be given to the events and the transitions.
o Example of a State Machine Diagram
An example of a top-level state machine diagram showing Bank Automated Teller Machine
(ATM) is given below.
Initially, the ATM is turned off. After the power supply is turned on, the ATM starts
performing the startup action and enters into the Self Test state. If the test fails, the ATM
will enter into the Out Of Service state, or it will undergo a triggerless transition to the
Idle state. This is the state where the customer waits for the interaction.
Whenever the customer inserts the bank or credit card in the ATM's card reader, the ATM
state changes from Idle to Serving Customer, the entry action readCard is performed after
entering into Serving Customer state. Since the customer can cancel the transaction at any
instant, so the transition from Serving Customer state back to the Idle state could be
triggered by cancel event.
Here the Serving Customer is a composite state with sequential substates that are Customer
Authentication, Selecting Transaction, and Transaction.
Customer Authentication and Transaction are the composite states itself is displayed by a
hidden decomposition indication icon. After the transaction is finished, the Serving
Customer encompasses a triggerless transition back to the Idle state. On leaving the state, it
undergoes the exit action ejectCard that discharges the customer card.
o Activity Diagram:
o In UML, the activity diagram is used to demonstrate the flow of control within the system
rather than the implementation. It models the concurrent and sequential activities.
o The activity diagram helps in envisioning the workflow from one activity to another. It put
emphasis on the condition of flow and the order in which it occurs. The flow can be
sequential, branched, or concurrent, and to deal with such kinds of flows, the activity
diagram has come up with a fork, join, etc.
o It is also termed as an object-oriented flowchart. It encompasses activities composed of a set
of actions or operations that are applied to model the behavioral diagram.
o Activities
o The categorization of behavior into one or more actions is termed as an activity. In other
words, it can be said that an activity is a network of nodes that are connected by edges. The
edges depict the flow of execution. It may contain action nodes, control nodes, or object
nodes.
o The control flow of activity is represented by control nodes and object nodes that illustrates
the objects used within an activity. The activities are initiated at the initial node and are
terminated at the final node.
The swimlane is used to cluster all the related activities in one column or one row. It can be
either vertical or horizontal. It used to add modularity to the activity diagram. It is not
necessary to incorporate swimlane in the activity diagram. But it is used to add more
transparency to the activity diagram.
o Forks
Forks and join nodes generate the concurrent flow inside the activity. A fork node consists of
one inward edge and several outward edges. It is the same as that of various decision
parameters. Whenever a data is received at an inward edge, it gets copied and split crossways
various outward edges. It split a single inward flow into multiple parallel flows.
o Join Nodes
Join nodes are the opposite of fork nodes. A Logical AND operation is performed on all of
the inward edges as it synchronizes the flow of input across one single output (outward)
edge.
o Pins
o It is a small rectangle, which is attached to the action rectangle. It clears out all the messy and
complicated thing to manage the execution flow of activities. It is an object node that
precisely represents one input to or output from the action.
o Notation of an Activity diagram
Initial State: It depicts the initial stage or beginning of the set of actions.
Final State: It is the stage where all the control flows and object flows end.
Decision Box: It makes sure that the control flow or object flow will follow only one path.
Since it incorporates swimlanes, branching, parallel flows, join nodes, control nodes, and
forks, it supports exception handling. A system must be explored as a whole before drawing
an activity diagram to provide a clearer view of the user. All of the activities are explored
after they are properly analyzed for finding out the constraints applied to the activities. Each
and every activity, condition, and association must be recognized.
After gathering all the essential information, an abstract or a prototype is built, which is
then transformed into the actual diagram.
Following are the rules that are to be followed for drawing an activity diagram:
1. A meaningful name should be given to each and every activity.
2. Identify all of the constraints.
3. Acknowledge the activity associations.
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Signature of Faculty:
Practical – 8
AIM: Prepare the implementation view: Draw Component diagram and Deployment diagram.
• Objectives: to explore and use various elements UML component diagram and deployment
diagram.
• Theory:
o A component diagram is used to break down a large object-oriented system into the
smaller components, so as to make them more manageable. It models the physical view
of a system such as executables, files, libraries, etc. that resides within the node.
o It visualizes the relationships as well as the organization between the components present
in the system. It helps in forming an executable system. A component is a single unit of
the system, which is replaceable and executable. The implementation details of a
component are hidden, and it necessitates an interface to execute a function. It is like a
black box whose behavior is explained by the provided and required interfaces.
Since it is a special kind of a UML diagram, it holds distinct purposes. It describes all the
individual components that are used to make the functionalities, but not the
functionalities of the system. It visualizes the physical components inside the system. The
components can be a library, packages, files, etc.
The component diagram also describes the static view of a system, which includes the
organization of components at a particular instant. The collection of component diagrams
represents a whole system.
• Background / Preparation:
o Notation of a Component Diagram
a) A component
b) A node
• Procedure / Steps:
o How to Draw a Component Diagram?
The component diagram is helpful in representing the physical aspects of a
system, which are files, executables, libraries, etc. The main purpose of a
component diagram is different from that of other diagrams. It is utilized in the
implementation phase of any application.
Once the system is designed employing different UML diagrams, and the artifacts
are prepared, the component diagram is used to get an idea of implementation. It
playss an essential role in implementing applications efficiently.
Following are some artifacts that are needed to be identified before drawing a
component diagram:
Following are some points that are needed to be kept in mind after the artifacts are
identified:
1. A component
2. An artifact
3. An interface
4. A node
o How to draw a Deployment Diagram?
The deployment diagram portrays the deployment view of the system. It helps in
visualizing the topological view of a system. It incorporates nodes, which are
physical hardware. The nodes are used to execute the artifacts. The instances of
artifacts can be deployed on the instances of nodes.
Since it plays a critical role during the administrative process, it involves the
following parameters:
1. High performance
2. Scalability
3. Maintainability
4. Portability
5. Easily understandable
One of the essential elements of the deployment diagram is the nodes and artifacts. So
it is necessary to identify all of the nodes and the relationship between them. It
becomes easier to develop a deployment diagram if all of the nodes, artifacts, and
their relationship is already known.
The iTunes setup can be downloaded from the iTunes website, and also it can be installed
on the home computer. Once the installation and the registration are done, iTunes
application can easily interconnect with the Apple iTunes store. Users can purchase and
download music, video, TV serials, etc. and cache it in the media library.
Devices like Apple iPod Touch and Apple iPhone can update its own media library from
the computer with iTunes with the help of USB or simply by downloading media directly
from the Apple iTunes store using wireless protocols, for example; Wi-Fi, 3G, or EDGE.
Quiz:
2) Draw component diagram to show the run time dependency between a java class file ,
the java.exe runtime program and the java classes in .zip file.
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Signature of Faculty:
Practical – 9
AIM: Prepare the quality management plan.
• Objectives: To explore the contents which is required to create quality management plan
• Theory:
Quality Management Plan Content
Do
• Do the work according to the approved PMP and standard operating procedures.
• Project execution is a dynamic process. The PDT must communicate, meet on a regular
basis, and adapt to changing conditions. The Quality Management Plan and PMP may
require modification to ensure that project objectives are met.
Check
• Perform independent technical review, management oversight, and verification to ensure that
quality objectives are met consistent with District Quality Management Plans.
• Check performance against the PMP and Customer Quality Objectives performance
measures thresholds to verify that performance will accomplish Quality Objectives and to
verify sufficiency of the plan. Share findings with all project stakeholders to facilitate
continuous improvement.
Act
• If performance measures thresholds are exceeded, take specific corrective actions to fix the
systemic cause of any non-conformance, deficiency, or other unwanted effect.
• Document quality improvements that could include appropriate revisions to the quality
management plan, alteration of quality assurance and control procedures, and adjustments to
resource allocations.
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Signature of Faculty:
Practical – 10
AIM: To perform various testing using the testing tool unit testing, integration testing design test cases.
• Objectives: to explore and learn about different testing techniques and use them.
• Theory:
o Software Testing is evaluation of the software against requirements gathered from users
and system specifications. Testing is conducted at the phase level in software
development life cycle or at module level in program code. Software testing comprises of
Validation and Verification.
o Software Validation
Validation is process of examining whether or not the software satisfies the user
requirements. It is carried out at the end of the SDLC. If the software matches
requirements for which it was made, it is validated.
• Errors - These are actual coding mistakes made by developers. In addition, there is a
difference in output of software and desired output, is considered as an error.
• Fault - When error exists fault occurs. A fault, also known as a bug, is a result of an
error which can cause system to fail.
• Failure - failure is said to be the inability of the system to perform the desired task.
Failure occurs when fault exists in the system.
o Testing Levels
Testing itself may be defined at various levels of SDLC. The testing process
runs parallel to software development. Before jumping on the next stage, a
stage is tested, validated and verified.
Testing separately is done just to make sure that there are no hidden bugs or
issues left in the software. Software is tested on various levels -
o Unit Testing
While coding, the programmer performs some tests on that unit of program to
know if it is error free. Testing is performed under white-box testing approach. Unit
testing helps developers decide that individual units of the program are working as
per requirement and are error free.
o Integration Testing
Even if the units of software are working fine individually, there is a need to find
out if the units if integrated together would also work without errors. For example,
argument passing and data updation etc.
o System Testing
The test lead may be given the test data like username or password to test the application,
or the test engineer may themself generate the username and password.
Showing 1 to 8 of 8 entries
We can take an Example of Gmail Login page. Here is the image of it.
Test Cases for Gmail Login page
Sr.
Test Scenarios
No.
1 Enter the valid email address & click next. Verify if the user gets an option to enter the password.
Don’t enter an email address or phone number & just click the Next button. Verify if the user
2
will get the correct message or if the blank field will get highlighted.
Enter the invalid email address & click the Next button. Verify if the user will get the correct
3
message.
Enter an invalid phone number & click the Next button. Verify if the user will get the correct
4
message.
5 Verify if a user can log in with a valid email address and password.
6 Verify if a user can log in with a valid phone number and password.
7 Verify if a user cannot log in with a valid phone number and an invalid password.
8 Verify if a user cannot log in with a valid email address and a wrong password.
1 What elements of the WebApp can be “unit tested”? What types of tests must be conducted only
after the WebApp elements are integrated?
2 What is white box testing? What are the different coverage based testing strategies.
3 What is black box testing? What are the different black box testing techniques?
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Practical – 11
AIM: Case Study: Study of Op
Open-source
source tools in DevOps for Infrastructure Automation,
Configuration Management, Deployment Automation, Performance Management, Log
Management. Monitoring
• Theory:
In some DevOps models, quality assurance and security teams may also become more tightly
integrated with development and operations and throughout the application lifecycle. When
security is the focus of everyone on a DevOps team, this is sometimes referred to as DevSecOps.
These
se teams use practices to automate processes that historically have been manual and slow.
They use a technology stack and tooling which help them operate and evolve applications
quickly and reliably. These tools also help engineers independently accomplish tasks (for
example, deploying code or provisioning infrastructure) that normally would have required help
from other teams, and this further increases a team’s velocity.
DevOps Practices
Continuous Integration
Continuous integration is a software development practice where developers regularly merge
their code changes into a central repository, after which automated builds and tests are run. The
key goals of continuous integration are to find and address bugs quicker, improve software
quality, and reduce the time it takes to validate and release new software updates.
Continuous Delivery
Continuous delivery is a software development practice where code changes are automatically
built, tested, and prepared for a release to production. It expands upon continuous integration by
deploying all code changes to a testing environment and/or a production environment after the
build stage. When continuous delivery is implemented properly, developers will always have a
deployment-ready build artifact that has passed through a standardized test process.
Micro services
The micro services architecture is a design approach to build a single application as a set of small
services. Each service runs in its own process and communicates with other services through a
well-defined interface using a lightweight mechanism, typically an HTTP-based application
programming interface (API). Micro services are built around business capabilities; each service
is scoped to a single purpose. You can use different frameworks or programming languages to
write micro services and deploy them independently, as a single service, or as a group of
services.
Infrastructure as Code
Infrastructure as code is a practice in which infrastructure is provisioned and managed using
code and software development techniques, such as version control and continuous integration.
The cloud’s API-driven model enables developers and system administrators to interact with
infrastructure programmatically, and at scale, instead of needing to manually set up and
configure resources. Thus, engineers can interface with infrastructure using code-based tools and
treat infrastructure in a manner similar to how they treat application code. Because they are
defined by code, infrastructure and servers can quickly be deployed using standardized patterns,
updated with the latest patches and versions, or duplicated in repeatable ways.
Configuration Management
Developers and system administrators use code to automate operating system and host
configuration, operational tasks, and more. The use of code makes configuration changes
repeatable and standardized. It frees developers and systems administrators from manually
configuring operating systems, system applications, or server software.
Policy as Code
With infrastructure and its configuration codified with the cloud, organizations can monitor and
enforce compliance dynamically and at scale. Infrastructure that is described by code can thus be
tracked, validated, and reconfigured in an automated way. This makes it easier for organizations
to govern changes over resources and ensure that security measures are properly enforced in a
distributed manner (e.g. information security or compliance with PCI-DSS or HIPAA). This
allows teams within an organization to move at higher velocity since non-compliant resources
can be automatically flagged for further investigation or even automatically brought back into
compliance.
DevOps Tools
The DevOps model relies on effective tooling to help teams rapidly and reliably deploy and
innovate for their customers. These tools automate manual tasks, help teams manage complex
environments at scale, and keep engineers in control of the high velocity that is enabled by
DevOps. AWS provides services that are designed for DevOps and that are built first for use
with the AWS cloud. These services help you use the DevOps practices described above.
Quiz:
1 What are the challenges with DevOps implementation?
2 What is DevOps? How it works? What are the DevOps principles & best practices?
3 Explain 7Cs of DevOps lifecycle.
Suggested Reference:
1 Deepak Gaikwad, Viral Thakkar, DevOps Tools from Practitioner’s ViewPoint, Wiley.
2 The DevOps Handbook - Gene Kim et. al.
Signature of Faculty: