Software Engineering is an engineering discipline which is used to solve larger and more complex problem in cost-effective and efficient ways. It is mainly related with software system implementation, operation and maintenance etc. Software engineering uses systematic approaches, methods, tools and procedure to solve a problem.
In this unit we will introduce you a brief description of software components, software characteristics, different software attributes, software processes and also the phases of a software development life cycle (starting from software requirement specification to design, testing, implementation and maintenance phase) and different software development life cycle models.
A software component is an independent software unit that can be composed with other components to create a software system.
- Independent: A component should be independent
- Composable: It means that all the external instruction must take place through publicly defined interfaces.
- Deployable: A component has to be self-contained and must be able to operate as a stand-alone entity.
Fundamental Principle of component:
Independent Software development:
- Large software system are necessarily assembled from components develop by different people.
- To facilitate independent development, it is essential to decouple developers and users of components.
- Some parts of a large system will necessarily be special-purpose software, it is essential to design and assemble pre-existing components in developing new components.
- A component or system needs to be shown to have desired behavior, either through logical reasoning or testing.
Medical Upgrade- The Rise of 3D PrintingReskilling- Upscaling Human's Digital SophisticationData-Driven Policing- Countering Data Breaches and Cyber-AttacksAutonomous DrivingDemocratization5G TechnologyHyperAutomationRobotic Process Automation (RPA)Artificial Intelligence (AI) and Machine Learning
SOFTWARE ENGINEERING PROCESSES
SOFTWARE QUALITY ATTRIBUTES
STRUCTURAL TESTING (WHITE BOX TESTING)