You are on page 1of 29

By

S.VEERABADRAIAH
M.Tech, (Ph.D),
Principal Mentor, MSIT,
MSIT Learning Center, JNTUK,
KAKINADA.
Software engineering is a profession
dedicated to designing, implementing, and
modifying software so that it is of higher
quality, more affordable, maintainable, and
faster to build.
it is a "systematic approach to the analysis,
design, assessment, implementation, test,
maintenance and re-engineering of a
software by applying engineering to the
software".
Requirement Analysis
Design
Implementation
Testing
Installation
Maintenance
Requirements defines needed information,
function, behavior, performance and interfaces.

Design data structures, software architecture,


interface representations, algorithmic details.

Implementation source code, database, user


documentation, testing.
All requirements must be known before

Can give a false impression of progress

There is no problem-solving nature of


software development iterations of phases

Integration is complex

Little opportunity for customer to preview


the system during the design.
Structured Evolutionary Prototyping Model.
Rapid Application Development Model
(RAD).
Incremental Model.
Spiral Model.
Agile model (Quick Process).
Iterative development is a skillful approach to
software development.
This approach is not available in the previous
Models
Unified Process is an example iterative
process for projects using OOA/D.
The Most Important UP Idea: Iterative
Development
Diagram illustrating how the relative emphasis of different
disciplines changes over the course of the project
Identify different requirement types in a software
system .
Read and write requirements in the use case
format .
Read and write system sequence diagrams which
model the interaction between the users of the
system and the system .
Identify system events and operations .
Create a domain model based on the given use
cases and system sequence diagrams .
What Is Analysis and Design
Analysis emphasizes an investigation of the
problem and requirements, rather than a
solution. For example, if a new
computerized library information system is
desired, how will it be used?

"Analysis" is a broad term, best qualified, as
in requirements analysis (an investigation of
the requirements) or object analysis (an
investigation of the domain objects).
Design emphasizes a Logical solution that fulfills
the requirements, rather than its implementation.
What Is Object-Oriented Analysis and Design
During object-oriented analysis, there is
an emphasis on finding and describing the
objects in the problem domain.

For example, in the case of the library


information system, some of the objects
include Book, Library, and user.
During object-oriented design, there is an
emphasis on defining software objects and
how they collaborate to fulfill the
requirements.
For example, in the library system, a Book
software object may have a title attribute and
a getChapter method.
Finally, during implementation or object-
oriented programming, design objects are
implemented, such as a Book class in Java.
Define Use Cases
Define a Domain Model
Define Interaction Model
Define Design Class Diagrams
early rather than late mitigation of high risks
(technical, requirements, objectives, usability,
etc).
early visible progress .
early feedback, user engagement, and
adaptation, leading to a refined system that more
closely meets the real needs of the stakeholders .
managed complexity; the team is not effected by
"analysis paralysis" or very long and complex
steps .
the learning within an iteration can be
methodically used to improve the development
process itself, iteration by iteration .
Unified Modeling Language (UML) is a language
for specifying, visualizing, constructing, and
documenting the artifacts of software systems,
as well as for business modeling and other non-
software systems .

Unified Modeling Language (UML) is a


standardized general-purpose modeling
language in the field of software engineering.

The standard is managed, and was created by,


the Object Management Group.
Functional Requirements
In software engineering, a functional requirement
defines a function of a software system or its
component. A function is described as a set of
inputs, the behavior, and outputs.

Functional requirements drive the application


architecture of a system, while non-functional
requirements drive the technical architecture of a
system.
Non Functional requirements
In systems engineering and requirements
engineering, a non-functional requirement is a
requirement that specifies criteria that can be used
to judge the operation of a system, rather than
specific behaviors.
Non-functional requirements are often called
qualities of a system.
Execution qualities, such as security and usability,
which are observable at run time.
Evolution qualities, such as testability,
maintainability, extensibility and scalability, which
are included in the static structure of the software
system.
A use case in software engineering and systems
engineering is a description of a systems behavior as
it responds to a request that originates from outside
of that system.
Use Case A sequence of actions that the system
performs that yields an observable result of value
to an actor.
Actor Role(s) external parties that interact with
the system .
Stakeholders users , designers and developers
Let us develop a software for automation of a
typical restaurant using software engineering
principles and better process model like
Unified Process along with UML tool.
A sequence diagram in Unified Modeling
Language (UML) is a kind of interaction
diagram that shows how processes operate
with one another and in what order. It is a
construct of a Message Sequence Chart.
Sequence diagrams are sometimes called
event diagrams, event scenarios, and timing
diagrams.
A domain model is a representation of real-
world conceptual classes, not of software
components.
Cook
Waiter Domain Model
for
Attributes
Attributes
Restaurant

FoodItems
Customer
Cashier Attributes
Attributes
Attributes
Customer Waiter Cook
- Name: String
- Name: String
- Name: String - Mob no: String
- Mob no: String
- Mob no: String - Address: String
- Address: String
- Address: String

+ Order_food(): void + Cook_food(): void


+ Order_food(): void
+ Pickup():void
+ Pay_bill():void

Cashier FoodItems
- Item Name: String
- Name: String
- Cost: Double
- Mob no: String
- Address: String

+ Receive_money(): void + is_available():boolean


+ Issue_reciept():void
It so easy to implement a system because class diagram is available
with all the details such as class name, attributes and methods.
The Next Step would be map the Class diagram to coding part as
shown in figure .

Class diagram to coding


In this presentation we have learnt how to
develop a software systematically from
requirements to implementation using
software engineering principles and we have
developed software for automation of a
typical restaurant.