Software Analysis and Design - The Importance of the Basics
A proper understanding of how the software development life cycle happens through the six-core process is vital to the right management of the system information in a real life application. To recall, the six-core processes are:
1 - Identify the problem or need and obtain approval to proceed,
2 - Plan and monitor the project,
3 - Discover and understand the details of the problem/need,
4 - Design system components to solve the problem/need,
5 - Build, test, and integrate system components,
6 - Complete system tests and deploy solution.
As an instance, for the transportation industry and in my experience, the management of software development has a primordial importance that will determine the success or failure of a particular deployment. Now, specifically for the transportation industry, most companies around the world use a standard called CENELEC 50126 to manage the project as whole and within this standard lies the processes for software development and its flow throughout the project deliverables. This is an European standard and it has its international counterpart, IEC 62279, which mirrors the European one but, the vast majority of professionals in the field refer to it as EN50126, regardless. For the Railway Rolling Stock (i.e. Trains and Subways), this standard is broken down into many others but, specifically for software we follow EN50128 and EN50657, for system wide applications and train management respectively.
Looking deep at these standards, we can see right away the application of the six core processes blown up into more complex and large scales to represent the industry and its needs. For instance: the EN50126 defines its development through the following first steps:
- Concept
- System Definition
- Risk Analysis
- System Requirements
- System Validation
- System Acceptance and Operation and Maintenance
These are definitions over a system level phase, these systems levels are broken down to other system levels and involve other steps, hence, called subsystems and their components. They can be software requirements specifications, design and implementation, interfaces descriptions, functional descriptions, testing, installation and finally deployment. All these phases may be contained into the higher-level ones in the system level.
Immediately we can recognize the similarities between the six-core process as:
- Concept = Identify the problem or need and obtain approval to proceed.
- System Definition = Plan and monitor the project
- Risk Analysis = Discover and understand the details of the problem/need.
- System Requirements = Design system components to solve the problem/need.
- System Validation = Build, test, and integrate system components.
- System Acceptance = Complete system tests and deploy solution.
If we look carefully, we will be able to recognize these core concepts in a large project and although the steps in between are full of details and breakdowns, tailored to the specific application, it’s clear that an understanding of the basic concepts of System Development Life Cycle are extremely important to show us the flow of what needs to happen throughout the software development and hence, offer more reliable, fast and efficient solutions.
1 - Identify the problem or need and obtain approval to proceed,
2 - Plan and monitor the project,
3 - Discover and understand the details of the problem/need,
4 - Design system components to solve the problem/need,
5 - Build, test, and integrate system components,
6 - Complete system tests and deploy solution.
As an instance, for the transportation industry and in my experience, the management of software development has a primordial importance that will determine the success or failure of a particular deployment. Now, specifically for the transportation industry, most companies around the world use a standard called CENELEC 50126 to manage the project as whole and within this standard lies the processes for software development and its flow throughout the project deliverables. This is an European standard and it has its international counterpart, IEC 62279, which mirrors the European one but, the vast majority of professionals in the field refer to it as EN50126, regardless. For the Railway Rolling Stock (i.e. Trains and Subways), this standard is broken down into many others but, specifically for software we follow EN50128 and EN50657, for system wide applications and train management respectively.
Looking deep at these standards, we can see right away the application of the six core processes blown up into more complex and large scales to represent the industry and its needs. For instance: the EN50126 defines its development through the following first steps:
- Concept
- System Definition
- Risk Analysis
- System Requirements
- System Validation
- System Acceptance and Operation and Maintenance
These are definitions over a system level phase, these systems levels are broken down to other system levels and involve other steps, hence, called subsystems and their components. They can be software requirements specifications, design and implementation, interfaces descriptions, functional descriptions, testing, installation and finally deployment. All these phases may be contained into the higher-level ones in the system level.
Immediately we can recognize the similarities between the six-core process as:
- Concept = Identify the problem or need and obtain approval to proceed.
- System Definition = Plan and monitor the project
- Risk Analysis = Discover and understand the details of the problem/need.
- System Requirements = Design system components to solve the problem/need.
- System Validation = Build, test, and integrate system components.
- System Acceptance = Complete system tests and deploy solution.
If we look carefully, we will be able to recognize these core concepts in a large project and although the steps in between are full of details and breakdowns, tailored to the specific application, it’s clear that an understanding of the basic concepts of System Development Life Cycle are extremely important to show us the flow of what needs to happen throughout the software development and hence, offer more reliable, fast and efficient solutions.