Download as pdf or txt
Download as pdf or txt
You are on page 1of 26

Confidential Customized for Lorem Ipsum LLC Version 1.

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

A Pharmaceutical Company wants to develop an


Inventory Control System for its internal use. The
requirements are well understood and scope is well
constrained. However the project is required to be
delivered within short period of time (as soon as
possible). Propose a life cycle model for this scenario
and provide reason(s) for justification of your answer.
Quality function
deployment
QFD

Customer satisfaction maximize is key concept for the QFD

QFD identifies 3 types of requirement in requirement table,


also called voice table.
● Normal - Graphical
● Expected = Implicit (necessary functionality) QUICK TIP
● Exciting requirement = Beyond the customer
Customer satisfaction
expectation (can increase the complixity of the
software)
Important

Developing Requirement Model


Requirement Model

Generally requirement Model can be designed using UML.


This is generally understanding the requirement in terms of
Model
Requirement
Validation
Requirements validation is the process of checking that
requirements defined for development, define the system
that the customer really wants.
● Completeness checks
● Consistency checks
● Validity checks QUICK TIP
● Realism checks
Customer satisfaction
● Ambiguity checks
● Verifiability
Requirement Analysis
Specifies the softwares operational Indicate the software interface with other
1 3
characteristics system elements

Establishes the software constraint that Elaborate on basic requirements


2 4
software must meet establishes during earlier requirement
engineering. Build model, scenario etc
Requirement Model
Requirement modeling action results one of the
following type of model

01 | Scenario based model

02 | Data Models

03 | CLass oriented models

04 | Flow oriented model

05 | Behavioural Model
Scenario Based modeling

Use case Diagram


0 ● Creating Preliminary use case
0
1 3
● Refining Preliminary use case

Activity Diagrams
0 Swimlane Diagram

Provide the graphical representation of flow of GIve information about roles


interaction with in the specific scenario,
support choices, iteration and concurrency
2
A customer asks the travel agent for the ticket from Pokhara to Kathmandu.
For the ticket availability the agent will call the airlines office or check on the
Question 2015 website of the concerned airline. If the ticket of the required airline is not
available, another airline tickets will be tried according to customer’s choice.
If the tickets are available, the agent will buy ticket online from his system
and a hardcopy of it will be provided to customer. The customer pays to the
agent for it. Prepare Level 1 DFD and use case diagram.

Generating Preliminary use case

● Customer call to travel agent for ticket


● Travel agent can answer phone call ticket enquiry
● Travel agent call to airlines or check airline website for ticket availability
● If available then purchase ticket/ else search in other airlines
● Provide the purchased slip to customer
● Customer pay to agent
Solution
2

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

Objectives of Software Design:


Correctness:
A good design should be correct i.e. it should correctly implement all the functionalities of the system.
Efficiency:
A good software design should address the resources, time, and cost optimization issues.
Flexibility:
A good software design should have the ability to adapt and accommodate changes easily.
Understandability:
A good design should be easily understandable, for which it should be modular and all the modules are arranged in layers.
Completeness:
The design should have all the components like data structures, modules, and external interfaces, etc.
Maintainability:
A good software design aims to create a system that is easy to understand, modify, and maintain over time.
7

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.

Usage of Design Pattern:


● Common platform for developers
● Best Practices
7

Types of Design Pattern


Creational Patterns
These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects
directly using new operator.
Structural Patterns
These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and
define ways to compose objects to obtain new functionalities.
Behavioral Patterns
These design patterns are specifically concerned with communication between objects.
J2EE Patterns
These design patterns are specifically concerned with the presentation tier. These patterns are identified by Sun Java
Center.
Thank you.

You might also like