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.

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

  • Scale
  • Quality and productivity

Productivity: an engineering project driven by cost and schedule.

Productivity follows both of these steps:

If P is higher, cost is lower.

If P is higher, time taken can be lesser.

Quality: it is the major driving factor. It has six attributes:

  • Functionality
  • Reliability
  • Usability
  • Efficiency
  • Maintainability
  • Portability
  • 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.

  • Specification
  • Design
  • Implementation
  • Integration and testing
  • Deployment
  • Maintenance
  • Iterative development:
  • Specification
  • Iterative development
  • System testing
  • Common-based software engineering
  • Specification
  • Development
  • Integration and testing

Development and evolution costs for long-life time

System development

System evolution

Advantage of software engineering

  • Consistent solutions to common problems
  • Standardized methods of implementation
  • Reengineering and testing.