(c) michael brückner 2005/2006 software engineering 1 course 254 451 software engineering class 10...
TRANSCRIPT
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering11
Course 254 451 Course 254 451 Software EngineeringSoftware Engineering
Class 10 / Requirements Engineering, Systems ModelingClass 10 / Requirements Engineering, Systems Modeling
Michael BruecknerMichael Brueckner phonephone 055-261 000-4 (ext. 3233)055-261 000-4 (ext. 3233)
ออ..มิ�ช่�ามิ�ช่�า emailemail [email protected]@nu.ac.thofficeoffice SC2-417, by appointmentSC2-417, by appointment
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering22
Topics coveredTopics covered System modellingSystem modelling
ContextContext สภาพแวดล้อมสภาพแวดล้อม modelsmodels Behavioural Behavioural เกี่��ยวกี่�บพฤติ�กี่รรมเกี่��ยวกี่�บพฤติ�กี่รรม modelsmodels Data modelsData models Object modelsObject models ToolsTools
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering33
ExamplesExamples
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering44
ExamplesExamples
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering55
Examples – Object ModelExamples – Object Model
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering66
What is system modelling?What is system modelling? System modelling helps the analyst System modelling helps the analyst นั�กี่ว�เคราะห์�นั�กี่ว�เคราะห์�
to understand the functionality to understand the functionality กี่ารทำ�างานักี่ารทำ�างานั of the of the system system
Models are used to talk with customersModels are used to talk with customers Different models present the system from Different models present the system from
different perspectives different perspectives ทำ�ศนัคติ�ทำ�ศนัคติ� External External ภายนัอกี่ภายนัอกี่ perspective shows the context or perspective shows the context or
environment of the systemenvironment of the system Behavioural perspective shows its behaviour together Behavioural perspective shows its behaviour together
with users and other systemswith users and other systems Structural Structural เกี่��ยวกี่�บโครงสรางเกี่��ยวกี่�บโครงสราง perspective shows the perspective shows the
system or data architecturesystem or data architecture
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering77
Example – HW System Example – HW System ArchitectureArchitecture
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering88
Example – SW System ArchitectureExample – SW System Architecture
Robot System Software
External view not worked out
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering99
Model typesModel types
Data processing Data processing กี่ารด�าเนั�นักี่ารกี่ารด�าเนั�นักี่าร model model showsshows how the data is processed at different stageshow the data is processed at different stages
ระยะเวล้าระยะเวล้า Architectural model shows important sub-Architectural model shows important sub-
systemssystems Classification model shows how entities have Classification model shows how entities have
commoncommon เห์ม"อนักี่�นัเห์ม"อนักี่�นั characteristicscharacteristics
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1010
Example – Data Processing ModelExample – Data Processing Model
Multi-tasking data processing
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1111
Example – Classification ModelExample – Classification Model
... for intruders บ#กี่ร#กี่
network security systems
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1212
Context modelsContext models
Context models Context models showshow the operational the operational context of a system - they also show what context of a system - they also show what is outside the systemis outside the system
Architectural models show the system and Architectural models show the system and its relationship with other systemsits relationship with other systems
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1313
The context of an ATM systemThe context of an ATM system
Auto-tellersystem
Securitysystem
Maintenancesystem
Accountdatabase
Usagedatabase
Branchaccounting
system
Branchcountersystem
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1414
Process modelsProcess models
Process models show the overall Process models show the overall ทำ�$งห์มดทำ�$งห์มด process and the processes that are process and the processes that are supported by the system.supported by the system.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1515
Equipment procurement Equipment procurement processprocess
Get costestimates
Acceptdelivery ofequipment
Checkdelivered
items
Validatespecification
Specifyequipmentrequired
Choosesupplier
Placeequipment
order
Installequipment
Findsuppliers
Supplierdatabase
Acceptdelivered
equipment
Equipmentdatabase
Equipmentspec.
Checkedspec.
Deliverynote
Deliverynote
Ordernotification
Installationinstructions
Installationacceptance
Equipmentdetails
Checked andsigned order form
Orderdetails plusblank order
form
Spec. +supplier +estimate
Supplier listEquipment
spec.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1616
Behavioural modelsBehavioural models
Behavioural models are used to describe the Behavioural models are used to describe the overall behaviour of a systemoverall behaviour of a system
Two types of behavioural model are:Two types of behavioural model are: Data processing models that show how data is Data processing models that show how data is
processed as it moves through the systemprocessed as it moves through the system Stimulus Stimulus ยากี่ระติ#นัยากี่ระติ#นั/response /response กี่ารติอบสนัองกี่ารติอบสนัอง model model
shows the reaction to events shows the reaction to events เห์ติ#กี่ารณ์�ส�าค�ญเห์ติ#กี่ารณ์�ส�าค�ญ These models show different perspectives so These models show different perspectives so
both of them are required to describe the both of them are required to describe the system’s behaviour.system’s behaviour.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1717
Data-processing modelsData-processing models Data flow diagrams (DFDs) may be used Data flow diagrams (DFDs) may be used
to model the system’s data processing.to model the system’s data processing. They show the processing steps as data They show the processing steps as data
flows through a system.flows through a system. DFDs are an intrinsic DFDs are an intrinsic เนั"$อแทำเนั"$อแทำ part of many part of many
analysis methods.analysis methods. Simple and intuitive Simple and intuitive โดยส�ญชาติญาณ์โดยส�ญชาติญาณ์
notation that customers can understand.notation that customers can understand. Show end-to-end processing of data.Show end-to-end processing of data.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1818
Example - Order processing DFDExample - Order processing DFD
Completeorder form
Orderdetails +
blankorder form
Validateorder
Recordorder
Send tosupplier
Adjustavailablebudget
Budgetfile
Ordersfile
Completedorder form
Signedorder form
Signedorder form
Checked andsigned order
+ ordernotification
Orderamount
+ accountdetails
Signedorder form
Orderdetails
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering1919
Example - Data Flow ModelExample - Data Flow ModelWave buoys ทำ#(นั provide data about wave amplitudes ความกี่วางขวาง and velocities ความเร*ว worldwide ทำ��วโล้กี่
How will the data be transferred ส"�อไปถึ.ง ?
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2020
Data flow diagramsData flow diagrams
DFDs model the system from a functional DFDs model the system from a functional perspectiveperspective
Write down and track how the data are Write down and track how the data are associated associated เช"�อมโยงเช"�อมโยง with a process with a process
Helpful for an overall Helpful for an overall ทำ�$งห์มดทำ�$งห์มด understanding understanding of the systemof the system
Data flow diagrams may also be used to Data flow diagrams may also be used to show data exchange between a system and show data exchange between a system and other systems in its environment.other systems in its environment.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2121
Insulin pump DFDInsulin pump DFD
Insulinrequirementcomputation
Blood sugaranalysis
Blood sugarsensor
Insulindelivery
controller
Insulinpump
Blood
Bloodparameters
Blood sugarlevel
Insulin
Pump controlcommands Insulin
requirement
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2222
Stimulus/response modelsStimulus/response models
These model the behaviour of the system in These model the behaviour of the system in response to external and internal events.response to external and internal events.
They show the system’s responses to stimuliThey show the system’s responses to stimuli Often used for modelling real-time systems.Often used for modelling real-time systems. When there is an event the system goes from When there is an event the system goes from
one state to anotherone state to another
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2323
StatechartsStatecharts
Allow the decomposition of a model into Allow the decomposition of a model into sub-modelssub-models
Can be complemented by tables Can be complemented by tables describing the states and the stimulidescribing the states and the stimuli
Example: Microwave ovenExample: Microwave oven
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2424
Microwave oven modelMicrowave oven model
Full power
Enabled
do: operateoven
Fullpower
Halfpower
Halfpower
Fullpower
Number
Dooropen
Doorclosed
Doorclosed
Dooropen
Start
do: set power= 600
Half powerdo: set power
= 300
Set time
do: get numberexit: set time
Disabled
Operation
Cancel
Waiting
do: displaytime
Waiting
do: displaytime
do: display 'Ready'
do: display'Waiting'
Timer
Timer
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2525
Microwave oven state Microwave oven state descriptiondescription
State Description
Waiting The oven is waiting for input. The display shows the current time.
Half power The oven power is set to 300 watts. The display shows 'Half power'.
Full power The oven power is set to 600 watts. The display shows 'Full power'.
Set time The cooking time is set to the user’s input value. The display shows the cooking time selected and is updated as the time is set.
Disabled Oven operation is disabled for safety. Interior oven light is on. Display shows 'Not ready'.
Enabled Oven operation is enabled. Interior oven light is off. Display shows 'Ready to cook'.
Operation Oven in operation. Interior oven light is on. Display shows the timer countdown. On completion of cooking, the buzzer is sounded for 5 seconds. Oven light is on. Display shows 'Cooking complete' while buzzer is sounding.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2626
Microwave oven stimuliMicrowave oven stimuli
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2727
Microwave oven operationMicrowave oven operation
Cookdo: run
generator
Done
do: buzzer onfor 5 secs.
Waiting
Alarm
do: displayevent
do: checkstatus
Checking
Turntablefault
Emitterfault
Disabled
OK
Timeout
Time
Door open Cancel
Operation
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2828
Semantic data modelsSemantic data models Used to give the logical structure of data Used to give the logical structure of data
processed by the system.processed by the system. An entity-relation-attribute model sets out An entity-relation-attribute model sets out
the entities in the system, the relationships the entities in the system, the relationships between these entities and the entity between these entities and the entity attributesattributes
Widely used in database design. Can Widely used in database design. Can easily be implemented using relational easily be implemented using relational databases.databases.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering2929
Library semantic modelLibrary semantic model
Source
titlepublisherissuedatepages
1
Article
titleauthorspdf filefee
has-links
1
Buyer
nameaddresse-mailbilling info
places
fee-payable-to
n
1
n
published-in
delivers in
m n
1
1
1
CopyrightAgencynameaddress
Country
copyright formtax rate
1
Order
order numbertotal paymentdatetax status
in
1
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3030
Data dictionariesData dictionaries
Data dictionaries are lists of all of the names Data dictionaries are lists of all of the names used in the system models. Descriptions of used in the system models. Descriptions of the entities, relationships and attributes are the entities, relationships and attributes are also included also included ประกี่อบดวยประกี่อบดวย..
AdvantagesAdvantages Support name management and avoid Support name management and avoid ห์ล้�กี่เล้��ยงห์ล้�กี่เล้��ยง
duplication duplication กี่ารทำ�าซ้ำ�$ากี่ารทำ�าซ้ำ�$า Store Store ส��งทำ��กี่�กี่ติ#นัไวส��งทำ��กี่�กี่ติ#นัไว of organisational knowledge of organisational knowledge
linking analysis, design and implementationlinking analysis, design and implementation
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3131
Data dictionary entriesData dictionary entries
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3232
Object models-1Object models-1 Object models describe the system in terms of Object models describe the system in terms of
object classes and their associations object classes and their associations กี่ารเช"�อมติ�ดกี่ารเช"�อมติ�ดกี่�นักี่�นั
An object class is an abstraction An object class is an abstraction นัามธรรมนัามธรรม over a over a set of objects with same attributes and the set of objects with same attributes and the services (operations) given by each object.services (operations) given by each object.
Various object models may be worked outVarious object models may be worked out Inheritance models;Inheritance models; Aggregation models;Aggregation models; Interaction models.Interaction models.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3333
Object models-2Object models-2 Natural way of thinking about real-world entities Natural way of thinking about real-world entities
manipulated manipulated ด1แล้ด1แล้ by the systemby the system More abstract entities are more difficult to model More abstract entities are more difficult to model
using this approachusing this approach Object class identification is a difficult process: Object class identification is a difficult process:
need a deep understanding of the application need a deep understanding of the application domaindomain
Object classes for domain entities are reusable Object classes for domain entities are reusable (we can use them again) (we can use them again) ซ้ำ.�งนั�ามาใชให์ม(ซ้ำ.�งนั�ามาใชให์ม( in other in other projectsprojects
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3434
Inheritance modelsInheritance models Organise the domain object classes into a Organise the domain object classes into a
hierarchy.hierarchy. Classes at the top of the hierarchy show the Classes at the top of the hierarchy show the
common features of all classes.common features of all classes.
Object classes inherit Object classes inherit ส"บติ(อส"บติ(อ / / ร�บมรดกี่ร�บมรดกี่ their their attributes and services from the super-classes, attributes and services from the super-classes, they may then be specified they may then be specified กี่�าห์นัดกี่�าห์นัด
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3535
Library class hierarchyLibrary class hierarchy
Catalogue numberAcquisition dateCostTypeStatusNumber of copies
Library item
Acquire ()Catalogue ()Dispose ()Issue ()Return ()
AuthorEditionPublication dateISBN
Book
YearIssue
Magazine
DirectorDate of releaseDistributor
Film
VersionPlatform
Computerprogram
TitlePublisher
Published item
TitleMedium
Recorded item
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3636
User class hierarchyUser class hierarchy
NameAddressPhoneRegistration #
Library user
Register ()De-register ()
Affiliation
Reader
Items on loanMax. loans
Borrower
DepartmentDepartment phone
Staff
Major subjectHome address
Student
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3737
Multiple inheritanceMultiple inheritance Rather than getting the attributes and Rather than getting the attributes and
services from a single parent class, a services from a single parent class, a system which supports system which supports multiple multiple inheritanceinheritance allows object classes to inherit allows object classes to inherit from more than one super-classfrom more than one super-class
This can lead to semantic conflicts when This can lead to semantic conflicts when attributes/services attributes/services with the same namewith the same name in in different super-classes different super-classes have different have different meaningmeaning..
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3838
Multiple inheritanceMultiple inheritance
# Tapes
Talking book
AuthorEditionPublication dateISBN
Book
SpeakerDurationRecording date
Voice recording
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering3939
Object aggregationObject aggregation An aggregation An aggregation กี่ารรวมกี่�นักี่ารรวมกี่�นั model shows model shows
how classes that are collections how classes that are collections กี่ารรวมติ�วกี่ารรวมติ�วกี่�นัเป3นักี่ล้#(มเป3นักี่องกี่�นัเป3นักี่ล้#(มเป3นักี่อง are composed of other are composed of other classes.classes.
Aggregation models are similar Aggregation models are similar เห์ม"อนักี่�นัเห์ม"อนักี่�นั to the part-of relationship in semantic data to the part-of relationship in semantic data models.models.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering4040
Object aggregationObject aggregation
Videotape
Tape ids.
Lecturenotes
Text
OHP slides
Slides
Assignment
Credits
Solutions
TextDiagrams
Exercises
#ProblemsDescription
Course titleNumberYearInstructor
Study pack
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering4141
Object behaviour modellingObject behaviour modelling
A behavioural model shows the A behavioural model shows the interactions interactions ปฏิ�กี่�ร�ยาปฏิ�กี่�ร�ยา between objects to between objects to get a get a particular system behaviourparticular system behaviour that is that is specified specified กี่�าห์นัดกี่�าห์นัด as a scenarioas a scenario
Sequence Sequence กี่ารเร�ยงล้�าด�บกี่ารเร�ยงล้�าด�บ diagrams (or diagrams (or collaboration collaboration กี่ารร(วมม"อกี่ารร(วมม"อ diagrams) are diagrams) are used to show interaction between objects.used to show interaction between objects.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering4242
Issue of electronic itemsIssue of electronic items
:Library User
Ecat:Catalog
Lookup
Issue
Display
:Library ItemLib1:NetServer
Issue licence
Accept licence
Compress
Deliver
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering4343
Structured methodsStructured methods
Structured methods incorporate system Structured methods incorporate system modelling as an inherent part of the modelling as an inherent part of the method.method.
Methods define a set of models, a process Methods define a set of models, a process for deriving these models and rules and for deriving these models and rules and guidelines that should apply to the models.guidelines that should apply to the models.
CASE tools support system modelling as CASE tools support system modelling as part of a structured method.part of a structured method.
(C) Michael Brückner 2005/2006 Software Engineering(C) Michael Brückner 2005/2006 Software Engineering4444
Method weaknessesMethod weaknesses They do not show non-functional system They do not show non-functional system
requirements.requirements. They do not usually give information which They do not usually give information which
model is best used for a given problemmodel is best used for a given problem They may produce too much documentation.They may produce too much documentation.