lecture 2: software production & processes dr valentina plekhanova university of sunderland, uk...
Post on 20-Dec-2015
222 views
TRANSCRIPT
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
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.”
Lecture 2 Valentina Plekhanova 3
Process: Process: TypesTypes Work processes Production processes Development processes Social processes Management processes …
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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).
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.
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
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?
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.