Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 37

SOFTWARE ENGINEERING(CS346) D21DCS165

PRACTICAL 1
AIM:
List & draw at least 7 various Software Development Life Cycle (SDLC) models and preparing
the detailed case study on “E-Learning” that which SDLC model is suitable to develop the “E-
Learning”?

SDLC Models

Software Development life cycle (SDLC) is a spiritual model used in project management that
defines the stages include in an information system development project, from an initial
feasibility study to the maintenance of the completed application.

There are different software development life cycle models specify and design, which are
followed during the software development phase. These models are also called "Software
Development Process Models." Each process model follows a series of phase unique to its type
to ensure success in the step of software development.

Here, are some important phases of SDLC life cycle:

HARSHIT TRIPATHI-DEPSTAR(CSE) 1
SOFTWARE ENGINEERING(CS346) D21DCS165

RAD (Rapid Application Development) Model

RAD is a linear sequential software development process model that emphasizes a concise
development cycle using an element-based construction approach. If the requirements are well
understood and described, and the project scope is a constraint, the RAD process enables a
development team to create a fully functional system within a concise time period.

RAD (Rapid Application Development) is a concept that products can be developed faster and of
higher quality through:

o Gathering requirements using workshops or focus groups


o Prototyping and early, reiterative user testing of designs
o The re-use of software components
oA rigidly paced schedule that refers design improvements to the next product version
o Less formality in reviews and other team communication

The various phases of RAD are as follows:

1.Business Modelling: The information flow among business functions is defined by answering


questions like what data drives the business process, what data is generated, who generates it,
where does the information go, who process it and so on.

2. Data Modelling: The data collected from business modeling is refined into a set of data
objects (entities) that are needed to support the business. The attributes (character of each entity)
are identified, and the relation between these data objects (entities) is defined.

3. Process Modelling: The information object defined in the data modeling phase are
transformed to achieve the data flow necessary to implement a business function. Processing
descriptions are created for adding, modifying, deleting, or retrieving a data object.

HARSHIT TRIPATHI-DEPSTAR(CSE) 2
SOFTWARE ENGINEERING(CS346) D21DCS165

4. Application Generation: Automated tools are used to facilitate construction of the software;


even they use the 4th GL techniques.

5. Testing & Turnover: Many of the programming components have already been tested since
RAD emphasis reuse. This reduces the overall testing time. But the new part must be tested, and
all interfaces must be fully exercised.

When to use RAD Model?

o When the system should need to create the project that modularizes in a short span time (2-3
months).
o When the requirements are well-known.
o When the technical risk is limited.
o When there's a necessity to make a system, which modularized in 2-3 months of period.
o It should be used only if the budget allows the use of automatic code generating tools.

AD

Advantage of RAD Model

o This model is flexible for change.


o In this model, changes are adoptable.
o Each phase in RAD brings highest priority functionality to the customer.
o It reduced development time.
o It increases the reusability of features.

AD

Disadvantage of RAD Model

o It required highly skilled designers.


o All application is not compatible with RAD.
o For smaller projects, we cannot use the RAD model.
o On the high technical risk, it's not suitable.
o Required user involvement

HARSHIT TRIPATHI-DEPSTAR(CSE) 3
SOFTWARE ENGINEERING(CS346) D21DCS165

Agile Model

The meaning of Agile is swift or versatile. “Agile process model" refers to a software
development approach based on iterative development. Agile methods break tasks into smaller
iterations, or parts do not directly involve long term planning. The project scope and
requirements are laid down at the beginning of the development process. Plans regarding the
number of iterations, the duration and the scope of each iteration are clearly defined in advance.

Each iteration is considered as a short time "frame" in the Agile process model, which typically
lasts from one to four weeks. The division of the entire project into smaller parts helps to
minimize the project risk and to reduce the overall project delivery time requirements. Each
iteration involves a team working through a full software development life cycle including
planning, requirements analysis, design, coding, and testing before a working product is
demonstrated to the client.

Phases of Agile Model:

Following are the phases in the Agile model are as follows:

1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback

HARSHIT TRIPATHI-DEPSTAR(CSE) 4
SOFTWARE ENGINEERING(CS346) D21DCS165

1. Requirements gathering: In this phase, you must define the requirements. You should
explain business opportunities and plan the time and effort needed to build the project. Based on
this information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project, work with stakeholders to
define requirements. You can use the user flow diagram or the high-level UML diagram to show
the work of new features and show how it will apply to your existing system.

3. Construction/ iteration: When the team defines the requirements, the work begins.
Designers and developers start working on their project, which aims to deploy a working
product. The product will undergo various stages of improvement, so it includes simple, minimal
functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's performance and
looks for the bug.

5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

Advantages (Pros) of Agile Method:

1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.

Disadvantages (Cons) of Agile Model:

1. Due to the shortage of formal documents, it creates confusion and crucial decisions taken
throughout various phases can be misinterpreted at any time by different team members.
2. Due to the lack of proper documentation, once the project completes and the developers
allotted to another project, maintenance of the finished project can become a difficulty.

HARSHIT TRIPATHI-DEPSTAR(CSE) 5
SOFTWARE ENGINEERING(CS346) D21DCS165

CASE STUDY ON E-LEARNING

OVERVIEW:

E-learning is a type of learning conducted digitally via electronic media, typically involving
the internet. It can be accessed via most electronic devices including a computer, laptop, tablet
or smartphone, making it a versatile and easy way for students to learn wherever they are.

It has revolutionized the conventional method of chalk and board style of learning imparted to
the students. Unlike this, e-Learning education makes giving and receiving simpler, prolific, and
productive.

Advantages Of E-Learning

1. You are able to link the various resources in several varying formats.
2. It is a very efficient way of delivering courses online.
3. Due to its convenience and flexibility, the resources are available from anywhere and at any
time.
4. Everyone, who are part time students or are working full time, can take advantage of web-based
learning.
5. Web-based learning promotes active and independent learning.
6. As you have access to the net 24x7, you can train yourself anytime and from anywhere also.
7. It is a very convenient and flexible option; above all, you don't have to depend on anyone for
anything.
8. Not only can you train yourself on a day-to-day basis, but also on weekends or whenever you
have the free time to. There is no hard and fast rule.
9. Through discussion boards and chats, you are able to interact with everyone online and also clear
your doubts if any.
10. The video instructions that are provided for audio and video learning can be rewound and seen
and heard again and again if you do not happen to understand the topic first time around.

Disadvantages Of E-Learning

Well, there are not many disadvantages of eLearning, the main one being that you get
knowledge only on a theoretical basis and when it comes to putting to use whatever you have
learnt, it may be a little different. The face-to-face learning experience is missing, which may
matter to some of you.

1. Most of the online assessments are limited to questions that are only objective in nature.
2. There is also the problem of the extent of security of online learning programs.

HARSHIT TRIPATHI-DEPSTAR(CSE) 6
SOFTWARE ENGINEERING(CS346) D21DCS165

3. The authenticity of a particular student's work is also a problem as online just about anyone
can do a project rather than the actual student itself.

4. The assessments that are computer marked generally have a tendency of being only
knowledge-
based and not necessarily practicality-based.

AGILE MODEL FOR DEVELOPMENT OF E-LEARNIG SOFTWARE/PORTAL:

Agile Model does customer satisfaction by rapid, continuous delivery of useful software.
Through discussion boards and chats, you are able to interact with everyone online and also clear
client’s doubts if any.
In e-learning development, it is best to have the client or stakeholder on the same page as you,
till the end of the project. The absence of this can mean network and waste of energy and
resources. Following a three-step AGILE process can help.
E-learning website will be delivering courses online by keeping regular interactions with the
client. Costs by developing through agile model is less and it always provides customer
satisfaction along with creativity and innovations in the development of the project.

Modelling in agile is efficient in designing and fulfils the business requirement. Face to face
communication with clients, any time changes acceptance and reduction in total development
time makes agile modelling for project development best model.

of E-Learning

FIG: AGILE MODEL FOR E-LEARNING

CONCLUSION:

HARSHIT TRIPATHI-DEPSTAR(CSE) 7
SOFTWARE ENGINEERING(CS346) D21DCS165

Learnt various SDLC models and performed case study on E-Learning with Agile software
development model.

PRACTICAL 2
AIM: List at least 10 Agile Development tools for desktop and mobile
application development in IT industry and prepare the detailed case study on
“JIRA Tool” for Agile Development.

FIG: TESTING TOOLS


1. ClickUp

ClickUp tops list for its effortless task management. It gives you a quick overview of tasks
completed, tasks in progress, and dependencies. 

This ensures you can prevent bottlenecks.  

Agile Software Features:

 Epics: set up milestones along with sprint planning


 Story Points: understand how to improve your Agile project with this ClickApp.
 Sprints: Use the Sprints ClickApp to manage your sprint’s dates, statuses, tasks, automations,
and more!
 ClickUp Dashboards: have all your Agile metrics like Burnup Chart, Velocity Chart, and
Cumulative Flow Diagrams ready for the sprint planning and sprint review meetings
 ClickUp Docs: document your engineering wiki, product backlog and sprint backlog to share it
with stakeholders
 Templates: save time by using pre-made project templates
 ClickUp Custom Task Statuses: customize your agile workflow easily
 ClickUp Tags: organize your Agile project with custom tags
 ClickUp Goals: set easy-to-track Targets within each sprint Goal
 Time Tracking: stay in control of how long you spend on each task
 Integrations: add your favorite tools like Slack, Gitlab, and Google Drive to your workspace
 Apps: fully functional apps for Android, iOS, Mac, Windows, and Linux

HARSHIT TRIPATHI-DEPSTAR(CSE) 8
SOFTWARE ENGINEERING(CS346) D21DCS165

HARSHIT TRIPATHI-DEPSTAR(CSE) 9
SOFTWARE ENGINEERING(CS346) D21DCS165

2. Jira

One of the most well-known Agile project management tools is Atlassian Jira, an Agile
development solution. Teams around the world love this agile tool, but it isn’t without its flaws.
You can read more about Jira alternatives and our detailed Jira review. 

We love a puzzle as much as the next person. But Jira is way too complex and even requires
developers just to set it up! 

It’s also one of the more expensive project management solutions, and even small teams can
drive the price into the thousands-of-dollars-range. 

Agile Software Features:

 Issue tracking
 Boards
 Agile Epics
 Bug tracking Software
 Custom fields

3. Kanbanize
Kanbanize is an Agile project management software that combines Kanban-style features and
business automation into a virtual workspace. Built with scale in mind, you can use this agile
tool for your software development projects, programs, task management, and portfolio
management.

This Kanban tool is the go-to solution for agile teams and companies looking for better
prioritization of work, managing multiple projects, and making their work processes more
efficient.

Within the system, team members can structure and visualize their daily work. They can plan
Scrum team initiatives and high-level projects, break them down into manageable tasks,
visualize dependencies, and create multiple workflows for cross-functional teams.

This agile tool is quite expensive.

Agile Software Features:

 Timeline Workflow for Agile planning


 Customizable Kanban boards and cards to show different user stories
 Kanban card links for work-breakdown structure and visualizing dependencies
 Built-in templates for Kanban board views
 Manage multiple workflows on one Kanban board
 Management workspaces for scaling Kanban across the organization
 Business automation rules

HARSHIT TRIPATHI-DEPSTAR(CSE) 10
SOFTWARE ENGINEERING(CS346) D21DCS165

4. GitHub Project Management

GitHub is the largest hosted Git server…. but what does that mean? 

Basically, your developers can store all of your code for a vast number of projects there. GitHub
is so great because it records edits across an entire team in real-time.

This Agile project management software also integrates with many other tools so that multiple
team members (from your developers to the product owner) can work in the same code
simultaneously, making it a good Agile tool for development teams. 

GitHub gives you a private space for each team member and a public space where members of
the community can come and help you improve your code. 

GitHub also includes many agile project management tools to help project managers manage
what the team members are working on. 

Agile Software Features:

 Issue tracking
 Mentions for teamwork
 Labels
 Link issues and pull requests

5. LeanKit

If you are looking for the ultimate Agile project management tool that operates as a Kanban
board for your sprints, LeanKit is your answer. 

This Agile software development tool keeps your workflow ‘lean’ with cards to represent work
items and live statuses. 

LeanKit’s Agile project management software is perfect if you have a remote team, ensuring
everyone can see the Kanban board in real-time. Prevent the same tasks from being completed
twice, and make sure your whole team remains on the same page (or card).

This Kanban tool also works great for cross-team platforms and can be used to keep track of
dependencies. It also works well for cross-functional teams leveraging Scrum or Kanban boards
in the Agile process.

Agile Software Features:

 Task templates
 Kanban boards
 Track issues and bugs during Agile testing phases
 Manage project portfolios
 Lean metrics and reporting

HARSHIT TRIPATHI-DEPSTAR(CSE) 11
SOFTWARE ENGINEERING(CS346) D21DCS165

6. Planbox

Everyone likes knowing how far they’re from the finish line, except for some people who just
enjoy the run. 

But on an Agile project, tracking sprints is everything. 

Planbox does this with its burndown charts. This way, everyone knows how far you are from
sprint completion.

Planbox also integrates customer feedback, bug reports, and fixes, making it useful for a wide
range of users. This Scrum tool has great evaluation tools that make sprint retrospectives even
more thorough. 

It’s highly configurable, ensuring that agile teams will be able to tweak it to work for their
specific circumstances. Advanced reporting features make it easy to review the status and areas
where improvement is needed.

And just like that, your project will be like a Plan-box full of chocolates!

Agile Software Features:

 Time estimates to prioritize backlog items


 Share project with outsider collaborators
 Detailed analytics
 Planbox Work Management API to support cross-platform support

7. Active Collab

If you are looking for an affordable solution to manage documents and very simple tasks, look
no further. 

Active Collab is an Agile tool that has great document management and fantastic budgeting and
reporting features. The seemingly only downside is that Active Collab has a timeline and column
view for the tasks instead of a Gantt Chart.

Agile Software Features:

 Labels
 Project progress
 Set recurring tasks
 Workload reports

HARSHIT TRIPATHI-DEPSTAR(CSE) 12
SOFTWARE ENGINEERING(CS346) D21DCS165

8. Proggio

Proggio is a next-generation Agile project management tool centered around the Scrum


team instead of tasks. 

With a top-notch visual presentation, Proggio gives project managers an Agile tool to create full
project blueprints for increased planning capabilities and team clarity. Proggio is also a good fit
for your Agile team because of its advanced analytics and collaborative task management tools.

The agile project management tool also offers an integration with Jira that presents information
from Jira across the timeline in Proggio, ending the software development tracking silo. 

Agile Software Features:

 Timelines
 Board and List views
 Visual tracking

9. Codegiant

Codegiant is a love letter to coders everywhere.

It’s an Agile development software that is primarily focused on making the developer’s coding
life more relaxed. They do this with a straightforward and easy-to-use issue tracker that creates a
clutter-free Agile environment to work in. 

Additionally, the issue tracker is highly customizable and flexible, so you can clearly distribute
assignments throughout your team. This way, your Scrum team won’t waste time on irrelevant
tasks but will focus on primary assignments.

Agile Software Features:

 Effortless task management with its drag and drop functionality


 Built-in Scrum board 
 Roadmaps 
 Reports

HARSHIT TRIPATHI-DEPSTAR(CSE) 13
SOFTWARE ENGINEERING(CS346) D21DCS165

10. ProProfs Project

A simple and intuitive interface packed with features such as task management, project
visualization, and actionable reporting makes ProProfs a popular agile project management tool.

The tool’s dashboard lets you efficiently manage the backlog and plan sprints from start to
finish. Also, its drag and drop functionality enables you to customize the dashboard, moving
tasks and resources with ease to meet the needs of an evolving project.

ProProfs offers project views such as Gantt chart, Kanban view, Calendar view, and List view.
These views allow you to access project information the way you want simply by switching the
project view within the tool.

So, whether you wish to track tasks, resources, milestones, or the budget, you can do it all from a
single place, that too, at a glance. Moreover, you can prioritize tasks and set task dependencies in
just a few clicks, ensuring that you stay on track and never miss a deadline again.

Agile Software Features:

 Resource management to optimize resource workload


 Automation capabilities for recurring tasks
 Milestone tracking to monitor deadlines
 Time tracking to track productive hours

HARSHIT TRIPATHI-DEPSTAR(CSE) 14
SOFTWARE ENGINEERING(CS346) D21DCS165

CASE STUDY ON ‘JIRA TOOL’

FIG. 1: SCREENSHOT

FIG. 2: SCREENSHOT

HARSHIT TRIPATHI-DEPSTAR(CSE) 15
SOFTWARE ENGINEERING(CS346) D21DCS165

FIG. 3: SCREENSHOT

FIG. 4: SCREENSHOT

FIG. 5: SCREENSHOT

HARSHIT TRIPATHI-DEPSTAR(CSE) 16
SOFTWARE ENGINEERING(CS346) D21DCS165

FIG. 6: SCREENSHOT

FIG. 7: SCREENSHOT

FIG. 8: SCREENSHOT

HARSHIT TRIPATHI-DEPSTAR(CSE) 17
SOFTWARE ENGINEERING(CS346) D21DCS165

FIG. 9: SCREENSHOT

FIG. 10: SCREENSHOT

FIG. 11: SCREENSHOT

HARSHIT TRIPATHI-DEPSTAR(CSE) 18
SOFTWARE ENGINEERING(CS346) D21DCS165

FIG. 12: SCREENSHOT

FIG. 13: SCREENSHOT

FIG. 14: SCREENSHOT

HARSHIT TRIPATHI-DEPSTAR(CSE) 19
SOFTWARE ENGINEERING(CS346) D21DCS165

FIG. 15: SCREENSHOT

FIG. 16: SCREENSHOT

FIG. 17: SCREENSHOT

CONCLUSION:

Learnt about various Testing tools in Software development and performed case study on Jira
Tool.

HARSHIT TRIPATHI-DEPSTAR(CSE) 20
SOFTWARE ENGINEERING(CS346) D21DCS165

PRACTICAL 3
AIM: List at least 5 software development planning tools and prepare
the detailed case study of Risk Analysis & Management (i.e., Risk
Identification, Risk Projection, Risk Refinement, Risk Mitigation.) on
“Definition A.”

1. Zoho Projects

Zoho becomes one of the greatest tools for project management as it keeps teams
work like a clock. Among the benefits it provides are to:

 Create task lists for teams

 Set subtasks and milestones

 Track and manage tasks via Gantt Charts

 Track bugs

 Fill out timesheets

 Manage documents and files

 Integrate with the G-Suite apps

 Communicate via social media

 Coordinate better with project feeds

2. Trello

Trello is rather a task completion tracker with visualizations. It allows tracking


ideas from day one until you complete them. With Trello, it is possible to:

HARSHIT TRIPATHI-DEPSTAR(CSE) 21
SOFTWARE ENGINEERING(CS346) D21DCS165

Trello can become a good helper in managing the team’s to-do list and its UI is
super user-friendly to work with. Yet, among the cons, it has no Gantt charts and
calendar integration is rather limited.

 Create an unlimited number of tasks

 Focus on specific tasks (date, a-z list, importance)

 Personalize Kanban boards

 Manage each task on a cardboard

 Share ideas, files, and images with fellow employees

Trello can become a good helper in managing the team’s to-do list and its UI is
super user-friendly to work with. Yet, among the cons, it has no Gantt charts and
calendar integration is rather limited.

3. Wrike

Wrike is among the best and most secure management tools there are these days.
Its benefit lies in a rich variety of features and simplicity of use.

Wrike can help you to:

 Manage projects in spreadsheets

 Design valuable project information in spreadsheet columns

 Plan projects and dashboards

 Track and report team performance

 Receive reminders about tasks

HARSHIT TRIPATHI-DEPSTAR(CSE) 22
SOFTWARE ENGINEERING(CS346) D21DCS165

 Track task status changes

 Work with Gant charts

 Have unlimited working projects

 API integrations

Extensive teams can be on the same page as long as Wrike is excellent for
enterprise projects. But, it might seem a bit expensive and the UI is a bit clumsy.
4. Asana
Asana is a management tool for small teams. It tracks tasks assigned to team
members and the PM can be sure to know who does what. It’s easy for Asana to:

 Create tasks, subtasks, projects, sections

 Fill in task descriptions and deadlines before assigning them

 Comment task and share details

 Exploit reminders to finish tasks on time

 Communicate with voting and likes

 Design workflow templates

Asana can integrate with Google Drive, Chrome, Dropbox, GitHub, and other
third-party services. But, Asana has some flaws. You cannot assign dependency to
the tasks and will not track the task duration.
5. Basecamp

It is the most popular project management application. Its UI makes cooperation


between teammates and customers quite an exciting experience. Basecamp allows
you to:
 Create and accumulate to-do lists
 Keep performance records

HARSHIT TRIPATHI-DEPSTAR(CSE) 23
SOFTWARE ENGINEERING(CS346) D21DCS165

 Keep performance records


 Manage and share different files
 Plan and schedule dates and discussions
 Make project progress reports

This application has great responsiveness, is user-friendly, and has lots of plug-in
services. Yet, you cannot integrate it with Google Drive, Dropbox, and other apps.
To do so, you will need to search for certain services.

HARSHIT TRIPATHI-DEPSTAR(CSE) 24
SOFTWARE ENGINEERING(CS346) D21DCS165

CASE STUDY ON E-LEARNING

OVERVIEW:

E-learning is a type of learning conducted digitally via electronic media, typically involving
the internet. It can be accessed via most electronic devices including a computer, laptop, tablet
or smartphone, making it a versatile and easy way for students to learn wherever they are.

It has revolutionized the conventional method of chalk and board style of learning imparted to
the students. Unlike this, e-Learning education makes giving and receiving simpler, prolific, and
productive.

Risk Analysis & Management


What is Risk?

"Tomorrow problems are today's risk." Hence, a clear definition of a "risk" is a problem that
could cause some loss or threaten the progress of the project, but which has not happened yet.

These potential issues might harm cost, schedule or technical success of the project and the
quality of our software device, or project team morale.

Risk Management is the system of identifying addressing and eliminating these problems before
they can damage the project.

Different methods are required to address these two kinds of issues.

Risk Management

A software project can be concerned with a large variety of risks. In order to be adept to
systematically identify the significant risks which might affect a software project, it is essential
to classify risks into different classes. The project manager can then check which risks from each
class are relevant to the project.

There are three main classifications of risks which can affect a software project:

1.Project risks

2.Technical risks

3.Business risks

1. Project risks: Project risks concern differ forms of budgetary, schedule, personnel, resource,
and customer-related problems. A vital project risk is schedule slippage. Since the software is
intangible, it is very tough to monitor and control a software project. It is very tough to control
something which cannot be identified. For any manufacturing program, such as the
manufacturing of cars, the plan executive can recognize the product taking shape.

HARSHIT TRIPATHI-DEPSTAR(CSE) 25
SOFTWARE ENGINEERING(CS346) D21DCS165

2. Technical risks: Technical risks concern potential method, implementation, interfacing,


testing, and maintenance issue. It also consists of an ambiguous specification, incomplete
specification, changing specification, technical uncertainty, and technical obsolescence. Most
technical risks appear due to the development team's insufficient knowledge about the project.

3. Business risks: This type of risks contains risks of building an excellent product that no one
need, losing budgetary or personnel commitments, etc.

Principle of Risk Management

1. Global Perspective: In this, we review the bigger system description, design, and
implementation. We look at the chance and the impact the risk is going to have.
2. Take a forward-looking view: Consider the threat which may appear in the future and
create future plans for directing the next events.
3. Open Communication: This is to allow the free flow of communications between the client
and the team members so that they have certainty about the risks.
4. Integrated management: In this method risk management is made an integral part of
project management.
5. Continuous process: In this phase, the risks are tracked continuously throughout the risk
management paradigm.

HARSHIT TRIPATHI-DEPSTAR(CSE) 26
SOFTWARE ENGINEERING(CS346) D21DCS165

Case Study on Risk Management of E-Learning

TABLE 1:

Risk Summary Risk Probability Impact


Category (1-4)

DDos Attack Technical 50% 2


Risk

Database Query Programmatic 70% 2


Speed Risk

Cross Browser Operational 40% 1


Compatibilities Risk

Huge Traffic Technical 50% 2


Risk
TABLE 2:

PROJECT NAME: E-LEARNING PLATFORM


RISK TYPE: Technical risk, Operational Risk
PRIORITY: 1, 2
RISK FACTOR: 1. Misplacement of objects in the software’s UI or
not responding factors.
2.
PROBABILITY: Technical Risk (60%), Operational Risk (70%)
IMPACT: Risk of loss due to improper process implementation,
failed system or some external event risks.
MONITORING  Proper resource planning, communication within the
APPROACH: team and subject training will be done.
 Continuously will change requirements, reduce
complexity, easy handling with recent and advanced
technology.
CONTENGENCY  Develop multiple models simultaneously.
PLAN:  Gather more data to improve performance of model.
ESTIMATED  Additional time, people and functioning required.
RESOURCES:

CONCLUSION:
Learnt about various software development planning tools and prepared detailed case study on
Risk Management of E-Learning platform.

HARSHIT TRIPATHI-DEPSTAR(CSE) 27
SOFTWARE ENGINEERING(CS346) D21DCS165

PRACTICAL 4
AIM:
List at least 10 software design principals & online/offline tools for
the
software development process and draw the UML diagram (Diagram
Must 1. Use Case, 2. Activity, 3. State, 4. Sequence, 5. Data Flow
(DFD) 6. Class) for Definition A Link:
https://creately.com/blog/diagrams/uml-diagram-types-examples/

Principles Of Software Design:


Should not suffer from “Tunnel Vision” –
While designing the process, it should not suffer from “tunnel vision” which means that is
should not only focus on completing or achieving the aim but on other effects also.

Traceable to analysis model –


The design process should be traceable to the analysis model which means it should satisfy all
the requirements that software requires to develop a high-quality product.

Should not “Reinvent The Wheel” –


The design process should not reinvent the wheel that means it should not waste time or effort
in creating things that already exist. Due to this, the overall development will get increased.

Minimize Intellectual distance –


The design process should reduce the gap between real-world problems and software solutions
for that problem meaning it should simply minimize intellectual distance.

Exhibit uniformity and integration –


The design should display uniformity which means it should be uniform throughout the process
without any change. Integration means it should mix or combine all parts of software i.e.
subsystems into one system.

Accommodate change –
The software should be designed in such a way that it accommodates the change implying that
the software should adjust to the change that is required to be done as per the user’s need.

HARSHIT TRIPATHI-DEPSTAR(CSE) 28
SOFTWARE ENGINEERING(CS346) D21DCS165

Degrade gently –
The software should be designed in such a way that it degrades gracefully which means it
should work properly even if an error occurs during the execution.

Assessed or quality –
The design should be assessed or evaluated for the quality meaning that during the evaluation,
the quality of the design needs to be checked and focused on.

Review to discover errors –


The design should be reviewed which means that the overall evaluation should be done to
check if there is any error present or if it can be minimized.

Design is not coding and coding is not design –


Design means describing the logic of the program to solve any problem and coding is a type of
language that is used for the implementation of a design.

 Online/offline tools for the software development process

1. GitHub

The world’s leading software development platform. GitHub is a web-based Git


repository hosting service. In simple words, it is like a Google Drive for software
projects, where you can find code. When uploading your project, you have the
choice of making it public or private. The community is huge and the project base
even bigger. GitHub is also an excellent place for collaborative development,
where developers can discover, share, and build better software.

Your code needs to be stored, tested, compiled, packaged and deployed in order to
be available for your customers, this is a repetitive task and should be automated to
save you time and reduce human error. Github repositories and actions allows you
to configure a set of tasks that will be executed once you commit or merge code to
a branch. Every project that a student develops at Ubiqum is stored on its personal
Github repo.

2. Atom

As a software developer, you will write code so you will need a text editor, this
could be obvious. There are tons of text editors on the market but for simplicity
and powerful operations we  recommend Atom. It’s a text editor created by
GitHub. An open source code full of integrations to make your life, writing code, a

HARSHIT TRIPATHI-DEPSTAR(CSE) 29
SOFTWARE ENGINEERING(CS346) D21DCS165

lot easier. Ubiqum’s methodology gives you the opportunity to start coding from
day one so Atom will be one of the first tools that you’ll install and use when
enrolling in our programs.

3. Git

Git is a Version Control System (VCS) that allows you to save your work and go
back and forward easily and securely. Also, two or more developers could work on
the same project/file simultaneously. Git is the most used and widely adopted
VCS. At Ubiqum, since day one, we use git to create tasks and ask for a mentor’s
review like in any real developer job.

Git is a free and open source distributed VCS designed to handle everything from
small to very large projects with speed and efficiency. When a developer is
working on something, they have to regularly make changes to the code until they
get to the last version.

What a version control system does is that it saves every change made, allowing
others to collaborate, make changes and contribute. You will also find a copy of
the code of every developer’s work.

4. IntelliJ IDEA

Intellij is an Integrated Development Environment. An IDE integrates all the


tools that you need to develop a platform, so it has a code editor, a compiler, a
debugger, etc. After IntelliJ IDEA’s indexed your source code, it offers fast and
intelligent experience by giving relevant suggestions in every context: instant and
clever code completion, code analysis and reliable refactoring tools.

With an Integrated Development Environment (IDE) you will also write code but 
it provides you, as well, with tools to execute several tasks that a text editor can’t,
such as debugging and test code, executing a terminal, building automations, add
libraries, to name some. IntelliJ is a proprietary IDE developed by JetBrains, it has
a community version (very complete) and an enterprise edition with more features.
When coding Java at Ubiqum we use IntelliJ to create, debug, and test your code.

5. ESLint

ESLint is an static code analysis tool. While you are developing code, mistakes
are part of the process, linters are here to help us to detect, suggest a solution and
even solve some of the errors that can exist on our code. For each language there
are plenty of options. ESLint is the most popular linter for JavaScript, it can extend
configuration files from organizations like Airbnb and follow their code rules.
At Ubiqum we configure ESLint on all projects so our students start coding
following best practices.

HARSHIT TRIPATHI-DEPSTAR(CSE) 30
SOFTWARE ENGINEERING(CS346) D21DCS165

6. Terminator

Terminator is a terminal emulator. Use git (and more) commands, install


packages, run your app, and check your network. These are some of the activities
you will do in a terminal. Every OS has its own terminal installed, but there are
always more options, Terminator is a good one. It allows you to open several
sessions on a single window and personalize each one. For the sake of simplicity
our students use their OS native terminal. Once they gain experience and require a
deeper use of a terminal, they’ll end up using, optionally, Terminator.

7. Slack

Code is written in a community of developers, almost nobody will create a


productive and robust app for the market by itself. Development teams that follow
agile methodology will be 10 people tops, it shouldn’t be an issue to communicate
between the team, nevertheless there are plenty of tools to communicate that
sometimes produce the opposite effect. 

Slack is where work flows. It’s where the people you need, the information you
share, and the tools you use come together to get things done. Slack is an amazing
app that all of Ubiqum team members and students use for communication. Slack
really helps to reduce the amount of daily emails, plus it increased communication
between different teams. In Slack we create different channels and always have a
common one, where we share company news, jokes, etc. I would say it has united
us even more! Also, it helps you to stay focused as each channel has its own topic;
you always know where to find information and where to ask a question regarding
a particular topic and instantly receive an answer. Also, you have a chat option
which you can use to speak directly with each member of the team in real time,
between channels. If this wasn’t enough, there is also a drag and drop that’s really
nice to use, a feature that enables you to share all sorts of files and add comments
to them, or even tag people. Highly recommended! However, I am pretty sure you
already use it :)

HARSHIT TRIPATHI-DEPSTAR(CSE) 31
SOFTWARE ENGINEERING(CS346) D21DCS165

8. Asana

The ultimate goal of software developers is to deliver code to a production ready


app, there will be small iterations (sprints) to divide big tasks (epics) into smaller
ones (stories) and obtain a releasable portion of the final product. To be able to
handle this in a structured way there is a list of all tasks (product backlog) and a
smaller one (sprint backlog) for the current iteration. 

Asana is the easiest way for teams to track their work. It is a task management tool
that allows teams to share, plan, organise, and track the progress of the tasks that
each member is working on. It is simple, easy in usage and free for up to 30 users
in a team. Each team can create its workplace that will have projects and project
tasks; each task can have notes, comments, attachments and tags.At Ubiqum we
use it to follow all our operations tasks.

9. Postman

Once a developer starts creating or consuming APIs you need a tool to execute
your HTTP requests and interact with the backend quickly and without major
implementations. Postman allows you to build, test, debug, document, monitor,
and publish your APIs in a simple and clean way. Our students at Ubiqum learn to
use Postman while developing their own APIs.

10. Google Docs

HARSHIT TRIPATHI-DEPSTAR(CSE) 32
SOFTWARE ENGINEERING(CS346) D21DCS165

UML Diagrams
1. Use case Diagram

2. Activity Diagram

HARSHIT TRIPATHI-DEPSTAR(CSE) 33
SOFTWARE ENGINEERING(CS346) D21DCS165

3. State Diagram

4. Sequence Diagram

5. Data Flow Diagram (DFD)


HARSHIT TRIPATHI-DEPSTAR(CSE) 34
SOFTWARE ENGINEERING(CS346) D21DCS165

6. Class Diagram

HARSHIT TRIPATHI-DEPSTAR(CSE) 35
SOFTWARE ENGINEERING(CS346) D21DCS165

PRACTICAL 5
HARSHIT TRIPATHI-DEPSTAR(CSE) 36
SOFTWARE ENGINEERING(CS346) D21DCS165

AIM:
Design the Software Requirement Specification (SRS) document on
Definition A desktop application in IEEE format only. (Excluding UML
Diagram)
A Case Study (IEEE Format)
hpr MOTORS
Harshit Tripathi, Raj Patel, Pritesh Sorathia
Abstract  System Analysis
 System Design
This paper advocates the use of the “case
study” to building a website on topic ‘hpr  System Implementation and testing
MOTORS’.  Hosting and future enhancements.

After an account of the use of case


studies, use of vehicles, for all age groups
without ownership is in high demand and
hence this website, that will provide all
kind of vehicles at rental services.
The paper describes a project to develop a
comprehensive and complete case study,
along with supporting educational
material. The case study is designed to
showcase the tools and technologies used
in developing this website, purpose and
working of it.
Introduction
This paper provides a description of a
website project, in the Department of
Computer and Software Engineering at
CHARUSAT UNIVERSITY. Informally
it is called the “Case Study Project”. The
project team consists of one professor of
software engineering and three graduating
students in the Bachelors of Computer
Science and Engineering program. The
initial phase of the project, reported in this
paper, was supported by our faculty of
SGP.
The Case Study project has the same
purpose, with the following more specific
objectives:
 Project Management
 System Requirement Study

HARSHIT TRIPATHI-DEPSTAR(CSE) 37

You might also like