software engineer
DESCRIPTION
http://www.markjohnsonsec.com/ Software Engineer by Mark Johnson SECTRANSCRIPT
Software Engineering
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.
Software Engineering
Economically• 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.
Socio-economic
implications
Software engineering process
Requirements Analysis
Specification
Architecture
Programming/Development
Test
Documentation
Maintenance
Software engineering
process
(Software lifecycle)
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.
Requirements Analysis
Menu
Next
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, prioritization and specification of software requirements.
Among the techniques used for the specification of requirements include:Use Case.User Stories.
Specification
Menu
Next
Menu
Next
Architecture
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
This is documented using diagrams, for
example:
Class diagrams, Diagrams database, Deployment diagram, Sequence Diagram
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 pre-made design.
Programming
Menu
Next
• 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
Doc
umen
tatio
n • 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.
Menu
Next
Maintenance
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.
Menu
Next
Models and software development philosophies
Software engineering has several models, development paradigms and philosophies, which is based on the construction of the software:
Models and software
development philosophies
Waterfall model or Classic (traditional
model)
Prototype Model
Spiral Model
Phased development
Iterative and Incremental
RAD (Rapid Application
Development)
Concurrent Development
Unified Process
RUP (Rational Unified
Process)