What is software, Related Jobs & Requirements

What is software

Definition: A computer program that provides instructions and data to execute at a users command

Types of Software

Software is expected to be

Acceptability, Dependability and Security, Efficiency, Maintainability

What is a Software Engineer

Definition: Study and practice of systematic design, development and maintenance of software

Software Development

Definition: programming, documenting, testing and maintaining of applications in a life cycle

  1. Software specification: functionality of the software and constraints on its operation must be defined.
  1. Software development: software to meet the specification must be produced.
  1. Software validation: software must be validated to ensure that it does what the customer wants.
  1. Software evolution: software must evolve to meet changing customer needs.

Methodologies Quick Summary

Waterfall

Waterfall with Prototyping

V-Model

Agile Methodology (XP, Scrum)

Rapid Application Development

Dynamic System Development

Spiral Development

Extreme Programming

Feature Driven Development

Joint Application Development

Lean Development

Rational Unified Process Methodology

Scrum Development Methodology

Software Design

Definition: The process of transforming the users requirements, into a suitable form that a programmer can implement it when coding

Activities that need to be done
  1. Requirements elicitation and analysis: process of deriving the system requirements through observation of existing systems, discussions with potential users and procurers, task analysis, and so on. This may involve the development of one or more system models and prototypes. These help you understand the system to be specified.
  1. Requirements specification: is the activity of translating the information gathered during requirements analysis into a document that defines a set of requirements. Two types of requirements may be included in this document. User requirements are abstract statements of the system requirements for the customer and end-user of the system; system requirements are a more detailed description of the functionality to be provided.
  1. Requirements validation: check the requirements for realism, consistency, and completeness. During this process, errors in the requirements document are inevitably discovered. It must then be modified to correct these problems.

Software Design Levels

From NOW
  1. Architectural design, where you identify the overall structure of the system, the principal components (sometimes called subsystems or modules), their relationships, and how they are distributed.
  1. Database design, where you design the system data structures and how these are to be represented in a database. Again, the work here depends on whether an existing database is to be reused or a new database is to be created.
  1. Interface design, where you define the interfaces between system components. This interface specification must be unambiguous. With a precise interface, a component may be used by other components without them having to know how it is implemented. Once interface specifications are agreed, the components can be separately designed and developed.
  1. Component selection and design, where you search for reusable components and, if no suitable components are available, design new software components. The design at this stage may be a simple component description with the implementation details left to the programmer. Alternatively, it may be a list of changes to be made to a reusable component or a detailed design model expressed in the UML. The design model may then be used to automatically generate an implementation.

- Architectural Design

- High-level Design

- Detailed Design