Skill Development Lab
Skill Development Lab
Sciences, Jabalpur
COURSE FILE
2019-20
Skill Development Lab
(CS-606)
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Mission and Vision of the Institution:
Vision of Institute:
Initially to seek autonomy and eventually grow the Institute into a renowned University by:
Imparting the best technical and professional education to the students of the
Institute.
Developing all the Departments of the Institute as Centers of Excellence.
Creating the most congenial and cordial environment of Teaching, Learning
and Research in the Institute.
Conceiving world - class Education, Ethics and Employability for students in
global perspective.
Mission of Institute
To explore and ensure the best environment to transform students into creative,
knowledgeable, principled engineers and managers compatible with their abilities in ever-
changing socio-economic and competitive scenario by:
Imparting intensive teaching and training through latest technology
Motivating the teachers for higher learning and innovative research activities
with social services.
Generating maximum opportunities for placement of students in National,
Multi-National companies and nurturing entrepreneurship quality.
Producing highly intellectual citizens through technical education to constitute
an elegant society and meeting social challenges.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Vision
Program Objectives
PSO 1- Able to apply the knowledge gained during the course of the program from
Mathematics, Science & Engineering to solve computation task, and ability to
understand, analyze, design and develop computer programs in the areas related to
algorithms, system software, multi-media, web designing, data analytics and networking.
(PO1, PO2, PO3)
PSO 2- Able to comprehend the technological advancements by lifelong learning and usage
of modern tools for analysis and design of application and system software with varying
complexity. (PO4, PO5, PO12)
PSO 3- Able to communicate effectively in oral and written forms with good leadership
quality, team work, managerial skill to work in multi-disciplinary environment, involve in
development of commercially viable projects, demonstrating the practice of professional
ethics for sustainable development of society. (PO6, PO7, PO8, PO9, PO10, PO11)
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
COURSE OUTCOMES
Once the student has successfully completed this course, he/she will be able to:
Batch A Batch B
S. Name of Mappi Type of Catego CO PO PSO Complet Complet Sig
N Experim
ng Exp. ry Mappi Mapping Mappi ion ion n
o. ent
with ng ng
Unit
1 Software I Study Core CO1 1,2,3,4,5,1 PSO 1
product PSO 2
1,12
life cycle.
Implem
ent
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Experiment No - 1
Phase 2: Analysis:
Once the requirement analysis phase is completed the next step is to define and document
software needs. This process was conducted with the help of the 'Software Requirement
Specification' document also known as 'SRS' document. It includes everything which should
be designed and developed during the project life cycle.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Phase 3: Design:
In this phase, the requirement gathered in the SRS document is used as an input and
software architecture that is used for implementing system development is derived.
Implementation/Coding starts once the developer gets the Design document. The Software
design is translated into source code. All the components of the software are implemented
in this phase.
Phase 5: Testing:
Testing starts once the coding is complete and the modules are released for testing. In this
phase, the developed software is tested thoroughly and any defects found are assigned to
developers to get them fixed.
Phase 6: Deployment:
Once the software testing phase is over and no bugs or errors left in the system then the
final deployment process starts. Based on the feedback given by the project manager, the
final software is released and checked for deployment issues if any.
Phase 7: Maintenance:
SDLC models:
• Waterfall Model
• RAD Model
• Spiral Model
• V-Model
• Incremental Model
• Iterative Model
• Big Bang Model
• Agile Model
• Prototype Model, etc..
Waterfall Model:
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a
linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases.The Waterfall model is the earliest SDLC approach that was
used for software development. The waterfall Model illustrates the software development
process in a linear sequential flow. This means that any phase in the development process
begins only if the previous phase is complete. In this waterfall model, the phases do not
overlap.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
The Waterfall approach was the 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.
The advantages of waterfall development are that it allows for departmentalization and
control. A schedule can be set with deadlines for each stage of development and a product
can proceed through the development process model phases one by one.
• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Clearly defined stages.
• Easy to arrange tasks.
• Process and results are well documented.
AGILE MODEL:
Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software products.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks.
• Planning
• Requirements Analysis
• Design
• Coding
• Unit Testing and
• Testing.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
At the end of the iteration, a working product is displayed to the customer and clients.
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
into 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.
The Agile thought process had started early in the software development and started becoming
popular with time due to its flexibility and adaptability.
Following are the Agile Manifesto principles −
• 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.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
The disadvantages-
• Not suitable for handling complex dependencies.
• More risk of sustainability, maintainability and extensibility.
• An overall plan, an agile leader and agile PM practice is a must without which it will
not work.
• Depends heavily on customer interaction, so if the customer is not clear, the team
can be driven in the wrong direction.
• Agile uses an adaptive approach where there is no detailed planning and there is
clarity on future tasks only in respect of what features need to be developed. There
is feature driven development and the team adapts to the changing product
requirements dynamically. The product is tested very frequently, through the release
iterations, minimizing the risk of any major failures in future.
• Customer Interaction is the backbone of this Agile methodology, and open
communication with minimum documentation are the typical features of Agile
development environment. The agile teams work in close collaboration with each
other and are most often located in the same geographical location.
Experiment No - 2
The quality of software has improved significantly over the past two decades. One
reason for this is that companies have used new technologies in their software
development process such as object-oriented development, CASE tools, etc. In
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
1. The software specification should reflect the characteristics of the product that
the customer wants. However, the development organization may also have
requirements such as maintainability that are not included in the specification.
2. Certain software quality attributes such as maintainability, usability, reliability
cannot be exactly specified and measured.
It is general, that the quality of the development process directly affects the quality of
delivered products. The quality of the product can be measured and the process is
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
improved until the proper quality level is achieved. Figure illustrates the process of
quality assessment based on this approach.
Quality assurance is the process of defining how software quality can be achieved and
how the development organization knows that the software has the required level of
quality. The main activity of the quality assurance process is the selection and
definition of standards that are applied to the software development process or
software product. There are two main types of standards. The product standards are
applied to the software product, i.e. output of the software process. The process
standards define the processes that should be followed during software development.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
The software standards are based on best practices and they provide a framework for
implementing the quality assurance process.
ISO Standard
ISO 9000 is an international set of standards that can be used in the development of a
quality management system in all industries. ISO 9000 standards can be applied to a
range of organizations from manufacturing to service industries. ISO 9001 is the most
general of these standards. It can be applied to organizations that design, develop and
maintain products and develop their own quality processes. A supporting document
(ISO 9000-3) interprets ISO 9001 for software development.
The ISO 9001 standard isn’t specific to software development but includes general
principles that can be applied to software development projects. The ISO 9001
standard describes various aspects of the quality process and defines the organizational
standards and procedures that a company should define and follow during product
development. These standards and procedures are documented in an organizational
quality manual.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
The ISO 9001 standard does not define the quality processes that should be used in the
development process. Organizations can develop own quality processes and they can
still be ISO 9000 compliant companies. The ISO 9000 standard only requires the
definition of processes to be used in a company and it is not concerned with ensuring
that these processes provide best practices and high quality of products. Therefore, the
ISO 9000 certification doesn’t means exactly that the quality of the software produced
by an ISO 9000 certified companies will be better than that software from an
uncertified company.
Documentation standards
Quality planning
Quality planning is the process of developing a quality plan for a project. The quality
plan defines the quality requirements of software and describes how these are to be
assessed. The quality plan selects those organizational standards that are appropriate to
a particular product and development process. Quality plan has the following parts:
1. Introduction of product.
2. Product plans.
3. Process descriptions.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
4. Quality goals.
The quality plan defines the most important quality attributes for the software and
includes a definition of the quality assessment process. Table shows generally used
software quality attributes that can be considered during the quality planning process.
Quality control
Quality control provides monitoring the software development process to ensure that
quality assurance procedures and standards are being followed. The deliverables
from the software development process are checked against the defined project
standards in the quality control process. The quality of software project deliverables
can be checked by regular quality reviews and/or automated software assessment.
Quality reviews are performed by a group of people. They review the software and
software process in order to check that the project standards have been followed and
that software and documents conform to these standards. Automated software
assessment processes the software by a program that compares it to the standards
applied to the development project.
Quality reviews
Quality reviews are the most widely used method of validating the quality of a
process or product. They involve a group of people examining part or all of a software
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Types of review.
Software metric is a measurement that relates to any quality attributes of the software
system or process. It is often impossible to measure the external software quality
attributes, such as maintainability, understandability, etc., directly. In such cases, the
external attribute is related to some internal attribute assuming a relationship between
them and the internal attribute is measured to predict the external software
characteristic. Three conditions must be hold in this case:
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
3. This relationship has to be well understood, has been validated and can be
expressed in terms of a mathematical formula.
Product metrics
The software characteristics that can be easily measured such as size do not have a
clear and consistent relationship with quality attributes such as understandability and
maintainability. Product metrics has two classes:
1. Dynamic metrics. These metrics (for example execution time) are measured
during the execution of a program.
2. Static metrics. Static metrics are based on measurements made of
representations of the system such as the design, program or documentation.
Dynamic metrics can be related to the efficiency and the reliability of a program. Static
metrics such as code size are related to software quality attributes such as complexity,
understandability, maintainability, etc.
Experiment No - 3
Design Patterns-I
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Design patterns can speed up the development process by providing tested, proven
development paradigms. Effective software design requires considering issues that may not
become visible until later in the implementation. Reusing design patterns helps to prevent
subtle issues that can cause major problems and improves code readability for coders and
architects familiar with the patterns.
Often, people only understand how to apply certain software design techniques to certain
problems. These techniques are difficult to apply to a broader range of problems. Design
patterns provide general solutions, documented in a format that doesn't require specifics
tied to a particular problem.
AbstractFactory
Creates an instance of several families of classes
Builder
Separates object construction from its representation
FactoryMethod
Creates an instance of several derived classes
ObjectPool
Avoid expensive acquisition and release of resources by recycling objects that are no
longer in use
Prototype
A fully initialized instance to be copied or cloned
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Singleton
A class of which only a single instance can exist
Adapter
Match interfaces of different classes
Bridge
Separates an object’s interface from its implementation
Composite
A tree structure of simple and composite objects
Decorator
Add responsibilities to objects dynamically
Facade
A single class that represents an entire subsystem
Flyweight
A fine-grained instance used for efficient sharing
Proxy
An object representing another object
Chainofresponsibility
A way of passing a request between a chain of objects
Command
Encapsulate a command request as an object
Interpreter
A way to include language elements in a program
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Iterator
Sequentially access the elements of a collection
Mediator
Defines simplified communication between classes
Memento
Capture and restore an object's internal state
NullObject
Designed to act as a default value of an object
Observer
A way of notifying change to a number of classes
State
Alter an object's behavior when its state changes
Strategy
Encapsulates an algorithm inside a class
Templatemethod
Defer the exact steps of an algorithm to a subclass
Visitor
Defines a new operation to a class without change
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Experiment N0 – 4
Design Pattern – II
Introduction
Abstract Factory design pattern is one of the Creational pattern. Abstract Factory
pattern is almost similar to Factory Pattern is considered as another layer of abstraction
over factory pattern. Abstract Factory patterns work around a super-factory which
creates other factories.
Abstract factory pattern implementation provides us a framework that allows us to
create objects that follow a general pattern. So at runtime, abstract factory is coupled
with any desired concrete factory which can create objects of desired type.
UML class diagram example for the Abstract Factory Design Pattern.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Experiment -5
Case Study
Objective:-
To show diagrammatically the objects required and the relationships between them while developing
a software product.
Software Required :-
Procedure :-
Step 1:-
Right click Class Diagram on Diagram Navigator and select New Class Diagram from the pop-up menu to
create a class diagram.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Step 2:-
Creating class
To create class, click Class on the diagram toolbar and then click on the diagram.
Creating association
To create association from class, click the Association -> Class resource beside it and drag.
Drag to empty space of the diagram to create a new class, or drag to an existing class to connect to it. Release
the mouse button to create the association.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Step 3:-
To edit multiplicity of an association end, right-click near the association end, select Multiplicityfrom the
popup menu and then select a multiplicity.
Step 4:-
Creating generalization
To create generalization from class, click the Generalization -> Class resource beside it and drag.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Drag to empty space of the diagram to create a new class, or drag to an existing class to connect to it. Release
the mouse button to create the generalization.
Creating attribute
To create attribute, right click the class and select Add > Attribute from the pop-up menu.
An attribute is created.
Creating operation
To create operation, right click the class and select Add > Operation from the pop-up menu.
An operation is created.
Similar to creating attribute, you can press the Enter key to create multiple operations continuously.
Drag-and-Drop reordering, copying and moving of class members
To reorder a class member, select it and drag within the compartment, you will see a thick black line appears
indicating where the class member will be placed.
To copy a class member, select it and drag to the target class while keep pressing the Ctrl key, you will see a
thick black line appears indicating where the class member will be placed. A plus sign is shown beside the
mouse cursor indicating this is a copy action.
To move a class member, select it and drag to the target class, you will see a thick black line appears
indicating where the class member will be placed. Unlike copy, do not press the Ctrl key when drag, the
mouse cursor without the plus sign indicates this is a move action.
Press up or down key to select class in the list, press Enter to confirm. Upon selecting an existing class, all
class members and relationships are shown immediately.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
Step 5:-
Generalization set
A generalization set defines a particular set of generalization relationships that describe the way
in which a general classifier (or superclass) may be divided using specific subtypes. To define a generalization
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
set, select the generalizations to include, right click and select Generalization set > Create Generalization Set...
from the popup menu.
Step 6:-
Name the set in the Manage Generalization Sets dialog box, and confirm by pressing OK.
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering
The selected generalizations are grouped. Adjust the connector to make the diagram tidy .
Gyan Ganga Institute of Technology and Sciences, Jabalpur
Computer Science & Engineering