P15 Computer and IT Applications-II BBA NEP 2024-25 3rd Semester Notes

Unit 1 Practical Book
Unit 2 Practical Book
Unit 3 Practical Book
Unit 4 [Book]
Database, Introduction to Database and Database Management System VIEW
Database Models VIEW
Type of Databases VIEW
Introduction to MS-Access, Creation of database tables, Data types, Basic Query and Report generation VIEW

System Development Life Cycle, Objectives, Stages, Criticism

System Development Life Cycle (SDLC) is a systematic process used to plan, develop, implement, and maintain an information system. It provides a structured approach for converting organisational requirements into a functional system. SDLC helps developers and managers control time, cost, quality, and resources throughout system development. It also reduces risks by dividing development into different stages, with specific activities and outputs at each stage. The major stages of SDLC generally include planning, requirement analysis, system design, development, testing, implementation, and maintenance. Following SDLC helps organisations develop reliable, secure, user-friendly, and cost-effective information systems that meet business and user requirements.

Objectives of System Development Life Cycle:

1. Meeting User Requirements

One of the main objectives of SDLC is to ensure that the developed system meets user requirements. During requirement analysis, developers and system analysts identify the needs, expectations, and problems of users. These requirements are then incorporated into system design and development. User involvement helps ensure that the system provides appropriate functions, information, and services. A system that does not meet user requirements may have limited usefulness and may face resistance during implementation. SDLC provides a systematic process for collecting, documenting, reviewing, and validating requirements. Therefore, it helps organisations develop systems that are relevant, useful, and aligned with actual user needs.

2. Improving System Quality

SDLC aims to develop a high-quality information system that performs accurately and reliably. Each stage of the life cycle includes activities for checking and improving system quality. Requirement analysis reduces misunderstandings, system design establishes proper technical specifications, and testing identifies errors before implementation. Quality also includes factors such as reliability, usability, security, performance, and maintainability. Following a structured development process helps detect problems at an early stage rather than after implementation. This reduces the possibility of system failures and improves user confidence. Thus, SDLC supports the development of systems that consistently perform according to specified organisational and technical requirements.

3. Controlling Development Costs

An important objective of SDLC is to control system development costs. System projects require expenditure on hardware, software, employees, training, testing, implementation, and maintenance. SDLC provides a structured approach to estimating these costs and allocating resources appropriately. Proper planning and requirement analysis can prevent unnecessary features, repeated development work, and major design changes later in the project. Regular monitoring also helps managers identify cost overruns and take corrective action. By controlling resources and project activities, SDLC helps organisations develop systems within an approved budget. Therefore, effective SDLC practices contribute to cost efficiency and better financial management.

4. Completing Projects on Time

SDLC aims to ensure that system development projects are completed within the planned schedule. A project is divided into different stages, and activities are assigned specific timelines and responsibilities. This allows managers to monitor progress and identify delays at an early stage. Proper scheduling also helps coordinate developers, users, managers, and other stakeholders. Delays can increase costs and may disrupt organisational operations. SDLC provides milestones and checkpoints that make it easier to track project progress. Therefore, systematic planning and monitoring help organisations complete information system projects within the expected time while maintaining required quality standards.

5. Reducing Development Risks

Another important objective of SDLC is to identify and reduce development risks. Information system projects may face risks related to technology, security, cost, requirements, resources, or implementation. SDLC provides opportunities to identify these risks during planning and feasibility analysis. Testing and regular evaluation further help detect technical and operational problems before the system becomes fully operational. Risk management allows organisations to prepare suitable preventive and corrective measures. This reduces the possibility of major failures and unexpected losses. Therefore, SDLC provides a controlled development environment in which potential problems can be identified and managed throughout the system’s life cycle.

6. Ensuring System Security

SDLC aims to incorporate security requirements throughout the development process. Security should not be considered only after a system has been developed. During requirement analysis and design, developers can identify requirements related to authentication, access control, data protection, privacy, and secure processing. Security testing can then be conducted before implementation. Regular maintenance helps address newly identified vulnerabilities and security requirements. Integrating security into different SDLC stages reduces the possibility of unauthorised access, data loss, and system misuse. Therefore, SDLC helps organisations develop information systems that provide appropriate confidentiality, integrity, availability, and protection of organisational data.

7. Improving Resource Utilisation

SDLC helps organisations achieve effective utilisation of resources such as employees, technology, finance, hardware, software, and time. During planning, resource requirements are identified and responsibilities are assigned to appropriate team members. Proper scheduling prevents unnecessary duplication of work and helps ensure that resources are available when required. Managers can also monitor resource utilisation throughout the project and make adjustments when necessary. Efficient resource utilisation reduces wastage and supports project productivity. Therefore, SDLC enables organisations to coordinate available resources systematically and use them effectively to achieve system development objectives while maintaining appropriate cost and quality levels.

8. Supporting System Flexibility

SDLC aims to develop systems that can adapt to changing organisational and technological requirements. Business processes, customer needs, regulations, and technologies may change over time. A system that cannot accommodate such changes may become ineffective or expensive to replace. SDLC considers future requirements during planning and design and allows modifications through maintenance activities. Proper documentation and modular system design can also make future changes easier. Regular evaluation helps identify new requirements and opportunities for improvement. Therefore, SDLC supports the development of flexible systems that can continue to provide value as organisational and technological conditions change.

9. Ensuring Proper Documentation

Documentation is an important objective of SDLC because it provides a permanent record of the system and its development process. Documentation may include requirements, system designs, database structures, source code information, testing results, user manuals, and maintenance procedures. Proper documentation helps developers and users understand how the system operates and how changes should be made. It also supports training, troubleshooting, maintenance, and future system upgrades. Without adequate documentation, organisations may become dependent on particular employees or developers. Therefore, SDLC encourages systematic documentation throughout development, helping improve maintainability, knowledge sharing, and continuity of the information system.

10. Supporting Effective Implementation and Maintenance

SDLC aims to ensure that the developed system is successfully implemented and maintained after development. Implementation involves installing the system, transferring data, training users, and integrating the system into organisational operations. SDLC prepares the organisation for these activities through proper planning and testing. After implementation, maintenance activities address errors, changing requirements, performance issues, and technological changes. Continuous monitoring helps keep the system useful and reliable. Therefore, SDLC does not end with system development; it provides a complete framework covering implementation and subsequent maintenance, ensuring that the information system continues to support organisational objectives throughout its useful life.

Stages of System Development Life Cycle:

1. Planning

The planning stage is the starting point of SDLC. It involves identifying the business problem, defining system objectives, determining the project scope, and establishing initial requirements. Managers and system analysts study the organisation’s current situation and identify areas that require improvement. Preliminary estimates of cost, time, manpower, technology, and resources are prepared. The organisation also identifies possible risks and constraints. A feasibility study may be conducted to determine whether the proposed system is technically, economically, operationally, and legally feasible. Proper planning provides a clear direction for the project and helps management decide whether sufficient resources should be committed to system development.

2. Requirement Analysis

The requirement analysis stage involves identifying and documenting the exact requirements of users and the organisation. System analysts collect information through interviews, questionnaires, observations, meetings, and examination of existing documents and procedures. Requirements may include functional requirements, such as processing transactions and generating reports, and non-functional requirements, such as security, performance, reliability, and usability. Analysts also study existing systems to identify their limitations and problems. The collected requirements are documented and reviewed with users to ensure accuracy and completeness. Proper requirement analysis provides a foundation for subsequent design and development and reduces the possibility of costly changes later.

3. System Design

The system design stage converts approved requirements into a detailed technical plan for the proposed system. Designers determine how the system will operate and how its different components will interact. Important activities include database design, user interface design, input and output design, process design, system architecture, security design, and network design. Technical specifications are prepared for developers and programmers. The design should consider system performance, reliability, usability, scalability, and security. Users and management may review the proposed design before development begins. A well-designed system provides a clear blueprint for development and helps ensure that the final system satisfies identified organisational and user requirements.

4. System Development

The system development stage involves building the actual information system according to the approved design. Programmers and developers write application programs, create databases, develop interfaces, configure system components, and integrate different technologies. Appropriate programming languages, development platforms, databases, and other technical tools are selected. Developers follow established coding and documentation practices to maintain system quality. Regular reviews may be conducted to identify errors and ensure that development remains consistent with requirements and design specifications. The development team may also prepare technical documentation and preliminary user materials. Successful development converts the conceptual system design into a functional and usable information system.

5. System Testing

The system testing stage evaluates whether the developed system functions correctly and satisfies the specified requirements. Testing helps identify errors, defects, security weaknesses, performance problems, and integration issues before the system is introduced into normal operations. Different forms of testing may be conducted, including unit testing, integration testing, system testing, performance testing, security testing, and user acceptance testing. Users may participate in acceptance testing to confirm that the system meets practical business requirements. Identified problems are corrected and the system is tested again. Thorough testing improves system reliability, accuracy, security, and user confidence before implementation.

6. System Implementation

The system implementation stage involves introducing the completed system into the organisation’s operational environment. Necessary hardware, software, databases, networks, and security arrangements are prepared before implementation. Existing data may need to be converted or transferred to the new system. Employees receive training, documentation, and technical support to help them use the system effectively. Organisations may adopt direct, parallel, pilot, or phased implementation methods depending on their requirements. System performance and user responses are monitored during the transition. Effective implementation ensures that the new system becomes part of regular organisational operations while minimising disruption to existing business processes.

7. System Maintenance

The maintenance stage begins after the system becomes operational and continues throughout its useful life. The system is regularly monitored to identify errors, security vulnerabilities, performance problems, and changing organisational requirements. Maintenance may include corrective maintenance to fix errors, adaptive maintenance to respond to environmental changes, perfective maintenance to improve performance or features, and preventive maintenance to reduce future problems. User feedback is also considered when making improvements. Regular maintenance keeps the information system reliable, secure, efficient, and relevant. Therefore, maintenance ensures that the system continues to provide value and support organisational objectives even after initial implementation.

Criticism of System Development Life Cycle:

1. Rigid and Inflexible Process

Traditional SDLC follows a structured sequence of stages, which can make the process rigid. Once requirements and designs are approved, making significant changes may require returning to earlier stages. However, business conditions, technologies, and user requirements can change during development. A rigid process may therefore make it difficult to respond quickly to such changes. Developers may continue following the original plan even when modifications are necessary. This can reduce the relevance of the final system. Although structured procedures provide control, excessive rigidity can limit flexibility and adaptability, particularly in projects where requirements are uncertain or continuously evolving.

2. Time-Consuming Development

SDLC can be time-consuming because each stage may require detailed planning, documentation, review, approval, development, and testing. Large projects may take considerable time before users receive a fully operational system. Extensive analysis and documentation can delay implementation, particularly when organisations require quick technological solutions. Long development periods may also create a risk that the business environment or user requirements will change before the system is completed. While careful development can improve quality, excessive time requirements may reduce the organisation’s ability to respond rapidly to market and technological changes. Therefore, speed can be a significant criticism of traditional SDLC approaches.

3. High Development Cost

Another criticism of SDLC is its potential for high development costs. Expenses may arise from detailed planning, system analysis, programming, testing, documentation, employee training, implementation, and maintenance. Large projects may require specialised professionals and advanced technologies, increasing the overall budget. Changes in requirements during development can further increase costs because redesigning or rebuilding system components may be necessary. Organisations with limited financial resources may find such projects difficult to manage. Although SDLC attempts to control costs through systematic planning, the extensive activities associated with traditional approaches can make system development expensive, particularly for large and complex information systems.

4. Difficulty in Handling Changing Requirements

SDLC can face difficulties when system requirements change frequently. Traditional approaches generally attempt to define requirements early and use them as a foundation for design and development. However, users may understand their needs more clearly after seeing an initial version of the system. Changes may also occur because of new technologies, regulations, competitors, or organisational strategies. Modifying requirements after development has started can result in additional time, cost, and effort. Consequently, traditional SDLC models may not be suitable for projects where requirements are uncertain or continuously changing. More flexible development approaches may be preferred in such situations.

5. Excessive Documentation

Traditional SDLC often requires extensive documentation at different stages, including requirement specifications, design documents, testing reports, technical documentation, and user manuals. Documentation provides important benefits, but excessive documentation can consume significant time and resources. Developers may spend considerable effort preparing and updating documents instead of focusing on system functionality and user needs. Large amounts of documentation may also become outdated when requirements or system features change. In some projects, excessive documentation can create unnecessary administrative work. Therefore, documentation should be appropriate to the size, complexity, risks, and requirements of the project rather than becoming an objective in itself.

6. Limited User Involvement in Some Approaches

Some traditional SDLC approaches may provide limited continuous user involvement, particularly after requirements have been formally approved. Users may participate heavily during requirement analysis but have fewer opportunities to influence the system during later development stages. As a result, the final system may not fully reflect practical user expectations. Users may discover usability problems only after the system is completed or implemented. Greater participation throughout development can provide useful feedback and identify problems earlier. Therefore, insufficient user involvement can reduce user satisfaction and system acceptance, especially when the system involves complex business processes or significant changes in employees’ working methods.

7. Difficulty in Predicting Future Needs

SDLC may require organisations to define many requirements before development begins, but future business needs can be difficult to predict accurately. Markets, customer expectations, technologies, organisational structures, and business strategies may change during the project. A system designed entirely according to current requirements may become less suitable when new needs emerge. Making major modifications later can increase development costs and delay implementation. This limitation is particularly important for innovative or rapidly changing business environments. Therefore, SDLC can be criticised for placing significant emphasis on early prediction and planning when some future requirements may be uncertain.

8. Risk of Late Discovery of Problems

In traditional sequential SDLC approaches, users may see the complete working system relatively late in the development process. Consequently, major problems in requirements, design, or usability may sometimes be discovered only during testing or implementation. Correcting such problems at a late stage can require substantial time and resources. Early prototypes and frequent user feedback can help reduce this risk. However, if these practices are not included, errors may continue through several development stages. Therefore, the possibility of discovering important problems late in the project is a significant criticism of traditional SDLC models, especially for complex information systems.

9. Not Always Suitable for Small Projects

Traditional SDLC may be too formal for small or simple system development projects. Such projects may not require extensive feasibility studies, documentation, approvals, and multiple formal development stages. Applying the complete SDLC process can consume more time and resources than the actual system requires. Small organisations or teams may therefore prefer simpler and more flexible development methods. However, the appropriate level of SDLC formality depends on factors such as project complexity, security requirements, organisational risk, and system importance. Thus, applying the same detailed SDLC process to every project may result in unnecessary effort and reduced efficiency.

10. Dependence on Accurate Initial Planning

SDLC relies heavily on effective initial planning and analysis. If important requirements, risks, resources, or constraints are incorrectly identified at the beginning, these errors can influence subsequent stages. Developers may build a system based on incorrect assumptions, resulting in redesign, additional costs, and delays. Initial planning is particularly difficult when the organisation is developing an innovative system or operating in an uncertain environment. Although SDLC provides mechanisms for review and correction, problems originating from early planning can be expensive to resolve later. Therefore, excessive dependence on initial planning can reduce the effectiveness of traditional SDLC approaches.

Type of Databases

Databases are structured collections of data used to store, retrieve, and manage information efficiently. They are essential in modern computing, supporting applications in business, healthcare, finance, and more. Different types of databases cater to various needs, ranging from structured tabular data to unstructured multimedia content.

  • Relational Database (RDBMS)

Relational Database stores data in structured tables with predefined relationships between them. Each table consists of rows (records) and columns (attributes), and data is accessed using Structured Query Language (SQL). Relational databases ensure data integrity, normalization, and consistency, making them ideal for applications requiring structured data storage, such as banking, inventory management, and enterprise resource planning (ERP) systems. Popular relational databases include MySQL, PostgreSQL, Microsoft SQL Server, and Oracle Database. However, they may struggle with handling unstructured or semi-structured data, requiring additional tools for scalability and performance optimization.

  • NoSQL Database

NoSQL (Not Only SQL) databases are designed for scalability and flexibility, handling unstructured and semi-structured data. NoSQL databases do not use fixed schemas or tables; instead, they follow different data models such as key-value stores, document stores, column-family stores, and graph databases. These databases are widely used in big data applications, real-time analytics, social media platforms, and IoT. Popular NoSQL databases include MongoDB (document-based), Cassandra (column-family), Redis (key-value), and Neo4j (graph-based). They offer high availability and horizontal scalability but may lack ACID (Atomicity, Consistency, Isolation, Durability) compliance found in relational databases.

  • Hierarchical Database

Hierarchical Database organizes data in a tree-like structure, where each record has a parent-child relationship. This model is efficient for fast data retrieval but can be rigid due to its strict hierarchy. Commonly used in legacy systems, telecommunications, and geographical information systems (GIS), hierarchical databases work well when data relationships are well-defined. IBM’s Information Management System (IMS) is a well-known hierarchical database. However, its inflexibility and difficulty in modifying hierarchical structures make it less suitable for modern, dynamic applications. Navigating complex relationships in hierarchical models can be challenging, requiring specific querying techniques like XPath in XML databases.

  • Network Database

Network Database extends the hierarchical model by allowing multiple parent-child relationships, forming a graph-like structure. This improves flexibility by enabling many-to-many relationships between records. Network databases are used in supply chain management, airline reservation systems, and financial record-keeping. The CODASYL (Conference on Data Systems Languages) database model is a well-known implementation. While faster than relational databases in certain scenarios, network databases require complex navigation methods like pointers and set relationships. Modern graph databases, such as Neo4j, have largely replaced traditional network databases, offering better querying capabilities using graph traversal algorithms.

  • Object-Oriented Database (OODBMS)

An Object-Oriented Database (OODBMS) integrates database capabilities with object-oriented programming (OOP) principles, allowing data to be stored as objects. This model is ideal for applications that use complex data types, multimedia files, and real-world objects, such as computer-aided design (CAD), engineering simulations, and AI-driven applications. Unlike relational databases, OODBMS supports inheritance, encapsulation, and polymorphism, making it more aligned with modern programming paradigms. Popular object-oriented databases include db4o and ObjectDB. However, OODBMS adoption is lower due to its complexity, lack of standardization, and limited compatibility with SQL-based systems.

  • Graph Database

Graph Database is designed to handle data with complex relationships using nodes (entities) and edges (connections). Unlike traditional relational databases, graph databases efficiently represent and query interconnected data, making them ideal for social networks, fraud detection, recommendation engines, and knowledge graphs. Neo4j, Amazon Neptune, and ArangoDB are popular graph databases that support graph traversal algorithms like Dijkstra’s shortest path. They excel at handling dynamic and interconnected datasets but may require specialized query languages like Cypher instead of standard SQL. Their scalability depends on graph size, and managing large graphs can be computationally expensive.

  • Time-Series Database

Time-Series Database (TSDB) is optimized for storing and analyzing time-stamped data, such as sensor readings, financial market data, and IoT device logs. Unlike relational databases, TSDBs efficiently handle high-ingestion rates and time-based queries, enabling real-time analytics and anomaly detection. Popular time-series databases include InfluxDB, TimescaleDB, and OpenTSDB. They offer fast retrieval of historical data, downsampling, and efficient indexing mechanisms. However, their focus on time-stamped data limits their use in general-purpose applications. They are widely used in stock market analysis, predictive maintenance, climate monitoring, and healthcare (e.g., ECG data storage and analysis).

  • Cloud Database

Cloud Database is hosted on a cloud computing platform, offering on-demand scalability, high availability, and managed infrastructure. Cloud databases eliminate the need for on-premise hardware, reducing maintenance costs and operational complexity. They can be relational (SQL-based) or NoSQL-based, depending on the application’s needs. Examples include Amazon RDS (Relational), Google Cloud Spanner (Hybrid SQL-NoSQL), and Firebase (NoSQL Document Store). Cloud databases enable global accessibility, automated backups, and seamless integration with AI and analytics tools. However, concerns about data security, vendor lock-in, and latency exist, especially when handling sensitive enterprise data.

error: Content is protected !!