What is the module about
This presentation is the property of its rightful owner.
Sponsored Links
1 / 29

What is the module about? PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on
  • Presentation posted in: General

What is the module about?. As you can see from the schedule this is a practical module New skills! It must be underpinned with background reading and wider SE practice where directed As always we only have 12 weeks and so do not get overwhelmed by the subject matter. Skills include.

Download Presentation

What is the module about?

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


What is the module about

[email protected], [email protected]

What is the module about?

  • As you can see from the schedule this is a practical module

    • New skills!

  • It must be underpinned with background reading and wider SE practice where directed

  • As always we only have 12 weeks and so do not get overwhelmed by the subject matter


Skills include

[email protected], [email protected]

Skills include

  • A summary of the software engineering skills to impart to you:-

    • How to program using OO software engineering techniques

    • OO Web development skills

    • Awareness and use of object oriented methods (UML)

    • Database integration

    • Good practice


In context

[email protected], [email protected]

In context

  • Other aspects of software engineering are covered by other modules

  • Project management/Systems Analysis/Communications/Computer hardware and software

  • All the above topics come under the umbrella of software engineering

    • can seem confusing until you realise that software engineering involves a set of stages and tools


Se scope

[email protected], [email protected]

SE scope

  • We need to understand what software engineering is and how it came about

  • Why use it?

  • How to use it - the lifecycles

  • Improvements

  • Future of software engineering


What is se

[email protected], [email protected]

What is SE?

  • An approach to software development to embody the same discipline and rigor found in the engineering world

  • Advantages include:

    • Speed/productivity improvements

    • Re-use of existing, well-tested subsystems

    • Measurable outcomes


History 1

[email protected], [email protected]

History 1

  • The “software crisis”, recognised C1969. - threatened the progress of the computer industry

  • People-time was and still is relatively expensive, machine-time is now very cheap.

  • Programming was and still is very time intensive.

  • Products need support - probably more than ever

  • Software is complex; imagine creating a car with no drawings, specifications or planning.

  • Software “lives” – it somewhat “erodes” with age – contexts, details, standards and usage change


Trends

[email protected], [email protected]

Trends

  • The price of computer hardware is still falling fast

  • The cost of computer software is still high

  • More and more products are incorporating microprocessors (and thus software),e.g car engines, cameras, TV sets and mobile phones

  • Hundreds of millions of personal computers are in use, often in strategic roles.


Trends1

[email protected], [email protected]

Trends

  • Personal, corporate, national and international economies are increasingly dependent on computers, computer-mediated communication and software systems

  • Some commercial software is still written in old COBOL (and new Object Cobol!) and has been modified and patched by generations of engineers

  • Some of our most complex feats of engineering are computer programs


Programming development

[email protected], [email protected]

Programming; Development

  • Programming is much more than just writing code.

  • Programming involves (at least) the following activities;-

    • Problem analysis,

    • Planning,

    • Code and interface design,

    • Coding, Debugging and Testing,

    • Documenting each activity.

  • Do you all agree?


And incorporates documentation

[email protected], [email protected]

And incorporates documentation

  • Documentation is more than just a listing of the finished program.

  • Documentation involves all of the following;-

    • Records of the analysis of the problem,

    • The time & resource plan,

    • Technical and User documents,

    • Records of all bugs and bug fixes,

    • Records of test input and output.


The people aspect

[email protected], [email protected]

The people aspect

  • IT personnel now expected to have a range of skills

  • There are many different roles with a software development project

    • People may join or leave a development team, roles can change


Top ten it skills lists

[email protected], [email protected]

Top ten IT skills lists

  • www.sap-img.com, 20101. J2EE 2. .Net 3. C# 4. Project Management 5. Oracle 8 and 9i 6. SAP 7. Business Analysis 8. VB.net 9. NT Novell 10. Other non-J2EE Java

  • careerfruits.com SiliconIndia, 2010SAPJavaC++PHPIT Infrastructure Management Oracle.NetEmbedded C++CMobile Java/C


Software development lifecycles

[email protected], [email protected]

Software Development Lifecycles.

  • Software engineering helps to co-ordinate the team so that they are “on the same page”

  • How does it help?

    • Lifecycles

    • Automation of tasks

  • Since the software crisis of the 70’s, software developers have been looking for a solution…

    • to increase programmer productivity

    • to increase the quality of software

    • to decrease software production costs

  • Why? Because industry (the users) were fed up waiting for software and because it was costly


Software development life cycle sdlc classical

[email protected], [email protected]

Software DevelopmentLife Cycle(SDLC) - Classical

  • Software Engineering has identified several classical life cycles with different complexities, different aims and different outcomes.

  • Its up to you which one you choose and can of course be a combination of more than one

  • SDLCs include (see tutorial session for links)

    • Cyclic

    • Waterfall/Cascade

    • Evolutionary

    • ‘V’

    • DSDM


Nature of sdlcs

[email protected], [email protected]

Nature of SDLCs

  • All life cycles describe a process that you use to produce software

  • They are practical and are worth employing? <discuss>

    • You need to have some understanding of all of them

  • They all have common features - stages

  • Systems Analysis and Design or Requirements engineering module typically involves a couple of stages in the software development life cycle


Cyclic

[email protected], [email protected]

Cyclic

  • Cyclic features

    • Easy to use

    • Useful for bespoke/one off systems with no maintenance

    • No definitive start or finish to the process

    • Includes a recognition of management involvement

    • Can be difficult to control


Cyclic1

[email protected], [email protected]

Cyclic

Idea for a project

or product

Contract for a

Project

Concepts/

Feasibility

Requirements/

Specification

Management

yes/no

Next version

Design and

Code

Testing and

Acceptance

Maintenance


Waterfall

[email protected], [email protected]

Waterfall

  • One of the most famous SDLC’s - a waterfall because the stages of the lifecycle follow the premise of one stage following another

  • Still shows a somewhat cyclic nature to software development.

  • Shows the possibility of rework.

  • Includes maintenance as a vital part of the cycle.

  • No inbuilt control or management recognition (a weakness)


Sdlc waterfall

[email protected], [email protected]

SDLC (waterfall)

System/Software

Requirements

Analysis

Design

Code

Test

Release

Maintenance


What is the module about

[email protected], [email protected]

Evo

  • The Evolutionary life cycle is quite different from most other cycles.

  • Tom Gilb is credited with this SDLC

  • It’s main principle is that of the surrounding environment and therefore the requirements continually change!/evolve

  • Therefore an SDLC must reflect this position

  • Evo produces many small steps/ products towards an overall goal.

  • It is VERY difficult to control.

  • Many people argue that it is the ONLY way to achieve a quality product


What is the module about

[email protected], [email protected]

Evo

  • Evo’s guiding principles are :-

    • Deliversomething to a real end-user

    • Measurethe added-value to the user in all critical dimensions

    • Adjust both design and objectives based on observed realities.


What is the module about

[email protected], [email protected]

Evo

Evolutionary Life Cycle.

initial

objectives

revised course

towards new

objectives

heading towards

initial objectives

useful delivery

to user steps

changed

objectives


What is the module about

[email protected], [email protected]

‘V’

  • The ‘V’ life cycle is an extension of the waterfall life cycle.

  • It includes elements of Quality Assurance at every stage.

  • Looks at the whole of the project

  • No obvious management, but inbuilt control through QA.


What is the module about

[email protected], [email protected]

‘V’

Maintenance

RequirementsAcceptance Test

AnalysisSystem Test

High level

Design

Integration Test

Low level

Design

Module Test

CodeUnit Test

V Life Cycle


Conclusion

[email protected], [email protected]

Conclusion

  • Software Development life cycles describe the process used to produce software.

  • Questions to always ask:

    • What does it achieve?

    • What doesn’t it achieve?

    • How could you alter it to be better?


Insight ability to reflect

[email protected], [email protected]

Insight – ability to reflect

  • You must identify your life cycle.

  • You must identify the requirements for your life cycle

  • You should look at possible ways to improve it.

  • Question :- Should there be one life cycle for the team/project?

    • What are the benefits and problems of such a suggestion?

    • What are you going to do about it?


Conclusion contd

[email protected], [email protected]

Conclusion contd

  • As we have discussed - some of the life cycles don’t include recognition of project management and control

  • Project management and control is CRUCIAL and you will find in industry/books reference being made to the Project Development Life Cycle(PDLC)

  • The SDLC fits inside a PDLC - it is the life cycle for the software development part of the project(of course that may be the whole of the project)


The complete software developer

[email protected], [email protected]

The complete software developer?

  • A Software Engineer!

  • SE includes both technical and non-technical elements, so software engineers must be able to communicate well, both orally and in writing.

  • They must have a thorough knowledge of computer systems and must understand the importance of project management, user feedback, documentation and quality control

  • So easy ….!!!


The future

[email protected], [email protected]

The future

  • SE still as relevant today as it was in 1970

  • Tools have changed and will continue to do so

  • CASE tools have had limited success - specialised tools tend to be used for each stage

    • Modelling, Design, Testing, Optimisation etc.

    • UML is interesting as it is universal

  • New sets of challenges appeared in the latter part of the 1990’s - web development – we will look at this later on in the module when we cover JSP

  • Requirements capture as important as ever for the success of a project….this has not changed in being still the area most prone to getting it wrong

  • Still evidence of projects failing however…..why? <discuss>


  • Login