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.
Flashcards
146
Students
20
Language
German
Category
Computer Science
Level
University
Created / Updated
23.04.2017 / 10.07.2023

Flashcards

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

COPYRIGHT

What means Open Source Software Development?

  • approach to sw-dev in which the copyright limitations are overcome
    • sourcecode is published
    • the sw can be freely distributed
    • the sw can be used for derivate works -- inkl commercial exploitation

COPYRIGHT

Roots of OOS?

Free Software Foundation www.fsf.org

COPYRIGHT:

On what aims OSS? What may be OSS-Dev benefits?

  • recruiting large numbers of volunteer devs
  • Devs may be also users
  • Volunteers can be paid by companies that have their business model on top of an OSS project
    • Linux, Java, Eclipse, ... etc.

OPENSOURCE:

The fundamental principle of OSS?

The source code should be freely available.

OPENSOURCE

BSD Licence --> Berkley Standard Distribution Licence

  • non reciprocal
  • Allowed in proprietary systems
  • Changes to the original must be clearly marked
  • protects the copyright of the origniator
  • voids any warranty

OPENSOURCE

Apache Licence 2.0

OPENSOURCE

GPL

  • reciprocal Licence --> copyleft
  • Also links to GPL code needs to GPL licence your code
  •  

OPENSOURCE

LGPL GNU Lesser General PUblic Licence

  • variant of GPL
  • Linking without having the source code to publish
  • LGPL part must be separated from the non LGPL part

OPENSOURCE

Licence Compatibility

Nennen Sie die 6 Design Thinking Schritte in korrekter Reihenfolge

  1. Scoping
  2. Research
  3. Synthesis
  4. Design
  5. Prototyping
  6. Validate

Quality and Verification:

Most important quality property?

Dependability -- Zuverlässigkeit

  • Wrong behaviour may cause accidents, endanger the health of its users etc.
  • Large numbers of People may be affected
  • System may be rejected by user
  • Economic costs of lacking systems --> HIGH

Quality and Verification:

What are the 5 dependability properties:

  • Availability
  • Reliability
  • Safety
  • Security
  • Resilience

Quality and Verification:

What is Availability?

The ability of the system to deliver services when requested.

Quality and Verification:

What is Reliability?

The ability of the system to deliver services as specified.

Zuverlässigkeit.

Quality and Verification:

What is Safety?

The ability of the system to operate without catastrophic failure.

Quality and Verification:

What is Security?

The ability of the system to protect itself against deliberate or accidental intrusion.

Study