Oose Notes 1
Oose Notes 1
i
ii
Unit 1
1
1.0 Questions
i. Explain Object Oriented Software development with Example. [10
Marks, 2071]
ii. Explain object orientation development process and object-oriented
analysis with example. [10 marks, 2072]
iii. What is requirement model ? Explain with practical example. [2072]
iv. Differentiate between model architecture and requirement model.
[2071]
v. Explain with example software process model and a software process.
[10 Marks, 2075]
vi. Differentiate between object-oriented software engineering and
object-oriented software development.[10 Marks, 2074]
[Hint: Software development is done by using different process model
like waterfall, spiral]
vii. Explain about object-oriented system design and object-oriented
program design. [ 10 Marks, 2074]
2
SN Software development life cycle System development life cycle
1 It only looks at software It involves end-to-end People,
components development planning, process, Software/Technology
technical architecture, software deployment. This includes Change
quality testing and deployment of Management, training,
working software Organizational updates, also.
2 is about building a software System development life cycle is
(“only”) in a phased approach about implementing hardware and
systematically. software in a phased manner
systematically.
3
• The development process called use–case driven development stresses
that use cases are involved in several phases of the development
including analysis, design, validation and testing.
• OOSE is the first object-oriented design methodology that employs
use cases in software design.
• The use–case scenario begins with a user of the system initiating a
sequence of interrelated events.
• Objectory has been developed and applied to numerous application
areas and embodied in the CASE tool systems.
• Objectory is built around several different models:
i. Use–case model: It defines outside (actors) and inside (use case) of
the system’s behavior
ii. Domain object model: The objects of the real world are mapped
into the domain object model
iii. Analysis object model: It presents how the source code
(implementation) should be carried out
iv. Implementation model: It represents the implementation of the
system
v. Test model: It constitutes the test plans, specifications and
reports
• OOSE is one of the precursors of the Unified Modeling Language
(UML), such as Booch and OMT.
4
• It includes a requirements, an analysis, a design, an implementation
and a testing model.
• Interaction diagrams are similar to UML's sequence diagrams. State
transition diagrams are like UML state-chart diagrams.
5
Fig: use case diagram
Object-oriented Analysis
• This phase of s/w development is concerned with determining the
system requirements and identifying classes and their relationship to
other classes in the problem domain.
• Scenarios are a great way of examining who does what in the
interactions among objects and what role they play; that is, their
interrelationships. This intersection among objects’ roles to achieve a
• given goal is called collaboration.
• In essence, a use case is a typical interaction between a user and
system that captures users’ goals and needs. Expressing high level
processes & interactions with customers in scenario & analyzing
6
it is referred to as use–case modeling. It represents users’ view of
the system or users’ needs.
• Looking at the physical objects in the system also provides us
important information on objects in the systems. The objects could be
individuals, organizations, machines, units of information,
• pictures, or whatever else makes sense in the context of the real–
world systems.
• In regarding documentation, 80 – 20 rule is generally applies where 80
percent of the work can be done with 20 percent of the
documentation. Good modeling implies good documentation.
Object-Oriented Analysis Unified Approach:
• The goal is first to find domain of the problem and system’s
responsibilities by knowing all user needs which is accomplished by
models.
• These models concentrate on describing what the system does rather
than how does it. OOA has the following steps:
i. Identify the Actors,
ii. Develop a simple business process model using UML Activity
diagram,
iii. Develop the Use Case,
iv. Develop interaction diagrams,
v. Identify classes
7
Fig: O-O-Analysis
8
iii. Design methods
iv. Critique what you have proposed. If possible, go back and refine
the classes.
Object-Oriented Design: Unified Approach:
Fig: O-O-Design
UA combines Jacobson’s analysis and interaction diagrams,
Booch’s object diagrams & Rumbaugh’s domain models to get good design.
OOD step consists of
i. Designing classes, attributes, methods, associations, structures &
protocols, apply design axioms
ii. Design the Access Layer & Design and prototype User interface
iii. User satisfaction and Usability Tests based on Usage / Use cases
iv. Iterate and refine the design
9
i. Specification
ii. Design
iii. Validation
iv. Evolution
A software process model is an abstract representation of a process. It
presents a description of a process from some particular perspective
10
• hard to adopt to software requirement changes.
• Difficult to estimate time and cost for the phases.
• Handling risk is not part of this model.
V-shaped model:
• it’s a variation of waterfall model which more emphasized on testing.
• It’s a sequential model each phase must be completed before next
phase begins.
• It provides simple and easy to follow map of the software
development process.
11
Best situation to v-model:
• v-model can be used for small to medium size projects where
requirements are clearly defined and fixed.
• It can choose when ample technical resources are available and with
needed technical expertise.
Cons:
• It is too simple to accurately reflect the software development
process.
• It is inflexible; it has no ability to respond changes.
• It produces inefficient testing methodologies.
Fig: V-model
12
Spiral Model:
• The spiral model is similar to the incremental model, with more
emphases placed on risk analysis.
• The spiral model has four phases: Planning, Risk Analysis, Engineering
and Evaluation.
• A prototype produced at the end of risk analysis phase.
• A software project repeatedly passes through these phases in
iterations (called Spirals in this model).
Advantages:
• High amount of risk analysis, hence avoidance of risk is enhanced.
• Spiral can be used for large and mission critical projects.
• Additional functionality can be added at a later date.
• Software is produced early in the software life cycle.
Disadvantage:
• can be costly
• Risk analysis requires highly specific expertise.
• Projects success is highly dependent on the risk analysis phase.
• don’t work well for small projects
13
Fig: Spiral Model
Comparison of various SDLC Model
Features/ Waterfall model Iteration model V-shaped Spiral Model Extreme model
Models Model
Use Small project Long running Small projects Complex large small-medium
projects Projects size projects
14
Object Oriented Software development
• The object oriented software development life cycle (SDLC) consists
of three macro processes:
i. object–oriented analysis
ii. object–oriented design
iii. object–oriented implementation.
15
• Object–oriented system development includes object–oriented
analysis, object–oriented design, Prototyping, Component–based
development, Incremental testing.
16
◦ The traditional approach focuses on the functions of the system
and says software as a collection of programs (or functions) and
isolated data.
17
◦ testing
◦ refinement
• The development is a process of change, refinement, transformation
or addition to the existing product. The software development
process can be viewed as a series of transformations, where the
output of one transformation becomes input of the subsequent
transformation.
18
• An example of s/w development process is the waterfall approach
which can be stated as below.
19
Unit 2
20
Questions
i. Explain function/data methods in object oriented system development
with Example. [5 marks, 2072]
21
data is sent between those be method and properties of
functions. that object.
• A system developed using • This method is easier to
function/data method often understand and thus easier to
becomes difficult to maintain. maintain than the result of
function/data method.
• In function/data method • Each object should be defined
approach all function must know internally, which includes
how the data must be stored, defining the information that
i.e data structure. each object must hold.
• System generated using this • Items with low modification
methods often quite unstable; a probability are naturally
slight modification will identified and it is possible to
generate major consequences. isolate at an early stage items
with a high probability of
modification.
• The requirement specification • Object is a naturally occurring
is normally formulated in entities in the application
normal human language not in domain. So this method will
function/data structure, which model the application domain
creates large semantic gap more efficiently and reduces
between the external and the semantic gap between
internal views of the system. them.
22
Unit 3
23
3.0 Questions
i. What is requirement model ? Explain with practical example. [2072]
ii. Explain with example of different steps to develop the requirement
model from the user requirements. [10 Marks, 2074]
iii. Differentiate between model architecture and requirement model.
[2071]
iv. Comparison between components and component management. [2075]
v. What is a component ? Explain component management with example.
[2074]
vi. What are the main reasons in construction phase ? What is done in
construction phase ? Explain. [10 Marks, 2071]
vii. Differentiate between model architecture and requirement model.
[10 Marks, 2071]
viii. Explain the classification of the real time system with example. [5
Marks, 2072].
ix. Requirement Engineering
Model Architecture:
• System development is basically concerned with developing models of
the system i.e. identifying and describing objects in certain
information space.
24
• There are several ideas regarding to find a good object, however good
object doesn’t exist on its own.
• An object can be perfectly right for one model, but totally wrong in
another model.
• The important criteria is that it should robust against modification
and should help to understand system. As we know for the certain
that the all systems we build will be modified, so we must create a
robust model structure. Therefore we must analyze how modification
will affect the system
• after we have worked with a model for a while, a stable structure will
evolve for the system. By working a long time with the early models,
we will obtain a good understanding of the system.
Requirement Models:
• Requirement models defines the system boundaries and functionality
that should offer .
• It function as contact between developer and the ordered of the
system, specially from developers view of what customer wants.
• This model should be readable also for non OOSE practitioners.
• This model govern the development of all other model so this model is
central one throughout the whole system.
25
• The requirement model will be structured by analysis model, realized
by design model, implemented by implementation model and tested in
testing model.
iii. interface.
• The collected use case specify all the existing way of using the
system.
26
Interface Description:
• We should define the interface in details while we describes the the
use cases and communicating to potential users.
• We can simulate the use cases with sketches of what user will see in
the screen and for sophisticated simulation use UIMS(user interface
management system)
• This model guarantee that the user interface will be consistent with
the user’s logical system perspective.
• In the recycling machine the user interface is quite trivial (being
mainly a push-button machine)
27
• When requirements specification exists in very vague form, it is
difficult to define task and delimitation(boundary) of a system.
• So, it is good to develop a logical view of the system using problem
domain objects.
Q.1 what are the main reasons in construction phase ? What is done in
construction phase ? Explain.
There are three main reasons for having construction phase.
• Analysis model is not sufficiently formal:
28
To change the source code we must refine the object; which operation
should we offer, exactly what should the communication between
different objects look like etc.
• the actual system must be adopted to implementation environment:
In analysis we assumed an ideal world for our system. Actually there is
no ideal world and we must adopt to the environment in which system
the system is to be implemented.
• To validate the analysis results:
In construction we see the results of analysis, if we discover unclear
29
[Todo: Read more on text book page 219]
Q.1 Explain the classification of the real time system with example. [5
Marks, 2072].
30
Classification of real-time system:
It can be classified into:
Component:
• Ex. For a Car manufacture; tires, steering wheel, gear box, doors,
seats, engine, gas tank can be the components which may or may not
be further divided to smaller components.
31
• To make a component reusable in various applications, it must be be
independent of the application for which it was designed. (but not,
necessarily, always)
32
an entity object that are used to develop other entity object and
whose information should be stored in a database, a general
framework can be developed as a component. Ex. ORM(object
relational Mapping)
• Interface Object:
Interface objects can be implemented using components. Ex. For
windows systems, windows buttons and scroll bars are typical
components. Similarly one application could have similar interface
which then could be a general framework.
• Some Control Objects:
General function such as logging activities, data collection, for
statistics, online-help etc possibly used in multiple places and even
in multiple application which could be a reusable framework.
• Different kinds of types:
different kinds of types will occur at various phases for example
attributes types, types of parameters, and local types, when
implementing the blocks some of this types are general and can be
implemented as component.
Component Management:
The development of component is often more expensive that the
development of ordinary software that’s why the component system is
33
normally not profitable for only one project. The real benefits come when a
component could be use on multiple projects. Thus component management
should be based on multiple projects.
34
fig: An organization of component management
Unit 4
35
4.0 Question
i. Explain Software Matrics with Example. [5 Marks, 2073]
36
iv. What do you mean by software quality assurance ? Explain. [5 Marks,
2072]
37
• Base your work on a detail plain developed in advance. Perform
evaluation at all stages with criteria established in advance.
Preparation:
• All personnel involved in the new order of work need education and
training.
• Give strict method process definition, more emphasis can be put on
formal education and training.
• A new development process involves a lots of changes which brings
potential risks.
• These risk can be managed by three simple steps:
i. Risk identification
ii. Risk valuation
iii. Managing the risks
38
Fig: The process of requirements analysis
• The requirements analysis process delivers a well-defined result: the
requirement model with the use case specification.
• The next is analysis process which forms the well defined result
process model.
39
• Analysis model is the input for the construction process. The
construction process has three sub-process. They are use case design,
block construction and subsystem construction.
• The well defined result delivered by construction process is design model and
source code for the unit-test blocks.
40
Fig: the component
41
Fig: Management part of the project
• Project management phases are :
i. Pre-study: It studies about if the project is practicable or not. It
is done by defining and evaluating different kinds of requirements
to judge projects technically and practically.
ii. Feasibility Study: It studies different technical alternatives and
their consequences.
iii.Establishment: Detailed plans and resource plans are developed.
iv.Execution: The projects is developed in accordance with the plans
previously prepared.
v. Conclusion: The project is completed and proposals to improve the
project and development methods are summerized.
42
Project Staffing:
One of the difficulties in software development lies in the staffing problems. Software
knowledge and skills, which we call a software project team, work together to develop
development. Therefore, project staffing, that is, how to form software project teams,
• System architecture group: These people are responsible for making system
architecture and delivering coherent idea to the projects. They are core of
development and they same for at least first three processes. i.e. requirement
groups.
43
particular use case should also offer object, use case design and implementation
• During construction phase more people can add to existing group or add new group
to manage more people needed in this phase
◦ Methodologist
◦ Quality Assurance
◦ Documentation, manuals and training
◦ Reuse coordinator
◦ Staff
◦ Help system coordinator
44
v. The main tools for quality assurance are development process, reviews
and audits, testing and metrics.
vi. To achieve good quality disciplines, and high quality awareness, an
independent quality group responsible for quality assurance in the
development department may be needed.
Software metrics
• Software metrics is a necessary method for controlling a
development, which can measure either the process of development or
various aspects of the products.
• Process-related metrics measures things like total development time,
schedule time and no .of faults during testing.
• Example of process related metrics are:
45
- Total development time,
- development time in each process and subprocess
- cost for quality assurance.
• Process related metrics may form a basis for future planning.
• Product related metrics has not been demonstrated to be a usefull
quality predictor.
• The actual code metrics that are more appropriate for OOSE are:
◦ Total no. of classes
◦ Number of classes reused and the number newly developed.
◦ Total number of operations.
◦ Number of operation reused and the number newly developed etc.
• Some statistical metrics interesting to measure are:
◦ average number of operation in a class.
◦ Length of operations.
◦ Stimuli sent from each operation.
46
◦ Average number of inherited operation.
◦ For instance, the mcCabe cyclomatic complexity measures the
complexity of graph such that it draws the sequence of program as
a graph. N= Connection – Nodes + 2
47
Unit 5
48
Object Oriented Analysis/Coad-yourdon(OOA):
• In OOA, an analysis model is developed to describe the functionality
of the system.
• The idea in Coad-yourdon design is to extend this model with respect
to processes(tasks), human interfaces and DBMS.
• This methods consists of five steps:
i. Finding class and objects: Specifies how class and object should
found.
ii. Identifying structure: It is done in two different way:
▪ generalization-specialization(gen-spec)
▪ whole part structure
iii.Defining subjects: It is done by partitioning the class and objects
model into larger units. Subjects are group of class and objects
iv.Defining attributes: It is done by identifying information and the
association that should be associated with each and every instance.
The identified attributes are placed in correct order of inheritance
hierarchy.
v. defining services: it means defining operations of classes.
49
Fig: OOA applied to part of recycling system
50
Object Oriented Design(OOD/BOOCH):
• It is a widely used object oriented method that helps us design our
system using the object paradigm
• It covers the analysis and design phases of an object oriented system.
• The Booch method consists of the following diagrams :
i. Class diagrams,
ii. Object diagrams,
iii. State Transition diagrams,
iv. Module diagrams
v. Process diagrams,
vi. Interaction programs.
• Methods involves following steps:
i. Identify classes and objects: Involves finding key abstraction in
problem space and important mechanisms that offer the dynamic
behavior over several objects.
ii. Identify class and object semantics: involves establishing the
relationship between classes and objects identified earlier.
iii.Identify class & object relationships: involves extending the
previous activities to include the relationship between classes and
objects and to identify how these interact with each other.
iv.Implementing classes and objects: involves delving into classes
and objects and determining of how to implement them. A decision
51
is made on how to use particular programming language to
implement this classes.
52
Fig: Documentation aspects in OOD
53
Hierarchical Object Oriented Design(HOOD)
• HOOD is a method of hierarchical decomposition of the design into
software units based on identification of objects, classes and
operations reflecting problem domain entities.
• It is a detailed design method which Starts after analysis & Extends
down to coding and testing.
• It has Object Oriented Paradigms.
i. Unit of decomposition is no more the action, but the object
ii. An object is an abstraction of a real world object.
• The hierarchy described in HOOD takes two forms:
i. Uses: dependence of one object on another’s services
ii. Functional decomposition: object split into child objects, to give
functionality of the parent object
• this method has four phases:
i. Problem definition: A statement of the problem is made to provide
a context for the current object level.
ii. Development of informal solution strategy: solutions to the
problem defined previously is outlined.
iii.Formalization of the strategy: major concept of the informal
solution strategy is extracted to formalize the solution.
iv.Formalization of the solution: It is done by developing a formal
model of each identified objects. This is performed in five steps:
54
i. identification of objects is done by extracting the nouns from
the informal solution strategy and selecting appropriate ones.
ii. Identification of Operations is done by extracting the verbs
from the informal solution strategy.
iii.Grouping objects and operations involves attaching each
operation to an appropriate object.
iv.Graphical description is done by using HOOD graphical
formalism.
v. Justification of design decision are performed by designer, who
explains the reason for his decision.
55
Fig: basic design steps in HOOD
56
• OMT is a fast, intuitive approach for identifying and modeling all the
objects making up a system.
• Details such as class, attributes, method, inheritance and association
also can be expressed easily.
• OMT consists of four phases, which can be performed iteratively.
i. Analysis: The results are objects and dynamic and functional
models
ii. System Design: The results are a structure of basic architecture
of system along with high–level strategy decisions.
iii. Object Design: This phase produces a design document, consisting
of detailed objects static, dynamic and functional models.
iv. Implementation: This activity produces reusable, extensible and
robust code.
OMT separates modeling into three different parts.
i. An object model: describes the static structure of the system with
class and relationship.
ii. A dynamic model: Captures temporal aspect of the object model with
events and state of the objects. It is presented by the state
diagrams and even flow diagrams.
iii. A functional model: describes the computation in terms of how
output values are derived from input values. It is presented by data
flow and constraints.
• Deliverable: It consists of three model
57
i. Object Model
ii. Dynamic Model
iii. functional Model
58
i. Classes: They are found by reading the specification and
extracting the essential nouns,
59
iii. A specification of each class.
60