SlideShare ist ein Scribd-Unternehmen logo
1 von 97
Downloaden Sie, um offline zu lesen
Software development 
PROCESS 
Ivano Malavolta
Roadmap 
Introduction 
Classical software development processes 
Agile 
Open-source software development 
Software development process research
Discussion 
If you need to develop a system with 10M LOCS, 
• How many people do you need? 
• How much time? 
• How do they synchronize? 
• How do you know that you are performing well?
Software development process 
Design 
System 
Te s t 
Unit 
Te s t 
Developing software 
without a defined process is 
chaotic and inefficient 
. . . . . . 
Following a defined 
process makes software 
development more orderly, 
predictable and repeatable 
Slide by Cesar Augusto Nogueira, IBM
Life cycle 
From inception of an idea for a product through: 
• requirements gathering and analysis 
• architecture design and specification 
• coding and testing 
• delivery and deployment 
• maintenance and evolution 
• retirement
Software process model 
Attempt to organize the software life cycle by defining 
– activities involved in software production 
– order of activities and their relationships 
Goals of a software process 
– standardization, predictability, productivity, high product quality, 
ability to plan time and budget requirements
The role of standards 
They are needed to achieve quality in both software 
products and processes 
They may be imposed internally or externally 
– e.g., MIL-STD 2167A imposed to contractors for military 
applications 
Other examples: ISO series, IEEE
Main benefits 
From the developers' viewpoint 
– standards enforce a uniform behavior within an organization 
– they facilitate communication among people, stabilizes the 
production process, and makes it easier to add new people to 
ongoing projects 
From the customers' viewpoint 
– they make it easier to assess the progress and quality of results 
– they reduce the strict dependency of customers on specific 
contractors
Code & Fix: the naĂŻve process model 
• Write code 
• Fix it to eliminate any errors that have been detected, 
to enhance existing functionality, or to add new 
features 
• Source of difficulties and deficiencies 
– impossible to predict 
– impossible to manage
Models are needed 
Symptoms of inadequacy: the software crisis 
– scheduled time and cost exceeded 
– user expectations not met 
– poor quality 
The size and economic value of software applications 
required appropriate “process models” 
VS
Process model goals 
(B. Boehm 1988) 
“determine the order of stages involved in software 
development and evolution, and to establish the transition 
criteria for progressing from one stage to the next. 
These include completion criteria for the current stage plus 
choice criteria and entrance criteria for the next stage. Thus 
a process model addresses the following software project 
questions: 
What shall we do next? 
How long shall we continue to do it?”
Process as a "black box" 
Product 
Process 
Informal 
Requirements
Problems 
The assumption is that requirements can be fully understood 
prior to development 
Interaction with the customer occurs only at the beginning 
(requirements) and end (after delivery) 
Unfortunately the assumption almost never holds
Process as a "white box" 
Product 
Process 
Informal 
Requirements 
feedback
Advantages 
Reduce risks by improving visibility 
Allow project changes as the project progresses 
– based on feedback from the customer 
Why a project may change?
The main activities 
Feasibility study 
Requirements engineering 
Architecture and detailed design 
Implementation and testing 
Delivery, deployment, and maintenance 
They must be performed independently of the model 
The model simply affects the flow among activities
Example from an EU project 
ConstRaint and Application driven Framework for Tailoring 
Embedded Real-time Systems 
http://www.crafters-project.org
Why CRAFTERS? 
PROBLEMS 
poorly interoperable proprietary technologies 
à poor time to market + high costs 
SOLUTION 
Seamless connectivity and middleware 
– by realizing a common middleware layer that is designed to 
support new wireless communication standards 
– portable across different platforms 
Ability to develop powerful design time solutions with 
notably shorter cycles 
– thanks to the unique tool chain delivered with reference 
middleware and hardware
Feasibility study 
Why a new project? 
• cost/benefits tradeoffs 
• buy vs make 
– Requires to perform preliminary requirements analysis 
– Produces a feasibility study document 
1. Definition of the problem 
2. Alternative solutions and their expected benefits 
3. Required resources, costs, and delivery dates in each proposed 
alternative solution
CRAFTERS feasibility study 
Project proposal submitted to the ARTEMIS Call 2011 Project
Requirements engineering 
Involves 
– eliciting 
– understanding 
– analyzing 
– specifying 
Feasibility 
study 
Requirements 
elicitation and 
analysis 
Requirements 
specification 
Requirements 
validation 
Feasibility 
report 
System 
models 
User and system 
requirements 
Requirements 
document 
Focus on 
– what qualities are needed, 
– NOT on how to achieve them
What is needed 
Understand interface between the application and the 
external world 
Understand the application domain 
Identify the main stakeholders and understand 
expectations 
– different stakeholders have different viewpoints 
– software engineer must integrate and reconcile them
The requirements specification 
document (1) 
Provides a specification for the interface between the 
application and the external world 
– defines the qualities to be met 
Has its own qualities 
– understandable, precise, complete, consistent, unambiguous, 
easily modifiable
The requirements specification 
document (2) 
Must be analyzed and confirmed by the stakeholders 
– may even include version 0 of user manual 
May be accompanied by the system test plan document 
As any large document, it must be modular 
– "vertical" modularity 
• the usual decomposition, which may be hierarchical 
– "horizontal" modularity 
• different viewpoints 
Defines both functional and non functional requirements
Requirements in CRAFTERS (1) 
Set of relevant use cases first
Requirements in CRAFTERS (2) 
Then, requirements 
collection and 
formulation
Software architecture and detailed 
design activity 
Usually follows a company standard, which may include a 
standard notation, such as UML 
The result of this activity is: 
– the software architecture description 
– a design specification document 
We will have a dedicated lecture on this activity
General model of the design process 
Interface 
design 
Component 
design 
System 
architecture 
Database 
specification 
Interface 
specification 
Requirements 
specification 
Architectural 
design 
Component 
specification 
Platform 
information 
Data 
description 
Design inputs 
Design activities 
Design outputs 
Database design
Architecture in CRAFTERS (1)
Design in CRAFTERS (2)
Design in CRAFTERS (3)
Design in CRAFTERS (4)
Verification and validation 
Verification and validation (V & V) is intended to show that a 
system conforms to its specification and meets the 
requirements of the customer 
Involves: checking and review processes AND system testing 
System testing involves executing the system with test cases 
that are derived from the specification of the real data to be 
processed by the system 
Testing is the most commonly used V & V activity
Coding and module testing activity 
Company wide standards often followed for coding 
style 
System testing 
We will have a dedicated lecture on this activity 
Component 
testing 
Acceptance 
testing
Testing stages 
Development or component testing 
– Individual components are tested independently 
– Components may be functions or objects or coherent groupings of 
these entities 
System testing 
– Testing of the system as a whole. Testing of emergent properties 
is particularly important 
Acceptance testing 
– Testing with customer data to check that the system meets the 
customer’s needs
Coding and testing in CRAFTERS 
Prototype implementation based on 3 different HW 
platforms 
For example
Software evolution 
Software is inherently flexible and can change 
Assess existing 
systems 
Define system 
requirements 
Propose system 
changes 
Modify 
systems 
New 
system 
Existing 
systems 
Although there has been a demarcation between 
development and evolution (maintenance), this is increasingly 
irrelevant as fewer and fewer systems are completely new
What you need to remember 
Requirements engineering 
create the software specification 
Design and implementation 
requirements à executable software 
Software verification and validation 
to check that the system conforms to its specification and that 
it meets the real needs of the users of the system 
Software evolution 
new requirements à the software must evolve to remain 
useful
Roadmap 
Introduction 
Classical software development process 
Agile 
Open-source software development
Classical software process 
models* 
Waterfall model 
Spiral model 
Quality-oriented model 
Microsoft’s Synch-and-Stabilize 
* these are the most known process models, it is not a complete list
Waterfall model 
Requirements 
definition 
System and 
software design 
Implementation 
and unit testing 
Integration and 
system testing 
Operation and 
maintenance 
Exist in many variants, all sharing sequential flow style 
It is document-driven
Waterfall model 
Organizations adopting them standardize the outputs 
of the various phases (deliverables) 
May also prescribe methods to follow in each phase 
– organization of methods in frameworks often called 
methodology 
Example: Military Standard (MIL-STD-2167)
Alternative: the V model 
Emphasis on V&V activities 
Acceptance tests written with requirements 
Unit/integration tests written during design
Critical evaluation of the waterfall 
model 
+ sw process subject to discipline, planning, and 
management à standard-oriented 
+ postpone implementation to after understanding 
objectives 
+ good documentation 
– difficult to gather all requirements once and for all 
– users may not know what they want 
– linear, rigid, monolithic 
– no feedback from the customer 
– no parallelism, all phases are blocking 
– a single delivery date (at the end!)
Spiral model 
Risk 
analysis 
Risk 
analysis 
Risk 
analysis 
Prototype 2 
Risk 
analysis Proto-type 
1 
Evaluate alternatives, 
identify, resolve risks 
Prototype 3 
REVIEW 
Requirements plan 
Life-cycle plan 
Development 
plan 
Risks are explicitly assessed and resolved 
Opera-tional 
protoype 
Concept of 
Operation 
Simulations, models, benchmarks 
S/W 
requirements 
Requirement 
validation 
Design 
V&V 
Product 
design Detailed 
design 
Code 
Unit test 
Integration 
Acceptance test 
Service test Develop, verify 
next-level product 
Determine objectives, 
alternatives and 
constraints 
Plan next phase 
Integration 
and test plan
Spiral model sectors 
Objective setting 
– Specific objectives for the phase are identified 
Risk assessment and reduction 
– Risks are assessed and activities put in place to reduce the 
key risks 
Development and validation 
– A development model for the system is chosen which can 
be any of the generic models + implementation & validation 
Planning 
– postmortem of previous loop, planification of next loop
Critical evaluation of the spiral model 
+ a good fit if requirements are not stable 
+ flexible, but still with a plan 
+ risks are assessed clearly 
+ customer involvement 
+ good documentation 
– difficult to assess risks 
– difficult to assess objectives and constraints
Quality-oriented model 
Mathematical formalism to express requirements 
Model checking to prove correctness + automatic 
transformations to code = preserve correctness
Critical evaluation of the quality-oriented 
model 
+ a good fit for to safety/security critical parts 
+ if requirements are correct, risks are totally controlled 
+ verification is implicit à potentially, less testing needed 
– math languages require specific skills, rarely available 
– some parts (ex user interface) cannot be specified formally 
– validation of requirements still an issue 
– customer does not understand math language 
– specifier may misunderstand requirements
Microsoft’s Synch-and-Stabilize 
CONTEXT 
Time to market essential 
Requirements cant be fixed early on 
Complex products (Mlocs) with several interacting 
components 
Design hard to devise and freeze early on 
Michael A. Cusumano and Richard W. Selby. 1997. How Microsoft builds software. Commun. ACM 
40, 6 (June 1997), 53-61. DOI=10.1145/255656.255698
Microsoft’s S-and-S phases 
Planning 
– vision of the product 
– Specification 
– Teamwork schedule 
Development 
– team composed of 2 groups 
• developers and testers (continuous testing) 
Stabilization 
– internal testing 
– external testing 
– release
Planning phase 
Vision Statement - Product Managers 
– Define goals for the new product 
– Priority-order user activities that need to be supported by 
product features 
Deliverables: 
– Specification document 
– Schedule and “feature team” formation 
• 1 program manager 
• 3-8 developers 
• 3-8 testers (1:1 ratio with developers)
Development phase 
Plan 3-4 sequential subprojects (lasting 2-4 months each) 
Buffer time between iterations (20%-50%) 
Subprojects -- design, code, debug 
– starting with most critical features and shared components 
– feature set may change by 30% or more 
– each developer is committed only to his assigned tasks
Subproject development 
Feature teams go through the complete cycle of 
development, feature integration, testing and fixing problems 
Testers are paired with developers 
Feature teams synchronize work by building the product, 
finding and fixing errors on a daily and weekly basis 
Code that breaks a build must be fixed immediately 
At the end of a subproject, the product is stabilized
Stabilization 
Internal testing of complete product 
External testing 
– beta sites 
– ISVs (Independent SE vendors) 
– OEMs (Original Equipment Manufacturers) 
– end users 
Release preparation
Critical evaluation of Microsoft’s 
method 
+ Responsiveness to marketplace: they always have a 
release to ship 
+ allows to ship preliminary versions early 
+ allows to add features in subsequent releases 
+ continuous customer feedback 
+ breaks down large projects into manageable pieces (with 
priorities) 
– poor focus on product architecture 
– no rigorous approach to design & code reviews 
– e.g., Video on demand components have real-time constraints that 
require precise mathematical models 
– no focus on defect prevention
Roadmap 
Introduction 
Classical software development process 
Agile 
Open-source software development 
Software development process research
Agile
Waterfall vs agile: poor visibility
Waterfall vs agile: poor quality
Waterfall vs agile: too risky
Waterfall vs agile: can’t handle 
change
The agile approach
Risks and features 
http://www.testingthefuture.net/wp-content/uploads/2011/12/ 
waterfall_versus_agile_development.png
Agile manifesto 
We are uncovering better ways of developing 
software by doing it and helping others do it. 
Through this work we have come to value: 
Individuals and interactions over processes and tools 
Working software over comprehensive documentation 
Customer collaboration over contract negotiation 
Responding to change over following a plan 
That is, while there is value in the items on 
the right, we value the items on the left more. 
http://www.agilemanifesto.org
Anti-methodology? 
The Agile movement is not anti-methodology, in fact, many of us want to 
restore credibility to the word methodology. 
We want to restore a balance. We embrace modeling, but not in order to 
file some diagram in a dusty corporate repository. 
We embrace documentation, but not hundreds of pages of never-maintained 
and rarely-used tomes. We plan, but recognize the limits of 
planning in a turbulent environment. 
Jim Highsmith, History: The Agile Manifesto
Agile principles (extract) 
Agile methods are iterative development processes with: 
• frequent releases of the product 
• continuous interaction between dev. team and customer 
• reduce product documentation 
• continuous and systematic assessment of produced value 
and risks
Agile official principles
A more critical evaluation of agile 
principles 
http://www.cs.york.ac.uk/staf/images/meyer-agile-forprint.pdf
How does it work in practice? 
You make a list You start executing 
You estimate You update the plan 
“@run-time” 
You set priorities
Agile iterations
Technical tools: unit tests 
Snippet of test code for exercising some functionality of the 
product à codified requirements 
We will have two lectures on testing
Technical tools: test-driven 
development 
Write tests first 
Refactoring is less risky now
Technical tools: continuous 
integration 
Merging all the developers’ working copies many times a day 
à it allows to make sure that all the code integrates, all the 
unit tests pass, and a warning if anything goes wrong 
image from http://newmedialabs.com/
An implementation: SCRUM 
AAA
An implementation: SCRUM 
http://www.flickr.com/photos/magia3e/6233729753/
An implementation: SCRUM
An implementation: SCRUM 
Burndown chart = how much work is left
Critical evaluation of the agile 
method 
+ Acceptance of change à less risky 
+ Frequent and short iterations 
+ Emphasis on working code 
+ Associating a test with every piece of functionality 
+ tests are a key resource within the project 
+ Continuous integration (and delivery) 
+ Planned 
– no upfront tasks, e.g. requirements 
– Tests as a replacement for specifications 
– feature-based development & ignorance of dependencies 
– no quality plan 
– dismissal of a priori architecture work 
– actually, dismissal of everything which is non-shippable
Roadmap 
Introduction 
Classical software development process 
Agile 
Open-source software development 
Software development process research
Open-source software 
development process
Open source development process 
As applied in successful projects: 
– Apache 
– Mozilla 
– … 
Tools 
• GitHub (config management system) 
• Mailing lists 
• Bugzilla (Bug tracking) 
Products 
• Source code, test suites 
• all related information, like mails, bugs, comments, etc.
It doesn't just mean access to the 
source code 
1. Free redistribution 
2. Source code 
3. Derived works 
4. Integrity of the author's source code 
5. No discrimination against persons or groups 
6. No discrimination against fields of endeavor 
7. Distribution of license 
8. License must not be specific to a product 
9. License must not restrict other software 
10. License must be technology-neutral 
www.opensource.org/docs/definition.php
Roles 
• Core team (2-8 people) 
– Architecture, requirements, integration/build, release 
• Patch developers (10-100) 
– Patch (evolutive + corrective) 
• Bug providers (100 – 1000+) 
– Signal bugs, may perform pull requests, etc. 
• Others (thousands) 
– Download and use
Overview of the process 
The process is “public” 
• everyone can participate 
Releases are checked by 
a revision board that tests 
proposed code from the 
community 
Very frequent builds 
Often quite frequent releases 
• once a month
Critical evaluation of the open-source 
model 
+ simple and effective tools for bug/change tracking 
+ continuous delivery 
+ resiliency with respect to team members (openness) 
+ “no maintainance” 
– limited documentation (not always) 
– no project plan 
– no quality plan
Roadmap 
Introduction 
Classical software development process 
Agile 
Open-source software development 
Software development process research
Software development process 
RESEARCH
Major trends and challenges 
The Internet is the development environment 
• Software is rarely developed in isolation 
– it is more developed in teams, with even users involved 
• see user-centered design 
– radical change in the methods and techniques used to conceive, 
design, develop, deploy, and evolve software 
• e.g. our collaborative design platform for mobile apps 
• Software is continuously changed and redeployed 
– new challenges for configuration management, deployment, etc. 
• e.g., continuous integration, continuous delivery, etc. 
• Existing quality standard and models need to be extended 
and adapted to very different situations 
– e.g., safety-critical systems VS mobile apps
Major trends and challenges 
The Internet is the architecture and execution infrastructure 
• Any software is directly or indirectly operating over the 
Internet 
– even control and SCADA systems 
• The classical separation among different types of software 
is tending to disappear 
– Internet of things 
– Smart services 
• e.g., a connected car 
– Disappearing computers 
• Internet as the infrastructure for the development and 
operation of modern software systems (cloud)
Major trends and challenges 
Users are mobile, nomadic, and “always on” 
• Need to integrate software design techniques and 
expertise with the true industrial designers’ skills and 
methods 
– it is not just a matter of “increasing usability” 
• Designing software for mobile devices is not just a 
variation of classical development processes 
– it requires new and specific techniques, policies, and methods able 
to effectively address challenges like mobile fragmentation, 
intermitted connection, power consumption
Major trends and challenges 
The Internet is the basic distribution and business infrastructure 
• Today software can be easily distributed and configured 
over the Internet + users are always connected 
– software updates can be done much more frequently 
• Users and customers actually expect this 
– software is global now, it must operate coherently with requirements 
and constraints of each region/country 
– e-commerce applied to software too (app stores) 
• Apple app store is the only legal means to install software on iDevices 
• new business models (e.g., in-app purchases) 
– fragmentation problem (e.g., Android) 
• Open APIs (very beyond the classical Open Data paradigm) 
– e.g., E015 = full, bidirectional and direct interoperability among 
autonomous distributed open services
What this lecture means to you? 
No “silver bullet” 
Linear processes: planned, not flexible 
Iterative processes: planned, flexible, less risky 
Quality-oriented processes: planned, not flexible, measured 
Agile: not planned, test-driven 
Many research challenges to be explored out there!
Suggested readings 
1. Alfonso Fuggetta and Elisabetta Di Nitto. 2014. Software process. In 
Proceedings of the on Future of Software Engineering (FOSE 2014). 
ACM, New York, NY, USA, 1-12. 
2. Striebeck, M., "Ssh! We are adding a process... [agile practices]," Agile 
Conference, 2006 , vol., no., pp.9 pp.,193, 23-28 July 2006 
3. Nicolò Paternoster, Carmine Giardino, Michael Unterkalmsteiner, Tony 
Gorschek, Pekka Abrahamsson, Software development in startup 
companies: A systematic mapping study, Information and Software 
Technology, Volume 56, Issue 10, October 2014, Pages 1200-1218, 
ISSN 0950-5849
References 
http://www.agilenutshell.com
Contact Ivano Malavolta | 
Post-doc researcher 
Gran Sasso Science Institute 
iivanoo 
ivano.malavolta@gssi.infn.it 
www.ivanomalavolta.com

Weitere ähnliche Inhalte

Was ist angesagt?

Send Sms with SmsManager Api In Android with Kotlin
Send Sms with SmsManager Api In Android with KotlinSend Sms with SmsManager Api In Android with Kotlin
Send Sms with SmsManager Api In Android with KotlinShahRushika
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9Ian Sommerville
 
Features of java
Features of javaFeatures of java
Features of javaWILLFREDJOSE W
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept Atamjitsingh92
 
Validation testing
Validation testingValidation testing
Validation testingSlideshare
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
functional testing
functional testing functional testing
functional testing bharathanche
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance ShashankBajpai24
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Angelin R
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenanceakiara
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary modelsPihu Goel
 
Alpha & Beta Testing
Alpha & Beta TestingAlpha & Beta Testing
Alpha & Beta TestingMithilesh Singh
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Software development slides
Software development slidesSoftware development slides
Software development slidesiarthur
 

Was ist angesagt? (20)

Send Sms with SmsManager Api In Android with Kotlin
Send Sms with SmsManager Api In Android with KotlinSend Sms with SmsManager Api In Android with Kotlin
Send Sms with SmsManager Api In Android with Kotlin
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9
 
Features of java
Features of javaFeatures of java
Features of java
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
 
Validation testing
Validation testingValidation testing
Validation testing
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
functional testing
functional testing functional testing
functional testing
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
 
Alpha & Beta Testing
Alpha & Beta TestingAlpha & Beta Testing
Alpha & Beta Testing
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 

Andere mochten auch

Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologiesAnkita Lachhwani
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and MethodsRiant Soft
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development processRiant Soft
 
Agile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboAgile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboBosnia Agile
 
Agile requirements engineering
Agile requirements engineeringAgile requirements engineering
Agile requirements engineeringTestCampRO
 
Walking Hand in Hand With Your Product Team to Drive Customer Success
Walking Hand in Hand With Your Product Team to Drive Customer SuccessWalking Hand in Hand With Your Product Team to Drive Customer Success
Walking Hand in Hand With Your Product Team to Drive Customer SuccessTotango
 
Product Centric Delivery Teams
Product Centric Delivery TeamsProduct Centric Delivery Teams
Product Centric Delivery TeamsJordan Brown
 
Requirements Engineering in an Agile Environment
Requirements Engineering in an Agile EnvironmentRequirements Engineering in an Agile Environment
Requirements Engineering in an Agile Environmentsunil1993
 
Product teams & software development
Product teams & software developmentProduct teams & software development
Product teams & software developmentAngela Wise
 
Inheritance polymorphism-in-java
Inheritance polymorphism-in-javaInheritance polymorphism-in-java
Inheritance polymorphism-in-javaDeepak Singh
 
Introducing Agile to Product Teams
Introducing Agile to Product TeamsIntroducing Agile to Product Teams
Introducing Agile to Product TeamsJeremy Horn
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basicAnurag Tomar
 
Requirements engineering in agile
Requirements engineering in agileRequirements engineering in agile
Requirements engineering in agileTricode (part of Dept)
 
Lean Concepts & Agile Software Methodologies
Lean Concepts & Agile Software MethodologiesLean Concepts & Agile Software Methodologies
Lean Concepts & Agile Software MethodologiesBrad Smith
 
Agile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAgile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAsanka Dilruk
 
Quality Management
Quality ManagementQuality Management
Quality ManagementJoanmaines
 
Agile requirements engineering with scrum
Agile requirements engineering with scrumAgile requirements engineering with scrum
Agile requirements engineering with scrumxpdaysgermany
 

Andere mochten auch (20)

Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and Methods
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development process
 
Tqm
TqmTqm
Tqm
 
Agile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboAgile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim Corbo
 
Agile requirements engineering
Agile requirements engineeringAgile requirements engineering
Agile requirements engineering
 
Walking Hand in Hand With Your Product Team to Drive Customer Success
Walking Hand in Hand With Your Product Team to Drive Customer SuccessWalking Hand in Hand With Your Product Team to Drive Customer Success
Walking Hand in Hand With Your Product Team to Drive Customer Success
 
Product Centric Delivery Teams
Product Centric Delivery TeamsProduct Centric Delivery Teams
Product Centric Delivery Teams
 
Requirements Engineering in an Agile Environment
Requirements Engineering in an Agile EnvironmentRequirements Engineering in an Agile Environment
Requirements Engineering in an Agile Environment
 
Product teams & software development
Product teams & software developmentProduct teams & software development
Product teams & software development
 
Breaking the mold: Lean Product Management and MVP in a Large Company
Breaking the mold: Lean Product Management and MVP in a Large CompanyBreaking the mold: Lean Product Management and MVP in a Large Company
Breaking the mold: Lean Product Management and MVP in a Large Company
 
Inheritance polymorphism-in-java
Inheritance polymorphism-in-javaInheritance polymorphism-in-java
Inheritance polymorphism-in-java
 
Introducing Agile to Product Teams
Introducing Agile to Product TeamsIntroducing Agile to Product Teams
Introducing Agile to Product Teams
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basic
 
Requirements engineering in agile
Requirements engineering in agileRequirements engineering in agile
Requirements engineering in agile
 
Lean Concepts & Agile Software Methodologies
Lean Concepts & Agile Software MethodologiesLean Concepts & Agile Software Methodologies
Lean Concepts & Agile Software Methodologies
 
Software process
Software processSoftware process
Software process
 
Agile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAgile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical Study
 
Quality Management
Quality ManagementQuality Management
Quality Management
 
Agile requirements engineering with scrum
Agile requirements engineering with scrumAgile requirements engineering with scrum
Agile requirements engineering with scrum
 

Ähnlich wie Software development PROCESS

[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development processIvano Malavolta
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Compare Infobase Limited
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Jauhari Ismail
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle ModelJ.T.A.JONES
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part IICompare Infobase Limited
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineeringSyed Zaid Irshad
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life CycleVivek Gupta
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.pptNidhi99849
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.pptDivya Venkata
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.pptAqeelAbbas94
 
Unit_I.pptx
Unit_I.pptxUnit_I.pptx
Unit_I.pptxBaskarkncet
 

Ähnlich wie Software development PROCESS (20)

[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development process
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
 
Sdlc
SdlcSdlc
Sdlc
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
Unit_I.pptx
Unit_I.pptxUnit_I.pptx
Unit_I.pptx
 

Mehr von Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experienceIvano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green ITIvano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile developmentIvano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architecturesIvano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 

Mehr von Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 

KĂźrzlich hochgeladen

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

KĂźrzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Software development PROCESS

  • 2.
  • 3. Roadmap Introduction Classical software development processes Agile Open-source software development Software development process research
  • 4. Discussion If you need to develop a system with 10M LOCS, • How many people do you need? • How much time? • How do they synchronize? • How do you know that you are performing well?
  • 5. Software development process Design System Te s t Unit Te s t Developing software without a defined process is chaotic and inefficient . . . . . . Following a defined process makes software development more orderly, predictable and repeatable Slide by Cesar Augusto Nogueira, IBM
  • 6. Life cycle From inception of an idea for a product through: • requirements gathering and analysis • architecture design and specification • coding and testing • delivery and deployment • maintenance and evolution • retirement
  • 7. Software process model Attempt to organize the software life cycle by defining – activities involved in software production – order of activities and their relationships Goals of a software process – standardization, predictability, productivity, high product quality, ability to plan time and budget requirements
  • 8. The role of standards They are needed to achieve quality in both software products and processes They may be imposed internally or externally – e.g., MIL-STD 2167A imposed to contractors for military applications Other examples: ISO series, IEEE
  • 9. Main benefits From the developers' viewpoint – standards enforce a uniform behavior within an organization – they facilitate communication among people, stabilizes the production process, and makes it easier to add new people to ongoing projects From the customers' viewpoint – they make it easier to assess the progress and quality of results – they reduce the strict dependency of customers on specific contractors
  • 10. Code & Fix: the naĂŻve process model • Write code • Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features • Source of difficulties and deficiencies – impossible to predict – impossible to manage
  • 11. Models are needed Symptoms of inadequacy: the software crisis – scheduled time and cost exceeded – user expectations not met – poor quality The size and economic value of software applications required appropriate “process models” VS
  • 12. Process model goals (B. Boehm 1988) “determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions: What shall we do next? How long shall we continue to do it?”
  • 13. Process as a "black box" Product Process Informal Requirements
  • 14. Problems The assumption is that requirements can be fully understood prior to development Interaction with the customer occurs only at the beginning (requirements) and end (after delivery) Unfortunately the assumption almost never holds
  • 15. Process as a "white box" Product Process Informal Requirements feedback
  • 16. Advantages Reduce risks by improving visibility Allow project changes as the project progresses – based on feedback from the customer Why a project may change?
  • 17. The main activities Feasibility study Requirements engineering Architecture and detailed design Implementation and testing Delivery, deployment, and maintenance They must be performed independently of the model The model simply affects the flow among activities
  • 18. Example from an EU project ConstRaint and Application driven Framework for Tailoring Embedded Real-time Systems http://www.crafters-project.org
  • 19. Why CRAFTERS? PROBLEMS poorly interoperable proprietary technologies à poor time to market + high costs SOLUTION Seamless connectivity and middleware – by realizing a common middleware layer that is designed to support new wireless communication standards – portable across different platforms Ability to develop powerful design time solutions with notably shorter cycles – thanks to the unique tool chain delivered with reference middleware and hardware
  • 20. Feasibility study Why a new project? • cost/benefits tradeoffs • buy vs make – Requires to perform preliminary requirements analysis – Produces a feasibility study document 1. Definition of the problem 2. Alternative solutions and their expected benefits 3. Required resources, costs, and delivery dates in each proposed alternative solution
  • 21. CRAFTERS feasibility study Project proposal submitted to the ARTEMIS Call 2011 Project
  • 22. Requirements engineering Involves – eliciting – understanding – analyzing – specifying Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation Feasibility report System models User and system requirements Requirements document Focus on – what qualities are needed, – NOT on how to achieve them
  • 23. What is needed Understand interface between the application and the external world Understand the application domain Identify the main stakeholders and understand expectations – different stakeholders have different viewpoints – software engineer must integrate and reconcile them
  • 24. The requirements specification document (1) Provides a specification for the interface between the application and the external world – defines the qualities to be met Has its own qualities – understandable, precise, complete, consistent, unambiguous, easily modifiable
  • 25. The requirements specification document (2) Must be analyzed and confirmed by the stakeholders – may even include version 0 of user manual May be accompanied by the system test plan document As any large document, it must be modular – "vertical" modularity • the usual decomposition, which may be hierarchical – "horizontal" modularity • different viewpoints Defines both functional and non functional requirements
  • 26. Requirements in CRAFTERS (1) Set of relevant use cases first
  • 27. Requirements in CRAFTERS (2) Then, requirements collection and formulation
  • 28. Software architecture and detailed design activity Usually follows a company standard, which may include a standard notation, such as UML The result of this activity is: – the software architecture description – a design specification document We will have a dedicated lecture on this activity
  • 29. General model of the design process Interface design Component design System architecture Database specification Interface specification Requirements specification Architectural design Component specification Platform information Data description Design inputs Design activities Design outputs Database design
  • 34. Verification and validation Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the customer Involves: checking and review processes AND system testing System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system Testing is the most commonly used V & V activity
  • 35. Coding and module testing activity Company wide standards often followed for coding style System testing We will have a dedicated lecture on this activity Component testing Acceptance testing
  • 36. Testing stages Development or component testing – Individual components are tested independently – Components may be functions or objects or coherent groupings of these entities System testing – Testing of the system as a whole. Testing of emergent properties is particularly important Acceptance testing – Testing with customer data to check that the system meets the customer’s needs
  • 37. Coding and testing in CRAFTERS Prototype implementation based on 3 different HW platforms For example
  • 38. Software evolution Software is inherently flexible and can change Assess existing systems Define system requirements Propose system changes Modify systems New system Existing systems Although there has been a demarcation between development and evolution (maintenance), this is increasingly irrelevant as fewer and fewer systems are completely new
  • 39. What you need to remember Requirements engineering create the software specification Design and implementation requirements à executable software Software verification and validation to check that the system conforms to its specification and that it meets the real needs of the users of the system Software evolution new requirements à the software must evolve to remain useful
  • 40. Roadmap Introduction Classical software development process Agile Open-source software development
  • 41. Classical software process models* Waterfall model Spiral model Quality-oriented model Microsoft’s Synch-and-Stabilize * these are the most known process models, it is not a complete list
  • 42. Waterfall model Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Exist in many variants, all sharing sequential flow style It is document-driven
  • 43. Waterfall model Organizations adopting them standardize the outputs of the various phases (deliverables) May also prescribe methods to follow in each phase – organization of methods in frameworks often called methodology Example: Military Standard (MIL-STD-2167)
  • 44. Alternative: the V model Emphasis on V&V activities Acceptance tests written with requirements Unit/integration tests written during design
  • 45. Critical evaluation of the waterfall model + sw process subject to discipline, planning, and management à standard-oriented + postpone implementation to after understanding objectives + good documentation – difficult to gather all requirements once and for all – users may not know what they want – linear, rigid, monolithic – no feedback from the customer – no parallelism, all phases are blocking – a single delivery date (at the end!)
  • 46. Spiral model Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Proto-type 1 Evaluate alternatives, identify, resolve risks Prototype 3 REVIEW Requirements plan Life-cycle plan Development plan Risks are explicitly assessed and resolved Opera-tional protoype Concept of Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integration Acceptance test Service test Develop, verify next-level product Determine objectives, alternatives and constraints Plan next phase Integration and test plan
  • 47. Spiral model sectors Objective setting – Specific objectives for the phase are identified Risk assessment and reduction – Risks are assessed and activities put in place to reduce the key risks Development and validation – A development model for the system is chosen which can be any of the generic models + implementation & validation Planning – postmortem of previous loop, planification of next loop
  • 48. Critical evaluation of the spiral model + a good fit if requirements are not stable + flexible, but still with a plan + risks are assessed clearly + customer involvement + good documentation – difficult to assess risks – difficult to assess objectives and constraints
  • 49. Quality-oriented model Mathematical formalism to express requirements Model checking to prove correctness + automatic transformations to code = preserve correctness
  • 50. Critical evaluation of the quality-oriented model + a good fit for to safety/security critical parts + if requirements are correct, risks are totally controlled + verification is implicit à potentially, less testing needed – math languages require specific skills, rarely available – some parts (ex user interface) cannot be specified formally – validation of requirements still an issue – customer does not understand math language – specifier may misunderstand requirements
  • 51. Microsoft’s Synch-and-Stabilize CONTEXT Time to market essential Requirements cant be fixed early on Complex products (Mlocs) with several interacting components Design hard to devise and freeze early on Michael A. Cusumano and Richard W. Selby. 1997. How Microsoft builds software. Commun. ACM 40, 6 (June 1997), 53-61. DOI=10.1145/255656.255698
  • 52. Microsoft’s S-and-S phases Planning – vision of the product – Specification – Teamwork schedule Development – team composed of 2 groups • developers and testers (continuous testing) Stabilization – internal testing – external testing – release
  • 53. Planning phase Vision Statement - Product Managers – Define goals for the new product – Priority-order user activities that need to be supported by product features Deliverables: – Specification document – Schedule and “feature team” formation • 1 program manager • 3-8 developers • 3-8 testers (1:1 ratio with developers)
  • 54. Development phase Plan 3-4 sequential subprojects (lasting 2-4 months each) Buffer time between iterations (20%-50%) Subprojects -- design, code, debug – starting with most critical features and shared components – feature set may change by 30% or more – each developer is committed only to his assigned tasks
  • 55. Subproject development Feature teams go through the complete cycle of development, feature integration, testing and fixing problems Testers are paired with developers Feature teams synchronize work by building the product, finding and fixing errors on a daily and weekly basis Code that breaks a build must be fixed immediately At the end of a subproject, the product is stabilized
  • 56. Stabilization Internal testing of complete product External testing – beta sites – ISVs (Independent SE vendors) – OEMs (Original Equipment Manufacturers) – end users Release preparation
  • 57. Critical evaluation of Microsoft’s method + Responsiveness to marketplace: they always have a release to ship + allows to ship preliminary versions early + allows to add features in subsequent releases + continuous customer feedback + breaks down large projects into manageable pieces (with priorities) – poor focus on product architecture – no rigorous approach to design & code reviews – e.g., Video on demand components have real-time constraints that require precise mathematical models – no focus on defect prevention
  • 58. Roadmap Introduction Classical software development process Agile Open-source software development Software development process research
  • 59. Agile
  • 60. Waterfall vs agile: poor visibility
  • 61. Waterfall vs agile: poor quality
  • 62. Waterfall vs agile: too risky
  • 63. Waterfall vs agile: can’t handle change
  • 65. Risks and features http://www.testingthefuture.net/wp-content/uploads/2011/12/ waterfall_versus_agile_development.png
  • 66. Agile manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. http://www.agilemanifesto.org
  • 67. Anti-methodology? The Agile movement is not anti-methodology, in fact, many of us want to restore credibility to the word methodology. We want to restore a balance. We embrace modeling, but not in order to file some diagram in a dusty corporate repository. We embrace documentation, but not hundreds of pages of never-maintained and rarely-used tomes. We plan, but recognize the limits of planning in a turbulent environment. Jim Highsmith, History: The Agile Manifesto
  • 68. Agile principles (extract) Agile methods are iterative development processes with: • frequent releases of the product • continuous interaction between dev. team and customer • reduce product documentation • continuous and systematic assessment of produced value and risks
  • 70. A more critical evaluation of agile principles http://www.cs.york.ac.uk/staf/images/meyer-agile-forprint.pdf
  • 71. How does it work in practice? You make a list You start executing You estimate You update the plan “@run-time” You set priorities
  • 73. Technical tools: unit tests Snippet of test code for exercising some functionality of the product à codified requirements We will have two lectures on testing
  • 74. Technical tools: test-driven development Write tests first Refactoring is less risky now
  • 75. Technical tools: continuous integration Merging all the developers’ working copies many times a day à it allows to make sure that all the code integrates, all the unit tests pass, and a warning if anything goes wrong image from http://newmedialabs.com/
  • 77. An implementation: SCRUM http://www.flickr.com/photos/magia3e/6233729753/
  • 79. An implementation: SCRUM Burndown chart = how much work is left
  • 80. Critical evaluation of the agile method + Acceptance of change à less risky + Frequent and short iterations + Emphasis on working code + Associating a test with every piece of functionality + tests are a key resource within the project + Continuous integration (and delivery) + Planned – no upfront tasks, e.g. requirements – Tests as a replacement for specifications – feature-based development & ignorance of dependencies – no quality plan – dismissal of a priori architecture work – actually, dismissal of everything which is non-shippable
  • 81. Roadmap Introduction Classical software development process Agile Open-source software development Software development process research
  • 83. Open source development process As applied in successful projects: – Apache – Mozilla – … Tools • GitHub (config management system) • Mailing lists • Bugzilla (Bug tracking) Products • Source code, test suites • all related information, like mails, bugs, comments, etc.
  • 84. It doesn't just mean access to the source code 1. Free redistribution 2. Source code 3. Derived works 4. Integrity of the author's source code 5. No discrimination against persons or groups 6. No discrimination against fields of endeavor 7. Distribution of license 8. License must not be specific to a product 9. License must not restrict other software 10. License must be technology-neutral www.opensource.org/docs/definition.php
  • 85. Roles • Core team (2-8 people) – Architecture, requirements, integration/build, release • Patch developers (10-100) – Patch (evolutive + corrective) • Bug providers (100 – 1000+) – Signal bugs, may perform pull requests, etc. • Others (thousands) – Download and use
  • 86. Overview of the process The process is “public” • everyone can participate Releases are checked by a revision board that tests proposed code from the community Very frequent builds Often quite frequent releases • once a month
  • 87. Critical evaluation of the open-source model + simple and effective tools for bug/change tracking + continuous delivery + resiliency with respect to team members (openness) + “no maintainance” – limited documentation (not always) – no project plan – no quality plan
  • 88. Roadmap Introduction Classical software development process Agile Open-source software development Software development process research
  • 90. Major trends and challenges The Internet is the development environment • Software is rarely developed in isolation – it is more developed in teams, with even users involved • see user-centered design – radical change in the methods and techniques used to conceive, design, develop, deploy, and evolve software • e.g. our collaborative design platform for mobile apps • Software is continuously changed and redeployed – new challenges for configuration management, deployment, etc. • e.g., continuous integration, continuous delivery, etc. • Existing quality standard and models need to be extended and adapted to very different situations – e.g., safety-critical systems VS mobile apps
  • 91. Major trends and challenges The Internet is the architecture and execution infrastructure • Any software is directly or indirectly operating over the Internet – even control and SCADA systems • The classical separation among different types of software is tending to disappear – Internet of things – Smart services • e.g., a connected car – Disappearing computers • Internet as the infrastructure for the development and operation of modern software systems (cloud)
  • 92. Major trends and challenges Users are mobile, nomadic, and “always on” • Need to integrate software design techniques and expertise with the true industrial designers’ skills and methods – it is not just a matter of “increasing usability” • Designing software for mobile devices is not just a variation of classical development processes – it requires new and specific techniques, policies, and methods able to effectively address challenges like mobile fragmentation, intermitted connection, power consumption
  • 93. Major trends and challenges The Internet is the basic distribution and business infrastructure • Today software can be easily distributed and configured over the Internet + users are always connected – software updates can be done much more frequently • Users and customers actually expect this – software is global now, it must operate coherently with requirements and constraints of each region/country – e-commerce applied to software too (app stores) • Apple app store is the only legal means to install software on iDevices • new business models (e.g., in-app purchases) – fragmentation problem (e.g., Android) • Open APIs (very beyond the classical Open Data paradigm) – e.g., E015 = full, bidirectional and direct interoperability among autonomous distributed open services
  • 94. What this lecture means to you? No “silver bullet” Linear processes: planned, not flexible Iterative processes: planned, flexible, less risky Quality-oriented processes: planned, not flexible, measured Agile: not planned, test-driven Many research challenges to be explored out there!
  • 95. Suggested readings 1. Alfonso Fuggetta and Elisabetta Di Nitto. 2014. Software process. In Proceedings of the on Future of Software Engineering (FOSE 2014). ACM, New York, NY, USA, 1-12. 2. Striebeck, M., "Ssh! We are adding a process... [agile practices]," Agile Conference, 2006 , vol., no., pp.9 pp.,193, 23-28 July 2006 3. Nicolò Paternoster, Carmine Giardino, Michael Unterkalmsteiner, Tony Gorschek, Pekka Abrahamsson, Software development in startup companies: A systematic mapping study, Information and Software Technology, Volume 56, Issue 10, October 2014, Pages 1200-1218, ISSN 0950-5849
  • 97. Contact Ivano Malavolta | Post-doc researcher Gran Sasso Science Institute iivanoo ivano.malavolta@gssi.infn.it www.ivanomalavolta.com