12 Things to Know Before You Become Software Engineer
Find out the 12 things you should know to become a good Software Engineer here at RabinsXP.
Cyclomatic Complexity and Graph Matrix: A software metric developed by Thomas McCabe used to measure the complexity of software. which is informally described as the number of decision points +1. Cyclomatic complexity also known as Structural Complexity is a metric that quantifies the complexity of a program which provides the upper bound for the number of test cases.
Cost Estimation: There are various cost estimation techniques that provide the vital link between the general concepts and techniques of economic analysis and the particular world of software engineering. Software cost estimation techniques also provide an essential part of the foundation for good software management.
Data Dictionaries: It is a metadata usually created in parallel with DFD in the top-down approach that is (to be) kept up-to-date with the DFD model.

Things You Should Know to Become A Good Software Engineer
Data Structure Metric: It measures the amount of data input to, processed in, or output from a program. Usually, this metric relates to Amount of data, Data usage within a module, Data sharing among modules and Relate to cost of implementing data structure,
Debugging, Alpha and Beta Testing: Debugging simply means to identify the errors, design error report, analyze it (maybe using many tools, fix it and retest the software. In short, it’s making a program bug-free before it’s built. Alpha testing is usually done by programmers themselves, or the software development team after the new software has to be developed so that the bug can be detected inside the home. Beta Testing is done by the users before the final product is launched.
Design Approaches: Function-oriented design and Object-oriented design are its types. In Function-oriented design approach, the system is looked upon as something that performs a set of functions like create-new-library-member and in Object-oriented design approach, the system is viewed as a collection of objects (i.e. entities). It’s live “A higher level function” Versus “Data they operate on”.
Data Flow Diagrams (DFD): DFDs is the pictural or diagrammatic representation used in structured systems analysis and design.
ER Modeling: Entity-Relationship Model simple represents the relationship between Entity and its attributes. It’s just like a Person is an entity and his attributes are his name, the company, place, etc.
Functional Testing: You might have seen the QA pass sticker or logo placed on almost every electronic device you bought. QA stands for Quality Assurance which is a type of Black Box Testing.
Introduction to Software Engineering: According to IEEE, “Software engineering 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“.
Software Risk Management: Risk management is the identification, assessment, and prioritization of risks (defined in ISO 31000 as the effect of uncertainty on objectives, whether positive or negative) followed by coordinated and economical application of resources to minimize, monitor, and control the probability and/or impact of unfortunate events or to maximize the realization of opportunities. Tomorrow’s problems are today’s risks. So we should be able to mitigate, monitor and manage the risk before it becomes the reality.
Software and Hardware Reliability: As per IEEE standard, “Software reliability is defined as the ability of a system or component to perform its required functions under stated conditions for a specified period of time” and for the hardware, it should meet some standard hardware specifications. What, Why and How: Add these prefixes and try to find the answers.