Software Development Processes

Processes VS life cycles

Software Development Processes are often confused with software life cycle; and although, it is a series of steps to follow, processes is referred to as all the approaches or models for different types of tasks.

Activities & Steps:

  • Requirement analysis: Mostly analyzing requirements for desired product or software: skills, money, etc.
  • Specifications: Precisely describing what a software is to do.
  • Software architecture: Abstractedly representing the architecture of a software system.
  • Implementation: Actual coding, and implementation of architecture.
  • Testing: Testing the code, or codes.
  • Documentation: In order, to create a safe maintenance ambiance for the software.
  • Training and support: Develop training classes for intended users, so that the software is not new for them, and they notice the transcendence of the system.
  • Maintenance: Enhancing, upgrading, and deleting bugs mostly.

There are several models and methodologies that try to improve quality, and productivity.

Examples of methodologies:

  1. Waterfall processes (Soon blog about this method)
  2. Iterative processes (Soon blog about this method)

2 hours long tutorial explaining more about this topic, and about more methodologies.

References:

http://www.selectbs.com/analysis-and-design/what-is-a-software-development-process


Software Engineering, an art or a discipline?

fbee2d22-eec7-45a7-82f4-e67b6d8cb770

According to the Institute of Electrical and Electronics Engineers,  Software Engineering applying the principals of engineering  to software development. For me, it’s a way to use the imagination to create new stuff, it’s a way to simplify the daily life activities all around the world. The question is, is it an art or a discipline? It’s an interesting discussion, because there are a lot of different ideas regarding the same theme. Here is a link if you want to know more about the topic:  http://www.softwareengineerinsider.com/articles/what-is-software-engineering.html#.V7cNpaPmFsM

To me, Software Engineering is a discipline because of all of the things that you need to learn in order to create a great development of a software. I think that it’s important to spend a good time studying, not just in a classroom, but in the outside. Before creating a really good software program, it’s a lot of work behind it; investigation, planning and processing the whole ideas that came up, deciding, etc. A complete Software Engineer needs to have an excellent process in order to be great in what he or she is doing.