Software ngineering Modeling

download Software ngineering Modeling

of 21

Transcript of Software ngineering Modeling

  • 8/20/2019 Software ngineering Modeling

    1/54

    Inxhinieria softuerike

    Prof. Asoc. Dr. Blerim [email protected]

    Universieti i PrishtinësFakulteti i Inxhinierisë Elektrike dhe Kompjuterike

    mailto:[email protected]:[email protected]

  • 8/20/2019 Software ngineering Modeling

    2/54

    Chapter 5 – System Modeling

    2Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    3/54

    Topics covered

    Context models

    Interaction models

    Structural models

    Behavioral models

    Model-driven engineering

    3Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    4/54

    System modeling

    System modeling is the process of developing abstractmodels of a system, with each model presenting adifferent view or perspective of that system.

    System modeling has now come to mean representing asystem using some kind of graphical notation, which isnow almost always based on notations in the UnifiedModeling Language (UML).

    System modelling helps the analyst to understand thefunctionality of the system and models are used tocommunicate with customers.

    4Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    5/54

  • 8/20/2019 Software ngineering Modeling

    6/54

    System perspectives

    An external perspective, where you model the context orenvironment of the system.

    An interaction perspective, where you model the

    interactions between a system and its environment, orbetween the components of a system.

    A structural perspective, where you model theorganization of a system or the structure of the data that

    is processed by the system. A behavioral perspective, where you model the dynamicbehavior of the system and how it responds to events.

    6Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    7/54

  • 8/20/2019 Software ngineering Modeling

    8/54

    Use of graphical models

    As a means of facilitating discussion about an existing orproposed system

    Incomplete and incorrect models are OK as their role is tosupport discussion.

    As a way of documenting an existing systemModels should be an accurate representation of the system butneed not be complete.

    As a detailed system description that can be used togenerate a system implementation

    Models have to be both correct and complete.

    8Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    9/54

    Context models

    Context models are used to illustrate the operationalcontext of a system - they show what lies outside thesystem boundaries.

    Social and organisational concerns may affect thedecision on where to position system boundaries.

    Architectural models show the system and itsrelationship with other systems.

    9Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    10/54

    System boundaries

    System boundaries are established to define what isinside and what is outside the system.

    They show other systems that are used or depend on the systembeing developed.

    The position of the system boundary has a profoundeffect on the system requirements.

    Defining a system boundary is a political judgment

    There may be pressures to develop system boundaries thatincrease / decrease the influence or workload of different parts ofan organization.

    10Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    11/54

    The context of the MHC-PMS

    11Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    12/54

    Process perspective

    Context models simply show the other systems in theenvironment, not how the system being developed isused in that environment.

    Process models reveal how the system being developedis used in broader business processes.

    UML activity diagrams may be used to define businessprocess models.

    12Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    13/54

    Process model of involuntary detention

    13Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    14/54

    Interaction models

    Modeling user interaction is important as it helps toidentify user requirements.

    Modeling system-to-system interaction highlights the

    communication problems that may arise.Modeling component interaction helps us understand if aproposed system structure is likely to deliver the requiredsystem performance and dependability.

    Use case diagrams and sequence diagrams may beused for interaction modeling.

    14Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    15/54

    Use case modeling

    Use cases were developed originally to supportrequirements elicitation and now incorporated into theUML.

    Each use case represents a discrete task that involvesexternal interaction with a system.

    Actors in a use case may be people or other systems.

    Represented diagramatically to provide an overview of

    the use case and in a more detailed textual form.

    15Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    16/54

    Transfer-data use case

    A use case in the MHC-PMS

    16Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    17/54

    Tabular description of the ‘Transfer data’ use-case

    MHC-PMS: Transfer data

    Actors Medical receptionist, patient records system (PRS)

    Description A receptionist may transfer data from the MHC-PMS to ageneral patient record database that is maintained by a

    health authority. The information transferred may eitherbe updated personal information (address, phonenumber, etc.) or a summary of the patient’s diagnosisand treatment.

    Data Patient’s personal information, treatment summary

    Stimulus User command issued by medical receptionist

    Response Confirmation that PRS has been updated

    Comments The receptionist must have appropriate securitypermissions to access the patient information and thePRS.

    17Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    18/54

    Use cases in the MHC-PMS involving the role‘Medical Receptionist’

    18Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    19/54

    Sequence diagrams

    Sequence diagrams are part of the UML and are used tomodel the interactions between the actors and theobjects within a system.

    A sequence diagram shows the sequence of interactionsthat take place during a particular use case or use caseinstance.

    The objects and actors involved are listed along the top

    of the diagram, with a dotted line drawn vertically fromthese.

    Interactions between objects are indicated by annotatedarrows.

    19Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    20/54

    Sequence diagram for View patient information

    20Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    21/54

    Sequence diagram for Transfer Data

    21Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    22/54

    Structural models

    Structural models of software display the organization ofa system in terms of the components that make up thatsystem and their relationships.

    Structural models may be static models, which show thestructure of the system design, or dynamic models,which show the organization of the system when it isexecuting.

    You create structural models of a system when you arediscussing and designing the system architecture.

    22Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    23/54

    Class diagrams

    Class diagrams are used when developing an object-oriented system model to show the classes in a systemand the associations between these classes.

    An object class can be thought of as a general definitionof one kind of system object.

    An association is a link between classes that indicatesthat there is some relationship between these classes.

    When you are developing models during the early stagesof the software engineering process, objects representsomething in the real world, such as a patient, aprescription, doctor, etc.

    23Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    24/54

    UML classes and association

    24Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    25/54

    Classes and associations in the MHC-PMS

    25Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    26/54

    The Consultation class

    26Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    27/54

    Key points

    A model is an abstract view of a system that ignores system details.Complementary system models can be developed to show thesystem’s context, interactions, structure and behavior.

    Context models show how a system that is being modeled is

    positioned in an environment with other systems and processes.Use case diagrams and sequence diagrams are used to describethe interactions between users and systems in the system beingdesigned. Use cases describe interactions between a system andexternal actors; sequence diagrams add more information to these

    by showing interactions between system objects.Structural models show the organization and architecture of asystem. Class diagrams are used to define the static structure ofclasses in a system and their associations.

    Chapter 5 System modeling 27

  • 8/20/2019 Software ngineering Modeling

    28/54

    Chapter 5 – System Modeling

    Lecture 2

    28Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    29/54

    Generalization

    Generalization is an everyday technique that we use tomanage complexity.

    Rather than learn the detailed characteristics of everyentity that we experience, we place these entities inmore general classes (animals, cars, houses, etc.) andlearn the characteristics of these classes.

    This allows us to infer that different members of these

    classes have some common characteristics e.g.squirrels and rats are rodents.

    Chapter 5 System modeling 29

  • 8/20/2019 Software ngineering Modeling

    30/54

    Generalization

    In modeling systems, it is often useful to examine the classes ina system to see if there is scope for generalization. If changesare proposed, then you do not have to look at all classes in thesystem to see if they are affected by the change.

    In object-oriented languages, such as Java, generalization isimplemented using the class inheritance mechanisms built intothe language.

    In a generalization, the attributes and operations associated withhigher-level classes are also associated with the lower-levelclasses.

    The lower-level classes are subclasses inherit the attributes andoperations from their superclasses. These lower-level classesthen add more specific attributes and operations.

    Chapter 5 System modeling 30

  • 8/20/2019 Software ngineering Modeling

    31/54

    A generalization hierarchy

    31Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    32/54

    A generalization hierarchy with added detail

    32Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    33/54

    Object class aggregation models

    An aggregation model shows how classes that arecollections are composed of other classes.

    Aggregation models are similar to the part-of relationshipin semantic data models.

    33Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    34/54

    The aggregation association

    34Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    35/54

    Behavioral models

    Behavioral models are models of the dynamic behaviorof a system as it is executing. They show what happensor what is supposed to happen when a system respondsto a stimulus from its environment.

    You can think of these stimuli as being of two types:Data Some data arrives that has to be processed by the system.Events Some event happens that triggers system processing.Events may have associated data, although this is not always

    the case.

    35Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    36/54

    Data-driven modeling

    Many business systems are data-processing systemsthat are primarily driven by data. They are controlled bythe data input to the system, with relatively little externalevent processing.

    Data-driven models show the sequence of actionsinvolved in processing input data and generating anassociated output.

    They are particularly useful during the analysis ofrequirements as they can be used to show end-to-endprocessing in a system.

    36Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    37/54

    An activity model of the insulin pump’soperation

    37Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    38/54

    Order processing

    38Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    39/54

    Event-driven modeling

    Real-time systems are often event-driven, with minimaldata processing. For example, a landline phoneswitching system responds to events such as ‘receiveroff hook’ by generating a dial tone.

    Event-driven modeling shows how a system responds toexternal and internal events.

    It is based on the assumption that a system has a finitenumber of states and that events (stimuli) may cause atransition from one state to another.

    Chapter 5 System modeling 39

  • 8/20/2019 Software ngineering Modeling

    40/54

    State machine models

    These model the behaviour of the system in response toexternal and internal events.

    They show the system’s responses to stimuli so areoften used for modelling real-time systems.

    State machine models show system states as nodes andevents as arcs between these nodes. When an eventoccurs, the system moves from one state to another.

    Statecharts are an integral part of the UML and are usedto represent state machine models.

    40Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    41/54

    State diagram of a microwave oven

    41Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    42/54

    States and stimuli for the microwave oven (a)

    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 showsthe 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 fiveseconds. Oven light is on. Display shows ‘Cooking complete’ whilebuzzer is sounding.

    42Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    43/54

    States and stimuli for the microwave oven (b)

    Stimulus Description

    Half power The user has pressed the half-power button.

    Full power The user has pressed the full-power button.

    Timer The user has pressed one of the timer buttons.

    Number The user has pressed a numeric key.

    Door open The oven door switch is not closed.

    Door closed The oven door switch is closed.

    Start The user has pressed the Start button.

    Cancel The user has pressed the Cancel button.

    43Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    44/54

    Microwave oven operation

    44Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    45/54

    Model-driven engineering

    Model-driven engineering (MDE) is an approach tosoftware development where models rather thanprograms are the principal outputs of the developmentprocess.

    The programs that execute on a hardware/softwareplatform are then generated automatically from themodels.

    Proponents of MDE argue that this raises the level ofabstraction in software engineering so that engineers nolonger have to be concerned with programminglanguage details or the specifics of execution platforms.

    Chapter 5 System modeling 45

  • 8/20/2019 Software ngineering Modeling

    46/54

    Usage of model-driven engineering

    Model-driven engineering is still at an early stage ofdevelopment, and it is unclear whether or not it will havea significant effect on software engineering practice.

    Pros Allows systems to be considered at higher levels of abstractionGenerating code automatically means that it is cheaper to adaptsystems to new platforms.

    ConsModels for abstraction and not necessarily right forimplementation.Savings from generating code may be outweighed by the costsof developing translators for new platforms.

    Chapter 5 System modeling 46

  • 8/20/2019 Software ngineering Modeling

    47/54

    Model driven archi tecture

    Model-driven architecture (MDA) was the precursor ofmore general model-driven engineering

    MDA is a model-focused approach to software designand implementation that uses a subset of UML models todescribe a system.

    Models at different levels of abstraction are created.From a high-level, platform independent model, it ispossible, in principle, to generate a working programwithout manual intervention.

    Chapter 5 System modeling 47

  • 8/20/2019 Software ngineering Modeling

    48/54

    Types of model

    A computation independent model (CIM)These model the important domain abstractions used in asystem. CIMs are sometimes called domain models.

    A platform independent model (PIM)These model the operation of the system without reference to itsimplementation. The PIM is usually described using UML modelsthat show the static system structure and how it responds toexternal and internal events.

    Platform specific models (PSM) These are transformations of the platform-independent modelwith a separate PSM for each application platform. In principle,there may be layers of PSM, with each layer adding someplatform-specific detail.

    Chapter 5 System modeling 48

  • 8/20/2019 Software ngineering Modeling

    49/54

    MDA transformations

    49Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    50/54

    Multiple platform-specific models

    50Chapter 5 System modeling

  • 8/20/2019 Software ngineering Modeling

    51/54

    Agile methods and MDA

    The developers of MDA claim that it is intended tosupport an iterative approach to development and so canbe used within agile methods.

    The notion of extensive up-front modeling contradicts thefundamental ideas in the agile manifesto and I suspectthat few agile developers feel comfortable with model-driven engineering.

    If transformations can be completely automated and acomplete program generated from a PIM, then, inprinciple, MDA could be used in an agile developmentprocess as no separate coding would be required.

    Chapter 5 System modeling 51

  • 8/20/2019 Software ngineering Modeling

    52/54

    Executable UML

    The fundamental notion behind model-drivenengineering is that completely automated transformationof models to code should be possible.

    This is possible using a subset of UML 2, calledExecutable UML or xUML.

    Chapter 5 System modeling 52

  • 8/20/2019 Software ngineering Modeling

    53/54

    Features of executable UML

    To create an executable subset of UML, the number ofmodel types has therefore been dramatically reduced tothese 3 key types:

    Domain models that identify the principal concerns in a system.

    They are defined using UML class diagrams and include objects,attributes and associations.Class models in which classes are defined, along with theirattributes and operations.State models in which a state diagram is associated with eachclass and is used to describe the life cycle of the class.

    The dynamic behavior of the system may be specifieddeclaratively using the object constraint language (OCL),or may be expressed using UML’s action language.

    Chapter 5 System modeling 53

  • 8/20/2019 Software ngineering Modeling

    54/54

    Key points

    Behavioral models are used to describe the dynamic behaviorof an executing system. This behavior can be modeled fromthe perspective of the data processed by the system, or bythe events that stimulate responses from a system.

    Activity diagrams may be used to model the processing ofdata, where each activity represents one process step.

    State diagrams are used to model a system’s behavior inresponse to internal or external events.

    Model-driven engineering is an approach to softwaredevelopment in which a system is represented as a set ofmodels that can be automatically transformed to executablecode.