Mapa mental
204 Software Design

Mind map: Software design
Conteúdo do mapa
204 Software Design
Requirements
- A description of what the system under development should do and any constraints
- Serves as a contract between the development team and the customer
- Set of Shall statements for mandatory requirements, Should of desirable requirements
- Functional Requirements for services that a system SHOULD devliver
- Non-Functional requirements are quality a system delivers
Use case
- Is a behavioural model of a system - Diagrams serve as a high level reference
- Actors: A user or another system that interacts with our system
- System Boundary is the box in which all the system services occur
- Precondition - Must be specific to this use case
- To confirm the completion of this use case
- Primary Scenario and Secondary Scenarios
- Include is used to extract use case fragments that are duplicated in multiple use cases
- Extend is used when a use case conditionally adds steps to another use case
- Exceptions (Cant fulfil the Post conditions)
- Alternatives different ways to fulfil the post conditions
- Cloud Level: Very high level Summary - Seal Level: User goal, key characteristics - Fish Level: Usually include or extend use cases, Bottom-of-the-ocean: Too Low
Software Architecture
- Software design is the process by which a set of requirements is transformed into a collection of data that's implemented by a computer program
- First Stage of software Design
- Architectural Design, Interface Design, Component Design, Data Structure Design, Algorithm Design
- Key Objectives: Correctness, Robustness, Flexibility, Reusability, Efficiency, Reliability
- Is the set the structures needed to reason about the system
- A Structure is a simple set of elements held together by relations
- Static Structure, Dynamic Structure, Allocation Structures
- A Structure is a simple set of elements held together by relations
- Steps
- System Structuring: A number of principal sub-systems or components
- Control Modelling: General model of control realtionships
- Modular Decomposition: Each sub-system is decomposed into modules
- Box and line diagrams
- Subsystem 1
- Component 2.1
- Component 2.2
- Subsystem 3
- Component 2.2
- Subsystem 2
- Component 2.1
- They do not show the nature of a relation, the don't show elements externally visible properties
- Subsystem 1
- Choice of architecture affects a systems quality properties (NFR)
- Performance
- Secuirty
- Saftey
- Availability
- Maintainability
- The Repository Style
- All data in a system is managed by a central repository that is accessible to all system components
- Advantages: Components can be independent of one another, All data can be managed consistently
- Disadvantages: The repository style is a single point of failure, Distributing the repository across several computers may be difficult
- Layered Architecture style
- Notion of separation and independence is fundamental
- User Interface
- User Interface Management
- Core business logic/application functionality
- System Support (OS, Database)
- Core business logic/application functionality
- User Interface Management
- Organizes the system into layers with related functionality
- Advantages: Allows replacement of entire player so long as the interface is maintained
- Disadvantages: In practice, providing clear separation is often difficult , performance can also be a problem
- Client-Server Style
- The functionality of the system is organized into services, with each service delivered from a separate server
- Advantages: Servers can be distributed across a network, can be available to all clients
- Disadvantages: Each service is a single point of failure, performance may be unpredictable
- Pipe and filter Style
- The processing of data in a system is organized so that each filter is discrete and carries out one type of data transformation
- Advantages: Easy to understand, Can be implemented as either a sequential or concurrent system
- Disadvantages: The format for data transfer has to be agreed up between communicating transformations
- Service-Oriented Architecture Style
- SOA provides the conceptual framework for realizing notion of software as a service
- Advantages: Allows access to 3rd party services on demand, cuts maintenance costs
- Disadvantages: Raises issues or trust and policy, Difficult to ensure QoS guarantees
- Model-View-Controller Style (MVC)
- Separates presentation and interaction from the system data
- Advantages: Allows the data to change independently, supports presentation of the same data in different ways
- Disadvantages: Can involve additional code and code complexity when the data model and interactions are simple
Control Modeling
- Concerned with the control flow between sub-systems
- Centralised Control: One sub-system has overall responsibility for control
- Call return Model (Top down where control starts at the top, Applicable to sequential Systems)
- Manager Model (Applicable to concurrent systems, one system component controls the stopping, starting and coordination of other system processes
- Event-based control: Each sub-system can respond to externally generated events from other sub-systems
- Broadcast Models (An event is broadcast to all sub-systems, any subsystem can handle that request)
- Effective in integrating subsystems on different computers in a network
- Sub-systems don't know if or when an event will be handled
- Broadcast Models (An event is broadcast to all sub-systems, any subsystem can handle that request)
- Interrupt-driven systems: Used in real-time system where fast response to an event is essential
Basic OOD
- Objects represent an entity
- State (Attribute)
- Behaviour (What it does)
- Unique ID
- Instance of a class
- Classes (A group of objects, Attributes, Behaviours, Links)
- Is an abstraction, emphasises relevant characteristics
- Classes can be arranged in a generalisation hierarchy that shows the relationship between general and more specific classes
- OO, allows classes to inherit commonly used state and behaviour from other classes, Subclasses inherit all the attributes and operations of their superclasses
- Attribute is a property of a class, Describes a range of values
- Association: Objects are typically related to one another in some fashion
- Aggregation and composition: Aggregation is a special form of association that connotes a "Whole/part" realtionship
- Composition is a form that involves Strong relationship between aggregate object and its component objects
- Objects represent an entity
UML
- Industry standard notation for describing software system (Used to visualise, specify, construct and document)
- Static (Structural)
- Class Diagrams, Object diagrams, Component Diagrams, Deployment Diagrams
- Component Diagrams: Is a replaceable executable piece of a large system whose implementation details are hidden
- Class Diagrams, Object diagrams, Component Diagrams, Deployment Diagrams
- Dynamic (Behavioural)
- State Diagrams (State of an object), Sequence Diagrams (Show how objects behave in terms of sending messages)
- Identify the instances of the classes that participate in the sequence, Establish the sequence of method calls, Add method calls starting with the first call on the top left. Use frames to show alternative, optional, and loop fragments
- State Diagrams (State of an object), Sequence Diagrams (Show how objects behave in terms of sending messages)
- Extensibility
- Stereotypes: Allows for new entities to be derived from existing ones
- Tagged Values: Allows for additional information in the form of properties and values to be associated with an entity
- Constraints: Allow new rules to be added to entities, or existing rules to be overridden
- OCL (Object Constraint Language: Formal way for describing the rules that apply to UML models
Design Patterns
- Patterns of problems --------> Patterns of solutions
- Structure: Name of pattern, Description of the problems, Example of use, Description of solution, Discussion of advantages/Disadvantages
- Gang of four
- Behavioural: Communication between objects
- Observer Pattern: Observe the state of an object (1 Subject - n Observers)
- Creational: Class instantiation
- Singleton Pattern: Situations where you need only one object of a class
- Structural: Class and object composition
- Adapter Pattern - German Socket, Adapter, UK plug
- Behavioural: Communication between objects
Informações
- Descrição
- Mapa Mental sobre 204 Software Design, criado por Jarl Jackson em 09-05-2019.
- Criado por
- Jarl Jackson
- Visualizações
- 2
- Avaliação