This document discusses different techniques for specifying software operations, including contracts, pre-and post-conditions, decision tables, structured English, activity diagrams, and the Object Constraint Language (OCL). Contract-based specifications focus on inputs and outputs without detailing implementation. Non-algorithmic techniques like decision tables and pre-post conditions specify what an operation should achieve without how. Algorithmic methods like structured English and activity diagrams describe the logic and flow. OCL uses context, properties, and operations to write constraints for modeling elements. The document provides examples and explanations of how to apply these various specification approaches.
Data dictionary, domain modelling and making things easyLockheed-Martin
Ole Nymoen of Norwegian airport operator looks at how a common data language can provide a framework for easier airport-to-airport integration. Ole is the technical architect for Avinor's multi-airport operational database project, centralising all operational platforms for 46 airports in to a single instance.
Data dictionary, domain modelling and making things easyLockheed-Martin
Ole Nymoen of Norwegian airport operator looks at how a common data language can provide a framework for easier airport-to-airport integration. Ole is the technical architect for Avinor's multi-airport operational database project, centralising all operational platforms for 46 airports in to a single instance.
A data dictionary is a “virtual database” containing metadata (data about data). Data dictionary holds information about the database and the data that it stores.
Sometimes the biggest blocker to understanding code or starting to write Apex is not having foundational knowledge of the basic building blocks of programming with the Salesforce Platform. In this webinar, Admins will learn the basics of object oriented programming: what they are, how they're used, and even some best practices to take note of in your own org.
KAOS, is a goal-oriented software requirements capturing approach in requirements engineering. It is a specific Goal modeling method; another is i*. It allows for requirements to be calculated from goal diagrams.[1] KAOS stands for Knowledge Acquisition in automated specification or Keep All Objectives Satisfied.
The University of Oregon and the University of Louvain (Belgium) designed the KAOS methodology in 1990 by Axel van Lamsweerde and others. It is now widely taught worldwide at the university level for capturing software requirements.
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Explore the innovative world of trenchless pipe repair with our comprehensive guide, "The Benefits and Techniques of Trenchless Pipe Repair." This document delves into the modern methods of repairing underground pipes without the need for extensive excavation, highlighting the numerous advantages and the latest techniques used in the industry.
Learn about the cost savings, reduced environmental impact, and minimal disruption associated with trenchless technology. Discover detailed explanations of popular techniques such as pipe bursting, cured-in-place pipe (CIPP) lining, and directional drilling. Understand how these methods can be applied to various types of infrastructure, from residential plumbing to large-scale municipal systems.
Ideal for homeowners, contractors, engineers, and anyone interested in modern plumbing solutions, this guide provides valuable insights into why trenchless pipe repair is becoming the preferred choice for pipe rehabilitation. Stay informed about the latest advancements and best practices in the field.
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)MdTanvirMahtab2
This presentation is about the working procedure of Shahjalal Fertilizer Company Limited (SFCL). A Govt. owned Company of Bangladesh Chemical Industries Corporation under Ministry of Industries.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...Amil Baba Dawood bangali
Contact with Dawood Bhai Just call on +92322-6382012 and we'll help you. We'll solve all your problems within 12 to 24 hours and with 101% guarantee and with astrology systematic. If you want to take any personal or professional advice then also you can call us on +92322-6382012 , ONLINE LOVE PROBLEM & Other all types of Daily Life Problem's.Then CALL or WHATSAPP us on +92322-6382012 and Get all these problems solutions here by Amil Baba DAWOOD BANGALI
#vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore#blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #blackmagicforlove #blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #Amilbabainuk #amilbabainspain #amilbabaindubai #Amilbabainnorway #amilbabainkrachi #amilbabainlahore #amilbabaingujranwalan #amilbabainislamabad
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
CFD analysis is incredibly effective at solving mysteries and improving the performance of complex systems!
Here's a great example: At a large natural gas-fired power plant, where they use waste heat to generate steam and energy, they were puzzled that their boiler wasn't producing as much steam as expected.
R&R and Tetra Engineering Group Inc. were asked to solve the issue with reduced steam production.
An inspection had shown that a significant amount of hot flue gas was bypassing the boiler tubes, where the heat was supposed to be transferred.
R&R Consult conducted a CFD analysis, which revealed that 6.3% of the flue gas was bypassing the boiler tubes without transferring heat. The analysis also showed that the flue gas was instead being directed along the sides of the boiler and between the modules that were supposed to capture the heat. This was the cause of the reduced performance.
Based on our results, Tetra Engineering installed covering plates to reduce the bypass flow. This improved the boiler's performance and increased electricity production.
It is always satisfying when we can help solve complex challenges like this. Do your systems also need a check-up or optimization? Give us a call!
Work done in cooperation with James Malloy and David Moelling from Tetra Engineering.
More examples of our work https://www.r-r-consult.dk/en/cases-en/
1. 1
CHAPTER 13
Specifying Operations
Software System
Engineering (260CT)
2. In This Lecture You Will Learn:
About the role of operation specifications
What is meant by “Contracts”
About algorithmic and non-algorithmic
techniques, and how they differ
How to use:
• Decision Tables
• Pre- and Post-condition Pairs
• Structured English
• Activity Diagrams
• Object Constraint Language
2
3. Why We Specify Operations
From analysis perspective:
• Ensure users’ needs are understood
From design perspective:
• Guide programmer to an appropriate
3
implementation (i.e. method)
From test perspective:
• Verify that the method does what was
originally intended
4. Types of Operation and Their
Effects
Operations with side-effects may:
• Create or destroy object instances
• Set attribute values
• Form or break links with other objects
• Carry out calculations
• Send messages or events to other objects
• Any combination of these
Operations without side-effects are pure
queries
• Request data but do not change anything
4
5. 5
Services Among Objects
When objects collaborate, one object
typically provides a service to another
Examples:
• A Client object might ask a Campaign
object for its details
• The same Client object might then ask a
boundary object to display its related
Campaign details to the user
6. Contracts: an Approach to
Defining Services
A service can be defined as a contract
between the participating objects
Contracts focus on inputs and outputs
Intervening process is seen as a black
box
Irrelevant details are hidden
This emphasizes service delivery, and
ignores implementation
6
7. Contract-Style Operation
Specification
Intent or purpose of the operation
Operation signature, including return type
Description of the logic
Other operations called
Events transmitted to other objects
Any attributes set
Response to exceptions (e.g. an invalid
parameter)
Non-functional requirements
(adapted from Larman, 1998 and Allen and Frost, 1998)
7
8. Types of Logic Specification
Logic description is probably the most
important element
Two main categories:
Algorithmic types are white box—they
focus on how the operation might work
Non-algorithmic types are black box—
they focus on what the operation should
achieve
8
9. Non-Algorithmic Techniques
Appropriate where correct result matters more
than method to arrive at it
Decision tree: complex decisions, multiple
criteria and steps (not described further here)
Decision table: similar applications to decision
tree
Pre- and Post-condition pairs: suitable where
precise logic is unimportant or uncertain
9
10. Conditions and actions Rule 1 Rule 2 Rule 3
Conditions
Is budget likely to be overspent? N Y Y
Is overspend likely to exceed 2%? - N Y
Actions
No action X
Send letter X X
Set up meeting X
10
Example Decision Table
11. Pre- and Post-condition Pair
pre-conditions:
creativeStaffObject is valid
gradeObject is valid
gradeChangeDate is a valid date
post-conditions:
a new staffGradeObject exists
new staffGradeObject linked to creativeStaffObject
new staffGradeObject linked to previous
value of previous staffGradeObject.gradeFinishDate
set equal to gradeChangeDate
11
12. 12
Algorithmic Techniques
Suitable where users understand the
procedure for arriving at a result
Can be constructed top-down, to handle
arbitrarily complex functionality
Examples:
• Structured English
• Activity Diagrams
13. 13
Structured English
Commonly used, easy to learn
Three types of control structure, derived
from structured programming:
• Sequences of instructions
• Selection of alternative instructions (or groups
of instructions)
• Iteration (repetition) of instructions (or groups
of instructions)
14. Sequence in Structured English
Each instruction executed in turn, one after
another
get client contact name
sale cost = item cost * ( 1 - discount rate )
calculate total bonus
description = new description
14
15. Selection in Structured English
One or other alternative course is
followed, depending on result of a test:
if client contact is ’Sushila’
set discount rate to 5%
else
set discount rate to 2%
end if
15
16. Iteration in Structured English
Instruction or block of instructions is
repeated
• Can be a set number of repeats
• Or until some test is satisfied, for example:
do while there are more staff in the list
16
calculate staff bonus
store bonus amount
end do
17. Activity Diagrams
Are part of UML notation set
Can be used for operation logic
specification, among many other uses
Are easy to learn and understand
Have the immediacy of graphical
notation
Bear some resemblance to old-fashioned
flowchart technique
17
18. 18
Simple Activity Diagram
Link to
CreativeStaff
Create new
StaffGrade
Link to previous
StaffGrade
Set previous
StaffGrade
gradeFinishDate
19. Activity Diagram with Selection
19
Check approval
for grade change
[approved by
Director]
[not approved
by Director] Print approval
request
Link to
CreativeStaff
Create new
StaffGrade
Link to previous
StaffGrade
Set previous
StaffGrade
gradeFinishDate
20. Activity Diagram with Selection
and Iteration
20
Calculate bonus
[bonus > £250]
Add to list
[more StaffMembers]
[no more StaffMembers]
Format list
Add to ‘star’ list
Create
warning
letter
[bonus < £25]
[bonus >= £25 AND
bonus <= £250]
21. Object Constraint Language
Most OCL statements consist of:
• Context, Property and Operation
Context
• Defines domain within which expression is valid
• Instance of a type, e.g. object in class diagram
• Link (association instance) may be a context
A property of that instance
• Often an attribute, association-end or query operation
21
22. OCL operation is applied to the property
Operations include
• Arithmetical operators *, +, - and /
• Set operators such as size, isEmpty and
select
• Type operators such as oclIsTypeOf
22
23. 23
OCL expression Interpretation
Person
self.gender
In the context of a specific person, the
value of the property ‘gender’ of that
person—i.e. a person’s gender.
Person
self.savings >= 500
The property ‘savings’ of the person
under consideration must be greater
than or equal to 500.
Person
self.husband->notEmpty implies
self.husband.gender = male
If the set ‘husband’ associated with a
person is not empty, then the value of
the property ‘gender’ of the husband
must be male. Boldface denotes OCL
keyword, but has no semantic import.
Company
self.CEO->size <= 1
The size of the set of the property ‘CEO’
of a company must be less than or
equal to 1. That is, a company cannot
have more than 1 Chief Executive
Officer.
Company
self.employee->select (age < 60)
The set of employees of a company
whose age is less than 60.
25. Summary
In this lecture you have learned about:
The role of operation specifications
What is meant by “Contracts”
Algorithmic and non-algorithmic techniques,
and how they differ
How to use:
• Decision Tables, Pre- and Post-condition Pairs,
Structured English, Activity Diagrams and Object
Constraint Language
25
Editor's Notes
Figure 10.1 A decision table with two conditions and three actions, yielding three distinct rules.
Figure 10.2 An activity diagram showing the main steps for the operation CreativeStaff.changeGrade().
Figure 10.3 A more complex activity diagram for CreativeStaff.changeGrade(), with an initial selection to check that approval has been given.
Figure 10.4 Activity diagram for Prepare bonus list(), showing selection and iteration structures. Compare this with the Structured English example given earlier.