MSE coursew8 to week 14


Set of flashcards Details

Flashcards 131
Language Deutsch
Category Computer Science
Level University
Created / Updated 30.12.2020 / 27.01.2021
Weblink
https://card2brain.ch/box/20201230_software_engineering_and_architecture
Embed
<iframe src="https://card2brain.ch/box/20201230_software_engineering_and_architecture/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

How many companies in switzerland do already some agile?

arount 85% doing some agile. Thereof 13% even pure agile

From the companies which do some agile, which methodology is used most often?

69% doing Scrum or Scrum/XP.

10% Kanban is the next most often used. -> huge gap

How satisfied are companies / professionals with agile compared to plan-driven?

Agile companies / professionals are 89%/85% (very) satisfied with the methodology compared to 71%/16% with the plan driven methodologies.

-> huge hap between satisfaction of companies and professionals with the PD methodology

Draw the pyramid of agile competences:

Why are IT-Professionals way more satisfied with agile methodologies than with PD ones?

  • Agile is not a process, it defines a culture
  • Agile values are (often) ignored:
    • Transparency
    • Self-empowerment
    • Trust
    • Informailty
    • Pride
    • Commitment / affiliation
    • Culture o giving

 

According to the swiss agile study, what is seen as key element for successfull agile projects?

Intensive and open communication among all stakeholders.

Three major communication scenarios:

  1. The team members themselves must communicate among each other intensively
  2. The team as a whole must communicate with the customer and end-users
  3. The team must establish good communication with the management (which is often organized in a classical hierarchical way

 

 

According to the swiss agile study, how has agile software development influenced business aspects from the company view?

Had in every business aspect a big positive impact. Development Process (86%), Managing changing priorities (92%) and time to market (77%) were stated to have the most positive impact (percentages for improved and significantly improved).

 

 

According to the swiss agile study, how has agile software development influenced team aspects from the company view?

Also big positive impact over all aspects. Team morale/motivation (84%), people development (81%) and team productivity (81%) stand out the most!

 

According to the swiss agile study, how has agile software development influenced stress aspects from the company view?

Here the impact is smaller but still positive.

What can be summarized of the swiss agile study?

  • Agile companies are much more satisfied with their methodology than non-agile companies
  • Hybrid development is an issu, but shows miced results
  • Agile companies show more improvements
  • Only slight improvements with stress and overtime

 

What does agile development co-occure positive the most?

It leads to ability to manage changing prior and this influences the development process directly!

What does influence the experience with agile methodologies of the company/professionals most?

Collaboriation!

The more experience the more collaboration happens!

What are the most important points that the swiss agile study has shown?

  • Tech practices precede collaborative practices:
    • Why? Initial misunderstanding of importance?
  • Organization culture linked to agile experience
    • What does it mean for your organization
  • Barriers are cultural first, complexity later:
    • How should agile handle complex software development?
  • Agile is stressful?
    • Why? What can be done?

 

What is software architecture?

Definition

  • A software system's architecture is the set of principal design decisions about the system.
  • Software architecture is the blueprint for a software system's construction and evolution
  • Design decisions encompass the following aspects of the system under development
    • Structure
    • Behavior
    • Interaction
    • Non-functional properties
  • Can be understood like a Blueprint (plan)
    • provides overview
    • eases understanding
    • promotes communication
    • increases flexibility

 

 

What is the process, the product and the means of software architecture?

  • process: design a solution
  • product: models, documentation, prototypes
  • means: eases implementation of larger system

 

What is meant by Design Decisions in software architecture?

  • Structural
    • The architectural elements should be organized and composed ecactly like this...
  • Behavioral
    • Data processing, storage, and visualization will be performed in strict sequence
  • Interaction
    • Communication among all system elements will occur only using event notifications
  • Non-functional
    • The system's dependebility will be ensured by replicated processing modules

 

Give the simplest mentioned explanation about what software architecture is:

Shaw&Garlan 1996:

The architecture of a software system defines that system in terms of computational components and interactions among those components. Components are such things as clients and servers, databases, filters, and layers in a hierarchcal system.

Which kind of software architecture exist?

  • Enterprise architecture
    • ... defines way how an enterprise uses many applications
    • metaphos: city planning
  • Application architecture
    • ... defines the pieces that compose an application
    • metaphor: building architecture

 

What points define the adequacy of the software architecture?

  • Business needs
  • Technical aspects
  • Organizational aspects

 

How do you prove the technical adequacy of a chosen architecture?

Gist of Software Architecture

  • Describe Software Systems
    • by separation
  • into components
    • and
  • Relatinships between these components
    • by providing
  • separate views
    • and by respecting
  • explicit and implicit quality attributes

 

What is the 3-Tier software architecture about?

Example of an architecture bases on "Layers" architectural pattern.

How do you document the architecture?

UML would be one possibility and is most often used.

What describes the software architecture actually?

  • Sofware architecture is a set of models of the overall software system
  • All requirements relevant for the system's construction must be addressed, e.g.
    • Extendibility
    • Timing
    • Performance
    • Security

 

What is the "Philipe Kruchten" architecture view about?

  • Need for several views
  • Requirements tie everything together
    • 4+1 view

 

Explain the different views from Kruchten's architecture view:

  • Logical view
    • The logical view is concerned with the functionality that the system provides to end-users. UML Diagrams used to represent the logical view include class diagram, communication diagram, sequence diagram
  • Development view
    • The development view illustrates a system from a programmer's perspective and is concerned with software management. This view is also known as the implementation view. It uses the UML component diagram to describe system components. UML Diagrams used to represent the development view include the Pachage diagram.
  • Process View
    • The process view deals with the dynamic aspects of the system, explains the system processses and how they communicate, and focuses on the runtime behavior of the system. The process view addresses concurrency, distribution, integrators, performance, and scalabilty, etc. UML diagrams to represent process view include the activity diagram.
  • Physical view
    • The physical view depicts the system from a system engineer's point-of-view. It is concerned with the topology of software components on the physical layer, as well as communicatoin between these components. This view is also known as the deployment view. UML diagrams used to represent physical view include the deployment diagram.

How is the Kruchten's View architecture applied?

  • Scenarios
  • The description of an architecture is illustrated using a small set of use cases, or scenarios which become a fifth view. The scenarios describe sequencs of interactions between objects, and between processes. They are used to identify architectural elements and to illustrate and validate the architecture design. They also serve as a starting point for tests of an architecture prototype. UML Diagram(s) used to represent the scenario view include the use case diagram.

 

Why do documantation?

  • If it is not written down, it does not exist
  • What are your rules for layering? how to ensure that you meet your latency goal?
  • What if Cal gets hit by a bus?

 

Why different views?

  • Too many dimensions of information
  • Different stakeholders need different information
  • Non-formal/non-UML diagrms are helpful
    • whiteboard sketches can be fine
    • but within developer context appropriate UML diagrams can be fruitful

 

Why is architecture hard?

  • Multi-dimensional decisions are hard
    • architectural decisions
      • have stron, overarching impact
      • define system- and project structure
  • All factors are interdependent
    • changeability impacts performance
    • security impacts adaptability
    • everything impacts cost
  • Requirements change continuously
    • change is the only constant
    • architecture guides change

 

Why is architecture even needed?

  • communication among stakeholders
    • common understandng about the system
    • get consensus
    • basis for discussions and decisions
  • document design decisions
    • guidelines for implementation
    • basis for evolution and iterations
    • helps structuring team and planning
    • checkpoints for goal achievment
  • abstraction of the system
    • for buidling product lines and homogeneous systems
    • for outsourcing or acquiring parts

 

What are typical misconceptions about architecture?

  • Architecture is the same as design
    • Architects focus is on the boundaries and interfaces
  • £Architecture is about infrastructure
    • Frameworks, applicatoin servers, and databases from a minor part of the problem space only
  • Architecture solves technical problems
    • chances are your biggest problem isn't technical
  • Architecture is rigid and fixed (up fron)
    • Understand the impact of change
    • Start with a walking skeleton
    • great software is not built, it is grown
  • Architecture is pure science or pure art
    • requires both and more

 

What is the role of the software architect?

  • "all-in-one" person
  • "Eierlegende Wollmilchsau"
  • guarantee fulfillment of requirements
    • within budget
  • demonstrate achievability
    • with models and/or prototypes
  • design and construct
    • components, interfaces responsibilities, structure
  • coach and soncult developer and other stakeholders
    • technology, project planning, risk management, organization, implementation, quality control

 

What are the tasks of an software architect?

  • Decide (under uncertainty, but decide)
    • Use uncertainty as a driver
    • Architectrual tradeoffs
  • Document (adequately)
    • Communicatin is king, clarity and leadership its servants
    • record your rationale
  • Proof feasibility
    • One line of working code is worth 500 lines of specification
    • Try before choosing
  • Program
    • Architects must be hands on
    • Before anything an architect is a developer
    • if you design it, you should be able to code it
    • Architects always also implements
  • Communicate
    • Stand up, talk the talk
    • Learn a new language
  • Negotiate (with stakeholders)
    • Seek the value in requested capabilities
    • you're negotiating more than you think
  • Simplify
    • Simplify essential complexity; reduce accidental complexity
    • Simplicity before generality, use before reuse
    • Make sure the simple stuff is simple
  • Standardize
    • Reduce the entropy
  • Listen
    • Hear the stakeholder's concerns
  • Observe
    • Dont control, but observe
    • Get the 100-foot view
  • Think (about the future)
    • Everything will ultimately fail
    • Focus on applicatoin support and maintenance
    • your system is legacy; design for it
    • you can't provide future-proof solutions
  • Lead
    • Give developers autonomy
    • There is no 'I' in architecture

 

What are the top mistakes in software engineering?

IBM:

  • Believing the requirements
  • Being seduces by the technology
  • Majoring on your strengths and neglecting other areas
  • Not stopping designers from designing
  • Thinking you can to it all yourself

Woods:

  • Scoping Woves
  • Not casting your net widely
  • Focusing on functions (forgetting qualities)
  • Using Box and line descriptions
  • Forgetting that it needs to be built
  • lack of platform precision
  • performance assumptions
  • Do-It-Yourself security
  • Lack of disaster recovery
  • No backout plan

 

What are the most important aspects of architecture and an architect?

  • Simplicity
  • Abstraction
  • Separation
  • Structure
  • Interface
  • Communication
  • Delivery of working systems

 

Core discibplines: What activities do you have to do in every software development project?

  • Process: (1) A sequence of steps performed for a given purpose; for example, the software development process. (2) An executable unit managed by an operating system scheduler. (3) To perform operations on data
  • Software development process. The process by which user needs are translated into a software product. The process involves translating user needs into software requirements, transforming the software requirements into design, implementing the design in code, testing the code, and sometimes, installing and checking out the software for operational use. Note: These actiivities may oerlap or be performed iteratively

 

What cycles exist in software architecture?

  • Software development cycle: The period of time that begins with the dexision to develop a software product and ends when the software is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, thest phase, and sometimes, installtion and checkout phase. Contrast with: software life cycle
  • Software life cycle: The period of time that begins when a software product is conceived and ends when the sotware is no longer available for use. The software life cycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installtion and checkout phase, operation and maintenance phase, and sometimes, retirement phase. Note: These phases may overlaap or be perfomed iteratively

 

What is the difference between the watefall and the V-model of software architecture?

What is the Rational Unified Process (RUP) about?

  • Risks as primary driver
  • Architecture centric
  • 4 phases
  • Iterative and incremental
  • "Heavy": lots of documents, roles and process specificatoin
  • Adaptable

 

Name the RUP (Rational Unified Process) phases & milestones:

  • Each phase ends with a milestone
    • Inception: lifecycle objectives (scope!)
    • Elaboration: Lifecycle Architecture
    • Construction: Initial operational capacility
    • Transition: Product release