Untitled document-4.pdf
Document Details
Tags
Summary
This document provides definitions and explanations of software engineering concepts, including project charters, functional requirements, non-functional requirements, requirements elicitation processes, object-oriented systems, and different architectural styles in software engineering.
Full Transcript
1. What is a project charter? Explain its significance. a. Project charter → formal document that authorizes the start of a project b. Provides a high-level overview of the project and outlines the authority of project manager c. Includes: objectives, stakeholders, scope, deliverab...
1. What is a project charter? Explain its significance. a. Project charter → formal document that authorizes the start of a project b. Provides a high-level overview of the project and outlines the authority of project manager c. Includes: objectives, stakeholders, scope, deliverables d. Significance: i. Provides clear direction for the project ii. Authorizes project manager to allocate resources iii. Helps avoid scope creep by defining the project scope and boundaries iv. Serves as a reference point for project stakeholders 2. Explain functional requirements. a. Describe the specific behaviors, functions, or operations that a system must perform b. Define what the system should do in response to inputs or in certain situations c. Tasks, services, interactions that the system must execute i. Example: Functional requirement of a health system might be The system shall allow users to search for patient records using a unique user ID 3. Explain non-functional requirements. a. Define the system’s quality attributes: performance, security, usability, scalability, etc. b. DO NOT specify what the system does but describe how it should perform its functions under various conditions i. Example: Nonfunctional requirement of a health system might be The system should have fast response time and reliability / accessibility 4. Explain the requirements engineering process and the 4 steps involved in requirements elicitation. a. Requirements engineering → systematic approach to discovering, analyzing, validating & managing requirements for a system b. Requirements Elicitation: 4 Steps i. Discovery → gathering requirements from stakeholders (interviews, questionnaires) ii. Classification → organizing and categorizing requirements based on priority, type, relevance iii. Negotiation → involves recognizing conflicting requirements between stakeholders or needs of the stakeholders that may not able to be met iv. Documentation → recording requirements in a clear, structured format (case diagrams, functional specifications, user stories) 5. Explain Abstraction in the context of object-oriented systems. a. Abstraction → simplifying complex systems by focusing on essential characteristics while ignoring non-essential details b. Allows developers to manage complexity by creating models that represent real-world entities and their behaviors without needing to understand all underlying complexities i. Example: A Car class might abstract details like make and model but hide the specific, internal workings of the engine 6. Unified Modeling Language ( what are the UML diagrams used to represent each view ) a. UML has 4+1 view of architectural representation i. Logical View → describes the object model and the static structure of the system (represented by class and object diagrams) ii. Development View → describes the system’s software organization in the development environment (represented by component and package diagrams) iii. Process View → describes the system’s dynamic behavior and how processes interact at runtime (represented by activity and sequence diagrams) iv. Physical View → Describes the deployment of software on hardware (represented by deployment diagrams) v. Use Case View → focuses on the system’s functionality from an end-user perspective (represented by use case diagrams) 7. Explain the terms “Actor” and “Use-Case” in the context of Use-Case Modeling. a. Actor → an external entity (person, system, device) that interacts with the system, playing a specific role. It can provide input or receive output from the system i. Example: A customer interacting with an online shopping system b. Use Case → a description of how the system interacts with an actor to achieve a specific goal or function i. Example: Place an Order with an online shopping system where the customer browses products, selects items and confirms a purchase 8. Explain the concept of Hierarchy a. Hierarchy → (in OO systems) refers to the organizations of classes in a multi-level structure where one class (parent or base) shares its properties and behaviors with other classes (children or derived) i. Allows for inheritance which allows child classes to reuse and extend the functionality of parent classes 9. Explain the MVC Architecture with a short diagram. MVC Components and the steps. a. Diagram b. MVC Components i. Model → manages the data and business logic of the application ii. View → presents data from the model to the user iii. Controller → handles user input, manipulates the model, updates the view c. Workflow Steps i. User interacts with the view (clicks a button) ii. Controller processes the input and updates the model iii. The model changes and the view updates to reflect the new data 10. What are the advantages and disadvantages of MVC Architecture? a. Advantages i. Clear separation between business logic and presentation ii. Enables parallel development as different components can be worked on independently iii. Easier to maintain scale as the responsibilities are separated b. Disadvantages i. Increased complexity due to separation of components ii. Overhead in managing multiple components for simple applications 11. What is an architectural style? List out the benefits of using architectural styles. a. An architectural style is a collection of design patterns and principles that define the components and their relationships in a system. It provides a template for organizing a system’s structure b. Benefits i. Reuse → standardized solutions can be reused across projects ii. Understandability → easier to communicate system organization iii. Interoperability → style standardization supports integration iv. Analysis → styles offer specific guidelines, making systems more analyzable 12. Explain the quality attributes for a Cloud system a. Scalability → the ability of a cloud system to handle growing workloads by adding resources b. Availability → ensuring the system is functional and accessible for most of the time c. Resiliency → the system’s ability to recover from failures and continue functioning d. Management & DevOps → the practices and tools that ensure smooth operation, automation, and continuous integration / deployment e. Security → measures taken to protect data, applications, and infrastructure from threats 13. Briefly explain the service models of Cloud Computing. a. Infrastructure as a Service (Iaas) → provides virtualized computing resources over the internet, such as virtual machines storage, and networks (AWS EC2) b. Platform as a Service (Paas) → provides a platform allowing customers to develop, run, and manage applications without dealing with the underlying infrastructure (Google App Engine) c. Software as a Service (Saas) → provides software applications over the internet on a subscription basis, without the need for users to manage the infrastructure or platform (Gmail, Office 365) 14. Briefly explain the deployment models of Cloud Computing. a. Public Cloud → cloud resources are owned and operated by a third-party cloud provider and delivered over the internet (Microsoft Azure) b. Private Cloud → cloud resources are used exclusively by a simple organization. It can be hosted on-premises or by a third-party provider c. Hybrid Cloud → a combination of both public and private clouds allowing data and applications to be shared between them, offering flexibility and optimization 15. What is virtualization and how it is a key concept in understanding cloud computing. Explain the three types of virtualization. a. Virtualization → the process of creating virtual versions of physical resources such as servers, storage devices and networks. It allows multiple virtual machines to run on a single physical machine, which maximizes resource utilization and provides scalability & flexibility (key concepts in cloud computing) b. Three types of Virtualization: i. Hardware Virtualization → virtual machines run on a physical machine using a hypervisor, which manages and allocates hardware resources ii. Network Virtualization → combines physical network resources into a virtual storage unit that can be managed centrally iii. Storage Virtualization → pools multiple storage resources into a virtual storage unit that can be managed centrally 16. In Cloud application architectures, what is an Event Driven architecture style? What are its two models? a. Event Driven Architecture → architectural style where components produce and consume events. Events are significant changes in system state or user actions that trigger a response b. Two Models of EDA: i. Mediator → an event mediator receives all events and coordinates the processing of these events by sending them to different components ii. Broker → a broker routes events between components that produce and consume them without an intermediary 17. In Cloud application architectures, what is CQRS? Briefly explain with a block diagram. a. Command Query Responsibility Segregation → (CQRS) is a design pattern in which the operations that read data (queries) are separated from the operations that write data (commands). This improves scalability, performance, and security because the read and write workloads can be optimized independently. b. Diagram: 18. In Cloud application architectures, briefly explain Microservices architecture with a block diagram. a. Microservices Architecture → system is broken down into small, independent services, each with its own functionality and data storage. Services communicate over well-defined APIs which allow for independent development, deployment, and scaling. b. Diagram 19. In Cloud application architectures, what is an n-tier application architecture style? a. N-tier application architecture → separates applications into layers (tiers). Provides flexibility, scalability, and maintainability as each tier can be developed and scaled independently i. Presentation Tier → user interface ii. Logic (middle) Tier → Business logic and application processing iii. Data Tier → database where data is stored. b. Diagram 20. Summarize Batch Sequential architecture style. List the design elements and examples of Batch-Sequential systems. a. Batch Sequential → style where data is processed in batches, with each batch of data processed by a separate component, one after another, in a sequence. Each component completes its task before passing the data to the next. b. Design Elements: components (independent programs), connectors (batch outputs), and a linear sequence. c. Examples: traditional transaction processing systems in banks, payroll processing systems 21. Summarize Pipes and Filter architecture style. List the design elements and examples of Pipes and Filter systems. a. Pipes and Filter → data-flow architectural style where data is processed by multiple independent filters, and each filter processes the data and passes it through a pipe to the next filter b. Design Elements: filters (process data), pipes (transfer data between filters), and linear or branching topology c. Examples: Unix shell commands like cat file | grep and compilers 22. What are the advantages and disadvantages in using Pipes and Filter style? a. Advantages: i. Filters are independent, promoting modularity and reuse ii. Systems can be easily extended by adding new filters iii. Concurrency → filters can work in parallel, improving performance b. Disadvantages: i. Filters must process simple data structures ii. No direct interaction between filters, which limits dynamic behavior 23. Summarize Publisher-Subscriber architectural style. List out the design elements and examples of Publisher-Subscriber based systems. a. Publisher-Subscriber → event-driven architecture where publishers produce messages (events) and subscribers receive notifications of these messages. Subscribers express interest in specific types of events. b. Design Elements: publishers, subscribers, and event channels (routes the events) c. Examples: managing systems like RabbitMQ, notification systems 24. Summarize Blackboard architectural style. List out the design elements and examples of blackboard architecture based systems. a. Blackboard Architecture → a central blackboard (shared data structure) holds the system’s knowledge, and different components (knowledge sources) read from and write to the blackboard to solve complex problems collaboratively. b. Design Elements: Blackboard (shared data), knowledge sources (independent modules) , and control components (coordinate the problem-solving process) c. Examples: speech recognition systems, AI problem solvers 25. Explain ACID Properties a. Atomicity → ensures that each transaction is treated as a single unit, which either completes in full or does not happen at all b. Consistency → ensures that a transaction brings the database from one valid state to another, maintaining data integrity c. Isolation → ensures that transactions occur independently of one another, meaning the intermediate results of a transaction are invisible to other transactions d. Durability → guarantees that once a transaction is committed, it will remain so, even in the event of a system failure 26. Explain Relational Databases - significance, example scenarios where it is used and what are the cloud Relational Database products. a. Significance: relational databases store data in tables with rows and columns, and they support ACID properties, which makes them suitable for complex transactions and maintaining data integrity b. Example Scenarios: i. Inventory management ii. Accounting systems iii. Customer relationship management (CRM) iv. Enterprise resource planning (ERP) c. Cloud Products: i. Amazon RDS ii. Google Cloud SQL iii. Azure SQL Database 27. Explain Time Series Databases - significance, example scenarios where it is used and what are the cloud Time Series Database products. a. Significance: optimized for managing time-stamped or time-series data. They efficiently handle the continuous flow of data and perform well with read-heavy workloads involving time based queries b. Example Scenarios: i. IoT sensor data collection ii. System performance monitoring and telemetry iii. Financial market analysis iv. Application performance counters c. Cloud Products: i. Amazon Timestream ii. Azure Data Explorer iii. InfluxDB 28. Explain Document DB Databases - significance, example scenarios where it is used and what are the cloud Document DB Database products. a. Significance: stores semi-structured data as documents, typically in formats like JSON, BSON, or XML. They provide flexible schemas, which allow for easy modification of data models as business requirements evolve. b. Example Scenarios: i. Product catalogs ii. User profiles and accounts iii. Content management systems iv. Bill of materials (BOM) c. Cloud Products: i. Amazon DocumentDB ii. Azure Cosmos DB (with MongoDB API) iii. Google Firestone 29. Explain Object Storage Databases - significance, example scenarios where it is used and what are the cloud Object Storage Database products. a. Significance: designed to store large amounts of unstructured data like images, videos, backups, and documents. Objects are stored with associated metadata and a unique identifier. b. Example Scenarios: i. Image and video storage for applications ii. Backup storage for databases and applications iii. Static content storage for websites iv. Log and audit file storage c. Cloud Products: i. Amazon S3 ii. Google Cloud storage iii. Azure Blob storage 30. Explain Column Family Databases -significance, example scenarios where it is used and what are the cloud Column Family Database products. a. Significance: stores data in rows and columns, where columns are grouped into families. This structure is high denormalized and is optimized for high-write throughput and sparse data sets b. Example Scenarios: i. Real-time analytics (weather, sensor data) ii. Personalization engines iii. Web and social media analytics c. Cloud Products: i. Amazon DynamoDB ii. Google Bigtable iii. Azure Cosmos DB