Software and Software Engineering
Software and Software Engineering
Define Software
Functionality: Meets the intended requirements and performs the desired tasks.
Reliability: Operates consistently without failure under specified conditions.
Usability: Easy to use and understand for the intended users.
Efficiency: Uses system resources optimally.
Maintainability: Easy to modify and update.
Portability: Can be easily transferred to different environments.
Scalability: Can handle growth in users or data.
A problem statement is a clear and concise description of an issue that needs to be addressed.
It defines the problem, its context, and its impact.
Compare solutions based on cost, time, feasibility, and alignment with requirements.
Use techniques like SWOT analysis or cost-benefit analysis.
Bottom-Up: Starts with detailed components and builds up to the complete system.
Top-Down: Begins with a high-level overview and breaks it down into smaller
components.
System requirements specify what the software must do and its constraints. They include
functional and non-functional requirements.
1. Functional Requirements: Describe what the system should do (e.g., user login, data
processing).
2. Non-Functional Requirements: Define how the system should perform (e.g., speed,
security, usability).
User Requirements: High-level statements of what users need from the system.
System Requirements: Detailed specifications of how the system will meet user
needs.
Fact-Finding Techniques
Helps in decision-making.
Identifies potential risks and challenges.
Ensures the project aligns with business goals.
Types of Feasibility
This outline provides a comprehensive overview of the key concepts and processes in
software engineering, from problem definition to requirements analysis.
Requirements Management
1. Introduction:
o Purpose of the document.
o Scope of the project.
o Definitions, acronyms, and abbreviations.
o References to other documents.
o Overview of the document structure.
2. Product Description:
o Context of the system (how it fits into the larger
environment).
o Key features and functionalities.
o User characteristics (target audience).
o Assumptions and dependencies.
3. Software Requirements:
o Functional requirements (what the system should do).
o Use cases or user stories.
o System behavior under specific conditions.
4. External Interface Requirements:
o User interfaces (UI).
o Hardware interfaces.
o Software interfaces (APIs, integrations).
o Communication protocols.
5. Non-Functional Requirements:
o Performance requirements (speed, scalability).
o Security requirements.
o Reliability and availability.
o Maintainability and portability.
o Constraints (legal, regulatory, or technical).
1. Introduction
3. Software Requirements
Functional Requirements:
1. The system shall allow librarians to add new books with
details (title, author, ISBN, etc.).
2. The system shall allow members to borrow books (max 5
books per member).
3. The system shall send reminders for overdue books.
4. The system shall generate a report of all overdue books.
Use Cases:
o UC1: Librarian adds a new book.
o UC2: Member borrows a book.
User Interfaces:
o Dashboard for librarians to manage books and members.
o Self-service kiosk for members to check book availability.
Hardware Interfaces: RFID scanner for book tracking.
Software Interfaces: Integration with email service for reminders.
Communication Protocols: HTTP/HTTPS for web-based access.
5. Non-Functional Requirements