PROFESSIONAL SOFTWARE DEVELOPMENT

PROFESSIONAL SOFTWARE DEVELOPMENT:
Software: These are the Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.
Good software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable.
Software engineering is an engineering discipline that is concerned with all aspects of software production.
A software development process is simply the division of a software project into distinct stages or phases of work. Each stage is characterized by specific activities which are used to help plan and manage progress. A software development process is implemented to improve quality, cost or schedule performance, or all of these things.

What is the difference between software engineering and computer science?
Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

What is the difference between software engineering and system engineering?
System engineering is concerned with all aspects of computer-based systems development including hardware, software, and process engineering. Software engineering is part of this more general process.

SOFTWARE PRODUCTS:
Software engineers are concerned with developing software products (i.e., software which can be sold to a customer). There are two kinds of software products:
1. Generic products: These are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them. Examples of this type of product include software for PCs such as databases, word processors, drawing packages, and project-management tools.
It also includes so-called vertical applications designed for some specific purpose such as library information systems, accounting systems, or systems for maintaining dental records.
2. Customized (or bespoke) products: These are systems that are commissioned by a particular customer. A software contractor develops the software especially for that customer. Examples of this type of software include control systems for electronic devices, systems written to support a particular business process, and air traffic control systems.

SOFTWARE ENGINEERING:
Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. In this definition, there are two key phrases:
1. Engineering discipline Engineers make things work. They apply theories, methods, and tools where these are appropriate. However, they use them selectively and always try to discover solutions to problems even when there are no applicable theories and methods. Engineers also recognize that they must work to organizational and financial constraints so they look for solutions within these constraints.
2. All aspects of software production Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods, and theories to support software production.

Characteristics is to be checked are:
Maintainability: Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment.
Dependability and security: Software dependability includes a range of characteristics including reliability, security, and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system.
Efficiency: Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilization, etc.
Acceptability: Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable, and compatible with other systems that they use.

SOFTWARE DEVELOPMENT PROCESS:
The systematic approach that is used in software engineering is sometimes called a software process. A software process is a sequence of activities that leads to the production of a software product. There are four fundamental activities that are common to all software processes. These activities are:
1. Software specification: In this process customers and engineers define the software that is to be produced and the constraints on its operation.
2. Software development: In this process software is designed and programmed.
3. Software validation: It is a process where the software is checked to ensure that it is what the customer requires.
4. Software evolution: In this process, software is modified to reflect changing customer and market requirements.

 
| Copyright © SOUMYA SOURABHA PATNAIK