create good software

Get Started. It's Free
or sign up with your email address
create good software by Mind Map: create good software

1. 3- software process models

1.1. 1- the waterfall model

1.1.1. 1. requirements analysis and definition

1.1.2. 2. system and software design

1.1.3. 3. implementation and unit testing

1.1.4. 4. integration and system testing

1.1.5. 5. operation and maintenance

1.2. 2- incremental development

1.2.1. 1. outline description

1.2.2. 2. concurrent activities

1.2.2.1. 2.1 specification<-> initial version

1.2.2.2. 2.2 development <-> intermediate versions

1.2.2.3. 2.3 validation -> final version

1.3. 3- reuse - oriented software engineering

1.3.1. 1. requirements specification

1.3.2. 2. component analysis

1.3.3. 3. requirements modification

1.3.4. 4. system design with reuse

1.3.5. 5. development and integration

1.3.6. 6. system validation

1.4. 4- boehm's spiral model

1.4.1. 1. objective setting

1.4.2. 2. risk assessment and reduction

1.4.3. 3. development and validation

1.4.4. 4. planning

1.5. 5- the rational unified process ( RUP)

1.5.1. 1. inception

1.5.2. 2. elaboration

1.5.3. 3. construction

1.5.4. 4. transition

2. coping with change

2.1. 1- change avoidance

2.1.1. -> software prototyping = throw away = rapid prototypes

2.2. 2- change tolerance

2.2.1. 1. incremental development

2.2.2. 2. incremental delivery

3. categories of software product

3.1. 1- Generic product = stand alone product = on-shelf product

3.2. 2- customized product

3.3. 3- customized version of generic package

4. essential attribute of good software = general characteristics ( attributes)

4.1. 1- maintainability

4.2. 2- dependability

4.3. 3- efficiency

4.4. 4- acceptability

5. 1- Software process activities

5.1. software devlopment life cycle ( SDLS)

5.1.1. 1- idea

5.1.2. 2- planning == feasibility study

5.1.3. 3- analysis == requirement specification

5.1.4. 4- design

5.1.5. 5- implementation

5.1.6. 6- test ( some models add this)

5.1.7. 7- maintenance or evaluation ( some models add this)

5.1.8. 8- system success

5.2. the software processes (activies)

5.2.1. 1- software specification = requirement engineering = requirement specification

5.2.1.1. 1- feasibility study

5.2.1.1.1. -> feasibility report

5.2.1.2. 2- requirement elicitation and analysis

5.2.1.2.1. -> system models

5.2.1.2.2. 1. discussions with poten-tial users and procurers

5.2.1.2.3. 2. observation of existing systems

5.2.1.2.4. 3. task analysis

5.2.1.2.5. 4. development of one or more system models & prototypes

5.2.1.2.6. A. requirements discovery

5.2.1.2.7. B. requirements classification and organization

5.2.1.2.8. C. requirements prioritization and negotiation

5.2.1.2.9. D. requirements specification

5.2.1.2.10. Classes of model

5.2.1.3. 3- requirements specification

5.2.1.3.1. -> user and system requirements

5.2.1.3.2. 1. abstract requirements == user requirements

5.2.1.3.3. 2. vary detailed requirements == system requirements

5.2.1.3.4. Types :

5.2.1.3.5. write it in

5.2.1.3.6. 1. unified modeling language (UML)

5.2.1.4. 4- requirements validation

5.2.1.4.1. -> requirements document

5.2.1.4.2. answer to this questions

5.2.1.4.3. 4. mathematical specifications

5.2.1.5. requirments validation techniques

5.2.1.5.1. 2. prototyping

5.2.1.5.2. 3. test case generator

5.2.2. 2- software development = software design and implementation

5.2.2.1. 1- software design

5.2.2.1.1. 1. input

5.2.2.1.2. 2. sub-activities

5.2.2.2. 2- implementation

5.2.3. 3- software validation = software testing = software verification and validation (v &v)

5.2.3.1. 1- verification

5.2.3.2. 2- validation

5.2.3.3. A. component testing

5.2.3.4. B. system testing

5.2.3.5. C. acceptance testing

5.2.3.6. 1# alpha test

5.2.3.7. 2# beta test

5.2.4. 4- software evolution = software maintenance

5.2.4.1. 1- define system requirement

5.2.4.2. 1- Existing system

5.2.4.3. 2- Assess existing system

5.2.4.4. 3- propse system changes

5.2.4.5. 4- modify system

5.2.4.6. 5- new system

6. 2- software process category

6.1. 1- plan-driven process

6.2. 2- value -driven == agile process

6.2.1. use extreme programming (XP)

7. general issues that affect most software

7.1. 1- heterogeneity

7.2. 2- busniess and social change

7.3. 3- security and trust