1 / 11

Addressing Non-Functional Requirements in Software Architecture: A Guide by Dennis Bystritsky

Non-Functional Requirements (NFRs) are essential for evaluating system performance and quality, focusing on attributes like usability, security, and testability. This guide explores how to effectively address NFRs in software architecture, emphasizing the separation of functional and non-functional requirements. By linking NFRs to architectural components, we can maintain clarity and reduce tangling. Additionally, we discuss operationalizability and checkability of NFRs through specific modules. Future work includes evaluating architectures to identify those that meet requirements most effectively.

borka
Télécharger la présentation

Addressing Non-Functional Requirements in Software Architecture: A Guide by Dennis Bystritsky

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Addressing Non-functional Requirements in Software Architecture By: Dennis Bystritsky

  2. What are Non-functional Requirements (NFRs)? • Specify criteria that can be used to judge the operation of a system, rather than specific behaviors • Example: Usability, dependability, security level, testability

  3. How to address NFRs in system architecture? • Problematic • Can’t make a concrete module for something like “testability” • Should be a quality of the system as a whole • So can we even specify NFRs in early system architecture?

  4. Lets first understand NFRs • NFRs are… • Operationalizable – implemented through functional components for the entire architecture (such as security) • Checkable – system can include components which check that the desired quality is met (such as performance)

  5. Functional requirements and NFRs • Must be considered differently • Separation of concerns • Architecture components for FRs might realize some NFRs • We try to reduce “tangling”

  6. First step? • Separate functional requirements from non-functional ones • Login screen • Progress bar • Administrator access • Help screen • Authentication • Security • Performance • Usability

  7. Next… • Implement system architecture based on functional requirements • Should be relatively easy since each requirement links to one or more specific modules

  8. Finally… • For each NFR… • Link it to one or more architectural modules • Feel free to create new modules as needed

  9. How do we link? • XML binders • Use XML-style language to specify how NFRs link to functional components of the architecture

  10. What we have done: • Separated FRs from NFRs • Created system architecture which addresses both sets of requirements • Reduced “tangling”

  11. Future Work • Evaluation of software architecture • How to determine which architectures address requirements better than others

More Related