SOFTWARE ENGINEERING ASSIGNMENT HELP
Software Engineering is the application of a systematic approach to the development, operation and maintenance of software and the study of approaches that is the application of engineering to software. Software engineering is part of system engineering. System engineering is concerned with all aspects of computer-based systems developing including hardware, software and process engineering. System engineers are involved in system specification, architectural design, integration and deployment.
Software process: it is the set of activities and associated results that produce a software product.
These are four stages of software process-
- Software specification: where the customer and engineers define the software to be produced.
- Software development: where the software is designed and programmed.
- Software validation: where the software is checked. Software is valid or not.
- Software evolution: where the software is modify to changing the customer and market requirement.
Stages for the software development
- Requirements analysis: find out what the client want the software to do.
- Software design: planning the software solution.
- Implementation: where it is the part of the process where the program code for the project.
- Testing: executing the application trying to find software bugs.
- Maintenance: any activity oriented to change an existing software product.
The attribute of good software
- Maintainability: software should be written in such a way that it may evolve to meet changing the needs of customers.
- Dependability: software must be trustworthy
- Efficiency: software should not make wasteful use of system resource
- Usability: software must be usable by the users for which it was designed.
Challenges in Software Engineering
- Quality and productivity
Productivity: an engineering project driven by cost and schedule.
Productivity follows both of these steps:
If P is higher, the cost is lower.
If P is higher, time taken can be lesser.
Quality: it is the major driving factor. It has six attributes:
- Consistency and repeatability
Change: software must change to support the changing business needs.
Software development models
Waterfall model: after each phase is finished, it proceeds to the next one.
- Integration and testing
- Iterative development:
- Iterative development
- System testing
- Common-based software engineering
- Integration and testing
Development and evolution costs for long-lifetime
Advantage of software engineering
- Consistent solutions to common problems
- Standardized methods of implementation
- Reengineering and testing.