Software Engineering BFH

Software Engineering BFH

Software Engineering BFH


Joris Baiutti
Diese Lernkarten bieten einen umfassenden Überblick über Software Engineering auf Universitätsniveau, mit Fokus auf Systemdesign, Architektur, Komponenten und Anforderungen. Sie behandeln Themen wie Verifikation, Zuverlässigkeit und Sicherheit, einschließlich der Behandlung von Fehlern, Risiken und Schutzsystemen. Die Karteikarten sind besonders nützlich für Studierende und Fachleute, die ihr Verständnis von Softwareentwicklung vertiefen und sicherstellen möchten, dass Systeme zuverlässig und sicher funktionieren.
Cartes-fiches
146
Utilisateurs
20
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
23.04.2017 / 10.07.2023

Flashcards

Welche Modellier Systempersketiven gibt es, nenne 4

  • External: Context or environment of the System
  • Structural: Organization of a System or Structure of the processed data
  • Interaction: System - -Environment or Component -- Component
  • Behavioral: Dynamic behavior of the System, Responds to events

UML elements can be put into 4 categories:

  • Structural (class, object, use case, ..)
  • Annotational (note)
  • Grouping (package, modul, ..)
  • Behavioral (activity, state, ..)

Where can UML note be used?

In any UML diagram

5 Diagrams for static aspects (Structural)

  • Class D.
  • Object D.
  • Package D.
  • Component D.
  • Deployment D.

4 Diagrams for dynamic aspects (Behaivoral)

  • Use Case D.
  • Activity D.
  • State D.
  • Sequence D.

What does the UML Collaboration Notation show?

  • Classes, Interfaces and other UML elementw which together realize a higher level task or abstraction.-
  • Only conceptual not physikal

EP: What are Context models for?

  • Illustrate the operational context
    • what is outside the System boundaries 
    • definition of "out of Scope" on system level
    • is based on user and system requirements

EP: What are Architectural Models for?

- Show the system and ist relationship with oder systems

EP: What are Process Models for?

- Show how the system is used with other systems -- z.B. With an activity Diagram

IP: Focus of interaction perspective

The interaction perspective focuses on the interaction of a system. This can be:

  • External interaction: users / external systems can interact with our system 
  • Internal interaction: components / Classes intereract internaly

IP: Why interaction modelling?

  • modeling user interaction is important identifying user requirements
  • modeling system-to-system interaction: possible communication problems will be highlighted
  • component interaction: helps understand if a proposed system structure is likely to deliver the required system performance and dependability

IP: Which Diagrams for interaction Models

  • Use Case D.
  • Activity D.
  • Communication D.
  • Sequence D.

SP: What does it show?

  • organization of modules, components, classes, ..

SP: What kind of Structural Models?

  • static models: system design --> Domain Model (simpl. Class diagram)
  • dynamic models: orgnization when the system is running --> Object Diagram

SP: What does the Domain Model show?

  • Concepts
  • Associations
  • Attributes
  • NOT operations --> Similar Class Diagram

SP: How to Identify Classes (3)?

  • Check for Typical Classes
  • Noun Phrase Identification
  • Responsibility-Driven Design (RDD)

Structural perspective: Responsibility-Driven Design: Which responsibilities are there?

  • Doing
  • Knowing

SP: Which information is on CRC Card?

  • Class
  • Responsibilities: What is the class doing?
  • Collaborators: Does it know / need other classes

From user requirements to system design:

Use Cases -> System Context -> Architecture -> Class Model -> Design Models -> Implementation

Patterns: What is a Idiom?

  •  low-level pattern > describes the implementation of aspecifig aspect of a software component,

Patterns: What is a design Pattern?

  • common structure of interacting objects to solve a general sw-design problem in a specifig context
  • Generic
  • Language independent

Patterns: What is an architectural Pattern?

  • high-level pattern, descibes the fundamental structure of a sw-system and relations among it's participating sub-systems

Patterns: GOF - Classification

  • Creational
  • Structural
  • Behavioral

Patterns: Advantages of Design Patterns ?

1. enable large scale reuse of S/W

2. Helps in improve developer communication

3. capture expert knowledge and design trade-offs and make expertise widely available

4. Well documented and understood

Patterns: Disadvantages of Design Patterns

1.Do not lead to direct code reuse

2. Complex in nature

3. they are deceptively simple

4. they are validated by experince and discussion

What is Model-driven engineering

an approach to software development in which a system is represented as a set of models that can be automatically transformed to executable code.

What is sw architecture?

  • A model that describes how the sw is organized as :
    • a set of components
    • which communicate with each other

When do we design the sw architecure and why? (architectural design process)

  • early stage of system design process
  • often parallel with spec activities

 

  • link between RE and sw design --> based on / parallel with context and domain model

Different levels of abstraction?

  • individual programs (and their components)
  • complex enterprise systems --> composed of other systems, programs, components
    • distributed over different computers
    • owned by different companies

Use of Architectural Models (5)?

  • Stakeholder communication
    • sh can understand the system and discuss --> no confusing detail
  • System analysis
    • analysis if the system can meet it's nf requirements
  • Project planning
    • planning & assigning responsibilities / ressources
    • planning the interfaces and integration
  • Documentation
    • Complet model that shows
      • the differnt components in a system
      • interfaces
      • connections
  • Large-scale reuse
    • Architecture may be reusable
    • Generic product may be developed in form of  a framework

Architectural Representation form? How?

  • Block diagrams (entities, relationships)  > boxes and lines
    • very abstract
      • For stakeholders and project planing
      • Cons: no types of relationships and no properties
  • UML
    • structure: component, package, deployment D.
    • behavior: activity D.
    • interaction: communication D and interaction overview
      • For discusion with impl team, detailed planning, Model-Driven Engineering
      • Cons: high effort for creation & maintainance

What is architectural design?

  • creative process
  • depending on type of system

Which are the important question for the architectural design?

  • How to decompose into modules?
  • How to deploy on different machines?
  • Control strategy?
  • Is there a generic application architecture that can be used?
  • Architectural patterns?

This has large impact on non fon-functional properties!

  • ++ how to evaluate the arch. design?
  • ++ how to document the architecture

Non-Functional Requirements in Architecture?

  • Performance (localise critical operations and minimise communication)
  • Security (Layered architecture with critical assets in the inner Layers)
  • Safety (Localise safety-critical features in a small number of sub-systems)
  • Availability (redundant components and mechanisms for fault tolerance)
  • Maintainability (fine-grain, replacable components)
  • Scalability (distributed architecture to have options for load balancing)

Name 5 important architectural patterns:

  1. MVC / MVP
  2. Layering
  3. Client-Server and P2P
  4. Repository
  5. Pipe and Filter

Application Type Architectures

Application Types?

  • Data processing applications
    • batch processing without user intervention
      • Scientific computing (CERN, ATLAS...)
  • Event processing systems
    • Actions of app depending on events from outside
      • sensor networks(environment or patient health monitoring)
  • Transaction processing applications
    • Data-centered
    • process user requests and update infos in db
      • e-commerce, reservaton systems...
  • Language processing systems
    • Userinput in formal language is processed and interpreted
      • Compilers, databases, command interpreters

Application Type Architectures

Example for Transaction processing system:

May be based on the Pipe & Filter Architecture Pattern

Application Type Architectures

Transaction Processing System Example 2:

May be based on a Layer Architecture Pattern

Application Type Architectures

Example for Web-based information Systems:

Web-Shop:

  • UI > Web browser
  • apspecific layer includes additional functionality > shoping cart
    • add items in separate transactions
    • pay for all together in a single transaction
  • Often implemented as Multi-tier Client-Server Architecture
    • Web Server: responsible for user communication with the UI (Browser = client)
    • Application Server: responsible for application specific logig, info storage, retrieval request
    • DB-Server: moves info to and from db and handles transaction management

Application Type Architectures

Example for Language Processing System:

tbd

Study