Software Engineering BFH
Software Engineering BFH
Software Engineering BFH
-
- 1 / 146
-
Lernkarten
Application Type Architectures
Example for Compiler Components
tbd
What are Frameworks?
- Combine architecture with (partial) implementation
- Component-based design
- Made of abstract and concrete classes and the interfaces between them
- Components are impolemented by:
- filing in the missing parts of the design
- by instantiaiting the abstract classes
- moderately large entities that can be reused
Difference between Framework and Library?
Library
- handle prticular task (XML parsing, error logging...)
Frameworks
- Most define the general controll flow / event handling
- include libraries
- Web-app framework: provide user session management, data storage, web page template system
- Desktop-app framework: ui and standard widgets
What kind of frameworks are there?
- System infrastructure f.
- development of system infrastructure(communications, user interfaces., compilers)
- Middleware integration f.
- component communication and information exchange
- Enterprise application f.
- development of business specific apps
Selecting right framework ist often a trade-off between:
maximizing reuse & maximizing flexibility
Pros - Cons of Frameworks?
Pro:
- Efficiency
- Security
- Expense
- Support
..tbc
Cons:
Security
Restrictions
Learning a framework, not a language
..tbc
IMPLEMENTATION:
What is Object-Orented Design?
Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem.
It is one approach to software design.
IMPLEMENTATION:
OOD Results:
- Use Cases (user interaction with the system)
- System Context (System boundaries, interfaces, main processes)
- System Architecture (components, functionalities, interfaces)
- detailed system design model
- class and relationship model of each component
- associations, aggregation, generalization
- interfaces and privatge methods, attributes
- following design gudelines and design patterns
- activity and sequence diagrams
- state diagram
- class and relationship model of each component
IMPLEMENTATION:
What are the inputs for a Prototype?
- All analysis
- design artifacts > architecture and design models
IMPLEMENTATION:
What are the 6 steps of the implementation process?=
- Set up the general structure
- translate architectureal components into packages, libraries or external projects
- Define public interfaces and classes
- Define internal interfaces and classes
- Implement class methods according to priority list (backlog)
- Integrate, test and deliver
- Change design models an previous implementation (refactoring) as necessary
Typical WAF Features (5):
- Security (Authentication)
- Dynamic web pages (Templates)
- Database support (storing & retrieving app state)
- Session management (manage sessions)
- User interaction
IMPLEMENTATION:
What is a Build Management for (z.B Apache Maven)?
It is about generating an executable:
- which source code in which version
- dependencies to external components
- build - compile and link all ressources
- run test cases
- distributed compilation
- produce different variants of the software
- debug, production
- may be integrated with a deployment system --> CI
IMPLEMENTATION
SCRUM: Roles (4):
- Product owner
- Scrum master
- Developer
- Customers, users and managers
IMPLEMENTATION
SCRUM: Artifacts (4):
- Product backlog
- Sprint backlog
- Burndown chart
- design models, code and project-relevant artifacts
IMPLEMENTATION
SCRUM: Meetings (6):
- Product planning
- Sprint planning
- Daily scrum
- Code review
- sprint review
- product / release review
IMPLEMENTATION
SCRUM: Product Owner:
- Represents Customer
- Part of the scurm-team
- Participates meetings
- Maintains /decides priority of features (customer value)
- Prepares Backlog
- Reviews delivered product
- Accountable for the succes and delivery
IMPLEMENTATION
SCRUM: Scrum Master
- supports devs
- coaches team
- ensures that team adheres to Scrum
- helps resolve blocking situations
- arranges meetings
- keeps track of the backlog
- protects the team from external distractions
- communication outside of the team
IMPLEMENTATION:
Open-Closed Design Principle?
- Classes should be open for extensions
- Classes should be closed for modifications
Welche Anforderung sollten Requirements erfüllen?
- COMPLETE --> Beschreibung ALLER Services vorhanden?
- CONSISTENT --> Keine Wiedersprüche
Requirements validation is the process of checking the requirements
for validity, consistency, completeness, realism and verifiability.
COPYRIGHT
What is protected by Copyright?
- every novel expression of an idea (=works)
COPYRIGHT
From which moment is a copyright valid and for how long?
From the instant it is created.
The Period is different. Depending on the country.
COPYRIGHT
What does Copyright mean?
- Onyl the creator owner may display, copy and commercially exploit the works.
- He or She only is allowed to create derivate works on it
- but others are allowed to create works based on the original if it is fundamentally different
- Copyright applies to the expression of an idea, not the idea itself
- Not for the algorithm but for that specific implementation
- Algorithm must be protected by a patent
COPYRIGHT
What means Open Source Software Development?
- approach to sw-dev in which the copyright limitations are overcome
- sourcecode is published
- the sw can be freely distributed
- the sw can be used for derivate works -- inkl commercial exploitation
COPYRIGHT
Roots of OOS?
Free Software Foundation www.fsf.org
COPYRIGHT:
On what aims OSS? What may be OSS-Dev benefits?
- recruiting large numbers of volunteer devs
- Devs may be also users
- Volunteers can be paid by companies that have their business model on top of an OSS project
- Linux, Java, Eclipse, ... etc.
OPENSOURCE:
The fundamental principle of OSS?
The source code should be freely available.
OPENSOURCE
BSD Licence --> Berkley Standard Distribution Licence
- non reciprocal
- Allowed in proprietary systems
- Changes to the original must be clearly marked
- protects the copyright of the origniator
- voids any warranty
Nennen Sie die 6 Design Thinking Schritte in korrekter Reihenfolge
- Scoping
- Research
- Synthesis
- Design
- Prototyping
- Validate
Quality and Verification:
Most important quality property?
Dependability -- Zuverlässigkeit
- Wrong behaviour may cause accidents, endanger the health of its users etc.
- Large numbers of People may be affected
- System may be rejected by user
- Economic costs of lacking systems --> HIGH
Quality and Verification:
What are the 5 dependability properties:
- Availability
- Reliability
- Safety
- Security
- Resilience
Quality and Verification:
What is Availability?
The ability of the system to deliver services when requested.
Quality and Verification:
What is Reliability?
The ability of the system to deliver services as specified.
Zuverlässigkeit.
Quality and Verification:
What is Safety?
The ability of the system to operate without catastrophic failure.
Quality and Verification:
What is Security?
The ability of the system to protect itself against deliberate or accidental intrusion.