lecture 2: software production & processes dr valentina plekhanova university of sunderland, uk...

23
Lecture 2 Lecture 2 : : Software Production & Software Production & Processes Processes Dr Valentina Plekhanova Dr Valentina Plekhanova University of Sunderland, University of Sunderland, UK UK http://www.cet.sunderland.ac.uk/~cs0vpl/ http://www.cet.sunderland.ac.uk/~cs0vpl/ SE-Com185.htm SE-Com185.htm

Post on 20-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2Lecture 2:: Software Production & ProcessesSoftware Production & Processes

Dr Valentina PlekhanovaDr Valentina Plekhanova

University of Sunderland, UKUniversity of Sunderland, UK

http://www.cet.sunderland.ac.uk/~cs0vpl/SE-Com185.htmhttp://www.cet.sunderland.ac.uk/~cs0vpl/SE-Com185.htm

Page 2: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 2

Process: DefinitionsProcess: Definitions “Connected series of actions” “Series of operations deliberately

undertaken” “A set of partially ordered steps intended to

reach a goal.”

Page 3: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 3

Process: Process: TypesTypes Work processes Production processes Development processes Social processes Management processes …

Page 4: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 4

Production ProcessProduction Process ProductionProduction is the process of

manufacturing or growing something in large quantities.

  ProductionProduction is the process of organising

and preparing a programme, or record, in order to present it to the public.

Page 5: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 5

The Software Production Process: The Software Production Process: Definition and GoalsDefinition and Goals A process is the set of actions, tasks and

procedures involved in producing a software system, throughout its life cycle, i.e. the production of softwareproduction of software is involved at all stages of the process.

The goal of production processgoal of production process to satisfy customers’ requirements by delivering quality products in time and within budget.

Page 6: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 6

The Software Production Process:The Software Production Process: Critical FactorsCritical Factors Software production is a cognitively cognitively

drivendriven process process (or an intellectual activity).

Software production is characterised by high level of instabilityinstability andand uncertaintyuncertainty, e.g. requirements change continuously, lots of factors can influence on the cognitive processes.

Page 7: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 7

The Software Production Process:The Software Production Process:

Critical FactorsCritical Factors A "good" software process must be

predictable: cost estimates and schedules must be met, and the resulting product should be robust and offer the required functionality.

Page 8: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 8

The Software Production Process: The Software Production Process: Problems Problems How to make the process predictablepredictable, ,

reliablereliable and stablestable. How to automateautomate the software production

process.

Page 9: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 9

The Software Production Process: The Software Production Process: Solutions Solutions Use of software production process

models, standards and development methodologies.

Page 10: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 10

What are Software Engineering What are Software Engineering Methods?Methods? [Sommerville]

Software engineering methodsSoftware engineering methods are structured approaches to software development (e.g. function-oriented methods, object oriented methods) which include system models, notations, rules, design advice and process guidance.

An aim is to facilitate the production of high quality software in a cost effective way.

Page 11: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 11

What are Software Engineering What are Software Engineering Methods?Methods? [Sommerville]

All methods are based on the idea of developing models of a system which may be represented graphically.

There are no ideal methods. Different methods can be used for different

applications.

Page 12: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 12

The Software Production Process:The Software Production Process: Emphasis Emphasis Different organisations have different ways of

producing software placing emphasis on different aspects of the process.

It can be the issue of documentation. Some organisations produce software which is

self-documenting, other evaluate and re-evaluate each step of the process checking designs before coding and so on, requiring authorisation for any changes.

Page 13: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 13

The Software Production Process:The Software Production Process: EmphasisEmphasis Some organisations devote half of their

budget to intensive testing. With other organisations it is maintenance. The emphasis depends on the organisations The emphasis depends on the organisations

and their problems/preferences, culture, and their problems/preferences, culture, etc.etc.

Page 14: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 14

The Software Production ProcessThe Software Production Process: : Automation Automation The machinemachine can often help the human,

sometimes even automatically, to avoid errors, work faster and concentrate the attention at the conceptual level.

Page 15: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 15

Software ProductionSoftware Production: Key PeopleKey People

Client, Developer & UserClient, Developer & User

These people are the principal personnel in the building of software.

Page 16: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 16

Software Production: Software Production: Key RolesKey Roles Definitions of their roles include:

Client: individual or organisation, which wants a product to be developed.

Developer: member of the organisation who will be responsible for producing the software.

User: person on whose behalf the client has commissioned the developers, and who will utilise the software.

Page 17: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 17

Software Production: Software Production: Key RolesKey Roles The term software development covers all aspects

of software production before the product enters the maintenance phase.

Therefore, the developer could be involved in the requirement analysis onwards, or in the implementation stage of a product designed by someone else.

The client and developer can be part of the same organisation.

Page 18: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 18

Software Production: Software Production: Major TasksMajor Tasks According to emphasis on software tasks

(Milestone tasks) we can define the following major software development major software development taskstasks:

Page 19: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 19

Key Key Software Development TasksSoftware Development Tasks Analysis (work out what what to do); ManagementManagement (e.g. work out whowho can do it); Design (work out howhow to do it); Implementation (dodo it); Testing (checkcheck it); Deployment (deliverdeliver it).

Page 20: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 20

Structured Process Models: Goals Structured Process Models: Goals [Boehm, 1988][Boehm, 1988]

Determine the order of stagesorder of stages involved in software development and evolution;

Establish the transition criteriatransition criteria for progressing from one stage to the next.

Page 21: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 21

Software Development PhasesSoftware Development Phases Feasibility StudyFeasibility Study Requirements PhaseRequirements Phase Specification PhaseSpecification Phase Planning PhasePlanning Phase Design PhaseDesign Phase Implementation PhaseImplementation Phase TestingTesting Maintenance PhaseMaintenance Phase

Requirements Requirements Phase Phase

Page 22: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 22

Software Development Phases: ProcessesSoftware Development Phases: Processes

Requirements Requirements

Engineering Engineering ProcessProcess

Planning ProcessPlanning Process Design ProcessDesign Process Implementation ProcessImplementation Process TestingTesting Process Process Maintenance ProcessMaintenance Process

How?How?

Change Change

What?What?

What?What?

Page 23: Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm

Lecture 2 Valentina Plekhanova 23

Week 4: 24.02.03- 28.02.03Week 4: 24.02.03- 28.02.03 Project Control SessionProject Control Session Tutorial Time: 10 minutes for each Team Tutorial Time: 10 minutes for each Team Project Team will present project file: Schedule,

any project documentation. Students will describe where they are in the

project and any problems encountered. During the discussion reviewers will ask to see

evidence of deliverables for any tasks that are complete to determine whether they have in fact been done.