Software Engineer

12
Software Engineering

description

http://www.markjohnsonsec.com/ Software Engineer by Mark Johnson SEC

Transcript of Software Engineer

Page 1: Software Engineer

Software Engineering

Page 2: Software Engineer

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

Page 3: Software Engineer

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

Page 4: Software Engineer

Requirements Analysis

Specification

Architecture

Programming/Development

Test

Documentation

Maintenance

Software engineering

process

(Software lifecycle)

Page 5: Software Engineer

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

Page 6: Software Engineer

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

Page 7: Software Engineer

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

Page 8: Software Engineer

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

Page 9: Software Engineer

• 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

Page 10: Software Engineer

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

Page 11: Software Engineer

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

Page 12: Software Engineer

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)