OOSSE Week 1 What is the module about? As you can see from the schedule this is a practical module...
-
Upload
ashlie-nash -
Category
Documents
-
view
213 -
download
0
Transcript of OOSSE Week 1 What is the module about? As you can see from the schedule this is a practical module...
OOSSE Week 1What is the module about?
As you can see from the schedule this is a practical moduleNew 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
OOSSE Week 1Skills includeA summary of the software engineering skills to impart to
you:-How to program using OO software engineering
techniquesOO Web development skillsAwareness and use of object oriented methods (UML)Database integrationGood practice
OOSSE Week 1In contextOther aspects of software engineering are covered by
other modulesProject 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
OOSSE Week 1SE scopeWe need to understand what software engineering is and
how it came aboutWhy use it?How to use it - the lifecyclesImprovementsFuture of software engineering
OOSSE Week 1What is SE?An approach to software development to embody the same
discipline and rigor found in the engineering worldAdvantages include:
Speed/productivity improvementsRe-use of existing, well-tested subsystemsMeasurable outcomes
OOSSE Week 1History 1The “software crisis”, recognised C1969. - threatened the
progress of the computer industryPeople-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 everSoftware 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
OOSSE Week 1TrendsThe 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.
OOSSE Week 1TrendsPersonal, 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
OOSSE Week 1
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?
OOSSE Week 1
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.
OOSSE Week 1The people aspectIT personnel now expected to have a range of skillsThere are many different roles with a software
development projectPeople may join or leave a development team, roles can
change
OOSSE Week 1Top ten IT skills listswww.sap-img.com, 2010
1. 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, 2010
SAPJavaC++PHPIT Infrastructure Management Oracle.NetEmbedded C++CMobile Java/C
OOSSE Week 1Software Development Lifecycles.
Software engineering helps to co-ordinate the team so that they are “on the same page”
How does it help? LifecyclesAutomation of tasks
Since the software crisis of the 70’s, software developers have been looking for a solution…to increase programmer productivityto increase the quality of softwareto decrease software production costs
Why? Because industry (the users) were fed up waiting for software and because it was costly
OOSSE Week 1Software 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)CyclicWaterfall/CascadeEvolutionary‘V’DSDM
OOSSE Week 1Nature of SDLCsAll 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 - stagesSystems Analysis and Design or Requirements
engineering module typically involves a couple of stages in the software development life cycle
OOSSE Week 1CyclicCyclic features
Easy to useUseful for bespoke/one off systems with no
maintenanceNo definitive start or finish to the processIncludes a recognition of management involvementCan be difficult to control
OOSSE Week 1Cyclic
[email protected], [email protected] 2009
Contract for a Project
Requirements/Specification
Design andCode
Testing and Acceptance
Next version
Idea for a projector product
Concepts/Feasibility
Maintenance
Managementyes/no
OOSSE Week 1WaterfallOne 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)
OOSSE Week 1SDLC (waterfall)
[email protected], [email protected] 2009
System/SoftwareRequirements
Analysis
Design
Code
Test
Release
Maintenance
OOSSE Week 1EvoThe Evolutionary life cycle is quite different from most other
cycles.Tom Gilb is credited with this SDLCIt’s main principle is that of the surrounding environment
and therefore the requirements continually change!/evolveTherefore an SDLC must reflect this positionEvo 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
OOSSE Week 1EvoEvo’s guiding principles are :-
Deliver something to a real end-userMeasure the added-value to the user in all critical
dimensionsAdjust both design and objectives based on observed
realities.
OOSSE Week 1Evo
[email protected], [email protected] 2009
useful deliveryto user steps
heading towardsinitial objectives
initial objectives
changed objectives
revised coursetowards newobjectives
Evolutionary Life Cycle.
OOSSE Week 1‘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 projectNo obvious management, but inbuilt control through QA.
OOSSE Week 1‘V’
[email protected], [email protected] 2009
Requirements Acceptance Test
Maintenance
Analysis System Test
High level Design
Integration Test
Low level Design
Module Test
Code Unit Test
V Life Cycle
OOSSE Week 1ConclusionSoftware 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?
OOSSE Week 1Insight – ability to reflect You must identify your life cycle.You must identify the requirements for your life cycleYou 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?
[email protected], [email protected]
v1.3Sept 2009
OOSSE Week 1Conclusion contdAs we have discussed - some of the life cycles don’t
include recognition of project management and controlProject 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)
Slide [email protected], [email protected]
v1.3Sept 2009
OOSSE Week 1
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 ….!!!
OOSSE Week 1The futureSE still as relevant today as it was in 1970Tools have changed and will continue to do soCASE tools have had limited success - specialised tools tend to
be used for each stageModelling, 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>