Partielo | Créer ta fiche de révision en ligne rapidement
College or University

Chapter 1 Introduction

Characteristics of software

To remember :

  1. Software is developed or engineered; it is not manufactured in the classical sense.
  2. Software doesn’t 'wear out.'
  3. Although the industry is moving toward component-based construction, most software continues to be custom built.
  4. Software gives component-based construction, it provides reusability of components.

Software Myths

To remember :

  1. Management Myths:
  • We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know?
  • If we get behind schedule, we can add more programmers and catch up.
  • If I decide to outsource the software project to a third party, I can just relax and let that firm build it.


2.Customer Myths:

  • A general statement of objectives is sufficient to begin writing programs—we can fill in the details later.
  • Software requirements continually change, but change can be easily accommodated because software is flexible.


3.Practioner's Myths:

  • Once we write the program and get it to work, our job is done.
  • Until I get the program “running” I have no way of assessing its quality.
  • The only deliverable work product for a successful project is the working program.
  • Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.




Definitions

Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

Layered Technology

fig: Software Engineering Layers

Tools

The first layer involves choosing the semi-automated and automated tools that will become the framework for the project.



Methods

The second layer establishes the methods of developing the software. This includes any technical knowledge and resources required for development. Some tasks include choosing methods for:

  • Communication
  • Analysis
  • Modeling
  • Program construction
  • Testing and support

It’s good to remember that in the Tools layer, your team will choose the tools you will use for the project, but in the Method layer, you will be choosing how to use the tools.

Process

Layer three focuses on the framework that needs to be established to deliver software effectively. This layer can be broken down into five sub-layers:

  • Communication. Various facts of communication are needed at this point, and in fact, they are critical to success. First, communication with the client is required to understand the needs, demands, criteria, and parameters of the project. Team communication disseminates this knowledge so that everyone is on the same page. Ongoing communication prevents misunderstanding and wasted man-hours.
  • Planning. This sub-layer involves making a map or blueprint to break down the process of development and document goals, milestones, and plans.
  • Modeling. For this part of the process, developers create a model so the client can visualize the finished product.
  • Construction. This sub-layer refers to the actual coding and testing of the product.
  • Deployment. This differs from modeling. Rather than just providing the client with a model, the team delivers an actual version of the software for testing, evaluation, and feedback.


Quality

At this point, the software is developed and refined to a point, but it is critical to apply quality control to the finished product. Besides testing the end product to ensure that it meets the client’s specifications, it also needs real-world testing to determine how efficient, usable, and reusable it will be, and it needs to explore how many resource maintenance will require. If it is replacing an older software or platform, quality control will ensure the new software will meet the needs.

Software process models

Definitions

software process model
A software process is a set of related activities that leads to the production of the software. A software process model is an abstract representation of a process that presents a description of a process from some particular perspective. There are many different software processes but all involve: Specification – defining what the system should do; Design and implementation – defining the organization of the system and implementing the system; Validation – checking that it does what the customer wants; Evolution – changing the system in response to changing customer needs.
College or University

Chapter 1 Introduction

Characteristics of software

To remember :

  1. Software is developed or engineered; it is not manufactured in the classical sense.
  2. Software doesn’t 'wear out.'
  3. Although the industry is moving toward component-based construction, most software continues to be custom built.
  4. Software gives component-based construction, it provides reusability of components.

Software Myths

To remember :

  1. Management Myths:
  • We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know?
  • If we get behind schedule, we can add more programmers and catch up.
  • If I decide to outsource the software project to a third party, I can just relax and let that firm build it.


2.Customer Myths:

  • A general statement of objectives is sufficient to begin writing programs—we can fill in the details later.
  • Software requirements continually change, but change can be easily accommodated because software is flexible.


3.Practioner's Myths:

  • Once we write the program and get it to work, our job is done.
  • Until I get the program “running” I have no way of assessing its quality.
  • The only deliverable work product for a successful project is the working program.
  • Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.




Definitions

Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

Layered Technology

fig: Software Engineering Layers

Tools

The first layer involves choosing the semi-automated and automated tools that will become the framework for the project.



Methods

The second layer establishes the methods of developing the software. This includes any technical knowledge and resources required for development. Some tasks include choosing methods for:

  • Communication
  • Analysis
  • Modeling
  • Program construction
  • Testing and support

It’s good to remember that in the Tools layer, your team will choose the tools you will use for the project, but in the Method layer, you will be choosing how to use the tools.

Process

Layer three focuses on the framework that needs to be established to deliver software effectively. This layer can be broken down into five sub-layers:

  • Communication. Various facts of communication are needed at this point, and in fact, they are critical to success. First, communication with the client is required to understand the needs, demands, criteria, and parameters of the project. Team communication disseminates this knowledge so that everyone is on the same page. Ongoing communication prevents misunderstanding and wasted man-hours.
  • Planning. This sub-layer involves making a map or blueprint to break down the process of development and document goals, milestones, and plans.
  • Modeling. For this part of the process, developers create a model so the client can visualize the finished product.
  • Construction. This sub-layer refers to the actual coding and testing of the product.
  • Deployment. This differs from modeling. Rather than just providing the client with a model, the team delivers an actual version of the software for testing, evaluation, and feedback.


Quality

At this point, the software is developed and refined to a point, but it is critical to apply quality control to the finished product. Besides testing the end product to ensure that it meets the client’s specifications, it also needs real-world testing to determine how efficient, usable, and reusable it will be, and it needs to explore how many resource maintenance will require. If it is replacing an older software or platform, quality control will ensure the new software will meet the needs.

Software process models

Definitions

software process model
A software process is a set of related activities that leads to the production of the software. A software process model is an abstract representation of a process that presents a description of a process from some particular perspective. There are many different software processes but all involve: Specification – defining what the system should do; Design and implementation – defining the organization of the system and implementing the system; Validation – checking that it does what the customer wants; Evolution – changing the system in response to changing customer needs.