Sei sulla pagina 1di 30

CHAPTER 1

INTRODUCTION TO UML

UML is the international standard notation for object-oriented analysis and design.
The heart of object-oriented problem solving is the construction of a model. The model
abstracts the essential details of the underlying problem from its usually complicated real
world. The Unified Modelling Language (UML) is a standard language for writing software
blueprints.

1.1 HISTORY OF UML:

The 1990s was the era of development of object-oriented languages such as C++.
These object-oriented languages were used to create complex but compelling systems.

It was invented by software engineers Grady Booch , Ivar Jacobson, and James
Rumbaugh of Rational software during 1994 and 1995. It was under development until
1996.Each of UML inventors, viz, Grady Booch , Ivar Jacobson, and James Rumbaugh had a
fantastic idea for designing a language which will reduce the complexity.

 Booch’s method was very flexible to work with during the design and construction of
objects.
 Jacobson’s method provided a great way to work around use-cases. It also has a
powerful approach for high-level design.
 Rumbaugh’s method turned out to be very useful while handling sensitive systems.

UML was recognized as a standard by Object Management Group (OMG) during


1997. Object Management Group is responsible for managing UML ever since it was adopted
as a standard.

In 2005, the International Organization for Standardization approved UML as an ISO


standard. It is used in various industries for creating object-oriented models.

1.1.1 DEFINATION OF UML :

UML stands for Unified Modelling Language. It is a standard which is mainly used
for creating object-oriented, meaningful documentation models for any software system
present in the real world. It provides us a way to develop rich models that describe the
working of any software/hardware systems.

1
1.1.2 CHARACTERISTICS OF UML:

 It is a generalized modelling language.


 It is different from software programming languages such as Python, C, C++, etc.
 It is a pictorial language which can be used to generate powerful modelling elements.
 It is related to object-oriented designs and analysis.
 It has unlimited applications even outside the software industry. It can be used to
visualize the workflow of a factory.

1.1.3 ADVANTAGES :

 Provides standard for software development.


 Reducing of costs to develop diagrams of UML using supporting tools.
 Development time is reduced.
 The past faced issues by the developers are no longer exists.
 Has large visual elements to construct and easy to follow.

1.2 UML TOOLS :


There are many tools available in the market for designing UML diagrams. Following
is a curated list of Top 28 handpicked UML tools with popular features and latest download
links. This comparison list contains open source as well as commercial tools.

1.2.1 STARUML :

STARUML is an open source software modelling tool. It provides eleven types of


diagram. STARUML 2 is compatible with UML 2.x versions.

Features:

 Allows you to create Obje3ct, Use case, Deployment, Seque3nce, Communication,


Activity, and profile Diagram.
 Allows you to discover and install third-party extensions.
 Work with same UX in multiple platforms including macOS, Windows, and Linux.
 No limit for using this commercial software for evaluation.

2
1.2.2 UMBRELLO:

Umbrello is a UML modelling tool. It runs under KDE and Linux. The tool also
supports code generation as well as reverse engineering for C++ and Java.

Features:

 It allows you to create diagrams of software and another system in a standard format
 It helps you to check the screenshot to see umbrello in action.
 Offers handbook to give instruction to umbrello and UML modelling.

1.2.3 UML DESIGNER TOOL:

UML Designer tool offers a set of common diagrams to work with UML 2.5 models.
The tool provides an easy method for the transition from UML to domain-specific modelling.

Features:

 Allows user to re-use provided representations and work in total transparency on both
DSL and UML models
 Helps you to create a Class diagram, Component Diagram, and composite structure
Diagram
 Allows you to use legacy UML models and start working with DSL.

1.2.4 ALTOVA:

AltovaU Model is another useful UML tool which makes visual software design
practical for any project. Visually design application models in UML which can be generated
using Java, C++, C#, or Visual Basic.

3
Features:

 Intuitive Visual Modelling for all UML Diagrams


 Helper windows allow you to build your desired models.
 It allows you to add hyperlinks to any element in any UML diagram.
 You can assign an element to the specific layer, and layers can be locked to prevent
changes.

1.2.5 UMPLE:

Umple is an open source model for integrating textual UML constructs in


programming languages, code generation or using simple UML modelling method.

Features:

 It allows developers to embed modelling concepts patterns, generation templates, and


other abstractions in traditional code.
 Umple tool helps users to learn UML faster.
 The tool can work’s online, as Eclipse plugin, and also stand-alone command-line Jar.

1.2.6 VISUAL PARADIGM:

Visual Paradigm is a software design tool which is tailored for engine software
projects. This UML tool helps the software development team to a model business
information system and development processes.

Features:

 It offers support for BPMN, UML, ERD, DFD, SysML.


 It offers a complete tool like for process analysis, system design, database design, etc.
 Offers user story feature to capture and maintain user's needs.

4
1.2.7 WHITESTARUML:

WhiteStar UML is another important Universal modelling tool which offers all the
feature which can be adapted to the modern environment like the support of Unicode strings.

Features:

 Windows 7, 8, 10 versions supported.


 It provides the best functionality expected from a UML tool like a large selection of
supported diagrams.
 Good usability giving the overall look and feel of a serious programming
environment.

1.2.8 DRAW.IO:

Draw.IO is a free online UML tool. It allows users to create and manage the drawing
easily these tools. A lot of the wide and early share available with this tool.

Features:

 No limit on the number of sizes


 Templates are present in software design itself.
 Allows you to save the model in your preferred location

1.2.9 GENMYMODEL:

5
GenMy Model began as a UML tool but, today It is expanded to cover also business
modelling with Archimate and BPMN support. It offers a centralized model repository which
allows easy and simultaneously models collaboration.

Features:

 Share your knowledge with versioning and access right management.


 Useful for presentations to management and project stakeholders.
 Helps you to combines the power of desktop modelling tools with a modern web
solution.
 Allows you to directly import or export as PDF documents.

1.2.10 UMLETINO:

It is accessible to the user as an open source UML tool for developing UML diagrams.
It can directly run in your browser, and it does not need any installations.

Features:

 Diagrams can be exported as XML or any other image files.


 Allows you to store diagrams with other teammates
 Offers you to export diagrams in SVG, Gif or JPEG format.

1.3 UML BUILDING BLOCKS:

UML stands for unified modelling language which revolves around various blocks to
generate a single model. Building blocks are the things required to develop one full UML
model diagram. It is an essential part of every UML diagram.

Following are the basic UML building blocks:

1. Things
2. Relationships
3. Diagrams

Let us study in depth the building blocks of a UML diagram.

6
1.3.1 THINGS:

A thing can be described as any real-world entity or an object. Things are divided into
various categories in UML as follows,

 Structural things
 Behavioral things
 Grouping things
 Annotational things

1.3.1.1 STRUCTURAL THINGS:

A structural thing is used to describe the static part of a model. It is used to represent
the things that are visible to human eyes. Structural things are all about the physical part of a
system. It is the noun of a UML model, such as a class, object, interface, collaboration, use
case, component, and a node.

Structural things consist of:

CLASS:

A class is used to represent various objects. It is used to define the properties and
operations of an object. In UML, we can also represent an abstract class. A class whose
functionalities are not defined is called an abstract class. Any UML class notation is generally
expressed as follows,

UML Class Symbol


OBJECT:

An object is an entity which is used to describe the behavior and functions of a


system. The class and object have the same notations. The only difference is that an object
name is always underlined in UML.

7
The notation of any object in UML is given below.

UML Object Symbol

INTERFACE:

An interface is similar to a template without implementation details. A circle notation


represents it. When a class implements an interface, its functionality is also implemented.

UML Interface Symbol

COLLABORATION:

It is represented by a dotted ellipse with a name written inside it.

UML Collaboration Notation

USE-CASE:

Use-cases are one of the core concepts of object-oriented modelling. They are used to
represent high-level functionalities and how the user will handle the system.

8
UML Use Case

ACTOR:

It is used inside use case diagrams. The actor is an entity that interacts with the
system. A user is the best example of an actor. The actor notation in UML is given below.

UML Actor

COMPONENT:

A component notation is used to represent a part of the system. It is denoted in UML


like given below,

UML Component

Node:

A node is used to describe the physical part of a system. A node can be used to
represent a network, server, routers, etc. Its notation is given below.

9
UML Node

DEPLOYMENT DIAGRAM:

It represents the physical hardware on which system is installed. A deployment


diagram represents the physical view of a system. It denotes the communication and
interaction between various parts of the system.

A deployment diagram consists of the following notations:

1. A node
2. A component
3. An artifact
4. An interface

Deployment Diagram

1.3.1.2 BEHAVIORAL THINGS:

They are the verbs of a UML model, such as interactions, activities and state
machines. Behavioral things are used to represent the behavior of a system. Behavioral things
consist of:

STATE MACHINE:

It used to describe various states of a single component throughout the software


development life cycle. It is used to capture different states of a system component.

10
State Machine

ACTIVITY DIAGRAM:

An activity diagram is used to represent various activities carried out by different


components of a system. It is denoted the same as that of the state machine diagram.

Activity diagram mainly contains initial state, final state, a decision box, and an action
notation.

Activity Diagram

11
INTERACTION DIAGRAM:

Interaction diagrams are used to visualize the message flow between various
components of a system.

 Sequence diagram: A sequence diagram shows interactions between one or more


lifelines within real time.

The notation of a sequence diagram is given below,

Interaction Diagram

1.3.1.3 GROUPING THINGS:

It is the package which is used to group semantically related modelling elements into
a single cohesive unit. The package is the only grouping thing available in the UML.

12
1.3.1.4 ANNOTATIONAL THINGS:

It is like a note, which may be written to the model to capture some vital information.
It is similar to the yellow sticky note.

1.3.2 RELATIONSHIPS:

The relationship allows you to show on a model how two or more things relate to each
other. The relationship in UML will enable you to capture meaningful connections between
things. It shows how each element is associated with each other and how this association
describes the functionality of an application.

Relationships in UML are categorized as follows,

 Association relationship
 Dependency relationship
 Generalization relationship
 Realization relationship

1.3.2.1 ASSOCIATION RELATIONSHIP:

It is a set of links that connect elements of the UML model. It also defines how many
objects are taking part in that relation. It illustrates how many elements are participating in a
particular interaction.

It is denoted as a dotted line with arrowheads on both sides. Both the sides contain an
element which describes the relationship. A new term multiplicity is introduced that tells us
how many objects of a particular element are associated.

Association relationship is denoted as follows,

13
1.3.2.2 DEPENDENCY RELATIONSHIP:

In this kind of a relationship, the source element is dependent upon the target element
and may be affected by changes to it. It is one of the most important notations of UML. It
defines the direction of a dependency from one object to another.It is denoted by a dotted line
with an arrow at one side.

Dependency relationship is denoted as follows,

1.3.2.3 GENERALIZATION RELATIONSHIP:

It is also called as a parent-child relationship. It is a relationship between a general


thing and a more specific kind of a thing. This type of relationship is used to represent the
inheritance concept.It is denoted by a straight line with a hollow arrowhead at one side.

Generalization relationship is denoted as follows,

1.3.2.4 REALIZATION RELATIONSHIP:

In this, one element describes some responsibility which is not implemented and the
other elements implement the functionality mentioned by the first element. Realization
relationship is widely used while denoting interfaces.It is denoted as a dotted line with a
hollow arrowhead at one end.

Realization relationship is denoted as follows:

1.3.3 DIAGRAMS:

UML diagrams are divided into three different categories such as,

1. Structural diagram
2. Behavioral diagram
3. Interaction diagram

1.3.3.1 STRUCTURAL DIAGRAMS:

Structural diagrams are used to represent a static view of a system. It represents a part
of a system that makes up the structure of a system. A structural diagram shows various
objects within the system.

14
Following are the various structural diagrams in UML:

 Class diagram
 Object diagram
 Package diagram
 Component diagram
 Deployment diagram

CLASS DIAGRAM:

A class diagram in the Unified Modelling Language is a type of static structure


diagram that describes the structure of a system by showing the system's classes, their
attributes, operations, and the relationships among objects.

Class Diagram

1.3.3.2 BEHAVIORAL DIAGRAMS:

Any real-world system can be represented in either a static form or a dynamic form. A
system is said to be complete if it is expressed in both the static and dynamic ways. The
behavioral diagram represents the functioning of a system.

UML diagrams that deals with the static part of a system are called structural
diagrams. UML diagrams that deals with the moving or dynamic parts of the system are
called behavioral diagrams.

Following are the various behavioral diagrams in UML:

 Activity diagram
 Use case diagram
 State machine diagram

15
ACTIVITY DIAGRAM:

Activity diagram is another important diagram in UML to describe the dynamic


aspects of the system. Activity diagram is basically a flowchart to represent the flow from
one activity to another activity. The activity can be described as an operation of the system.
The control flow is drawn from one operation to another.

Activity Diagram

USE CASE DIAGRAM:

Use Case diagrams are defined as diagrams that capture the system's functionality and
requirements in UML. Use-cases are the core concepts of Unified Modelling language
modelling.

Use Case Diagram

STATE MACHINE DIAGRAM:

State machine diagrams are also called as state chart diagrams. State machine
diagrams are used to capture the behavior of a software system. UML State machine
diagrams can be used to model the behavior of a class, a subsystem, a package, or even an
entire system. It is also called a State chart or State Transition diagram.

16
State Machine diagram

1.3.3.3 INTERACTION DIAGRAMS:

Interaction diagram is nothing but a subset of behavioral diagrams. It is used to


visualize the flow between various use case elements of a system. Interaction diagrams are
used to show an interaction between two entities and how data flows within them.

Following are the various interaction diagrams in UML:

 Timing diagram
 Sequence diagram
 Collaboration diagram

SEQUENCE DIAGRAM:

The purpose of a sequence diagram in UML is to visualize the sequence of a message


flow in the system. The sequence diagram shows the interaction between two lifelines as a
time-ordered sequence of events.

17
Sequence Diagram

COLLABORATION DIAGRAM:

A collaboration diagram is required to identify how various objects make up the


entire system. They are used to understand the object architecture within a system rather than
the flow of a message in a sequence diagram.

Collaboration Diagram

18
CHAPTER 2
COURSE MANAGEMENT SYSTEM

2.1 PREFACE:
Back in mid-1990s, we were trying hard just to get HTML pages to display properly.
The only dynamic pages were e-commerce sites. By the late 1990s, other languages better
suited to the web were coming out, like PHP. People started writing content-management
systems(CMSs). This allowed people to upload photos, write stories, and made pages much
more interesting. People started commercializing their CMSs and building businesses that
sold and supported CMSs. Several of the web -based CMSs outgrowths of another category
of software.

2.2 INTRODUCTION:
A Course Management System (CMS) is a collection of software tools providing an
online environment for course interactions. A CMS typically includes a variety of online
tools and environments, such as:
• An area for faculty posting of class materials such as course syllabus and handouts
• An area for student posting of papers and other assignments
• A gradebook where faculty can record grades and each student can view his or her
grades
• An integrated email tool allowing participants to send announcement email messages
to the entire class or to a subset of the entire class
• A chat tool allowing synchronous communication among class participants
• A threaded discussion board allowing asynchronous communication among
participants

The decision to use a CMS in a traditional face-to-face course has implications for
course design that often go unnoticed by instructors in their initial use of such systems. This
module lists technical and pedagogical tips that instructors should consider as they place
materials into a CMS.

In addition, a CMS is typically integrated with other databases in the university so


that students enrolled in a particular course are automatically registered in the CMS as
participants in that course.

19
2.2.1 PURPOSE:
Course management systems have become an integral part of the higher education
system. They make teaching and course management easier by providing a framework and
set of tools for instructors. The administrative aspects of such systems may include class
rosters and the ability to record students’ grades.
With respect to the teaching aspects, however, it could include learning objects, class
exercises, quizzes and tests. The CMS may also include tools for real-time chat, or
asynchronous bulletin board type communications. The CMS tool also focuses on all aspects
of teaching, learning and teacher-student interaction.

2.3 SCOPE:
CMS provides useful and efficient services to the university and schools. The CMS
will be an online academic portal for any university wishing to manage their academic needs
online. More specifically to design and develop a simple and intuitive system which shall cater
the academic needs of any institute.

The system shall provide features to the user of an educational institute to be part of
different types of groups, share data and documents amongst different users, have discussion
threads, instant notifications via email/message, assignment submissions, blogs, share old
papers, availability of books and other useful stuff (buy/sell), online survey etc.

2.4 GLOSSARY:
 CMS: Course Management System
 UI: User Interface
 UML: Unified Modelling Language
 DFD: Data Flow Diagram
 NFR: Non-functional Requirements

2.5 REQUIREMENTS SPECIFICATION:


Requirements are descriptions of the services that a software system must provide and
the constraints under which it must operate. Requirements can range from high-level abstract
statements of services or system constraints to detailed mathematical functional specification.

2.5.1 FUNCTIONAL REQUIREMENTS

 A functional requirement defines a system or its component. It describes the functions


a software must perform.
 They perform calculation, data manipulation, processing and other specific
functionality that define what a system is supposed to accomplish.

20
 Functional Requirements are also called Functional Specification.

Example:-
1. COURSE REGISTRATION:

 Description: To enter into the site user has to register himself first. Requirements of
registration are first name, last name, username, email, password etc.
 Input: User Details.
 Output: Filled registration details, processing user details are checked with database.
2. USER LOGIN:

 Description: The system provides facility to log in into the system.


 Input: Enter username and password.
 Output: User profile page.

2.5.2 NON-FUNCTIONAL REQUIREMENTS:


A Non-Functional Requirement (NFR) defines the quality attribute of a software
system. They represent a set of standards used to judge the specific operation of a system.
Example, how fast does the website load?

A non-functional requirement is essential to ensure the usability and effectiveness of


the entire software system.

Non-functional requirements are often called “quality attributes” of a system. Other


terms for non-functional requirements are ‘qualities’, ‘quality goals’, ‘constraints’, ‘non
behavioral requirements’ or ‘technical requirements’. Non-Functional Requirements are
classified into 3 types. They are:

 Product Requirements
 Organizational Requirements
 External Requirements

PRODUCT REQUIREMENTS: These specify the constraints that effect the behavior of
the system. (How fast it must execute, how much memory it needs).

ORGANIZATIONAL REQUIREMENTS: These requirements are derived from policies


and procedures of the customer and developers organization. (How system will be used).

EXTERNAL REQUIREMENTS: These are derived from factors external to the system and
development process.(Interoperability requirements, legislative requirements).

21
Examples:

 Performance Requirements:
 The system need to be reliable.
 If unable to process the request then appropriate error message will be given.
 Web pages are loaded with in few seconds.
 Safety Requirements:
 The details need to be maintained properly.
 User must be authenticated.
 The database must be kept backed up.
 Security Requirements:
 The details of the user must be safe and private.

2.5.3 USER REQUIREMENTS


These are high level abstract statements in a natural language and diagrams, which
provide details of services the system is expected to provide to users and constraints under
which it must operate.

2.5.3.1 USER REQUIREMENTS FOR CMS:

 Content Presentation
 Easy Navigation
 Simple Interface
 Responsive
 Consistent UI Elements
 Feedback Mechanism
 User Centric Approach
 Group Based View Settings

2.5.4 SYSTEM REQUIREMENTS:


These are detailed descriptions of the software system, functions, services and
operational constraints. It provides more specific services and functions the system that is to
be implemented.

2.5.4.1 SOFTWARE REQUIREMENTS:

 Operating System: Windows 10 64/32 Bit, Windows 8.1 32/64 Bit, Windows 7
Ultimate 64/32 Bit.
 Platform: Java

2.5.4.2 HARDWARE REQUIREMENTS:


 Memory: 5GB Of Free Space And 4GB RAM.
 CPU: Core 2 Quad 06600 at 2.1 GHZ or AMD Phenom9850 at 2.5Ghz
 Graphics: 1GB Graphics Card.
 Sound: DirectX 10 compatible sound card.

22
2.6 SYSTEM MODELS
System models are abstract descriptions of systems whose requirements are being
analyzed. Types of system models:

1. Context models
2. Behavioral models
3. Data models
4. Object models
5. Structured models

CONTEXT MODELS:

 A type of architectural model.


 Consists of sub-systems that make up an entire system
 Represent the high level architectural model as simple block diagram
 Depict each sub system a named rectangle
 Lines between rectangles indicate associations between subsystems
Disadvantages:
 Concerned with system environment only, doesn't take into account other systems,
which may take data or give data to the model

BEHAVIORAL MODELS:

 Describes the overall behaviour of a system.


 Two types of behavioral model
1. Data Flow models
2. State machine models

DATA FLOW MODELS:

Concentrate on the flow of data and functional transformation on that


data. Show the processing of data and its flow through a sequence of processing steps. Help
analyst understand what is going on
Advantages
 Simple and easily understandable
 Useful during analysis of requirements

STATE MACHINE MODELS:


 Describe how a system responds to internal or external events. Shows system states
and events that cause transition from one state to another.
 Does not show the flow of data within the system.
 Used for modelling of real time systems.

23
Disadvantage
 Number of possible states increases rapidly for large system models

DATA MODELS:

 Used to describe the logical structure of data processed by the system.


 An entity-relation- attribute model sets out the entities in the system, the relationships
between these entities and the entity attributes.
 Widely used in database design. Can readily be implemented using relational
databases.
 No specific notation provided in the UML but objects and associations can be used.

OBJECT MODELS

 An object oriented approach is commonly used for interactive systems development.


 Expresses the systems requirements using objects and developing the system in an
object oriented PL such as C++, java.
 Object class: An abstraction over a set of objects that identifies common attributes.
Objects are instances of object class. Many objects may be created from a single class.

INHERITANCE MODELS

 A type of object oriented model which involves in object classes attributes.


 Arranges classes into an inheritance hierarchy with the most general object class at
the top of hierarchy
 Specialized objects inherit their attributes and services

OBJECT AGGREGATION:
Some objects are grouping of other objects. An aggregate of a set of other objects.
The classes representing these objects may be modelled using an object aggregation model.

OBJECT-BEHAVIORAL MODEL:

 Shows the operations provided by the objects.


 Sequence diagram of UML can be used for behavioral modelling.

2.6.1 USE CASE DIAGRAM:


A Use Case diagram is a dynamic or behavioral diagram in UML. Use Case diagrams
model the functionality of a system using actors and use cases. Use cases are a set of actions,
services, and functions that the system need to perform.

24
In this context, a “system” is something being developed or operated, such as a
website. The “actors” are people or entities operating under defined roles within the system.

Fig: 2.6.1 Use case diagram for CMS

2.6.2 SEQUENCE DIAGRAM:


Sequence diagrams are sometimes called event diagrams or event scenarios .

A Sequence diagram shows, as parallel vertical lines(lifelines), different processes or


objects that live simultaneously, and, as horizontal arrows, the messages exchanged between
them, in order in which they occur.

25
Fig: 2.6.2 Sequence Diagram For CMS.

2.6.3 CLASS DIAGRAM:


Class Diagrams are the main building blocks in object oriented modelling. They are
used to show the different objects in a system, their attributes, their operations and the
relationships among them.

26
Fig:2.6.3 Class Diagram For CMS.

2.6.4 ACTIVITY DIAGRAM:


It is another important diagram in UML to describe the dynamic aspects of the
system. It is basically a flowchart to represent the flow from one activity to another activity.
The activity can be described as an operation of the system. The control flow is drawn from
one operation to another.

27
Fig: 2.6.4 Activity Diagram For CMS.

2.6.5 DATA FLOW DIAGRAM(DFD):


Data flow diagrams are used to graphically represent the flow of data in a business
information system. DFD describes the processes that are involved in a system to transfer
data from the input to the file storage and reports generation.
Data flow diagrams can be divided into logical and physical. The logical data flow diagram
describes flow of data through a system to perform certain functionality of a business. The
physical data flow diagram describes the implementation of the logical data flow.

28
Fig: 2.6.5 Data Flow Diagram For CMS.

29
CHAPTER 3
EASY LEAVE

30

Potrebbero piacerti anche