Professional Documents
Culture Documents
Practical SE (SRS) 2
Practical SE (SRS) 2
Practical SE (SRS) 2
SOFTWARE ENGINEERING
(3161605)
The main motto of any laboratory/practical/field work is to enhance required skills and create ability
amongst students to solve real-time problems by developing relevant competencies in the psychomotor
domain. By keeping this in view, GTU has designed a competency-focused outcome- based curriculum
for engineering degree programs where sufficient weightage is given to practical work. It shows the
importance of enhancement of skills amongst the students, and it pays attention to utilizing every second
of time allotted for practicals amongst students, instructors, and faculty members to achieve relevant
outcomes by performing the experiments rather than merely study-type experiments. It is a must for the
effective implementation of a competency-focused outcome-based curriculum that every practical is
keenly designed to serve as a tool to develop and enhance relevant competency required by the various
industry among every student. These psychomotor skills are very difficult to develop through traditional
chalk-and-board content delivery methods in the classroom. Accordingly, this lab manual is designed
to focus on industry-defined relevant outcomes rather than the old practice of conducting practicals to
prove concepts and theories.
By using this lab manual, students can go through the relevant theory and procedure in advance before
the actual performance, which creates interest, and students can have a basic idea prior to the
performance. This, in turn, enhances pre-determined outcomes amongst students. Each experiment in
this manual begins with competency, industry-relevant skills, course outcomes as well as practical
outcomes (objectives). The students will also achieve safety and necessary precautions to be taken while
performing practical.
This manual also provides guidelines to faculty members to facilitate student-centric lab activities
through each experiment by arranging and managing necessary resources in order that the students
follow the procedures with required safety and necessary precautions to achieve the outcomes. It also
gives an idea of how students will be assessed by providing rubrics.
Software Engineering is an application of a systematic, defined, and measurable approach that begins
with requirement specification and progresses with planning, modeling, and testing, and concludes with
deployment. It is a layered paradigm that comprises processes, methods, and tools with the bedrock of
quality focus. The Software Engineering approach's main purpose is committed to developing the
software products within the stipulated time and budget with more quality. Quality product motivates
firmness, commodity, and delight.
Utmost care has been taken while preparing this lab manual; however ,there is always a chance of
improvement. Therefore, we welcome constructive suggestions for improvement and removal of
errors, if any.
Soft
Software Engineering (3161605)
1. Teacher should provide the guideline with demonstration of practical to the students with
all features.
2. Teacher shall explain basic concepts/theory related to the experiment to the students before
starting of each practical
3. Involve all the students in performance of each experiment.
4. Teacher is expected to share the skills and competencies to be developed in the students
and ensure that the respective skills and competencies are developed in the students after
the completion of the experimentation.
5. Teachers should give opportunity to students for hands-on experience after the
demonstration.
6. Teacher may provide additional knowledge and skills to the students even though not covered
in the manual but are expected from the students by concerned industry.
7. Give practical assignment and assess the performance of students based on task assigned to
check whether it is as per the instructions or not.
8. Teacher is expected to refer complete curriculum of the course and follow the guidelines
for implementation.
9.
Instructions for Students
1. Students are expected to carefully listen to all the theory classes delivered by the faculty members
and understand the COs, content of the course, teaching and examination scheme, skill set to be
developed etc.
2. Students shall organize the work in the group and make record of all observations.
3. Students shall develop maintenance skill as expected by industries.
4. Student shall attempt to develop related hand-on skills and build confidence. Student shall develop the
habits of evolving more ideas, innovations, skills etc. apart from those included in scope of manual.
5. Student shall refer technical magazines and data books.Student should develop a habit of submitting the
experimentation work as per the schedule andshe/he should be well prepared for the same. included in scope of
manual.
6. Student shall refer technical magazines and data books.
7. Student should develop a habit of submitting the experimentation work as per the schedule and
she/he should be well prepared for the same.
Soft
Software Engineering (3161605)
Soft
Software Engineering (3161605)
Soft
Software Engineering (3161605)
Index (Progressive Assessment Sheet)
1. Student has to perform all the practical as described in the practical list.
2. For performing the practical list, student can able to work individually or work in a team as per
subject teacher guidelines.
3. After establishing the team, every team will have to identify the problem area / definition for
performing the laboratory work.
4. Every team has to approve their problem definition to respective faculty member within 15 days
of the beginning of the semester.
5. Once the problem definition is approved by the faculty member, every team has to perform all
the practical based on their respective problem definition.
Soft
Software Engineering (3161605)
Practical – 1
AIM: Study of various type of Software Process models with comparison and find out which process
model will be appropriate for your selected Project.
Objectives: To learn different process models and identify suitable model for the project development.
• Theory:
A software process is defined as a collection of work activities, actions, and tasks that are
performed when some work product is to be created.
Waterfall model.
The Waterfall model progresses through several distinct phases:
3. Implementation: Based on the system design, the actual system is developed in small units or
programs. Each unit is developed and tested individually in a process known as Unit Testing.
4. Integration and Testing: Once all the individual units are developed and tested, they are integrated into
a complete system. The integrated system is then tested thoroughly for any faults or failures.
5. Deployment of the System: After successful testing, the product is deployed in the customer environment
or released into the market.
6. Maintenance: As the system is used in the client environment, issues may arise. To address these, patches
are released. Additionally, new versions of the product may be released to enhance its features.
Maintenance ensures that these changes are delivered to the customer environment.
Soft
Software Engineering (3161605)
2. V model.
1. Business Requirement Analysis: This initial step involves understanding the product requirements from
the customer's perspective. It requires detailed communication to grasp the customer's expectations and
exact requirements.
2. System Design: In this stage, system engineers analyze and interpret the business aspects of the proposed
system by studying the user requirements document.
3. Architecture Design: The architecture design phase involves selecting a baseline architecture that
comprehensively addresses all requirements. This typically includes a list of modules, brief functionality
of each module, interface relationships, dependencies, database tables, architecture diagrams, technology
details, etc. Integration testing is also carried out in this phase.
4. Module Design: During this phase, the system is broken down into small modules. Detailed designs of
these modules are specified, which is known as Low-Level Design.
5. Coding Phase: After the design phase, the coding phase begins. Based on the requirements, a suitable
programming language is chosen. Coding is done following specific guidelines and standards. Before
checking in the repository, the final build is optimized for better performance. The code also undergoes
many code reviews to ensure its performance.
Soft
Software Engineering (3161605)
There are the various phases of Validation Phase of V-model:
1. Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed during the module design phase.
These UTPs are executed to eliminate errors at code level or unit level. A unit is the smallest entity
which can independently exist, e.g., a program module. Unit testing verifies that the smallest entity can
function correctly when isolated from the rest of the codes/ units.
2. Integration Testing: Integration Test Plans are developed during the Architectural Design Phase. These
tests verify that groups created and tested independently can coexist and communicate among
themselves.
3. System Testing: System Tests Plans are developed during System Design Phase. Unlike Unit and
Integration Test Plans, System Tests Plans are composed by the client’s business team. System Test
ensures that expectations from an application developer are met.
4. Acceptance Testing: Acceptance testing is related to the business requirement analysis part. It includes
testing the software product in user atmosphere. Acceptance tests reveal the compatibility problems with
the different systems, which is available within the user atmosphere. It conjointly discovers the non-
functional problems like load and performance defects within the real user atmosphere.
• Incremental model.
• When requirements are complex: Breaking them down into smaller chunks makes them easier to handle.
• For lengthy development schedules: Incremental development allows for regular releases, keeping
stakeholders engaged.
• With less experienced teams: It allows for learning and improvement over successive iterations.
Soft
Software Engineering (3161605)
• When quick product releases are required: Incremental development enables rapid, iterative
improvements.
• For prioritized requirements: Allows development of high-priority features first, ensuring essential
functionality is delivered early.
• RAD model.
1. Business Modelling: This phase defines the flow of information among business functions. It answers
questions like what data drives the business process, who generates it, where does it go, who processes it,
and so on.
2. Data Modelling: The data collected from business modeling is refined into a set of data objects (entities)
needed to support the business. Attributes (characteristics of each entity) are identified, and the
relationships between these data objects (entities) are defined.
3. Process Modelling: Information objects 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.
4. Application Generation: This phase involves using automated tools to facilitate the construction of the
software.
5. Testing & Turnover: Many of the programming components have already been tested since RAD
emphasizes reuse. This reduces overall testing time. However, the new parts must be tested, and all
interfaces must be fully exercised
Agile model.
Soft
Software Engineering (3161605)
1. Objective setting: Each cycle in the spiral starts with the identification of purpose for that cycle, the
various alternatives that are possible for achieving the targets, and the constraints that exists.
2. Risk Assessment and reduction: The next phase in the cycle is to calculate these various alternatives
based on the goals and constraints. The focus of evaluation in this stage is located on the risk perception
for the project.
3. Development and validation: The next phase is to develop strategies that resolve uncertainties and
risks. This process may include activities such as benchmarking, simulation, and prototyping.
4. Planning: Finally, the next step is planned. The project is reviewed, and a choice made whether to
continue with a further period of the spiral. If it is determined to keep, plans are drawn up for the next
step of the project.
• The development phase depends on the remaining risks. For example, if performance or user-interface
risks are treated more essential than the program development risks, the next phase may be an evolutionary
development that includes developing a more detailed prototype for solving the risks.
• The risk-driven feature of the spiral model allows it to accommodate any mixture of a specification-
oriented, prototype-oriented, simulation-oriented, or another type of approach. An essential element of the
model is that each period of the spiral is completed by a review that includes all the products developed
during that cycle, including plans for the next cycle. The spiral model works for development as well as
enhancement projects.
Soft
Software Engineering (3161605)
• Prototype model.
The prototype model requires that before carrying out the development of actual software, a working
prototype of the system should be built. A prototype is a toy implementation of the system. A
prototype usually turns out to be a very crude version of the actual system, possible exhibiting limited
functional capabilities, low reliability, and inefficient performance as compared to actual software. In
many instances, the client only has a general view of what is expected from the software product. In
such a scenario where there is an absence of detailed information regarding the input to the system,
the processing needs, and the output requirement, the prototyping model may be employed.
(b) Customer Collaboration: Agile places a strong emphasis on customer collaboration throughout the
development process. By involving customers or stakeholders in regular feedback sessions, Agile teams
ensure that the delivered software meets their expectations and addresses their needs more accurately,
resulting in higher customer satisfaction.
(c) Faster Time-to-Market: Agile methodologies promote iterative development and incremental delivery
of working software. This approach allows for faster delivery of usable features or products, enabling
businesses to respond to market demands more swiftly and gain a competitive edge.
(d) Improved Quality: Agile practices, such as continuous integration, automated testing, and frequent code
reviews, contribute to higher software quality. By testing and validating software increments regularly,
Agile teams can identify and address issues early in the development process, leading to fewer defects
and higher overall product quality.
(e) Enhanced Team Collaboration: Agile fosters a collaborative and cross-functional team environment.
Team members work closely together, share knowledge and responsibilities, and collectively work
towards achieving project goals. This collaborative approach promotes innovation, creativity, and
shared ownership of the project, resulting in higher team morale and productivity.
(f) Better Risk Management: Agile methodologies, particularly the iterative nature of development, allow
teams to identify and mitigate risks early in the project lifecycle. By breaking down the project into
smaller iterations and focusing on delivering value incrementally, Agile teams can address risks
proactively, making the project more resilient to potential challenges or uncertainties.
2. Give reasons why all other life cycle models are not selected for this project.
The Agile model is chosen for "Stock Trend Prediction" due to its adaptability and responsiveness, key
for a project evolving with user feedback and market trends. Other models were considered but deemed
less suitable:
• Waterfall Model:
This model is linear and sequential, which means each phase depends on the deliverables of the
previous one. Changes are difficult to implement once the project is underway. In a field like stock
trend prediction, where market conditions can change rapidly, this inflexibility can be a significant
drawback.
• V Model:
Similar to the Waterfall model, the V-Model is also a sequential path of execution of processes. Any
changes in midway or any error that is encountered in the life cycle can be corrected only after the
completion of the entire process. This lack of flexibility can be problematic in a dynamic field like
stock trend prediction.
Soft
Software Engineering (3161605)
• Incremental Model:
For a stock trend prediction website, this model might not be ideal because it requires a clear
understanding of all requirements from the beginning, which might not be possible given the
dynamic nature of stock markets.
• Spiral Model:
While the Spiral model allows for early prototyping and constant improvements, it can be complex
and costly. It’s designed for large and complicated projects. A stock trend prediction website might
not require this level of complexity.
• Prototype Model:
Excluded due to concerns about limited scalability, as prototyping emphasizes quickly building and
refining a model, which could become challenging for " stock trend prediction website ".
• Iterative Model:
The Iterative model could be a viable option as it develops the system through repeated cycles and
in smaller portions at a time. However, it may require more resources than Agile as it involves
repeating phases multiple times until the final system is achieved.
In summary, the Agile model is selected for "Travelling Mate" due to its adaptability and responsiveness,
aligning well with the project's dynamic nature and goals of providing an engaging virtual tourism
experience.
Soft
Software Engineering (3161605)
Quiz:
2. State weather the following statements are true or false. Justify your answer.
a) Software development organizations which follow the iterative waterfall model forproduct
development provide maximum customer satisfaction.
Soft
Software Engineering (3161605)
Suggested Reference:
1. Ian Sommerville, Software engineering, Pearson education Asia
2. Roger S.Pressman, Software Engineering- A practitioner‟s Approach, McGraw-Hill International Editions
Rubrics 1 2 3 4 5 Total
Signature of Faculty:
Soft
Software Engineering (3161605)
Practical – 2
AIM: Discuss the Project Management: Project Planning and Project Scheduling about your Project.
Objectives:
Theory:
Once a project is found to be feasible, software project managers undertake project planning. Project
planning is undertaken and completed even before any development activity starts. Project planning
consists of the following essential activities:
Project-task scheduling is an important project planning activity. It involves deciding which tasks
would be taken up when. In order to schedule the project activities, a software project manager needs to
do the following:
5. Algorithm Development:
• Select appropriate machine learning or statistical models for prediction.
• Develop and train prediction algorithms.
• Optimize algorithms for accuracy and efficiency.
• Validate algorithms using historical data.
6. Website Design and Development
• Design user interface mockups and wireframes.
• Develop frontend components for the website.
Soft
Software Engineering (3161605)
7. Backend Development:
• Set up server infrastructure.
• Develop backend logic for data processing and prediction.
• Implement APIs for communication between frontend and backend.
• Integrate data storage solutions for managing user data and preferences.
9. Deployment:
• Prepare for deployment to production environment.
• Configure servers and databases.
• Deploy the website and prediction model.
• Monitor system performance and stability post-deployment.
1. Data Collection:
• Dependencies:
• Dependent on: Availability of data sources, access permissions, and data fetching tools.
• Precedes: Data preprocessing, algorithm development.
• Predecessor to:
• Data preprocessing: Requires raw data for cleansing and transformation.
• Algorithm development: Needs historical data for training and validation.
2. Data Preprocessing:
• Dependencies:
• Dependent on: Completion of data collection phase.
• Precedes: Algorithm development, model training.
Soft
Software Engineering (3161605)
• Predecessor to:
• Algorithm development: Cleaned and preprocessed data are inputs for building predictive
models.
• Model training: Preprocessed data is used to train and validate prediction algorithms.
3. Algorithm Development:
• Dependencies:
• Dependent on: Availability of preprocessed data, selection of appropriate algorithms.
• Precedes: Model validation, website development.
• Predecessor to:
• Model validation: Developed algorithms are tested and evaluated for performance.
• Website development: Prediction models are integrated into the website for user
interaction.
5. Backend Development:
• Dependencies:
• Dependent on: Finalization of backend requirements, availability of backend developers.
• Precedes: Integration with frontend, deployment.
• Predecessor to:
• Integration with frontend: Backend services are connected to the frontend for data
exchange.
• Deployment: Backend infrastructure is set up and configured before deploying the
website.
4. Establish the most likely estimates for the time durations necessary to complete the activities.
1. Data Collection:
• Estimated Duration: 2-3 weeks
• Explanation: Gathering historical stock market data and obtaining necessary permissions may take some
time. Depending on the complexity of data sources and the availability of APIs, it could take 2-3 weeks
to collect a sufficient amount of data.
2. Data Preprocessing:
• Estimated Duration: 1-2 weeks
• Explanation: Cleaning and preprocessing raw data, handling missing values, and performing exploratory
data analysis can be time-consuming. It may take 1-2 weeks to preprocess the data adequately for further
analysis.
Soft
Software Engineering (3161605)
3. Algorithm Development:
• Estimated Duration: 4-6 weeks
• Explanation: Developing and optimizing prediction algorithms involves experimenting with various
machine learning models, feature engineering techniques, and hyperparameter tuning. It typically
requires iterative testing and refinement, which can span 4-6 weeks.
5. Backend Development:
• Estimated Duration: 2-3 weeks
• Explanation: Setting up server infrastructure, developing backend logic, and implementing APIs can take
2-3 weeks. This includes integrating with databases, implementing authentication mechanisms, and
testing backend services.
7. Deployment:
• Estimated Duration: 1 week
• Explanation: Deploying the website to production servers, configuring server infrastructure, and ensuring
proper setup may take around 1 week. This includes finalizing security measures, monitoring tools, and
deployment pipelines.
1. Data Collection:
• Resources:
• Data scientists or analysts to research and gather historical stock market data.
• Access to financial APIs or data providers.
• Computing resources for data storage and processing.
2. Data Preprocessing:
• Resources:
• Data scientists or analysts skilled in data cleaning and preprocessing techniques.
• Computing resources for data manipulation and transformation.
Soft
Software Engineering (3161605)
3. Algorithm Development:
• Resources:
• Data scientists or machine learning engineers to develop prediction algorithms.
• Software developers proficient in machine learning frameworks (e.g., scikit-learn, TensorFlow).
• Access to computing resources for model training and experimentation.
5. Backend Development:
• Resources:
• Backend developers to build server infrastructure and implement backend logic.
• Database administrators for database setup and management.
• DevOps engineers for server configuration and deployment automation.
• Tools for backend development (e.g., backend frameworks like Django or Flask, database
management systems like PostgreSQL or MongoDB).
7. Deployment:
• Resources:
• DevOps engineers to handle deployment to production servers.
• System administrators for server configuration and maintenance.
• Continuous integration/continuous deployment (CI/CD) pipelines for automated deployment.
• Monitoring tools for tracking system performance post-deployment.
1. Data Collection:
• Starting Date: Month 1, Day 1
• Ending Date: Month 1, Day 21
2. Data Preprocessing:
• Starting Date: Month 1, Day 22
• Ending Date: Month 2, Day 4
Soft
Software Engineering (3161605)
3. Algorithm Development:
• Starting Date: Month 2, Day 5
• Ending Date: Month 3, Day 17
5. Backend Development:
• Starting Date: Month 4, Day 16
• Ending Date: Month 5, Day 3
7. Deployment:
• Starting Date: Month 5, Day 18
• Ending Date: Month 5, Day 25
A critical path is the chain of activities that determines the duration of the project. The first step in
scheduling a software project involves identifying all the tasks necessary to complete the project. A
good knowledge of the intricacies of the project and the development process helps the managers to
effectively identify the important tasks of the project. Next, the large tasks are broken down into a
logical set of small activities which would be assigned to different engineers. The work breakdown
structure formalism helps the manager to breakdown the tasks systematically after the project manager
has broken down the tasks and created the work breakdown structure, he has to find the dependency among
the activities.
Dependency among the different activities determines the order in which the different activities would
be carried out. If an activity A requires the results of another activity B, then activity A must be scheduled
after activity B. In general, the task dependencies define a partial ordering among tasks, i.e. each tasks
may precede a subset of other tasks, but some tasks might not have any precedence ordering defined
between them (called concurrent task). The dependency among the activities is represented inthe form
of an activity network. Once the activity network representation has been worked out, resources are
allocated to each activity.
Resource allocation is typically done using a Gantt chart. After resource allocation is done, a PERT chart
representation is developed. The PERT chart representation is suitable for program monitoring andcontrol.
For task scheduling, the project manager needs to decompose the project tasks into a set of activities. The
time frame when each activity is to be performed is to be determined. The end of each activity is called
milestone. The project manager tracks the progress of a project by monitoring thetimely completion
of the milestones. If he observes that the milestones start getting delayed, then he has to carefully control
the activities, so that the overall deadline can still be met.
Soft
Software Engineering (3161605)
A Gantt chart (Time line chart) is a special type of bar chart where each bar represents an activity. The
bars are drawn along a time line. The length of each bar is proportional to the duration of time planned for
the corresponding activity. Gantt charts are used in software project management are actually an enhanced.
Soft
Software Engineering (3161605)
START
ACTIVITY STATUS ASSIGNED TO - DURETION
DATE
PHASE 2: Design the Architecture Almost Done Aakash & Rajendra 09-02-2024 18-02-2024 9
Gantt Chart
01-02-2024 02-02-2024 03-02-2024 04-02-2024 05-02-2024 06-02-2024 07-02-2024 08-02-2024 09-02-2024
Basic Structure
Basic UI
Tasks
Functional Requirements
Non-Functional Requirements
Security Requirements
PHASE 1:
Security Non-Functional Functional
Basic UI Basic Structure Requirements
Requirements Requirements Requirements
Gathering
START DATE 08-02-2024 06-02-2024 03-02-2024 31-01-2024 28-01-2024 28-01-2024
Duretion 0 1 2 2 2 11
Gantt Chart
04-02-2024 06-02-2024 08-02-2024 10-02-2024 12-02-2024 14-02-2024 16-02-2024 18-02-2024 20-02-2024
Chatting Interface
Responsive UI
Gantt Chart
29-01-2024 03-02-2024 08-02-2024 13-02-2024 18-02-2024 23-02-2024 28-02-2024
PHASE 3: Backend
Adding logic
Tasks
Requirements
Backend
Task Duration ES EF LS LF
(Days)
Requirements Gathering 11 Days 0 3 0 3
Backend 7 Days 7 13 7 13
Connectivity 1 Day 13 21 13 21
Requirements Gathering -> Design the Architecture-> Backend -> Connectivity -> Demo Testing
->Deployment -> Maintenance & Support
Soft
Software Engineering (3161605)
Quiz:
1) Explain project scheduling process.
Soft
Software Engineering (3161605)
2) Explain Software metrics used for software cost estimation
Soft
Software Engineering (3161605)
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Soft
Software Engineering (3161605)
SOFTWARE
REQUIREMNT
SPECIFICATION FOR
“Stock Trend Prediction Website”
Authors
Jha Rajendra
Aakash Makwana
Department of Information and Technology, Government
Engineering College, Modasa
Guided by,
Prof Nainesh Nagekar,
Assistant Professor,
Department of Computer Engineering, Government Engineering
College, Modasa
Date:
Version: 1.0
Soft
Software Engineering (3161605)
AIM: Prepare the Software Requirement Specification (SRS) document for selected project.
Objectives:
1. Learn how to provide a detailed overview of our software product, its parameters and goals.
2. Describes the project's target audience and its user interface, hardware and software requirements.
Theory:
A software requirements specification (SRS) is a document that is created when a detailed description of
all aspects of the software to be built must be specified before the project is to commence. It is important
to note that a formal SRS is not always written. In fact, there are many instances in which effort expended
on an SRS might be better spent in other software engineering activities. However, when software is to be
developed by a third party, when a lack of specification would create severe business issues, or when a
system is extremely complex or business critical, an SRS may be justified.
In order to form a good SRS, here you will see some points which can be used and should be considered to
form a structure of good SRS. These are as follows:
1. Introduction
• Purpose of this document
• Scope of this document
• Overview
2. General description
3. Functional Requirements
4. Interface Requirements
5. Performance Requirements
6. Design Constraints
7. Non-Functional Attributes
8. Preliminary Schedule and Budget
9. Appendices
Soft
Software Engineering (3161605)
1. Introduction…………………………………………………………………..
• Overview
2. General description…………………………………………………………..
3. Functional Requirements…………………………………………………….
4. Interface Requirements………………………………………………………
5. Performance Requirements…………………………………………………..
6. Design Constraints……………………………………………………………
7. Non-Functional Attributes………………………………................................
Soft
Software Engineering (3161605)
Soft
Software Engineering (3161605)
1) INTRODUCTION
• Overview
There are already various Stock Trend Prediction Websites available but as we
observe, there are some areas that have not been adequately addressed. We are taking
those points into consideration and working on them to develop a more
comprehensive and user-friendly Stock Trend Prediction Website. Our focus is on
improving the accuracy of predictions, enhancing the user interface, and providing
real-time updates and alerts to give users a better experience and more valuable
insights into stock trends.
2) General Description
Key Features:
• In our project, users get a unique facility for predicting stock trends. They can choose
their preferred stocks and get predictions at their fingertips.
• We also provide an option for users to manage their portfolio, keeping track of their
investments and returns.
Project Function:
1. Stock Trend Prediction: Predict future trends of stocks using historical data and
machine learning algorithms.
2. Stock Information: Provide detailed information about various stocks, including
current price, historical trends, market cap, etc.
3. Portfolio Management: Allow users to create and manage their portfolio of stocks.
4. Real-time Updates: Provide real-time updates on stock trends.
Soft
Software Engineering (3161605)
3) INTRODUCTION
Output The predicted stock trend and a graph visualizing the trend Processing: The system
fetches the historical data for the selected stock, applies the prediction model, and if
the prediction is successful, displays the predicted trend. If there’s an issue with the
prediction, an error message is displayed.
Output Updated portfolio with selected stocks Processing: The system allows users to manage
their portfolio of stocks. They can add new stocks to their portfolio or remove existing
ones. The system keeps track of all the stocks in the user’s portfolio and displays them
in a user-friendly format.
R.2.2: Real-time Updates and Alerts
Input User’s preference for receiving updates and alerts
Output Real-time updates and alerts based on user’s preference Processing: The system
provides real-time updates on the stock trends in the user’s portfolio. It also sends alerts
when significant events occur, such as drastic changes in stock trends. Users can
customize their preferences for receiving these updates and alerts.
R.2.3: Historical Data Visualization
Input User-selected stock and time period.
Output Output: A graph visualizing the historical trend of the selected stock Processing: The
system fetches the historical data for the selected stock and time period, and visualizes it
in a graph. This helps users understand the past performance of the stock.
Soft
Software Engineering (3161605)
4) Interface Requirements:
User Interfaces
The user interface should be intuitive and easy to navigate. It should include features like
login/registration, a dashboard for viewing stock trends, a search function for finding
specific stocks, and a user profile section. The interface should be responsive, meaning it
should provide a consistent experience across different devices and screen sizes.
Hardware Interfaces
As a web-based application, the stock trend prediction website doesn’t directly interact
with hardware. It should be accessible from any device with a web browser and internet
connection. However, the server hosting the website will have hardware requirements,
such as sufficient storage to hold the website data and enough processing power to
handle user requests.
Software Interfaces
The website will need to interface with various software components. This includes the
web server software (like Apache or Nginx), the database management system (like
MySQL or PostgreSQL), and potentially other services for things like user authentication
or email notifications. Additionally, the website will likely use APIs to fetch real-time
and historical stock data.
Communication Interfaces
The website will communicate with users primarily over the HTTP/HTTPS protocols. It
may also use WebSocket for real-time updates of stock trends. If the website includes
features like email notifications, it will also need to use SMTP for sending emails.
5) Performance Requirements
Response Time:
The system should respond to user interactions within a specified time frame, such as: 95%
of requests must be processed within 2 seconds.
System Availability:
The Stock Trend Prediction Website should be available 24/7, with minimal downtime for
maintenance or upgrades. Define an acceptable uptime percentage (e.g., 99.9%
availability) for the system.
Soft
Software Engineering (3161605)
Scalability:
The system should be able to handle increased load during peak trading periods. Define
how many concurrent users or transactions the system should support without performance
degradation. Implement load balancing and auto-scaling mechanisms to distribute traffic
efficiently.
Resource Utilization:
Monitor and optimize CPU, memory, and storage utilization to ensure efficient resource
management. Set limits on resource usage to prevent resource exhaustion.
Database Performance:
Database queries, especially those related to stock trend prediction and portfolio
management, should execute quickly. Implement database indexing and caching
mechanisms for faster data retrieval. Define acceptable database response times for various
operations (e.g., stock search, portfolio retrieval).
Network Performance:
Ensure fast and reliable communication between the Stock Trend Prediction Website and
external systems (e.g., real-time stock data providers, third-party integrations). Define
acceptable network latency and bandwidth requirements.
6) Design Constraints:
Technology Constraints:
Legacy Systems: Integration with existing legacy systems may impose constraints on the
choice of technology and architecture.
Platform: The Stock Trend Prediction Website may need to be developed for specific platforms
or operating systems (e.g., Windows, iOS, Android).
Budget Constraints:
Cost Limitations: There may be budget limitations that affect the choice of technologies,
hardware, and software licenses.
Resource Availability: Constraints on the availability of financial and human resources can
impact system development.
Security Constraints:
Security Policies: Compliance with security policies and standards, which may affect system
design and access control.
Data Constraints:
Data Volume: Constraints related to the volume of data to be stored and processed, which can
affect database design and storage solutions.
Soft
Software Engineering (3161605)
7) Non-Functional Attributes
Performance:
Response Time: The website should load within 2 seconds to ensure a smooth user experience.
Throughput: The system should be able to handle thousands of concurrent users or transactions
per second, especially during peak trading hours.
Security:
Data Security: All sensitive data, including user information and transaction details, should be
encrypted. Access control mechanisms should be in place to prevent unauthorized access.
Compliance: The website should comply with all relevant data protection regulations (e.g.,
GDPR) and industry security standards.
Availability:
Uptime: The website should be available 24/7, with minimal downtime for maintenance. This
is crucial as stock markets operate round the clock across different time zones.
Fault Tolerance: The system should be designed to continue operating even in the event of
hardware or software failures.
Reliability:
The website should consistently provide accurate and up-to-date stock trend predictions
without errors or failures.
MTBF (Mean Time Between Failures) and MTTR (Mean Time to Repair) should be optimized
to ensure high system reliability and minimal disruption to users.
Soft
Software Engineering (3161605)
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Soft
Software Engineering (3161605)
Practical – 4
AIM: Draw the Data Flow Diagram for your selected Project.
• There is a prominent difference between DFD and Flowchart. The flowchart depicts
flow of control in program modules. DFDs depict flow of data in the system at
various levels. DFD does not contain any control or branch elements.
• Level 0- Highest abstraction level DFD is known as Level 0 DFD, which depicts the
entire information system as one diagram concealing all the underlying details. Level
0 DFDs are also known as context level DFDs.
• The Level 0 DFD is broken down into more specific, Level 1 DFD. Level 1 DFD
depicts basic modules in the system and flow of data among various modules. Level 1
DFD also mentions basic processes and sources of information.
Soft
Software Engineering (3161605)
• At this level. DFD shows how data flows inside the modules mentioned in Level 1.
Higher level DFDS can be transformed into more specific lower level DFDs with
deeper level of understanding unless the desired level of specification is achieved.
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Soft
Software Engineering (3161605)
Practical – 5
• Objectives:
1. Identify entity sets, their attributes, and various relationships
2. Represent the data model through ER diagram
• Theory:
Entity-Relationship model is used to represent a logical design of a database to be
created. In ERmodel, real world objects (or concepts) are abstracted as entities, and
different possible associations among them are modeled as relationships.
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Soft
Software Engineering (3161605)
Practical – 6
AIM: Draw Usecase Diagram for your selected Project .
• Objectives:
1. To write different scenarios of the system‟s execution.
2. To explore various UML use case diagram components to draw USECASE
diagram.
• Theory:
• A use case diagram is used to represent the dynamic behavior of a system. It
encapsulatesthe system's functionality by incorporating use cases, actors, and
their relationships. It models the tasks, services, and functions required by a
system/subsystem of an application. It depicts the high-level functionality of
a system and also tells how the user handles a system.
Inheritance can be used between actors to show that all use cases of one actor
are available to the other:
If several use cases include, as part of their functionality, another use case, we
have a special way to show this in a use-case diagram with an <<include>>
relation.
Soft
Software Engineering (3161605)
Quiz:
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty:
Soft
Software Engineering (3161605)
Practical – 7
AIM: Solve the problem by applying basic COCOMO model.
• Objectives:
1. Categorize projects using COCOMO, and estimate effort and
development time requiredfor a project.
• Theory
A software project is not just about writing a few hundred lines of source code
to achieve a particular objective. The scope of a software project is
comparatively quite large, and such a project could take several years to
complete. However, the phrase "quite large" could only give some (possibly
vague) qualitative information. As in any other science and engineering
discipline, one would be interested to measure how complex a project is. One
of the major activities of the project planning phase, therefore, is to estimate
various project parameters in order to take proper decisions. Some important
project parameters that are estimated include:
Project size: What would be the size of the code written say, in number of
lines, files,modules?
Cost: How much would it cost to develop a software? A software may be
just pieces ofcode, but one has to pay to the managers, developers, and other
project personnel.
Duration: How long would it be before the software is delivered to the clients?
Effort: How much effort from the team members would be required to
create thesoftware?
In this experiment we will focus on two methods for estimating project
metrics:COCOMO
where
Software project a b c
Organic 2.0 1.2 0.8
Semi-detached 2.8 1.5 1.1
Embedded 3.3 1.8 1.3
Assumptions:
• Size estimation: Estimated size of the project is 2000 lines of code (LOC).
• Mode selection: Organic mode is chosen as the project is relatively small and
straightforward.
• Productivity: Assume a productivity factor of 20 person-months per KLOC (thousand
lines of code).
• Team Size: Assume a team size of 2 developers.
• Scheduling: Assume a standard schedule with no specific constraints.
Soft
Software Engineering (3161605)
• Solution:
1. Determine Size
Estimated size of the project = 2000 LOC
2. Select Mode
Since the size of the project is relatively small and the requirements are
clear, we’ll choose the Organic mode.
3. Calculate Effort
Effort = 2.4 * (LOC)^1.05 for Organic mode (where LOC is in KLOC)
Since 1 KLOC = 1000 LOC, for your project LOC = 2000 LOC = 2 KLOC
So, Effort = 2.4 * (2)^1.05 = 5.07 person-months
4. Calculate Duration
Duration = Effort / Team Size
Duration = 5.07 person-months / 2 developers = 2.54 months.
• Estimation Plan
In this part of the Initial Plan, the cost and schedule for conducting the project as well
as methods, tools and techniques used to estimate project cost, schedule and resource
requirements are specified.
Since it is a convenient method to use in the early phases of project development, the
size of the Online Airline Reservation System is estimated according to the function-
point (FP) method [8]. In counting function points, external inputs, external outputs,
external enquiries, internal files and external interfaces of the software are identified.
Each instance for each separate class is multiplied with the associated weight factor.
The overall sum is calculated to find the function points. Weights for simple, average
and complex inputs, outputs, enquires, files and external interfaces, which are used in
calculations, are depicted below:
In order to systematically find complexity levels, references to file accesses, record type accesses and
data elements are counted and complexity scores are determined accordingly. The table below depicts
the factors used for complexity calculation. For example, an external input that reference four files and
nine data types (3 + 2) is considered ‘complex’. (2 - 3 simple -denoted by the letter ‘S’, 4 average -
denoted by the letter ‘A’, 5- 6 complex -denoted by the letter ‘C’)
Stock Graph Input Entered input file Stock Stock graph data S 3
graph
Future Price Graph Input Entered input file Future Future price graph data S 3
price
graph
Closing Price v/s Time Graph Entered input file Closing Closing Price v/s Time S 3
Input Price Graph Data
v/s
Time
Graph
Closing Price v/s Time Graph Entered input file Closing Closing Price v/s Time S 3
Input 100MA Price Graph Input 100MA
v/s Data
Time
Graph
100MA
Closing Price v/s Time Graph Entered input file Closing Closing Price v/s Time S 4
Input 200MA Price Graph Input 200MA
v/s Data
Time
Graph
200MA
Soft
Software Engineering (3161605)
Closing Price vs Time chart Entered input file Closing Closing Price vs Time S 4
With 100 MA and 200 MA Price vs chart With 100 MA and
Time 200 MA Data
chart
With
100 MA
and 200
MA
Graph
EXTERNAL OUTPUTS
Closing Price v/s Time Graph None - Closing Price v/s Time S 4
Output Graph
Closing Price v/s Time Graph None - Closing Price v/s Time S 4
100MA Output 100MA Graph
Closing Price v/s Time Graph None - Closing Price v/s Time S 4
200MA Output 200MA Graph
INTERNAL FILES
EXTERNAL ENQUIRIES
EXTERNAL INTERFACES
Cost of the staff ($) 0.89* 2000 = 1780 1.77 * 2000 = 3540 1.995 * 2000 = 3990 9310
Cost of the
subcontracted processes 64 * 10 = 640 64 * 10 = 640 64 * 10 = 640 1920
($)
Cost of the
electricity consumed 30 30 30 90
($)
TOTAL
2450 4210 4660 11320
COST ($)
Soft
Software Engineering (3161605)
Quiz:
1. Assume that the size of an organic type software product has been estimated to be
32,000 lines of source code. Assume that the average salary of software engineers be
Rs. 15,000/- per month. Determine the effort required to develop the software product
and the nominal development time.
Soft
Software Engineering (3161605)
Suggested Reference:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty: