Software Development Processes
In fact, Geliştirme Software Development Processes ”and“ Software Engineering Activities ”are deep topics. It is impossible to share these topics, which are written in thick books and have been studied in related chapters for years, in just one article. Therefore, the purpose of this article is to have general information about the subjects and to take that first step to go further.
What is software first?
“Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.”
All of the programs, procedures, programming languages and documentation used in computing to bring hardware to life on a computer.
Definitions do not mention just writing code. There is documentation, customer or general market. So there is actually a purpose to be achieved.
What are the features of good software?
Good software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable.
What are the basic Software Engineering activities?
- Software specification,
- Software development,
- Software validation, and
- Software evolution
Let’s focus on software engineering activities. If we want to make software, there is a requirement or a foreseen requirement. “Gathering and analyzing” need is the first step in making software.
We divide these needs into two parts: functional and non-functional requirements. If we are making an atm software, the text on the screen, withdrawal functionality is the functional requirement of this atm. However, a simple withdrawal process ends in 15 seconds is a non-functional requirement.
Understanding the desired software by having regular meetings with the customer is one way to collect the requirements. Another way is to observe and try, that is, to see ourselves by experiencing the needs of customers.
In the business, the roles have been reserved in accordance with software development processes. In general, analysts are assigned to the needs collection process, a software developer accompanies them, and they monitor the deficiencies using the system.
Now let’s stop and think: what do public transport users need, what kind of software do they need? Or, with your eyes closed, wait for the bus at the stop for 15 minutes and try to guess the bus waiting adventure of a visually impaired.
We gathered the requirements. We have a requirement list of the user or general market. Now we have to analyze these requirements. This analysis process will seriously affect the quality and duration of the implementation time. Even if we have successfully implemented all SOLID policies in a badly analyzed code, every change is a functional change, ie. the logic will change. This usually forces changes to the main structure of the code. It’s a situation we don’t want.
Requirement analysis should be in the language that technical people understand. In other words, using the diagrams that the technical person will look and understand rather than telling the analysis document as a story tells us will save time. So what are these diagrams?
UML Diagrams : https://www.uml-diagrams.org/
Unified Modelling Languages:
The analysis was performed, diagrams were drawn. Now our road map is ready. The next step is to implement the requirements given in these diagrams. I am not going to go into much detail here, we will explore these headlines better in the models we will see in future articles.
When we write code, we need to write test code and test to see if the code we write is appropriate for the purpose or if it affects a part of the code we do not anticipate.
All processes are over, the software is delivered to the user/s. The next step is the maintenance process. In fact, from the very first minute of the software, we start to do maintenance, keeping up with the changes.
With the high-level review, the following 5 items(sine qua non) are essential for successful software in the software life cycle:
- Determine requirements
- Requirement analysis and design
Have error-free software!
- Sommerville, I. (2011). Software Engineering.(9 th ed.). Boston: Pearson Education.
- Software Engineering(4 th ed.) P. L. Shari and A. M. Joanne