SA Practical CS-701
SA Practical CS-701
List of Experiments
Exp 1. Software Architectures lab purpose, and various software process models.
Exp 4. Construction of Software Requirement Specification document for Hotel Management System.
Exp 7. Construction of Software Design Specification document for Hotel Management System.
Exp 8. Construction of Software Implementation Specification document for Hotel Management System.
Exp 10. Construction of Software Testing Specification document for Hotel Management System.
EXP 1. Software Architectures lab purpose, and various software process models?
EXP 1 Solution:
Waterfall Model:
The waterfall model is a sequential, plan driven-process where you must plan and schedule all your activities before
starting the project. Each activity in the waterfall model is represented as a separate phase arranged in linear order.
It has the following phases:
Requirements
Design
Implementation
Testing
Deployment
Maintenance
Each of these phases produces one or more documents that need to be approved before the next phase begins. However, in
practice, these phases are very likely to overlap and may feed information to one another.
The waterfall model is easy to understand and follow. It doesn’t require a lot of customer involvement after the
specification is done. Since it’s inflexible, it can’t adapt to changes. There is no way to see or try the software until the last
phase.
The waterfall model has a rigid structure, so it should be used in cases where the requirements are understood completely
and unlikely to radically change.
V Model:
The V model (Verification and Validation model) is an extension of the waterfall model. All the requirements are
gathered at the start and cannot be changed. You have a corresponding testing activity for each stage. For every phase in
the development cycle, there is an associated testing phase.
The corresponding testing phase of the development phase is planned in parallel, as you can see above.
The V model is highly disciplined, easy to understand, and makes project management easier. But it isn’t good for
complex projects or projects that have unclear or changing requirements. This makes the V model a good choice for
software where downtimes and failures are unacceptable.
Incremental Model:
The incremental model divides the system’s functionality into small increments that are delivered one after the other in
quick succession. The subsequent increments expand on the previous ones until everything has been updated and
implemented.
Incremental development is based on developing an initial implementation, exposing it to user feedback, and evolving it
through new versions. Each iteration passes through the requirements, design, coding, and testing stages.
The incremental model lets stakeholders and developers see results with the first increment. It is efficient as the
developers only focus on what is important and bugs are fixed as they arise, but you need a clear and complete
definition of the whole system before you start.
The incremental model is great for projects that have loosely-coupled parts and projects with complete and clear
requirements.
Iterative Model:
The iterative development model develops a system through building small portions of all the features. This helps to
meet initial scope quickly and release it for feedback.
In the iterative model, you start off by implementing a small set of the software requirements. These are then enhanced
iteratively in the evolving versions until the system is completed. This process model starts with part of the software,
which is then implemented and reviewed to identify further requirements.
The deadline and budget may change throughout the development process, especially for large complex projects. The
iterative model is a good choice for large software that can be easily broken down into modules.
RAD Model:
The Rapid Application Development (RAD model) is based on iterative development and prototyping with little planning
involved. You develop functional modules in parallel for faster product delivery. It involves the following phases:
1. Business modeling
2. Data modeling
3. Process modeling
4. Application generation
5. Testing and turnover
The RAD concept focuses on gathering requirements using focus groups and workshops, reusing software components,
and informal communication.
The RAD model accommodates changing requirements, reduces development time, and increases the reusability of
components. But it can be complex to manage. Therefore, the RAD model is great for systems that need to be produced in
a short time and have known requirements.
Spiral Model:
The spiral model is a risk driven iterative software process model. The spiral model delivers projects in loops. Unlike
other process models, its steps aren’t activities but phases for addressing whatever problem has the greatest risk of
causing a failure.
It was designed to include the best features from the waterfall and introduces risk-assessment.
You have the following phases for each cycle:
1. Address the highest-risk problem and determine the objective and alternate solutions
2. Evaluate the alternatives and identify the risks involved and possible solutions
3. Develop a solution and verify if it’s acceptable
4. Plan for the next cycle
You develop the concept in the first few cycles, and then it evolves into an implementation. Though this model is
great for managing uncertainty, it can be difficult to have stable documentation. The spiral model can be used for
projects with unclear needs or projects still in research and development.
Agile model:
The agile process model encourages continuous iterations of development and testing. Each incremental part is
developed over an iteration, and each iteration is designed to be small and manageable so it can be completed within a few
weeks.
Each iteration focuses on implementing a small set of features completely. It involves customers in the development
process and minimizes documentation by using informal communication.
Agile development considers the following:
Requirements are assumed to change
The system evolves over a series of short iterations
Customers are involved during each iteration
Documentation is done only when needed
EXP 2 Solution:
The object-oriented approach is a popular way to build software because it helps developers create reusable code. Object-
oriented programming (OOP) is a style of coding that focuses on creating objects that can be used in many different ways.
This means that developers can write code once and then reuse it in different parts of the program. OOP can make code
development faster and easier to understand.
However, the object-oriented approach also has some drawbacks. One is that it can be more difficult to read and
understand code written in this style. This is because OOP code can be very complex, with lots of interconnected objects.
This can make it hard to debug and maintain code written in this way.
The event-driven approach is another popular way to develop software. This approach is based on the principle of
responding to events. In event-driven programming, code is written to respond to specific events that occur while the
program is running. For example, an event might be a user clicking on a button or a new piece of data being added to a
database.
Event-driven programming can be used to create code that is more responsive to user input. This can make programs more
user-friendly. Event-driven code can also be easier to read and understand than code written in other styles.
However, the event-driven approach has some drawbacks. One is that it can be more difficult to predict how code will
behave. This is because the code is written to respond to events that may or may not happen. This can make event-driven
code more difficult to debug and maintain.
EXP 3 Solution:
1. Introduction:
The Online Examination System is a web-based application that enables instructors to administer exams online. The
system can be used to create exams, administer exams, and grade exams. The system can also be used to create and
manage question libraries.
2. User Classes and Characteristics:
There are three user classes of the Online Examination System: instructors, students, and administrators. Instructors use
the system to create and administer exams. They can also create and manage question libraries. Students use the system to
take exams. Administrators use the system to manage user accounts and system configuration settings.
3. Functional Requirements:
3.1. Exam Creation Instructors can use the system to create exams. Exams can be created from scratch or by using a
question library. When creating an exam from scratch, instructors can specify the exam name, description, total points,
passing score, and time limit. They can also specify whether the exam is proctored.
3.2. Exam Administration Instructors can use the system to administer exams. When administering an exam,
instructors can specify the date, time, and duration of the exam. They can also specify the location of the exam and the
proctoring method.
3.3. Exam Grading Instructors can use the system to grade exams. The system provides a variety of grading options,
including auto-grading, manual grading, and group grading.
3.4. Question Library Management Instructors can use the system to create and manage question libraries. Question
libraries can be used to create exams.
4. System Requirements:
4.1. Software Requirements The Online Examination System requires a web browser with JavaScript enabled. The
system has been tested with the following browsers:
Google Chrome, Mozilla Firefox, Microsoft Edge
4.2. Hardware Requirements The Online Examination System requires a computer with an internet connection.
5. Implementation Requirements:
5.1. Hosting The Online Examination System is a web-based application and requires a web server for hosting. The
system has been tested with the following web servers:
Apache HTTP Server
Microsoft IIS
5.2. Database The Online Examination System requires a database for storing data. The system has been tested with the
following databases:
MySQL
Microsoft SQL Server
Oracle Database
5.3. Third-Party Libraries The Online Examination System requires the following third-party libraries:
jQuery
Bootstrap
6. Conclusion:
The Online Examination System is a web-based application that enables instructors to administer exams online. The
system can be used to create exams, administer exams, and grade exams. The system can also be used to create and
manage question libraries.
EXP 4. Construction of Software Requirement Specification document for Hotel Management System.
EXP 4 Solution:
1.1 Purpose
This document is the Software Requirements Specification (SRS) for the Hotel Management System (HMS). The purpose
of this document is to define the requirements of the HMS and to provide a detailed description of the functionality of the
system. The document also serves as a contract between the customer and the developer regarding the system to be
developed.
1.4 References
The following documents are referenced in this document:
• [1] Example Reference
1.5 Overview
This section provides an overview of the entire document.
1.5.1 Product Perspective
The HMS is a system that will be used by hotel staff to manage hotel operations. The system will store information
about guests, rooms, reservations, and staff. The system will also provide a way for hotel staff to communicate with
each other.
1.5.2 Product Functions
The HMS will have the following functions:
• Allow hotel staff to manage hotel operations
2. Overall Descriptions:
2.1 Product Perspective
2.1.1 System Interfaces
2.1.2 User Interfaces
2.1.3 Hardware Interfaces
2.1.4 Software Interfaces
2.1.5 Communications Interfaces
2.1.6 Memory Constraints
2.2 Product Functions
2.2.1 User Registration
2.2.2 User Login
2.2.3 Guest Management
2.2.4 Room Management
2.2.5 Reservation Management
2.2.6 Staff Management
2.2.7 Communication
3. Specific Requirements:
3.1 Functional Requirements
3.1.1 User Registration
3.1.2 User Login
3.1.3 Guest Management
3.1.4 Room Management
3.1.5 Reservation Management
3.1.6 Staff Management
3.1.7 Communication
3.2 Non-Functional Requirements
3.2.1 Performance
3.2.2 Security
3.2.3 Usability
3.2.4 Reliability
3.2.5 Availability
3.2.6 Maintainability
3.2.7 Portability
EXP 5 Solution:
Activity Diagram:
An activity diagram is a type of behavioral diagram in the Unified Modeling Language (UML) that shows the overall flow
of control for a system. It is useful for modeling the high-level behavior of a system, and can be used to understand the
overall behavior of a system, as well as to identify potential bottlenecks and issues.
Activity diagrams can be used to model a wide variety of system behaviors, including simple workflows, complex
processes, and even entire business systems. They are a powerful tool for understanding and improving the efficiency of a
system.
Sequence diagram:
A sequence diagram is a type of behavioral diagram in the Unified Modeling Language (UML) that shows how objects
interact in a process over time. They are used to represent the dynamic behavior of a system.
Sequence diagrams are typically used to model the behavior of a system as a whole, or of a significant part of a system.
They can be used to represent the behavior of a system over time, or the behavior of a single object within a system.
Sequence diagrams can be used to model the behavior of a system at different levels of abstraction. For example, a
sequence diagram can be used to model the behavior of a system at the level of individual objects, or at the level of the
system as a whole.
Sequence diagrams are a valuable tool for communication between developers and stakeholders. They can be used to
capture the requirements of a system, and to communicate the design of a system to stakeholders.
Class Diagram:
A class diagram is an illustration of the relationships and interactions between classes and objects in a system. It is a static
diagram that shows the structure of a system. The class diagram is the most important of the UML diagrams, as it is the
foundation for all the other diagrams. The class diagram shows the classes in a system, their attributes, operations, and the
relationships between them.
The relationships between classes can be one of four types: association, aggregation, composition, or inheritance.
Association is a simple relationship between two classes, aggregation is a relationship between a class and its parts,
composition is a relationship between a class and its parts that also implies ownership, and inheritance is a relationship
between a class and its subclasses.
Class diagrams can be used to generate code in some object-oriented programming languages. In addition, the diagram
can be used to visualize the relationships between classes in a system and to help design the system.
EXP 6 Solution:
2. Hazard Identification:
This product is not considered hazardous according to the criteria of the U.S. Environmental Protection Agency (EPA).
3. Composition/Information on Ingredients:
This product is a software application and does not contain any hazardous ingredients.
The information provided in this Safety Data Sheet is correct to the best of our knowledge, information and belief at the
date of its publication. The information given is designed only as a guidance for safe handling, use, processing, storage,
transportation, disposal and release and is not to be considered a warranty or quality specification. The information relate
only to the specific material designated and may not be valid for such material used in combination with any other
materials or in any process. Such information is, to the best of our knowledge and belief, accurate and reliable as of the
date indicated.
EXP 7. Construction of Software Design Specification document for Hotel Management System.
EXP 7 Solution:
The Software Design Specification (SDS) is a document that describes the structure, behavior, and interfaces of a software
system. The SDS provides a blueprint for the development and maintenance of software. It is used to communicate the
software requirements to stakeholders, and to guide the development team in creating the software.
The SDS for Hotel Management System should include the following information:
1. Introduction
2. Purpose
3. Scope
4. Definitions, acronyms, and abbreviations
5. References
6. Overview
7. System architecture
8. Detailed design
9. Implementation
10. Testing
11. Maintenance
12. Appendices
EXP 8. Construction of Software Implementation Specification document for Hotel Management System.
EXP 8 Solution:
Introduction:
The purpose of this document is to provide a detailed description of the software to be implemented for the Hotel
Management System. The document covers the functional and non-functional requirements of the system along with a
detailed description of the software architecture, design and testing approach.
1. Functional Requirements:
The following are the functional requirements of the system:
1.1. Login:
The system shall provide a login interface for the users. The users shall be able to login using their username and
password.
1.2. Registration:
The system shall provide a registration interface for the users. The users shall be able to register by providing their
personal details like name, email id, contact number, etc.
1.4. Billing:
The system shall provide a billing interface for the users. The users shall be able to generate their bill by providing
their room number, check-in and check-out dates, etc.
1.5. Cancellation:
The system shall provide a cancellation interface for the users. The users shall be able to cancel their room booking by
providing their room number, check-in and check-out dates, etc.
1.6. Reports:
The system shall provide various reports like room occupancy report, revenue report, etc.
2. Non-Functional Requirements:
2.1. Performance
The system shall be able to handle concurrent requests from multiple users.
2.2. Security
3. Software Architecture:
The system shall be implemented using a client-server architecture. The client shall be responsible for the user
interface and the server shall be responsible for the business logic and database.
4. Design:
4.1. Use Case Diagram
4.2. Activity Diagram
4.3. Class Diagram
5. Testing:
5.1. Unit Testing: Unit testing shall be performed to test the individual modules of the system.
5.2. Integration Testing: Integration testing shall be performed to test the integrated modules of the system.
5.3. System Testing: System testing shall be performed to test the system as a whole.
EXP 9 Study of various software testing techniques and tools. Case study of Online Examination System Software
Testing document.
EXP 9 Solution:
There are various software testing techniques and tools available, each with its own advantages and disadvantages. Some
of the most popular software testing techniques and tools include:
1. Unit Testing: Unit testing is a software testing technique in which individual units or components of a software
program are tested to verify that they are functioning as expected. Unit tests are typically written by the developers who
wrote the code being tested.
2. Integration Testing: Integration testing is a software testing technique in which individual units or components of a
software program are combined and tested as a group. Integration tests are typically written by the developers who wrote
the code being tested.
3. Functional Testing: Functional testing is a software testing technique in which a software program is tested to verify
that it meets the requirements specified for its functionality. Functional tests are typically written by the developers who
wrote the code being tested.
4. System Testing: System testing is a software testing technique in which a software program is tested as a whole system
to verify that it meets the requirements specified for its functionality. System tests are typically written by independent
testers who are not familiar with the code being tested.
5. Acceptance Testing: Acceptance testing is a software testing technique in which a software program is tested to verify
that it meets the requirements specified for its functionality. Acceptance tests are typically written by independent testers
who are not familiar with the code being tested.
6. Regression Testing: Regression testing is a software testing technique in which a software program is tested to verify
that changes made to it have not introduced new bugs. Regression tests are typically written by independent testers who
are not familiar with the code being tested.
7. Usability Testing: Usability testing is a software testing technique in which a software program is tested to verify that it
is easy to use. Usability tests are typically written by independent testers who are not familiar with the code being tested.
8. Security Testing: Security testing is a software testing technique in which a software program is tested to verify that it
is secure. Security tests are typically written by independent testers who are not familiar with the code being tested.
1. Introduction
The Online Examination System is a web-based application that enables instructors to create and administer exams online.
The application was developed using the PHP programming language and the MySQL database management system. The
application is designed to provide a secure, efficient, and user-friendly way for instructors to administer exams to their
students.
2. Purpose
The purpose of this document is to provide a comprehensive overview of the Online Examination System and to detail the
testing that was conducted on the application.
3. Background
The Online Examination System was developed by a team of developers at the University of XYZ. The application was
developed using the PHP programming language and the MySQL database management system. The application is
designed to provide a secure, efficient, and user-friendly way for instructors to administer exams to their students.
4. Testing Methodology
A variety of testing methods were used in order to thoroughly test the Online Examination System. These methods
included unit testing, integration testing, system testing, and user acceptance testing.
5. Test Results
The Online Examination System was found to be stable and effective. A variety of test cases were successfully executed,
and no major bugs or defects were discovered.
6. Conclusion
Overall, the Online Examination System is a well-designed and effective application. The application was found to be
stable and effective, and no major bugs or defects were discovered. The application provides a secure, efficient, and user-
friendly way for instructors to administer exams to their students.
EXP 10. Construction of Software Testing Specification document for Hotel Management System.
EXP 10 Solution:
1. Introduction
The purpose of this document is to specify the testing requirements for the Hotel Management System (HMS). This
document contains a description of the test environment, test scenarios, and test cases.
2. Test Environment
The testing environment for the HMS is a Windows-based system.
The system should have the following hardware and software requirements:
-Intel Pentium 4 2.0 GHz or higher processor
-2 GB of RAM or higher
-10 GB of free hard disk space or higher
-A compatible sound card
-A compatible graphics card
-A CD-ROM or DVD-ROM drive
-A keyboard and mouse
3. Test Scenarios
The following are test scenarios that should be covered during testing:
-Functionality testing: All functionalities of the HMS should be tested.
-Performance testing: The system should be tested for performance under various conditions, such as high load.
-Security testing: The system should be tested for vulnerabilities and security risks.
-Compatibility testing: The system should be tested for compatibility with various hardware and software configurations.
-Usability testing: The system should be tested for usability.
4. Test Cases
The following are sample test cases that should be included in the testing of the HMS:
-Test case 1: Functionality testing
-Test case 2: Performance testing
-Test case 3: Security testing
5. Exit Criteria
The Hotel Management System will be deemed ready for release when all test cases have been executed successfully and
all defects have been resolved.