Software Engineering. Art or discipline?

Developing ideas through software is the perfect way to show up what minds are capable of. In my opinion, software engineering is both an art and a discipline. Art because every eengineer developing software has its own way of thinking and intepreting daily life problems in order to solve them. Discipline because developing software isn’t simple. Sofware development requires constant and efficient work.macbook-laptop-computer-technology-programming-coding-code-mobile-smartphone-business-office-desk


The beginning of Software Enginnering

It began in the late 50’s and the early 60’s as computers were introduced to universities and research institutions. Computers quickly became indispensable for many, and programming soon became an activity under appeal. Programming, however, had no interaction with a computer, programmers would give the program to a dispatcher, who queued the programs, and the results came hours or days later.

Coding was almost too difficult, and, in order to ease this process, formal notations were created. These notations are now known as programming languages. The first one was Fortran by IBM in 1957, followed by Algol in 1958, and Cobol by the US Department of Defense in 1962.

Computer capabilities had grown, and with it, programs and programmers demands; henceforth, a friendlier programming language was created known as PL/1. Programming languages and compilers became a principal cornerstone of computing science. [1] C was created to be capable of doing software development in UNIX. That’s how programming took a leap backward, where languages were gaining high level features, but C is only higher level than assembly code.

Ever since, different compilers and programming languages have been created, with different methods, and objectives. Procedural, modular, and object-oriented languages are some of the most known ones. For example, Java, Ruby, C, C++, HTML, Python, etc. and software engineering has grown exponentially. It has grown to a point where future expects lots of software engineering contributions.

Software Engineering has been so important that it is not only considered professionalism, but also art or craft.

References:

[1]: http://people.inf.ethz.ch/wirth/Miscellaneous/IEEE-Annals.pdf


Is Software Engineering really Engineering?

To be honest, I didn’t understand this question until I googled it and found out that there are many people who think Software Engineering should not be considered as Engineering but as a craft. I read a publication by Bill Curran, a guy who thinks that SE has a misnomer. Apparently, early practitioners of Software Engineering wanted to call it “Software Physics” but the term was already taken.

After reading some more posts and discovering that some of they had a point. I decided to first know more about Engineering itself, so I could find whether SE was Engineering or not.

I read some definitions and I found a video made by the Faculty of Engineering and Built Environment at the University of Newcastle. It explains in four minutes and in an easy to understand and enjoyable way. You can watch it bellow.

According to the IEEE computer society SE is “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”

As an engineering student I think Software Engineers are truly Engineers.


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.


Discussion about Software Engineering

 

So, what is software engineering ?

In accordance to our discussion group, we’ve agreed upon a single concept for software engineering. Software engineering is way much more than applying the principles of engineering to the software development field, it also involves coding, but again this is just the tip of the iceberg. “True software engineering has a well-articulated life cycle.”

software-engineering-internship-4-1024x682
Fotografía obtenida de: http://blog.aftercollege.com/wp-content/uploads/2015/12/software-engineering-internship-4-1024×682.jpg

Also, software engineers are involved in design and development of software. That includes operating systems, and every type of software. SE involves five main steps:

  1.  Analysis of project requirements
  2. Draft and design of the implementation
  3. Implementation
  4. Testing
  5. Delivery and Evaluation

And, as stated before, SE is not only about coding, is about making a piece of software efficient and reliable in every possible way.

 

20160816_093331

Floreth González
Germán Treviño
Carlos Pedraza Vázquez
Juan Pablo Ramírez Guerra


Software Engineering: Art, Craft or Science?

Software Engineering is becoming very popular this days and there is some discussion about wether creating software should be considered an art, a craft or a science. All answers seem reasonable so let’s take a look.

Let’s start with the difference between art, craft and science. Art is the way of representing and showing knowledge, art is subjective while science is about acquiring that knowledge and being as objective and exact as possible while a craft is considered an activity involving skill in making things by hand. Now, the name might make some people be biased, when you think about engineering you think about complex stuff and science however I think that Software Engineering implies a little of each three of the categories.

When people wonder about wether software engineering is an art, a craft or a science, it is a science because we try to follow formal approaches when possible and reasonable, it is a craft because experience and practice makes the master and it is an art because there are situations that leave room for creative and even artistic solutions.