Software and Systems: Types, Development, and UML Diagrams

Software and Systems

Main Categories

  • Center: SOFTWARE
  • Left: SOFTWARE APPLICATION – Performs information processing tasks for end-users.
  • Left/Left: GENERAL-PURPOSE APPLICATION PROGRAMS
  • Left/Right: SPECIFIC APPLICATION PROGRAMS
  • Center Right: SOFTWARE SYSTEMS – Manages and supports operations of network computing systems.
  • Right/Left: PROGRAM MANAGEMENT SYSTEMS
  • Right/Right: SYSTEMS DEVELOPMENT PROGRAMS

Software Analysis and Design

  • Software Analysis: Investigation of the problem, defining *what* the system should do and how to define a solution.
  • Software Design: Emphasizes a logical solution, i.e., *how* the system will meet the requirements.
  • Object-Oriented (OO) Analysis: Emphasis on the discovery and description of objects or concepts of the problem domain.
  • OO Design: Emphasis on the definition of software logic elements, which will be implemented in an object-oriented programming language.
  • Strategy to Deal with Project Complexity: Decomposition (divide and conquer), breaking the problem into more manageable units.
  • CASE Tools: Computer-aided software engineering software packages that assist managers and software engineering professionals in activities associated with the software process. They automate project management, manage work products, and assist engineers in analysis, design, coding, and testing. They are concerned with defining software development methods, private methods, and supporting work in isolation.
  • Software Process Definition (Pressman): A set of tasks necessary for building high-quality software. It provides stability, control, and organization. Key indicators of effectiveness are punctuality and long-term viability.
  • Software Process Definition (Sommerville): A software process produces software products from a range of activities and associated results.

Key Terms and Definitions

  1. Software Systems: Programs that manage and assist computer operations.
  2. Application Software: Performs information processing tasks for end-users.
  3. Operating System: A system program that manages computer operations.
  4. CASE Tools: Integrated software tools that assist in developing software applications.
  5. COTS Software: Commercial-Off-The-Shelf, ready-made software for marketing.
  6. Multitasking: The ability to perform different computing tasks simultaneously.
  7. HTML: Hypertext Markup Language, the most common markup language used on the web.
  8. Translator: Converts high-level instructions into machine language instructions.
  9. Utility Programs: Performs computer maintenance tasks.
  10. Custom Application Software: Software created internally for use by an organization or a specific set of users.
  11. Web Browser: Helps navigate the web.
  12. Email: Uses a networked computer for sending or receiving messages.
  13. Spreadsheet Package: Creates and displays a spreadsheet for analysis.
  14. Text-Processing Software: Lets you create and edit documents.
  15. Personal Information Manager: Helps control appointments and tasks.
  16. Machine Language: Uses instructions in the form of sequences coded as zeros and ones.
  17. High-Level Language: Uses instructions in the form of short sentences or mathematical notation.
  18. Object-Oriented Language: Combines data and actions to be taken based on the data.
  19. Natural Language: Easy to use, like one’s native language.
  20. Programming Environment: Includes editors, debuggers, and code generators.
  21. XML: eXtensible Markup Language, a content description language for web documents.
  22. Java: A popular object-oriented language for web-based applications.
  23. Web Services: Links functions within enterprise applications for data exchange between companies on the web.
  24. UML: Unified Modeling Language, a notation (mainly diagrammatic) for modeling systems using object-oriented concepts.

Unified Modeling Language (UML)

UML is a family of graphical notations that helps in modeling, describing, and designing software systems, particularly those built using an object-oriented style.

UML Diagrams and Activities

  • Activity: Procedural and parallel behavior.
  • Class: Class features and relationships.
  • Communication: Interaction between objects, emphasizing connections.
  • Components: Structure and connection components.
  • Deployment: Distribution of artifacts.
  • Object: Example configuration of instances.
  • Packages: Hierarchical structure at compile time.
  • Sequence: Interaction between objects, emphasizing sequence.
  • Use Cases: How users interact with a system.

UML Diagram Types

  • Center: DIAGRAM
  • Left: STRUCTURAL
    • Class Diagram
    • Object Diagram
    • Component Diagram
    • Deployment Diagram
    • Package Diagram
  • Right: BEHAVIOR
    • Activity Diagram
    • Use Case Diagram
    • Interaction Diagrams
      • Sequence Diagram
      • Collaboration/Communication Diagram