1 / 29

What is the module about?

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.

hedda
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  2. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  3. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  4. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  5. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  6. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  7. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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.

  8. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  9. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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?

  10. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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.

  11. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  12. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  13. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  14. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  15. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  16. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  17. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  18. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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)

  19. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk SDLC (waterfall) System/Software Requirements Analysis Design Code Test Release Maintenance

  20. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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

  21. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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.

  22. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk Evo Evolutionary Life Cycle. initial objectives revised course towards new objectives heading towards initial objectives useful delivery to user steps changed objectives

  23. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk ‘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.

  24. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk ‘V’ Maintenance Requirements Acceptance Test Analysis System Test High level Design Integration Test Low level Design Module Test Code Unit Test V Life Cycle

  25. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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?

  26. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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?

  27. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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)

  28. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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 ….!!!

  29. j.c.westlake@staffs.ac.uk, n.a.shulver@staffs.ac.uk 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>

More Related