Académique Documents
Professionnel Documents
Culture Documents
Lecture 1
Contents
Introduction. System development. Object orientation,conceptual modeling block design. System development is model building. Models. Architecture. Development processes. Processes and models. &
Introduction
System development:OOSE may be used from the time that the requirement specification exists in some form and all through the systems life time until it is replaced by another system; That is we include new development, further development and maintenance of the system in the period of OOSE use.
Object orientation,conceptual modeling and block design: the basis of OOSE originates from three totally different techniques which have all been used for a long time Object oriented programming. Conceptual modeling. Block design.
Conceptual modeling: conceptual modeling is used to create models of the system or organization to be analyzed ,depending on which system and which aspects one wishes to model, different conceptual models are created. In OOSE, we have expended the technique with object oriented concepts and the ability to express dynamic behavior.The model we develop are used mainly to understand the system and to obtain a good system architecture. These models form the basis for the actual system design.
Block design:the idea of block design is taken from hardware design where a no. Of modules, each providing a specific functionality, are connected together with well defined interfaces . one should be able to do the same thing with software: collect together programs and data into modules(blocks) and describe their mutual communication through interfaces. The OOSE has satisfied this need.
We work with five different models: The requirement model: this model aims to capture the functional requirements. The analysis model: this model aims to give the system a robust and changeable object structure. The design model: aims to adopt and refine the object structure to the current implementation environment. The implementation model: aims to implement the system, The test model: aims to verify the system.
The models developed associated with the processes that produce them
Analysis
Construction
Testing
Design model
Test model
Implementation model
Models(contd.) Each model tries to capture some part or aspect of the system to be built. These models are the output of the activities shown in figure on the last slide. The basic idea with these models is to capture right from the start all the functional requirements of the system from the users perspective.
Architecture:system development includes the development of different models of a software system. Our goal is to find out a powerful modeling technique( language or notation) for each of these models. Such a set of modeling techniques( one for each model) defines the architecture upon which the system development method is based. Or architecture of a method is the denotation of its set of modeling techniques.
A modeling technique is described by means of syntax,semantics and pragmatics. By syntax we mean how it looks, semantics is what it means and by pragmatics we mean the heuristics and other rules of thumb for using the modeling technique. To build models, we require a method to show us how to work with the modeling techniques in order to develop systems. The method describes how we, with the aid of modeling techniques, can create models of different systems. The specific system architecture is therefore the result obtained after applying a method to the system.
Architecture(contd.) In concern with object orientation we can regard the architecture as a class. For each system we design, we create an instance of this class. All system architectures have the same characteristics(modifiable, understandable and so on) but they can all look different. The development method can be seen as an operation on this architecture, where parameters can be requirement specification , implementation environment and so on.
Architecture New instances are created System A instance System B instance System C instance
Development processes: instead of describing a project in a waterfall description , the development work for a specific product is divided among processes, where each of these processes describes one activity of the management of a product. Each process handles a specific activity of the system development. The main processes are the analysis, construction and testing processes. There is also a component development process.
Analysis process: in this process we create a conceptual picture of the system we want to build. Here the requirements model and the analysis model are build. Here the requirement model and the analysis model are developed in order to understand the system and to communicate it to its orderer and to the construction process. Construction process: in this process we develop the system from the models created within the analysis process . this process develops two models: the design model and the implementation model. This process thus includes the implementation and results in a complete system.
Testing process: this process integrates the system, verifies it and decides whether it should be passed on for delivery. This process develops test model. Component development process: this process mainly communicates with the construction process. This process develops and maintains components to be used during construction. The components are implemented code that can be used in several different applications.
Processes and models: during a development we create models of the system we are to design. To design these models,we work from a process description that describes the process with which we develop the system. Each process takes one or several models and transforms it into other models. The final model should be a complete and tested description of the system. This description normally consists of source code and documentation. Systems requirement specification can be regarded as an initial model within our chain of transformations.
Implement ation
Unit testing
Integration testing
System testing
Model Architecture
The system development is basically concerned with developing models of the system. The work is concerned with both identifying and describing objects, and with building models using these objects. For each model we develop, there exist different types of objects. By modeling with objects in all models , we gain all the benefits of object-orientation.
Model Architecture
The object should be obvious, tangible things, things that we can focus on. Model architecture basically describes how good an object model is? The most important criterion is that it should be robust against modification and help the understanding of the system. As we know for certain that all systems we build will be modified, we must create a robust model structure.
Model Architecture
Therefore we must analyze how modification will affect the system. Our structure should be affected by this analysis.
Requirement Model
The requirement model aims to capture the functional requirements of the system. This model consists of.. A use case model. Interface description. A problem domain model.
Interface description: This specifies in detail what the user interface will look like where the use cases are performed.
Problem domain model: This model is used to identify objects that represent occurrences in the problem domain to give a conceptual picture and better understanding of the system.
May be expressed in terms of Implemented Structured Realized by Tested in by by Domain Object model Analysis model Design model Implementation model Testing model
Analysis Model
After developing the requirement model which aims to define the limitations of the system and to specify its behavior, and getting approval from the orderer, the development of the actual system starts with the development of the analysis model. This model aims to structure the system independently of the actual implementation environment. The focus is on the logical structure of the system which would be robust and maintainable structure that is also extensible.
The objects of the analysis model: Many future changes may come from changes in the implementation environment, but since our system is independent of the actual implementation environment, these changes will not affect this logical structuring. Using very few changes in this logical structure we can adapt the actual implementation environment.
In the information space of this model, there are three dimensions Information, behavior and presentation. Information dimension specifies the information held in the system. The systems internal state is defined along this dimension. In the behavior dimension, we specify the behavior which the system will adopt. The presentation dimension provides the details for presenting the system to the outside world.
Behavior
Information
The analysis model is built by specifying objects in this information space. The object types used in this analysis model are entity type, interface type and control type. The entity object models information that should be held for a longer time and should typically survive a use case. All behavior naturally coupled with this information should also be placed in the entity object. Example may be a person in the system.
Entity object
Interface object
Control object
The interface object models behavior and information that is dependent on the interface to the system. An example of the interface object is the user interface functionality for requesting information about a person. The control object models functionality that is not naturally tied to any other object.
For example behavior that consists of operating on several different entity objects such as a control object calculating taxes using several different factors. The basic assumption of having three different objects is that any system change will affect only one object in the system.
The requirement model is structured in the analysis model: the analysis model is formed from the use case model. Each use case will be entirely divided into objects of three types(entity, interface and control). In the requirement model we specify the entire functionality of the system. This functionality is now structured to obtain a robust and extensible structure. The functionality specified in the use cases should be allocated to different objects. An object can be common to several use cases.
Use cases are partitioned according to the following principles.. Those use case functionalities which are directly dependent on the systems environment are placed in interface objects. Those functionalities dealing with storage and handling of information which are not naturally placed in any interface object are placed in the entity object.
Functionalities specific to one or a few use cases and not naturally placed in any of the other objects are placed in control objects. By performing this division we obtain a structure which helps us to understand the system from a logical view and also one which gives high localization of changes and thus less sensitivity to modification. As the objects are identified and specified, the relationship among the objects is also described through different types of association.
Design Model
In the construction process, we construct the system using both the requirement model and the analysis model. First we create a design model that is refinement and formalization of analysis model. The initial work when developing the design model is to adapt to the actual implementation environment.
Design Model
The analysis model is developed assuming the ideal conditions which is then adapted to the reality. The implementation environment is not introduced earlier due to the following reasons. We do not want it to affect the basic structuring of the system, since the current circumstances may change during the system life cycle.
Design Model
We can not focus on the essentials when developing the analysis model due to the complexity typically introduced while looking at the implementation environment. Design model can be regarded as a formalization of the analysis space, where we adapt the analysis model so that it fits into our implementation environment. Thus in the information space of the design model a new dimension implementation environment is added.
In design model the concept of the block is used which describes the intension of how the code should be produced. The blocks are the design objects and are represented by the rectangle. One block normally represents one analysis object. It could be possible to use several types of blocks such as interface block, entity block and control block. Changes are desirable in the design model such as split of one block into two, but it should not affect the analysis model.
The design model should be a drawing of how the source code should be structured , managed and written. To describe the communication between blocks the concept of stimuli is used. A stimulus is sent from one block to another to trigger an execution in that block. This execution may send new stimuli to other blocks. To describe a sequence of stimuli, interaction diagram in which we can describe how several blocks communicate by sending stimuli to each other, is used. Here we use use case model and describe in detail for each use case, how and which stimuli will be sent and in which order.
s1
s2 a1 a2
s3 s4 s5 a4 a3 a5
Working with design model: during the construction work we proceed from the analysis model . For each object in the analysis model, we assign a block in the design model. This transformation occurs totally mechanically and can be performed by a tool. Depending on the implementation environment we may need to make a deviation so that this one to one relationship may be modified.
When we have created the block structure, we draw the interaction diagrams to show how these blocks communicates . normally we draw an interaction diagram for every use case. Thus requirement model also forms the basis for the construction process and we can guarantee that the system we construct is exactly what the user wants.
Implementation Model
The implementation model consists of the annotated source code. The information space is the one that the programming language uses . This is not necessary to have an object oriented programming language but it is desirable since all fundamental concepts can easily be mapped on to language constructs.
Implementation Model
The base for implementation model is design model where the interface of each block is specified and the behavior of what is expected behind this interface is described. It is strongly desirable to have an easy match between a block and the actual object module. When the implementation environment is smooth, it is easy.
Implementation Model
But in case of a complex implementation environment one block may map onto 1-5 classes. The ability to use components is very powerful implementation tool.
Test Model
This is the last model developed in the system development. It describes the result of testing. The fundamental concepts in testing are mainly the test specification and the test result. Initially the lower levels such as object modules or blocks are tested by the designers. The lower subsystem levels are then tested.
Test Model
One tool for integration testing involves using the use case model to integrate one use case at a time. This is normally performed by an independent testing group. Then the whole system is tested. The requirement model again forms a powerful tool here and we see that the requirement model is verified by the testing process.
Analysis
Why an analysis process: The aim of the analysis phase is to analyze, specify and define the system to be built. The models developed in this phase describe what the system is to do. The basis of this modeling is basically the requirements of the system. It is important to carry on a dialogue with the perspective orderers and users so that the system that is built is really what is wanted.
Analysis
The models developed during analysis are fully application oriented, and no consideration is paid to the real implementation environment where the system is to be realized, for example the programming languages, DBMS, h/w configuration etc. The advantage with this procedure is that
Analysis
The architecture of the system will be based on the problems and not on the conditions prevailing during the implementation. Analysis model will remain intact, if and when the implementation conditions change.
Analysis
What is done in analysis: two different models are developed in analysis, the requirement model and the analysis model. The real base is the requirement specification and the discussion with the prospective users.
Analysis
The requirement model , delimits the system and defines its functionality. For this purpose a conceptual picture of the system is drawn using problem domain objects and specific interface description of the system is given if it is meaningful. The system is also described as a number of use cases that are performed by a no of actors.
Analysis
The analysis model gives a conceptual configuration of the system, consisting of control objects, entity objects and interface objects. The purpose of this model is to develop a robust and extensible structure as a base for construction. The analysis model comprises a total functional specification of the system we wish to develop, without any reference to the implementation environment. In the construction process the system is constructed from the analysis model.
Example System:
Following system will be used to understand the requirement model and the analysis model. The system controls a recycling machine for returnable bottles, cans and crates. The machine can be used by several customers at the same time and each customer can return all three types of items on the same occasion.
Example System:
The system will register how many items each customer returns and when the customer asks for the receipt, the system will print out what he or she deposited, the value of the returned items and the total return sum that will be paid to the customer. The system is also used by an operator. The operator wants to know how many items of each type have been returned during the day.
Example System:
At the end of the day, the operator asks for a printout of the total no. Of items that have been deposited on that machine on that particular day. The operator should also be able to change information in the system such as the deposit values of the items. If there is something amiss, for instance if a can gets stuck , the operator will be called by a special alarm signal.
Requirements Model
System development based on user requirements: the requirement model aims to delimit the system and define the functionality that the system should offer. This model could function as a contract between the developer and the orderer of the system and thus forms the developers view of what the customer wants.
Requirements Model
The requirement model will govern the development of all other models , so this model is central throughout the whole system development. The requirement model will be structured by the analysis model, realized by the design model, implemented by the implementation model and tested by the testing model. Not only will the other models be verified against the requirement model but the other models will actually be developed directly from it.
Requirements Model
Since the whole system development starts from what the users wish to be able to do with the system, we build the system from the users point of view. The requirement model consists of three parts.. 1. Use case model. 2. The problem domain object model. 3. User interface descriptions.
Operator
All these use cases need some description which is given with this use case diagram. Extension: A powerful concept that is used to structure and relate use case descriptions is the extension association. Extension specifies how one use case description may be inserted into, and thus extend, another use case description. Extensions to use cases can be described in a very simple way and in particular changes and additions to functionality are more easily made.
In our example when an item is stuck the system should issue an alarm. We can describe this alarm as a use case description that extends the returning item use case description. The extension association is drawn with a dashed arrow since it is a class association. The instance associations are drawn with full lines. Instance associations are associations between an actor and a use case, because these are the instances of actors which communicate to the instances of the use cases.
Item stuck
An other example may be a login/logout use case which is extended by all the use cases of the system.
Login/logout
Extending use case continues the behavior of a base use case. The extending use case accomplishes this by conceptually inserting additional action sequences into the base use-case sequence. This allows an extending use case to continue the activity sequence of a base use case when the appropriate extension point is reached in the base use case and the extension condition is fulfilled. When the extending use case activity sequence is completed, the base use case continues.
Extensions are used in the following cases To model optional parts of use cases. To model complex and alternative courses which seldom occur, for instance item stuck in our example. To model separate sub-courses which are executed only in certain cases. To model the situation where several different use cases can be inserted into a special use case such as login/logout example.
Interface Description
This specifies in detail what the user interface will look like when the use cases are performed. By sketching or by using a user interface management system (UIMS) we can simulate the use cases as they will appear to the user before even thinking about how to realize them.
Interface Description
When designing user interfaces, it is essential to have users involved. By doing user interface design at this early stage, this can be guaranteed. At this stage other system interfaces such as a communication protocol that should be standardized can also be defined.
Interface Description
The recycling machine example has different kinds of interfaces. There is a customer panel including buttons, holes and alarm devices.There is also a receipt lay out, interface for operator to change information, resetting alarms, requesting day summaries and so on.
My receipt
receipt
customer
can
crate bottle
Problem domain model can be used for following purposes. It supports in the formulation of use case description To gain a better understanding of the system. This is used when doing enterprise modeling.
uses
uses
Returning item
customer
Receipt printer
Operator panel
Analysis Model
A special type of acquaintance association is the consists of association which is used to state that an object is composed of other objects. For example the customer panel contains the buttons and slots to insert the deposit item which can become interface objects in their own right. The customer panel is then called the central interface object and the hierarchy thus formed is called the containment hierarchy or the partition hierarchy.
Bottle slot
Analysis Model
To identify which part of the flow in a use case should be allocated to interface object, ,the interaction between the actors and use cases is analyzed. Look for the units displaying one or more of the following characteristics They present information to the actor or request information from them.
Analysis Model
Their functionality is changed if the actors behavior is changed. Their course is dependent on a particular interface type.
Analysis Model
Following are some strategies for allocating the functionality among different types of objects.. Computation dominant control or embedded control: is where we place the controlling functionality inside the system i.e. In the control objects and in the entity objects. Here the interface objects do not have very much functionality. This structuring can be efficient in execution but hard to prototype from.
Analysis Model
Dialogue dominant control: is where we place much control functionality in the interface objects and these objects model much of the functionality of the system. In this case we do not have many control objects in the model. This strategy is easy to prototype from but increases the complexity of the interfaces. Mixed control: places the control on both sides allowing invocation of dialog from the computational side and vice versa.
Analysis Model
Balanced control: is where we separate the control from both the dialogue and the computation. The global control component which typically is a control object, governs sequencing among invocation of dialogue and computational functions.
Analysis Model
Entity objects: to model the information that the system will handle over a longer period of time, entity objects are used. Besides the information to be handled, the behavior that naturally belongs to this information is also allocated to the entity object. The entity objects are identified from the use cases.
Analysis Model
For example consider the use case description from the recycling machine example When the customer returns a deposit item, it is measured by the system. The measurements are used to determine what kind of can, bottles or crates has been deposited. If accepted the customer total is incremented as is the daily total for that specific item type. If the item is not accepted , the light for NOT VALID is highlighted on the panel.
Analysis Model
When the customer presses the receipt button , the printer prints the date. The customer total is calculated and the following information is printed on receipt for each item type. Name. Number returned. Deposit value.
Analysis Model
Total for this type. Finally the sum that the customer should receive is printed on the receipt.
Analysis Model
By analyzing this use case we can identify the entity objects can, bottle and crate which have some common properties inherited from the entity object deposit item. Another entity object is receipt basis which will model the information for the items deposited by a specific customer.
Analysis Model
Any entity object and its attributes can be shown in the following manner.
Attribute[1] Type
Here type is the data type of the attribute such as String, Integer etc.
Analysis Model
For example
ECU Name[1] Deposit item String Integer
Analysis Model
Entity Objects necessary to deposit items in the recycling machine
Item[0-n] Receipt basis Deposit item inherits inherits inherits can bottle crate
Analysis Model
Operations on entity objects: The only way to manipulate an entity object is via the operations. Therefore the identified operations must be sufficient for all those who wish to use the entity objects. The detailed description of the use cases is the extremely valuable means of finding the desired operations.
Analysis Model
The whole course of events is described in the use cases, and by extracting those parts that concern our entity object, the operation will appear. The following is a list of typical operations that must be offered by an entity object. Storing and fetching information.
Analysis Model
Behavior that must be changed if the entity object is changed. Creating and removing the entity object.
Analysis Model
An operation on an entity object may mean that the entity object contacts another entity object and asks for information about something. This communication takes place through communication associations. A communication association models communication between two objects. Through this association an object sends and receives stimuli.
Analysis Model
The association starts from the object that is to perform manipulation and is directed to the object where the manipulation is to take place. Since it is an instance association, it is solid and it is dynamic association.
Receipt basis Deposit item
Receipt basis increments the deposit item no when a new item has been received
Analysis Model
Control Objects: In more complex use cases, there often remains behavior that is not naturally placed in either of two object types. Such behavior is placed in control objects. The control objects typically act as glue which unites the other objects so that they form one use case.
Analysis Model
Control objects are normally found directly from the use cases. Typical types of functionality placed in the control objects are transaction-related behavior or. Control sequence specific to one or a few use cases or. Functionality that separates the entity objects from the interface objects.
Analysis Model
In our recycling machine example following are the control objects
Report generator
Information administrator
Analysis Model
Working with the analysis objects: When working on the development of the analysis model, normally we are working with one use case at a time. Thus for one specific use case we identify interface objects , entity objects and control objects before continuing with the next use case. Since one object may participate in several use cases, this process is iterative.
Analysis Model
This means that when a set of objects already exist, these may be modified to fit also the new use case. The goal is to form as stable a structure as possible. The specification of the objects should be written in text form. Each objects role and responsibilities should be described.
Analysis Model
When the objects have been identified and described, though we may describe how the objects offer the use case, not as formally as specifying what stimuli will be sent between the objects, but in a more prose-like form. A use case view of the objects is created initially which shows how they will be used in the use case. Then we may describe the the use case in terms of these objects to show how they will provide the use case.
Customer panel
Receipt printer
Receipt basis
crate
Use case view for the objects of use case returning items
Use case description: When the customer returns a deposit item, it is measured by the system. The measurements are used to determine what kind of can, bottles or crates has been deposited. If accepted the customer total is incremented as is the daily total for that specific item type. If the item is not accepted , the light for NOT VALID is highlighted on the panel.
When the customer presses the receipt button , the printer prints the date. The customer total is calculated and the following information is printed on receipt for each item type. Name. Number returned. Deposit value. Total for this type. Finally the sum that the customer should receive is printed on the receipt.
When the customer returns a deposit item the customer panels sensor measure its dimensions. These measurements are sent to the control object Deposit item receiver which checks via Deposit item whether it is acceptable. If so ,, Receipt Basis increments the customer total and the daily total is also incremented. If it is not accepted, Deposit Item receiver signals this back to Customer panel which signals NOT VALID.
When the customer presses the receipt button, customer panel detects this and sends this message to deposit item receiver. Deposit item receiver first prints the date via receipt printer and then asks the receipt basis to go through the customers returned item and sum them. This information is sent back to deposit item receiver which asks receipt printer to print it.
Sub systems: when the analysis objects have been identified, the system will contain a large no of objects.for a medium sized project, typically between 30 & 100 objects will be specified. These objects need to be placed in a group to find the clear overview of the system. Such groups of objects are called subsystems. The system thus consists of a no. of sub systems. Which can themselves contain sub systems.
Subsystems are thus a way of structuring the system for further development and maintenance. The task of sub systems is to package the objects so that the complexity is reduced. The lowest level of sub systems is to be viewed as a change unit. We call these units service packages. These should be viewed as atomic, I.e. if the customer wants it, he will have whole of it, otherwise he will get nothing.
The most important criterion in subsystem division is predicting what the system changes will look like and then making the division on the basis of this assumption. The division into subsystems should also be based on functionality of the system. All objects which have a strong mutual functional coupling will be placed in the same sub system.
Another criterion for the division is that there should be as little communication between different subsystems as possible.
In our recycling machine example the following subsystems can be considered. Alarm: consisting of all the objects concerning alarm activity. Deposit: consisting of all the objects related to deposit of the items. Administration: consisting of all the objects involved in the management of the system.
Alarm device
administration
can
bottle
In small systems the subsystem division is done in the end of analysis while in large system may be done much earlier.Thus for large systems there may be some other criteria for division. Following are few of these criteria Different development groups have different competence or resources and it may be desirable to distribute the development work accordingly. In a distributed environment , a subsystem may be required at each logical node. If an existing product can be used in this system,this product may be regarded as a subsystem.
Assignment 1
Compare various life cycle models of software development. Explain Object oriented approach of software development. How requirement elicitation is managed? Explain requirement elicitation activities in detail.