Text 29. SOFTWARE DEVELOPMENT PROCESS
1. Make sure that you understand the meaning of the words and translate them into Russian:
software - computer programs (in general)
maintenance - "looking after" the written software
bug -- error in software, something that spoils the flow of the program
hardware - all the physical parts of a computer
developer - a person who develops software
code- (coding) refers to the process of transforming the concept into program code
up-front - (design, analysis, requirements) a feature of the Waterfall model in which time and effort are spent early in the software development process to remove any errors or bugs
Agile Software Development a conceptual framework for software development which promotes development iterations throughout the life-cycle of the project
3. Answer the questions:
1. What kind of job do you see yourself holding five years from now?
2. Do you know any companies developing software? Would you like to join any of them?
3. How do you imagine work is organized in these companies? What software development methods do you know?
4. Have you used any of these methods so far?
4. Read the text:
A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.
A growing body of software development organizations implement process methodologies. Many of them are in the defense industry, which in the U.S. requires a rating based on ‘process models’ to obtain contracts. The international standard for describing the method of selecting, implementing and monitoring the life cycle for software is ISO 12207.
The Capability Maturity Model (CMM) is one of the leading models. Independent assessments grade organizations on how well they follow their defined processes, not on the quality of those processes or the software produced. CMM is gradually being replaced by CMMI. ISO 9000 describes standards for formally organizing processes with documentation.
ISO 15504, also known as Software Process Improvement Capability Determination (SPICE), is a “framework for the assessment of software processes”. This standard is aimed at setting out a clear model for process comparison. SPICE is used much like CMM and CMMI. It models processes to manage, control, guide and monitor software development. This model is then used to measure what a development organization or project team actually does during software development. This information is analyzed to identify weaknesses and drive improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or team.
Six Sigma is a methodology to manage process variations that uses data and statistical analysis to measure and improve a company’s operational performance. It works by identifying and eliminating defects in manufacturing and service-related processes. The maximum permissible defects is 3.4 per one million opportunities. However, Six Sigma is manufacturing-oriented and needs further research on its relevance to software development.
The Main Steps of Software Development
Domain Analysis
Often the first step in attempting to design a new piece of software, whether it be an addition to an existing software, a new application, a new subsystem or a whole new system, is, what is generally referred to as “Domain Analysis”. Assuming that the developers (including the analysts) are not sufficiently knowledgeable in the subject area of the new software, the first task is to investigate the so-called “domain” of the software. The more knowledgeable they are about the domain already, the less the work required. Another objective of this work is to get the analysts (who will later try to elicit and gather the requirements from the area) experts or professionals to speak with them in the domain’s own terminology and to better understand what is being said by these people, otherwise they will not be taken seriously. So, this phase is an important prelude to extracting and gathering the requirements. The following quote captures the kind of situation an analyst who hasn’t done his homework well may face in speaking with a professional from the domain: “I know you believe you understood what you think I said, but I am not sure you realize what you heard is not what I meant.”