cape computer science unit 2 - livebinde

4
9/ 22/13 CAPE Computer Science Unit 2 - LiveBi nder  w w w. l i vebi nders.com/ pl ay /pl ay ?i d=127326 1/ 4 Software engineering (SE) is a term indicating the profession concerned with the creation and maintenance of software by the use of relevant computer science (CS), project management, and other technologies and practices. S oftware engi neering attempts t o bring the lessons learned fr om engi neering di scipl ines (E.g. mechanical, electrical, chemical etc .) t o  bear on t he software development process. In the past many software projects have failed due to poor standards,  bad programm ing and inadequat e project management prac tices. S E techniques can improve the quality of the finished software product as well as the product ivi ty a nd quality of prog ram developers. It ha s been estimated tha t t here a re in exce ss of 2 mi ll ion persons worl dwide that can be considered t o be involved in various S E e fforts. Software Engineering vs. Computer Science U nli ke c omputer science whi ch de als wi th t he underlying theory of  prog rams, S E is concerne d with the approac hes take n to computer  prog rammi ng , insi sting that it be treate d in a hig hly s truct ured manner sim il ar to a mains trea m engi neering professi on rat her t han a s an a rt or a craft. Diverse views exist in the SE community as to the extent to which the development of software mi rrors a typical engi neering  process. Nevert heless there have been seve ral successful S E project s includi ng the popular Linux OS software, spac e shutt le software a nd  banking software. Qualifications for Sof tware Engineer s Upward of 50% of software engineers have earned a computer science degree. There is also a trend towards the earning of speciali zed undergraduate a nd graduate de g rees in the field of 

Upload: poonal-asas

Post on 14-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPE Computer Science Unit 2 - LiveBinde

7/27/2019 CAPE Computer Science Unit 2 - LiveBinde

http://slidepdf.com/reader/full/cape-computer-science-unit-2-livebinde 1/4

9/22/13 CAPE Computer Science Unit 2 - LiveBinder  

www.livebinders.com/play/play?id=127326

Software engineering (SE) is a term indicating the profession

concerned with the creation and maintenance of software by the use

of relevant computer science (CS), project management, and other 

technologies and practices.

Software engineering attempts to bring the lessons learned fromengineering disciplines (E.g. mechanical, electrical, chemical etc.) to

 bear on the software development process.

In the past many software projects have failed due to poor standards,

 bad programming and inadequate project management practices. SE

techniques can improve the quality of the finished software product as

well as the productivity and quality of program developers. It has beenestimated that there are in excess of 2 million persons worldwide that

can be considered to be involved in various SE efforts.

Software Engineering vs. Computer Science

Unlike computer science which deals with the underlying theory of 

 programs, SE is concerned with the approaches taken to computer  programming, insisting that it be treated in a highly structured manner 

similar to a mainstream engineering profession rather than as an art or 

a craft. Diverse views exist in the SE community as to the extent to

which the development of software mirrors a typical engineering

 process. Nevertheless there have been several successful SE projects

including the popular Linux OS software, space shuttle software and

 banking software.

Qualifications for Software Engineers

Upward of 50% of software engineers have earned a computer 

science degree. There is also a trend towards the earning of 

specialized undergraduate and graduate degrees in the field of 

Page 2: CAPE Computer Science Unit 2 - LiveBinde

7/27/2019 CAPE Computer Science Unit 2 - LiveBinde

http://slidepdf.com/reader/full/cape-computer-science-unit-2-livebinde 2/4

9/22/13 CAPE Computer Science Unit 2 - LiveBinder  

www.livebinders.com/play/play?id=127326

software engineering (as opposed to CS). In addition persons often

specialize in other fields such as computer engineering, medical

informatics or biology as some systems require highly specialized and

detailed knowledge outside of traditional CS or mathematics areas.

E.g. DNA computer system may require detailed knowledge from the

fields of biology or medicine.

Waterfall Model

A major aim of SE is to bring order out of the seemingly chaotic task 

of writing computer programs. To achieve this end a commonly cited

approach is the use of the so-called waterfall model. Under this model

 progress is made by systematically proceeding from one phase of development to another. Imagine water cascading down a series of 

waterfalls along a river.

Basic Waterfall Stages – 

Step 1 –  Analysis: The problem(s) thoroughly investigated and

definedStep 2 –  Specification: the problem written out in a clear and

 precise manner; a list of all the things required produced

Step 3 –  Design: A particular approach decided upon and a

detailed plan of that plan produced

Step 4 –  Implementation: The plan put into action as design turned

into program code (coding)

Step 5 – Testing : The code produced in the implementationsection scrutinized by conducting series of tests

Step 6 –  Maintenance: The project is finished but there is

acknowledgement that changes will have to be made throughout

the lifetime of the software

Typically the first five steps are short-term (i.e. may last a few days,

Page 3: CAPE Computer Science Unit 2 - LiveBinde

7/27/2019 CAPE Computer Science Unit 2 - LiveBinde

http://slidepdf.com/reader/full/cape-computer-science-unit-2-livebinde 3/4

9/22/13 CAPE Computer Science Unit 2 - LiveBinder  

www.livebinders.com/play/play?id=127326

weeks, months or years). The last step (Maintenance) is long term

(several years).

Other Models

The waterfall model is far from ideal as persons often lack theexperience to adequately finish one stage of the process before

continuing to the next. It must be noted that oftentimes errors which

are produced at one stage are not discovered until later stages, a

situation which is difficult and expensive to correct. Other models

such as the evolutionary models have been developed which are

more complex but allow greater flexibility.

SE Debates

Due to the diverse fields which encompass SE such as computer 

science, engineering and mathematics, vigorous debates have

occurred over the years as to the essential characteristics of SE.

SE has characteristics belonging to maths, science, engineering andeven art.

Mathematical properties: - It is clear that all programs have properties

that can be mathematically handled because they are produced from

algorithms which themselves have mathematical properties. Some

have argued that SE is another branch of mathematics.

Scientific properties: - Science is characterized by the ability to

theorize, experiment and measure. Programs have properties that can

 be measured and subjected to scientific approaches.

Artistic properties: - The fact that software must be pleasing to those

who use it means that some degree of art must be applied to maximize

Page 4: CAPE Computer Science Unit 2 - LiveBinde

7/27/2019 CAPE Computer Science Unit 2 - LiveBinde

http://slidepdf.com/reader/full/cape-computer-science-unit-2-livebinde 4/4

9/22/13 CAPE Computer Science Unit 2 - LiveBinder  

www.livebinders.com/play/play?id=127326

the utility of the software. Defining programming as an art would

suggest that no formal rules or strategies are sufficient to develop

software but that it must involve individual subjective tastes.

The role of Project Management: - There is also the fact that large

 programs are built by teams of persons working on successive projects. The project management requirements of such an effort, as

well as the strict engineering discipline approach, become more

important as the size of the software product (i.e. various related

 programs) increases.

The debates will continue well into the future as software developers

continue to require multiple approaches from the diverse fieldsmentioned such as mathematics, science and art.