You are on page 1of 7

SOFTWARE ENGINEERING LAB

B.Tech. II Year I Sem. LTPC


0021

Prerequisites
● A course on “Programming for Problem Solving”.

Co-requisite
● A Course on “Software Engineering”.

Course Objectives:

● To have hands on experience in developing a software project by using various software


engineering principles and methods in each of the phases of software development.

Course Outcomes:

● Ability to translate end-user requirements into system and software requirements

● Ability to generate a high-level design of the system from the software requirements

● Will have experience and/or awareness of testing problems and will be able to develop a
simple testing report
Introduction to Lab:

A Software Engineering Lab, often referred to as a "SE Lab," is a specialized environment or


facility where software engineering practices and principles are applied, studied, and refined.
These labs play a crucial role in both academic and industrial settings and are instrumental in
advancing the field of software engineering.

Purpose and Objectives: A Software Engineering Lab is established with the primary
purpose of conducting research, development, and experimentation in the field of software
engineering. Its objectives include improving software quality, enhancing development
processes, and advancing software engineering knowledge.

Research and Development: SE Labs engage in research activities related to software


development, ranging from designing new methodologies and tools to investigating emerging
technologies and best practices. They are often involved in developing software prototypes,
frameworks, and innovative solutions.

Education and Training: In academic institutions, SE Labs are used for teaching software
engineering courses and providing hands-on experience to students. Practical exposure in a
lab setting is crucial for students to understand software development methodologies and gain
real-world skills.

Tool and Methodology Evaluation: SE Labs are used to evaluate software engineering
tools, frameworks, and methodologies. This includes assessing their effectiveness, efficiency,
and usability in different contexts.

Quality Assurance: Labs play a pivotal role in quality assurance by testing software
applications, identifying bugs and issues, and validating the software against specified
requirements. This ensures that software is reliable and performs as intended.

Collaboration: SE Labs often collaborate with industry partners, research institutions, and
other labs to work on complex projects, share knowledge, and promote the exchange of ideas
and experiences.

Innovation and Experimentation: Labs provide a controlled environment for trying out
new ideas and experimenting with different software development processes. This can lead to
the discovery of more efficient ways of developing software.

Simulation and Modeling: Some SE Labs use simulation and modeling techniques to mimic
software development scenarios, allowing researchers to study the impact of various factors
on the development process.

Interdisciplinary Approach: Software Engineering Labs often adopt an interdisciplinary


approach, combining principles from computer science, engineering, and project management
to address complex software development challenges.

Continuous Improvement: SE Labs promote continuous improvement in software


development methodologies. By analyzing data and feedback from experiments and projects,
they can refine existing processes and develop new strategies.
Adaptive to Industry Trends: These labs keep abreast of emerging trends in software
engineering, including Agile, DevOps, and various programming languages, ensuring that
their research and practices remain relevant.

This lab deals with the analysis and design of a software problem. the tool used in a lab is
visual paradigm. this tool is used for a object oriented design of a problem. We draw a uml
diagram in a Visual paradigm which deals with the objects and classes in a system. The
Unified Modeling Language or UML is a mostly graphical modelling language that is used
to express designs. It is a standardized language in which to specify the artefacts and
components of a software system. It is important to understand that the UML describes a
notation and not a process. It does not put forth a single method or process of design, but
rather is a standardized tool that can be used in a design process.

The Unified Modeling Language (UML) is a standard language for specifying, visualizing,
constructing, and documenting the artifacts of software systems, as well as for business
modeling and other non-software systems. The UML represents a collection of best
engineering practices that have proven successful in the modeling of large and complex
systems.1 The UML is a very important part of developing object oriented software and the
software development process. The UML uses mostly graphical notations to express the
design of software projects. Using the UML helps project teams communicate, explore
potential designs, and validate the architectural design of the software.

Goals of UML

The primary goals in the design of the UML were:

1. Provide users with a ready-to-use, expressive visual modeling language so they


can develop and exchange meaningful models.
2. Provide extensibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development processes.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of the OO tools market.
6. Support higher-level development concepts such as collaborations, frameworks,
patterns and components.
7. Integrate best practices.

Why Use UML?

As the strategic value of software increases for many companies, the industry looks for
techniques to automate the production of software and to improve quality and reduce cost
and time-to-market. These techniques include component technology, visual programming,
patterns and frameworks. Businesses also seek techniques to manage the complexity of
systems as they increase in scope and scale. In particular, they recognize the need to solve
recurring architectural problems, such as physical distribution, concurrency, replication,
security, load balancing and fault tolerance.
UML Diagrams:

Unified Modeling Language (UML) is a standardized modeling language used in software


engineering for visualizing, specifying, constructing, and documenting the artifacts of a
software system. There are several types of UML diagrams, each serving a specific purpose.
The main types of UML diagrams include:

1.Class Diagram: Class diagrams depict the static structure of a system, showing classes,
their attributes, operations, and the relationships between them.

2.Object Diagram: Object diagrams are a snapshot of instances of classes at a particular


point in time, displaying the objects and their relationships.

3.Use Case Diagram: Use case diagrams model the interactions between a system and
external entities, showing the system's functionality as use cases and actors.

4.Sequence Diagram: Sequence diagrams illustrate the dynamic behavior of a system by


showing how objects interact and communicate over time.

5.Collaboration Diagram (formerly known as Communication Diagram): Collaboration


diagrams are similar to sequence diagrams, focusing on the interactions and relationships
between objects.

6.Statechart Diagram: Statechart diagrams represent the state transitions of an object,


showing the various states it can be in and the events that trigger transitions.

7.Activity Diagram: Activity diagrams describe the dynamic behavior of a system by


modeling the flow of activities and actions, including decision points and parallel activities.

8.Component Diagram: Component diagrams show the organization and dependencies of


software components and their interfaces.

9.Deployment Diagram: Deployment diagrams model the physical deployment of software


components on hardware nodes, illustrating how components are distributed across servers or
devices.

10.Package Diagram: Package diagrams organize and display the structure of a system by
grouping related elements into packages or namespaces.
EXPERIMENT NO. 1

AIM: PROBLEM STATEMENT for Smart Web Assignment

Smart Assignment is a web-based application designed to streamline the process of


assignment management and enhance collaboration among students, teachers, and
administrators.

Software Requirement Specification

Hardware Requirements:

o Pentium(R) 4 CPU 2.26 GHz, 256 MB RAM

o Screen resolution of at least 800 x 600 required for proper and complete

viewing of screens. Higher resolution would not be a problem.

o CD ROM Driver

Software Requirements:

 HTML, CSS/Bootstrap, and JavaScript

 Python / Java

 Visual Paradigm CASE Tool

 Any window-based operating system (Windows 10/11)

 WordPad or Microsoft Word


1.1 Define Problem
Smart Assignment is a web-based application designed to streamline the process of
assignment management and enhance collaboration among students, teachers, and
administrators. This project aims to leverage web development technologies to create
an intelligent platform that automates assignment creation, submission, grading, and
feedback, thereby improving the efficiency and effectiveness of the assignment
process. Students can access the platform to view and submit assignments. The
application allows for secure file uploads, ensuring the integrity and confidentiality of
submitted work. The system provides notifications and reminders to students about
upcoming assignment due dates and any updates or clarifications from teachers.

Smart Assignment aims to enhance the assignment management process, promote


collaboration, and improve educational outcomes. By leveraging intelligent
technologies and providing a user-friendly interface, the application streamlines
administrative tasks, enhances student-teacher communication, and facilitates a more
efficient and engaging learning experience.

1.2 Business Requirements


Business requirements of a smart assessment engine encompass several key aspects. Firstly, it
should possess robust functionality to create, deliver, and evaluate assessments efficiently.
This includes the ability to generate various question formats, support adaptive testing, and
provide instant scoring and feedback to users. Secondly, it should offer seamless integration
with existing learning management systems or platforms, enabling easy administration and
data management. Additionally, the smart assessment engine should prioritise data security
and privacy, ensuring the confidentiality and protection of sensitive user information. It
should also have scalability to handle a large number of concurrent users and accommodate
future growth. Furthermore, the engine should be adaptable and customizable to meet the
unique needs of different educational institutions or organisations, allowing for personalised
branding and tailored assessment experiences. Lastly, it should offer comprehensive analytics
and reporting capabilities, enabling administrators to gain insights into performance trends,
identify knowledge gaps, and make data-driven decisions to improve the assessment process
and overall learning outcomes.

1.3 Literature Survey


A literature survey of smart assessment engines reveals a significant body of research
focusing on the development and implementation of intelligent systems designed to
revolutionise the assessment process. Studies demonstrate the potential of smart assessment
engines to improve efficiency, accuracy, and fairness in evaluating student performance
while providing personalised feedback and adaptive learning experiences. Furthermore,
research highlights the importance of designing user-friendly interfaces, ensuring the privacy
and security of data, and addressing potential biases and ethical concerns associated with
these systems. Overall, the literature showcases the promising role of smart assessment
engines in transforming educational assessment practices and advancing the field of
assessment technology.
1.4 Social or Business Impact.
Social Impact: It will make the life of a student on campus much easier. Professors also no
need to carry the big pile of notebooks submitted by students and the transparency of marks
allotment also will be there.

Business Model/Impact: It will also give a positive impression about the university around
the time of admissions and can be made by digitizing the campus.

Conclusion: The problem statement was written successfully by following the steps
described above.

You might also like