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.
Karten
146
Lernende
20
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
23.04.2017 / 10.07.2023

Lernkarten

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

Application Type Architectures

Example for Compiler Components

tbd

Application Type Architectures

Example for Repository Architecture for Language Processing

What are Frameworks?

  • Combine architecture with (partial) implementation
  • Component-based design
  • Made of abstract and concrete classes and the interfaces between them
  • Components are impolemented by:
    • filing in the missing parts of the design
    • by instantiaiting the abstract classes
  • moderately large entities that can be reused

Difference between Framework and Library?

Library

  • handle prticular task (XML parsing, error logging...)

 

Frameworks

  • Most define the general controll flow / event handling
  • include libraries
  • Web-app framework: provide user session management, data storage, web page template system
  • Desktop-app framework: ui and standard widgets

What kind of frameworks are there?

  • System infrastructure f.
    • development of system infrastructure(communications, user interfaces., compilers)
  • Middleware integration f.
    • component communication and information exchange
  • Enterprise application f.
    • development of business specific apps

Selecting right framework ist often a trade-off between:

maximizing reuse & maximizing flexibility

Pros - Cons of Frameworks?

Pro:

  • Efficiency
  • Security
  • Expense
  • Support

..tbc

Cons:

Security

Restrictions

Learning a framework, not a language

..tbc

IMPLEMENTATION:

What is Object-Orented Design?

Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem.

It is one approach to software design.

IMPLEMENTATION:

OOD Results:

  • Use Cases (user interaction with the system)
  • System Context (System boundaries, interfaces, main processes)
  • System Architecture (components, functionalities, interfaces)
  • detailed system design model
    • class and relationship model of each component
      • associations, aggregation, generalization
      • interfaces and privatge methods, attributes
      • following design gudelines and design patterns
    • activity and sequence diagrams
    • state diagram

IMPLEMENTATION:

What are the inputs for a Prototype?

  • All analysis
  • design artifacts > architecture and design models

IMPLEMENTATION:

What are the 6 steps of the implementation process?=

  1. Set up the general structure
    1. translate architectureal components into packages, libraries or external projects
  2. Define public interfaces and classes
  3. Define internal interfaces and classes
  4. Implement class methods according to priority list (backlog)
  5. Integrate, test and deliver
  6. Change design models an previous implementation (refactoring) as necessary

IMPLEMENTATION:

How web techonologies work together:

Typical WAF Features (5):

  • Security (Authentication)
  • Dynamic web pages (Templates)
  • Database support (storing & retrieving app state)
  • Session management (manage sessions)
  • User interaction

IMPLEMENTATION:

What is a Build Management for (z.B Apache Maven)?

It is about generating an executable:

  • which source code in which version
  • dependencies to external components
  • build - compile and link all ressources
    • run test cases
    • distributed compilation
  • produce different variants of the software
    • debug, production
  • may be integrated with a deployment system --> CI

IMPLEMENTATION

SCRUM: Roles (4):

  • Product owner
  • Scrum master
  • Developer
  • Customers, users and managers

IMPLEMENTATION

SCRUM: Artifacts (4):

  • Product backlog
  • Sprint backlog
  • Burndown chart
  • design models, code and project-relevant artifacts

IMPLEMENTATION

SCRUM: Meetings (6):

  • Product planning
  • Sprint planning
  • Daily scrum
  • Code review
  • sprint review
  • product / release review

IMPLEMENTATION

SCRUM: Product Owner:

  • Represents Customer
  • Part of the scurm-team
  • Participates meetings
  • Maintains /decides priority of features (customer value)
  • Prepares Backlog
  • Reviews delivered product
  • Accountable for the succes and delivery

IMPLEMENTATION

SCRUM: Scrum Master

  • supports devs
  • coaches team
  • ensures that team adheres to Scrum
  • helps resolve blocking situations
  • arranges meetings
  • keeps track of the backlog
  • protects the team from external distractions
    • communication outside of the team

IMPLEMENTATION:

Open-Closed Design Principle?

  • Classes should be open for extensions
  • Classes should be closed for modifications

Welche Anforderung sollten Requirements erfüllen?

  • COMPLETE --> Beschreibung ALLER Services vorhanden?
  • CONSISTENT --> Keine Wiedersprüche

Requirements validation is the process of checking the requirements 
for validity, consistency, completeness, realism and verifiability.

COPYRIGHT

What is protected by Copyright?

  • every novel expression of an idea (=works)

COPYRIGHT

From which moment is a copyright valid and for how long?

From the instant it is created.

The Period is different. Depending on the country.

COPYRIGHT

What does Copyright mean?

  • Onyl the creator owner may display, copy and commercially exploit the works.
  • He or She only is allowed to create derivate works on it
    • but others are allowed to create works based on the original if it is fundamentally different
  • Copyright applies to the expression of an idea, not the idea itself
    • Not for the algorithm but for that specific implementation
    • Algorithm must be protected by a patent

Lernen