System Modeling - L1
– Understand the essentials of object-oriented systems – Explain the role of models in system analysis and development – Gain an overview of different software development methods – Assess the advantages and disadvantages of each methodology
– Understand the essentials of object-oriented systems – Explain the role of models in system analysis and development – Gain an overview of different software development methods – Assess the advantages and disadvantages of each methodology
-
- 1 / 36
-
Lernkarten
System def. part
A system is a set of interrelated elements organized into an identifiable whole.
What is a system consisted of?
elements --> not monolytics
interrelated elements --> elements are related and interrilated
organization --> formal structure
identifiable whole --> distinct identity
sbsystems --> component of another system
open system --> accepts input, logic of its internal working can be understood, change = result of interraction with outside, produces output
clos system --> opposit of open system
Object definition
> something that is perceived as an entity and referred to by name;
> something perceptible by one or more senses;
> something intelligible or perceptible by the mind.
Key concepts of objects
Identity --> unique, unchanging
Attributes --> features, properties, qualities, characteristics; paired with value
Operations --> what an object does
state --> attributes and the current range of values (combination)
Class def.
A class is a set of objects that share the same attributes and operations.
Class abstraction
The process of selecting certain attributes and
operations from a concrete object that are of specific relevance is called
abstraction.
Class generalization
Generalization is concluding that characteristics of a particular entity apply to
a broader range of entities.
Instance def.
An instance is the concrete manifestation of a class. Instance is a
synonym for object.
Object encapsulation
Encapsulation is the packaging of data and processes within one
single unit.
Object: information hidding
Information hiding conceals and protects what goes on inside
an object from the outside world.
Object interface
An object’s interface consists of operations that are available to the
public.
Inheritance
Inheritance is the mechanism by which a sub-class incorporates the behavior of a super-class.
Multiple inheritance
Inheritance of the behavior of more than one super-class. C# = yes; Java = no
Aggregation and composition
> The relationship of one object to its component objects is called aggregation.
> Composition is a strong form of aggregation in which the life of components relies on the life of the whole.
Concrete class
Instances can be created
Abstract class
Only inheritance can be done. NO instantiation
Polymorphism
Polymorphism is the ability of objects belonging to different classes
to perform the same operation differently.
Modeling complexity - Sources of complexity
> Numerous (different) elements in a system
> Numerous (different) relationships among the elements
Modeling and complexity - Divide-and-conquer approach
> Break down a complex problem into a number of sub-problems that can be
solved
What is a model?
– “A model is a simplified representation of reality.”
– Every model serves a specific purpose
Four aims of modelling
Four aims of (systems) modeling:
> Visualization:
» Models help to visualize a system as it is or as it should be.
> Specification:
» Models allow to specify the structure and behavior of a system.
> Construction:
» Models can be transformed into system designs.
> Documentation:
» Models document the design decisions that have been made.
Object-oriented analysis and design --> object oriented approach
> Conceptual view of the system: What the owner, or business, wants.
> Logical view of the system: How the architect conceives the solution.
> Physical view of the system: The blueprints for building the product (the builder’s view).
Software project management def.
– A project is a collection of related tasks that must be completed in a particular
order and within a certain timeframe to achieve a specific goal.
– Software project management is planning, monitoring and controlling the course of the software development process and the resources used by that process.
Characteristics of project management
1. Goal: The goal of a project is to create a unique product, service, or result.
The goal of a project must be verifiable.
2. Scope: The scope of the project defines the boundaries of the goal.
3. Timeframe: A project’s lifetime is finite.
4. Lifecycle: The lifecycle identifies the phases of the project from its inception
to its completion.
Ad hoc approach
– The ad hoc approach is a non-methodology.
– To succeed, the ad hoc approach must rely overwhelmingly on
> the ingenuity of project members to improvise solutions for unforeseen problems
> the ability of the project members to coordinate and communicate with each other, and
> “luck”, meaning that the right people hit the right targets under the right circumstances.
– The ad hoc approach is a high-risk approach.
System development life cycles (SDLC)
– SDLC methodologies view software development as primarily a project
management process rather than a technical one.
– Each phase is a milestone and the resulting documents and artifacts are the
project deliverables.
SDLC - waterfall
The waterfall model specifies a set of sequential phases for software development
> Each step cannot begin until the previous step has been completed and documented
> Gates between stages
Limits: inflexibility, over-reliance on documentation, detachement from marketplace, detachement form the profession, detachement from technology
SDLC: prototyping
Prototyping is the creation of a working version of the essential features of the
final product for testing and verification of requirements.
Types: throwaway, incremental
Limits: unbalanced, illusion of completeness, dimishing changeability
SDLC: Iterative/Incremental Approach
– Three key concepts
> The Initialization Step: A base version is presented and stakeholder’s
responses are elicited
> The Control List: List containing necessary changes and new requirements
> The Iteration Step: A new version is built implementing selected items of the
control list
Limits: design decisions can not be undon (some of them)
SDLC: spiral
The spiral model is a risk-oriented lifecycle model that breaks a software project
up into mini-projects.
– The spiral model combines the waterfall approach and prototyping.
Limits: complexity
Agile methodologies
Agile methodologies aim at being adaptive rather than plan-driven.
- SCRUM
- extremeProgramming
Practices
> Living the values of the agile manifesto
> Stand-up meetings
> Pair programming
> Test-driven development
> Refactoring
capability maturity model (CMM)
CMM aims to measure the maturity of (software development) process within an
organization.
CMM levels
Initial (or ad hoc)
involved individuals.
> Defined
> Managed
> Optimizing