Se Prac
Se Prac
Se Prac
PRACTICAL:-1
Aim: - Study the complete software development life cycle (SDIC) and analyze various
activity conduct a part of various spaces for each SDCC phase identity the objective
summary outcome.
What is SDLC?
SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan
describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a
methodology for improving the quality of software and the overall development process.
The following figure is a graphical representation of the various stages of a typical SDLC.
Planning for the quality assurance requirements and identification of the risks associated with the project is also
done in the planning stage. The outcome of the technical feasibility study is to define the various technical
approaches that can be followed to implement the project successfully with minimum risks.
1
Software Engineering (3150711) EN NO.
Requirement Specification) document which consists of all the product requirements to be designed and
developed during the project life cycle.
This DDS is reviewed by all the important stakeholders and based on various parameters as risk assessment,
product robustness, design modularity, budget and time constraints, the best design approach is selected for the
product.
A design approach clearly defines all the architectural modules of the product along with its communication and
data flow representation with the external and third party modules (if any). The internal design of all the
modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.
Developers must follow the coding guidelines defined by their organization and programming tools like
compilers, interpreters, debuggers, etc. are used to generate the code. Different high level programming
languages such as C, C++, Pascal, Java and PHP are used for coding. The programming language is chosen
with respect to the type of software being developed.
Then based on the feedback, the product may be released as it is or with suggested enhancements in the
targeting market segment. After the product is released in the market, its maintenance is done for the existing
customer base.
SDLC Models
There are various software development life cycle models defined and designed which are followed during the
software development process. These models are also referred as Software Development Process Models". Each
process model follows a Series of steps unique to its type to ensure success in the process of software
development.
Following are the most important and popular SDLC models followed in the industry −
Waterfall Model
Iterative Model
Spiral Model
V-Model
2
Software Engineering (3150711) EN NO.
Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure success of the
project. In "The Waterfall" approach, the whole process of software development is divided into separate
phases. In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase
sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.
Requirement Gathering and analysis − All possible requirements of the system to be developed are
captured in this phase and documented in a requirement specification document.
System Design − the requirement specifications from first phase are studied in this phase and the system
design is prepared. This system design helps in specifying hardware and system requirements and helps
in defining the overall system architecture.
Implementation − with inputs from the system design, the system is first developed in small programs
called units, which are integrated in the next phase. Each unit is developed and tested for its
functionality, which is referred to as Unit Testing.
Integration and Testing − All the units developed in the implementation phase are integrated into a
system after testing of each unit. Post integration the entire system is tested for any faults and failures.
Deployment of system − Once the functional and non-functional testing is done; the product is
deployed in the customer environment or released into the market.
Maintenance − There are some issues which come up in the client environment. To fix those issues,
patches are released. Also to enhance the product some better versions are released. Maintenance is done
to deliver these changes in the customer environment.
Every software developed is different and requires a suitable SDLC approach to be followed based on the
internal and external factors. Some situations where the use of Waterfall model is most appropriate are −
3
Software Engineering (3150711) EN NO.
Iterative process starts with a simple implementation of a subset of the software requirements and iteratively
enhances the evolving versions until the full system is implemented. At each iteration, design modifications are
made and new functional capabilities are added. The basic idea behind this method is to develop a system
through repeated cycles (iterative) and in smaller portions at a time (incremental).
Iterative and Incremental development is a combination of both iterative design or iterative method and
incremental build model for development. "During software development, more than one iteration of the
software development cycle may be in progress at the same time." This process may be described as an
"evolutionary acquisition" or "incremental build" approach."
In this incremental model, the whole requirement is divided into various builds. During each iteration, the
development module goes through the requirements, design, implementation and testing phases. Each
subsequent release of the module adds function to the previous release. The process continues till the complete
system is ready as per the requirement.
The key to a successful use of an iterative software development lifecycle is rigorous validation of
requirements, and verification & testing of each version of the software against those requirements within each
cycle of the model. As the software evolves through successive cycles, tests must be repeated and extended to
verify each version of the software.
Like other SDLC models, Iterative and incremental development has some specific applications in the software
industry. This model is most often used in the following scenarios −
Identification
This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the
product matures, identification of system requirements, subsystem requirements and unit requirements are all
done in this phase.
This phase also includes understanding the system requirements by continuous communication between the
customer and the system analyst. At the end of the spiral, the product is deployed in the identified market.
Design
The Design phase starts with the conceptual design in the baseline spiral and involves architectural design,
logical design of modules, physical product design and the final design in the subsequent spirals.
Construct or Build
The Construct phase refers to production of the actual software product at every spiral. In the baseline spiral,
when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in
this phase to get customer feedback.
Then in the subsequent spirals with higher clarity on requirements and design details a working model of the
software called build is produced with a version number. These builds are sent to the customer for feedback.
The following illustration is a representation of the Spiral Model, listing the activities in each phase.
5
Software Engineering (3150711) EN NO.
Based on the customer evaluation, the software development process enters the next iteration and subsequently
follows the linear approach to implement the feedback suggested by the customer. The process of iterations
along the spiral continues throughout the life of the software.
The Spiral Model is widely used in the software industry as it is in sync with the natural development process of
any product, i.e. learning with maturity which involves minimum risk for the customer as well as the
development firms.
V-Model – Design
Under the V-Model, the corresponding testing phase of the development phase is planned in parallel. So, there
are Verification phases on one side of the ‘V’ and Validation phases on the other side. The Coding Phase joins
the two sides of the V-Model.
The following illustration depicts the different phases in a V-Model of the SDLC.
6
Software Engineering (3150711) EN NO.
There are several Verification phases in the V-Model, each of these are explained in detail below.
System Design
Once you have the clear and detailed product requirements, it is time to design the complete system. The system
design will have the understanding and detailing the complete hardware and communication setup for the
product under development. The system test plan is developed based on the system design. Doing this at an
earlier stage leaves more time for the actual test execution later.
Architectural Design
Architectural specifications are understood and designed in this phase. Usually more than one technical
approach is proposed and based on the technical and financial feasibility the final decision is taken. The system
design is broken down further into modules taking up different functionality. This is also referred to as High
Level Design (HLD).
The data transfer and communication between the internal modules and with the outside world (other systems)
is clearly understood and defined in this stage. With this information, integration tests can be designed and
documented during this stage.
Module Design
In this phase, the detailed internal design for all the system modules is specified, referred to as Low Level
Design (LLD). It is important that the design is compatible with the other modules in the system architecture
and the other external systems. The unit tests are an essential part of any development process and helps
eliminate the maximum faults and errors at a very early stage. These unit tests can be designed at this stage
based on the internal module designs.
Coding Phase
The actual coding of the system modules designed in the design phase is taken up in the Coding phase. The best
suitable programming language is decided based on the system and architectural requirements.
The coding is performed based on the coding guidelines and standards. The code goes through numerous code
reviews and is optimized for best performance before the final build is checked into the repository.
Validation Phases
The different Validation Phases in a V-Model are explained in detail below.
Unit Testing
Unit tests designed in the module design phase are executed on the code during this validation phase. Unit
testing is the testing at code level and helps eliminate bugs at an early stage, though all defects cannot be
uncovered by unit testing.
7
Software Engineering (3150711) EN NO.
Integration Testing
Integration testing is associated with the architectural design phase. Integration tests are performed to test the
coexistence and communication of the internal modules within the system.
System Testing
System testing is directly associated with the system design phase. System tests check the entire system
functionality and the communication of the system under development with external systems. Most of the
software and hardware compatibility issues can be uncovered during this system test execution.
Acceptance Testing
Acceptance testing is associated with the business requirement analysis phase and involves testing the product
in user environment. Acceptance tests uncover the compatibility issues with the other systems available in the
user environment. It also discovers the non-functional issues such as load and performance defects in the actual
user environment.
V- Model ─ Application
V- Model application is almost the same as the waterfall model, as both the models are of sequential type.
Requirements have to be very clear before the project starts, because it is usually expensive to go back and
make changes. This model is used in the medical development field, as it is strictly a disciplined domain.
The following pointers are some of the most suitable scenarios to use the V-Model application.
What is Agile?
Agile model believes that every project needs to be handled differently and the existing methods need to be
tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to
deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each build is
incremental in terms of features; the final build holds all the features required by the customer.
Individuals and interactions − In Agile development, self-organization and motivation are important,
as are interactions like co-location and pair programming.
Working software − Demo working software is considered the best means of communication with the
customers to understand their requirements, instead of just depending on documentation.
Customer collaboration − As the requirements cannot be gathered completely in the beginning of the
project due to various factors, continuous customer interaction is very important to get proper product
requirements.
Responding to change − Agile Development is focused on quick responses to change and continuous
development.
8
Software Engineering (3150711) EN NO.
What is RAD?
Rapid application development is a software development methodology that uses minimal planning in favor of
rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the product.
In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make
the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to
incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of developers, domain
experts, customer representatives and other IT resources working progressively on their component or
prototype.
The most important aspect for this model to be successful is to make sure that the prototypes developed are
reusable.
9
Software Engineering (3150711) EN NO.
RAD model distributes the analysis, design, build and test phases into a series of short, iterative development
cycles.
Business Modelling
The business model for the product under development is designed in terms of flow of information and the
distribution of information between various business channels. A complete business analysis is performed to
find the vital information for business, how it can be obtained, how and when is the information processed and
what are the factors driving successful flow of information.
Data Modelling
The information gathered in the Business Modelling phase is reviewed and analyzed to form sets of data objects
vital for the business. The attributes of all data sets is identified and defined. The relation between these data
objects are established and defined in detail in relevance to the business model.
Process Modelling
The data object sets defined in the Data Modelling phase are converted to establish the business information
flow needed to achieve specific business objectives as per the business model. The process model for any
changes or enhancements to the data object sets is defined in this phase. Process descriptions for adding,
deleting, retrieving or modifying a data object are given.
Application Generation
The actual system is built and coding is done by using automation tools to convert process and data models into
actual prototypes.
10
Software Engineering (3150711) EN NO.
RAD model can be applied successfully to the projects in which clear modularization is possible. If the project
cannot be broken into modules, RAD may fail.
The following pointers describe the typical scenarios where RAD can be used −
RAD should be used only when a system can be modularized to be delivered in an incremental manner.
It should be used if there is a high availability of designers for Modelling.
It should be used only if the budget permits use of automated code generating tools.
RAD SDLC model should be chosen only if domain experts are available with relevant business
knowledge.
Should be used where the requirements change during the project and working prototypes are to be
presented to customer in small iterations of 2-3 months.
11
Software Engineering (3150711) EN NO.
PRACTICAL:-2
Aim: - Study the Software Requirement Specification [SRS] with details.
The production of the requirements stage of the software development process is Software Requirements
Specifications (SRS) (also called a requirements document). This report lays a foundation for software
engineering activities and is constructing when entire requirements are elicited and analyzed. SRS is a formal
report, which acts as a representation of software that enables the customers to review whether it (SRS) is
according to their requirements. Also, it comprises user requirements for a system as well as detailed
specifications of the system requirements.
The SRS is a specification for a specific software product, program, or set of applications that perform
particular functions in a specific environment. It serves several goals depending on who is writing it. First, the
SRS could be written by the client of a system. Second, the SRS could be written by a developer of the system.
The two methods create entirely various situations and establish different purposes for the document altogether.
The first case, SRS, is used to define the needs and expectation of the users. The second case, SRS, is written
for various purposes and serves as a contract document between customer and developer.
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:
(1). All essential requirements, whether relating to functionality, performance, design, constraints, attributes, or
external interfaces.
12
Software Engineering (3150711) EN NO.
(2). Definition of their responses of the software to all realizable classes of input data in all available categories
of situations.
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 may 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.
6. Modifiability: SRS should be made as modifiable as likely and should be capable of quickly obtain changes
to the system to some extent. Modifications should be perfectly indexed and cross-referenced.
7. Verifiability: SRS is correct when the specified requirements can be verified with a cost-effective system to
check whether the final software meets those requirements. The requirements are verified with the help of
reviews.
8. Traceability: The SRS is traceable if the origin of each of the requirements is clear and if it facilitates the
referencing of each condition in future development or enhancement documentation.
(1) Backward Traceability: This depends upon each requirement explicitly referencing its source in earlier
documents.
13
Software Engineering (3150711) EN NO.
(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.
9. Design Independence: There should be an option to select from multiple design alternatives for the final
system. More specifically, the SRS should not contain any implementation details.
10. Testability: An SRS should be written in such a method that it is simple to generate test cases and test plans
from the report.
11. Understandable by the customer: An end user may be an expert in his/her explicit domain but might not
be trained in computer science. Hence, the purpose of formal notations and symbols should be avoided too as
much extent as possible. The language should be kept simple and clear.
12. The right level of abstraction: If the SRS is written for the requirements stage, the details should be
explained explicitly. Whereas ,for a feasibility study, fewer analysis can be used. Hence, the level of abstraction
modifies according to the objective of the SRS.
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 response 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.
14
Software Engineering (3150711) EN NO.
PRACTICLE: -3
Aim: - Explain ER Diagram in Brief
The Entity Relational Model is a model for identifying entities to be represented in the database and
representation of how those entities are related. The ER data model specifies enterprise schema that represents
the overall logical structure of a database graphically.
The Entity Relationship Diagram explains the relationship among the entities present in the database. ER
models are used to model real-world objects like a person, a car, or a company and the relation between these
real-world objects. In short, the ER Diagram is the structural format of the database.
Components of ER Diagram
ER Model consists of Entities, Attributes, and Relationships among Entities in a Database System.
15
Software Engineering (3150711) EN NO.
Entity
An Entity may be an object with a physical existence – a particular person, car, house, or employee – or it may
be an object with a conceptual existence – a company, a job, or a university course.
Entity Set: An Entity is an object of Entity Type and a set of all entities is called an entity set. For Example,
E1 is an entity having Entity Type Student and the set of all students is called Entity Set. In ER diagram, Entity
Type is represented as:
1. Strong Entity
A Strong Entity is a type of entity that has a key Attribute. Strong Entity does not depend on other Entity in the
Schema. It has a primary key that helps in identifying it uniquely and it is represented by a rectangle. These are
called Strong Entity Types.
2. Weak Entity
An Entity type has a key attribute that uniquely identifies each entity in the entity set. But some entity type
exists for which key attributes can’t be defined. These are called Weak Entity types.
For Example, A company may store the information of dependents (Parents, Children, Spouse) of an
Employee. But the dependents don’t have existed without the employee. So Dependent will be a Weak Entity
Type and Employee will be Identifying Entity type for Dependent, which means it is Strong Entity Type.
A weak entity type is represented by a Double Rectangle. The participation of weak entity types is always total.
The relationship between the weak entity type and its identifying strong entity type is called identifying
relationship and it is represented by a double diamond.
Attributes
Are the properties that define the entity type? For example, Rollin, Name, DOB, Age, Address, and Mobile
No are the attributes that define entity type Student. In ER diagram, the attribute is represented by an oval.
1. Key Attribute
The attribute which uniquely identifies each entity in the entity set is called the key attribute. For example,
Rollin will be unique for each student. In ER diagram, the key attribute is represented by an oval with
underlying lines.
16
Software Engineering (3150711) EN NO.
2. Composite Attribute
An attribute composed of many other attributes is called a composite attribute. For example, the Address
attribute of the student Entity type consists of Street, City, State, and Country. In ER diagram, the composite
attribute is represented by an oval comprising of ovals.
3. Multivalued Attribute
An attribute consisting of more than one value for a given entity. For example, Phone No (can be more than
one for a given student). In ER diagram, a multivalued attribute is represented by a double oval.
4. Derived Attribute
An attribute that can be derived from other attributes of the entity type is known as a derived attribute. e.g.;
Age (can be derived from DOB). In ER diagram, the derived attribute is represented by a dashed oval.
The Complete Entity Type Student with its Attributes can be represented as:
17
Software Engineering (3150711) EN NO.
A set of relationships of the same type is known as a relationship set. The following relationship set depicts
S1 as enrolled in C2, S2 as enrolled in C1, and S3 as registered in C3.
Cardinality
The number of times an entity of an entity set participates in a relationship set is known as cardinality.
Cardinality can be of different types:
1. One-to-One: When each entity in each entity set can take part only once in the relationship, the
cardinality is one-to-one. Let us assume that a male can marry one female and a female can marry one
male. So, the relationship will be one-to-one.
2. One-to-Many: In one-to-many mapping as well where each entity can be related to more than one
relationship and the total number of tables that can be used in this is 2. Let us assume that one surgeon
department can accommodate many doctors. So, the Cardinality will be 1 to M. It means one department
has many Doctors.
18
Software Engineering (3150711) EN NO.
Many-to-One: When entities in one entity set can take part only once in the relationship set and entities in
other entity sets can take part more than once in the relationship set, cardinality is many to one. Let us assume
that a student can take only one course but one course can be taken by many students. So, the cardinality will
be n to 1. It means that for one course there can be n students but for one student, there will be only one course.
Many-to-Many: When entities in all entity sets can take part more than once in the relationship cardinality is
many to many. Let us assume that a student can take more than one course and one course can be taken by
many students. So, the relationship will be many to many.
19
Software Engineering (3150711) EN NO.
20
Software Engineering (3150711) EN NO.
21
Software Engineering (3150711) EN NO.
PRACTICLE: -4
Aim: - Explain Use Case Diagram In brief.
UML Use Case Diagram
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.
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.
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.
22
Software Engineering (3150711) EN NO.
System
system The rectangular boundary is the system. Use
cases fall inside it, and actors will be placed
outside it.
Actor
When an actor interacts with the system, it
triggers a use case. Actors should be placed
outside the system.
Use Case
An oval shape represents a use case. Use cases
Use case represent the functionality of the system, as well
as the end-goal of the actor. Use cases should be
placed inside the system.
Relationships
Arrows are used to indicate a relationship
between an actor and a use case, or between two
use cases.
An extension indicates that one use case may
include the behavior of another use case.
An inclusion represents one use case using the
functionality of another use case.
23
Software Engineering (3150711) EN NO.
24
Software Engineering (3150711) EN NO.
25
Software Engineering (3150711) EN NO.
PRACTICLE: -5
Aim:- Explain Activity Diagram in Brief
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.
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.
Activities
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.
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.
26
Software Engineering (3150711) EN NO.
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.
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.
Pins
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.
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.
27
Software Engineering (3150711) EN NO.
Following are the rules that are to be followed for drawing an activity diagram:
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:
28
Software Engineering (3150711) EN NO.
29
Software Engineering (3150711) EN NO.
Result
30
Software Engineering (3150711) EN NO.
PRACTICAL: -6
AIM: Explain Class Diagram in brief.
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.
Purpose of Class Diagrams
The main purpose of class diagrams is to build a static view of an application. It is the only diagram that is widely
used for construction, and it can be mapped with object-oriented languages. It is one of the most popular UML
diagrams. Following are the purpose of class diagrams given below:
1. It analyses and designs a static view of an application.
2. It describes the major responsibilities of a system.
3. It is a base for component and deployment diagrams.
4. It incorporates forward and reverse engineering.
Benefits of Class Diagrams
1. It can represent the object model for complex systems.
2. It reduces the maintenance time by providing an overview of how an application is structured before
coding.
3. It provides a general schematic of an application for better understanding.
4. It represents a detailed chart by highlighting the desired code, which is to be programmed.
5. It is helpful for the stakeholders and the developers.
Class Notation
A class notation consists of three parts:
1. Class Name
The name of the class appears in the first partition.
2. Class Attributes
Attributes are shown in the second partition.
The attribute type is shown after the colon.
Attributes map onto member variables (data members) in code.
3. Class Operations (Methods)
Operations are shown in the third partition. They are services the class provides.
The return type of a method is shown after the colon at the end of the method signature.
The return type of method parameters is shown after the colon following the parameter name.
Operations map onto class methods in code
31
Software Engineering (3150711) EN NO.
Relationships
In UML, relationships are of three types:
o Dependency: A dependency is a semantic relationship between two or more classes where a change in
one class cause changes in another class. It forms a weaker relationship.
In the following example, Student_Name is dependent on the Student_Id.
o Generalization: A generalization is a relationship between a parent class (superclass) and a child class
(subclass). In this, the child class is inherited from the parent class.
For example, The Current Account, Saving Account, and Credit Account are the generalized form of Bank
Account.
o Association: It describes a static or physical connection between two or more objects. It depicts how
many objects are there in the relationship.
For example, a department is associated with the college.
Multiplicity: It defines a specific range of allowable instances of attributes. In case if a range is not specified,
one is considered as a default multiplicity.
For example, multiple patients are admitted to one hospital.
32
Software Engineering (3150711) EN NO.
Aggregation: An aggregation is a subset of association, which represents has a relationship. It is more specific
then association. It defines a part-whole or part-of relationship. In this kind of relationship, the child class can
exist independently of its parent class.
The company encompasses a number of employees, and even if one employee resigns, the company still exists.
Composition: The composition is a subset of aggregation. It portrays the dependency between the parent and
its child, which means if one part is deleted, then the other part also gets discarded. It represents a whole-part
relationship.
A contact book consists of multiple contacts, and if you delete the contact book, all the contacts will be lost.
Abstract Classes
In the abstract class, no objects can be a direct entity of the abstract class. The abstract class can neither be declared
nor be instantiated. It is used to find the functionalities across the classes. The notation of the abstract class is
similar to that of class; the only difference is that the name of the class is written in italics. Since it does not
involve any implementation for a given function, it is best to use the abstract class with multiple objects.
Let us assume that we have an abstract class named displacement with a method declared inside it, and that
method will be called as a drive (). Now, this abstract class method can be implemented by any object, for
example, car, bike, scooter, cycle, etc.
34
Software Engineering (3150711) EN NO.
PRACTICAL-7
Aim: Explain sequence diagram in brief.
A sequence diagram is a type of interaction diagram because it describes how—and in what order—a group of
objects works together. These diagrams are used by software developers and business professionals to understand
requirements for a new system or to document an existing process. Sequence diagrams are sometimes known as
event diagrams or event scenarios.
Note that there are two types of sequence diagrams: UML diagrams and code-based diagrams. The latter is
sourced from programming code and will not be covered in this guide. Lucidchart’s UML diagramming software
is equipped with all the shapes and features you will need to model both.
Sequence Diagram Notations :
Object:
Represents a class or object in UML. The object symbol demonstrates how an object will behave in the context
of the system. Class attributes should not be listed in this shape.
Activation box:
Represents the time needed for an object to complete a task. The longer the task will take, the longer the
activation box becomes.
35
Software Engineering (3150711) EN NO.
Actor:
Lifeline:
Represents the passage of time as it extends downward. This dashed vertical line shows the sequential events
that occur to an object during the charted process. Lifelines may begin with a labeled rectangle shape or an actor
symbol.
Synchronous message:
Represented by a solid line with a solid arrowhead. This symbol is used when a sender must wait for a response
to a message before it continues. The diagram should show both the call and the reply.
36
Software Engineering (3150711) EN NO.
Asynchronous message:
Represented by a solid line with a lined arrowhead. Asynchronous messages don't require a response before the
sender continues. Only the call should be included in the diagram.
Represented by a dashed line with a lined arrowhead. This message creates a new object.
Reply message:
Represented by a dashed line with a lined arrowhead, these messages are replies to calls.
Delete message:
Represented by a solid line with a solid arrowhead, followed by an X. This message destroys an object.
37
Software Engineering (3150711) EN NO.
38
Software Engineering (3150711) EN NO.
39
Software Engineering (3150711) EN NO.
PRACTICAL-8
Aim:- Explain Data Flow Diagram in brief.
Data Flow Diagrams
A Data Flow Diagram (DFD) is a traditional visual representation of the information flows within a system. A
neat and clear DFD can depict the right amount of the system requirement graphically. It can be manual,
automated, or a combination of both.
It shows how data enters and leaves the system, what changes the information, and where data is stored.
The objective of a DFD is to show the scope and boundaries of a system as a whole. It may be used as a
communication tool between a system analyst and any person who plays a part in the order that acts as a starting
point for redesigning a system. The DFD is also called as a data flow graph or bubble chart.
Characteristics of DFD
DFDs are commonly used during problem analysis.
DFDs are quite general and are not limited to problem analysis for software requirements specification.
DFDs are very useful in understanding a system and can be effectively used during analysis.
It views a system as a function that transforms the inputs into desired outputs.
The DFD aims to capture the transformations that take place within a system to the input data so that
eventually the output data is produced.
The processes are shown by named circles and data flows are represented by named arrows entering or
leaving the bubbles.
A rectangle represents a source or sink and it is a net originator or consumer of data. A source sink is
typically outside the main system of study.
Components of DFD
Process Input to output transformation in a system takes place because of process function. The symbols
of a process are rectangular with rounded corners, oval, rectangle or a circle.
Data Flow Data flow describes the information transferring between different parts of the systems. The
arrow symbol is the symbol of data flow. A relatable name should be given to the flow to determine the
information which is being moved. Data flow also represents material along with information that is being
moved. Material shifts are modeled in systems that are not merely informative. A given flow should only
transfer a single type of information. The direction of flow is represented by the arrow which can also be
bi-directional.
Warehouse The data is stored in the warehouse for later use. Two horizontal lines represent the symbol
of the store. The warehouse is simply not restricted to being a data file rather it can be anything like a
folder with documents, an optical disc, a filing cabinet. The data warehouse can be viewed independent of
its implementation. When the data flow from the warehouse it is considered as data reading and when data
flows to the warehouse it is called data entry or data updating.
Terminator The Terminator is an external entity that stands outside of the system and communicates with
the system. It can be, for example, organizations like banks, groups of people like customers or different
departments of the same organization, which is not a part of the model system and is an external entity.
Modeled systems also communicate with terminator.
40
Software Engineering (3150711) EN NO.
The name of the entity should be easy and understandable without any extra assistance(like comments).
The processes should be numbered or put in ordered list to be referred easily.
The DFD should maintain consistency across all the DFD levels.
A single DFD can have a maximum of nine processes and a minimum of three processes.
Square Box: A square box defines source or destination of the system. It is also called entity. It is
represented by rectangle.
Arrow or Line: An arrow identifies the data flow i.e. it gives information to the data that is in motion.
Circle or bubble chart: It represents as a process that gives us information. It is also called processing
box.
Open Rectangle: An open rectangle is a data store. In this data is store either temporary or permanently.
Levels of DFD
DFD uses hierarchy to maintain transparency thus multilevel DFD’s can be created. Levels of DFD are as
follows:
0-level DFD: It represents the entire system as a single bubble and provides an overall picture of the
system.
1-level DFD: It represents the main functions of the system and how they interact with each other.
2-level DFD: It represents the processes within each function of the system and how they interact with
each other.
3-level DFD: It represents the data flow within each process and how the data is transformed and stored.
41
Software Engineering (3150711) EN NO.
b. Level 1 DFD :-
42
Software Engineering (3150711) EN NO.
c. Level 2 DFD :-
a. Level 0 DFD :-
43
Software Engineering (3150711) EN NO.
b. Level 1 DFD :-
44
Software Engineering (3150711) EN NO.
PRACTICAL-9
Aim:-Define cost effort estimation, Also explain COCOMO model for project estimation.
COCOMO Model
Boehm proposed COCOMO (Constructive Cost Estimation Model) in 1981.COCOMO is one of the most
generally used software estimation models in the world. COCOMO predicts the efforts and schedule of a software
product based on the size of the software.
1. Get an initial estimate of the development effort from evaluation of thousands of delivered lines of source
code (KDLOC).
2. Determine a set of 15 multiplying factors from various attributes of the project.
3. Calculate the effort estimate by multiplying the initial estimate with all the multiplying factors i.e.,
multiply the values in step1 and step2.
The initial estimate (also called nominal estimate) is determined by an equation of the form used in the static
single variable models, using KDLOC as the measure of the size. To determine the initial effort E i in person-
months the equation used is of the type is shown below
Ei=a*(KDLOC)b
The value of the constant a and b are depends on the project type.
1. Organic
2. Semidetached
3. Embedded
1.Organic: A development project can be treated of the organic type, if the project deals with developing a well-
understood application program, the size of the development team is reasonably small, and the team members are
experienced in developing similar methods of projects. Examples of this type of projects are simple business
systems, simple inventory management systems, and data processing systems.
2.Semidetached: A development project can be treated with semidetached type if the development consists of
a mixture of experienced and inexperienced staff. Team members may have finite experience in related systems
but may be unfamiliar with some aspects of the order being developed. Example of Semidetached system
includes developing a new operating system (OS), a Database Management System (DBMS), and complex
inventory management system.
3. Embedded: A development project is treated to be of an embedded type, if the software being developed is
strongly coupled to complex hardware, or if the stringent regulations on the operational method exist. For
Example: ATM, Air Traffic control.
For three product categories, Bohem provides a different set of expression to predict effort (in a unit of person
month)and development time from the size of estimation in KLOC(Kilo Line of code) efforts estimation takes
into account the productivity loss due to holidays, weekly off, coffee breaks, etc.
45
Software Engineering (3150711) EN NO.
According to Boehm, software cost estimation should be done through three stages:
1. Basic Model
2. Intermediate Model
3. Detailed Model
1. Basic COCOMO Model: The basic COCOMO model provide an accurate size of the project parameters.
The following expressions give the basic COCOMO estimation model:
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Where,
KLOC is the estimated size of the software product indicate in Kilo Lines of Code,
Effort is the total effort required to develop the software product, expressed in person months (PMs).
Example1: Suppose a project was estimated to be 400 KLOC. Calculate the effort and development time for each
of the three model i.e., organic, semi-detached & embedded.
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
(i)Organic Mode
D = 2.5 * (1295.31)0.38=38.07 PM
(ii)Semidetached Mode
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 PM
46
Software Engineering (3150711) EN NO.
PRACTICAL: -10
Aim: Explain Risk Management With RMMM.
RMMM Plan:
A risk management technique is usually seen in the software Project plan. This can be divided into Risk
Mitigation, Monitoring, and Management Plan (RMMM). In this plan, all works are done as part of risk
analysis. As part of the overall project plan project manager generally uses this RMMM plan.
In some software teams, risk is documented with the help of a Risk Information Sheet (RIS). This RIS is
controlled by using a database system for easier management of information i.e creation, priority ordering,
searching, and other analysis. After documentation of RMMM and start of a project, risk mitigation and
monitoring steps will start.
Risk Mitigation:
Risk Monitoring:
It assumes that the mitigation activity failed and the risk is a reality. This task is done by Project manager when
risk becomes reality and causes severe problems. If the project manager effectively uses project mitigation to
remove risks successfully then it is easier to manage the risks. This shows that the response that will be taken
for each risk by a manager. The main objective of the risk management plan is the risk register. This risk register
describes and focuses on the predicted threats to a software project.
Example:
Let us understand RMMM with the help of an example of high staff turnover.
Risk Mitigation:
To mitigate this risk, project management must develop a strategy for reducing turnover. The possible steps
to be taken are:
Meet the current staff to determine causes for turnover (e.g., poor working conditions, low pay, and
competitive job market).
Mitigate those causes that are under our control before the project starts.
47
Software Engineering (3150711) EN NO.
Once the project commences, assume turnover will occur and develop techniques to ensure continuity when
people leave.
Organize project teams so that information about each development activity is widely dispersed.
Define documentation standards and establish mechanisms to ensure that documents are developed in a
timely manner.
Assign a backup staff member for every critical technologist.
Risk Monitoring:
As the project proceeds, risk monitoring activities commence. The project manager monitors factors that may
provide an indication of whether the risk is becoming more or less likely. In the case of high staff turnover, the
following factors can be monitored:
General attitude of team members based on project pressures.
Interpersonal relationships among team members.
Potential problems with compensation and benefits.
The availability of jobs within the company and outside it.
Risk Management:
Risk management and contingency planning assumes that mitigation efforts have failed and that the risk has
become a reality. Continuing the example, the project is well underway, and a number of people announce that
they will be leaving. If the mitigation strategy has been followed, backup is available, information is
documented, and knowledge has been dispersed across the team. In addition, the project manager may
temporarily refocus resources (and readjust the project schedule) to those functions that are fully staffed,
enabling newcomers who must be added to the team to “get up to the speed”.
Larger system definitions, design and implementation is considered. The opportunity and the impact that
the risk is going to have is looked. View software risks in the context of a system and the business problem
planned to solve.
3. Open Communication:
This enables the free flow of the communication between the end users and the development team so that
they can clarify the risks. Encourage all the stakeholders and users for suggesting risks at any time.
4. Integrated Management:
Risk management is made an integral part of the project management during this phase. A consideration of
risk should be integrated into the software process.
5. Continuous Process:
Risks are tracked continuously throughout the risk management paradigm during this phase. Modify the
identified risk than the more information is known and add new risks as better insight is achieved.
48
Software Engineering (3150711) EN NO.
Identify:
Risks are identified before major problem is created. If the risks are identified before they create a
major problem then there might not be more difficulty in controlling the risks.
Analyze:
Deep analysis of nature, behavior and type of risk and collect information about it. It is required for the
purpose of the determination of the knowledge about the risk.
Plan:
Convert the plan into actions and implementation. This phase includes the actions and implementation
of the planning that was done before. After the risk detection plans are made and executed.
Track:
Necessary actions are monitored. Necessary action means the required work for the removal and
minimization of the risk detected.
Control:
Correct the deviation and make necessary changes. Put the right thing in the right place and the required
field will changed according to the changes required.
Communicate:
Discussion about the current risks and the future risks and their management. Make a productive
discussion between the developer and tester on the risks found in the software.
Advantages of RMMM:
Risk Identification
Risk Assessment
Treatment of Risk
Minimization of Risk
49
Software Engineering (3150711) EN NO.
Disadvantages of RMMM:
Complex calculations
Unmanaged losses
Ambiguity
Depends on external entities
Mitigation
Difficulty in implementing
Performance
Potential threats
Drawbacks of RMMM:
It incurs additional project costs.
It takes additional time.
For larger projects, implementing an RMMM may itself turn out to be another tedious project.
RMMM does not guarantee a risk-free project, in fact, risks may also come up after the project is delivered
50
Software Engineering (3150711) EN NO.
PRACTICAL-11
Aim:- Explain System Testing with its type in details.
Software Testing is a method to assess the functionality of the software program. The process checks whether the
actual software matches the expected requirements and ensures the software is bug-free.
The purpose of software testing is to identify the errors, faults, or missing requirements in contrast to actual
requirements. It mainly aims at measuring the specification, functionality, and performance of a software program
or application.
Software testing is a process of identifying the correctness of software by considering its all attributes (Reliability,
Scalability, Portability, Re-usability, Usability) and evaluating the execution of software components to find the
software bugs or errors or defects.
Different Types Of Software Testing
1. Manual testing
The process of checking the functionality of an application as per the customer needs without taking any help of
automation tools is known as manual testing. While performing the manual testing on any application, we do
not need any specific knowledge of any testing tool, rather than have a proper understanding of the product so
we can easily prepare the test document.
Manual testing can be further divided into three types of testing, which are as follows:
a) White box testing
b) Black box testing
c) Gray box testing
51
Software Engineering (3150711) EN NO.
2. Automation testing
Automation testing is a process of converting any manual test cases into the test scripts with the help of
automation tools, or any programming language is known as automation testing. With the help of
automation testing, we can enhance the speed of our test execution because here, we do not require any
human efforts. We need to write a test script and execute those scripts.
Loop Testing:-
In the loop testing, we will test the loops such as while, for, and do-while, etc. and also check for ending condition if
working correctly and if the size of the conditions is enough. Errors often occur at the beginnings and ends of loops.
Simple loops: For simple loops of size n, test cases are designed that:
o Skip the loop entirely
o Only one pass through the loop
o 2 passes
o m passes, where m < n
o n-1 ans n+1 passes
52
Software Engineering (3150711) EN NO.
Nested loops: For nested loops, all the loops are set to their minimum count and we start from the innermost
loop. Simple loop tests are conducted for the innermost loop and this is worked outwards till all the loops have
been tested.
Concatenated loops: Independent loops, one after another. Simple loop tests are applied for each. If they’re not
independent, treat them like nesting.
Condition testing
In this, we will test all logical conditions for both true and false values; that is, we will verify for both if and
else condition.
Design all test scenarios, test cases and prioritize them according to high priority number.
This step involves the study of code at runtime to examine the resource utilization, not accessed areas of
the code, time taken by various methods and operations and so on.
In this step testing of internal subroutines takes place. Internal subroutines such as nonpublic methods,
interfaces are able to handle all types of data appropriately or not.
This step focuses on testing of control statements like loops and conditional statements to check the
efficiency and accuracy for different data inputs.
In the last step white box testing includes security testing to check all possible security loopholes by
looking at how the code handles security.
Advantages:-
Disadvantages:-
White box testing is too much time consuming when it comes to large-scale programming applications.
White box testing is much expensive and complex.
It can lead to production error because it is not detailed by the developers.
White box testing needs professional programmers who have a detailed knowledge and understanding of
programming language and implementation.
The black box test is based on the specification of requirements, so it is examined in the beginning.
53
Software Engineering (3150711) EN NO.
In the second step, the tester creates a positive test scenario and an adverse test scenario by selecting
valid and invalid input values to check that the software is processing them correctly or incorrectly.
In the third step, the tester develops various test cases such as decision table, all pairs test, equivalent
division, error estimation, cause-effect graph, etc.
The fourth phase includes the execution of all test cases.
In the fifth step, the tester compares the expected output against the actual output.
In the sixth and final step, if there is any flaw in the software, then it is cured and tested again.
Test procedure:-
The test procedure of black box testing is a kind of process in which the tester has specific knowledge
about the software's work, and it develops test cases to check the accuracy of the software's
functionality.
It does not require programming knowledge of the software. All test cases are designed by considering
the input and output of a particular function. A tester knows about the definite output of a particular
input, but not about how the result is arising.
There are various techniques used in black box testing for testing like decision table technique,
boundary value analysis technique, state transition, All-pair testing, cause-effect graph technique,
equivalence partitioning technique, error guessing technique, use case technique and user story
technique. All these techniques have been explained in detail within the tutorial.
Advantages:-
Disadvantages:-
54