Object Oriented Software Engineering - CCS356 - Notes - Unit 2 - Requirements Analysis and Specification
Object Oriented Software Engineering - CCS356 - Notes - Unit 2 - Requirements Analysis and Specification
Environmental Sciences
Professional English and Sustainability -
Professional English - - II - HS3252 Discrete Mathematics GE3451
I - HS3152 - MA3354
Statistics and Theory of Computation
Matrices and Calculus Numerical Methods - Digital Principles and - CS3452
3rd Semester
4th Semester
- MA3151 MA3251 Computer Organization
1st Semester
2nd Semester
8th Semester
6th Semester
www.BrainKart.com
1. Introduction
SOFTWARE REQUIREMENTS
The process of establishing the services that the customer requires from a system and the constraints
under which it operates and is developed Requirements may be functional or non-functional
Functional requirements describe system services or functions
Non-functional requirements are a constraint on the system or on the development process.
Types of requirements
1. User requirements
Statements in natural language (NL) plus diagrams of the services the system provides and its
operational constraints. Written for customers
2. System requirements
A structured document setting out detailed descriptions of the system services. Written as a contract
between client and contractor
3. Software specification
A detailed software description which can serve as a basis for a design or implementation. Written for
developers
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Definition:
The process of defining user expectations to build a new software product or to modify an existing
one is known as requirement analysis.
Sometimes known as requirement engineering requirements gathering, or requirements capture in
software engineering.
The tasks that go into determining the needs or conditions to meet for a new or altered product,
taking into account the potentially conflicting requirements of the various stakeholders, and
analyzing, documenting, validating, and managing software or system requirements are all included
in requirements analysis.
This exercise goes over all of the requirements and may provide a graphical representation of the
entire system. As a result, the project's understandability is predicted to improve significantly after
the study is completed.
We may also leverage the contact with the customer to clear up any confusion and determine which
requirements are more crucial than others.
Requirements engineering (RE) refers to the process of defining, documenting, and maintaining
requirements in the engineering design process. Requirement engineering provides the appropriate
mechanism to understand what the customer desires, analyzing the need, and assessing feasibility,
negotiating a reasonable solution, specifying the solution clearly, validating the specifications and
managing the requirements as they are transformed into a working system.Thus, requirement
engineering is the disciplined application of proven principles, methods, tools, and notation to
describe a proposed system's intended behavior and its associated constraints.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Software requirement specification is a kind of document which is created by a software analyst after
the requirements collected from the various sources - the requirement received by the customer
written in ordinary language. It is the job of the analyst to write the requirement in technical
language so that they can be understood and beneficial by the development team.
The models used at this stage include ER diagrams, data flow diagrams (DFDs), function
decomposition diagrams (FDDs), data dictionaries, etc.
Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling the requirements.
DFD shows the flow of data through a system. The system may be a company, an organization, a
set of procedures, a computer hardware system, a software system, or any combination of the
preceding. The DFD is also known as a data flow graph or bubble chart.
Data Dictionaries: Data Dictionaries are simply repositories to store information about all data items
defined in DFDs. At the requirements stage, the data dictionary should at least define customer data
items, to ensure that the customer and developers use the same definition and terminologies.
Entity-Relationship Diagrams: Another tool for requirement specification is the entity-relationship
diagram, often called an "E-R diagram." It is a detailed logical representation of the data for the
organization and uses three main constructs i.e. data entities, relationships, and their associated
attributes.
3.1 Software Requirement Validation:
After requirement specifications developed, the requirements discussed in this document are validated.
The user might demand illegal, impossible solution or experts may misinterpret the needs.
Requirements can be the check against the following conditions -
If they can practically implement
If they are correct and as per the functionality and specially of software
If there are any ambiguities
If they are full
If they can describe
3.2 Requirements Validation Techniques
Requirements reviews/inspections: systematic manual analysis of the requirements.
Prototyping: Using an executable model of the system to check requirements.
Test-case generation: Developing tests for requirements to check testability.
Automated consistency analysis: checking for the consistency of structured requirements
descriptions.
Requirement management is the process of managing changing requirements during the requirements
engineering process and system development.
New requirements emerge during the process as business needs a change, and a better understanding of
the system is developed.
The priority of requirements from different viewpoints changes during development process. The
business and technical environment of the system changes during the development.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Collection of software requirements is the basis of the entire software development project. Hence they
should be clear, correct, and well-defined.
Clear
Correct
Consistent
Coherent
Comprehensible
Modifiable
Verifiable
Prioritized
Unambiguous
Traceable
Credible source
There are several techniques available for elicitation, however, the commonly used techniques are
explained below:
1) Stakeholder Analysis
Stakeholders can include team members, customers, any individual who is impacted by the project or
it can be a supplier. Stakeholder analysis is done to identify the stakeholders who will be impacted
by the system.
2) Brainstorming
This technique is used to generate new ideas and find a solution for a specific issue. The members
included for brainstorming can be domain experts, subject matter experts. Multiple ideas and
information give you a repository of knowledge and you can choose from different ideas.
This session is generally conducted around the table discussion. All participants should be given an
equal amount of time to express their ideas.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
www.BrainKart.com
6) Interface Analysis
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Interface analysis is used to review the system, people, and processes. This analysis is used to identify how the
information is exchanged between the components. An Interface can be described as a connection between two
components. This is described in the below image: The interface analysis focus on the below questions:
Who will be using the interface?
What kind of data will be exchanged?
When will the data be exchanged?
How to implement the interface?
Why we need the interface? Can’t the task be completed without using the interface?
Benefits:
Provide missed requirements.
Determine regulations or interface standards.
Uncover areas where it could be a risk for the project.
Drawbacks:
The analysis is difficult if internal components are not available.
It cannot be used as a standalone elicitation activity.
7) Observation
The main objective of the observation session is to understand the activity, task, tools used, and events
performed by others.
The plan for observation ensures that all stakeholders are aware of the purpose of the observation session, they
agree on the expected outcomes, and that the session meets their expectations. You need to inform the
participants that their performance is not judged.
During the session, the observer should record all the activities and the time taken to perform the work
by others so that he/she can simulate the same. After the session, the BA will review the results and
will follow up with the participants. Observation can be either active or passive.
Active observation is to ask questions and try to attempt the work that other persons are doing.
Passive observation is silent observation i.e. you sit with others and just observe how they are doing
their work without interpreting them.
Benefits:
The observer will get a practical insight into the work.
Improvement areas can be easily identified.
Drawbacks:
Participants might get disturbed.
Participants might change their way of working during observation and the observer might not
get a clear picture.
Knowledge-based activities cannot be observed.
8) Prototyping
Prototyping is used to identify missing or unspecified requirements. In this technique, frequent demos
are given to the client by creating the prototypes so that client can get an idea of how the product will
look like. Prototypes can be used to create a mock-up of sites, and describe the process using diagrams.
Benefits:
Gives a visual representation of the product.
Stakeholders can provide feedback early.
Drawbacks:
If the system or process is highly complex, the prototyping process may become time-
consuming.
Stakeholders may focus on the design specifications of the solution rather than the
requirements that any solution must address.
9) Joint Application Development (JAD)/ Requirement Workshops
This technique is more process-oriented and formal as compared to other techniques. These are
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
structured meetings involving end-users, PMs, SMEs. This is used to define, clarify, and complete
requirements.
This technique can be divided into the following categories:
Formal Workshops: These workshops are highly structured and are usually conducted with the
selected group of stakeholders. The main focus of this workshop is to define, create, refine, and reach
closure on business requirements.
Business Process Improvement Workshops: These are less formal as compared to the above one.
Here, existing business processes are analyzed and process improvements are identified.
Benefits:
Documentation is completed within hours and is provided quickly back to participants for
review.
You can get on the spot confirmation on requirements.
Successfully gathered requirements from a large group in a short period.
Consensus can be achieved as issues and questions are asked in the presence of all the
stakeholders.
Drawbacks:
Stakeholder’s availability might ruin the session.
The success rate depends on the expertise of the facilitator.
A workshop motive cannot be achieved if there are too many participants.
10) Survey/Questionnaire
For Survey/Questionnaire, a set of questions is given to stakeholders to quantify their thoughts. After
collecting the responses from stakeholders, data is analyzed to identify the area of interest of
stakeholders.
Questions should be based on high priority risks. Questions should be direct and unambiguous. Once
the survey is ready, notify the participants and remind them to participate.
Two types of questions can be used here:
Open-Ended: Respondent is given the freedom to provide answers in their own words rather than
selecting from predefined responses. This is useful but at the same time, this is time- consuming as
interpreting the responses is difficult.
Close Ended: It includes a predefined set of answers for all the questions and the respondent has to
choose from those answers. Questions can be multiple choice or can be ranked from not important to
very important.
Benefits:
Easy to get data from a large audience.
Less time is required for the participants to respond.
You can get more accurate information as compared to interviews.
Drawback:
All the Stakeholders might not participate in the surveys.
Questions may not be clear to all the participants.
Open-ended questions require more analysis.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
A Software requirements specification document describes the intended purpose, requirements and
nature of a software to be developed. It also includes the yield and cost of the software.
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
State Diagram: Graphical representation of an FSM, showing states, transitions, and inputs.
State Table: Tabular representation of an FSM, showing transitions for each state and input
combination.
State Minimization: Technique to reduce the number of states in an FSM without changing its
behavior.
5.4 Practical Considerations:
State Explosion: Problem arising when the number of states in an FSM becomes too large, making it
difficult to manage.
Testing and Validation: Important steps in the design process to ensure that the FSM behaves as
expected.
Implementation: FSMs can be implemented using programming languages or specialized tools.
Advanced Topics:
Hierarchical FSMs: FSMs that can be decomposed into smaller, more manageable FSMs.
Mealy and Moore Machines: Variants of FSMs where the output depends on the current state
(Moore) or the current state and input (Mealy).
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
6. Petrinets
Petri nets — Formal technique for describing concurrent interrelated activities .
Invented by Carl Adam Petri, 1962
Consists of four parts
A set of places
A set of transitions
An input function
An output function
Originally of interest to automata theorists
Found wide applicability in computer science
Performance Evaluation
Operating ystems
Software Engineering
The Classical Petri Net Model:
A Petri net is a network composed of places (O) and transitions (∏)
Connections are directed and between a place and a transition, or a transition and a place (e.g.
Between “p1 and t1” or “t1 and p2” above)Tokens(.) are the dynamic objects. Another (equivalent)
notation is to use a solid bar for the transitions:
We may use either notation since they are equivalent, sometimes one makes the diagram easier to read
than the other.
The state of a Petri net is determined by the distribution of tokens over the places (we could represent
the above state as (1, 2, 1, 1) for (p1, p2, p3, p4))
Transition t1 has three input places (p1, p2 and p3) and two output places (p3 and p4). Place p3 is both
an input and an output place of t1.
Enabling Condition:
Transitions are the active components and places and tokens are passive components.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Firing is atomic (only one transition fires at a time, even if more than one is enabled)
Software Developers use specialized diagrams to model the system that they are working on
throughout the development process. Each model produced represents part of the system or some
aspect of it, such as the structure of the stored data, or the way that operations are carried out. Each
model provides a view of the system.
www.BrainKart.com
8. Use Cases:
Introduction
Once you have developed an initial set of functional requirements during the
Requirements Gathering phase you will have a good understanding of the intended
behavior of the system. This includes what functionality is desired, what constraints
are imposed, and what business objectives will be satisfied. However, one
shortcoming of a traditional 'laundry-list' of requirements is that they are static and
don't adapt to the different business processes that need to be supported by one
feature.
For example, in a fictitious online library system, the functionality for managing
returns would need to handle the separate situations where a borrower returns a book
early and when they return it late. Although the same functionality is involved, they
are different situations and the system would need to handle the separate conditions
in each use case.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Definition:
A use case diagram of a software system describes the functionalities to be implemented by the software
system. It is at a relatively higher level of abstraction compared to the other UML diagrams and will not
include implementation details. Hence, it could be considered as a schematic view of the requirements for the
software system. Together with the narratives for the use cases, the use case view provides a complete set of
requirements for the system.
What is a Use Case?
A use case is a definition of a specific business objective that the system needs to accomplish. They do this by
describing the various external actors (or entities) that exist outside of the system, together with the specific
interactions they have with the system to accomplish the business objective.
Why Are They Important?
The major benefits that come with the creation of use cases are in the planning stage of development. Factors
such as requirements gathering, defining scope, and roadmap creation are all improved through these use cases.
They also allow the team to determine the best possible outcome scenario, accurately depicting the intended
design and use of the system. When it comes to less-than-ideal use cases, the brainstorming of these alternative
possible outcomes helps developers identify potential problems before they happen.
How to Write a Use Case
Thankfully, writing a use case can be broken down into three basic steps or questions that need to be answered:
These questions form the basis of any successful use case, and should be used as a starting guide when writing
your own. Beyond that, use cases can be as high-level or detailed as they need to be for the audience and
system. The key to an effective and helpful use case is to carefully consider the flow of events for a typical user,
and use those to form the use case.
What to Include in a Use Case
As you’re writing your use case, there are several components that should typically be included. These range
from the identifier of the use case to who are involved and alternative solutions:
Use case number - assigning a number to each use case helps organize your records and can be sorted
in chronological order or by other criteria depending on how the developers decide to label them.
Use case name, description, and goal - giving a clear and concise name, description, and goal to each
use case also helps organize documentation while preventing scope creep.
Actor - this is someone or something that performs a behavior or action (can be a person or an object).
If we take an e-commerce site as an example, actors might include buyers, credit card companies,
shipping companies, and more.
Stakeholders - anyone with interests in the functionality and success of the system are called
stakeholders, and are often indirectly involved (not users but those that benefit from how the system
functions).
Primary actor - this is someone or something whose goals are fulfilled by the system in question, and
while they don’t always start the use case, it’s fairly common for them to do so.
Pre-conditions - the statements about what needs to happen before the use case starts.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Triggers - used to start a use case, triggers are events that initiate the steps of a scenario.
Post-conditions - the statements about the possible states that the system can be in after the use case
ends.
Basic flow - also called the main success scenario, this is a use case path that works perfectly and as
intended with no exceptions (this is often used as a base to create alternative paths).
Alternative path (or flow) -a variation of the main success scenario, these usually show what happens
when there’s an error or unexpected event in a use case.
Types of Use Case
Use cases can be described either at an abstract level (known as a business use-case) or at an implementation-
specific level (known as a system use case). Each of these is described in more detail below:
Business Use Case - also known as an "Abstract-Level Use Case", these use cases are written in a
technology-agnostic manner, simply referring to the high-level business process being described
(e.g. "book return") and the various external actors that take part in the process (e.g. "borrower",
"librarian", etc.). The business use case will define the sequence of actions that the business needs to
perform to give a meaningful, observable result to the external entity.
System Use Case - also known as an "Implementation Use Case", these use cases are written at a more
granular level of detail than the business use case and refer to specific processes that will be carried
out by different parts of the system. For example, a system use case might be "return
book when overdue". It would then describe the interactions of the various actors (borrower,
librarian, etc.) with the system in carrying out the end-to-end process.
Symbols in Use Case diagram : Actor:
An actor represents an external entity that interacts with a system. Since it is external to the system, the actor
itself is not fully modelled by the system.
User of a system is a typical example of an actor. Other types of actors include software systems that are being
integrated with the current system (e.g., a network protocol, a database system, a file system), external hardware
such as a sensor and so on.
Actors are classified into primary actors (also called active actors) and secondary actors (also called passive
actors)
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Use Case:
A use case represents a functionality (typically a requirement) that is expected to be implemented by
the system. The details of a use case, other than its unique name, are not represented visually in the
diagram; such details are given in use case narratives. Depending on the application domain and the
choice made by the designer, a use case may be broken down into several use cases which are
connected through <<include>> or <<extend>> relationships (described later in this document).
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Generalization:
This represents a relationship between actors or between use cases. If two actors are related through this
relationship, then the actor (or use case) at the tail end of the arrow (connected to the base of the
triangle) is a specialized version of the actor (or use case) at the other end.
Association:
This represents a two-way communication between an actor and a use case and hence is a binary
relation. Since it is a two-way communication, for every use case initiated by a primary actor, the
actor must get a response back from the use case.
Extend relationship: The use case is optional and comes after the base use case. It is represented by a
dashed arrow in the direction of the base use case with the notation
<<extend>> .
Include relationship: The use case is mandatory and part of the base use case.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
UML
Unified Modeling Language (UML) is a general purpose modelling language. The main aim of UML is to
define a standard way to visualize the way a system has been designed. It is quite similar to blueprints used in
other fields of engineering.
UML is not a programming language, it is rather a visual language. We use UML diagrams to portray the
behavior and structure of a system. UML helps software engineers, businessmen and system architects with
modelling, design and analysis. The Object Management Group (OMG) adopted Unified Modelling Language
as a standard in 1997. Its been managed by OMG ever since. International Organization for Standardization
(ISO) published UML as an approved standard in 2005. UML has been revised over the years and is reviewed
periodically.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Businessmen do not understand code. So UML becomes essential to communicate with non programmers
essential requirements, functionalities and processes of the system.
A lot of time is saved down the line when teams are able to visualize processes, user interactions and
static structure of the system.
UML is linked with object oriented design and analysis. UML makes the use of elements and forms
associations between them to form diagrams. Diagrams in UML can be broadly classified as:
Structural Diagrams – Capture static aspects or structure of a system. Structural Diagrams include:
Component Diagrams, Object Diagrams, Class Diagrams and Deployment Diagrams.
Behavior Diagrams – Capture dynamic aspects or behavior of the system. Behavior diagrams include:
Use Case Diagrams, State Diagrams, Activity Diagrams and Interaction Diagrams.
The image below shows the hierarchy of diagrams according to UML 2.2
Class – A class defines the blue print i.e. structure and functions of an object.
Objects – Objects help us to decompose large systems and help us to modularize our system.
Modularity helps to divide our system into understandable components so that we can build our
system piece by piece. An object is the fundamental unit (building block) of a system which is
used to depict an entity.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Inheritance – Inheritance is a mechanism by which child classes inherit the properties of their parent
classes.
Abstraction – Mechanism by which implementation details are hidden from user.
Encapsulation – Binding data together and protecting it from the outer world is referred to as
encapsulation.
Polymorphism – Mechanism by which functions or entities are able to exist in different forms.
Additions in UML 2.0 –
Software development methodologies like agile have been incorporated and scope of original UML
specification has been broadened.
Originally UML specified 9 diagrams. UML 2.x has increased the number of diagrams from 9 to 13.
The four diagrams that were added are : timing diagram, communication diagram, interaction
overview diagram and composite structure diagram. UML 2.x renamed statechart diagrams to state
machine diagrams.
UML 2.x added the ability to decompose software system into components and sub- components.
Class Diagram – The most widely use UML diagram is the class diagram. It is the building block of
all object oriented software systems. We use class diagrams to depict the static structure of a system
by showing system’s classes,their methods and attributes. Class diagrams also help us identify
relationship between different classes or objects.
Composite Structure Diagram – We use composite structure diagrams to represent the internal
structure of a class and its interaction points with other parts of the system. A composite structure
diagram represents relationship between parts and their configuration which determine how the
classifier (class, a component, or a deployment node) behaves. They represent internal structure of a
structured classifier making the use of parts, ports, and connectors. We can also model collaborations
using composite structure diagrams. They are similar to class diagrams except they represent
individual parts in detail as compared to the entire class.
Object Diagram – An Object Diagram can be referred to as a screenshot of the instances in a system
and the relationship that exists between them. Since object diagrams depict behaviour when objects
have been instantiated, we are able to study the behaviour of the system at a particular instant. An
object diagram is similar to a class diagram except it shows the instances of classes in the system. We
depict actual classifiers and their relationships making the use of class diagrams. On the other hand,
an Object Diagram represents specific instances of classes and relationships between them at a point
of time.
Component Diagram – Component diagrams are used to represent how the physical components in
a system have been organized. We use them for modelling implementation details. Component
Diagrams depict the structural relationship between software system elements and help us in
understanding if functional requirements have been covered by planned development. Component
Diagrams become essential to use when we design and build complex systems. Interfaces are used by
components of the system to communicate with each other.
Deployment Diagram – Deployment Diagrams are used to represent system hardware and its
software.It tells us what hardware components exist and what software
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
components run on them.We illustrate system architecture as distribution of software artifacts over
distributed targets. An artifact is the information that is generated by system software. They are primarily
used when a software is being used, distributed or deployed over multiple machines with different
configurations.
Package Diagram – We use Package Diagrams to depict how packages and their elements have
been organized. A package diagram simply shows us the dependencies between different packages
and internal composition of packages. Packages help us to organise UML diagrams into
meaningful groups and make the diagram easy to understand. They are primarily used to organise
class and use case diagrams.
Behavior Diagrams –
State Machine 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.Sosimply, a state diagram is
used to model the dynamic behavior of a class in response to time and changing external stimuli.
Activity Diagrams – We use Activity Diagrams to illustrate the flow of control in a system. We
can also use an activity diagram to refer to the steps involved in the execution of a use case. We
model sequential and concurrent activities using activity diagrams. So, we basically depict
workflows visually using an activity diagram.An activity diagram focuses on condition of flow and
the sequence in which it happens. We describe or depict what causes a particular event using an
activity diagram.
Use Case Diagrams – Use Case Diagrams are used to depict the functionality of a system or a part
of a system. They are widely used to illustrate the functional requirements of the system and its
interaction with external agents(actors). A use case is basically a diagram representing different
scenarios where the system can be used. A use case diagram gives us a high level view of what
the system or a part of the system does without going into implementation details.
Sequence Diagram – A sequence diagram simply depicts interaction between objects in a
sequential order i.e. the order in which these interactions take place.We can also use the terms
event diagrams or event scenarios to refer to a sequence diagram. Sequence diagrams describe how
and in what order the objects in a system function. These diagrams are widely used by
businessmen and software developers to document and understand requirements for new and
existing systems.
Communication Diagram – A Communication Diagram(known as Collaboration Diagram in
UML 1.x) is used to show sequenced messages exchanged between objects. A communication
diagram focuses primarily on objects and their relationships. We can represent similar information
using Sequence diagrams,however, communication diagrams represent objects and links in a free
form.
Timing Diagram – Timing Diagram are a special form of Sequence diagrams which are used to
depict the behavior of objects over a time frame. We use them to show time and duration
constraints which govern changes in states and behavior of objects.
Interaction Overview Diagram – An Interaction Overview Diagram models a sequence of
actions and helps us simplify complex interactions into simpler occurrences. It is a mixture of
activity and sequence diagrams.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
AIM:
To implement a software for Conference management system
PROBLEM STATEMENT:
The Conference Management System is an online website in which candidate can
submit the paper and register themselves and then attend the conference. The paper will be reviewed. The
details of the conference, date and time will be made available to them through the website. After getting the
confirmation details the candidate should submit the revised and camera ready paper. Then the registration
process will be done.
PURPOSE
The purpose of the conference management system is that the system can easily
review the process. The main process in this document is the submission of paper by the candidate, reviewing
process by the reviewer and sending of acknowledgement to the candidates whose paper is selected.
SCOPE
The scope of this conference management process is to select the best candidate from the list of candidates
based on their performance in the process.
TOOLS TO BE USED
Eclipse IDE (Integrated Development Environment)
Rational Rose tool (for developing UML Patterns)
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
OVERVIEW
SRS includes two sections overall description and specific requirements – Overall Description will describe
major role of the system components and inter- connections.
Specific Requirements will describe roles & functions of the actors.
OVERALL DESCRIPTION
PRODUCT PERSPECTIVE
The process of the candidates is to login the conference system and submit the paper through online. Then the
reviewer reviews the paper and sends the acknowledgement to the candidate either paper selected or rejected.
SOFTWARE INTERFACE
Front End Client - The exporter online interface is built using JSP and HTML.
Web Server – Apache Tomcat Server (Oracle Corporation)
Back End - Oracle 11g database
HARDWARE INTERFACE
The BPO system’s server is directly connected to the client systems via ftp. The client systems have access to
the database in the server.
SYSTEM FUNCTIONS
This process of on conference management system are described sequentially through following steps,
The candidate login to the conference management system.
The paper title is submitted.
The paper is been reviewed by the reviewer.
The reviewer sends acknowledgement to the candidate.
Based on the selection, the best candidate is selected.
Finally the candidate registers all details
USER CHARACTERISTICS
Candidate - Logins the conference system and submits the paper then do the registration process.
Reviewer – Review the paper, select best candidate and send acknowledgement to them.
CONSTRAINTS
Although the security is given high importance, there is always a chance of intrusion in the web world
which requires constant monitoring.
The user has to be careful while submitting the information. Much care is required.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
USECASE DIAGRAM:
A use case is a methodology used in system analysis to identify, clarify, and
organize system requirements. The use case is made up of a set of possible sequences of interactions between
systems and users in a particular environment and related to a particular goal. It is represented using ellipse.
Actor is any external entity that makes use of the system being modeled. It is represented using stick figure.
The conference management system use cases are:
Paper submission
Review the paper
Send confirmation details
Send revised paper
Registration ACTORS:
Actors are as follows:
Candidate
Reviewer
ACTORS DOCUMENTATION:
Candidate - Logins the conference system and submits the paper then do the registration process.
Reviewer – Review the paper, select best candidate and send acknowledgement to them.
Paper submission – Candidate submits the paper.
Review the paper– The paper is been reviewed by the reviewer and the paper is selected.
Paper confirmation details – The reviewer can send the confirmation details to the candidate.
Revised and camera ready paper – After the paper is selected and the camera ready paper should be
submitted to the reviewer by candidate.
Registration – After submitting the revised paper the candidate wants to register.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Functional Modelling is represented through a hierarchy of DFDs. The DFD is a graphical representation of a
system that shows the inputs to the system, the processing upon the inputs, the outputs of the system as well as
the internal data stores. DFDs illustrate the series of transformations or computations performed on the objects
or the system, and the external controls and objects that affect the transformation.
Processes,
Data Flows,
Actors, and
Data Stores.
Constraints, and
Control Flows.
Processes
Processes are the computational activities that transform data values. A whole system can be visualized as a
high-level process. A process may be further divided into smaller components. The lowest-level process may
be a simple function.
Representation in DFD − A process is represented as an ellipse with its name written inside it and contains a
fixed number of input and output data values.
Example − The following figure shows a process Compute_HCF_LCM that accepts two integers as inputs and
outputs their HCF (highest common factor) and LCM (least common multiple).
Data Flows
Data flow represents the flow of data between two processes.
Representation in DFD − A data flow is represented by a directed arc or an arrow, labelled with the
name of the data item that it carries.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
The output value is sent to several places as shown in the following figure. Here, the output arrows
are unlabelled as they denote the same value.
The data flow contains an aggregate value, and each of the components is sent to different places as
shown in the following figure. Here, each of the forked components is labelled.
Actors
Actors are the active objects that interact with the system by either producing data and inputting them
to the system, or consuming data produced by the system.
Representation in DFD − An actor is represented by a rectangle. Actors are connected to the inputs
and outputs and lie on the boundary of the DFD.
Example − The following figure shows the actors, namely, Customer and Sales_Clerk in a counter
sales system.
Data Stores
Data stores are the passive objects that act as a repository of data.
Representation in DFD − A data store is represented by two parallel lines containing the name of
the data store. Each data store is connected to at least one process. Input arrows contain information
to modify the contents of the data store, while output arrows contain information retrieved from the
data store. When a part of the information is to be retrieved, the output arrow is labelled. An
unlabelled arrow denotes full data retrieval. A two-way arrow implies both retrieval and update.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Constraints
Constraints specify the conditions or restrictions that need to be satisfied over time.
Control Flows
A process may be associated with a certain Boolean value and is evaluated only if the value is true,
though it is not a direct input to the process. These Boolean values are called the control flows.
Representation in DFD − Control flows are represented by a dotted arc from the process producing
the Boolean value to the process controlled by them.
Example − The following figure represents a DFD for arithmetic division. The Divisor is tested for
non-zero. If it is not zero, the control flow OK has a value True and subsequently the Divide process
computes the Quotient and the Remainder.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
ARGO UML:
ArgoUML is written in 100% pure Java, it should run on any machine with Java
installed. Java version 5 or later is needed. You may have this in place, but if not
the latest version can be downloaded free from www.java.com. Note that you only
need the Java Runtime Environment (JRE), there is no need to download the whole
Java Development Kit (JDK).
Platform: Java Platform, Standard Edition
Initial release date: April 1999
License: Eclipse Public License 1.0
Programming languages: Unified Modeling Language, Java
LOGO:
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Pros
Open-source
Runs on many different platforms, including the latest version of Windows
Supports many programming languages
Cons
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
StarUML − StarUML is an open source project to develop fast, flexible, extensible, featureful, and
freely-available UML/MDA platform running on Win32 platform.
ArgoUML − ArgoUML is the leading open source UML modeling tool and includes support for all
standard UML diagrams.
Umbrello UML Modeller − Umbrello UML Modeller is a Unified Modelling Language diagram
programme for KDE.
Acceleo − Acceleo is easy to use. It provides off the shelf generators (JEE, .Net, Php...) and template
editors for Eclipse.
GenMyModel − An online UML modeling tool
StarUML
StarUML is an open-source software modeling tool, which is provided by MKLab. It has come up with eleven
different types of modeling diagrams. It also supports UML2.0 specified diagrams.
Features:
It let you create Object, Use case, Deployment, Sequence, Collaboration, Activity, and Profile
diagrams.
It is a UML 2.x standard compliant.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Umbrello
Umbrello is a Unified Modeling language tool, which is based on KDE technology. It supports both reverse
engineering and code generation for C++ and Java.
Features:
It implements both structural and behavioral diagrams.
It imports C++ and can export up to a wider range of languages.
The UML designer tool helps in modifying and envisioning UML2.5 models. It allows you to create all of the
UML diagrams.
Features:
It provides transparency to work on DSL as well as UML models.
With the UML designer tool, the user can reuse the provided presentations.
It implements Component, Class, and Composite structure diagrams.
To start working with DSL, you can use UML legacy models.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Altova
Altova has provided UModel, which is another UML software modeling tool. It supports all types of 14 UML2
diagrams as well as SysML for the embedded systems. It also holds up for business process modeling for
enterprise analysts. It generates visually designed software models by incorporating Java, C++, and C #or
Visual Basic .NET.
Features:
It provides a dedicated toolbar for an individual diagram.
It offers unlimited undo/redo, which inspires to discover new ideas.
In UML diagrams, you can easily add a hyperlink to any element.
It also provides an intuitive color-coding, icons, customized alignment grid, and cascading styles for
colors, fonts line size.
Download link: https://www.altova.com/umodel
Umple
Umple is an object-oriented and modeling language that textually supports state diagrams and class diagrams. It
adapts JAVA, C++, and PHP, which results in more readable and short lines of code.
Features:
It includes Singleton pattern, keys, immutability, mixins, and aspect-oriented code injection, which
makes UML more understandable to the users.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Visual Paradigm
A visual Paradigm is a tool that supports SysML, UML2, and Business Process Modeling Notation from Object
Management Group. It involves report generation as well as code generation.
Features:
It supports all of the 14 UML2 diagrams.
It supports BPMN 2.0, ERD, ORMD, SysML.
WhitestarUML
Whitestar UML is a division of StarUML 5.0 that offers bug fixes and has improved its compatibility with the
latest operating systems, i.e., support of Unicode strings or simply being developed and tested on Windows 7 and
8.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
Features:
o It offers a refreshed user interface.
o It completely handles the functioning of Unicode strings.
o It provides support on Windows 7, 8, and 10.
o On-demand upload and download of units.
o It directly integrates the ERD profile and extends to generate and parse the SQL tables.
1. Draw.IO
Draw.io is an open-source modeling tool to create flowcharts, process diagrams, UML, ER, and
network diagrams.
Features:
o Since it is very easy to use, it provides an intuitive interface, drag& drop functionality, a
huge amount of templates, and also, it does not need to install.
o It offers security and reliability.
o It can be used anywhere, both online and offline.
o It is compatible with every browser.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
2. GenMyModel
Features:
o It provides an online platform.
o It generates online code.
o It provides a centralized repository for easy and simultaneous model collaboration.
o You can import or export as a PDF.
3. Latino
It is an online platform that offers UML tools for faster development of UML
diagrams. It is based on UMLet, which is an eclipse plugin or work as a standalone
tool.
Features:
It allows you to export the diagram as XML or any other image file such
as Gif, JPEG, or SVG format.
It is an installation free web application.
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
lOMoARcPSD|45374298
www.BrainKart.com
https://play.google.com/store/apps/details?id=info.therithal.brainkart.annauniversitynotes
Click on Subject/Paper under Semester to enter.
Environmental Sciences
Professional English and Sustainability -
Professional English - - II - HS3252 Discrete Mathematics GE3451
I - HS3152 - MA3354
Statistics and Theory of Computation
Matrices and Calculus Numerical Methods - Digital Principles and - CS3452
3rd Semester
4th Semester
- MA3151 MA3251 Computer Organization
1st Semester
2nd Semester
8th Semester
6th Semester