8. Software Engineering and Information System (ACtE08)

Computer Engineering (Nepal Engineering Council) – Engineering Licence Exam

This note delves into software engineering and object-oriented analysis & design, offering clear explanations and practical insights. It is designed to help students grasp core ideas through structured content. Whether preparing for exams or seeking conceptual clarity, this resource provides valuable support. Enhance your understanding with simplified notes and organized materials tailored to learners.

No MCQ questions available for this chapter.

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.