Bcs 51 June 21 Notes
Bcs 51 June 21 Notes
1.(a) Develop SRS for ‘‘Hospital Management System’’. Make necessary assumptions and
follow IEEE SRS format. Do it yourself
(b) A hospital wants to develop a ‘‘Hospital Management System’’. Explain which software
development model is suitable for developing this system. . Do it yourself
(c) What is the need of software maintenance ? Briefly explain different types of software
maintenance.
Software maintenance is essential to ensure that software continues to function effectively and
meet users' needs over time. The need for software maintenance arises from various factors,
including:
1. Bug Fixes: Addressing issues or defects that were not discovered during the initial
development or that arise due to unforeseen circumstances.
2. Adaptation: Modifying software to work with new hardware or operating systems, or to
comply with updated regulations.
3. Enhancements: Adding new features or improving existing ones based on user feedback
or changing business requirements.
4. Performance Improvements: Optimizing software to improve speed, efficiency, and
overall performance.
5. Security Updates: Implementing patches or updates to protect against vulnerabilities
and potential threats.
Types of Software Maintenance
1. Corrective Maintenance:
Purpose: Fixes defects or bugs identified in the software after it has been deployed.
Example: Resolving issues like crashes or incorrect outputs reported by users.
2. Adaptive Maintenance:
Purpose: Adjusts the software to accommodate changes in the environment, such as new
hardware, operating systems, or external systems.
Example: Updating software to be compatible with a new version of an operating system or
integrating with a new API.
3. Perfective Maintenance:
Purpose: Enhances or improves the software by adding new features or refining existing
functionality based on user feedback or evolving requirements.
Example: Adding a new reporting feature to an application based on user requests.
4. Preventive Maintenance:
Purpose: Anticipates potential issues and makes changes to prevent future problems. It aims to
improve maintainability and extend the software’s lifespan.
Example: Refactoring code to simplify its structure and improve readability to prevent future
bugs or difficulties in maintenance.
(d) Draw use case diagram for a ‘‘Hospital Management System’’. Make necessary
assumptions.
2. Already done
3. (a) Explain System Testing and Integration Testing techniques briefly.
Difference between Integration Technique and System Testing
Integration Testing System Testing
It enables you to assess, validate, and test the A form of testing known as "system testing"
application design in addition to the business determines whether the system as a whole satisfies
requirements. both functional and non-functional criteria.
Integrity testing's primary goal is to find flaws in how The primary goal of system testing is to confirm that
components or sections communicate with one the system satisfies the requirements and is
another. suitable for use in the environment intended.
Integration testing will primarily concentrate on the The general conduct of the system is examined
interfaces between components or modules. during system testing.
To make sure they function as intended, integration System testing includes putting the system through
testing examines the relationships between realistic conditions to make sure it performs as
components or subsystems. anticipated in the target setting.
Typically, developers or testers who work closely with Typically, testers who are not members of the
developers conduct integration testing. programming team perform system testing.
White-box testing is a form of integration testing, which System testing is a type of "black-box" testing,
means that testers are familiar with the inner workings which indicates that the testers are blind to how the
of the components or modules under test. system actually works.
Integration testing involves testing specific scenarios System testing involves testing the system in a
involving the interactions between components or range of scenarios to ensure it works as intended
subsystems. under different conditions.
Integration testing is usually automated using testing System testing is usually carried out manually,
frameworks and tools. although some aspects may be automated using
testing tools.
Integration testing is generally less expensive and less System testing is generally more expensive and
time-consuming than system testing. more time-consuming than integration testing.
Key Concepts
1. Maturity Levels: CMM defines five maturity levels that represent the progression of an
organization’s process maturity. Each level has specific goals and practices to achieve:
• Level 1: Initial: Processes are unpredictable, poorly controlled, and reactive. Success
depends on individual effort.
• Level 2: Managed: Processes are project-specific and managed. Basic project
management processes are established to track cost, schedule, and functionality.
• Level 3: Defined: Processes are organization-wide and standardized. Detailed processes
are documented and integrated across the organization.
• Level 4: Quantitatively Managed: Processes are measured and controlled. Statistical
methods are used to understand and control process performance.
• Level 5: Optimizing: Focus is on continuous process improvement. Processes are
optimized based on quantitative feedback and lessons learned.
2.Process Areas: Each maturity level is associated with specific process areas that organizations
need to address to progress to the next level. For instance, at Level 2, key process areas include
Project Planning, Project Monitoring and Control, and Supplier Agreement Management.
3. Goals and Practices: Each process area includes specific goals and practices to achieve and
maintain the maturity level. These goals and practices are designed to improve process
effectiveness and efficiency.
4. Assessment and Improvement: CMM provides a structured approach for organizations to
assess their current process capabilities and identify areas for improvement. The model helps
organizations develop a roadmap for process enhancement based on their current maturity
level.
4. (a) What is the need of software configuration management ? Briefly explain the process of
software configuration management.
Software Configuration Management (SCM) is essential for ensuring that software systems are
built, maintained, and deployed in a controlled and systematic manner. Here’s why SCM is
needed and a brief overview of the SCM process:
Need for Software Configuration Management
1. Control Over Changes: SCM helps track and control changes to software artifacts, such
as source code, documentation, and configuration files. This prevents unintended
modifications and ensures that changes are made in a controlled manner.
2. Version Management: It manages different versions of software components, making it
possible to revert to previous versions if needed. This is crucial for maintaining software
stability and for debugging purposes.
3. Consistency: SCM ensures that all parts of the software system are consistent with each
other, especially when integrating changes from multiple sources.
4. Documentation: It maintains a historical record of changes, which is useful for
understanding the evolution of the software and for compliance with standards and
regulations.
5. Collaboration: SCM supports collaboration among multiple developers by managing and
merging changes from different contributors, thereby preventing conflicts and
integration issues.
Process of Software Configuration Management
The SCM process generally involves the following steps:
1. Configuration Identification: Define and document the configuration items (CIs) that
need to be controlled. These include source code, documentation, libraries, and other
artifacts. Identify their versions and relationships.
2. Configuration Control: Implement processes for managing changes to the configuration
items. This involves submitting change requests, evaluating their impact, and approving
or rejecting these changes through a formal review process.
3. Configuration Status Accounting: Maintain and track the status of configuration items
and changes. This includes recording which versions are in use, what changes have been
made, and their impact on the system.
4. Configuration Auditing: Perform audits to ensure that configuration items are accurate
and that changes have been implemented correctly.
5. Configuration Management Planning: Develop and maintain a configuration
management plan that outlines the procedures and policies for managing
configurations.
6. Release Management: Manage the process of releasing software to production. This
includes packaging the software, preparing it for deployment, and ensuring that the
deployment process adheres to the configuration management policies.
(b) What is Test-case ? Briefly explain the role of Test-case in software testing with the help of
test cases for ‘‘Hospital Management System’’.
A test case is a detailed set of conditions or variables under which a tester will determine
whether a software application is working correctly. It typically includes specific inputs,
execution conditions, and expected results to verify that the software behaves as intended. Test
cases are crucial for systematically validating the functionality, performance, and reliability of
the software.
Role of Test Cases in Software Testing
1. Verification: Test cases help verify that the software functions as expected and meets
the specified requirements.
2. Validation: They validate that the software performs its intended functions correctly and
efficiently.
3. Consistency: Test cases ensure that the same conditions are tested consistently across
different environments or versions of the software.
4. Reproducibility: They provide a structured approach to reproducing defects and
diagnosing issues.
5. Documentation: Test cases document the testing process, which is useful for
understanding what has been tested and for tracking test coverage.
6. Regression Testing: They are used to check that new changes have not adversely
affected existing functionality.
Test Cases for a Hospital Management System
To illustrate the role of test cases, let’s consider some examples for a "Hospital Management
System." This system might include features like patient registration, appointment scheduling,
and billing. Here are a few test cases for different functionalities:
1. Patient Registration
5. (a) What is Software Project Management ? Explain various tasks involved in it.
Software Project Management (SPM) is the discipline of planning, executing, and overseeing a
software project to ensure it is completed on time, within budget, and to the required quality
standards. It involves applying project management principles and practices to software
development projects, focusing on aspects like scope, schedule, cost, quality, and risk.
Key Tasks in Software Project Management
1. Project Planning
• Scope Definition: Clearly define the project scope, including objectives, deliverables,
features, and boundaries. This is often documented in a Project Scope Statement or
Requirements Specification.
• Schedule Development: Create a project schedule that outlines key milestones,
deadlines, and dependencies. Use tools like Gantt charts or project management
software to map out tasks and timelines.
• Resource Allocation: Identify and allocate resources required for the project, including
human resources, software tools, and hardware. Ensure the right people are assigned to
appropriate tasks.
• Budget Estimation: Estimate the costs associated with the project, including
development, testing, deployment, and maintenance. Develop a budget and track
expenditures to ensure the project stays within financial constraints.
2. Project Execution
• Task Management: Manage and coordinate the execution of tasks and activities
according to the project plan. Ensure that team members understand their
responsibilities and deadlines.
• Communication: Facilitate effective communication among project stakeholders,
including team members, clients, and upper management. Regular updates, meetings,
and reports help keep everyone informed.
• Quality Assurance: Implement quality control measures to ensure that the software
meets defined quality standards and requirements. This includes code reviews, testing,
and defect management.
3. Project Monitoring and Control
• Progress Tracking: Monitor the progress of the project against the schedule and
milestones. Use performance metrics, such as earned value analysis, to assess whether
the project is on track.
• Risk Management: Identify potential risks and develop mitigation strategies. Monitor
risk factors throughout the project and adjust plans as needed to address new or
evolving risks.
• Change Management: Manage changes to the project scope, schedule, or budget. This
includes evaluating change requests, assessing their impact, and updating project plans
accordingly.
4. Project Closure
• Completion Verification: Verify that all project deliverables are completed and meet the
acceptance criteria. Conduct a final review or inspection to ensure the project meets its
goals.
• Documentation: Compile and organize project documentation, including design
documents, test results, and user manuals. Ensure that all relevant information is
captured for future reference.
• Lessons Learned: Conduct a retrospective analysis to identify what went well and what
could be improved in future projects. Document lessons learned and share insights with
the team and stakeholders.
• Client Handoff: Transfer the final product to the client or end-users, including training
and support as necessary. Ensure that all contractual obligations are fulfilled.