MSS Flashcards

(33 cards)

1
Q

Functional and Non-functional Requirements:

A

Functional Requirements:
Define specific operations or features the system must perform.
Examples: User authentication, inventory management, processing payments.
These requirements describe what the system should do and focus on the functionality that the end-user expects from the system.
Characteristics: Clear, measurable, and testable. Each functional requirement typically includes input, process, and output.

Non-functional Requirements:
Define the system’s operational qualities or constraints.
Examples: Performance, security, usability, reliability, scalability.
They describe how the system performs its tasks, including conditions under which the software must operate (e.g., handling 1,000 transactions per second).
Characteristics: Often involve quality attributes like speed, capacity, security, and compliance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Requirements Engineering Processes:

A

Requirements engineering refers to the systematic process of gathering, analyzing, documenting, validating, and managing the software system’s requirements.
It includes the following stages:
Requirements Elicitation: Collecting requirements from stakeholders.
Requirements Analysis: Refining and resolving conflicts in requirements.
Requirements Specification: Documenting requirements in a clear and detailed manner.
Requirements Validation: Ensuring that the requirements are correct, feasible, and meet stakeholder needs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Requirements Elicitation:

A

The process of gathering requirements from stakeholders, including users, customers, and system engineers.
Techniques:
Interviews: Direct discussions with stakeholders to gather requirements.
Surveys/Questionnaires: Collecting input from a large group of stakeholders.
Workshops: Group discussions that involve multiple stakeholders to gather consensus on requirements.
Prototyping: Creating early versions of the system to clarify requirements.
Observation: Watching users interact with current systems to understand their needs.
Challenges:
Handling conflicting requirements between different stakeholders.
Ensuring all requirements are complete and clearly communicated.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Requirements Validation:

A

his process checks that the gathered requirements meet stakeholder needs and are feasible to implement.
Methods:
Review Meetings: Stakeholders review and approve requirements.
Prototyping: Validates requirements by providing a working model.
Walkthroughs: Developers and stakeholders discuss each requirement to ensure clarity and agreement.
Formal Inspections: A thorough, formal review of the requirements documentation.
Goal: Identify and correct errors, omissions, or misunderstandings in the requirements before the design or implementation begins.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Requirements Change

A

Changes in requirements are common due to evolving business needs, new market demands, or unforeseen technical challenges.
Reasons for Change:
New user needs or features.
Changes in regulations or industry standards.
Budget or time constraints.
Managing Change:
A formal Change Control Process is needed, involving the submission of change requests.
Impact Analysis: Evaluating the effect of the proposed change on the system’s scope, schedule, and cost.
Prioritizing changes based on their importance and the project’s timeline.
Documentation and re-validation of updated requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Traceability Matrix:

A

A document that maps each requirement to its corresponding design elements, code, and test cases to ensure full coverage.
Purpose:
Helps in tracking the implementation of each requirement.
Ensures that every requirement has been accounted for in the final system.
Helps in change management by showing the impact of changes to any requirement.
Types of Traceability:
Forward Traceability: Maps requirements to design and code to ensure the system reflects all requirements.
Backward Traceability: Ensures that design and code can be traced back to the original requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Developing Use Cases:

A

Use Case: A written description of how users will interact with the system to achieve a specific goal.
Components:
Actors: The users or systems that interact with the software.
Scenario: Describes the steps taken by the actor to achieve a goal.
Extensions: Describe alternative flows or error handling.
Purpose: Helps in defining functional requirements by showing how the system should behave in real-world scenarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Software Requirements Specification (SRS):

A

Definition: A comprehensive document that outlines the system’s functional and non-functional requirements.
Template:
Introduction: Purpose, scope, and definitions of the system.
Overall Description: General factors that affect the product and its requirements (e.g., product perspective, user characteristics).
Specific Requirements: Detailed functional requirements, interfaces, and performance criteria.
Importance: Acts as a formal contract between stakeholders and developers and provides a reference throughout development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Personas:

A

Definition: Fictional characters created to represent different user types that might use a system in a similar way.
Purpose: Helps developers and designers understand the goals, behaviors, and pain points of typical users.
Components:
Name and background.
Demographics: Age, job, interests.
Goals and challenges: What the user wants to accomplish using the system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Scenarios:

A

Definition: Detailed narratives that describe how a user (often represented by a persona) would interact with the system in a specific situation.
Purpose: Provides context for how users will use the system, helping in the development of use cases.
Example: A scenario describing how a persona would use a mobile app to book a flight ticket.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

User Stories:

A

Definition: Simple, informal descriptions of a feature written from the user’s perspective.
Format: “As a [type of user], I want to [perform an action], so that [achieve a goal].”
Purpose: Used in Agile development to define features in a user-centric way. Helps developers understand the value of the feature and the user’s needs.
Example: “As a customer, I want to receive email notifications when my order ships so that I can track the delivery.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Feature Identification:

A

The process of identifying and defining key features of the software that are necessary to fulfill the requirements.
Approach:
Derive features from functional requirements, use cases, and user stories.
Features can be categorized as essential, desirable, or optional.
Example: For an e-commerce platform, features include user registration, product search, shopping cart, and payment processing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Design Concepts:

A

Definition: High-level ideas and principles that guide the design of a software system.
Key Concepts:

Modularity: Breaking down the system into independent modules or components.

Abstraction: Hiding the complexity of the system by focusing on high-level functionality.

Encapsulation: Restricting direct access to some of an object’s components, which is a form of information hiding
.
Cohesion and Coupling:

Cohesion: Measures how closely related the functionalities of a single module are.

Coupling: Refers to the interdependencies between modules. Low coupling is preferred for better maintainability.

Importance: Helps ensure that the system is scalable, maintainable, and adaptable to change.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is Software Engineering?

A

The application of engineering principles to software development in a systematic, disciplined, and quantifiable approach. It covers everything from requirement gathering to software design, coding, testing, and maintenance

Importance: Software is central to society, businesses, and governments. Proper software engineering reduces software failures and the costs associated with maintaining and updating systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Professional Software Development

A

Definition: Involves building software systems intended for use by others. This type of development usually involves teams of software engineers and focuses on creating reliable, maintainable, and scalable products

Types:
Generic Software: Packaged and sold to multiple customers (e.g., mobile apps, office tools).
Customized Software: Built specifically for an individual customer or organization (e.g., airline reservation systems, banking systems)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Software Engineering Ethics

A

Key Principles:
Confidentiality: Keep client information private, even without a formal agreement.
Competence: Do not accept work outside your skill level.
Intellectual Property: Respect laws regarding patents, copyrights, and software ownership.
Computer Misuse: Avoid unethical practices like hacking or unauthorized access to data

17
Q

Software Process Models

A

Software process models describe how software is developed in a structured, organized manner. Each model has a unique approach to managing the stages of software creation.

The 4 Fundamental Activities
Regardless of the model used, all software processes include the following steps:

Software Specification: What should the software do? (Requirements gathering and analysis).
Software Development: Building the software according to specifications.
Software Validation: Testing to ensure the software works as intended.
Software Evolution: Updating and modifying the software as user needs change

18
Q

The Waterfall Model

A

The Waterfall Model

What is it?: A sequential, phase-based model where each phase must be completed before moving to the next. It’s structured in a linear fashion.

Phases:
Requirements Analysis: Determine the software’s functions and constraints.

System and Software Design: Create the architecture and structure.

Implementation and Unit Testing: Build the software and test individual components.

Integration and System Testing: Test the complete system to ensure it meets requirements.

Operation and Maintenance: The software is delivered, and any issues are addressed
.
Where it Works Best: Projects with clear, well-understood requirements and minimal change during development

It’s simple but rigid, making it ideal for projects with clearly defined requirements

19
Q

Incremental Development

A

Incremental development allows the software to evolve through multiple versions (increments). Each version builds on the previous one, adding functionality based on user feedback. It’s flexible and widely used for software that needs to adapt during development

Instead of building the system all at once, incremental development delivers the system in small, usable parts

Key Points:
Users provide feedback after each increment, which is used to adjust and improve subsequent releases.
Early delivery of basic functionality, with more features added incrementally.
Reduces the impact of changing requirements

Advantages:
Flexibility: Easier to adapt to new requirements.
User Feedback: Enables continuous improvement through user input.

Drawbacks: Documenting and maintaining the system structure can become difficult over time

20
Q

Software Specification

A

What is it?: The process of understanding and documenting what the system should do.
Steps:
Requirements Elicitation and Analysis: Gathering needs from stakeholders.
Requirements Specification: Writing down the requirements in a detailed document.
Requirements Validation: Ensuring the requirements are realistic, complete, and consistent

20
Q

Integration and Configuration Model

A

What is it?: This model focuses on reusing existing software components and integrating them into a new system.
Steps:
Requirements Specification: Define system needs based on available components.
Software Discovery and Evaluation: Search for reusable components that match requirements.
Configuration and Adaptation: Modify components to fit system requirements.
Integration: Bring all components together into a functional system
Advantages: Speeds up development by using pre-existing components.
Drawbacks: Limited customization because you’re working within the constraints of the existing components

21
Q

Process Activities

A

Software Specification: Gathering requirements and defining what the software will do.
Software Design: Structuring the software and defining how it will work.
Software Implementation: Writing the actual code to build the software.
Software Validation: Testing the software to ensure it meets requirements.
Software Evolution: Updating the software as new requirements arise

22
Q

Software Design and Implementation

A

Design: This involves defining the overall architecture of the system, including data models, component relationships, and algorithms.
Implementation: Translating the design into actual code, often using development tools to simplify this process

23
Q

Software Validation

A

What is it?: The process of testing the software to make sure it works as expected.
Types of Testing:
Component Testing: Testing individual parts (e.g., functions or modules).
System Testing: Testing the entire system to ensure all parts work together.
Customer Testing: Testing with real-world data provided by the client

24
Software Evolution
What is it?: Software needs to be updated as new requirements emerge or as users discover issues. This process is called software evolution. Most software requires updates over its lifespan
25
Coping with Change
Change Anticipation: Involves building the software in a way that anticipates future changes. This might involve creating prototypes to show clients and get feedback early【7†source】. Change Tolerance: Designing the software to easily adapt to changes, allowing updates and modifications without extensive rework
26
Prototyping
What is it?: Building a simplified version of the system early in the development process to explore ideas, demonstrate concepts, and gather feedback Why it’s Used: It helps developers understand user requirements better and test design concepts early
27
Incremental Delivery
What is it?: The system is delivered to the customer in small parts (increments), starting with the most important features. This allows customers to start using the software early and provide feedback on each release
28
Boehm's Spiral Model
What is it?: A risk-driven model that combines elements of both the Waterfall and Incremental models. It repeats several loops, each loop focusing on risk assessment and refinement of the system Phases: Objective Setting: Define the goals and risks for that phase. Risk Assessment and Reduction: Identify and reduce project risks. Development and Validation: Develop the system and validate that it meets goals. Planning: Decide whether to continue with the next loop or stop
29
Agile Software Development
Definition: A highly flexible and iterative approach to software development, where the system is built in small, frequent iterations with constant feedback from users Agile Methods Key Principles: Customer Involvement: Customers are continuously involved throughout development. Embrace Change: Agile welcomes changing requirements, even late in development. Frequent Delivery: Deliver working software frequently, often every two to three weeks Agile Manifesto – Values and Principles Core Values: Individuals and Interactions over processes and tools. Working Software over comprehensive documentation. Customer Collaboration over contract negotiation. Responding to Change over following a plan
30
Agile Development Techniques
Extreme Programming (XP): A popular agile methodology that emphasizes customer involvement, small incremental releases, test-first development, and pair programming Key Techniques: Test-First Development: Writing tests before coding ensures every piece of functionality is tested. Refactoring: Continuously improving the code structure without changing its behavior
31
Agile Project Management
Scrum Method: A popular agile framework where work is divided into short, time-boxed iterations called sprints. A Scrum team collaborates daily to prioritize tasks, deliver features, and review progress Roles: ScrumMaster: Guides the team and ensures the Scrum process is followed. Product Owner: Defines product features and prioritizes the work. Development Team: A self-organizing team that works together to deliver the produc
32
Case Studies
nsulin Pump Control System: What it is: A medical system that automatically monitors blood sugar levels and delivers insulin to a patient Challenges: The system needs to deliver insulin accurately and reliably to avoid serious health complications Mentcare (Patient Information System for Mental Health Care): What it is: A system that manages patient records, treatment history, and administrative reports for clinics treating mental health patients Key Features: Supports individual care management, patient monitoring, and administrative reporting