Software Engineering collection 3
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