Software Development: Phases, Activities, and Management

Software Development: Phases and Activities

The process of software development contains three generic phases, independent of the software engineering model chosen:

  1. Definition
  2. Development
  3. Maintenance

Definition: Determining What Will Be Developed

  • System Analysis: Defining the role of each element in a computer-based system, ultimately giving the role that software will play.
  • Software Project Planning: Once the scope of the software is established, risks are assessed, resources are allocated, costs are estimated, and tasks and work schedules are set.
  • Requirements Analysis: The scope defined for it gives you a direction, but a detailed definition of the field of information and software function is required before work begins.

Development: Determining How Software Will Be Developed

  • Software Design: Translate software requirements into a set of representations that describe the data structure, software architecture, algorithmic procedures, and interface characteristics.
  • Codification: The representations of the design must be converted to an artificial language (the language can be a conventional programming language or a non-procedural language) that results in guidelines that can be executed by the computer.
  • Realization of Software Testing: Once the software is implemented in a machine-executable form, it must be tested so you can find defects in function, logic, and implementation.

Maintenance: Changes After Software Release

Maintenance focuses on changes that occur after the software is released for operational use.

  • Correction: Even with the best activities for quality assurance of software, the customer is likely to find defects in software. Corrective maintenance changes to correct software defects.
  • Adaptation: Over time, the original environment (e.g., CPU, operating system, and peripherals) for which the software was developed is likely to change. Adaptive maintenance changes the software to accommodate changes in its environment.
  • Functional Improvement: As the software is used, the client/user will recognize additional features that offer benefits. Perfective maintenance extends the software beyond its original functional requirements.

Protection Activities

The phases and related steps described are complemented by a range of protection activities.

  • Reviews: Carried out to ensure that quality is maintained as each step is completed.
  • Documentation: Developed and controlled to ensure that full information about the software is available for later use.
  • Control of Changes: Set up so that changes can be approved and monitored.
  • Management: Necessary to coordinate the technical activities of product design software.

Software Quality

Software quality is the prime concern of software managers. Top quality attributes include portability, efficiency, clarity, and reliability.

Factors that Influence Quality and Productivity

  • Individual skills
  • Team communication
  • Complexity of the product
  • Appropriate notations
  • Systematic approaches
  • Change control
  • Adequacy of training
  • Management skills
  • Appropriate goals
  • Understanding the problem
  • Stability requirements
  • Skills needed

Software Managers and Project Management

Software managers control resources and the environment in which technical activities occur. They are responsible for product delivery on time and within cost estimates. They must ensure that the product has the functional and quality attributes desired by the customer, train employees, and develop plans and marketing strategies.

Concerns in Project Management

  • Establishing procedures for quality assurance
  • Keeping track of multiple versions of the product
  • Facilitating communication between project members
  • Communication with the customer
  • Contracting with the client
  • Ensuring that the legal and contractual terms of the project are met

Problems in the Field of Management

  • Lack of planning for software projects
  • Lack of techniques and procedures for selecting project managers
  • Inability to estimate the resources required for the project
  • Lack of a well-established development process
  • Lack of strategies for the manager to monitor project progress
  • Lack of standards and techniques for measuring productivity

Factors that Improve Management

  • Training managers and software developers
  • Establishing the use of standards, procedures, and documentation
  • Analyzing data from past projects to evaluate effective methods
  • Defining goals in terms of desired quality
  • Defining quality in terms of products to be delivered
  • Selecting project managers with skills to manage
  • Developing a way to evaluate software developers