0
2.3kviews
Differentiate software architecture and software design?

Mumbai University > Computer Engineering > Sem 7 > Software Architecture

Marks: 5M

Year: Dec 2015

1 Answer
0
27views

Software Architecture

  • A software system’s architecture is the set of principal design decisions about the system
  • Software architecture represents the structure of the software
  • Expressed using certain views
  • Essential characteristics of architecture:

    • High level view

    • Realize ALL the use case scenarios

    • Present a systemic view to all stakeholders

    Software Architecture can be defined as the essence of an application because it deals with high level concepts that do not include any details as to how they will be implemented.

Software design

  • Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and implementation.
  • Software design is the process of defining software methods, functions, objects, and the overall structure and interaction of your code so that the resulting functionality will satisfy your user’s requirements.
  • Software design usually involves problem solving and planning a software solution.

Software design yields three levels of results:

  • Architectural Design - The architectural design is the highest abstract version of the system.
  • It identifies the software as a system with many components interacting with each other. At this level, the designers get the idea of proposed solution domain.
  • High-level Design- The high-level design breaks the ‘single entity-multiple component’ concept of architectural design into less-abstracted view of sub-systems and modules and depicts their interaction with each other.
  • High-level design focuses on how the system along with all of its components can be implemented in forms of modules.
  • It recognizes modular structure of each sub-system and their relation and interaction among each other.
  • Detailed Design- Detailed design deals with the implementation part of what is seen as a system and its sub-systems in the previous two designs.
  • It is more detailed towards modules and their implementations.
  • It defines logical structure of each module and their interfaces to communicate with other modules.

Difference

  • Architecture focuses on how the major elements and components within an application are used by, or interact with, other major elements and components within the application.
  • The selection of data structures and algorithms or the implementation details of individual components are design concerns.
  • Architecture and design concerns very often overlap. Rather than use hard and fast rules to distinguish between architecture and design, it makes sense to combine these two areas.
  • In some cases, decisions are clearly more architectural in nature.
  • In other cases, the decisions are more about design, and how they help you to realize that architecture.
Please log in to add an answer.