About Security certificates

https://www.jpao.es/wp-content/uploads/2015/10/seguridad.jpg
Original image from: https://www.jpao.es/wp-content/uploads/2015/10/seguridad.jpg

Have you ever wondered why or who makes the little padlock in the url bar before the url of a web page?

Let´s be a little objective, related with one of my pasts post I touched the topic of doing software engineering with an ACM code of ethics for Sofware Engineering. Allright then, one of the principal areas disscussed then were about the rights of the end user and the professional.

Today we are going to talk about the security certificate, what are they and if you can trust one.

Thanks in advance to United States Computer Emergency Readiness team at: https://www.us-cert.gov/ncas/tips/ST05-010

 

What are web site certificates?

If an organization wants to have a secure web site that uses encryption, it needs to obtain a site, or host, certificate. There are two elements that indicate that a site uses encryption (seeProtecting Your Privacy for more information):

  • a closed padlock, which, depending on your browser, may be located in the status bar at the bottom of your browser window or at the top of the browser window between the address and search fields
  • a URL that begins with “https:” rather than “http:”

By making sure a web site encrypts your information and has a valid certificate, you can help protect yourself against attackers who create malicious sites to gather your information. You want to make sure you know where your information is going before you submit anything (see Avoiding Social Engineering and Phishing Attacks for more information).

If a web site has a valid certificate, it means that a certificate authority has taken steps to verify that the web address actually belongs to that organization. When you type a URL or follow a link to a secure web site, your browser

http://www.technipages.com/wp-content/uploads/2015/07/IE-problem-with-website-security-certificate.png
Continue reading "About Security certificates"

About Software Development Life Cycle (SDLC)

Today we are going to learn about SDLC (Sftware Development Life Cycle) it means, the steps a software engineer needs to follow to produce good software separated in 5 different steps:

 

Requirements Gathering/Analysis

(Analyse user requirements)

This part is the pilar of the software development, is were the needs of the client are analyzed by the team and the expectations of the client are stablished in goals. To help the client and the team understand what is going to be developed a prototype can be made and presented in this phase of the SDLC.

Both client and team stablishes what, where and how things are going to be done, according the first statements of the project (The Idea and the first analysis).

Design

https://www.linkedin.com/pulse/idea-design-code-action-adeel-mannan
Obtained from: https://www.linkedin.com/pulse/idea-design-code-action-adeel-mannan

(Design the program)

In this phase the team needs to develop the technical details of the project.

The Business Requirements are used to define how the application will be written.

Some of the activities involved in this phase are:

Risk analysis

The code and the development needs to be analyzed to found vulnerabilities, also privacy and security areas are covered. For example, in a software application were you need to manage database systems related to users bank accounts, a more complex security and access algorithm is needed that in an app that is needed to access phone numbers in your e-mail or something like that.

Each of the areas that are vulnerable of the project needs to be treat as different cases of Risk analysis.

Functional Specifications

Includes a description and important details about the use of the final project, for example what is going to appear after clicking on “I Agree”, or what the updates are changging in the final product.

Non-Functional Specifications

code
debug
Continue reading "About Software Development Life Cycle (SDLC)"

How to do Software ethically and don´t die trying.

ethics-and-compliance_wide

Image from: https://howtobeastoic.wordpress.com/2015/09/17/ancient-vs-modern-ethics-a-comparison/

Every day, a lot of lines of code are written in the world with or without thinking of how, when and whom are going to use them.

Here we explain a little how a code of Ethics for Software Engineering works and is stablished, due to the need of ethics application in all professional activities.

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC – Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT – Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION – Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES – Software engineers shall be fair to and supportive of their colleagues.

8. SELF – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Seems easy right? Let´s check what these principles means to do:

PUBLIC

The engineer shall accept for their work even if the work produces any good or bad situations. Test is an important thing in software related with

Continue reading "How to do Software ethically and don´t die trying."

Expanding Software Engineering

Today I have written about few persons who dedicated their lives to develop and work on Software Engineering topics.

This is why I decided to dedicated this post to Barry Boehm, professor of Software Engineering at U.S.C (University of Soutern California).

information of Barry Bohen retrieved from: http://csse.usc.edu/csse/about/people/faculties/BarryBoehm.html

Barry Boehm

barry-4

TRW Professor of Software Engineering, Computer Science Department
Director Emeritus, USC Center for Systems and Software Engineering.

E-mail: boehm@usc.edu
Phone: (213) 740-8163
FAX: (213) 740-4927

Barry Boehm received his B.A. degree from Harvard in 1957, and his M.S. and Ph.D. degrees from UCLA in 1961 and 1964, all in Mathematics. He also received an honorary Sc.D. in Computer Science from the U. of Massachusetts in 2000.

Between 1989 and 1992, he served within the U.S. Department of Defense (DoD) as Director of the DARPA Information Science and Technology Office, and as Director of the DDR&E Software and Computer Technology Office.

His current research interests focus on value-based software engineering, including a method for integrating a software system’s process models, product models, property models, and success models called Model-Based (System) Architecting and Software Engineering (MBASE).

His contributions to the field include the Constructive Cost Model (COCOMO®), the Spiral Model of the software process, the Theory W (win-win) approach to software management and requirements determination, the foundations for the areas of software risk management and software quality factor analysis, and two advanced software engineering environments: the TRW Software Productivity System and Quantum Leap Environment.

Published Books

1.   ROCKET: Rand’s Omnibus Calculator of the Kinematics of Earth Trajectories, Prentice Hall, 1964.

2.   Planning Community Information Utilities, co-edited with H. Sackman, AFIPS Press, 1972.

3. Characteristics of Software Quality, North Holland, with J.R. Brown, H. Kaspar, M. Lipow,

Continue reading "Expanding Software Engineering"

What does a Software Engineer do?

lal

What is a software Engineer?

People, that from point of view of people, dedicates themselves to Software Engineering: -Not only coding, it is also information and administration of this information.

Many people generalize that it is engineering It includes optimization & processes.

Development and maintain, update efficiently and reliably. According the specifications and demonstrate they are good enough for the problem/situation where they are applied.

Satisfy clients’ necessities. Due to the demand of code and applications destinated to solve conflicts.

The terminology:

In past, Software Engineering were going to be “software physics”, but since the term were taken in other definition, Software Engineering were the name.

As an art:

Since is not only to follow a process to create or to develop a thing, its to create the process, to get out of the way with the rules and start a new line to start with.  Is also creating and adapting this process.

As Science:

The knowledge of software engineering can be transmitted and science is the integration knowledge, passed through generations.

 

lalo

 

By: Ekaterina Chumakova, Lucía Velasco, Miguel Miranda, Antonio Silva.


About basic software Licenses

How should we choose whether or not to apply one or many SW License to our work?

Below a few description of the basic ones:

Originally posted at: https://opensource.org/licenses/MIT

The MIT License (MIT)

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal 
in the Software without restriction, including without limitation the rights 
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in 
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.

Originally posted at: http://www.apache.org/licenses/LICENSE-2.0

Apache License

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Originally posted at: https://www.gnu.org/licenses/gpl-3.

license
Continue reading "About basic software Licenses"