Professional Documents
Culture Documents
OOSE Chapter 3
OOSE Chapter 3
Software
modeling
BE Computer
Principles of Software
Engineering
● Modularity
● Abstraction
● Anticipation of Change
● Generality
● Incremental Development
● Consistency QUICK TIP
Customer satisfaction
Requirement Gathering
Analysts and engineers communicate with the client and end-users to know their ideas on
what the software should provide and which features they want the software to include.
SRS = Software requirement Specification
User Requirements are expressed in natural Technical requirements are expressed in
1 3
language. structured language, which is used inside
the organization.
Design description should be written in Format of Forms and GUI screen prints.
2 4
Pseudo code.
Conditional and mathematical notations for
DFDs etc.
OOSE 2014
02 | Data Models
05 | Behavioural Model
Scenario Based modeling
Activity Diagrams
0 Swimlane Diagram
Activity Diagram
Activity diagram is essentially an advanced version
of flow chart that modeling the flow from one
activity to another activity.
2
Solution of above
Sales Director
Swimlane Diagram
According to user role, we can draw swimlane
diagram horizontal or vertical. It is another form of
activity diagram
4
Class Diagram
Class is a blueprint or template from which objects are created.
Golden rule for class diagram
Keep private all the data members and
Keep public all methods
● Generalization
● Association (1 - exactly one, 1…* - one or more, 0…* - 0 or more,0...1 zero or one)
○ Aggregation (part of main class)
○ Composition
5
Design concepts
● The main aim of design engineering is to generate a model which shows firmness, delight and commodity.
● Software design is an iterative process through which requirements are translated into the blueprint for building
the software.
6
Design Concept
Abstraction- hide Irrelevant data
Abstraction simply means to hide the details to reduce complexity and increases efficiency or quality.
Modularity- subdivide the system
Modularity in design means subdividing a system into smaller parts so that these parts can be created independently and
then use these parts in different systems to perform different functions.
Architecture- design a structure of something
Architecture simply means a technique to design a structure of something. Architecture in designing software is a
concept that focuses on various elements and the data of the structure.
Refinement- removes impurities to increase quality
The refinement concept of software design is actually a process of developing or presenting the software or system in a
detailed manner that means to elaborate a system or software so that error could be identified.
7
Design Concept
Patterns : a repeated form
A design pattern describes a design structure and that structure solves a particular design problem in a specified content.
Information Hiding- hide the information
Information hiding simply means to hide the information so that it cannot be accessed by an unwanted party. In software
design, information hiding is achieved by designing the modules in a manner that the information gathered or contained
in one module is hidden and can’t be accessed by any other modules.
Refactoring- reconstruct something
Refactoring simply means reconstructing something in such a way that it does not affect the behavior of any other
features. Refactoring in software design means reconstructing the design to reduce complexity and simplify it without
affecting the behavior or its functions.
Functional independence
The functional independence is the concept of separation and related to the concept of modularity, abstraction and
information hiding. The functional independence is accessed using two criteria i.e Cohesion and coupling.
7
Design Pattern
Design patterns represent the best practices used by experienced object-oriented software developers. Design patterns
are solutions to general problems that software developers faced during software development.