Software Engineering collection 3

Ace your homework & exams now with Quizwiz!

The linear nature of the Classic Life Cycle (Waterfall) may led to what negative event?

Blocking States

Git Fork

Copy of someone else's repo on GitHub

What does MDD stand for?

Model-Driven Development

Browser

Software used to view web pages.

Fault correction cost

Simple & easy in early phases, difficult as the product is developed

Version Control

Supports the management and storage of Configuration Items as they are created and modified during the lifecycle. allows you to reproduce the precise state of the system at any moment in time.

Which evolutionary process model comprises applications from prepackaged software components?

The Component Based Development Model

Facade.

The Facade pattern does not add any additional behaviour to a software component. It simply hides an ugly interface behind a more pleasant one - by appropriately delegating to the ugly interface.

Which Process Model does Cleanroom Software Engineering use?

The Formal Methods Model

Which process model leads to mathematical specifications of computer software?

The Formal Methods Model

What is the Law of Demeter?

The Law of Demeter states "Only talk to your immediate friends". With regard to OOP design, this means that long chains of method calls should be avoided as they lead to more fragile code and also introduce a heavy maintenance and testing burden.

Describe the Observer pattern and give an example of where it might be used.

The Observer Pattern is a pattern in which a "Subject" class maintains a list of its "Observer"s and notifies them of any state changes. See UML. It is typically used when an object should be able to notify other objects about its state change, but without making assumptions about who these objects are. Examples of usage: - A "Queue" object that notifies "Consumer" objects when a new task/message is placed on the queue.

Scope Creep

Uncontrolled growth of a project

Purposes of Measurement in Software Engineering

Understand Control Improve

Inception phase, requirements workflow

Understand the domain, determine scope, build business model, business case

What is meant by Elicitation

Understanding the problem

Developer

Understands the system but will test gently driven by delivery.

UML

Unified Modeling Language

UML stands for?

Unified Modeling Language

What is meant by the term UML

Unified Modeling language

UML

Unified Modelling Language: Standard language for specifying, visualising, constructing, and documenting all the artefacts of a software system during the software lifecycle.

What does UML stand for

Uniform Modeling Language

Unit test

Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation.

Development testing (3)

Unit testing, component testing and system testing

UML

Universal modelling language

Evolutionary Project

Updating an existing system

Functional Diagrams

Use Case Diagram

Moving target problem

When the client requirements change as the product is being developed

Cyclomatic complexity

a software metric (measurement), used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code.

Architectural patterns

a stylized description of good design practice, which has been tried and tested in different environments

Nennen Sie drei Beispiele wann ein Code Refactoring stattfinden sollte.

- nach Review - während Fehlerbehebung - Unit-Test schreiben - hinzufügen neuer Funktionalität - etc.

Was sollte man sich zu Slots merken?

- per Default: public - Private Slots -> ohne slot schreiben - können einen Übergabeparameter haben

decisiveness

A potential challenge of using agile project management methods is that they depend heavily on the regular availability and ________ of the customer.

productivity measures and model

A productivity model is a measurement method which is used in practice for measuring productivity. A productivity model must be able to compute Output / Input when there are many different outputs and inputs. Measured productivity is the ratio of a measure of total outputs to a measure of inputs used in the production of goods and services. Productivity growth is estimated by subtracting the growth in inputs from the growth in output — it is the residual. There are a number of ways to measure productivity.

Versions

A revision or variant of a software.

What is Boehm's Spiral Model?

A risk-driven software process framework.

Codeline

A sequence of source code versions, each deriving itself from an earlier version

Feature creep

A series of small, insignificant requests for additions to the requirements

Model

A set of UML diagrams that describe one or more aspects of a software product

Epic

A set of User stories, which will be transformed into tasks and then noted in the columns. Priority of the story is decided by the product owner. Priority of stories are based on the business value of corresponding Epic. (the stories have to be linked)

What is a software process

A set of activities whose goal is the development or evolution of software

What is a software process model

A simplified representation of a software process, presented from a specific perspective

Increment

A small change to a baseline

Defect testing

A successful test exposes a defect

Validation testing

A successful test shows the system operates as intended

Methodology

A system of practices, techniques, procedures, and rules used by those who work in a discipline.

A software engineering workflow is distributed across which Unified Process phase(s)?

All of them

What bass view is concerned with Work Assignment, deployment and implementation

Allocation view

The shared data problem

Allow two or more developers with access to the same file/data.

mitigate

actions are implemented in attempt to reduce or contain a risk

Behaviour diagram

activity, use case, state machine, interaction

What is a type of association is a employee to a department

aggregation because an employee will survive without a department

Negotiation

agree on a deliverable system that is realistic for developers and customers

Build

all of the versions and variants used to create the product.

Dynamic Process Model

allows the user to view how the products are transformed over time. shows how changes to the process affect the output over time.

Agile Methods敏捷

alternative to traditional project management. Helps respond to unpredictability through incremental, iterative work cadences, known as sprints. (Scrum)

Systems analysis

an analysis to determine inputs, outputs, and changes in a system under various conditions

objectives

an example set of risk management objectives helps that keeps to keep risk within in an acceptable tolerance over time, ensures timely management of each risk that is identified, execute risk management activities within defined cost objectives

How are transitions from one state to another represented on a state transitions diagram

arcs

If-then statements

are good for events or circumstances that might occur at some point in the future and will have negative consequences if they do occur. Security risks are good examples as well as things like future budget cuts, possible schedule changes, and so on.

Condition-consequence statements

are good for risks which arise out of a current weak condition that could already be causing problems but will also possibly cause additional problems, which are documented as the potential consequences.

Inception

ask a set of questions that establish ... o basic understanding of the problem o the people who want a solution o the nature of the solution that is desired, and o the effectiveness of preliminary communication and collaboration between the customer and the developer

In a sequence diagram

classes are columns, messages are arrows, activations narrow rectangles, lifelines are dashed lines

Waterfall Model

classic/popular version of the systems development life cycle model. linear and sequential.

When to use agile (2)

clear commitment from customers and there are few constraints

Architectures may be documented from several different perspectives or views such as a _____________view, a logical view, a _____________view, and a development view.

conceptual process

State

condition of an object for a particular time

What does an architectural style contain?

contains a set of rules, constraints and patterns of how to structure a system into a set of elements and connectors

Elaboration

create an analysis model that identifies data, function and behavioral requirements

Sequence diagrams can be used to

create system test scenarios

IBM Rational Systems Developer Software

creating UML diagrams

control risk

deal with each risk by implementing its defined control plan and tracking the plan to completion

Examples of Architectural design ___________include the type of application, the distribution of the system, and the architectural styles to be used.

decisions

Analysis

decompose a large problem into smaller, understandable pieces

Architecture Style

defines a family of systems in terms of a pattern of structural organization. More specifically, an architectural style defines a vocabulary of components and connector types, and a set of constraints on how they can be combined

View Component

defines and manages how the data is presented to the user

What do constraints do?

defines how elements are integrated to form the system

Interaction models

helps to identify user requirements. Typically use case and sequence diagrams

accept

if the risk occurs it will be handled as an issue or problem, no proactive action will be taken and the risk is closed with a rationale.

transaction交易

input determined which function should be performed

Defensive programming

intends "to ensure the continuing function of a piece of software in spite of unforeseeable usage of said software".

Sequence diagrams are

interaction diagrams that emphasises the time ordering of messages

transaction processing system are ...

interactive systems that allow information in a databese to be remotely accessed and modified by a number of users.

Describe the Callable interface.

interface Callable<T> {} The same as "Runnable" except that "void run()" method is replaced with "T call()". That is, we can now return a value after the computation has completed.

Failure

is a departure from the system's required behavior

Process

is a series of steps involving activities, constraints and resources that produce an intended output of some kind.

Spiral Model

is a systems development lifecycle model. Combines prototyping model and the waterfall model. favored for large, expensive, and complicated projects.

What does an element do?

performs functions required by the system

Iterative development

starts with full system, then changes functionality of each subsystem with each new release

transfer

the risk is shifted to another party

Critical path

the slack at every node is zero - can be more than one in a project schedule

control approach

the strategy for addressing a risk, the risk method you use will specify which of these are applicable, should be shared with all relevant stakeholders as apporapriate

Class diagrams represent

the structure of the system

• The role of the Independent Test Group (ITG) is

to remove the conflict of interest inherent when the builder is testing his or her own product.

Information System Architecture

transaction-based systems as interaction with these systems generally involves database transactions.

assess risk

transform the concerns people have into distinct, tangible risks that are explicitly documented and analyzed

How is a data store represented in a work context diagram

two solid straight line ----------- -----------

What are characteristics of a good SRS

unambiguous Consistent Correct Complete Verifiable Testable Modifiable

Architectural Design

understanding how a software system should be organized and designing the overall structure of that system

Worksheet

updates can include new fields, additional names of participating groups and individuals, changes in criteria

Class diagrams

used when developing an object-oriented system model to show the classes in a system and the associations between these classes.

Static Process Model

useful to identify the elements of the process.

transformation

input was converted to output

What are the project management activities?

planning, organizing, staffing, tracking, leading

Definition Artefakt

primäres oder sekundäres Arbeitsergebnis, welches durch Projektaktivitäten erstellt wird. Beispiele: Pflichtenheft, Architekturentwurf, Testfallbeschreibung

avoid

program activities are restructured to eliminate the possibility of a risk occurring

risk statement

provides a unique, succinct, and meaningful descriptor of a risk

Communication

provides guidance for conveying risk information to collaborators, partners, subcontractors, suppliers, customers, and other stakeholders

Risk evaluation

provides measures for analyzing probability impact, and risk exposure

A use case

represents a class of functionality provided by the system as an event flow

Sequence diagrams represent

system behavior in terms of interactions between system entities

Extroverts外向

tell their thoughts

dynamic model

the organization of the system when it is executing

Actors triggers

use case

Benefits of Agile

1. Reduces Risk 2. Speeds up Delivery 3. Generates Values 4. Reduces cost of changes

Phases in the Waterfall life cycle of a software product

1. Requirement Engineering 2. System Design 3. Implementation 4. System testing 5. Maintenance

Classical Life-cycle aka Waterfall model

1. Requirements 2. Analysis 3. Design 4. Implementation 5. Post-delivery maintenance 6. Retirement

What are the steps for Prototyping Model

1. Requirements engineering (For entire product) 2. Design (Prototype) 3. Implementation (Prototype) 4. testing (prototype developed)

Code-and-fix model

Implement the idea without requirements, specification or design

Change management (4)

Implementation analysis, cost analysis, modify software and test software

Language processing systems

Applications where the users' intentions are specified in a formal language that is processed and interpreted by the system.

Product standards

Applies to all aspects of software, including documentation

Process standards

Applies to processes

Two steps of software engineering design

Architectural Design and Detailed Design

Design Phase

Architectural design Break down into components Detailed design

ADL's

Architecture description languages

Verification

Meeting requirements

UML Diagram Types

Behavioural. Functional. Structural.

What are the Bass's Architecture viewpoints

Model View Component and connector Allocation Views

Sequence Diagram

Model interactions between the actors and the objects within a system

Activity diagrams

Model the dynamic behavior of a system in particular the workflow, i.e. flowchart

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

Model-driven engineering

Interaction models

Modeling user interactions of a system

What is finite state machine

Models of a system in terms of a finite number of states and transitions between those states

Behavior Models

Models of the dynamic behavior of a system as it is executing.

Behavioral Diagrams

Models the dynamic behavior of a system. Shows what happens or what is supposed to happen when the system responds to a stimulus from the environment

Software maintenance

Modifying a program after it has been put into use

Bei der GUI-Programmierung kann das Design des Programms in drei Teilbereiche aufgeteilt werden.

Problem Domain Layout / Darstellung Interaktion

Configuration management (4)

Change management, version management, system building and release management

Waterfall model weaknesses

Client cant understand spec docs, so finished product might not meet needs

Factors of release planning (4)

Competition, marketing requirements, platform changes and technical quality of the system

Elaboration phase deliverables

Completed domain model Completed business model Completed requirements Competed analysis Updated architecture Updated risks SPMP Completed business case

System building

Completing an executable system

What bass view is concerned with runtime events, process, concurrency, shared data, and client server

Component and Connector

What type of association is symbolized by a straight line and a solid diamond

Composition

What is a type of association is a room to a building

Composition because you cannot have a room without a building

What are the four types of components

Computational Memory Manager Controller

What is software?

Computer Programs and Associated Documentation

What is a key component of the third software engineering principle

Configuration management because of changing requirements

Refactoring

Constant code improvement

Non-functional requirements

Constraints on a system being developed. Such as the system having a short response time

Domain requirements

Constraints on the system from the domain of operation

Post-Delivery Maintenance

Corrective maintenance Perfective maintenance Adaptive Maintenance

The Scope of Software Metrics

Cost and effort estimation Productivity measures and models Data collection Quality models and measures Reliability models Performance evaluation and models Structural and complexity metrics Capability maturity assessment Management by metrics Evaluation of methods and tools

Framework

Creating a template project that can be tailored later

Security engineering

Creating more secure systems

Defragmentation

Process of reducing disk fragmentation.

Product activation

Process of registering software online before it can be used, to reduce illegal copies.

Regression test

Provides evidence that we have not unintentionally changed something that we did not intend to change.

What are the 8 principles of the Software Engineering Code of Ethics?

Public, Client and Employer, Product, Judgment, Management, Profession, Colleagues and Self.

Stakeholder Theory

Purpose of business is to create value for stakeholders not just shareholders

Shareholder Theory

Purpose of business is to increase profits for shareholders

System

Purposeful collection of interrelated components working together to achieve a common goal.

What are the key aspects of Extreme Programming

Small phases Simplicity Pair Programming Onsite Customer involvement

What are the reasons we need software engineering?

Society relies on software that is produced reliably, trustworthy, economically and quickly. It is also cheaper in the long run.

What is the dominate approach for building web-based systems?

Software Reuse

Incremental development model

Specification, development and validation are interleaved. May be plan driven or agile.

Baseline

Specifies what components are in the version of a particular system

Automatic recalculation

Spreadsheet feature that updates results when cells are changed.

What is the Pre-Architectural life cycle

Stake Holders Quality and Requirements Agreement Development

How do you decide which viewpoint to use

Stakeholder voice their concerns Viewpoint address those concerns Identify, prioritize, and combine viewpoints to address concerns

Associations

Denote relationship between classes

In the four essential characteristics of professional software what is Dependability and Security?

Dependability is a range of characteristics: reliability, security and safety.

Use case

Identifies the actor in an interaction and the interaction itself

Risk Management Cycle

Identify, Assess, Decide Action, Plan/Implement, Monitor and Control

What are the phases of the Spiral Process Model?

They are defined by the software development team. Any framework activities can be accommodated

What is the main argument for proponents of MDE

They argue that this raises the level of abstraction in software engineering so that engineers no longer have to be concerned with programming language details or the specifics of execution platforms

State Diagrams

This is event-driven modeling that shows how a system responses to external and internal events

What is a use case?

a type of complete interaction between a product and its environment

Revision

A software object that was created by modifying an existing one.

What associations are shown in the following diagram

Aggregation Composition

What are the two types of associations

Aggregation and Composition

responsive

Agile project management methods are know for being ________ to changes in customer needs and the project environment.

What is meant by negotiation

Agreeing on the boundaries of the problem

What is meant by validation

Agreeing on the nature of the problem

Schätzungsansätze

Aktivitätsorientiert vs. Artefaktbasierte Schätzung

Business case

Analysis of whether the product will be cost-effective, on-time, and what risks might be involved . Can include cost-benefit analysis or revenue projections

Was macht der moc?

Der MOC Meta Object Compiler - durchsucht das File nach Q_OBJECT Makros -und generiert den meta object bezogenen Code - übersetzt die zusätzlichen Funktionalitäten von Qt wieder in C++

Sequence diagrams

Describe the dynamic behavior between actors and the system and between objects of the system

Statechart diagrams

Describe the dynamic behavior of an individual objet as a finite state machine

Use case diagram

Describe the functional behavior of the system as seen by the user

Class diagrams

Describe the static structure of the system: objects attributes and associations

Data Protection Act

Describes the rules governing the collection, processing and storage of personal data

What is meant by specification

Describing the problem

What is the process to performing domain analysis

Look at a number of systems in an applications entire domain, and identify reusable components, concepts, structures, and the like.

Configuration management (2)

Losing track of changes and losing track of versions

RUP benefits (2)

Lots of tools and focus on product quality

What are some examples of Architectural style

Main Program with subroutines Data Abstraction Implicit Invocation Pipes and Filters Repository Layers of abstraction

What architectural style uses shared data

Main with subroutines

List 4 attributes of good software

Maintainability, dependability/security, efficiency and acceptability

Refactoring

Making improvements to a program to slow down its degradation, preventative maintenance

Model-View-Controller: Advantages

- Allows the data to change independently of its representation and vice versa. - Supports presentation of the same data in different ways with changes made in one representation shown in all of them

Generalization

- An everyday technique that we use to manage complexity. - Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes.

What is system engineering concerned with?

- Hardware Development - Policy and Process Design - System Deployment - Software Engineering

Three general issues that may affect software

- Heterogeneity - Business and Social Change - Security and trust

What does an aggregation model show?

- How classes that are collections are composed of other classes. - Aggregation models are similar to the part-of relationship in semantic data models.

Layered Pattern: Disadvantages

- In practice, providing clean separation between layers in often difficult - Performance can be a concern because of the multiple levels of interpretation of a service request as it is processed in each layer.

What are the four phases of RUP?

- Inception - Elaboration - Construction - Transition

Most software failures are actually a consequence of these two factors:

- Increasing Demands - Low Expectations

What are some key differences with the Lightweight Software Model as compared to the Heavyweight Software Model

1. Customer Involved 2. Less Documentation 3. Faster product delivery 4. Changes accommodated 5. Flexible structure control

What are the steps in the software product design process?

1. analyze product design problem 2. elicit needs 3. analyze needs 4. generate/improve alternatives 5. evaluate alternatives 6. select alternatives 7. finalize design

Group organization affects:

1. decisions made by the group 2. way information is exchanged b/w the group 3. interaction b/w the dev group and external stakeholders

What is involved in product design finalization?

1. ensures that the SRS is of high quality 2. A designer review that ensures requirements are properly documented 3. a stakeholder review to ensure that requirements are valid

What the steps in product design resolution?

1. generation 2. evaluation 3. selection

Why is use case modeling used?

1. organizes operational level requirements 2. provides context for refinement 3. helps avoid inconsistencies, omissions, redundancies

Platform specific models (PSM)

These are transformations of the platform-independent model with a separate PSM for each application platform. In principle, there may be layers of PSM, with each layer adding some platform-specific detail.

Non-Functional Requirements

These define system properties and constraints. Properties: reliability, response time, storage requirements. Constraints: security, legal impacts, domain expert workflow. Process Requirements: (e.g.,) a particular programming language.

What is Incremental Development?

This approach interleaves the fundamental activities of specification, development, and validation. The system is developed as a series of versions (increments), adding functionality in each increment.

What are the four things that come to mind with Architectural Style

What problem are we trying to solve What components are utilized What connectors are utilized What is the context and what are the contraints

- developing stakeholder sponsorship - developing risk management plan - tailor methods and tools - train personnel

What steps are involved in preparing for risk management?

When choosing a language for a project you should use?

Whatever is best suited for the project.

Retirement

When a product is no longer used. (Usually replaced).

Modern maintenance

When software is modified, it is corrective maintenance (never mind deployment)

Scope creep

When the client requests additional changes, which slowly increase the size of the project without changing the spec.

When should MVC patterns be used?

When there are multiple ways to view and interact with data. Also when the future requirements for interaction and presentation of data are unknown.

What techniques can be used to improve the design of legacy systems?

When working with legacy systems, we want to improve their design while still maintaining correct behaviour. However, in the absence of unit tests for the system, it is difficult to discern what constitutes "correct behaviour". This is the worst-case scenario when working with legacy systems. In this case, we typically begin by using visualisation tools to create a visual representation of the system - such as a control flow graph or dependency structure matrix. The next step is to use seams. A seam is a place where you can alter the behaviour of the program without editing it in that place. Every seam has an enabling point: a point at which we can substitute one piece of code for another, in order to analyse the code up to the enabling point. This allows us to break dependencies in the code as well as introduce unit tests for code up to the enabling point. Adding seams incrementally therefore allows us to break dependencies in the legacy system and introduce more unit tests to specify the correct behaviour of the code.

What would you utilize MoSCow

When you can prioritizes user requirements

Software validation

Where software is checked and tested

Software development

Where software is designed and programmed

Software evolution

Where software is modified as needs/requirements change

Software development process

in order to understand, control and improve what happens as software products are built for customers.

UML is a general-purpose

modeling language with graphical notation used to create an abstract model of a system

Behavior models

models of the dynamic behavior of a system as it is executing. They show what happens or what is supposed to happen when a system responds to a stimulus from its environment.

Associations have

multiplicity

Each actor

must be linked to a use case, while some use cases may not be linked to actors

Mandatory information for a class

name

In a class diagram as class or a node contains what

name, attributes, and methods

Specification

o can be any one (or more) of the following: o A written document o A set of models o A formal mathematical o A collection of user scenarios (use-cases) o A prototype

OOA organizes requirements around

objects which integrate both behaviors (processes) and states (data)

What is done in tracking?

observing the progress of work and adjusting work and plans accordingly

Fault

occurs when a human makes a mistake, called an error, in performing some software activities

Activity diagram is a special case

of a state chart diagram in which states are activities (functions)

scrum master

one who leads the tam but rather than directing project team members, they act as a facilitator who ensures that obstacles are removed and the team has the resources needed to complete the iteration

The aggregate

parent class

The structure of transaction processing applications

ı/o processing <-> application logic <-> transaction manager <-> database

What is resolution?

solving a design problem

Safety-critical

something whose failure poses a threat to life or health

Aggregation (diamond parent)

special case of association denoting a consist of hierarchy

Modality

specifies the necessities of relationship to exist

Cardinality

specifies the number of occurrences of entities

UML is a

standardized specification language for object modeling.

Incremental development

starts with small functional subsystem and adds functionality with each new release

Dependency associations are signified by what

straight dotted line with an arrow

What is done in organizing?

structuring organizational entities involved in a project and assigning them authority and responsibilities

Risk

the probability of suffering harm or loss, a measure of the likelihood that an event will lead to a loss coupled with the magnitude fo the loss, requires the following conditions a potential loss, likelihood, choice

Change Graph

tracks all versions and variants in a software system.

Context models

used to illustrate the operational context of a system - they show what lies outside the system boundaries

Solid Arrow

used to show a form of inheritance

generic layered architecture

user interface user interface management core business logic system logic system support

Incremental problems (2)

Process is not visible and system degrades as software becomes more complex

Software testing

Process of exercising a program with the specific intent of finding errors prior to delivery to the end user. Testing shows: errors, requirement conformance, performance, quality.

Strip

Removes unnecessary information from executable binary programs and object fields thus potentially resulting in better performance and less disk space.

Corrective Maintenance

Removing residual faults. Does not change functionality or spec.

Project management activities (2)

Reporting and proposal writing

Use Case Diagram

Represents a collection of scenarios that could occur within the system

Use case modelling

Represents a task that involves an external interaction with a system, actors can be people or other systems

Architectural Design

Represents the link between specification and design process. It involves identifying major system components and their communication.

Baseline Control

Reproducibility Reproduce a software version or set of documentation when necessary Reproducibility is needed for both product development and maintenance Traceability Tracking the relationships among documents. Test cases can be tied to requirements, for example Reporting Determine all the elements of a baseline Contents of various baselines can be compared. Knowledge of change can help debug

What is meant by domain analysis

Requirements analysis who's goal generally is to identify reusable components, concepts, structures, and the like.

When would you use the Prototype model

Requirements are unstable or have to be clarified Develop user interfaces Short-lived demonstrations New, original development With the analysis and design portions of object-oriented development.

What is the difference between requirements and design phase

Requirements are what we want done, and design is how are we going to achieve it

What is risk? What is risk management?

Risk is the probability that some adverse circumstance will occur. Risk management is a set of activities to lower the risk

-continuously assessing what could go wrong - determining which risks to address -implementing actions to addressing high-priority risks and bing those risks within tolerance

Risk management provides a disciplined environment for what three things?

Quality attributes (5)

Safety, security, reliability, reusability and efficiency

Object Diagram Uses

Show the state of one or more objects at a moment during execution Dynamic models as opposed to class diagrams, which are static models

Architectural models

Show the system and its relationship with other systems

Class diagrams

Shows classes and their associations

Physical View

Shows the system hardware and how software components are distributed across the processors in the system

Data Flow Diagram

Similar to Context Diagram, but can show multiple inner processes and data storage

Product owner - (scrum roles)

Similar to the customer/sponsor who will receive the deliverable. 1. Provides the vision. 2. Responsible for product backlog & spring backlog content 3. Responsible for ROI

Open-source model

Single individual creates product, others join, it gets bigger

SOLID

Single responsibility principle[4] a class should have only a single responsibility (i.e. changes to only one part of the software's specification should be able to affect the specification of the class). Open/closed principle[5] "software entities ... should be open for extension, but closed for modification." Liskov substitution principle[6] "objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program." See also design by contract. Interface segregation principle[7] "many client-specific interfaces are better than one general-purpose interface."[8] Dependency inversion principle[9] one should "depend upon abstractions, [not] concretions.

Creational patterns

Singleton Abstract Factory

Weaknesses of iteration & incrementation

Slow Costly High likelihood of regression faults

Am Ende der Analysephase ist klar wie das System gebaut werden soll.

Stimmt nicht. Am Ende der Analysephase ist die Anforderungsdefinition erfolgt. Das heisst jedoch nicht, dass man genau weiss wie das System gebaut werden soll.

Die Eingabeüberdeckung gehört zum White-Box-Testen.

Stimmt nicht. Beim Black Box-Testing, bei dem man das System selbst nicht kennt - (System = Black Box) muss man die Reaktion des Systems auf bestimmte Inputs prüfen. Damit kann die Eingabeüberdeckung bestimmt werden.

Egal in welcher Funktion/Methode ein signal mit einem slot verbunden wird, es kann QObject::connect oder aber auch nur connect verwendet werden.

Stimmt nicht. Der Befehl muss immer mit QObject::connect() beginnen.

Bei einem Laufversuch werden vordefinierte SOLL-Resultate mit den IST-Resultaten verglichen.

Stimmt nicht. Ein solcher SOLL-IST-Vergleich geschieht bei einem Systematischen Test. Laufversuche beschreiben das kontinuierliche Testen des Programmierers während der Entwicklung.

Bei einem Code-Review wird der Code automatisiert getestet.

Stimmt nicht. Es handelt sich um eine Analyse und Besprechung des Codes durch Experten.

Iteratives Vorgehen erfordert zwingend auch inkrementelles Vorgehen.

Stimmt nicht. Iteratives Vorgehen heisst, dass verschiedene Prozesse mehrmals nacheinander durchlaufen werden. Inkrementelles Vorgehen beschreibt die "kontinuiertliche, sanfte" Verbesserung von Etwas. Natürlich kann es zeitgleich auftreten, doch es bedingt sich nicht.

Nach einem git commit kann problemlos ein git push folgen.

Stimmt nicht. Jemand anderes könnte das Repo bereits geändert haben und diese Änderungen könnten mit den vom User getätigten Änderungen ggf. sogar konfligieren. Dann muss zuerst ein git pull (ggf. ein git merge (bei Konflikten), und dann ein git push gemacht werden.

Alle Dateien während der Programmentwicklung müssen der Versionskontrolle hinzugefügt werden. Mit Git kann also immer mit dem Befehl git add . gearbeitet werden.

Stimmt nicht. Nicht alle Dateien in einem von Git verwalteten Ordner müssen zwingend der Versionskontrolle hinzugefügt werden. Sie können im .gitignore File notiert werden und somit von der Versionskontrolle ausgeschlossen werden.

Wird eine Klasse umstrukturiert ohne das die Funktionalität verändert wurde, nennt man das Code Refactoring.

Stimmt.

Doxygen ist ein Code-Dokumentations-Werkzeug, mit welchem die API von C++ Klassen beschrieben werden können.

Stimmt. Das ist eine Einsatzmöglichkeit

Automatisierte Code Dokumentation mit Tools wie Doxygen ermöglichen es, dass diese Tools auf fehlende Dokumentation hinweisen. Z.B. fehlende Parameter.

Stimmt. Ein Vorteil von Code-Dokumentations-Werkzeugen

Das Pflichtenheft ist Teil der Analysephase.

Stimmt. Teil der Analysephase ist das Pflichtenheft. Es beschreibt aus Sicht der "erstellenden" Partei, wie es die Anforderungen aus dem Lastenheft (von der beauftragenden Partei) gedenkt zu erfüllen.

Risk Planning

Strategies to manage risk. ARM 1. Avoidance 2. Reduction - minimization plans 3. Mitigation - contigency plans

What design patterns are most useful for dealing with long conditional statements?

Strategy pattern and Template Method pattern.

Scrum: Strengths & Weaknesses

Strengths: Adaptable, Self organizing teams Weaknesses: Don't always have extensive customer interaction, lack comprehensive testing, don't have formal code reviews, testing is not automated

XP: Strengths and Weaknesses

Strengths: Good testing methodology, adaptable framework, Weaknesses: Doesn't use formal code reviews, little support for virtual teams

Agile processes

Stresses communication, quickly satisfying client's needs.

Proxy Pattern

Structural A class functioning as an interface to something else.

Facade Pattern正面

Structural A unified interface to a set of interfaces in a subsystem. A simple interface to a complex system.

_____________ models show the organization and architecture of a system. ___________are used to define the static structure of classes in a system and their associations.

Structural Class diagrams

Adapter Pattern

Structural Lets classes work together that could not otherwise due to incompatible interfaces. Allows interface of another class to be used by an existing one.

Things in UML

Structural, behavioral, grouping and commenting things

Class Diagrams

Structural. Collection of objects with common structure, common behaviour, common relationships, and common semantics.

System requirements

Structured document outlining the system

Program / system

Suite of software functionality / components that work together to fulfill one or more needs.

What are Ca and Ce for the classes in the Template Method pattern?

Superclass depends on subclasses at compile time (for the implementation of hook methods). Subclasses depend on superclass by definition. By contrast, for Strategy pattern, the interface does not depend on its implementations at compile time.

Use Case Diagram

Support requirements elicitation

Development testing

Testing during development, primarily defect testing. Involves unit testing, system testing and component testing

User testing

Testing in the user's environment

Adapter.

The Adapter pattern converts an interface from one form to another. It is used when we need to present a particular interface to the clients in our system, but would like to use a third-party interface that is not compatible with the client(s) in our system. Example: - Present an interface to clients for logging errors, but use a remote third party logging service.

Computation independent model (CIM)

These model the important domain abstractions used in a system. CIMs are sometimes called domain models.

Platform independent model (PIM)

These model the operation of the system without reference to its implementation. The PIM is usually described using UML models that show the static system structure and how it responds to external and internal events.

What is meant when saying that defining a system boundary is a political judgment?

There may be pressures to develop system boundaries that increase / decrease the influence or workload of different parts of an organization.

Event-Driven Models

Shows how a system responds to external and internal events

Development View

Shows how the software is decomposed for development

Process View

Shows how, at run-time, the system is composed of interacting processes.

Logical View

Shows the key abstractions in the system as objects or object classes.

Sequence diagrams

Shows the sequence of interactions that take place

State model

Shows the system as nodes and events are arcs between nodes. As events occur, the system moves from one state to another.

Context Diagram

Shows the system boundaries

Paradigm范例

philosophy or approach for building a product

Safety

Localize safety-critical features in a small number of sub-systems

Intellectual Property

Patents, copyrights, Trademarks

Code-and-fix weaknesses

Slow Costly Likely to include regression faults

RUP weaknesses (2)

Slow and difficult to implement

Implementation workflow

Write the code to fulfill design workflow plans

Is testing expensive?

Yes, testing can make up to 40% of total costs

Examples of Functional Requirements

"A library system that provides a single interface to a number of databases of articles in different libraries". "Users can search for and download this articles for personal study". "Users shall be able to search either all of the initial set of databases or select a subset from it". "The system shall provide appropriate viewers for the users to read documents in the document store".

Method Invariant

"Design by contract" Methods are contracts with the user. Users must meet method's pre- conditions: • "s is a string with length between 0 and SMAX-1" • "n is an integer between 0 and NMAX"

What is an ExecutorService?

"ExecutorService" is a subinterface of "Executor" - that is, it extends "Executor". ExecutorService allows us to submit tasks for execution, but without executing them immediately. For example, Callable<Double> task = new MyCallable<Double>(); ExecutorService executor = Executors.newFixedThreadPool(2); Future<Double> future = executor.submit(task); doSomeElseWhileCalculating(); Double result = future.get();

Version selection

"Has everything been compiled?" "Exactly which fixes went into this configuration?"

Identification and tracking

"This program worked yesterday. What happened?" "I fixed this error last week. Why is it back?"

Tom DeMarco (1982)

"You cannot control what you cannot measure"

Use case components

Actors and use cases

Full backup

Backup that copies all data from a system.

Centralized Version Control

CVS, Subversion, Perforce

Git Origin

Default remote (GitHub in our case)

How is the end point represented in state transition diagram

Double circles

Corrective maintenance

Fix faults

Key determinant of group performance?

Group interaction

Largest Cost in IT

Maintenance costs

Centralized VM

One master repository

Git Branch

Split in commit history, lets you work in parallel

Version control

Store and control different versions

Number of diagrams in UML 2.0

Thirteen

Maintainability

Use fine-grain, replaceable components

Classical paradigm

Waterfall method

What are four essential attributes of good software?

- Acceptability - Maintainability - Dependability and Security - Efficiency

Types of diagrams used for behavioral models

- Activity Diagrams - Sequence Diagrams

Repository Architectural Pattern

- All data in a system is managed in a central repository that is accessible to all system components - Components do not interact directly, only through the repository

Layered Pattern: Advantages

- Allows for replacement of entire layers so long as the interface is maintained. - Redundant facilities can be provided in each layer to increase the dependability of the system.

Miller's law

A human can only concentrate on seven chunks of information at once.

Client-Server Pattern: Disadvantages

- Each service is a single point of failure, susceptible to denial of service attacks or server failure. - Performance can be unpredictable because it depends on both the network and they system.

What are the two types/kinds of software?

- Generic Products - Customized (Bespoken) Products

What are the four fundamental activities that are common to all software practices in order?

- Specification - Development / Design & Implementation - Validation - Evolution

Difference between static and dynamic structural models

- Static: Show the structure of the system design. - Dynamic: Show the organization of the system when it is executing.

Was ist das Meta Object System by Qt?

- bietet zusätzliche Funktionaitäten zu C++ - unterstützt das Hollywood Prinizip - beruht auf: 1) QObject Klassen 2) QBJECT Makro 3) moc: Meta-Object Compiler

How is generalization implemented in OO langauges?

- class inheritance mechanisms - the attributes and operations associated with higher-level classes are also associated with the lower-level classes. - The lower-level classes are subclasses inherit the attributes and operations from their superclasses. These lower-level classes then add more specific attributes and operations.

Prototyping

- frühe Realisierung von kritischen Funktionalitäten unter realitätsnahen Bedingungen - auch Machbarkeitsprüfung bei fehlender Erfahrungen oder unklaren Anforderungen - vertikal: spezifische Funktionalität über mehrere verschiedene "Layers" hinweg - horizontal: Alle Funktionalitäten von einem spezifischen Layer (z.B. Benutzerschnittstelle)

Definition Projekt

- komplex - neuartig - zeitliche befristet - begrenzte Ressourcen / Budget - Teamarbeit - Messbare Ziele / Ergebnisse Nicht: Routinearbeiten, "Daily Business"

Model Driven Architecture

- precursor of more general model-driven engineering -model-focused approach to software design and implementation that uses a subset of UML models to describe a system.

why is code review needed?

- prevents releasing bugs - ensures architecture / code quality - leads to personal development

Definition Reaktive Systeme

- reagieren auf (oft externe), asynchrone (=zu beliebigem Zeitpunkt auftretende) Ereignisse - oft Echtzeitanforderung an das System - Nicht wie ein normales Programm, bei dem alles Schritt für Schritt also Synchron abläuft

Was geschieht beim Pooling

- verwendet bei synchronen Programmen - Programm fragt periodisch (oder dauernd) ab, ob ein Ereignis eingetreten ist (-) viele Leeranfragen -> unnötige Prozessorbelastung

Was kann die QObject Klasse?

-"Mutterklasse" für andere Klassen wie QPushButton, QLabel ... -Verknüpfung mittel Parent-Child-Beziehung möglich -> QObject Tree -> Objects können auf einen Schlag zusammen gelöscht werden

UML Names Definition Simple Name Definition Composite Name Definition

-A name in UML is character string that identifies a model element -Simple name: sequence of letters, digits, or punctuation characters -Composite name: sequence of simple names separated by the double colon (::)

Planning vs. Speculating

-A rough plan is made instead of every aspect of the project being outlined

Baselines

-Agile does not focus on baselines -Focuses on adjusting plans

Types of Class Models

-Analysis or conceptual models—Important entities or concepts in the problem, their attributes, important relationships -Design class models—Classes in a software system, attributes, operations, associations, but no implementation details -Implementation class models—Classes in a software system with implementation details -Analysis models represent the problem -Design and implementation models represent the solution

Class Diagram Uses

-Central static modeling tool in object-oriented design --Conceptual models --Design class diagrams --Implementation class diagrams -Can be used throughout both the product and engineering design processes

Writing the Basic Flow

-Choose a common, simple activity flow. -Trace it from the trigger through use case completion. -Scenarios are often good resources. -Steps may assume the preconditions and should achieve the postconditions -Each step should state an action of a single agent (the product or an actor). -Supplemental directions about conditions, iteration, or currency are allowed.

Class Diagram Rules

-Class symbols must have a name compartment. -Compartments must be in order. -Attributes and operations must be listed one per line. -Attribute and operation specifications must be syntactically correct.

Risk Reduction: Building poor quality

-Critical errors are found sooner -More time available to fix errors -Fixes tested earlier, and more often

Adding Associations—Rationalizing

-Limit the number of associations to at most one between any pair of classes. -Combine different names for the same association. -Break associations among three or more classes into binary associations. -Make association names descriptive and precise. -Add rolenames where they are needed.

Brainstorming Branch Points

-Look at scenarios for failed or alternative interactions. -Consider errors, faults, and alternatives at every step. -Don't forget an actor's failure to act.

Adapting vs. Monitoring and Controlling

-M&C the focus is on comparing actual to plan results and taking steps to bringing these in line -Incorporating change to bring most value to the customer

Inspection: Agile

-Project broken into "features" -Customer inspects after each feature is completed

Adding Multiplicities

-Take pairs of associated entities in turn. --Make one class the target, the other the source. --Determine how many instances of the target class can be related to a single instance of the source class. --Reverse the target and source and determine the other multiplicity. -Add only multiplicities important in the problem.

Inspection: Waterfall

-Takes place after the project is complete -Changes may occur too late

Reduces Cost of Changes

-The later a change is made the more expensive it is

Writing Extensions

-Treat an extension as if it were a separate use case: --The condition is the trigger; --Extension steps are the basic flow; --Completing the use case or returning to the branch point are the goals. -Scenarios are a good resource. -Repeat the extension writing process for the extension (extensions may have extensions).

Use Case Description Formats

-Underlined text refers to another use case. -Extensions use a special numbering scheme: --Numbers are for action step sequencing; --Letters are for extension triggers; --Extension identifiers have interleaved numbers and letters; --An asterisk refers to all action steps; --A dash is used for ranges of action steps; --A comma separates action steps in a list.

Designing with Use Case Descriptions

-Use case descriptions refine the user-level specification in a use case diagram into operational-level specifications. -Design alternatives are specified in different descriptions. -Alternatives can be evaluated as already described.

Difference b/w Requirements and Use Case Models

-Use case models do not provide atomized requirements statements --They are not traceable --Some product functions may not appear --Data and non-functional requirements are not explicit. -Use case models sometimes serve as surrogates for requirements.

TDD (Test Driven Development)

-When a team is already aware of the kind of code is written -Testing is an integral part of development -Code is checked with an associated unit test

Two parts of engineering design analysis

-class and object modeling -conceptual modeling

Use Case Models

-use case diagram together with use case descriptions -The diagram is a static model cataloging product interactions -The descriptions are dynamic models detailing the interactions.

Was sollte man sich zu Signals merken?

-werden nur deklariert und nicht implementiert. - Keine Zugriffsrechte: wie private public oder protect - Rückgabetyp: void - Signalaufruf: emit method(value). - Ein Signal kann mit mehreren Slots oder anderen Signalen verbunden werden. - Mehrere Signal können mit demselben Slot verbunden werden. - Es kann einen Übergabeparameter haben.

Draw the UML diagram for the external iterator pattern.

...

Waterfall Model Phases

1. Requirements: Documented carefully to avoid the need for changes 2. Design: Translate fixed requirements into an actual product 3. Development: Tasks assigned 4. Testing: Test fully developed product 5. Deployment: After testing product is handed over to customer

Define Agile Project Management

1. Respond to change 2. Use resources Effectively 3. Foster strong ties with customers 4. Create customers solutions 5. Increase Capacity to create business value

4 Activities of risk management process

1. Risk identification 2. Risk analysis 3. Risk planning 4. Risk monitoring

What are the three critical software systems

1. Safety 2. Mission 3. Business

Agile Principles

1. Satisfy Customer 2. Welcome Change 3. Deliver software frequently 4. Work together 5. Motivate individuals 6. Use face to face communication 7. Working software = progress 8. Constant pace 9. Technical excellence 10. Simplicity 11. Self organizing teams 12. Reflection

Traditional Constraints

1. Scope 2. Cost 3. Schedule *All have an effect on quality

3 Methodologies

1. Scrum 2. Extreme Programming (XP) 3. Lean Development

Requirements

1. User Requirement: Client managers System end-users Client engineers Contractor managers System architects System Requirements: System end-users Client engineers System architects Software developers

Agile Triangle

1. Value 2. Quality: Continuously deliver value 3. Constraints: Scope, Cost, Schedule

What are three generic software process models

1. Waterfall 2. Iterative development 3. Component-based software engineering

What is a Future?

A "Future" is an object which wraps up the result of an asynchronous computation. After a task of type "Callable<T>" is submitted to an "ExecutorService" for execution. It's pending results are returned as a type "Future<T>".

Activity model

A behavioral model to show what happens to the system as a response to stimulus

A component is defined as what

A box that represents functional aspects

Use Case cases represent what?

A discrete task that involves external interaction with a system

What is a legacy system?

A legacy system is a piece of software that you have inherited and that is of value to you.

A connector is defined as what

A line that connects components

Ein Kollege möchte für ein Softwareprojekt ein Test-Framework verwenden, mit dem Sie schon schlechte Erfahrungen gemacht haben. Sie raten Ihrem Kollegen ein anderes Test-Framework zu verwenden. Er könnte sonst in Schwierigkeiten geraten. Was für Schwierigkeiten sind das? Geben Sie den Begriff an. Nennen Sie zwei weitere Beispiele mit jeweils einem Wort.

Accidental Difficulties 1.) Time Sharing 2.) Abstraction

What are the key aspects of Dynamic Systems Development Method. (DSDM)

Active user involvement Teams must be empowered to make decisions Focus on frequent delivery of products Iterative and incremental development Changes must be reversible Testing is integrated throughout the lifecycle

What are Software Processes?

Activities involved in producing a software system.

___________ diagrams may be used to model the processing of data, where each activity represents one process step.

Activity

Behavioural Diagrams

Activity Diagram. State Diagram. Sequence Diagram.

Types of diagrams used for context models

Activity diagrams

Types of UML Diagrams

Activity, use Case, sequence, class, and State diagrams

Use Case Diagram

Actors in this can be people or other systems

Three main purposed of Software Architecture

Acts as a communication tool Acts as earliest set of design decisions Acts as a transferable abstraction of system

Initial maturity

Ad hoc, responsive to crisis

Brook'sche Regel

Adding manpower to a late project makes it later Problem: Kommunikations- und Organisationsaufwand wird massiv erhöht.

What type of association is symbolized by a straight line and a diamond

Aggregation

Erklären Sie den Begriff "Big-Bang" in Zusammenhang mit Software-Engineering.

Als "Big Bang" ("Paukenschlag") bei Software-Projekten bezeichnet man das Phänomen, dass dem Kunden ein umfangreiches Programm, den er noch nie gesehen hat, aufs Mal präsentiert wird. Bei diesem "Paukenschlag" ist das Risiko gross, dass der Kunde enttäuscht wird, da er etwas anderes erwartet hat.

Inheritance

Also known as subclassing or subtyping. Classes can inherit fields and methods from other classes with the extends keyword. We want to model a Sedan, that has all the fields and methods of a person. Defines a "is-a" relationship between classes. Example: Sedan now inherits Car's attributes and method Sedan s = new Sedan("Ford");

When is risk considered during the Spiral Process Model?

As each revolution is made

What is technical debt and why should it be avoided?

As more features need to be introduced into a software product, there is a temptation to use quick fixes - code that allows you to quickly implement the feature, but leads to poorer overall design quality. The result is that further down the line, this poorer design quality will increase the rigidity of the code - making it much harder to implement new features. In this way, if technical debt is not repaid, it makes the code much harder to work with.

Why is it important to maintain product control

As these changes impact the system development, it is very easy for different versions of the documentation and the code to proliferate.

Repeatable maturity

Basic management, measurements are taken, problems addressed as they arise

What is a Batch Processing System?

Business systems that are designed to process data in large batches.

When should DSDM be used

DSDM should be used when subject matter experts can be used in all phases of development, and on the job training is not an option.

Früher wurde der Code häufig in einem separaten Dokument dokumentiert. Häufig verlor die Dokumentation dadurch an Wert.

Das ist einer der Vorteile von Code-Dokumentations-Werkzeugen wie Doxgen - Sie sind direkt mit dem Code verknüpft.

Data processing applications

Data driven applications that process data in batches without explicit user intervention during the processing

Application Types

Data processing applications, Transaction processing applications, Event processing systems, and Language processing systems

Transaction processing applications

Data-centred applications that process user requests and update information in a system database.

Basses model view is comprised of what

Decomposition Uses layered Class

Business model

Description of how the client does business

Requirements

Descriptions of the system services and constraints that are generated during the requirement engineering process.

Inception design

Design the architecture

Application Architectures

Designed to meet an organisational need.

Object-orientated design

Designing software with an object-orientated framework

What is Database Design?

Designing the system data structures and how these are to be represented in a database.

Quality planning

Desired product qualities and how they may be assessed

Direct and Indirect Measures

Direct Measures - direct quantification as in measuring the height of a person. Indirect Measure - calculations involving multiple measures as in a grade point average.

Dynamic Polymorphism

Does not have method overloading. Write a method that works for any kind of "vehicle" or whatever the parent class is.

What is the difference between encapsulation and information hiding?

Encapsulation ensures that the behaviour of an object can only be affected through its API. Encapsulation helps battle fragility in the codebase by ensuring that clients are not coupled to the implementations of the classes they depend on - clients simply require that they are presented a compatible interface. Information Hiding conceals how an object implements its functionality behind the abstraction of its API. Information Hiding is to do with abstraction. It allows the programmer to temporarily ignore the details of how a class is implemented.

EULA

End User License Agreement

Software engineering is a(n) _______ that is concerned with all aspects of software production

Engineering Discipline

Test workflow

Ensure correctness of all artifacts

Transition phase

Ensure needs are met

T or F: A model is meant to be a complete representation of a system.

False, it purposely leaves out detail to make it easier to understand.

True or False, the Unified Process phases occur in sequence?

False, they are staggered or concurrent

Functional and nonfunctional requirements

Functional requirements o Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. o May state what the system should not do. Non-functional requirements o Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. o Often apply to the system as a whole rather than individual features or services. Domain requirements o Constraints on the system from the domain of operation

Use Case Diagram

Functional. Visualise relationships between actors (interacting with the system) and use cases (functionality).

Generalization

Generalized view of class system and displaying the inheritance hierarchy

C++ Compiler

Generate (relocatable) machine (object) code from source code.

Acceptance testing

Get approval from customers.

Git Clone

Get local copy of repo

Focus groups

Getting people to think about and discuss an issue

What are some difficult questions in measurement?

In a room with blue walls, is "blue" a measure of the color of the room? Can intelligence be measured? Is IQ an adequate measure? Should we reject measures because they cannot be accurately measured or because they depend on the judgment of the person doing the measuring How do we decide which error margins are acceptable in measurement and which are not? How do we determine the correct scale for a given measurement? What kinds of manipulation are we able to do to our measurements and still have meaningful results

user stories

In agile project management terminology, the backlog is updated with ________.

is

In an agile project management environment, the customer _________ expected to provide ongoing input

Which Unified Process phase are Use Cases created in?

Inception

Which Unified Process phase encompasses both customer communication and planning activities of the generic process model?

Inception

What are the phases of the Unified Process?

Inception Elaboration Construction Transition Production

Guidelines for writing requirements

Invent a standard format and use it for all requirements. Assign a unique number and source (mostly people) for each requirement. Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements. Use text highlighting to identify key parts of the requirement. Avoid the use of computer jargon. Include an explanation (rationale) of why a requirement is necessary.

Standards development (2)

Involve practitioners and review regularly

Change Control

Involves activities to request, evaluate, approve/disapprove, and implement changes to baselined Configuration Items. Change Request Explains who is requesting the change, a description of the change, the reason for the change, the urgency of the change, time required to complete the change, impact on other Configuration Items or on the system Analysis and Evaluation Proposed changes are analyzed and evaluated for correctness Determines the impact on the schedule and budget, and the technical impact on other Configuration Items. At later stage, evaluation is done by Change Control Board (CCB) Approval or Disapproval Verification, Implementation, Release

Static Polymorphism

Involves method overloading.

Agile

Iterations of this cycle for certain stretches of time: 1. Planning 2. Requirement Analysis 3. Designing 4. Building 5. Testing Pros: Manage changing requirements. Minimal planning or documentation. Promotes team work & collaboration. Quickly change directions Cons: Overall plan/ agile manager. Cant handle complex dependencies. Iterations determine scope of project. Heavy reliance on personnel (minimal documentation, newcomer onboarding, customer interaction)

Scrum

Iterative framework for development

Backup programmer

Just as good as chief, plans tests and other things independent of design

V-Model

Just like the waterfall model it is a sequential path of execution of processes. Each phase must be completed before the next phase begins. Testing of the product is planned in parallel with a corresponding phase of development.

Version management

Keeping track of different versions of software components, also ensuring non-conflicting modifications

______________processing systems are used to translate texts from one language into another and to carry out the instructions specified in the input language. They include a translator and an abstract machine that executes the generated language.

Language

Epic

Large feature/user story

What are the differences between the conceptual, logical and Implementation view points

Logical shows key interactions withing th systems Conceptual shows the high level map of the system Implementation shows the organization of the submodels in the system

Class Diagram Heuristics

Name classes, attributes, and roles with noun phrases. Name operations and associations with verb phrases. Capitalize class names only. Center class and compartment names but left-justify other compartment contents. Stick to binary associations. Prefer association names to rolenames. Place association names, rolenames and multiplicities on opposite sides of the line.

CM planning (4)

Naming scheme, responsibilities, policies and tools

Secondary Actors

Need assistance from to achieve the use case's goal. Do not trigger the use case.

Why do we need requirements?

Need to know what features to focus on, what we don't need to worry about

Ist das klassische Wasserfallmodell nach Royce in der Realität durchführbar? Begründen Sie Ihre Antwort.

Nein. Denn das klassische Wasserfallmodell beinhaltet keine Rückkoppelung, d.h. es ist nicht möglich zu einem vorherigen Prozessschritt zurück zugegehen und etwas zu ändern. Es setzte voraus, dass man beim ersten Mal alles richtig macht (was nicht realistisch ist.)

Architecture and system characteristics

Performance localise critical operations and minimise communications Security Safety Availability Maintainability

Entertainment systems are primarily for?

Personal Use

Design by Contract: Sicht des Lieferanten

Pflicht: Anweisungen ausführen, die die Nachbedingungen herstellen und die Invarianten enthalten. Nutzen: Die Vorbedingungen nicht überprüfen.

Design by Contract: Sicht des Kunden

Pflicht: Die Vorbedingung einhalten Nutzen: Ergebnisse und Wirkung NICHT prüfen, da sie durch die Nachbedingungen garantiert sind.

V-Modell: Philosophie, Vorteile, Nachteile

Philosophie: - Erweiterung des Wasserfallmodells -> Korrespondierende Tests zu jeder Phase Vorteile: - Starke Einbindung der Test zu jeder Phase - Klare, einfache Struktur - Enorme Erfahrung aufgrund vorhandener Rückkopplung Nachteile: - kann zu inhaltlichen Problemen führen

What architectural style uses a series of incremental transformations and is largely used by Unix and compilers

Pipes and filters

Waterfall

Requirement Analysis System Design Implementation Testing Deployment Maintenance Pros: Well documented requirements & documentation. Easy to manage phases across teams. Cons: Rigid phases. No working s/w until late stage. Not much reflection or revision. Big Bang Integration at the end

Some risks (4)

Requirement change, people leaving, time underestimations and budget underestimations

Workflows of the unified process

Requirements Analysis Design Implementation Testing

What are the four phases of the RAD model

Requirements Planning; User Design; Rapid Construction; Cutover

Functional Requirement

Requirements about the functionality of the product

Phases in waterfall (5)

Requirements analysis and definition, system design, implementation and unit testing, integration and system testing and operation and maintenance

Requirements validation (2)

Requirements reviews and prototyping

What do System Prototypes allow users to do?

See how well a system supports their work.

Selbcodiertes GUI vs. GUI Designer (e.g. Qt Creator)

Selbst codiertes GUI GUI-Designer (Qt Creator) - C++ Code für GUI - kann sich zur Laufzeit ändern - aufwändig; Code muss selber geschrieben werden GUI Designer - interaktives Tool (Anordnung innerhalb eines Formulars) - schnell zusammen "geklickt - nur statische Designs sind möglich Automatische Umwandlung der Formulardaten (*.ui) in Programmcode mittels uic

Model View Controller (MVC)

Separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other. The Model component, The View component, and the Controller Component

Code Guides

Set of rules to which programmers should adhere.

Agile

Set of values and principles to follow when developing software, heavily focused on client involvement and evolving requirements

Timeboxing

Setting a fixed amount of time to work on a task; do as much as possible in that window.

Stand-up meeting

Short, daily meeting where you discuss: 1. What have I done since yesterday 2. What am I doing today 3. What problems are in my way 4. What have we forgotten 5. What did I learn that I should share

Functional Requirements

Statements of services the system should provide. How the system should react to particular inputs. How the system should behave in particular situation.

Composite

Structural design pattern Intent: compose objects into tree structures to represent part-whole hierarchies. Clients can treat individual objects and compositions uniformly. Pros: It's easy to add new types of components Clients can manipulate both types homogeneously. Cons: It's hard to restrict the types of a component (design is too general)

Facade

Structural design pattern Intent: provide a unified interface to a set of interfaces in a subsystem. It defines a higher-level interface that makes the subsystem easier to sue Pros: Isolates clients from subsystem components Minimizes the dependency of the client code on the subsystems Cons: The Facade class risks accumulating a lot of responsibility because it is linked to all the classes in the application

What is a structural pattern? Give the four structural patterns studied.

Structural patterns are design patterns that simplify the design by identifying simple ways to realise structural relationships between entities. Proxy, Facade, Adapter, Decorator.

Which process model most emphasizes software reuse?

The Component Based Development Model

Which Process Model has Anchor Point Milestones?

The Spiral Model

Responsibility Driven Design

The central idea is that in a "good" object-oriented design, every object has clear and well-defined responsibilities. Responsibilities are not concentrated centrally, but are well-distributed amongst the objects.

Generalization (hollow arrow)

The children classes inherit the attributes and operations of parent class

Waterfall model

The classical model, but with added feedback during and after the project.

How does the Template Method pattern relate to the open/closed principle?

The core of the algorithm is in the superclass and does not change. The hook methods allow us to alter the behaviour of the algorithm (template method) in the superclass without having to recompile the superclass.

Software Configuration Manaement

The discipline of controlling the evolution of software systems

Information hiding

The implementation of attributes is not known from outside

Scrum Master

The leader of the scrum team. Responsible for empowering the team with control over how they will perform their work. Resolves issues Educates/leads the scrum & holds meetings.

Value

The measure by which a project meets a customer's business need, which validates the expense of the project

What do software specification communicate?

The needs of the clients to the developers.

Requirement Engineering

The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed. The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process.

What is Software Specification?

The process of understanding and defining what services are required for a system and identifying the constraints on the system's operation and development.

Requirement Specification

The process of writing down the user and system requirements in a requirements document. User requirements have to be understandable by end-users and customers who do not have a technical background. System requirements are more detailed requirements and may include more technical information. The requirements may be part of a contract for the system developmentoIt is therefore important that these are as complete as possible.

Pipe and filter architecture

The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation.

Pipe and Filter Pattern

The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flows (as in a pipe) from one component to another for processing

In the four essential characteristics of professional software what is Efficiency?

The programs should make efficient use of system resources.

Process and product quality

The quality of products is influence by the processes taken place

When would you use the incremental model

This model can be used when the requirements of the complete system are clearly defined and understood. When some some details can evolve with time. There is a need to get a product to the market early. A new technology is being used. Resources with needed skill set are not available.

Primary Actor

Those initiating the use case and triggering its invocation

Why do we Measure?

To characterize To evaluate To predict To improve

Why test

To ensure software meets its requirements and to discover faults or defects in the software

Why is it important to perform continuous validation

To prevent detecting and correcting software problems until late in the project

Role of a project manager

To steer the project to a successful conclusion by motivating and managing the team as well as managing risk

Top down integration

Top module is tested with stubs. Stubs are replaced one at a time. "Depth first"

Sandwich testing

Top modules are tested with stubs. Worker modules are grouped into builds and integrated.

Be able to read, interpret, modify and create UML use-case diagrams

Use case diagrams are a representation of a user's interaction with the system. Similar to user stories but more formal and complex. Includes a summary of usage requirements, from the users point of view, includes the basic course of events as well as alternative paths and preconditions and post conditions.

Use Cases

Use case diagrams are used to visualize, specify, construct, and document the (intended) behavior of the system, during requirements capture and analysis. Provide a way for developers, domain experts and end-users to Communicate. Serve as basis for testing. Main authors: Booch, Rumbaugh, and Jacobson The Object Management Group (OMG) isresponsible for standardization.(www.omg.org) Current version is UML 2.0

Context Models

Used to illustrate the operational context of a system - they show what lies outside the system boundaries.

Be able to read, interpret, modify and create UML activity diagrams

Used to model business process, or a single usage scenario or a business rule. Graphical representation of activities or workflow, where the different shapes have different meanings. Black circle represents the start. Rounded rectangles represents actions. Diamonds represent decisions. Black bars represent concurrent activities.

Context Diagram

Used to show data flow from various external entities

Class Diagram

Used when developing an object-oriented system model to show the classes in a system

Sequence Diagram

Useful for explaining the interface calls and responses necessary for an action to occur

Security management (3)

User permissions, software deployment and attack monitoring/recovery

Types of Requirement

User requirements oStatements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers. System requirementsoA structured document setting out detailed descriptions of the system's functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor

When to use plan-driven (4)

User requirements are clear, the system is critical, stakeholders are not actively engaging and/or teams are globally distributed

Domain

Where the product will be used

Definition Lastenheft

Zusammenstellung der Anforderungen - WAS und WOFÜR aus Sicht des Auftraggebers

What do attributes do?

describes the advantages and disadvantages of the chosen structure

What does the Software Architecture specification do?

describes the elements and connections between the elements and also the constraints and run time behaviors so that developers know what must be implemented and how

What is economy?

design that can be built for less money, in less time, with less risk, are better

What is involved in adequacy?

designs that meet stakeholder needs, subject to constraints, are better

plan for risk control

determine an approach for addressing each risk; produce a plan for implementing the approach

User acceptance testing

determine if the system satisfies the user and business requirements, with actual data, done by SQA and client

What are activity diagrams?

diagrams that can represent any process and are useful throughout software design

What is done in leading?

directing and supporting people doing project work

What does the Software Design Specification do?

it describes the software architecture or high-level design and the detailed design of the system

In a model-driven engineering process...

it is possible to generate a complete or partial system implementation from the system model

What does the SRS do?

it records the functional and non-functional requirements

Definition Organisation

kann definiert werden über: - Struktur - Funktion - Institution

Dynamic

libraries are stored and versioned separately. It's possible for a version of the [...] library to be loaded that wasn't the original one that shipped with your code if the update is considered binary compatible with the original version. Additionally [...] libraries aren't necessarily loaded -- they're usually loaded when first called -- and can be shared among components that use the same library (multiple data loads, one code load).

Think of a use case as

main functions a system performs for a user

Configuration management team

maintain correspondence among various artifacts

Is development or maintenance more expensive?

maintenance

Model Component

manages the system data and associated operations on that data

Controller Component

manages user interaction and passes these interactions to the View and the Model.

Assessing risk measures

measures of probability, impact, and risk exposure

An actor

model an external entity which communicates with the system (i.e. user, external system, physical environment)

Class diagrams are used

requirement analysis, system design and object design

Architectural patterns are a means of __________knowledge about generic system architectures. They describe the architecture, explain when it may be used and describe its advantages and disadvantages.

reusing

Interaction diagrama

sequence, interaction overview, communication, timing

State Machine Models

show system states as nodes and events as arcs between these nodes. When an event occurs, the system moves from one state to another.

Data driven models

show the sequence of actions involved in processing input data and generating an associated output.

Event driven modeling

shows how a system responds to external and internal events.

Class aggregation model

shows how classes that are collections are composed of other classes

Development view

shows how the software is decomposed for development.

Logical view

shows the key abstractions in the system as objects or object classes.

Sequence diagrams

shows the sequence of interactions that take place during a particular use case or use case instance

Static model

shows the structure of the system design

Physical View

shows the system hardware and how software components are distributed across the processors in the system.

What is simplicity?

simple designs are better

Typically, are software or hardware costs more expensive?

software

What are the advantages of software engineering? (2)

software development is cheaper and more reliable

What is software engineering?

software engineering is concerned with all aspects of software production

Lexical Analyzer

takes input language tokens and converts them to an internal form.

Unit testing

test individual units or pieces of code for a system, done by SQA

Associations represents

the ability of one instance to send a message to another instance

What is software engineering design?

the activity of specifying programs and sub-systems, and their constituent parts and workings, to meet software product specifications

What is software product design?

the activity of specifying software product features, capabilities, and interfaces to satisfy client needs and desires

Risk sources

the cases of risk that should be considered when risk is assessed

scrum

the daily standup meeting where the team discusses their work status and plans the work for the day

Error

the difference between the accepted value and the experimental value

Slack time松弛

the difference between the available time and the real time for that activity

Client server pattern

the functionality of the system is organized into services with each service delivered from a seperate server. clients are users of these services

Client Server

the functionality of the system is organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them

Statechart diagram shows

the lifecycle of an object

probability

the likelihood that an event will occur, usually expressed qualitatively using a range for values (three or five levels)

impact

the loss that occurs when a risk is realized

consequence

the loss that will occur when an event is realized

risk exposure

the magnitude of a risk based on current values of probability and impact

Generalization simplifies

the model by eliminating redundancy

System modeling

the process of developing abstract models of a system, with each model presenting a different view or perspective of that system

Use case diagrams and sequence diagrams are used to describe the interactions between _________ and _____________ in the system being designed. _____________ describe interactions between a system and external actors; ______________add more information to these by showing interactions between system objects.

users systems Use cases sequence diagrams

semantic analyzer

uses information from the syntax tree and the symbol table to check the semantic correctness of the input language text.

Rule of Five

using this method you can easily find a median of a population with a quantified level of uncertainty. using a larger sample can further reduce the uncertainty.

Integration testing

verifies that separate systems can work together, done by SQA

UML is a language for

visualizing, specifying, constructing, documenting the artifacts of a software intensive system

sprints

where the focus is to work together in delivering functionality to the customer in a relatively short period of time (often less than 3 weeks)

External perspective

where you model the context or environment of the system

behavioral perspective

where you model the dynamic behavior of the system and how it is processed by the system.

interaction perspective

where you model the interactions between a system and its environment, or between the components of a system.

structural perspective

where you model the organization of a system or the structure of the data that is processed by the system

syntax analyzer

which checks the syntax of the language being translated

Process View

which shows how, at run-time, the system is composed of interacting processes.

Standard use case can execute

without the extend case

Requirement analysts

work with the customers to identify and document the requirements

Modulality is specified by

{0 ... 10}

Cardinality is specified by

{0..1}

UML Diagram Types

~Activity diagrams ~Use case diagrams ~Sequence diagrams ~Class diagrams ~State diagrams

Function Points - Datenelemente

• (ILF): Internal Logical Files • (ELF): External Interface Files • Data Element Types (DET): f¨ur den Systembenutzer sichtbare Datenfelder (z.B. Attri- bute von Klassen) • Record Element Types (RET): Mehrere logisch zusammenh¨angende DETs ergeben einen RET

Was für Schätzverfahren gibt es?

• Aron-Modell • COCOMO • COCOMO II • Lines of Code (LOC) • Function Points • Speziell für Embedded: 3D Function Points oder COSMIC Full Function Points

Stack

• Automatic management (stack frame allocation/deallocation) • Stack pointer marks limit of valid data on stack; compiler generates code to grow & shrink stack on function entry/return (generally: block level) • Local variables, function return addresses

Prinzipien bei Schätzungen

• Bildung von Sch¨atzpaketen • Aufwandseinheiten • Einbindung der Mitarbeiter • Dokumentation • Erfahrungswerte und Aufschläge • Kontinuierliche Kontrolle

Dynamic testing

• Collects information about a software with executing it • Does the software behave correctly? • In both development and target environments? • White-box vs. black-box testing; coverage analysis; memory leaks; performance profiling

Static testing

• Collects information about a software without executing it • Reviews, walkthroughs, and inspections; static analysis; formal verification; documentation testing

Scrum

• Cross-functional teams • Sprints: 4 week iterations: Sprint planning, Sprint, Daily Scrum meeting, Sprint Retrospective meeting • Other terms: Product backlog, (Sprint) burn-down chart

Debugging Strategies

• Debugging (removal of a defect) occurs as a consequence of successful testing. • Some people are better at debugging than others. • Common approaches (may be partially automated with debugging tools): • Brute force - memory dumps and run-time traces are examined for clues to error causes • Backtracking - source code is examined by looking backwards from symptom to potential causes of errors • Cause elimination - uses binary partitioning to reduce the number of locations potential where errors can exist)

Laufversuch

• Entwickler testet Code während Implementation fortlaufend • Kann mittels Debugging festgestellt werden • Fehler werden sofort korrigiert Ist wichtig um zu überprüfen, ob das Programm das tut was man will

Heap

• Explicit allocation and deallocation (programmer driven) using malloc() / free or new / delete / delete[] • Pointer targets

Function Points - Transaktionselemente

• External Input (EI): von dem Benutzer oder einer umgebenden Applikation an die zu sch¨atzende Applikation • External Output (EO): von der zu sch¨atzenden Applikation an den Benutzer oder eine umgebende Applikation • External Query (EQ): Abfrage zwischen Benutzer oder umgebende Applikation und der zu sch¨atzenden Applikation

Validation Testing

• Focuses on visible user actions and user recognizable outputs from the system • Validation tests are based on the use-case scenarios, the behavior model, and the event flow diagram created in the analysis model o Must ensure that each function or performance characteristic conforms to its specification. o Deviations (deficiencies) must be negotiated with the customer to establish a means for resolving the errors. • Configuration review or audit is used to ensure that all elements of the software configuration have been properly developed, cataloged, and documented to allow its support during its maintenance phase.

General Software Test Criteria

• Interface integrity - internal and external module interfaces are tested as each module or cluster is added to the software • Functional validity - test to uncover functional defects in the software • Information content - test for errors in local or global data structures • Performance - verify specified performance bounds are tested

Acceptance Testing

• Making sure the software works correctly for intended user in his or her normal work environment. • Alpha test - version of the complete software is tested by customer under the supervision of the developer at the developer's site • Beta test - version of the complete software is tested by customer at his or her own site without the developer being present

Unit Testing

• Module interfaces are tested for proper information flow. • Local data are examined to ensure that integrity is maintained. • Boundary conditions are tested. • Basis (independent) path are tested. • All error handling paths should be tested. • Drivers and/or stubs need to be developed to test incomplete software.

Vorteil von einem Testablauf

• Reproduzierbar • Wissen, was getestet wurde • Unabh¨angig von testender Person • Wenn m¨oglich automatisiert • Testspezifikation fortlaufend erweitern

Integration Testing

• Sandwich testing uses top-down tests for upper levels of program structure coupled with bottom-up tests for subordinate levels • Testers should strive to indentify critical modules having the following requirements • Overall plan for integration of software and the specific tests are documented in a test specification

Systematischer Test

• Systematische Fehlersuche • Test werden geplant • SOLL wird mit IST verglichen • Resultate werden festgehalten • Wenn möglich nicht durch Entwickler der Software Ist wichtig um die Richtigkeit einer Software jederzeit reproduzieren und nachvollziehen zu können

Server Oriented Architecture

• The extreme generalization of Client-Server • Instead of monolithic systems one has many concise services

Software Testing types

• Unit Testing - makes heavy use of testing techniques that exercise specific control paths to detect errors in each software component individually • Integration Testing - focuses on issues associated with verification and program construction as components begin interacting with one another • Validation Testing - provides assurance that the software validation criteria (established during requirements analysis) meets all functional, behavioral, and performance requirements • System Testing - verifies that all system elements mesh properly and that overall system function and performance has been achieved

MobileApp Testing

• User experience testing - ensuring app meets stakeholder usability and accessibility expectations • Device compatibility testing - testing apps on multiple devices • Performance testing - testing non-functional app requirements • Connectivity testing - testing ability of app to connect reliably • Security testing - ensuring app meets stakeholder security expectations • Testing-in-the-wild - testing app on user devices in actual user environments • Certification testing - app meets the distribution standards

Developer

An individual who writes code and creates the software product

What are some key challenges to software engineering

Heterogeneity Delivery Trust

Spiral model

Risk driven. Risks are outlined, analyzed and managed.

What is a Stand-Alone Application?

Application systems that run on a local computer; such as a PC.

What are the phases of the Waterfall Model?

Communication Planning Modeling Construction Deployment

Team issues

Communication challenges Interpersonal problems Implementation inconsistencies

Inception analysis

Extract information needed to design architecture

Techniques of requirements gathering (4)

Individual interviews, focus groups, scenarios and ethnographic studies

Waterfall weaknesses (1)

Inflexible

Risk management (4)

Risk identification, risk analysis, risk planning and risk monitoring

State Diagrams

Show how the system reacts to internal and external events.

Short Iterations

-Repeatable cycle -Iteration is 2-4 weeks -Allows for feedback and modification -Immediate improvements based on feedback can be made

How to select the group members?

-group should be cohesive and organized properly -right mix of people with technical knowledge and personalities

Example of Non-Functional Requirements

"The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets". "The system shall not disclose any personal information about customers apart from their name and their registration identification number"."The system architecture shall be constructed according to the WC3 standards".

Galileo Galilei (1564 - 1642)

"What is not measurable make measurable" - It suggests that one of the aims of science is to find ways to measure attributes of interesting things.

According to Lord Kelvin

"When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced to the stage of a science."

Delivery

"Which configuration does this customer have?" "Did we deliver a consistent configuration?

code generator

'walks' the syntax tree and generates abstract machine code

GitHub Workflow

(0. Fork if not part of organization) 1. Clone 2. Branch 3. Commit 4. Pull in branch you want to merge to 5. Push to origin (GitHub) 6. Make pull request/get feedback 7. Merge pull request 8. Delete branch

Scrum lifecycle

(in order of progress) 1. Product backlog (Epics or futures are listed) 2. Sprint Backlog (Decide which epics to prioritize from the product backlog) 3. Sprint (with daily scrum meetings | duration of 2-4 weeks) 4. Delivery & Product review (at sprint end)

What is the formula for Interpersonal Communication Overhead

(n(n-1))/2 ex (4(4-1))/2 = 6

Crossmodule addressing rule

(no modifier) = locally allocated, globally accessible. static = locally allocated, locally accessible. extern = allocated in other compilation unit.

Abraham Maslow's need hierarchy

*bottom to top* 1. Physiological - food, sleep, sex, water, breathing, homoeostasis, excretion 2. Safety - security of: body, employment, family, morality, family, health, resources 3. Love/belonging - friendship, family, sexual intimacy 4. Esteem - self-esteem, achievement, confidence, respect of others, respect by others 5. Self-actualization - morality, creativity, spontaneity, problem-solving, lack of prejudice, acceptance of facts

What are the costs of software engineering (percentage wise)?

- 60% Development - 40% Testing

Welche Testarten gibt es?

- Abnahmetest (Anforderungen; Kunde): Validierung, Besondere Test-Form, Soll nicht Fehler aufzeigen, sondern zeigen, dass das System nach Anforderungen (gemäss Pflichtenheft) fehlerfrei funktioniert - Systemtest (Architektur; Tester): Test des gesamten Systems (z.B. inkl. Mechanik) - Integrationstest (Entwurf; Entwickler/Tester): Integration von Programmeinheiten - Modultest (Detailentwurf/Implementation; Entwickler): Unit-Test

Pros of Model Driven Engineering

- Allows systems to be considered at higher levels of abstraction - Generating code automatically means that it is cheaper to adapt systems to new platforms.

Phasen des Softwarelebenszyklus

- Analyse: Anforderungsfestlegung - Design: Grob- & Feinentwurf (Architektur, Programmstruktur) - Implementierung - Test und Integration - Betrieb & Wartung: Erprobung und Inbetriebnahme sowie Wartung und Weiterentwicklung - Ausserbetriebnahme

Faktoren für erfolgreiche Projekte sind? (6)

- Angestellte: Hohe Motivation der Mitarbeiter / Erfahrene Projektmanager und Entwickler - Kundenorientierung - Management: Klare Projektziele / Realistische Projektpläne / Klare Verantwortungsstrukturen / Offene Kommunikationskultur - Prozessorientierung - Dokumentation und Artefakte - Modularisierung und Wiederverwendung

Two levels of abstraction in software architecture

- Architecture in the small - Architecture in the large

Uses for models of application architecture

- As a starting point for architectural design - As a design checklist - As a way of organizing the work of a development team - As a means of assessing components for reuse - As a vocabulary for talking about application types

Two main uses of architectural models

- As a way of facilitating discussion about the system design (High level view of a system is useful for communication with system stakeholders and project planning) - As a way of documenting an architecture that has been designed

Was steckt hinter der QWidget Klasse?

- Basisklasse für andere Qt Widgets wie QLabel, QLineEdit, QPushButton, ... - Aufgaben: anzeigen, verstecken, freigeben, sperren, weiterleiten von Events an Child-Widgets, Memory Management Achtung: Diese Aktionen, werden auch auf die Child-Widgets angewendet

Welche Testmethoden gibt es?

- Black-Box Testing (System ist unbekannt, Äquivalenzklassen, Grenzwertanalyse) - White-Box / Glass-Box Testing (System ist bekannt, Programmablauftest - Anweisungsüberdeckung, Zweigüberdeckung, Pfadüberdeckung) - Geybox-Testing: Kombination der Beiden

Model-View-Controller: Disadvantages

- Can involve additional code and code complexity when the data model and interactions are simple

Types of diagrams used for structural models

- Class Diagrams

When should a Pipe and Filter pattern be used?

- Commonly used in data processing applications where inputs are process in separate stages to generate related outputs.

What are the intermediate stages of Reuse-Oriented Software Engineering?

- Component Analysis - Requirements Modification - System Design and Reuse - Development and Integration

Repository Pattern: Advantages

- Components can be independent, they do not need to know of the existence of other components - Changes made by one component can be propagated to all components. - All data can be managed consistently!

Software engineering is related to both

- Computer Science - Systems Engineering

Key challenge facing software engineering

- Coping with increasing diversity, - Demands for reduced delivery times - Developing Trustworthy software

What are the advantages of Incremental Delivery?

- Customers can use early increments as prototypes to gain experience that can be used on later requirements. - Customers do not have to wait to gain value. - It maintains the benefits of incremental development for easy changes to the system. - Highest-Priority services are delivered first

Expertenschätzungen

- Delphi Methode (Mehrere Durchläufe zur Annäherung an ein gemeinsames Schätzresultat von einer Runde von Experten) - Planning Poker (Alle Teammitglieder schätzen eine Anforderungen und legen ihren Wert fest (Commitment) -> Diskussion der Karten mit starken Abweichungen -> Nächste Runde..

Application Architectures

- Designed to meet an organizational need - Generic application architecture is for a type of system to be configured and adapted to meet specific requirements.

In RUP what are the six fundamental best practices?

- Develop Software Iteratively - Manage Requirements - Use Component-Based Architectures - Visual Model Software - Verify Software Quality - Control Changes to Software

What are the four software engineering fundamentals that apply to all software systems?

- Developed using a managed and understood software process - Dependability and performance - Software specification and requirements - Software Reuse

Pipe and Filter Pattern: Advantages

- Easy to understand and supports transformation reuse - Workflow style matches the structure of many business processes. - Evolution by adding transformations is straight forward. - Can be implemented as either a sequential or concurrent system

System Boundaries

- Established to define what is inside and what is outside the system. - They show other systems that are used or depend on the system being developed.

What are the four main activities in the Requirements Engineering Process (Software Specification)?

- Feasibility Study - Requirements Elicitation and Analysis - Requirements Specification - Requirements Validation

Pipe and Filter Pattern: Disadvantages

- Format for data transfer has to be agreed upon between communicating transformations. - Each transformation must parse its input and un-parse its output to an agreed upon form. This increases system overhead and may mean that it's impossible to reuse functional transformations that use incompatible data structures.

Was ist der Zweck einer Programm-Dokumentation?

- Für Benutzung von bestehenden Programmteilen - Änderungen an Code Die Dokumentation eines Programm dient zur: Wissenssicherung, Förderung der Kommunikation & Genauigkeit sowie Sichtbarmachung des Projektfortschritts

Sequence Diagrams

Show interactions between actors and the system and between system components.

Agiles Manifest

- Individuen und Interaktionen mehr als Prozesse und Werkzeuge - Funktionierende Software mehr als umfassende Dokumentation - Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung - Reagieren auf Veränderung mehr als das Befolgen eines Plans -> Flexibilität steigern

What are some Architectural Design decisions?

- Is there a generic application that can act as a template? - How will it be distributed? - What architectural patterns or styles might be used? - What strategy will control the operation of the components in the system? - How should the architecture of the system be documented? - What arch. organization is best for delivering the non-functional requirements?

Name some ways VCS systems help in software development.

- Keep records of changes - Allow collaborative development - Know who made changes to what - Revert changes - Build/release management

The 4+1 Views of Software Architecture

- Logical View - Process View - Development View - Physical View - Related use cases or scenarios (+1)

Architectural Patterns

- Means of representing, sharing, and reusing knowledge. - Good design practice - Patterns should include information about when they are and when they are not useful - Can be represented using tabular or graphical descriptions

Summary on Chapter 1:

- Measurement pervades our everyday. - It is essential for good engineers. -Plays a significant role in software engineering and practices -Measurement is a diverse collection of topics that range from models for predicting software project costs at the specification stage to measures of the program structure - General reasons for needing software engineering measurement is not enough. Engineers must have specific, clearly stated objectives for measurement. -We must be bold in our attempt to measurement. Just because one has measured some attribute of interest it does not mean that it cannot be measured satisfactory.

State Models

- Model the behaviour of the system in response to external and internal events. - Show the system's responses to stimuli so are often used for modelling real-time systems.

Cons of Model Driven Engineering

- Models for abstraction and not necessarily right for implementation. - Savings from generating code may be outweighed by the costs of developing translators for new platforms

What are the problems of Incremental Delivery

- Most systems require a set of basic facilities that are used by different parts of the system. - Iterative development can be difficult when a replacement system is being developed. - The software requirements are usually built as the software is. However; business procurement processes where the complete specification is part of the contract.

In Boehm's Spiral Model each loop is split into what four sectors?

- Objective Setting - Risk Assessment and Reduction - Development and Validation - Planning

Layered Architectural Pattern

- Organizes the system into layers wuith related functionality associated with each layer. - A layer provides services to the layer above it. - Services of the lowest layer are then used throughout the system.

What are block diagrams useful for?

- People from different disciplines can easily understand the scope of a project. - Useful for communication with stakeholders.

Welche Vorgehensmodelle der SWE gibt es?

- Phasenmodell (Wasserfallmodell - klassisch und mit Rückkoppelung; V-Modell) - Spiralmodell - Prototyping (Vertikaler vs. Horizontaler Prototyp) - Agile Methoden (Refactoring, Pair Programming, Test-driven Development, Continuous Integration, Planning Game / Poker) - Hybrides Modell Konkrete Modelle - Scrum - RUP (keine Ahnung zu was das gehört)

What are the two categories of Software Processes?

- Plan-Driven - Agile

Was macht qmake?

- Plattformunabhängiger Code (aus Projekt File)-> übersetzt in -> platformspezfisches "Makefile" - Führt aus und Verlinkt: moc, user interface compiler (uic) und resource compiler (rcc)

Pipe and Filter Architectural Pattern

- Processing of data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. - The data flows (pipe) from one component to another for processing.

What are the stages in the Waterfall Model?

- Requirements Analysis - System and Software Design - Implementation and Unit Testing - Integration and System Testing - Operation and Maintenance

The Model-View-Controller (MVC) Pattern

- Separates presentation and interaction from the system data - Model component manages the system data and associated operations - View component defines and manages how the data is presented to the user - Controller component manages user interaction and passes these interactions to the view and model components.

Client-Server Pattern: Advantages

- Servers can be distributed across a network - General functionality (e.g. a printing service) can be available to all clients and does not need to be implemented by all services.

Data-Driven Models

- Show the sequence of actions involved in processing input data and generating an associated output. - Particularly useful during the analysis of requirements as they can be used to show end-to-end processing in a system.

In the four essential characteristics of professional software what is Maintainability?

- Software should be written so it can evolve. - Change is an inevitable requirement of business.

Activity Diagrams

Show the activities involved in a process or in data processing

Reasons why MDA/MDE has not become more mainstream

- Specialized tool support is required to convert models from one level to another - There is limited tool availability and organizations may require tool adaptation and customisation to their environment - For the long-lifetime systems developed using MDA, companies are reluctant to develop their own tools or rely on small companies that may go out of business - Models are a good way of facilitating discussions about a software design. Howeverthe abstractions that are useful for discussions may not be the right abstractions for implementation. - For most complex systems, implementation is not the major problem - requirements engineering, security and dependability, integration with legacy systems and testing are all more significant.

Architecture Reuse

- Systems in the same domain often have similar architectures that reflect domain concepts.* - Application product lines are built around a core architecture with variants that satisfy particular customer requirements. - The architecture of a system may be designed around one of more architectural patterns or 'styles'. - These capture the essence of an architecture and can be instantiated in different ways.

The Client-Server Pattern

- The functionality of the system is organized into servers, with each service delivered from a separate server. - Clients are users of these services and access servers to make use of them.

What are two problems with Incremental Delivery?

- The process is not visible. - System structure tends to degrade as new increments add functionality.

Repository Pattern: Disadvantages

- The repository is a single point of failure so problems in the repository can affect the whole system. - May be inefficiencies in organizing all communication through the repository. - Distributing the repository across several computers may be difficult.

What are the two most important innovations in RUP?

- The separation of phases and workflows - The revelation that deploying software in a user's environment is part of the process

Information System Layers

- The user interface -User communications -Information retrieval -System database

What are the downsides to simple, informal block diagrams?

- They lack semantics - They do not show the different types of relationships between entities, nor their properties

Two most widely used generic application architectures

- Transaction Processing systems: Ecommerce, reservation systems - Language Processing Systems: Compiler, command interpreters

Use case / Actor im Detail

- UC: Funktionen, die gemäss den Anforderungen entwickelt werden müssen - Actor: Personen die mit dem System interagieren und kommunizieren

Architectural Design

- Understanding how a software system should be organized and designing the overall structure of that system. First stage in the software design process. - Critical link between design and requirements engineering. - Output is an architectural model that describes how the system is organized as a set of communicating components.

Elemente eines Use Case Diagramms

- Use Case - Actor - Use Case / Actor Verbindung - Betrachtetes System

What two diagrams are used for interaction modeling?

- Use Case Modeling - Sequence Diagrams

Types of diagrams used for interaction models

- Use Cases - Sequence Diagrams

What are the three types of software components that may be used in Reuse-Oriented Software Engineering?

- Web Services - Collections of Objects developed as a package - Stand-alone software system configured for a specific environment

When should a layered architectural pattern be employed?

- When building new facilities on top of existing systems - When development is spread across several teams with each team responsible for a layer - When there is a requirement for multi-level security

When should you use a Client-Server Pattern?

- When data in a shared database has to be accessed from a range of locations.

When should you use a repository pattern?

- When you have a system in which large volumes of information are generated that has to be stored for a long time.

Continuous Improvement

-After each iteration feedback is provided -Feedback integrated into next iteration -Useful in environments where requirements change often

Definitions: Object Class Attribute Operation Association

-An object is an entity that holds data and exhibits behavior. -A class is an abstraction of a set of objects with common operations and attributes. -An attribute is a data item held by an object or class. -An operation is an object or class behavior. -An association is a connection between classes representing a relation on the sets of instances of the connected classes.

Scrum

-Daily 10-15 min meetings -What work has been completed and why, what do I plan on completing, do I have any road block Sprint: Planned period of work

Examples of Application types

-Data Processing Apps - Transaction Processing Apps - Event Processing Apps - Language Processing Apps

Activity Diagrams

Show the flow of control similar to a flow chart

Cross Functional Teams

-Different functional areas -Use of different strengths of members -Empowered to make decisions -All members involved in project from beginning to end

Initiating vs. Envisioning

-Does not involve a fixed project scope -Scope details are expected to become clearer as project progresses

Risk Identification

-Either by team or manager's experience -checklist is used: Technology People Organizational Tools Requirements Estimation

Risk Reduction: Develop Wrong Thing

-Encourages active participation of customer -Places focus on what a product is supposed to achieve

Risk Reduction: Not Meeting Budget and Schedule

-Errors detected earlier -Corrective action can be quickly and more easily imlemented

Model: Defines and Linear

-Every plan, phase, and step in planned in great detail -Everything is documented -Difficult to change plans -Waterfall model is an example of a highly defined model

Agile Change Management

-Features are reviewed after each iteration -Changes are incorporated into subsequent iterations

Use Case Description Heuristics

-Fill in the use case template from top to bottom. -Obtain use case and actor names from the use case diagram. -Make human actors stakeholders whose needs include completion of the task done by the use case. -Write simple declarative sentences in the active voice.

Extracting requirements from use case models, how does it help?

-Helps designers understand their designs better; -Helps find errors and improve designs; -Produces a useful artifact for engineering design.

Closing vs. Closing

-In agile closing begins only after several iterations

Uses of Conceptual Models

-In product design --Understanding the problem domain --Setting data requirements --Validating requirements -In engineering design --Understanding a product design --Providing a basis for engineering design modeling

Cost over Time

-Increases with traditional approach -Does not increase as much over time with agile, and is lower overall because of iterative nature

Extreme Programming (XP)

-Interval between iteration release it 30-180 -Each release results in working code -Team sets own standards and tasks -Very disciplined -Focused on the programmer -Coaches help teams achieve goals -Designers help simplify Testers look for flaws

Model: Empirical and Iterative

-Involves frequent evaluation and adaptation -Easily respond to changes -Agile model is empirical

Exploring vs. Executing

-It is not expecting that the team will adhere strictly to the project plan

Managing People

-Job of the manager -people=most important asset of a company -poor people management=>Project failure

Designing with Use Case Diagrams

-Model a design alternative for the interactions that a product will support -Generate several design alternatives -Evaluate alternatives (they can be evaluated in terms of --Unmet needs --Extraneous features or capabilities --Development costs --Time and risk --Conformance to constraints --Feasibility, simplicity, beauty

Traditional Change Management

-Must be analyzed in terms of budget, risk, timeline -Approved by stake holders -Baselines must be updated -Customer may only see product at completion, so feedback is not given

Object Diagrams

-Object diagrams are used much less often than class diagrams. -Object symbols have only two compartments: --Object name --Attributes (may be suppressed)

Business Priorities and Customer Value

-Product features most important to customer are developed first -Progress measured in term of feature's readiness -Typical project management tracks progress by the completion of phases, which may not align with completion of deliverables

Dynamic Systems Development Method (DSDM)

-Reflects a business perspective rather than a technical one Three Phases 1. Activities that must occur before a project begins 2. Those that make up life cycles 3. Those that make up when project completes Steps: Feasibility study, business study, functional model iteration, design and build iteration, Implementation

Risk Monitoring

-Regularly assessing the risks to decide if it is become less or more probable -Assess if effect of risk has changed

Rationalizing Branch Points

-Remove from further considerations any conditions that the product --Cannot detect --Cannot do anything about -Rewrite poorly stated conditions

Identifying Classes-Rationalizing

-Remove noun phrases designating properties (they may be attributes). -Remove noun phrases designating behaviors (they may be operations). -Combine different names for the same thing. -Remove entities that do not directly interact with the product. -Clarify vague nouns or noun phrases. -Remove irrelevant or implementation entities.

How to check use case diagrams?

-Review the stakeholders goals list to make sure no actors are missing. -Review the needs list to make sure no uses cases are missing. -Review constraints and limitations to make sure they are no violated. -Generate an event list and check that all events are handled. -Check that the collection of use cases covers all externally visible behavior. -Check the diagram against the use case heuristics

Two ways repositories can share data

-Shared data is held in a central database or repository and may be accessed by all sub-systems; -Each sub-system maintains its own database and passes data explicitly to other sub-systems.

Object Links

-Show that particular objects participate in a relation between sets of objects -Instances of associations -Shown using a link line --Solid line (no arrowheads) --Underlined association name -Link lines never have multiplicities

Burndown Chart

-Straight line indicates ideal work completion -Then another line indicated actual work progress

Adding Attributes

-Study the SRS and product design models looking for adjectives and other modifiers. -Use names from the problem domain. -Include only those types, multiplicities, and initial values specified in the problem. -Don't add object identifiers unless they are important in the problem. -Don't add implementation attributes. -Add operations sparingly.

Adding Associations-Brainstorming

-Study the SRS and product design models looking for verbs and prepositions describing relationships between model entities. -Look for relationships such as --Physical or organizational proximity; --Control, coordination, or influence; --Creation, destruction, or modification; --Communication; and --Ownership or containment.

Identifying Classes—Brainstorming

-Study the product design (SRS, use case models, other models) -Look for nouns and noun phrases for --Physical entities --Individuals, roles, groups, organizations --People, devices, or systems that interact with the product (actors)

Speeds Up Delivery

-Supports faster decision making -Testing, feedback, and change are built into process rather than after it -Team members are encouraged to make decisions and implement ongoing improvements

What are the contents of a use case description?

-Use case name and number -Actors -Stakeholders and their needs -Preconditions --An assertion that must be true when an activity or operation begins. -Postconditions --An assertion of what must be true when an activity or operation ends. ---Must satisfy stakeholder needs -Trigger—A trigger is an event that causes a use case to begin. --May be the first step in the use case -Basic flow --Begins at the trigger, continues until the use case ends -Extensions --May begin and end anywhere

What should every use case diagram have?

-at least one use case -at least one actor -at least one actor associated with each use case -at least once use case associated with each actor -no association line between actors -no association line between use cases -name every actor and use case -not label any association line

Group composition for an effective group?

-balance of all types of people -difficult to obtain as software developers are usually task-oriented -very imp to have interaction-oriented people in the group to detect and defuse tension

Characteristics of an informal group

-decisions are made by the group as a whole -group leader->external interface of the group -tasks are taken up by members depending on experience and ability -successful when all members are experienced and competent

What are some use case diagram heuristics?

-never make the product an actor -name actors with noun phrases -name use cases with verb phrases -achieve a stakeholder's goal in a use case -make use cases that can be finished in a single session -make use cases of uniform size and complexity -draw use case diagrams on one page -organize use cases by actor, problem domain categories, or solution categories

Draw the UML diagram for the internal iterator pattern.

...

Explain Remote Service clients, Rich Web clients and the Richardson Maturity Model.

...

Explain Simplicators, Hexagonal Architectures, System tests and Integration tests.

...

What are HTTP, REST and URIs?

...

Decorator.

//TODO The Decorator pattern is also useful for enforcing the Single Responsibility Principle (SRP). Example: - A "Calculator" class that performs numerical calculations but does not display the results. Use a "DecoratedCalculator" that delegates numerical calculations to aggregated "Calculator" and then fetches the result and notifies a View (in an MVC context).

What does this cardinality symbol mean {0...N}

0 to many

What are the steps of the V-model

1 requirement ----------7 Acceptance testing 2Global design -------6 Integrations testing 3Det Design ----------5 Unit testing 4 Coding

What does this cardinality symbol mean {1...1}

1 to 1

System Perspectives

1) An external perspective: where you model the context or environment of the system. 2) An interaction perspective: where you model the interactions between a system and its environment, or between the components of a system. 3) A structural perspective: where you model the organization of a system or the structure of the data that is processed by the system. 4) A behavioral perspective: where you model the dynamic behavior of the system and how it responds to events.

Three ways in which graphical models are used

1) As a means of facilitating discussion about an existing or proposed system 2) As a way of documenting an existing system 3) As a detailed system description that can be used to generate a system implementation

Types of MDA Models

1) Computational Independent Model (CIM) 2) Platform Independent Model (PIM) 3) Platform Specific Model (PSM)

Two types of behavior when discussing Behavior Models

1) Data: Some data arrives that has to be processed by the system 2) Events: Some event happens that triggers system processing. Events may have associated data, although this is not always the case.

Non-Functional requirements that the choice of architectural style and structure should depend on:

1) Performance - localize critical operations 2) Security - Use a layered architecture with critical assets in an inner layer. 3) Safety - Localize safety-critical features in a small number of subsystems. 4) Availability - Include redundant components and mechanisms for fault tolerance. 5) Maintainability - Use fine-grain, replaceable components.

UP (Unified Process)

1. Agile Unified Process: Simplified: Inception, Elaboration, Construction, Transition, Focus is on developing production ready software 2. Essential Unified Process: Capability Maturity Model Integration, SOC (separation of concerns), order these concerns based on priority, choose best practices to address concerns 3. Open Unified Process:Only fundamental content and guidance, scenarios, use cases

3 Types of motivation

1. Basic needs (food, sleep etc) 2. Personal needs (respect, self-esteem etc) 3. Social needs (feel accepted by the team)

Beschreiben Sie, wie Sie im Zusammenhang mit den Testmethoden bei einem Unit-Test vorgehen. Wann und in welcher Reihenfolge benutzten Sie White- und Blackbox Testmethoden.

1. Black-Box 2. White Box: Anweisungsüberdeckung oder allenfalls Zweigüberdeckung 3. Testfall Ergänzung bis Schritt 2 eine Überdeckungsgrad von 100% ergibt.

What are two components of the first software engineering principle

1. Chose Software Development Life Cycle model 2. Develope project plan

What are the four elements of simple design, in order of importance?

1. Code passes its tests (behaves correctly). 2. Minimises duplication. 3. Maximises clarity. 4. Code has fewer elements.

Characteristics of a good group?

1. Cohesive 2. has team spirit

4 critical factors in people's management

1. Consistency in fairly treating individuals 2. Respect 3. Inclusion 4. Honesty

Key Characteristics

1. Cross Functional Team 2. Short Iterations 3. Incremental approach 4. Business Priorities and customer values 5. Continuous Improvement

Scrum meeting - the flow

1. Daily Scrum meeting (meeting the team for 15 mins everyday to decide what to do.) 2. Sprint planning (Review the items and plans in detail. Product owner and team involved. 8 hr/day for 4 weeks) 3. Sprint Review: (To adapt and inspect the product. Product owner, team, and scrum master involved. 4 hrs for 4 week sprint) 4. Sprint retrospective (to adapt and inspect the process. Team and scrum master involved. 3 hours for 4 week sprint)

What are the four attributes of good software

1. Dependability 2. Efficiency 3. Acceptability 4. Maintainability

Additional Roles

1. Designer: Help simplify complex designs 2. Developer: Building product or service 3. Tester: Investigate product for flaws

Iterative

1. Develop feature 2. Review feature 3. ID enhancements 4. Deliver product *Changes, feedback, and enhancements are provided at all times

Extreme programming

1. Develop stories the client would like to support 2. Estimate cost of each 3. Client determines which to develop using cost-benefit analysis 4. Build is broken into tasks 5. Select tests for each task 6. Programmers work in pairs, alternating typing / watching every 15 to 20 minutes 7. Partners are rotated daily

Risk Reduction

1. Develop wrong thing 2. Building poor quality 3. Not meeting budget and schedule

Lean Software Development Principles

1. Eliminate Waste 2. Continuous Learning 3. Delay Decisions 4. Deliver Software Quickly 5. Empower Programming Team 6. Focus on System Integrity 7. Focus on Whole System

5 Phase of Agile

1. Envisioning: Vision, Scope, Schedule, Team 2. Speculating: Est. Iteration, Rough plan, Risk, Est. Costs 3. Exploring: Feature built in increments 4. Adapting: Feedback to review iteration, adapts plans 5. Closing:? All project work completed, lessons learned etc.

Projektabschluss

1. Ergebnisse der Entwicklung: Code, Systemarchitektur, Tests, Dokumentation, System 2. Lieferung abnehmen und System in Betrieb setzen (inkl. Freigaben) 3. Projekt abschliessen beinhaltet die Sicherung der gemachten Erfahrungen, die Auflösung des Projektteams und die Projektabrechnung -> Projektabschlussbericht

Waterfall Model Weaknesses

1. Feedback is late 2. Errors are ID'ed late 3. Changes are costly

What are some advantages of the Prototyping Model

1. Getting Customer feedback 2. Allows the creation and testing of parts of a product before the entire product 3. Production quality is not required

4 advantages of cohesive group

1. Group quality stds are developed 2. Team members learn from each other 3. Knowledge is shared 4. Refactoring and continual improvement (fixing the code irrespective of who created it first)

5 Factors affecting Effectiveness and Efficiency of group communication

1. Group size: small>large 2. Group structure: informal>hierarchical 3. Group composition: different personalities, mixed>single sex 4. Physical work environment 5. Availability of communication channels

Spiral Model

1. Identification 2. Design 3. Construct or build 4. Evaluation and Risk Analysis Pros: Used for medium - high risk projects, and complex and unclear requirements that need evaluation. Early involvement with system development & users Cons: Management & process is complex. Large number of cycles require lots of documentation. When is end of cycle not always clear

Primary Agile Value

1. Individuals and Interactions 2. Working Software 3. Customer Collaboration 4. Responding to Change

What are the product design principles?

1. adequacy 2. beauty 3. economy 4. feasibility 5. simplicity

Agile Principles

1. Individuals and interactions • self organization, motivation, colocation, pair-programming 2. Working software • Communication between client and team 3. Customer collaboration • Continuous interactions -> embed in team 4. Responding to change

• Bottom-up integration testing

1. Low level components are combined into clusters that perform a specific software function. 2. A driver (control program) is written to coordinate test case input and output. 3. The cluster is tested. 4. Drivers are removed and clusters are combined moving upward in the program structure.

• Top-down integration testing

1. Main control module used as a test driver and stubs are substitutes for components directly subordinate to it. 2. Subordinate stubs are replaced one at a time with real components (following the depth-first or breadth-first approach). 3. Tests are conducted as each component is integrated. 4. On completion of each set of tests and other stub is replaced with a real component. 5. Regression testing may be used to ensure that new errors not introduced

What are the seven principles of software engineering

1. Manage using a phased life-cycle plan 2. Perform continuous validation 3. Maintain disciplined product control 4. Use modern programming practices 5. Maintain clear accountability for results 6. Use better and fewer people 7. Maintain a commitment to improve the process.

Strengths of iteration and incremntation

1. Multiple opportunities for checking correctness 2. Opportunity to determine robustness of architecture early 3. Mitigate risks early 4. Working version of the software at each increment 5. Empirical evidence that the life cycle is effective

What are the 4 success criteria for project mngmt?

1. On time 2. On budget 3. Meet customer expectations 4. Satisfied team

What are the three aspects of software failure

1. Over budget 2. Late 3. Does not satisfy user needs or expectations

XP Principles

1. Pair Programming: 2-3 programmers work at a workstation 2. Sustainable Pace: Do not work more than 40 hours per work 3. Ongoing Automated Testing

What are the software architect's tasks?

1. Perform system static partitioning and decomposition into sub-systems 2. Do trade-off analysis 3. establish dynamic control relationships between different sub-systems 4. Consider and evaluate architecture styles 5. Map the software requirements to the software architecture

Secondary Agile Values

1. Process and Tools 2. Comprehensive documentation 3. Contract negotiation 4. Following a plan

4 Scrum roles

1. Product owner 2. Scrum team 3. Scrum master 4. Quality Assurance Manager

Agile Project Team Roles

1. Project Leader: More of a coaching role, less delegation, focus on assisting with achieving goals 2. Business Analyst: Manages relationship between on site customer and other team members 3. Scrum Master: Facilitates the work of project team members, problem solving, help team members achieve sprint goals 4. Product Manager: Ensuring the product meets customer needs, filled by onsite customer

5 Management Activities

1. Project Planning 2. Reporting 3. Risk Management 4. People Management 5. Proposal Writing

3 Types of Risk

1. Project risk - affects the schedule/resources 2. Product risk - affects the quality/performance 3. Business risk - affects the org developing/procuring

Projektentstehungsphase (3)

1. Projektidee entwickeln: Ziele, Bedarf, Chancen festlegen & ggf. Projektvorstudie durchführen -> M1: Projektskizze 2. Aufwand schätzen sowie Anforderungen und Ziele grob festlegen: Anforderungen notieren, grober Plan definieren, Schätzung durchführen und in einem Business Case zusammenfassen -> M2: Projektauftrag 3. Angebots- und Vertragswesen: Lastenheft und Angebot festlegen und Gegenpartei übergeben -> M3: Vertrag / Projektvereinbarung

What are four different types of Lightweight Software development models

1. Prototyping 2. Incremental Development 3. RAD, DSDM 4. Extreme Programming

Synchronize and stabilize

1. Pull requirements 2. Write spec 3. Divide work into three or four builds 4. Carry out each build with small teams 5. Synchronize at the end of the day 6. Stabilize at the end of each build

3 factors affecting group work

1. Selection: select diverse mix of people 2. Organization: organize the group optimally 3. Communication: good communication

How to provide satisfaction to employees?

1. Social -provide communal facilities -allow informal communication (social n/w) 2. Esteem -recognize achievements -appropriate rewards 3. Self Realization -training -responsibility

3 Unique distinctions about software management

1. Software is intangible- Manager cannot see the progress just by looking at the artefact being developed 2. Software products are one-off - experienced managers can also not anticipate problems 3. Software development process is variable and is company specific- cannot reliably predict when a s/w may cause development problems

ASD (Adaptive Software Development)

1. Speculate: cycle planning, plan # and length of cycles, task list 2. Collaborate: concurrent component engineering, implements planned work 3. Learn: Quality reviews, feedback from end users, end with postmortem, brainstorming

Main advantages of designing and documenting software architecture

1. Stakeholder communication 2. System Analysis 3. Large Scale Resuse

What are the advantages of the Waterfall model

1. Straight forward 2. Find problems earlier in the process 3. Documentation 4. Best for larger projects over 50 team members

What are the key aspects of the Incremental Development Model

1. System is delivered in small increments 2. Waterfall Model is employed 3. User is closely involved 4. Incremental development prevents over-functionality

Engineering Types

1. SystemEngineering 2. Requirements Engineering 3. RequirementEngineeringProcesses

Motivation should take into account personality types also. What are these?

1. Task-oriented - motivation for work is work itself 2. Self-oriented - motivation for work is achieving individual goals 3. Interaction-oriented - motivation for work is presence and actions of co-workers

What are the three types of Prototyping Development Models

1. Throwaway 2. Evolutionary 3. Incremental Development

WebApp Testing Strategies

1. WebApp content model is reviewed to uncover errors. 2. Interface model is reviewed to ensure all use-cases are accommodated. 3. Design model for WebApp is reviewed to uncover navigation errors. 4. User interface is tested to uncover presentation errors and/or navigation mechanics problems. 5. Selected functional components are unit tested. 6. Navigation throughout the architecture is tested. 7. WebApp is implemented in a variety of different environmental configurations and the compatibility of WebApp with each is assessed. 8. Security tests are conducted. 9. Performance tests are conducted. 10. WebApp is tested by a controlled and monitored group of end-users (looking for content errors, navigation errors, usability concerns, compatibility issues, reliability, and performance).

What is involved in the inspections process?

1. planning and appointment of moderator and inspectors 2. preparation for the inspection 3. conduct inspection 4. post inspection follow-up 5. if no re-inspection needed, then issue inspection result document

Problems with group composed of people sharing same motivation

1. task-oriented: everyone wants to do their own thing 2. self-oriented: everyone wants to be the boss 3. interaction-oriented: too much chatting, no work

What is involved in the inspection conclusion?

1. the author corrects defects found by inspectors 2. the moderator ensures that all defects are dealt with 3. if the work product is much changed or still appears to have defects, another inspection may be scheduled

What are the software architecture design guidelines?

1. think of what to do before thinking of how to do it 2. think of abstract design before thinking of concrete design 3. think of non-functional requirements earlier 4. think of software reusability and extensibility as much as possible 5. tolerate refinement of design 6. try to promote high cohesion within each element and loose-coupling between elements

What are the steps in the problem solving process?

1. understand the problem 2. generate candidate solutions 3. evaluate candidate solutions 4. select the best solution/s 5. iterate if no solution is adequate 6. ensure the solution is complete and well documented and deliver it

What are some types of models?

1. various UML diagrams 2. Use case descriptions 3. user interface diagrams 4. dialog maps 5. conceptual modeling 6. use case modeling

What are some SRS quality characteristics?

1. well-formedness: conforms to all rules about stating requirements 2. clarity: it is easy to understand 3. consistency: a single product can satisfy all requirements 4. completness: includes every relevant requirement 5. verifiability: every requirement must be verifiable 6. feasibility: designs are confident that the requirements can be satisfied 7. correctness: specifies to stakeholder needs and desires, subject to constraints 8. prioritization: requirement are prioritized in accord with stakeholder needs and desires

4 Main Differences

1.High level project scope 2. Multiple iterations 3. Self Organizing Teams 4. Customer Involvement

What year was the Watefall Model published?

1970 (yes this is anal)

Sequence diagram graphically

2D table that shows objects in X-axis and messages over time in Y-axis

Risk Analysis Table

3 columns: 1. Risk 2. Probability- Very low, low, moderate, high, very high 3. Effect- Insignificant, Tolerable, Serious, Catastrophic

Generalization

<child> is more specific versions of the <parent> <child> inherits attributes, associations, & operations from the <parent> <child> can override an inherited aspect

Describe the Null Object pattern. Give some situations in which it might be used.

A client class will often issue a query (through an API) to a service class, for some object. In order to account for the case where the returned object is null, the client class will have to introduce some null-checking code. Over time, the codebase may become littered with a plethora of null-checking code. A better solution is to have the service class return a special "Null" object if no "Real" object exists. Examples of usage: - Returning a "NullAccount" after querying a bank database for some bank account. - Returning a "NullTrack" after querying a music database for some song.

Describe the main features of Web Apps.

A common design for web apps is the 3-tier architecture. The processing is split between the browser, web server and the database. This is a common design for web apps that involve online shopping or booking tickets. With the proliferation of web apps, browsers have taken on more responsibility for the presentation of content. So to introduce greater flexibility regarding presentation, it is now common for servers to transfer data in JSON or XML format to the browser, rather than whole webpages. The browser is then free to decide how to render this data and present it.

Configuration

A common understanding. Combination of components from the repository into a system according to case specific criteria to make up a release.

Define Composition

A composition is a class that is part of a whole class where the part would die of the whole dies

What is a DFD diagram

A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modelling its process aspects.

Regression fault

A fault inadvertently introduced into one part of a product as a consequence of making an apparently unrelated change to another part of the product.

Voice controlled interface

Ability to operate a computer by issuing spoken commands.

What is a Data Flow Diagram

A graphical representation of the "flow" of data through an information system

Quality reviews

A group of people who examine part or all of the software and it's documentation, review everything

What are Software Process Models?

Abstract representations of software processes.

What is a finite state machine

A mathematical model of computation used to design both computer programs and sequential logic circuits.

Scrum Method

A method of Agile Project management. Scrum divides the workload into different "sprints". It allows project to regularly develop, tested, and launched one after each other. It is more flexible and adapted to market change. Works with Post-its and boards

What architectural style uses local data

Abstraction

What is the Waterfall Model?

A model that takes the fundamental activities of specification, development, validation, and evolution and represents them as separate process phases.

What is meant by Entity relationship Modeling

A modeling type that uses the entities, entities types, attribute values, attributes, and relationships

Stakeholder

A person with interest in a business such as employees and suppliers

Douglas Hubbard alternative definition to measurement:

A quantitatively expressed reduction of uncertainty based on one or more observations

Dependency relation

A relationship of two things in which the change to one thing (independent) may affect the other thing (dependent)

Product

A software system that is provided to a client.

Equivalence class

A software testing technique that divides the input data of a software unit into partitions of equivalent data from which test cases can be derived.

Baseline

A static reference point for any configurable items in your project.

Association relation

A structural relationship that describes a set of links

System Requirements

A structured document setting out detailed descriptions of the system's functions, services, and operational constraints. Defines what should be implemented. Must be concise in their technical effects.

What is a Feasibility Study?

A study to estimate whether the identified user needs may be satisfied using current software and hardware technologies.

Define Architectural Style

A style or description of component or connector types and a pattern of their runtime control and data transfer

What is a Data Collection System?

A system that collects data from its environment using a set of sensors and sends the data to other systems for processing.

Use Case Diagrams

Show the interactions between a system and its environment.

What is an Information System?

A system whose primary purpose is to manage and provide access to a database of information.

In the context of the Unified Process, what is a workflow?

A task set, it identifies the tasks required to accomplish and important software engineering action.

Desk checking

A testing technique in which the program code is sequentially executed manually by the reviewer, done by the programmer

What part of a class diagram provides behavior that can be overwritten in the extending class

Abstraction

Agile Project Management

A value-driven approach that allows project managers to deliver high-priority, high-quality work, often when the conditions of the project are uncertain and more complicated. Smaller 2-4 week segment (project cycles) that develop and test the project. It allows change within the project. Common in software projects where technology is changing faster than the project lifecycle.

Release

A version that has been made available to the client/user.

Class Diagrams

Show the object classes in the system and the associations between these classes.

Traceability

All artifacts must trace back to a requirement artifact

Software Engineering is concerned with?

All aspects of software production.

Repository architecture

All data in a system is managed in a central repository that is accessible to all system components. Components do not interact directly, only through the repository

The repository pattern

All data in system is managed in a central repository that is accessible to all system components.

What does an interface do on a component diagram

Allows communications between sub components

What does a port do on a component diagram

Allows components to talks to each other

layered architecture pre and pos

Allows replacement of entire layers so long as the interface is maintained.(pre) Performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer.(pos)

User testing (3)

Alpha, beta and acceptance testing

What is an Executor?

An "Executor" is an object that executes submitted "Runnable" tasks. It is implemented as an interface with a single "execute()" method. public interface Executor { void execute(Runnable command); } "Executor" should normally be used instead of explicitly creating threads because it provides a way of decoupling task submission from the mechanics of how each task will be run. For example, use Executor executor = new MyExecutor(); executor.execute(new Command(...)); instead of new Thread(new Command(...)).start();

Class

An abstraction in the context of object oriented languages

Define Aggregation

An aggregation is consider the whole class where the part can survive if the whole dies

Scrum

An agile method focusing on managing iterative development, where teams are cross-functional

What is Reuse-Oriented Software Engineering?

An approach based on the existence of a significant number of reusable components. Then integrating these components into a system rather than developing from scratch.

Object-oriented paradigm

An approach to programming that focuses on the manipulation of objects rather than on the generation of procedure-based code.

Model-Driven Engineering

An approach to software development whereby models rather than programs are the principle outputs of the development process.

What is an architectural pattern? List the 2 architectural patterns studied.

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design pattern but have a broader scope. MVC, PAC.

Conceptual Models

An conceptual model is a static model of the important entities in a problem, their responsibilities or attributes, the important relationships among them, and perhaps their behaviors

Discrepancy

An error in a CI due to improper implementation or no implementation.

User

An individual who will be interacting with a completed software product

Class Diagram

An object-oriented system model to show the classes in a system and the associations between these classes.

Analysis workflow

Analyze and refine requirements, create UML diagrams, SPMP

Analysis phase

Analyze requirements Draw up formal spec Draw up the SPMP

System stakeholder

Anyone who is affected by the system

Project Management

Application of knowledge, skills, tools and techniques to project activities and meet project requirements

Web development software

Application software for creating HTML pages for web sites.

Multimedia software

Application software for creating and editing presentations, animations, and video.

Presentation software

Application software for creating slides used for lectures, presentations, and lessons.

Audio software

Application software for creating, recording, and editing sound.

Database software

Application software for creating, recording, and finding large collections of data.

Spreadsheet software

Application software for performing numerical calculations and analysis.

Desktop publishing software

Application software used to lay out pages for printed publications.

What is an Interactive Transaction-Based Application?

Applications that execute on a remote computer and that are accessed by users from their own PC's or terminals. E.g. eCommerce, cloud based services, etc.

Event processing systems

Applications where system actions depend on interpreting events from the system's environment

Creating secure software (3)

Architectural design, good practice and design for deployment

Library

Archive file containing a collection of object files. Object file is linked in completely wheres a library only what you need.

Objectives for Software Measurement (Engineers)

Are the requirements testable?- (analyze each requirement) Have we found all the faults? Have we met our product or process goals? What will happen in the future?

What is the term that describes crosscutting concerns that have an impact across the software architecture?

Aspectual Requirements

Change management

Assessing proposed changes and deciding if they are worth implementing or not

Security risk assessment (4)

Asset identification, asset value assessment, exposure assessment and threat identification

What is the difference between association, composition and aggregation in UML?

Association is a relationship where all objects have their own life cycle and there is no owner. public class Foo { void someMethod(Bar bar) {...} } Aggregation - I have an object which I've borrowed from someone else. When Foo dies, Bar may live on. public class Foo { Bar bar; Foo(Bar bar) { this.bar = bar; } } Composition - I own an object and I am responsible for its lifetime, when Foo dies, so does Bar. public class Foo { private Bar bar = new Bar(); }

Relationships in class diagrams

Associations, aggregation, generalization

Describe the Template Method pattern. Give some situations in which it might be used.

At the core of the Template Method pattern is a single abstract class, "AbstractBase", that consists of a template method that makes use of a bunch of hook methods. The implementations are then provided by subclasses of "AbstractBase". The Template method pattern allows us 1. To vary the behaviour of the template method - through method overriding by the subclasses. 2. Avoid duplication in the code. Examples of usage: - "EmailService" provides a template method for sending an email. Subclasses implement hook methods for formatting the message. - Cross compiler. Hook methods: collectSource(), compileToTarget().

Planning activities

At the start End of analysis Throughout the project

Decorator

Attach additional responsibilities to an object dynamically

An elispse in an ER diagram signifies

Attributes

Formel zur Gewichtung von Schätzungen - Aufwandsmittelwert - Standardabwichung

Aufwandsmittelwert: (bc + 4 lc + wc)/6 Standardabweichung: (wc - bc)/6

Mail merge

Automatically customising a standard letter with individual names and addresses.

Risk planning (3)

Avoidance, minimization and contingency methods

Why is project management needed?

Because a project is subject to budget and schedule constraint set by org developing the software

iterative

Because it involves delivering a project after repeated short bursts of work, agile project management is considered a(n) ________ approach to project management.

Why is it it important to manage using a phased life-cycle plan

Because roughly 50% of projects fail due to poor planning

Blocking States are more prevalent during which part of a linear sequential process?

Beginning and the End

Iteration and incrementation model

Beginning with the most important features of a system, then gradually adding in less important features with each iteration.

___________models are used to describe the dynamic behavior of an executing system. This behavior can be modeled from the perspective of the data processed by the system, or by the events that stimulate responses from a system.

Behavioral

Observer

Behavioral design pattern Intent: Define a one-to-many relationship between objects, so that when one object changes it's state, the dependents are notified and updated automatically. Pros: Observers are isolated from Observables You can dynamically subscribe and unsubscribe Cons: The order in which Observers are called might not be deterministic.

Template Method

Behavioral design pattern Intent: define a skeleton of an algorithm and defer some steps to subclasses. Pros: Helps eliminate code duplication Easy to customize the algorithm Cons: Your options are limited by the existing skeleton

Observer Pattern

Behavioural An object maintains a list of dependents and notifies them automatically of any state changes by calling one of its methods.

Mediator Pattern

Behavioural Encapsulates how a set of objects interact. Solves the communication between classes problem when the program becomes complex.

Activity Diagram

Behavioural. A diagram that shows the flow of control and data form activity to activity. Activity diagrams address the dynamic view of a system

Sequence Diagrams

Behavioural. Displays object interactions arranged in a time sequence. How do components interact?

State Transition Diagram

Behavioural. Show life history of a given class. Classes that have a lot of dynamic behaviour.

Scrum

Bei Scrum organisiert sich das Team weitgehend selbst. Die Grundannahme ist, dass Projekte komplex sind und somit nicht von Anfang an detailliert planbar sind. Am Anfang wird ein grober Projektrahmen definiert, indem sich das Team selbstorganisierend bewegt. Scrum Prozess: 15-30 Tage Sprints, um einen neuen Prototypen zu designen

Code profiling

Benchmarking execution to understand where time is being spent Questions answered by profiling: • Which lines of code are responsible for the bulk of execution time? • How many times is this looping construct executed? • Which approach to coding a block of logic is more efficient? Without profiling, answering this becomes a guessing game. Technique: • Profiler runs while application runs • records frequency & time spent in each line of code • Generates log file

Definition Pflichtenheft

Beschreibung der Realisierung der Anforderungen vom Lastenheft

the customer

Besides the project team and PM, who is most important to the agile project management process?

Software standards benefits (3)

Best practice, framework for defining quality and continuity

Was sind Callbacks?

Bidirektionale Verbindungen zwischen Modulen bei C.

Scrum board

Board with post-its of the tasks to accomplish during the sprint.

Boehm's Quality Model

Boehm's Quality model (1978): Boehm's model is similar to the McCall Quality Model in that it also presents a hierarchical quality model structured around high-level characteristics, intermediate level characteristics, primitive characteristics - each of which contributes to the overall quality level. The high-level characteristics represent basic high-level requirements of actual use to which evaluation of software quality could be put - the general utility of software. The high-level characteristics address three main questions that a buyer of software has: • As-is utility : How well (easily, reliably, efficiently) can I use it as-is? • Maintainability: How easy is it to understand, modify and retest? • Portability : Can I still use it if I change my environment? The intermediate level characteristic represents Boehm's 7 quality factors that together represent the qualities expected from a software system: • Portability (General utility characteristics): Code possesses the characteristic portability to the extent that it can be operated easily and well on computer configurations other than its current one. • Reliability (As-is utility characteristics): Code possesses the characteristic reliability to the extent that it can be expected to perform its intended functions satisfactorily. • Efficiency (As-is utility characteristics): Code possesses the characteristic efficiency to the extent that it fulfills its purpose without waste of resources. • Usability (As-is utility characteristics, Human Engineering): Code possesses the characteristic usability to the extent that it is reliable, efficient and human-engineered. • Testability (Maintainability characteristics): Code possesses the characteristic testability to the extent that it facilitates the establishment of verification criteria and supports evaluation of its performance. • Understandability (Maintainability characteristics): Code possesses the characteristic understandability to the extent that its purpose is clear to the inspector. • Flexibility (Maintainability characteristics, Modifiability): Code possesses the characteristic modifiability to the extent that it facilitates the incorporation of changes, once the nature of the desired change has been determined. The lowest level structure of the characteristics hierarchy in Boehm's model is the primitive characteristics metrics hierarchy. The primitive characteristics provide the foundation for defining qualities metrics - which was one of the goals when Boehm constructed his quality model. Consequently, the model presents one more metrics supposedly measuring a given primitive characteristic. Though Boehm's and McCall's models might appear very similar, the difference is that McCall's model primarily focuses on the precise measurement of the high-level characteristics "As-is utility", whereas Boehm's quality model is based on a wider range of characteristics with an extended and detailed focus on primarily maintainability.

Leham's laws (4)

Continuing change, increasing complexity, large program evolution and organizational stability

List the association strengths in order of weakest to strongest

Dependency Aggregation Composition

Relations in the UML

Dependency, association, generalization

Change Control Board

Centralized decision-making body for changes to baselined documents Route ALL change requests to the CCB. Cross-functional group that can assess impact of proposed change Good and bad points?

What is the difference between afferent coupling (Ca) and efferent coupling (Ce)?

Ca: Refers to the number of classes which depend on this class - a measure of the class' responsibility. Ce: Refers to the number of classes on which this class depends - a measure of the class' independence. Note: Afferent = inwards. Efferent = outwards.

Activity Diagram

Can be used to show a piece of your implementation, a description or a use case, or any other process that occurs within the system

Software evolution process (5)

Change requests, impact analysis, planning, implementation and release

Adaptive maintenance

Change the product to adapt to changes in the environment. May change spec

Perfective maintenance

Changes made to a system to add new features or to improve performance.

Perfective Maintenance

Changes that will improve the product — enhancements & upgrades. Changes spec

Adaptive maintenance

Changes to the system to make it work with environmental changes or new ways of doing things

Software change

Changing software to meet changing needs

Burndown chart

Chart that tracks if the team is behind or ahead of schedule

Integration and configuration benefits (3)

Cheaper, less risky and faster to create

Quality culture (3)

Check code, never add code that causes failures and fix problems as you see them

Verification

Check software meets it's stated requirements

White Box testing

Check that all statements & conditions have been executed at least once. Look inside modules/classes. Limitations • Cannot catch omission errors. -- missing requirements? • Cannot provide test oracles. -- expected output for an input?

Validation

Checks software matches the customers expectations

Structural Diagrams

Class Diagram. Object Diagram.

In UML, classes are represented by rectangles divided vertically into 3 or more compartments as follows

Class name compartment Attributes compartment Operations compartment Other compartment (to supply additional info if needed)

Egoless programming

Code belongs to the team, and members are encouraged to find faults

Relocation

Code can sit at different places in address space.

Benefits of TDD (4)

Code coverage, regression testing, simplified debugging and system documentation

Test unit

Code that tests target. Usually one or more test module/class. In oo programs: target frequently one class.

Implementation Phase

Coding Unit testing Integration Acceptance testing Deploy to production environment

Requirements specification

Collating requirements into a requirements document

Give an example of map reduce.

Collecting a bunch of medical records from a database; computing the average age of all people with diabetes and returning the result.

Define software project management

Collection of activities that ensure the project is delivered on time, on schedule and meet the requirements of the organizations developing and procuring the software

Application suite

Collection of application programs that perform related tasks, sold together.

Composite Pattern

Compare objects into tree structures to represent part-whole hierarchies. Manipulate a single instance of an object as multiple objects.

Measurement in Software Engineering

Computer Science provides the theoretical foundations for building software. Engineering focuses on implementing the software in a controlled and scientific way.

What is computer science?

Computer science is the focus on theory and fundamentals of creating software.

Architecture in the large

Concerned with the architecture of complex enterprise systems that include other systems, programs, and program components. These enterprise systems are distributed over different computers, which may be owned and managed by different companies

Architecture in the small

Concerned with the architecture of individual programs. At this level, we are concerned with the way that an individual program is decomposed into components.

Invariants

Conditions that do not vary. "Design milespots" in your code.

Release components (5)

Configuration files, data files, installation program, documentation and packaging

Which Unified Process phase are Use Cases used to derive a suite of acceptance tests that are executed prior to the next phase?

Construction

Which Unified Process phase are integration activities executed in?

Construction

Which Unified Process phase are unit tests created in?

Construction

Which Unified Process phase completes analysis and design models that were started during the elaboration phase?

Construction

Which Unified Process phase uses the architectural model as input to develop the software components that will make each use case operational?

Construction

Object files

Contain conde for a program fragment (module). Machine code, constants, size of static data segments.

Describe the Thread class.

Contains a non-static start() method to make thread ready. Contains a non-static run() method to run the computation stored in the thread.

Describe the Runnable interface.

Contains a single run() method. "Runnable" interface is used to avoid the need to inherit - favouring composition over inheritance. The "Runnable" interface should be implemented by any class whose instances are intended to be executed by a thread.

______________ models show how a system that is being modeled is positioned in an environment with other systems and processes.

Context

Describe the Continuous Integration cycle and explain the rationale behind it.

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository frequently (at least once each day). When embarking on a change, a developer pulls an up-to-date copy of the codebase from the shared repository. As she works on her local changes, other developers have likely pushed to the shared, remote repository. So before pushing her local changes, she must again pull the most up-to-date version of the code from the repository. After doing so, she runs a local build and if the build is successful, she should immediately push to shared repository. Without pulling and pushing frequently, merging changes introduced by several developers into one remote repository, will be very difficult, if not impossible. CI allows developers to avoid last-minute chaos at release dates, when everyone tries to check in their slightly incompatible versions

Optimizing maturity

Continuous process development. Statistics used, and process is better every time

Static analysis

Control flow analysis and data flow analysis • Provide objective data, eg, for code reviews, project management, end of project statistics • Extensively used for compiler optimization and software engineering Examples of errors that can be found: • Unreachable statements • Variables used before initialization • Variables declared but never used • Possible array bound violations Extensive tool support for deriving metrics from source code • e.g. up to 300 source code metrics • Code construct counts, Complexity metrics, File metrics

When an Incremental Model is used the first increment is often a what?

Core Product

What is the difference between coupling and cohesion?

Coupling refers to how much classes depend on one another within the codebase. We should aim for low coupling between classes. Cohesion refers to the degree to which elements in a module logically belong together. We should aim for high cohesion within classes, packages and full software products.

Model-driven engineering

Creating models, rather than software, programs are then generated from the models

Rapid prototyping

Creating working models that are equivalent to some small part of the product.

Singleton Pattern

Creational Restricts instantiation of a class to one object.

Types of design patterns

Creational Structural Behavioural

Singleton

Creational design pattern Intent: ensure a class has only one instance, and provide a global point of access to it. Pros: Easy instance management Cons: It acts like a global variable and shares all the problems associated with them Breaks SRP, as the objects now has to control it's own lifetime cycle

Crystal

Crystals of Different Hardness 1. Clear: 6 co-located members (Sponsor, Senior Designer, Programmer) 2. Yellow 3. Orange: 21-40 team members, more emphasis on testing 4. Orange Web 5. Red 6. Maroon: 81+ Members -Teams define own coding standards

Agile principles (5)

Customer involvement, incremental delivery, people not process, embracing changes and maintaining simplicity

Challenges in requirements gathering (4)

Customers don't know what they want, requirements change and customers don't clearly portray their requirements

Sprints - definitions (Scrum method)

Cycles of workload. Within each sprint you have: Initiation, planning, execution & monitoring and closure.

What is cyclomatic complexity? What does it measure?

Cyclomatic complexity counts edges and nodes in the control flow graph of a program. Higher cyclomatic complexity means more branching statements and a higher number of possible execution paths of a program. This requires more unit tests to obtain complete code coverage and also makes code harder to understand and hence, harder to debug.

Software specification?

Define the software to be produced and the constraints

Quality Plan

Defines how project will deliver the agreed upon level of quality

Object-orientated design (5)

Defining the context and uses of the system, designing system architecture, identifying principle objects, developing design models and specifying object interfaces

What is Interface Design?

Defining the interfaces between system components.

Software project management

Deliver software on time, subject to budget, of adequate quality and in accordance to requirements

Testing types

Desk-checking Unit testing Integration testing Product testing Acceptance testing

Sprint Backlog

Details the work items that details work items team members have agreed to complete during a sprint.

Requirements workflow

Determine client needs, constraints

System testing

Determine whether a system meets requirements, Focus on use and interaction of system functionalities. Should be carried out by a group independent of the code developers.

Inception phase

Determines whether it is worthwhile to develop the software product

Host-target development

Developing software for computers other than what it was developed on

Define Heterogeneity

Developing techniques for building software that can cope with heterogeneous platforms and execution environments

Define Trust

Developing techniques that demonstrate that software can be trusted by its users

Define Deliverability

Developing techniques that lead to faster delivery of software

Waterfall, Incremental and Spiral are all what?

Development Process Models

Classical maintenance

Development before installation, post-delivery maintenance after installation.

Stages of testing (3)

Development testing, release testing and user testing

Software Engineering

Discipline aiming to produce fault-free software. Ideally on time, on budget, easy to modify and maintain, and meeting the client's needs.

Why is it important to use few and better people on a project

Doing so reduces the communications overhead on a project by getting the job done with fewer, more productive performers

Why should you maintain a commitment to improve the process

Doing so verifies that the particular form of the principles adopted by an organization is indeed the best match for its particular needs and priorities.

Sequence Diagram

Show the sequence of interactions that take place during a particular use case

Bottom up integration

Drivers are replaced one at a time. Worker modules are grouped into build and integrated.

Dromey's Quality model(1995):

Dromey's Quality model(1995): Dromey has built a quality evaluation framework that analyzes the quality of software components through the measurement of tangible quality properties. Each artifact produced in the software life-cycle can be associated with a quality evaluation model. Dromey gives the following examples of what he means by software components for each of the different models: • Variables, functions, statements, etc. can be considered components of the Implementation model; • A requirement can be considered a component of the requirements model; • A module can be considered a component of the design model; According to Dromey, all these components possess intrinsic properties that can be classified into four categories: • Correctness : Evaluates if some basic principles are violated. • Internal : Measure how well a component has been deployed according to its intended use. • Contextual : Deals with the external influences by and on the use of a component. • Descriptive : Measure the descriptiveness of a component (for example, does it have a meaningful name.) Dromey proposes a product based quality model that recognizes that quality evaluation differs for each product and that a more dynamic idea for modeling the process is needed to be wide enough to apply for different systems. Dromey is focusing on the relationship between the quality attributes and the sub-attributes, as well as attempting to connect software product properties with software quality attributes. This quality model presented by R. Geoff Dromey is most recent model which is also similar to McCall's and Boehm's model. Dromey proposes a product based quality model that recognizes that quality evaluation differs for each product and that a more dynamic idea for modeling the process is needed to be wide enough to apply for different systems. Dromey focuses on the relationship between the quality attributes and the sub-attributes, as well as attempts to connect software product properties with software quality attributes. 1) Product properties that influence quality. 2) High level quality attributes. 3) Means of linking the product properties with the quality attributes. Dromey's Quality Model is further structured around a 5 step process: 1) Choose a set of high-level quality attributes necessary for the evaluation. 2) List components/modules in your system. 3) Identify quality-carrying properties for the components/modules (qualities of the component that have the most impact on the product properties from the list above). 4) Determine how each property effects the quality attributes. 5) Evaluate the model and identify weaknesses.

Test drivers

Dummy environment for test class used primarily in bottom up integration.

Test stub

Dummy methods of classes used, but not available. Primarily used in top down integration.

When are system models used?

During the requirements engineering phase to help explain the proposed requirements to other stakeholders.

Behavioral things

Dynamic parts of UML models. Interaction, state machine, activity.

Increments

Each increment is a small version of the waterfall life cycle

Why is it important to maintain clear accountability for results

Each individual on the project team should have a clear statement of the results for which he or his group are accountable, and a clear understanding that his future rewards depend on how well he does in producing those results.

Use case modelling

Each use case represents a discrete task that involves external interaction with a system. Actors in a use case may be people or other systems.

Benefits of information hiding

Easier to maintain (changes only needed in one place) Development is more intuitive More independent components are more reusable

Code-and-fix strengths

Easy Generates code quickly

Was ist eine Framework?

Ein Framework (engl. für Gerüst, Rahmen) ist gemäss macOS eine Sammlung von Library Versionen. Nebst dem Aufrufen von Methoden (gleich wie Library) kann ein Framework auch informieren. Es kann auf Ereignisse (Events) registriert werden und gibt so eine Art Skelett vor. Dabei wird das Hollywood Prinzip angewendet (Don't call us, we will call you). Das Framework beeinflusst somit die Struktur der eigentlichen Anwendung. Bekannte Frameworks: Qt, .Net, EswRobot (Roboter in ProgC Praktika)

Which Unified Process phase encompasses both planning and modeling activities of the generic process model?

Elaboration

Which Unified Process phase expands the architectural representation to include the use case model, the analysis model, the design model, the implementation model, and the deployment mode?

Elaboration

Which Unified Process phase sometimes creates an executable architectural baseline that represents a first cut executable system?

Elaboration

What are the main steps for Requirements Engineering

Elicitation Specification Validation Negotiation

Inception testing

Ensure the requirements are correct

A rectangle in a ER diagram signifies

Entitiy type

What does an ER diagram consist of

Entity Entity Types Attribute values Attribute Relationship

What are the classic modeling techniques

Entity relationship Modeling Finite state machines Data flow diagrams CRC cards

Ist bei diesem Doxygen Kommentar alles korrekt? Wenn nein, begründen Sie ihre Antwort. /********************************************//** * ... text ***********************************************/

Er ist richtig.

Projektdurchführung

Erfassung und Verfeinerung der Anforderungen - Systementwurf - Implementierung, Verifikation und Test - Test und Integration - Erprobung und Übergabe

Bug

Error or mistake in a program.

Vorteile von Code-Dokumentation

Erzeugung der Dokumentation kann leicht automatisiert werden. -> Dokumentation bleibt aktuell • Gewisse Informationen, wie z.B. Funktionsköpfe, werden direkt aus dem Programmcode entnommen. Dadurch, dass Beschreibungen und Source-Code unmittelbar nebeneinander im Source- Code- Dokument vorkommen, ist die Wahrscheinlichkeit gross, dass Programmcode und Beschreibung übereinstimmen. -> Dokumentation bleibt konsistent • Vor allem geeignet zur API-Dokumentation von Klassen bei der Objektorientierten Programmierung. • Hinweis auf gewisse nicht dokumentierte Codestellen (z.B. Parameter) leichter. -> Dokumentation ist vollständig

Requirements engineering

Establishing customer requirements and the constraints of the system

Professional societies and institutions have an important role to play in setting:

Ethical Standards

Class Composition

Even more specific relationship. "consists-of relationship" or "contains relationship". The part cannot exist independent of the whole. Filled diamond.

Risk

Event that may occur that would impact the project negatively

Single Responsibility Principle

Every class should have a single responsibility. There should never be more than one reason for a class to change.

Types of software change (3)

Evolution, servicing and phase-out

Which Process Model produces an increasing more complete version of the software with each iteration?

Evolutionary Process Model

Product Backlog

Evolves over the course of a project to list every possible project requirement

Software inspections

Examining the system to discover defects

Commenting things

Explanatory parts of UML. Note.

Structural patterns

Facade Proxy Adapter Composite

Scrum Master

Facilities meetings and ensures team stays on track

Factory Pattern.

Factory Pattern. The Factory Pattern provides one or more static factory methods used to create objects of a particular type. Factory methods replace constructors. Factory methods are useful in situations where a class cannot anticipate the exact implementation of objects that it must create. So we specify the factory method in an interface and the returned object is also an interface type. Lots of abstraction - good. The classes that implement the factory interface then specify the exact implementations of the objects created. Examples: public interface IAccountFactory { AccountBase createAccount(AccountType type); } "AccountBase" is an abstract class from which all concrete accounts ("GoldAccount", "BronzeAccount", etc...) inherit.

List the 3 creational patterns studied.

Factory pattern, builder pattern, singleton pattern.

Fault

Failure

Neglect of Measurement in Software Engineering

Failure to set measurable targets for our software products. ("Projects without clear goals will not achieve their goals clearly," Tom Gilb) Failure to understand and quantify the component costs of software projects. Failure to quantify or predict the quality of produced products. Guided by anecdotal evidence in deciding to try new approaches instead of doing carefully controlled studies

True or False: Actors are individuals not roles

False: Actors are roles not individuals

True or False: The collection of use cases characterizes some externally observable behavior

False: The collection of use cases characterizes all externally observable behavior

True or False: The product is always an actor

False: The product is never an actor

Types of maintenance (3)

Fault repairs, environmental adaption and functionality addition

What are the phases of DSDM

Feasibility study /Business study Functional model Iteration Design /Build Iteration Implementation

Hauptunterschied zw. SW-Projekt und anderen Entwicklungsprojekten?

Fehler werden oftmals NICHT während der Produktion oder Durchführung erkannt.

Design workflow

Figure out how the product will fulfill refined requirements. Keep detailed records of all decisions

Transition deliverables

Final versions of all artifacts Final versions of all manuals

Requirements Phase

Find the client requirements Understand what the user needs

Describe the TDD cycle and explain the rationale behind it.

First we must describe the relationship between unit testing and refactoring. Unit testing is the discipline of writing code that tests other code. As each test runs, it reports the test's success/failure with a simple true/false indicator. As its name suggests, a unit test tests a single unit (component, method, ...) of the source code. Unit tests act as a specification for the code. Refactoring is the process of changing code to improve its design but still maintaining correct behaviour. It is typically performed incrementally. The freedom to refactor with impunity is only made possible through unit testing. By writing unit tests first and refactoring afterwards, we can identify what changes to the code caused the test to move from a passing to failing state or vice versa. For this reason the TDD cycle mandates that we write unit tests first; write the minimum amount of code required to make the unit test pass and then refactor the code to improve its design. In keeping with Rainsberger's four elements, we typically refactor to minimise duplication and maximise clarity of the code, and also introduce greater abstraction to ensure that the code has fewer elements.

What are the main disadvantages of the Waterfall model?

First, clients may not be able to clearly articulate their requirements until they see working software. With the waterfall model, changing requirements will require the designers to restart the development process, leading to a delayed product and increased costs. Second, designers will not be able to anticipate future difficulties when designing a new software product or feature, in which case it is better to revise the design during the development process, rather than persist with a design does not account for newly discovered constraints, requirements and problems.

What are the key aspects of the RAD Model

Fixed time frames within which activities are done Time frame is decided upon first The use of Joint Requirements Planning (JRP) and Joint Application Design (JAD) Requirements prioritization through a triage Development in a SWAT team

Computer Science

Focusing on computer hardware and programming languages

What are Ca and Ce for the classes in the Strategy pattern?

For 1 interface and 2 implementations. For interface: Ca = 2, Ce = 0. For implementations: Ca = 0, Ce = 1

What are three different ways to describe waterfall model

Heavyweight Model (Process oriented) Plan Driven Model (Must have Plan) Document Driven Model (Each phase produces documentation)

3 types of group organization

For: 1. small projects - informal 2. large projects - hierarchical 3. agile projects - informal

Assertions

Force terminate program. For programmers errors that don't depend on the end user. assert() macro. x = 1; assert (x > 0 ); x++; assert( x > 1 );

Design patterns

Four elements describe the pattern: The name The purpose; what problem is solves How to solve the problem; the solution The constraints we have to consider in our solution We want them for shared knowledge and shared vocab

Software quality management (3)

Framework, processes and planning

Defined maturity

Fully documented, continually improving, reviews are used and CASE environments used

Read me file

Help file containing latest updates and information about using a system.

Distributed Version Control

Git, Mercurial, Bazaar, Darcs

UML

Go look it up bruh

Problems with the classical paradigm

Good for small systems Hard to maintain Deals with data or operation, but not both

Spiral model benefits (2)

Good risk management and good monitoring of project

Netzplantechnik: Definition & Methoden

Grafische Darstellung der Zeitpunkte f¨ur die Durchf¨uhrung von T¨atigkeiten Logische Beziehungen und zeitliche Anordnung zwischen den Arbeitspaketen wird dargestellt. Wie lange wird das Projekt (mindestens) dauern? Welche kritischen Arbeitspakete k¨onnen das gesamte Projekt verzögern? • Critical Path Method • Program Evaluation Review Technique (PERT) • Meta Potential Method (MPM)

Wie wird die Kombination von White- und Blackbox-Testing genannt?

Greybox-Testing

Democratic team

Group of egoless programmers working together

Encapsulation

Group together data (variables) and methods (functions) in one unit. Also, all variables should be hidden (private) and only accessible by the methods in the class.

Team development

Hardware is getting better and cheaper, so software is getting more and more complex.

Firewall

Hardware or software that controls access to a network.

Cross-platform

Hardware or software that works on multiple operating systems.

Context Diagram

Has only one process node

Chief programmer

Highly skilled, completely in charge and responsible for everything

Programming secretary

Highly skilled, maintains product library (versions, test data, etc)

as a series of functional parts

How are project outcomes delivered on a project using agile project management methods?

Reusability

How usable a component is in related applications without modification

Efficiency

How well a component satisfies speed or storage requirements

Robustness

How well the component will recover from anomalous events

Give the equation for the instability metric.

I = Ce / (Ce + Ca). Higher instability = More dependencies. Lower instability = More dependents.

Test case

Id, title, conditions, steps and expected results

Compatibility

Idea that two systems work together and can share hardware, software, or data.

What is the process for making decisions when discussing Architecture styles

Identify sub problems Each issue gets different solutions Choose solution for each sub problem, then integrate into final solution

What architectural style follows a publisher/subscriber event driven model

Implicit Invocation

What architectural style requires event handlers and uses signal and react to events

Implicit Invocation

What are the four types of design decisions

Implicit undocumented Explicit Undocumented Explicit, Explicitly Undocumented Explicit Documented

What is meant by group cohesiveness?

In a cohesive group, members consider the group to be more important than any individual in it.

Which Unified Process phase identifies resources, assesses major risks, defines a schedule, and establishes a basis for the phases that are to come?

Inception

Phases of the unified process

Inception Elaboration Construction Transition

Availability

Include redundant components and mechanisms for fault tolerance

Risk Management

Increasing the probability of a positive outcome by mitigating risk when possible

Which Process Model would be best if there is a need to provide a limited set of software functionality to users quickly and then refine and expand on that functionality?

Incremental Model

Extreme programming practices (5)

Incremental, small releases, simple design, test-first development and refactoring

How should web systems be built?

Incrementally

Software capability maturity levels

Initial Repeatable Defined Managed Optimizing

Inception phase deliverables

Initial domain Initial business model Initial requirements Preliminary analysis Initial risks list Initial use cases Plan for elaboration phase Initial business case

Construction deliverables

Initial user manual Completed architecture updated risks SPMP

REST Architecture

Inspired from the architecture of the largest distributed application ever: the Web • Stateless requests • Every resource has an individual URI • Uniform interface for all resources (GET, POST, PUT, DELETE) • The structure of a response is not specified

What does IEEE stand for?

Institute of Electrical and Electronic Engineering

Source code

Instructions that make up the software, entered by the programmer using a programming language.

Misuse cases (4)

Interception, interruption, modification and fabrication threats

Menu Driven Interface

Interface that presents a series of pre-defined options to the user.

Test-driven development (TDD)

Interleaving testing and code development. Testing code as it is written

Individual interviews

Interviews with stakeholders

What are elicitation techniques?

Interviews, observation, prototype demonstrations, questionares

Copyright

Law protecting intellectual property from unauthorised copying.

Was ist eine Static Library? Vor- & Nachteile?

Library Inhalt wird komplett zur ausführbaren Applikation hinzugefügt. Der Inhalt der Libra- ry ist Teil der ausführbaren Applikation. + Library kann nicht vergessen gehen - Library wird bei jedem Linken im Speicher abgelegt

End user licence agreement

Licence agreement for software that sets out the users rights and responsibilities.

Operational risk assessment

Life cycle risk, but also with environmental considerations

Extended relationship << >>

Linking an optional use case to a standard (base) use case. Register Course (standard) may have Register for Special Class (extended)

Performance

Localize critical operations and minimize communications

Quality Assurance Manager

Manager that checks the delivery and prevents defects from entering the system. Quality ensurer. (The checker)

Configuration management

Managing a changing software, version tracking etc

Configuration management

Managing changing software systems

Requirements management

Managing the changing requirements during development

quality models

McCall's Quality model (1977) Also called as General Electrics Model. This model was mainly developed for US military to bridge the gap between users and developers. It mainly has 3 major representations for defining and identifying the quality of a software product, namely Product Revision : This identifies quality factors that influence the ability to change the software product. (1) Maintainability : Effort required to locate and fix a fault in the program within its operating environment. (2) Flexibility : The ease of making changes required as dictated by business by changes in the operating environment. (3) Testability : The ease of testing program to ensure that it is error-free and meets its specification, i.e, validating the software requirements. Product Transition : This identifies quality factors that influence the ability to adapt the software to new environments. (1) Portability : The effort required to transfer a program from one environment to another. (2) Re-usability : The ease of reusing software in a different context. (3) Interoperability: The effort required to couple the system to another system. Product Operations : This identifies quality factors that influence the extent to which the software fulfills its specification. (1) Correctness : The extent to which a functionality matches its specification. (2) Reliability : The systems ability not to fail/ the extent to which the system fails. (3) Efficiency : Further categorized into execution efficiency and storage efficiency and generally means the usage of system resources, example: processor time, memory. (4) Integrity : The protection of program from unauthorized access. (5) Usability : The ease of using software.

Flexibility

Measure of how adaptable to 'reasonable' changes in a component is

Scalability

Measure of the ability to use the component as scope increases

Reliability

Measure of the average amount of time between failures

Why is measurement important?

Measurement is important because of three basic activities. 1) Measurement can help us understand what is happening during development and maintenance 2) Measurement allows us to control what is happening in our projects. (Using baselines, goals, and understanding of relationships we can predict what is likely to happen and make changes to process and productivity to help us meet our goals) 3) Measurement encourages us to improve our processes and products.

What is Measurement?

Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such way as to describe them according to clearly defined rules.

Why is measurement important?

Measurement underpins the welfare of a modern society and touches almost every part of daily life: • Ensuring the safety and effectiveness of healthcare diagnostics and treatments • Measuring the composition, energy value and quantity of gas piped to our homes, or of fuel in our vehicles • Ensuring safe operation of aircraft in flight • Ensuring consistency of international time standards so we can communicate reliably and navigate accurately throughout the world • Quantifying emissions of greenhouse gases to understand and mitigate climate change • Ensuring the security and sustainability of our food supply • Ensuring fairness between buyers and sellers in markets where goods are sold by weight or volume Measurement plays a fundamental part in the innovation process. To develop new products and processes, companies need to measure quantity, quality and performance. To trade successfully, companies utilise a regulatory framework, based upon measurement confidence, ensuring access to global markets that are fair and open and without unnecessary barriers to trade. Supporting this is an established infrastructure of traceable measurement linked seamlessly to the national standards maintained on behalf of the UK. In some industries the need for accurate measurement is critical. For example, companies manufacturing precision engineering components used in aero engines will be working to tight specifications and must be able to measure size, material composition and performance to very accurate levels. For many of us a visit to a hospital may not be desirable, but knowing that the treatment has been appropriately measured throughout its development, trials and final delivery to the patient, is vital to confidence in its application and effectiveness. Measurement provides structure, removes chaos, reduces waste, ensures open and fair markets, supports precision where required and saves lives, money and time -important to structural health,confidence in trade,and setting the time.

Define Aspects

Mechanisms beyond subroutines and inheritance for localizing the expression of a crosscutting concern.

Validation

Meeting customer expectations

Memory leak

Memory gets allocated but not released. Why bad? • Reduces performance due to excessive resource usage • May cause crashes (memory overflow, quota)

Monitoring and Evaluation Methods

Methods for tracking progress of a project, making sure objectives are met

Spiral model

Minimize risks by the repeated use of prototypes and other means

What bass view is concerned with units related by is a submodule

Model (decomposition)

Class Aggregation

More specific kind of relationship. "has-a-relationship" or "is a part of relationship". The part can exist independent of the whole. Empty diamond

What are the advantages modern programming practices

More visibility into the software development process Contributes greatly to getting errors out early Produces much more understandable and maintainable code Makes many other software jobs easier, like integration and testing.

Class Association

Most generic kind of relationship. ie. "instructor <teaches a> class"

Software Depression

Most software is late, wrong, faulty, or over-budget.

Structural things

Mostly static parts of a model. Are called classifiers. Class, interface, collaboration, use case, active class, component, artifact, node

What is motivation balance? How does it change?

Motivation is made up of many elements. It is balanced based on these elements. Factors that change the balance: 1. Personal circumstance 2. External events 3. being a part of group or culture

What does motivation mean?

Motivation means to organise work and work environment in a way that it encourages people to work more efficiently

Strengths of iterative and incremental model

Multiple opportunities to check Checks the architecture early Mitigates risks early Working version at every increment Empirical evidence its effective

Distributed VM

Multiple versions of the same repository

Caveats to the object-oriented paradigm

Must be implemented well in order to be effective Best approach we have now, but it is likely to be replaced by a better paradigm in the future.

What is meant by the term MoSCow

Must have Should have Could have Wont Haves

What is a very important deliverable of the Incremental Model

Must have prioritization of the requirements.

Independent tester

Must learn about the system but will attempt to break it and is driven by quality.

MoSCoW

Must, Should, Could, Won't

Reasons for software change (3)

New requirements, errors and a changing business environment

Green Field Project

New system from scratch

Black Box testing

No knowledge about code internals and relying only on interface spec. Limitations • Specifications are not usually available • Many companies still have only code, there is no other document

Inception implementation

No programming, but sometimes there is a proof-of-concept prototype

Is it possible to assemble an ideal team? Why?

No! Constraints on team selection: 1. budget does not allow highly paid staff 2. people with appropriate experience not available 3. org may want to develop employee skills on a s/w project

Can a group be created flexibly?

No! The flexibility in group composition is LIMITED! Manager works with the best he can with available people.

Levels of Rationale Capture

None Reconstruction Determine the rationale after the fact Capture Save the rationale as decisions are made Integration Database of captured information for queries

Non-Functional Requirement

Not directly concerned about functions a system delivers

Idealized software development

Nothing - Requirements - Analysis - Design - Implementation

UML is officially defined by

Object Management Group (OMG)

OOAD

Object Oriented Analysis and Design

What are some examples of MPP

Object oriented Top Down Structured Programming

What is another name for UML Diagrams

Object oriented modeling

Be able to read, interpret, modify and create UML class diagrams

Objects do not exist in isolation. UML shows these relationships: association, aggregation and composition, generalization, dependency.

Behavioural patterns

Observer Mediator

Ethnography

Observing others to gather requirements

What are the fundamental software engineering activities? (4)

Software specification, software development, software validation and software evolution

What is a Continuous Integration server and why is it important in the cycle?

On larger projects with many frequent commits, it is usually difficult to run a full build locally on every commit. In order to ensure that pushed code still builds and runs successfully, a secondary check (perhaps using a larger test suite) can be run by a remote, Continuous Integration (CI) server.

When would you use Extreme Programming

On projects with small teams Expert Programming skills are not needed When all parties can work side by side effectively

Software inspection vs. software testing

One is static, the other is dynamic

Sprint

One single iteration in Scrum

Polymorphism

Polymorphism means taking different forms In Java, this refers to the fact that a subclass can always be used instead of a parent class. e.g. You can use a Sedan object, even if a Car is required: Car c = new Sedan("Ford");

Business Software Alliance

Organisation that works to reduce illegal copying of software.

Grouping things

Organizational parts of UML. Package.

Layered Architecture pattern description

Organizes the system into layers with related functionality associated with each layer.

Layered Architecture

Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it so the lowest-level layers represent core services that are likely to be used throughout the system

Software requirements document

Outlines what the system should do, not how to do it

Shareholder

Owns shares in a company

Spiralmodell

Philosophie Erstellung von kontinuierlichen Prototypen und kontinuierliche Prüfung des System. Dies erlaubt kontinuierliche Lernkurven. Zudem werden die Ergebnisse der Zyklen wie Anforderungen oder Architekturen bei jeder Iteration verfeinert. Das weitere Vorgehen wird im 3. Schritt neu gewählt. Es ist kein Vorgehensmodell an sich, denn es sollte durch andere Vorgehensmodelle ausgestaltet werden. Im 4. Schritt kann allfällig eine Aufspaltung in Teilprojekte geschehen. Vorteil: - Benötigt weniger Erfahrung als Wasserfallmodell, aufgrund der zugelassenen Lernkurven - Risiken können frühzeitig erkannt werden

Wasserfall-Modell: Philosophie, Vorteile, Nachteile?

Philosophie: Aufteilung anhand Schwerpunkten der Entwicklungstätigkeiten Vorteile: - Einfache, klare Struktur - Weitgehende Übereinstimmung des Artefakt- und Prozessmodells -Vereinfacht scheinbar Planung, Organisation und Steuerung Nachteile: - Planungs- und Entwicklungsfehler werden spät bemerkt - Risiken werden (zu) spät erkannt - Umplanungen stehen im Gegensatz zur Philosophie und sind kostspielig - Eine Rückkopplung aus der Implementationsphase findet sehr spät statt - Enorme Erfahrung ist/wäre notwendig Iterativer Wasserfall: Kaskade; Erweiterung des Wasserfalls um Korrektur

FDD

Plan, Manage, Track 1. Develop Overall Model 2. Build a features list 3. Plan by feature 4. Design by feature 5. Build by Feature

Waterfall model

Plan-driven, distinct phases

The PSP model defines which framework activities?

Planning High-Level Design High-Level Design Review Development Postmortem

Agile processes

Planning is incremental

Project management activities (3)

Planning, risk management and people management

Protection (3)

Platform-level, application-level and record-level protections

Was machen Tools wie make?

Plattformspezifisches Tool, welches die makefiles von qmake verarbeitet (kompilieren, etc.)

<<includes>> ------------>

Points to another use case or use case fragment that is commonly required by other use cases

<<extends>> ------------>

Points to optional functionality that may be used to extend the use case either with added benefit or to cover an alternative scenario

Security risk management (3)

Preliminary, life cycle and operational risk assessments

The simultaneous update problem

Prevent file clobbering from two developers updating the same file at the same time.

The double maintenance problem

Prevent the occurrence of multiple copies of the same file that must be independently updated.

Advantages and Disadvantages of Client Server

Pro: servers can be distributed across a network. Cons: Each service is a single point of failure so susceptible to denial of service attacks or server failure. Performance may be unpredictable because it depends on the network as well as the system. May be management problems if servers are owned by different organizations.

Fragmentation

Problem that occurs as files are saved on non-contiguous sectors on a disk.

What are the six types of connectors

Procedure Data Flow Implicit Invocation Message Passing Shared Data Instantiation

This allows a software organization to build an automated model of the process framework, tasks sets, and umbrella activities.

Process Technology

Transaction Processing System (TPS)

Process user request for information from a database or requests to update the database. Users make asynchronous requests for service which are then processed by a transaction manager.

Plan-driven processes

Processes where everything is planned for in advance

Construction phase

Produce the operational-quality version of the software product

Define Throwaway Prototyping Model

Product prototypes is thrown away after development

Non-functional classifications (3)

Product, organizational and external

Which Unified Process phase coincides with the deployment activity of the generic framework?

Production

Which Unified Process phase does software and operating environment monitoring occur in?

Production

The TSP defines which framework activities?

Project Launch High Level Design Implementation Integration and Test Postmortem

Risk types (3)

Project risks, product risks and business risks

Projektdefinition (5)

Projekt strukturieren und Projektteam organisieren 2. Definition eines Projektmanagementverfahrens und Erstellen eines Projekthandbuchs 3. Definition eines QS-Verfahrens und Erstellen eines QS-Handbuch 4. Aufbau einer Projektinfrastruktur 5. Projekt planen bzw. Erstellen eines Projektplan

Advantages and Disadvantages of layered architecture pattern

Pros: Allows replacement of entire layers so long as the interface is maintained. Redundant facilities (e.g., authentication) can be provided in each layer to increase the dependability of the system. Cons: In practice, providing a clean separation between layers is often difficult and a high-level layer may have to interact directly with lower-level layers rather than through the layer immediately below it. Performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer.

Advantages and disadvantages of Repository Pattern

Pros: Components can be independent Changes made by one component can be propagated to all components All data can be managed consistently Cons: The repository is a single point of failure so problems in the repository affect the whole system. May be inefficiencies in organizing all communication through the repository. Distributing the repository across several computers may be difficult.

Advantages and Disadvantages of Pipe and Filter

Pros: Easy to understand and supports transformation reuse. Workflow style matches the structure of many business processes. Evolution by adding transformations is straightforward. Can be implemented as either a sequential or concurrent system. Cons: The format for data transfer has to be agreed upon between communicating transformations. Each transformation must parse its input and unparse its output to the agreed form. This increases system overhead and may mean that it is impossible to reuse functional transformations that use incompatible data structures.

Architectural design

Protecting assets and minimizing the effectiveness of attacks

The Spiral Model uses this as a risk reduction mechanism.

Prototyping

Which paradigm is best when your customer has a legitimate need but is clueless about the details?

Prototyping

Why do we usually put messages instead of tasks on a queue?

Putting messages rather than tasks on the queue allows us to implement any type of consumer - it doesn't have to be a thread and we can write it separately from the producer.

Good Software

Quality of a.)product, b.)process and c.)product in the context of the business

When Should RAD be used

RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time, and resource cost is not a priority

Rational Unified Process (RUP)

RUP wurde von IBM Rational erfunden und wird kommerziell vertrieben. Es handelt sich um ein objektorientiertes, aktivit¨atsgetriebenes Vorgehensmodell, welches stark auf UML ausge- richtet ist. Grundprinzipien: - Anwendungsfallgetrieben -Die Architektur steht im Zentrum der Planung

Incremental benefits (3)

Rapid, feedback and the cost of changing requirements is less

What does RUP stand for?

Rational Unified Process

Rationale Management Steps

Rationale: motivation behind a decision Issue: what problem is being solved? Alternatives: what are all the ways the problem can be solved? Criteria: by what should alternatives be judged? Argumentation: discussion of the trade-offs Decision

Refactoring

Redesign of a program that has already been implemented to improve performance

The first goal of software engineering

Reduce maintenance cost.

Was enthält die Testspezifikation / das Testprotokoll?

Redundanz vermeiden; Möglichst in Code integrieren oder/und automatisieren Elemente: Test-Spezifikation (Test-Code) Test-Protokoll: Wird typischerweise von Test-Frameworks erstellt Test-Dokumentation (z.B. mit Hilfe von Doxygen)

Platform

Refers to a particular combination of hardware and operating system.

Elaboration phase

Refine initial requirements, architecture, business case, risks, SPMP

Serial number

Registration number needed during software installation, used to reduce illegal copies.

Regression test

Regression test = run tests, compare output to same test on previous code version • Ex: store previous log output, do „diff‟ • Advantage: easy automatic testing Limitations • Finds only deviations, cannot judge on error • Can only find newly introduced deviations • Only reasonable for fully automated tests

Non-Functional Requirement

Relate to quality attributes (reliability, testability, efficiency, usability, etc.)

A diamond in an ER diagram signifies

Relationship

Requirements engineering process (4)

Requirements elicitation, requirements analysis, requirements validation and requirements management

Requirements verification

Requirements should be verifiable

Functional requirements

Requirements that describe the functionality of a system

Configuration Items (Examples)

Requirements: TLR, Use Cases, SRS, analysis documents Design: Architecture, Class Design, Low Level Design Code: Source Code and Object Code Other: Test Plan, Test Cases, Deployment Plan, User Manual, Metrics Most people associate CODE with Configuration Management.

What architectural style holds a rich data structure where data is manipulated by multiple clients

Respository

Disaster Recovery

Retaining older versions of an application in case a disaster wipes out newer versions.

Implementation issues (3)

Reuse, configuration management and host-target development

Reuse

Reusing of existing software

Local Version Control

Revision Control System

Software reengineering

Rewriting a legacy system without changing it's functionality

Describe rigidity, fragility, immobility with respect to source code.

Rigidity - When code is difficult to change. Fragility - When making small changes to the code, other parts break unexpectedly. Immobility - When components of the code cannot be easily reused in other applications. For example, in the Template Method pattern, subclasses cannot be reused without also carrying along their abstract superclass. Code that is has one of the three properties often tends to have the other properties as well.

Life Cycle risk assessment

Risk assessment taken place during as software is developed

Was sind die Vorteile wenn die Dokumentation direkt im Code geschrieben wird? Nennen Sie einen.

Schneller Zugriff. Bei einer Änderung bemerkt man eher, dass man auch die Dokumentation anpassen sollte und sorgt damit für Vollständigkeit und eine gewisse Konstanz

Agile Methods

Scrum Kanban Xtreme Programming DSDM (Dynamic Software Development Method) Feature Driven Development (FDD)

Member-Funktionen die als Slot genutzt werden, müssen in der Header-Datei unter dem Begriff slots: angegeben werden.

Stimmt nicht.

Was ist eine Shared / Dynamic Library? Vor- & Nachteile?

Shared/Dynamic Libraries werden zur Laufzeit des Programms geladen. Die kann während dem Aufstarten oder irgendwann zur Laufzeit (load/unload) erfolgen. Typischerweise werden die Libraries während dem Aufstarten geladen. Dies bedingt, das die Library schon während dem Linkvorgang bekannt gemacht wird. + Library wird nur einmal gespeichert für mehrere Applikationen - Applikation kann nicht gestartet werden, falls die Library nicht gefunden wird.

Elements of a computer-based system

Software Hardware People Database Documentation Procedures Systems: A hierarchy of macro-elements

SPMP

Software Project Management Plan

What is a Embedded Control System?

Software control systems that control and manage hardware devices.

What are Computer-Aided Software Engineering Tools (CASE)?

Software development tools that support software engineering process activities.

What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production.

Define Software Engineering

Software engineering is an engineering discipline which is concerned with all aspects of software production

In the Software Engineering Code of Ethics what is the Management principle?

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

In the Software Engineering Code of Ethics what is the Public principle?

Software engineers shall act consistently with the public interest.

In the Software Engineering Code of Ethics what is Client and the Employer principle?

Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

In the Software Engineering Code of Ethics what is the Profession principle?

Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

In the Software Engineering Code of Ethics what is the Colleagues principle?

Software engineers shall be fair to and supportive of their colleagues.

In the Software Engineering Code of Ethics what is the Product principle?

Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

In the Software Engineering Code of Ethics what is the Judgment principle?

Software engineers shall maintain integrity and reputation of the profession consistent with the public interest.

In the Software Engineering Code of Ethics what is the Self principle?

Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Software Crisis

Software is very often faulty, compared to other disciplines. Even when delivered, it is often late, over budget or not meeting requirements.

Concurrent licence

Software licence that allows a specific number of copies to be used at one time.

Multi-user licence

Software licence that allows a specific number of copies to be used at one time.

Site licence

Software licence that allows an organisation to use software on an unlimited number of computers.

Single-user licence

Software licence that allows the use of only a single copy on a single computer.

In the four essential characteristics of professional software what is Acceptability?

Software must be acceptable to the type of users for which it is defined. It must be: Understandable, Usable and Compatible with other systems they may use.

Open source software

Software that is developed by usually-unpaid individuals on a volunteer basis, where the source code is visible and it is provided free of cost.

Commercial of-the-shelf software (COTS)

Software that is purchased and is immediately ready for implementation; developed to suit a wide range of users and needs.

Operating system

Software that manages the computer system and controls the hardware.

Public domain

Software to which the author has waived all rights.

Utility software

Software used to perform maintenance jobs such as defragmenting disks.

Application software

Software which allows users to produce work, such as documents and presentations.

Shareware

Software which is free to use initially, but which must be pay for if use continues.

Commercial software

Software which is sold for profit.

Free and open source software

Software whose source code is freely available and can be changed and distributed.

Closed source

Software whose source code is not publicly available.

How is the starting point represented in state transition diagram

Solid Bubble

Data stimuli

Some data arrives that has to be processed by the system.

Event Stimuli

Some event happens that triggers system processing. Events may have associated data, although this is not always the case.

Wizard向导

Step by step help system to guide a user through a task.

Alle Qt Widgets müssen immer auf dem Heap angelegt werden.

Stimmt nicht.

Die veröffentlichten Statistiken über SW-Projekte, der sogenannte Chaos-Report der Standish Group beruht auf klaren Grundlagen.

Stimmt nicht.

Scope of testing

Testing can show the presence of errors, but cannot prove the absence of errors

Backup

Spare copy of data to be used in the event of an emergency.

In a class diagram as class or a relationship is denoted by what

Specialized lines that range from associations, to generalizations to inheritance and dependancies

SMART

Specific, Measurable, Achievable, Relevant, Time-bound

Advantages of explicit architecture

Stakeholder communication: Architecture may be used as focus of discussion by system stakeholders. System Analysis: Means that analysis of whether the system can meet its non-functional requirements is possible. Lager-Scale reuse: The architecture may be reusable across a range of system.

Problems of Requirements Analysis

Stakeholders don't know what they really want. Stakeholders express requirements in their own terms. Different stakeholders may have conflicting requirements. Organisational and political factors may influence the system requirements. The requirements change during the analysis process. New stakeholders may emerge and the business environment may change.

What are CRC card

Standard index card that has been divided into three sections

Quality

Standard of something as measured against a predefined set of standards

_____________diagrams are used to model a system's behavior in response to internal or external events.

State

Functional Requirement

Statement about a service a system must provide

Requirement

Statement about what a system must do

User Requirements

Statements in natural language and diagrams of the system services and operational constraints. Written for customers, so it must use their language and mental model. Understandable for users who don't have detailed technical knowledge. UML is your friend.

User requirements

Statements of the services systems provide and its operational constraints, written for customers

Welche 2 Library Typen gibt es?

Static Libraries und Shared Libraries

Rational Unified Process (RUP)

Static and dynamic perspectives in a single diagram. Goal is on high quality products that the customer really wants.

What is Architectural Design?

System design where you identify the overall structure of the system.

Integration and configuration

System is assembled from existing components. May be plan-driven or agile

Integration and configuration weaknesses (2)

System may not meet all the needs and there is a loss of control from reused system elements

Command line interface

System the user controls by typing in commands.

Graphical User Interface

System the user controls using a mouse to click on icons, buttons, and windows.

Cloud computing

System whereby application software and data are stored on a remote Internet server.

Safety critical system

System whose failure could result in injury or loss of life.

What is a System of Systems?

Systems that are composed of a number of other software systems.

What is a System for Modeling and Simulation?

Systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.

What is an Entertainment System?

Systems that are primarily for personal use and which are intended to entertain the user.

Spiral weaknesses (3)

Takes a long time. Basically lots of work and high costs.

What is Component Design?

Taking each system component and design how it will operation.

Overwrite Safety

Team members can safely work on CIs simultaneously, and changes do not overwrite each other

Scrum team -(scrum team)

Team who are responsible for delivering the product. Are self organizing and cross functional

Risks types (5)

Tech, people, organizational, requirements and estimation risks

Major risk categories

Technical risks Not getting requirements right Not getting architecture right

Project

Temporary en-devour to create a new product, service or result

Integration testing

Test interaction among units.

Test case

Test of an assertion ("design promise") or particular feature.

Release testing

Testing a particular release, mostly black-box and validation testing

Verification

Testing at the end of each phase

Validation

Testing before handing off to client

Builder Pattern.

The Builder Pattern is used when we want to separate the construction of a complex object from its representation. The Builder interface is a fluent interface and in all implementations, the constructor should be declared private. Examples: - Creating a "Form" object that requires the candidate's name, address, phone number, age, etc...

Describe the Command pattern. Give an example of where it might be used.

The Command Pattern consists of a "Queue" class which holds a list of "Command" objects. A client creates a "Command" and adds it to a queue of "Commands" which may be executed later as a batch. See UML.

Which Process Model defines a series of events that will trigger transitions from state to state for each of the software engineering activities?

The Concurrent Model

Which process model is more appropriate for projects where different engineering teams are involved?

The Concurrent Model

Describe the MVC pattern and give some examples of where it might be used. Also, how does it relate to the Observer pattern?

The MVC pattern is used when implementing graphical user interfcaes (GUIs). It separates the underlying business logic of an application (the Model) from its visual representation (the View) and uses a a Controller as an intermediate component. With the MVC pattern, the user sees the View; the View notifies the Controller; the Controller updates the Model and the Model notifies the View. It is important to note that the Model has no dependency on either the View or the Controller. However, the Controller has dependencies on both the View and the Model, and the View has a dependency on the Model. Within the MVC pattern, the View acts as an observer of the model and the controller acts as an observer of the View.

Which process model emphasizes personal measurement of both the work product and the quality of work?

The Personal Process Model

Which process model has all defect metrics recorded on worksheets or templates?

The Personal Process Model

Which process model is a disciplined and metrics based approach to software engineering?

The Personal Process Model

Which process model makes the practitioner responsible for project planning and the quality of all software work products that are developed?

The Personal Process Model

Which process model stresses the need for you to identify errors early and , just as important, to understand the types of errors that you are likely to make?

The Personal Process Model

Describe the Presentation-Abstraction-Control pattern. When might we use this pattern instead of MVC?

The Presentation-Abstraction-Control (PAC) architectural pattern is typically used in implementing hierarchical GUIs. For example, a web app that includes multiple widgets on screen may require multiple MVC instances. PAC coordinates the activities of these MVC instances by passing messages between their controllers.

Proxy.

The Proxy pattern controls access to an object by providing a placeholder or surrogate object. It is typically used to implement caching. The "Proxy" class and the "RemoteService" implement the same interface, but the "Proxy" only delegates to the "RemoteService" if the requested content is not found in its cache.

Singleton Pattern.

The Singleton Pattern ensures that a class has only one instance and provides a global point of access to it. The main problem with the Singleton Pattern is that any class that uses the singleton will be tightly coupled to the implementation of the singleton. Furthermore, accessing the singleton in the middle of code somewhere, creates a hidden/implicit dependency.

If your management demands a fixed-budget development, this process model can be a problem

The Spiral Model

Which Process Model can be adapted to apply throughout the entire life of software?

The Spiral Model

Which Process Model couples the iterative nature of Prototyping with the controlled and systematic aspects of Waterfall?

The Spiral Model

Which Process Model is risk-driven?

The Spiral Model

Why is the Strategy pattern usually preferable to the Template Method pattern?

The Strategy pattern allows the programmer to vary an algorithm's behaviour at runtime whereas the Template Method pattern requires that the algorithm's implementation at compile-time. This is because the superclass in Template Method pattern is dependent on its subclasses.

Describe the Strategy pattern and give some examples where we might use it.

The Strategy pattern simply allows for multiple implementations of the same interface. It allows the programmer to vary an algorithm's behaviour at runtime. Examples: - "View" interface with multiple implementations for multiple views. - "BillingStrategy" interface where prices are determined based on time of day.

Which process model has the objective of facilitating university teaching of industrial-grade team skills

The Team Software Process

Which process model is self directed where engineers track and plan their work, establish goals, and own their processes?

The Team Software Process

Which process model makes use of a wide variety of scripts, forms, and standards to guide work?

The Team Software Process

Which process model strives to accelerate software process improvement by making CMM level 5 behavior normal and expected?

The Team Software Process

What is the term for a use case driven, architecture centric, iterative and incremental software process?

The Unified Process

Reversion

The ability to move back in time to a previous version of a CI

What is Requirements Validation?

The activity of checking the requirements for realism, consistency and completeness.

What is Requirements Specification?

The activity of translation the information gathered through analysis into a document that defines a set of requirements.

Path testing

The method analyzes the control flow graph of a program to find a set of linearly independent paths of execution. The method normally uses McCabe' cyclomatic complexity to determine the number of linearly independent paths and then generates test cases for each path thus obtained.

What do structural models display?

The organization of a system in terms of the components that make up that system and their relationships.

Managed maturity

The organization sets goals, takes measurements, and tries to improve.

Client

The person or group that requests the project

Client server pattern pre and pos

The principal advantage of this model is that servers can be distributed across a network May be management problems if servers are owned by different organizations.

Information Hiding

The private keyword is used to keep all data hidden. But what if I want to access, or to change, the value outside of a class? We define special methods, getters and setters Only define getters and setters if you need them!

Baseline Safety

The process of accepting new or changed CIs for the current version of the developing product (the baseline), and safely storing them in a common repository for easy retrieval.

Stepwise refinement

The process of breaking a problem down into progressively smaller pieces, then starting with the ones that are most important. Response to miller's law.

What is Requirements Elicitation and Analysis?

The process of deriving the system requirements through observation, discussion, and task analysis. May involve system models and prototypes.

System Modeling

The process of developing abstract models of a system, with each model presenting a different view or perspective of that system

System modeling

The process of developing models of a system

Requirements Engineering

The process of eliciting: The services that the customer requires from a system. The constraints under which it operates and is developed.

- describes how risk management activities are funded, managed, performed and evaluated - includes methods and tool specification included or referenced - objectives -scope -resoures - roles and responsibilities -sources of risk relevant criteria for assessing or measuring risks -decision-making criteria - a communication framework -schedule -effectiveness measures

The risk management plan does what?

What do sequence diagrams show?

The sequence of interactions that take place during a particular use case or use case instance.

Generalization

The specialized element (child) builds on the specification of the generalized element (parent)

The most significant factor in determining which software engineering methods and techniques are most important is:

The type of application that is being developed

Describe the Publish-Subscribe pattern and give an example of where it might be used.

This is very closely related to the Observer pattern. "Publisher"s publish topics onto a "Queue", and the Queue then notifies "Subscriber"s about particular state changes. Examples: - News articles published on a website and consumers can subscribe to particular topics.

Rationale Management

Tracking "Why" the systematic tracking of decisions

Release management

Tracking what versions are distributed to customers

_____________ processing systems are interactive systems that allow information in a database to be remotely accessed and modified by a number of users.

Transaction

Assess risk, plan for risk control, control risk

What is the process of risk management?

Which Unified Process phase does beta testing and user feedback occur in?

Transition

Which Unified Process phase does the creation of user manuals, troubleshooting guides, and installation procedures occur in?

Transition

Which Unified Process phase encompasses the latter stages of the generic construction activity and the first part of the generic deployment activity?

Transition

Which Unified Process phase sees the software increment become a stable usable software release?

Transition

Object-oriented paradigm

Treats data and operations together and equally. Uses information hiding

True or False: A use case is an entire, coherent interaction

True

Loop Invariant

True at the beginning of each loop iteration.

Class Invariant

True before and after each method call. Example: Rational class: • denominator > 0 • gcd(num,den) = = 1 All constructors should place their object in a valid state. All methods should leave their object in a valid state.

True

True or false? Agile project management methods have been particularly successful with the development of software and new products.

False

True or false? An agile approach allows the project team members to multi-task by working on several projects at the same time.

True

True or false? An agile project management approach would be effective in situations where the customer is likely to change the scope.

True

True or false? With agile project management methods, teams stay together for the duration.

T or F: Individual components implement the functional system requirements, but the dominant influence on the non-functional system characteristics is the system's architecture.

True!

T or F: When developing a class diagram, objects represent something in the real world.

True!

Variant

Two software objects sharing an important property differing in others.

a condition that is driving an entity toward a desired outcome

What is the strengths of risk management?

Universal Modeling Language

UML is a set of 13 different diagram types that may be used to model software systems. Emerged from work in the 1990s on object-oriented modeling, where similar object-oriented notations were integrated to create the UML.

Use Case Description Template

Use Case number: name Actors: actorList Stakeholders and Needs:stakeholder—needsList....stakeholder—needsList. Preconditions: what is assumed at the start. Postconditions: what is guaranteed at the end. Trigger: the event that starts the use case. Basic Flow:# stepDescription... Extensions:extensionIdentifier condition:extensionIdentifier # stepDescription

Security

Use a layered architecture with critical assets in the inner layers

User stories

User requirements expressed as stories or scenarios and broken down into implementation tasks

Scenario based requirements gathering

Using scenarios to gather requirements

Device drivers

Utility software used by the operating system to communicate with peripheral devices.

Guidelines for safety (4)

Validate inputs, log actions, fail securely and avoid a single point of failure

Requirements validation

Validating and verifying the requirements match what the customer wants and that they are consistent, complete at realistic

Verifikation vs. Validierung

Validierung (Validation) "Are we building the right product?" Überprüft das Software-Produkt, ob es die Anforderungen des Auftraggebers erfüllt. Verifikation (Verification): "Are we building the product right?" Überprüft die Artifacts während der Entwicklung, ob sie ihre Vorgaben erfüllen

Use Case/Actor Verbindung und betrachtetes System im Detail

Verbindung: Kommunikation zwischen der entsprechenden Funktionalität des System und einem Actor System: umschliesst alle Use Cases für ein Produkt -> zeigt die Systemgrenze des betrachteten Systems an

Product testing

Verified that systems work as intended, done by SQA

Function Points - Vorgehensweise?

Voraussetzung: Die Anforderungen müssen bekannt sein (unabhängig vom Detaillierungsgrad) 1. Use-Case Diagramm erstellen: Festlegen der Systemgrenze 2. Identifikation der Datenelemente (ILF, EIF) 3. Identfikation der Transaktionselemente (EI, EO, EQ) 4. Berechnung der Unadjusted Function Points

Which Process Model would be best for a project to change existing software due to government regulations?

Waterfall Model

What is waterfall development?

Waterfall development is a software design process where progression to the next stage only occurs once the current stage has been completed. There are two main disadvantages to this method.

Design Pattern

Way of re-suing abstract knowledge about a software design problem and its solution.

Class Hierarchies

We want to model a boat. It has a brand name, a fuel level, but it cannot drive. We can create an abstract class, Vehicle, from which we can extend for Car and Boat.

It is accepted for what type of software engineering that it is impractical to specify all requirements for such a system in advance?

Web Based Software Engineering

What are web services?

Web services are components that deliver specific functionality and which are accessed over the web.

What is the difference between a Website and a Web App?

Websites are static and offer limited opportunity for user interaction whereas web apps are much more interactive.

Procedures, worksheets, automated tools, databases

What are 4 methods assess or tools of Tailoring considerations?

- a condition that directly produces a loss or consequence - issues can lead to other risks

What are issues or problems with risk management?

accept, transfer, avoid, mitigate

What are the four steps for common control approaches for CRM?

Risk evaluation, Escalation, Risk Tolerance, Communication

What are the four types of Criteria in risk management?

probability, impact, risk exposure, timeframe

What are the four types of Risk measures

- prepare for risk management - perform risk management activities - sustain and improve risk management

What are the steps in the risk management framework?

- assess risk - plan for risk control - control risk

What are the steps involved in performing risk management activities?

- manage risk management assets and work products - evaluate effectiveness of risk management practice - implement improvements to risk management practice

What are the steps involved in sustaining and improving risk management?

Objectives for Software Measurement (Managers)

What does each process cost? How productive is the staff? How good is the code being developed? Will the user be satisfied with the product? How can we improve?

the probability of realizing a gain

What is the opportunity presented when performing risk management?

What is WILT?

Whitespace-Integrated-over-Lines-of-Text. Acts as a heuristic for cyclomatic complexity.

Structural Models

display the organization of a system in terms of the components that make up that system and their relationships.

Client Server Architecture

distributes functionality of the system into services Pros • Servers distributed across a network • Makes effective use of networked systems. May require cheaper hardware • Easy to add new servers or upgrade existing servers Cons • Each service/server is single point of failure (susceptible to DOS attacks) • Performance depends on the network as well as the system • May require a central registry of names and services — it may be hard to find out what servers and services are available • Data interchange may be inefficient

Measures

done to ensure risk management practices are meeting it objectives

Sequence diagram used

during requirement analysis and system design

Testen vs Debugging

Ziel von Testen: Aufzeigen, beweisen, dass Fehler (Bugs) existieren -> Destruktives Testen "Jeder gefundene Bug ist ein Gold-Nugget!" Ziel von Debugging: Die durch Testen gefundenen Bugs beseitigen

Qt: Zweck & Anwendungen

Zweck: Erstellung von User Interfaces (im speziellen für GUIs) und plattformunabhängige Anwendungen (im Bereich Desktop, Embedded und Mobile) Anwendungen: Skype, Google Earth, Wolfram Research und viele mehr

Static

[...] libraries increase the size of the code in your binary. They're always loaded and whatever version of the code you compiled with is the version of the code that will run.

How is an process represented in a work context diagram

a circle

condition

a circumstance with the potential to produce loss; a condition has no effect on performance absent the occurrence of the event

What is a process?

a collection of related tasks that transforms a set of inputs into a set of outputs

Procedure

a combination of tools and techniques to produce a product

What is feasibility?

a design is acceptable only if it can be realized

What is a uml activity diagram?

a diagram that models processes depicting actions and the flow of control and data between them

retrospective

a discussion after the completion of each sprint to determine what went well and what changes should occur in the next sprint

Baseline

a document that has become a configuration item (e.g., at a milestone). It is reviewed and approved.

potential event

a future occurrence that may or may not happen

How is an data flow represented in a work context diagram

a line an arrow ----->

What is an event list?

a list of all internal and external events to which the product must respond

4+1 model of software architecture

a logical view which shows the key abstractions in the system as objects or object classes. A process view which shows how at runtime the system is composed of interacting processes. A development view which shows how the software is decomposed for development A physical view which shows the hardware and how software components are distributed across the processors related using use cases or scenarios.

What is a token?

a marker used in executing the virtual machine specified by an activity diagram

What is an actor?

a type of agent that interacts with a product

An actor has

a unique name and an optional description

Was ist das Ziel eines Pflichtenhefts?

a) Möglichst gutes Abbild vom System b) Anforderungen klar definieren c) Absicherung gegenüber dem Kunden Das Pflichtenheft beschreibt die Realisierung der Anforderungen des Lastenheftes

Wasserman's eight steps

a.) Abstraction b.) Methods and notations c.) Analysis and design d.) Interface prototyping e.) Architectural styles f.) Reuse g.) Metrics h.) Tools and integrated environments

A model is an __________ view of a system that ignores system details. Complementary system models can be developed to show the system's __________, interactions, structure and ___________.

abstract context behavior

What does an architectural style do?

abstracts the common properties of a family of similar designs

Maintenance team

fix faults that show up later

What is a scenario?

an interaction between a product and particular individuals

syntax tree

an internal structure representing the program being compiled

When do you use activity diagrams?

analysis and resolution

Analysis model definition

any representation of a design problem.

A software's _______________ is a description of how a software system is organized.

architecture

Introverts内向

ask for suggestions

Prescriptive Process

attempt to describe what should be happening with the process.

Rationals

base decisions on facts, options

Intuitives直观

base decisions on feelings

What is beauty?

beautiful designs are better

What are the two types of directional associtaions

bi-directional uni-directional

Class encapsulates

both state (variables) and behavior (methods, functions)

What is analysis?

breaking down a problem to understand it

How are state represented in a State transitions diagram

bubbles

Synthesis合成

build software from smaller building blocks

Specification-validaiton-elicitation

business-user-system

Procedures

can be adjusted based on roles and responsibilities, specific tools being used, ect.

Automated tools

can be customized base on the program's risk parameters

Risk sources

cases of risk that should be considered when risk is assessed, complied in lists and taxonomies

Event

causes transition from one sate to another state

Database

changes can include new reports tailored data entry, screens and new interfaces to other system tools

The repository pattern adv and disadv

changes made by one component can be propagated to all components. All data can be managed consistently. The repository is a single point of failure so problems in the repository affect the whole system.

Components

children class

Structure diagram

class, component, object, composite structure, deployment, package

Risk exposure

a measure fo the magnitude of a risk based on current values of probability and impact, usually expressed qualitatively using a range of values, matrix used to derive this from the individual values of probability and impact

What is an activity?

a non-atomic task or procedure decomposable into actions

branch point

a place where the action flow may diverge

A use case diagram represents what?

a product's use cases and the actors involved in each use case

How is an external entity represented in a work context diagram

a rectangle

class model definition

a representation of classes in a problem or a software solution

object model definition

a representation of objects in a problem or a software solution.

Validation

a review mechanism that looks for o errors in content or interpretation o areas where clarification may be required o missing information o inconsistencies (a major problem when large products or systems are engineered) o conflicting or unrealistic (unachievable) requirements.

What is a use case brief/actor brief?

a short description of a use case/actor -supplements the use case diagram -usually only one or two sentences or phrases

Variant

a software version that has the same functionality but may be used to create the product.

What is a use case description?

a specification of the interaction between a product and the actors in a use case -What each party does -The order in which each party acts -All possible courses of interaction

Build and Release Management A build Build management A release

a stable version of the software. assembling all the components necessary to installing the stable version of the software. a build of the software meant for end-user installation.

What is a technical requirement?

a statement of a feature, function, capability, or property that a product must have

What is a data requirement?

a statement that certain data must be input to, output from, or stored by a product

backlog

a system in which customer functionality requirement are written down and then the customer prioritizes them so that the team knows what to work on first

Risk management

a systematic approach for minimizing exposure to potential losses

What is an action?

a task or procedure that cannot be broken down into parts

Escalation

defines the circumstances and triggers for bringing as risk to the attention of others in the chain of command

Scope

defines the focus, range, an extent of risk management efforts and helps to drive risk management roles and responsibilities

What is done during the architectural design step?

describe user accessible components and the interconnections among them that are visible to stakeholders

Descriptive Process

describe what is actually happening in the process.

Pipe and filter architecture pre pos

easy to understandale and supports transformation reuse increases system overhead.

What are the key elements of an architectural style?

elements, connectors, constraints, and attributes

Elicitation

elicit requirements from all stakeholders

Welches Keyword wird in Qt innerhalb einer Klassenmethode angegeben um ein Signal zu senden?

emit

Technical quality

emphasizes the technical performance of a software product. measured by the number of faults, failures and timing problems

what does a connector do?

enables communication, coordination, and cooperation among elements

Risk tolerance

establishes the acceptable threshold for risk exposure

Precursor

event or set of events that must occur in order for an activity to start

What is the execution model?

execution is modeled by tokens that are produced by action nodes, travel over action edges, and are consumed by action nodes

What is done in staffing?

filling the positions in an organizational structure and keeping them filled

Activity diagrams shows

flow control within a system

Business quality

focuses on the value of the software product for the business. It is measured by ROI.

Software Engineering

focusing on computer as a problem-solving tool and real world application

What is done in planning?

formulating a scheme for doing a project

Existing system models

help clarify what the existing system does and can be used as a basis for discussing its strengths and weaknesses. These then lead to requirements for the new system.

New system models

help explain the proposed requirements to other system stakeholders. Engineers use these models to discuss design proposals and to document the system for implementation.

Models of application systems architectures...

help us understand and compare applications, validate application system designs and asses large-scale components for reuse.

Symbol Table

holds information about the names of entities

System Testing

• Series of tests whose purpose is to exercise a computer-based system • The focus of these system tests cases identify interfacing errors • Recovery testing - checks the system's ability to recover from failures • Security testing - verifies that system protection mechanism prevent improper penetration or data alteration • Stress testing - program is checked to see how well it deals with abnormal resource demands (i.e. quantity, frequency, or volume) • Performance testing - designed to test the run-time performance of software, especially real-time software • Deployment (or configuration) testing - exercises the software in each of the environment in which it is to operate

Zweck der Dokumentation

• Wissenssicherung: Wissen über ein System macht einen beträchtlichen Wert des Systems aus -> Menschen vergessen schnell • Förderung der Kommunikation & Genauigkeit • Sichtbarmachen des Projektfortschrittes: Fertigstellung und Freigabe von Dokumenten markiert nachprüfbar(!) den Projektfortschritt

Measurement in everyday life :example

• catch a train • buy petrol • have an x-ray • eat safe foods • travel by aeroplane • use your mobile Measurement is everywhere, playing a vital role in our lives. Metrology is the science of measurement and National Metrology Institutes around the world make sure that the measurements we use are fit for purpose. In the UK, the measurement infrastructure is provided by the National Measurement System (NMS).

Object-Oriented Integration Testing

• focuses on groups of classes that collaborate or communicate in some manner • integration of operations one at a time into classes is often meaningless • thread-based testing - testing all classes required to respond to one system input or event • use-based testing - begins by testing independent classes (classes that use very few server classes) first and the dependent classes that make use of them • cluster testing - groups of collaborating classes are tested for interaction errors • regression testing is important as each thread, cluster, or subsystem is added to the system

Object-Oriented Unit Testing

• smallest testable unit is the encapsulated class or object • similar to system testing of conventional software • do not test operations in isolation from one another • driven by class operations and state behavior, not algorithmic detail and data flow across module interface

Architectural considerations for non-functional requirements

•Performance •Security •Safety •Availability •Maintainability

Verification and Validation

•verification (are we building the product right?) validation (are we building the right product?)

Free Software Foundation (Copy Left)

→The freedom to run the program as you wish, for any purpose. →The freedom to study how the program works, and change it so it does your computing as you wish →The freedom to redistribute copies so you can help your neighbor →The freedom to distribute copies of your modified versions to others


Related study sets

Chapter 1: Introduction to Cognitive Psychology

View Set

MAJOR REVIEW - Adam to Jesus - Summer 2021

View Set

American Government Unit 4 Legislative

View Set

Med Surg Ch. 41 Musculoskeletal Disorders

View Set

Ch. 8 Chapter 8: Group 2 Dynamic Study Module

View Set