Software Engineering: Paradigms, Development, and Business Models

Software Development Methods

Creating Deployment Projects

  1. Data Model (Data Flow Diagram & Entity-Relationship)
  2. Business Model (Microsoft Project & Visio)
  3. Logic Model (CASE Tools & UML Diagrams)
  4. Development Model Patterns (RUP, ISO, CMMI, XP)

Software Development Paradigms

  1. Functional Paradigm: Computing as mathematical function evaluation (LISP, Haskell).
  2. Structured Paradigm: Popularized PC software development (C, Pascal, COBOL). Divide and conquer approach, but faced maintainability issues due to redundant code and global variables. Systems were entirely procedural.
  3. Object-Oriented Paradigm: Based on interacting objects. Analysis and design aim to identify the optimal object set (Delphi, Java, Visual Basic).
  4. Component-Oriented Paradigm: Interacting software components form complex systems. Components, defined as objects with similar purposes, can be static.
  5. Aspect-Oriented Paradigm: Separates and organizes code by importance. Enables code encapsulation and modularization (AspectJ).

Software Engineering

Definition

Software engineering uses sound engineering principles for cost-effective, reliable, and efficient software creation.

Types of Software

  1. Basic Software: Supports other software (compilers, editors).
  2. Real-Time Software: Manages real-world events (air traffic control, ICU monitoring).
  3. Commercial Software: Used by organizations (accounts payable, inventory).
  4. Scientific & Engineering Software: Processes complex algorithms (astronomy, geology, CAD/CAM).
  5. Educational Software: Aids learning (dictionaries, translators, e-book readers).
  6. Artificial Intelligence Software: Solves complex problems using non-numerical algorithms (expert systems, neural networks).
  7. Business Management Software: Integrates management functions (ERP systems).

Software Development Stages

  1. Specification: Defines functionality and operational restrictions (requirements gathering, interviews).
  2. Development: Production according to specifications (analysis, models, diagrams).
  3. Validation: Ensures customer requirements are met (testing, prototypes).
  4. Evolution: Adapts to changing needs and technologies.

Software Requirements Engineering

  1. System Requirements: Documents functions and constraints (contract between buyer and developer).
  2. Project Specification: Abstract software description (diagrams for detailed implementation).
  3. Functional Requirements: System reactions to specific inputs and expected results.
  4. Non-Functional Requirements: Constraints on services or functions.
  5. Domain Requirements: Hardware and physical infrastructure.

Business Model and Information Technology

Challenges

  1. Internal conflicts regarding IT roles and responsibilities.
  2. Complaints about IT system performance, costs, and benefits.
  3. Lack of company-level vision and functional integration.
  4. Decreased competitiveness due to competitors’ innovative IT use.
  5. Redundant information system development and lack of information reuse.

Key Considerations for Integrated Systems

  1. Information flow through management information.
  2. Adequate information.
  3. Eliminating paper.
  4. Internet-based business models.
  5. Expanding the company’s information field.
  6. Rational use of business analysis and competitive intelligence tools.