Wednesday 19 July 2023

2078/2079 Previous Year Question Solution of SAD ( System Analysis and Design)

 

2079 Question Solution

What is Commercial off-The Shelf (COTS) Software? Explain with example.

COTS stands for Commercial Off-the-Shelf software. It is software that is mass-produced and sold to the general public. COTS software is typically less expensive than custom-developed software and can be deployed more quickly.

Here are some examples of COTS software:

  • Microsoft Office
  • Adobe Creative Suite
  • Google Workspace
  • Salesforce
  • SAP

COTS software can be used for a variety of purposes, including:

  • Productivity
  • Customer relationship management (CRM)
  • Enterprise resource planning (ERP)
  • Accounting
  • Human resources (HR)
  • Marketing
  • Sales
  • IT infrastructure

There are many benefits to using COTS software. Some of the key benefits include:

  • Reduced development costs: COTS software is typically less expensive to develop than custom-developed software. This is because COTS software is already developed and tested, so there is no need to spend time and money on development.
  • Reduced time to market: COTS software can be deployed more quickly than custom-developed software. This is because COTS software does not need to be developed from scratch.
  • Increased flexibility: COTS software can be customized to meet the needs of a specific organization. This is done by using configuration options and add-ons.
  • Improved security: COTS software is typically more secure than custom-developed software. This is because COTS software is developed by security experts and is constantly updated with security patches.

 

What is a survey? Discuss its method and types in Data Collection.


A survey is a research method that involves collecting information from a sample of people, typically through questionnaires or interviews. Surveys are a popular data collection method because they can be used to collect data on a wide variety of topics and from a large number of people.

There are two main types of surveys: quantitative and qualitative.

Quantitative surveys use closed-ended questions that can be easily quantified, such as multiple-choice questions or Likert scale questions.

Qualitative surveys use open-ended questions that allow respondents to provide more detailed answers, such as short essays or free-form text.

There are a number of different methods that can be used to collect survey data. The most common methods are:

  • In-person interviews: Interviews are conducted face-to-face with respondents. This method can be time-consuming and expensive, but it can also be the most effective way to collect data, as the interviewer can probe for more information and clarify any questions that the respondent may have.
  • Telephone interviews: Telephone interviews are conducted by phone with respondents. This method is less expensive than in-person interviews, but it can also be less effective, as respondents may be less willing to answer personal questions over the phone.
  • Mail surveys: Mail surveys are sent to respondents in the mail. This method is the least expensive way to collect survey data, but it can also have the lowest response rate.
  • Online surveys: Online surveys are conducted on the internet. This method is the most convenient for respondents, but it can also be the most difficult to control, as respondents may not take the survey seriously or may not answer all of the questions.

 

Discuss the component of ER modal and explain about types of relationships.

 


The entity-relationship (ER) model is a way of modeling data in a database. It consists of three components: entities, attributes, and relationships.

  • Entities represent the objects in the real world that the database is modeling. For example, in a database of students, an entity would be a student.
  • Attributes describe the entities. For example, a student entity might have attributes such as name, student ID number, and major.
  • Relationships show how entities are related to each other. For example, a student entity might be related to a course entity by a relationship called "enrolled in."

There are four types of relationships:

  • One-to-one: A one-to-one relationship means that one entity can be related to only one other entity, and vice versa. For example, a student can only be enrolled in one course at a time, and a course can only have one student enrolled in it at a time.
  • One-to-many: A one-to-many relationship means that one entity can be related to many other entities, but each other entity can only be related to one of the first entity. For example, a student can take many courses, but each course can only be taken by one student.
  • Many-to-many: A many-to-many relationship means that one entity can be related to many other entities, and each other entity can be related to many of the first entity. For example, a student can be friends with many other students, and each other student can be friends with many students.
  • Recursive: A recursive relationship is a relationship between two entities of the same type. For example, a parent can have many children, and each child can have many parents.

The ER model is a powerful tool for modeling data in a database. It is easy to understand and use, and it can be used to model complex data relationships.

Discuss about your understanding of a creeping commitment approach in Feasibility Analysis.

A creeping commitment approach to feasibility analysis is a way of evaluating the feasibility of a project or system over time. This approach involves making incremental commitments to the project, with each commitment being based on the results of the previous commitment.

The creeping commitment approach has several advantages over a traditional approach to feasibility analysis, which involves making a large commitment to the project upfront. First, the creeping commitment approach allows for more flexibility in the project plan. As the project progresses, new information may become available that could change the feasibility of the project. By making incremental commitments, the project team can adjust the project plan as needed.

Second, the creeping commitment approach reduces the risk of project failure. By making small commitments, the project team is less likely to overcommit to the project and end up with a project that is not feasible.

Third, the creeping commitment approach helps to build consensus among stakeholders. As the project progresses and stakeholders are involved in each decision, they are more likely to support the project.

The creeping commitment approach is not without its disadvantages. First, it can take longer to complete a project using the creeping commitment approach than using a traditional approach. This is because the project team must make more decisions and take more time to evaluate the feasibility of each commitment.

Second, the creeping commitment approach can be more expensive than a traditional approach. This is because the project team must incur the costs of making each commitment, even if the project is ultimately cancelled.

Overall, the creeping commitment approach is a valuable tool for evaluating the feasibility of projects and systems. It offers several advantages over a traditional approach, including flexibility, reduced risk, and stakeholder buy-in. However, the creeping commitment approach can also take longer and be more expensive than a traditional approach.

Here are some of the steps involved in the creeping commitment approach to feasibility analysis:

  1. Define the scope of the project. The first step is to define the scope of the project. This involves identifying the goals of the project, the deliverables that will be produced, and the resources that will be required.
  2. Perform a preliminary feasibility analysis. Once the scope of the project has been defined, a preliminary feasibility analysis should be performed. This analysis should assess the technical, economic, and organizational feasibility of the project.
  3. Make an initial commitment to the project. Based on the results of the preliminary feasibility analysis, an initial commitment to the project should be made. This commitment should be small enough that it can be easily reversed if the project is not feasible.
  4. Continue the feasibility analysis. Once the initial commitment has been made, the feasibility analysis should continue. This involves gathering additional information and assessing the feasibility of the project in more detail.
  5. Make incremental commitments to the project. As the feasibility analysis progresses, incremental commitments to the project should be made. These commitments should be based on the results of the feasibility analysis and should be adjusted as needed.
  6. Complete the project. If the project is feasible, it should be completed. If the project is not feasible, it should be cancelled.

 

What is software Maintenance? List out major activities of maintenance with suitable examples.

Software maintenance is the modification of a software product after it has been delivered to the customer. The goal of software maintenance is to keep the software product working correctly, efficiently, and securely, and to ensure that it continues to meet the needs of the users.

There are two main types of software maintenance: corrective maintenance and adaptive maintenance.

  • Corrective maintenance is the modification of a software product to fix defects. This includes fixing bugs, performance problems, and security vulnerabilities.
  • Adaptive maintenance is the modification of a software product to keep it up-to-date with changes in the environment. This includes changes to the hardware platform, the operating system, or the user requirements.

Here are some other major activities of software maintenance:

  • Perfective maintenance: This type of maintenance is performed to improve the performance, functionality, or usability of the software. For example, a software developer might add new features to the software or make changes to the user interface.
  • Preventive maintenance: This type of maintenance is performed to prevent problems from occurring in the future. For example, a software developer might perform code reviews or unit tests to find and fix potential problems.
  • Data migration: This type of maintenance is performed when the software is moved to a new platform or environment. For example, a software developer might need to migrate data from an old database to a new database.
  • Documentation maintenance: This type of maintenance is performed to keep the documentation of the software up-to-date. For example, a software developer might need to update the user manual or the API documentation.

Here are some examples of software maintenance activities:

  • A software developer fixes a bug that causes the software to crash.
  • A software developer adds a new feature to the software that allows users to export their data.
  • A software developer makes changes to the user interface to make it easier for users to use the software.
  • A software developer performs a code review to find and fix potential problems in the software.
  • A software developer migrates the software to a new platform.
  • A software developer updates the user manual to reflect the changes that have been made to the software.

 

What is Unified Modeling Language (UML)? Explain different types of UML diagrams

Unified Modeling Language (UML) is a visual modeling language used to represent the structure, behavior, and interaction of software systems. UML is a standard language that is used by software developers, architects, and analysts to communicate their ideas about software systems.

There are 14 different types of UML diagrams, each of which is used to represent a different aspect of a software system. The most common UML diagrams are:

  • Use case diagrams: Use case diagrams represent the interactions between users and a system. They are used to identify the different ways in which users will interact with the system and to document the requirements of the system.
  • Class diagrams: Class diagrams represent the structure of a software system. They show the classes in the system, the attributes of each class, and the relationships between classes.
  • Object diagrams: Object diagrams represent the state of a software system at a particular point in time. They show the objects in the system, the attributes of each object, and the relationships between objects.
  • Sequence diagrams: Sequence diagrams represent the interactions between objects in a software system over time. They show the order in which messages are sent between objects and the time it takes for messages to be processed.
  • Activity diagrams: Activity diagrams represent the flow of control in a software system. They show the different steps that are involved in carrying out a task and the decisions that need to be made along the way.
  • State machine diagrams: State machine diagrams represent the behavior of an object over time. They show the different states that an object can be in and the events that can cause the object to change state.
  • Component diagrams: Component diagrams represent the physical components of a software system. They show the different components in the system, the interfaces between components, and the dependencies between components.
  • Deployment diagrams: Deployment diagrams represent the physical deployment of a software system. They show the different machines that are used to run the system, the software that is running on each machine, and the connections between machines.

Extra

UML diagrams can be used at different stages of the software development life cycle. They can be used to help with requirements gathering, analysis, design, implementation, testing, and maintenance. UML diagrams are a valuable tool for communicating ideas about software systems and for ensuring that everyone involved in the development process is on the same page.

Here are some additional benefits of using UML diagrams:

  • They can help to improve communication between stakeholders. UML diagrams are a visual way of representing software systems, which can make it easier for stakeholders to understand the system and its requirements.
  • They can help to improve the quality of software systems. UML diagrams can be used to identify potential problems in software systems before they are implemented.
  • They can help to improve the efficiency of software development. UML diagrams can help to identify and resolve problems early in the development process, which can save time and money.

 

What is object diagram? Explain with suitable example.

An object diagram is a UML diagram that shows the state of a system at a particular point in time. It shows the objects in the system, the attributes of each object, and the relationships between objects.

Object diagrams are similar to class diagrams, but they show specific instances of classes, rather than the classes themselves. For example, a class diagram for a bank account might show the attributes of a bank account, such as the account number, balance, and owner. An object diagram for a bank account might show a specific bank account with the account number 123456789, a balance of $100, and an owner named John Doe.

Object diagrams can be used to show the state of a system at different points in time, to identify potential problems with the system, and to communicate the design of the system to other stakeholders.

Here is an example of an object diagram for a bank account system:

Object BankAccount
    accountNumber: 123456789
    balance: $100
    owner: John Doe
Object Transaction
    amount: $50
    date: 2022-07-20
    sourceAccount: BankAccount
    targetAccount: BankAccount

This object diagram shows that there are two objects in the system: a BankAccount object and a Transaction object. The BankAccount object has the account number 123456789, a balance of $100, and an owner named John Doe. The Transaction object has an amount of $50, a date of 2022-07-20, and a source account of BankAccount and a target account of BankAccount.

Object diagrams can be used to show the state of a system at different points in time. For example, you could create an object diagram to show the state of the bank account system before and after a transaction is processed. This could help you to identify any potential problems with the system.

Object diagrams can also be used to communicate the design of the system to other stakeholders. For example, you could create an object diagram to show the different objects in the system and the relationships between them. This could help other stakeholders to understand how the system works.

 

6. Assuming you are a system developer, draw a context diagram and a level-1 diagram that represent the canteen management system of XYZ Campus.

Context Diagram

The context diagram shows the system boundaries and the main interactions between the system and external entities.

[XYZ Campus Canteen Management System]

    * Students

    * Canteen Staff

    * Suppliers

    * Payment Gateway

The canteen management system interacts with students, canteen staff, suppliers, and a payment gateway. Students use the system to order food and drinks from the canteen. Canteen staff use the system to manage inventory, prepare food, and take orders. Suppliers use the system to submit invoices for food and drinks. The payment gateway is used to process payments for food and drinks.

Level-1 Diagram

The level-1 diagram shows the main processes in the canteen management system.

[XYZ Campus Canteen Management System]

    * Order Management

    * Inventory Management

    * Payment Processing

    * Staff Management

The order management process handles the ordering of food and drinks from the canteen. The inventory management process manages the inventory of food and drinks in the canteen. The payment processing process processes payments for food and drinks. The staff management process manages the canteen staff.

The canteen management system is a complex system that involves many different processes. The context diagram and level-1 diagram provide a high-level overview of the system and the main interactions between the system and external entities.

Here is a brief description of each process:

  • Order Management: This process handles the ordering of food and drinks from the canteen. Students can place orders through the canteen management system. The system will then send the order to the canteen staff. The canteen staff will prepare the food and drinks and deliver them to the students.
  • Inventory Management: This process manages the inventory of food and drinks in the canteen. The system keeps track of the quantity of each item in stock. The system will also generate alerts when the quantity of an item falls below a certain level. This allows the canteen staff to order more food and drinks from suppliers.
  • Payment Processing: This process processes payments for food and drinks. Students can pay for their orders through the canteen management system. The system will then send the payment to the payment gateway. The payment gateway will then process the payment and deposit the funds into the canteen's bank account.
  • Staff Management: This process manages the canteen staff. The system keeps track of the staff's schedules and attendance. The system will also generate reports on the staff's performance. This allows the canteen management to effectively manage the staff.

2077 Question Solution

1. Explain cross life cycle activities. Write about any three cross life cycle activities.

Cross life cycle activities are activities that are performed throughout the software development life cycle (SDLC). These activities are not specific to any one phase of the SDLC, but rather support and contribute to the success of the entire project.

Some common cross life cycle activities include:

  • Communication: Communication is essential for any successful software project. Cross life cycle activities can help to ensure that communication is open and effective throughout the project. This can be done by holding regular meetings, creating documentation, and using project management tools.
  • Documentation: Documentation is another important cross life cycle activity. It can help to capture the project's requirements, design, and implementation. This documentation can be used to refer to throughout the project and can be helpful in resolving any issues that may arise.
  • Testing: Testing is essential to ensure the quality of the software product. Cross life cycle activities can help to ensure that testing is performed throughout the project, not just at the end. This can be done by creating a test plan, developing test cases, and executing tests regularly.

Here are three examples of cross life cycle activities:

  1. Requirement gathering: 
  2. Risk management: 
  3. Change management: 

4. Write about different types of feasibility analysis in software development.

·       Technical feasibility: This analysis examines whether the software can be developed using the available technology and resources. It looks at the skills and experience of the development team, the availability of hardware and software, and the budget for the project.

·       Economic feasibility: This analysis examines whether the software is likely to be profitable. It looks at the cost of development, the target market, and the potential revenue from the software.

·       Operational feasibility: This analysis examines whether the software can be used effectively in the intended environment. It looks at the needs of the users, the compatibility with existing systems, and the ease of maintenance.

·       Legal feasibility: This analysis examines whether the software complies with all applicable laws and regulations. It looks at the data protection laws, the intellectual property laws, and the contracts with any third-party vendors.

·       Schedule feasibility: This analysis examines whether the software can be developed within the planned schedule. It looks at the complexity of the software, the availability of resources, and the track record of the development team.

·       Resource feasibility: This analysis examines whether the software can be developed with the available resources. It looks at the skills and experience of the development team, the availability of hardware and software, and the budget for the project.

·       Describe the agile software development model.

Agile software development is a software development methodology that emphasizes iterative development, incremental delivery, and continuous adaptation to change. Agile development methods work by breaking down the software development process into smaller, more manageable chunks of work called "sprints." Each sprint typically lasts for two weeks, and at the end of each sprint, the team delivers a working product increment to the customer.

Here are some of the key principles of agile software development:

  • Customer collaboration: Agile development teams work closely with customers throughout the development process. This helps to ensure that the software meets the needs of the customers and that changes can be made quickly and easily.
  • Iterative development: Agile development teams develop software iteratively, which means that they build the software in small increments and deliver it to the customer frequently. This helps to ensure that the software is always working and that the customer is happy with the progress.
  • Incremental delivery: Agile development teams deliver software incrementally, which means that they deliver the software in small, working pieces. This helps to reduce the risk of delivering a large, unworkable piece of software.
  • Continuous adaptation to change: Agile development teams embrace change and adapt to it quickly. This is because they know that software requirements are likely to change throughout the development process.

·       3. Write about modern methods for determining requirements in software development.

Modern methods for determining requirements in software development are in following :

  • User stories: User stories are a way of capturing the needs of the users in a concise and easy-to-understand way. User stories typically have three parts: the who, the what, and the why. The who is the user of the software. The what is the task that the user wants to be able to do. The why is the reason why the user wants to be able to do the task.
  • Scrum: Scrum is an agile software development framework that uses iterative development and incremental delivery. Scrum teams work closely with customers throughout the development process to ensure that the software meets the needs of the customers.
  • Kanban: Kanban is a lean software development framework that helps teams visualize their work and manage it effectively. Kanban boards use columns to represent different stages of the development process, such as "to do," "in progress," and "done."
  • Lean startup: Lean startup is a methodology for developing and launching new products that emphasizes customer feedback and iterative development. Lean startups use a build-measure-learn cycle to quickly iterate on their products and get feedback from customers.
  • Design thinking: Design thinking is a human-centered approach to problem-solving that can be used to identify and define software requirements. Design thinking teams use a variety of methods, such as brainstorming, sketching, and prototyping, to understand the needs of users and to create solutions that meet those needs.

·       4. Define entity and cardinality. Draw an ER diagram for departmental store.

Entity: An entity is a person, place, thing, or event that is represented in a database. An entity can be either a strong entity or a weak entity. A strong entity is an entity that can exist independently. A weak entity is an entity that cannot exist independently and must be associated with a strong entity.

Cardinality: Cardinality is the number of relationships that can exist between two entities.

Here is an ER diagram for a departmental store:

[Departmental Store]

    * Name

    * Address

    * Phone Number

 

[Employee]

    * Name

    * Address

    * Phone Number

    * Job Title

    * Department

 

[Customer]

    * Name

    * Address

    * Phone Number

    * Email Address

 

[Product]

    * Name

    * Description

    * Price

    * Quantity

 

[Order]

    * Customer

    * Product

    * Quantity

    * Date

What is DFD? Draw a DFD level-1 diagram for Library

Data flow diagram (DFD): A data flow diagram (DFD) is a graphical representation of the flow of data through a system. A DFD uses four basic symbols to represent data flows, processes, data stores, and external entities.

  • Data flows: Data flows represent the movement of data between processes, data stores, and external entities. Data flows are represented by arrows.
  • Processes: Processes represent the transformation of data. Processes are represented by rectangles.
  • Data stores: Data stores represent the storage of data. Data stores are represented by two parallel lines.
  • External entities: External entities represent the sources or destinations of data outside of the system. External entities are represented by ovals.

Here is a DFD level-1 diagram for a library:

[Library System]

    * Issue Book

    * Return Book

    * Search Book

    * Add Book

    * Delete Book

 

[Librarian]

    * Issue Book

    * Return Book

    * Search Book

 

[Student]

    * Search Book

 

[Book]

    * Book ID

    * Title

    * Author

    * Genre

    * Status

5. What are the tasks involved in system maintenance? Explain.

The tasks involved in system maintenance:

  • Corrective maintenance. This type of maintenance is performed to correct errors or defects in the software. This can be done by fixing bugs, adding new features, or updating the software to work with new hardware or software.
  • Adaptive maintenance. This type of maintenance is performed to ensure that the software continues to function as expected when the environment in which it is used changes. This can be done by making changes to the software to accommodate new hardware or software, or to changes in the way the software is used.
  • Preventive maintenance. This type of maintenance is performed to prevent problems from occurring in the software. This can be done by performing regular checks of the software, by fixing known bugs, and by updating the software with security patches.

Explanation of each task:

  • Corrective maintenance: This is the most common type of maintenance. It is performed to fix errors or defects in the software. Errors can be introduced into the software during development, or they can occur as the software is used. When an error is found, it must be fixed as soon as possible to prevent it from causing problems for users.
  • Adaptive maintenance: This type of maintenance is performed to ensure that the software continues to function as expected when the environment in which it is used changes. The environment in which software is used can change over time for a variety of reasons. For example, new hardware or software may be released, or the way in which the software is used may change. When the environment changes, the software may need to be updated to accommodate the changes.
  • Preventive maintenance: This type of maintenance is performed to prevent problems from occurring in the software. Preventive maintenance can be performed by regularly checking the software for errors, by fixing known bugs, and by updating the software with security patches. Regularly checking the software for errors can help to identify and fix problems before they cause outages or data loss. Fixing known bugs can help to prevent the same problems from occurring again. Updating the software with security patches can help to protect the software from security vulnerabilities.

 

6. Write about sequence, deployment and collaboration diagram.

Sequence diagram: A sequence diagram is a type of UML diagram that shows the interactions between objects in a system over time. A sequence diagram is made up of two axes: the vertical axis shows the objects in the system, and the horizontal axis shows the time. The objects are represented by boxes, and the messages that are sent between the objects are represented by arrows. The arrows show the order in which the messages are sent, and the labels on the arrows show the data that is being sent.

Sequence diagrams are often used to visualize the flow of control in a system. They can also be used to identify potential problems with the system, such as deadlocks and race conditions.

Deployment diagram: A deployment diagram is a type of UML diagram that shows the physical deployment of components in a system. A deployment diagram is made up of two axes: the vertical axis shows the hardware components in the system, and the horizontal axis shows the software components in the system. The hardware components are represented by boxes, and the software components are represented by circles. The arrows between the boxes and circles show how the components are connected.

Deployment diagrams are often used to visualize the physical architecture of a system. They can also be used to identify potential problems with the system, such as performance bottlenecks.

Collaboration diagram: A collaboration diagram is a type of UML diagram that shows the interactions between objects in a system. A collaboration diagram is made up of two axes: the vertical axis shows the objects in the system, and the horizontal axis shows the relationships between the objects. The objects are represented by boxes, and the relationships between the objects are represented by lines. The lines show how the objects are related, and the labels on the lines show the messages that are sent between the objects.

 

No comments:

Post a Comment