8. Software Engineering and Object-Oriented Analysis & Design (ACtE08)
8.1 Software Process and Requirements (ACtE0801)
Software Characteristics
- Correctness: Meets requirements.
 - Efficiency: Uses optimal resources.
 - Reliability: Performs consistently.
 - Maintainability: Easy to modify.
 
Software Quality Attributes
- Functional: Required operations.
 - Non-Functional: Performance, security, usability.
 
Software Process Models
- Agile Model: Iterative, flexible, user collaboration.
 - V-Model: Verification and validation at each stage.
 - Iterative Model: Repeated cycles of development.
 - Prototype Model: Rapid prototype development.
 - Big Bang Model: No structured planning.
 
Software Requirements
- Functional Requirements: Describe system behavior.
 - Non-Functional Requirements: Define constraints like security.
 - User Requirements: Needs of end users.
 - System Requirements: Hardware/software specifications.
 
Software Requirement Documents (SRS)
- Describes system requirements in detail.
 
Requirement Elicitation & Analysis
- Techniques: Interviews, Surveys, Prototyping.
 
Requirement Validation & Management
- Ensures correctness, consistency, and completeness.
 
8.2 Software Design (ACtE0802)
Design Process
- Translates requirements into architecture.
 
Design Concepts
- Abstraction: Hiding complexity.
 - Encapsulation: Data hiding.
 - Modularity: Breaking into smaller parts.
 
Software Architecture
- System Organization: Defines software structure.
 - Modular Decomposition: Splitting software into independent modules.
 - Control Styles: Centralized or Distributed control.
 
Architectural Patterns
- Client-Server: Divides system into server and clients.
 - Distributed Systems: Works on multiple nodes.
 - Component-Based Engineering: Reusable software components.
 
8.3 Software Testing, Cost Estimation, Quality & Configuration Management (ACtE0803)
Software Testing
- Unit Testing: Tests individual components.
 - Integration Testing: Checks interaction between modules.
 - System Testing: Tests the complete system.
 - Acceptance Testing: Verifies customer requirements.
 
Software Cost Estimation
- Algorithmic Cost Modeling: Uses mathematical models.
 - COCOMO Model: Cost Estimation Model.
 
Software Quality Assurance (SQA)
- Formal Technical Reviews (FTR): Evaluates design.
 - ISO Standards & CMMI: International standards.
 
Configuration Management
- Version Control: Tracks software changes.
 - Change Management: Manages software modifications.
 
8.4 Object-Oriented Fundamentals and Analysis (ACtE0804)
Object-Oriented Concepts
- Objects: Instances of classes.
 - Classes: Blueprints for objects.
 - Inheritance: Code reuse mechanism.
 - Polymorphism: Same interface, different behaviors.
 
Unified Modeling Language (UML)
- Use Case Diagrams: Shows user interactions.
 - Class Diagrams: Represents object relationships.
 - Sequence Diagrams: Shows message flows.
 
8.5 Object-Oriented Design (ACtE0805)
From Analysis to Design
- Elaborates Use Cases into Designs.
 
Diagrams Used in Design
- Collaboration Diagram: Shows object interaction.
 - Class Diagram: Defines object relationships.
 
8.6 Object-Oriented Design Implementation (ACtE0806)
Implementation Process
- Mapping Design to Code: Converting UML to programming.
 - Creating Class Definitions: Defining attributes & methods.
 
Exception & Error Handling
- Ensures robustness and stability.