Se Practicals
Se Practicals
PRACTICAL 1
What is Software?
Software is a collection of instructions that enable the user to interact with a
computer, its hardware, or perform tasks. Without software, most computers
would be useless.
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
SPCE(CE),BAKROL Page | 1
Software Engineering (3150711) Enrollment No:2112401070
life cycle stages. It also captures the structure in which these methods are to be
undertaken.
In other words, a life cycle model maps the various activities performed on a
software product from its inception to retirement. Different life cycle models may
plan the necessary development activities to phases in different ways. Thus, no
element which life cycle model is followed; the essential activities are contained in
all life cycle models though the action may be carried out in distinct orders in
different life cycle models. During any life cycle stage, more than one activity may
also be carried out.
SPCE(CE),BAKROL Page | 2
Software Engineering (3150711) Enrollment No:2112401070
The senior members of the team perform it with inputs from all the stakeholders and
domain experts or SMEs in the industry. Planning for the quality assurance
requirements and identifications of the risks associated with the projects is also done
at this stage.
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. For Example, A client wants to have an
application which concerns money transactions. In this method, the requirement has
to be precise like what kind of operations will be done, how it will be done, in which
currency it will be done, etc.
Once the requirement analysis is done, the next stage is to certainly represent and
document the software requirements and get them accepted from the project
stakeholders. This is accomplished through "SRS"- Software Requirement
Specification document which contains all the product requirements to be constructed
and developed during the project life cycle.
The next phase is about to bring down all the knowledge of requirements, analysis,
and design of the software project. This phase is the product of the last two, like
inputs from the customer and requirement gathering.
In this phase of SDLC, the actual development begins, and the programming is built.
The implementation of design begins concerning writing code. Developers have to
follow the coding guidelines described by their management and programming tools
like compilers, interpreters, debuggers, etc. are used to develop and implement the
code.
Stage 5: Testing
After the code is generated, it is tested against the requirements to make sure that the
products are solving the needs addressed and gathered during the requirements stage.
SPCE(CE),BAKROL Page | 3
Software Engineering (3150711) Enrollment No:2112401070
During this stage, unit testing, integration testing, system testing, acceptance testing
are done.
Stage 6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is deployed.
Then based on the assessment, the software may be released as it is or with suggested
enhancement in the object segment.
Stage 7: Maintenance
Once when the client starts using the developed systems, then the real issues come up
and requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known as
maintenance.
SDLC Models:
A software life cycle model is a descriptive representation of the software
development cycle. SDLC models might have a different approach but the basic
phases and activity remain the same for all the models.
SPCE(CE),BAKROL Page | 4
Software Engineering (3150711) Enrollment No:2112401070
The waterfall model is the classic model or oldest model and is known as mother of
all the model. It is widely used in government projects and many vital projects in
company. The waterfall model is also called as 'Linear sequential model' or 'Classic
life cycle model’. In this model, each phase is executed completely before the
beginning of the next phase. Hence the phases do not overlap in waterfall model. This
model is used for small projects. In this model, feedback is taken after each phase to
ensure that the project is on the right path. Testing part starts only after the
development is completed.
The V-model:
Fig : V – Model
SPCE(CE),BAKROL Page | 5
Software Engineering (3150711) Enrollment No:2112401070
Incremental Model:
The incremental build model is a method of software development where the model is
designed, implemented and tested incrementally (a little more is added each time)
until the product is finished. The incremental model combines the elements of
waterfall model and they are applied in an iterative fashion. The first increment in this
model is generally a core product. Each increment builds the product and submits it to
the customer for suggesting any modifications. The next increment implements the
customer's suggestions and add additional requirements in the previous increment.
This process is repeated until the product is completed.
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.
SPCE(CE),BAKROL Page | 6
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 7
Software Engineering (3150711) Enrollment No:2112401070
The Agile processes are the light-weight methods are people-based rather than plan
based methods. The Agile process forces the development team to focus on software
itself rather than design and documentation. The Agile process believes in iterative
method. The aim of agile process is to deliver the working model of software quickly
to the customer. There are various process models used as agile process model. But
the most famous agile process model is Extreme Programming.
SPCE(CE),BAKROL Page | 8
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 2
1. Introduction:
Multiple disease prediction systems are designed to provide individuals
with valuable insights into their health status by analysing a diverse range
of information. This typically includes personal health data, medical
history, lifestyle choices, and, in some cases, genetic information. By
leveraging sophisticated data analysis techniques, machine learning
algorithms, and a vast repository of medical knowledge, these systems
aim to deliver accurate predictions regarding the likelihood of specific
diseases or health issues.
Any problem solving in software consist of these steps:-
Requirement Analysis:
SPCE(CE),BAKROL Page | 9
Software Engineering (3150711) Enrollment No:2112401070
Software Design:
The multiple disease prediction system will be implemented as a three-
tier architecture:
Presentation Tier: The user interface where users input data and
view predictions.
Data Tier: The database where user data, disease information, and
other relevant data are stored.
Coding:
Coding for a multiple disease prediction system can be done in various
programming languages, including Python, R, Java, and others,
depending on your team's expertise and project requirements.
Testing:
SPCE(CE),BAKROL Page | 10
Software Engineering (3150711) Enrollment No:2112401070
1.1 Purpose:
The purpose of a multiple disease prediction system is to improve
healthcare outcomes and individuals' well-being by leveraging data
and technology to achieve the following objectives:
Early Disease Detection: Detect diseases at an early stage or assess
an individual's risk of developing specific health conditions, allowing
for timely intervention and treatment.
Health Education: Educate users about diseases, symptoms, risk
factors, and recommended preventive measures, fostering health
literacy.
Cost Reduction: By focusing on prevention and early intervention,
these systems aim to reduce the long-term healthcare costs associated
with treating advanced-stage diseases.
1.2 Scope:
The scope of a multiple disease prediction system includes:
Predicting the risk of a select set of diseases or health conditions, such
as diabetes, heart disease, and hypertension.
Utilizing user-provided health data, such as medical history, lifestyle
choices, and symptoms, for risk assessment.
SPCE(CE),BAKROL Page | 11
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 12
Software Engineering (3150711) Enrollment No:2112401070
1.4 Overview:
A multiple disease prediction system is a sophisticated software
application designed to assess an individual's risk of developing various
diseases or health conditions based on their personal health information,
medical history, lifestyle factors, and sometimes genetic data.
Here's an overview of a multiple disease prediction system:
Users provide information about their health, including medical
history, family history, current symptoms, lifestyle choices (e.g., diet,
exercise), and sometimes genetic data.
The system employs advanced data processing techniques to clean,
validate, and normalize the user's health data.
The system relies on a comprehensive database of diseases, which
includes information about symptoms, risk factors, prevalence rates,
and diagnostic criteria.
The system calculates the user's risk scores or probabilities for
different diseases based on their data and the disease database.
Users receive predictions about their likelihood of developing specific
diseases in the future.
2. Overall Description:
2.1 Product Perspective:
The proposed Multiple Disease Prediction System will take care of the
users by detecting various diseases conveniently. It will help user to know
whether he/she should consult a doctor or not.
SPCE(CE),BAKROL Page | 13
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 14
Software Engineering (3150711) Enrollment No:2112401070
3. Specific Requirement:
3.1 External Interface Requirement:
The user should be simple and easy to understand and use. Also be an
interactive interface. The system should prompt for the user and
administrator to login to the website and for proper input criteria
SPCE(CE),BAKROL Page | 15
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 16
Software Engineering (3150711) Enrollment No:2112401070
Conclusion:
In conclusion, the development and implementation of a multiple disease
prediction system using machine learning represent a promising frontier
in healthcare technology. Such systems have the potential to revolutionize
patient care, early disease detection, and health management.
PRACTICAL 3
SPCE(CE),BAKROL Page | 17
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 18
Software Engineering (3150711) Enrollment No:2112401070
Actors
SPCE(CE),BAKROL Page | 19
Software Engineering (3150711) Enrollment No:2112401070
1. Association Relationships
An association is a relationship between two classifiers, such as an actor and use
cases, that describes the cause of the relationship and the rules that govern it. An
association is a relationship between an actor and a business use case. It indicates that
an actor can use the functionality of the business system.
2. Generalization Relationships
A generalization relation is a relationship in which one model element (child) is
based on another model element (parent). Generalization relations are used in
class diagrams, component diagrams, deployment diagrams, and use case
diagrams to indicate that the child element accepts all the attributes, operations,
and relationships defined in the parent element.
Fig: Generalization
Relationship
SPCE(CE),BAKROL Page | 20
Software Engineering (3150711) Enrollment No:2112401070
3. Include Relationships
In UML modeling, a Include relationship is a relationship in which one use
case (base use case) contains the functionality of another use case (inclusion
use case). A containment relationship supports the reuse of functionality in the
use case model.
4. Extending relationships
In UML modeling, you can use an extend relationship to specify that one use
case (extension) extends the behaviour of another use case (base). This type of
relationship reveals details about the system or application that are usually
hidden in the use case.
SPCE(CE),BAKROL Page | 21
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 22
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 4
Class Diagram:
SPCE(CE),BAKROL Page | 23
Software Engineering (3150711) Enrollment No:2112401070
and semantics. Some of the following rules that should be taken into account while
representing a class are given below:
The attributes are written along with its visibility factors, which are
public (+), private (-), protected (#), and package (~).
Class Relationships :
SPCE(CE),BAKROL Page | 24
Software Engineering (3150711) Enrollment No:2112401070
Simple Association:
SPCE(CE),BAKROL Page | 25
Software Engineering (3150711) Enrollment No:2112401070
Aggregation:
A special type of association. It
represents a "part of" relationship.
Class2 is part of Class1.
Many instances (denoted by the *) of
Class2 can be associated with Class1.
Objects of Class1 and Class2 have
separate lifetimes.
A solid line with an unfilled diamond
at the association end connected to
the class of composite
Composition:
A special type of aggregation where
parts are destroyed when the whole is
destroyed.
Objects of Class2 live and die with
Class1.
Class2 cannot stand by itself.
A solid line with a filled diamond at
the association connected to the class
of composite
Dependency:
Exists between two classes if the
changes to the definition of one may
cause changes to the other (but not
the other way around).
Class1 depends on Class2
A dashed line with an open arrow
SPCE(CE),BAKROL Page | 26
Software Engineering (3150711) Enrollment No:2112401070
The class diagram is used to represent a static view of the system. It plays an
essential role in the establishment of the component and deployment
diagrams.. Class diagrams can be used for the following purposes:
Object Diagram
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.
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.
SPCE(CE),BAKROL Page | 27
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 5
SPCE(CE),BAKROL Page | 28
Software Engineering (3150711) Enrollment No:2112401070
Sequence Diagrams :
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.
2. 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.
SPCE(CE),BAKROL Page | 29
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 30
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 31
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 32
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 33
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 6
SPCE(CE),BAKROL Page | 34
Software Engineering (3150711) Enrollment No:2112401070
State Diagrams
A state diagram is used to represent the condition of the system or part of the
system at finite instances of time. It’s a behavioral diagram and it represents the
behavior using finite state transitions. State diagrams are also referred to as
State machines and State-chart Diagrams. These terms are often used
interchangeably.
Basic components of a state chart diagram –
1. Initial state – We use a black filled circle represent the initial state of a
System or a class.
SPCE(CE),BAKROL Page | 35
Software Engineering (3150711) Enrollment No:2112401070
6. Self transition – We use a solid arrow pointing back to the state itself to
represent a self-transition. There might be scenarios when the state of
the object does not change upon the occurrence of an event. We use self
transitions to represent such cases.
SPCE(CE),BAKROL Page | 36
Software Engineering (3150711) Enrollment No:2112401070
8. Final state – We use a filled circle within a circle notation to represent the
final state in a state machine diagram.
Activity diagram :
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.
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.
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.
Components of an Activity Diagram :
1. Activities :
SPCE(CE),BAKROL Page | 37
Software Engineering (3150711) Enrollment No:2112401070
2. 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.
3. 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.
SPCE(CE),BAKROL Page | 38
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 39
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 40
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 7
DFD can represent Source, destination, storage and flow of data using the
following set of components –
Process: This represents any task that is performed by the system on the
input data. It results in a processed output of data. A process can be related to
the modification, storing, deletion, creation, or any other operation on data. It
is represented by a circle or a round-edged rectangle.
SPCE(CE),BAKROL Page | 41
Software Engineering (3150711) Enrollment No:2112401070
Database: This is where data is stored in a system. It can also be the input
or output of a process as well. It is represented by a rectangle, which can
sometimes have a small section for its ID.
Entities: They are either the source or the termination of the DFD. Ideally,
they represent an external source from where data is taken or processed in
the end. Entities are represented by a closed square/rectangle.
Data Flow: Lastly, we use directional arrows to represent the flow of data
from one entity/database to another. The line would have a directional
arrow in the end to depict the source and the destination units.
The Level 0 data flow diagram gives a general overview of the process. They
are also called context diagrams. The level 0 DFDs depict the single process
SPCE(CE),BAKROL Page | 42
Software Engineering (3150711) Enrollment No:2112401070
node and its links with external entities. It is understood by all the
stakeholders participating in the activity.
Level 1 DFDs :
The Level 1 data flow diagrams are the more detailed breakout of parts of
the Level 0 DFDs. In a level 1 DFD, the single process node is broken down
into sub-processes with additional data flows and data stores to connect
them.
Level 2 DFDs :
The Level 2 data Flow diagrams go into deeper sub-processes to better
illustrate a process and its stages. More symbols, shapes, and text are
required to detail the process depicting the system's functioning.
SPCE(CE),BAKROL Page | 43
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 44
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 45
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 8
Both the deployment diagram and the component diagram are closely
interrelated to each other as they focus on software and hardware components.
The component diagram represents the components of a system, whereas the
deployment diagram describes how they are actually deployed on the hardware.
The deployment diagram does not focus on the logical components of the
system, but it put its attention on the hardware topology.
SPCE(CE),BAKROL Page | 46
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 47
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 48
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 49
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 9
The DevOps movement began around 2007 when the software development
and IT operations communities raised concerns about the traditional
software development model, where developers who wrote code worked
apart from operations who deployed and supported the code. The term
DevOps, a combination of the words development and operations, reflects
the process of integrating these disciplines into one, continuous process.
1. Jenkins
2. Puppet
3. Chef
4. Vagrant
5. Docker
6. Saltstack
7. Ansible
8. Juju
SPCE(CE),BAKROL Page | 50
Software Engineering (3150711) Enrollment No:2112401070
9. Sensu
10. Consul
11. New Relic
12. Monit
The Jenkins server allows you to build and test the new code and
notifies the team about the process, changes and final results.
Jenkins as an orchestration tool used for building pipelines. You
can also configure polls for any comments on SVN and trigger
builds and regression tests on the new code that is added
according
SPCE(CE),BAKROL Page | 51
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 52
Software Engineering (3150711) Enrollment No:2112401070
PRACTICAL 10
SPCE(CE),BAKROL Page | 53
Software Engineering (3150711) Enrollment No:2112401070
Functions
The first data function allows users to utilize data they are responsible for
maintaining. For example, a pilot may enter navigational data through a display
in the cockpit prior to departure. The data is stored in a file for use and can be
modified during the mission.
Therefore the pilot is responsible for maintaining the file that contains the
navigational information. Logical groupings of data in a system, maintained by
an end user, are referred to as Internal Logical Files (ILF).
The second Data Function a system provides an end user is also related to
logical groupings of data. In this case the user is not responsible for
maintaining the data. The data resides in another system and is maintained by
another user or system. The user of the system being counted requires this data
for reference purposes only. For example, it may be necessary for a pilot to
reference position data from a satellite or ground-based facility during flight.
SPCE(CE),BAKROL Page | 54
Software Engineering (3150711) Enrollment No:2112401070
The pilot does not have the responsibility for updating data at these sites but
must reference it during the flight. Groupings of data from another system that
are used only for reference purposes are defined as External Interface Files
(EIF).
The remaining functions address the user's capability to access the data
contained in ILFs and EIFs. This capability includes maintaining, inquiring and
outputting of data. These are referred to as Transactional Functions.
External Input –
External Output –
The next Transactional Function gives the user the ability to produce outputs.
For example a pilot has the ability to separately display ground speed, true air
speed and calibrated air speed. The results displayed are derived using data that
is maintained and data that is referenced. In function point terminology the
resulting display is called an External Output (EO).
External Inquiries –
SPCE(CE),BAKROL Page | 55
Software Engineering (3150711) Enrollment No:2112401070
The basic and primary purpose of the functional point analysis is to measure and
provide the software application functional size to the client, customer, and the
stakeholder on their request. Further, it is used to measure the software project
development along with its maintenance, consistently throughout the project
irrespective of the tools and the technologies.
SPCE(CE),BAKROL Page | 56
Software Engineering (3150711) Enrollment No:2112401070
SPCE(CE),BAKROL Page | 57