2. Is the application of a systematic,
disciplined, quantifiable approach to
the design, development, operation,
and maintenance of software, and the
study of these approaches. Software
Engineering is the branch of
engineering that applies the principles
of computer science and mathematics
to achieving cost-effective solutions to
the problems of software
development.
3. Economically
Socioeconomic
implications
• Around the world, the software
contributes to economic growth.
Socially
• Software engineering, change the
culture of the world, due to the
widespread use of computers. E-mail,
the Web and instant messaging,
allowing people to interact in new
ways. The software lowers the cost
and improves the quality of health
services, government agencies and
other social services.
Software engineering
process
5. Requirements Analysis
Extract the requirements of a software product is the first
stage to create it. It requires skills and experience in
software engineering.
The result of the analysis of customer requirements is
reflected in the ERS document, System Requirements
Specification, the structure can be defined by various
standards, such as CMMI.
It also defines a diagram Entity / Relationship, which
embodies the main entities involved in software
development.
The capture, analysis and requirements specification, is a
crucial part, of this stage depends largely on achieving the
ultimate goals.
Menu
Next
6. The requirements specification describes the
expected behavior in the software once
developed. Much of the success of a software
project will lie in identifying business needs and
the functional user interaction for the
collection, classification, identification, prioritizati
on and specification of software requirements.
Specification
Among the techniques used for the specification
of requirements include:
Use Case.
User Stories.
Menu
Next
7. The software
architecture is the
design of an application
component, usually
using architecture
patterns. An
architectural design
generally describes how
to build a software
application.
The integration of
infrastructure, application
development, and
database management
tools, capacity and
leadership required to be
conceptualized and
projected future, solving
the problems of today
Architecture
Menu
This is documented
using diagrams, for
example:
Class
diagrams, Diagrams
database, Deploymen
t diagram, Sequence
Diagram
Next
8. Programming
Reducing a design to code
may be the most obvious part
of the software engineering
job, but not necessarily the
most demanding work and
even the most complicated.
The complexity and length of
this stage is closely related to
programming
languages used, and premade design.
Menu
Next
9. • Involves checking that the
software performed correctly
the tasks outlined in the
specification of the problem. A
testing technique is tested
separately each software
module, and then test it
comprehensively in order to
reach the goal.
Test
Menu
Next
10. Documentation
Menu
• All documentation regarding the actual
development of software and project
management, through modeling (UML) use
case diagrams, testing, user manuals,
technical manuals, etc., all for the purpose
of corrections, usability, future
maintenance and upgrades to the system.
Next
11. Phase dedicated to maintaining and improving
the software to correct errors discovered and
incorporate new requirements. This may take
longer than even the initial software
development. About 2/3 of the cycle time of a
project4 life is devoted to maintenance. A small
part of this job is to remove errors (bugs), being
that most lies in extending the system to
incorporate new features and addressing its
evolution.
Maintenance
Menu
Models and software
development philosophies
Next
12. Software engineering has several models, development paradigms and
philosophies, which is based on the construction of the software:
RUP
(Rational
Unified
Process)
Unified
Process
Waterfall model
or Classic
(traditional
model)
Prototype
Model
Models and
software
development
philosophies
Concurrent
Development
Spiral Model
Phased
development
RAD (Rapid
Application
Development)
Iterative and
Incremental