SlideShare una empresa de Scribd logo
1 de 58
Recent and Future Trends
Continuous
Integration
Introduction
• Continuous Integration was first introduced in the year 2000 with the software known as
Cruise Control.
• Over the years, Continuous Integration has become a key practice in any software
organization.
• This is a development practice that calls upon development teams to ensure that a build
and subsequent testing is conducted for every code change made to a software program.
This concept was meant to remove the problem of finding late occurrences of issues in the
build lifecycle.
• Instead of the developers working in isolation and not integrating enough, Continuous
Integration was introduced to ensure that the code changes and builds were never done in
isolation.
Why Continuous Integration?
• The continuous Integration process helps to answer the following questions for the
software development team.
• Do all the software components work together as they should? – Sometimes systems
can become so complex that there are multiple interfaces for each component. In
such cases, it’s always critical to ensure that all the software components work
seamlessly with each other.
• Is the code too complex for integration purposes? – If the continuous integration
process keeps on failing, there could be a possibility that the code is just too
complex. And this could be a signal to apply proper design patterns to make the code
lesser complex and more maintainable.
Continue
• Does the code adhere to the established coding standards? – Most of the test cases will
always check that the code is adhering to the proper coding standards. By doing an
automated test after the automated build, this is a good point to check if the code meets
all the desired coding standards.
• How much code is covered by automated tests? – There is no point in testing code if the
test cases don’t cover the required functionality of the code. So it’s always a good
practice to ensure that the test cases written should cover all the key scenarios of the
application.
• Were all the tests successful after the latest change? – If a test fails, then there is no
point in proceeding with the deployment of the code, so this is a good point to check if
the code is ready to move to the deployment stage or not.
Workflow
Continuous Integrations Tools
• Jenkins (Hudson)
• TravisCI
• Cruise Control
• TeamCity
• BuildBot
• Bamboo
• Team foundation server
• Gerrit
Early Risk Resolution
Introduction To Risk
• Risk is the possibility of suffering loss.
• In a development project, the loss describes the impact to the project which could
be in the form of diminished quality of the end product, increased costs, delayed
completion, or failure.
Introduction to Early Risk Resolution
• The engineering stage of the life cycle (inception and elaboration phases) focuses on
confronting the risks and resolving them before the big resource commitments of the
production stage.
• Conventional projects usually do the easy stuff first, thereby demonstrating early
progress. A modern process attacks the important 20% of the requirements, use
cases, components, and risks.
Continue
• The effect of the overall life-cycle philosophy on the 80/20 lesson provides a useful
risk management perspective.
• 80% of the engineering is consumed by 20% of the requirements.
• 80% of the software cost is consumed by 20% of the components.
• 80% of the errors are caused by 20% of the components.
• 80% of the progress is made by 20% of people.
Why Do we need Early Risk Resolution
• Assess continuously what can go wrong (risks identification and assessment).
• Determine what risks are important to deal with (risk prioritization).
• Implement strategies to deal with those risk (risk resolution).
• Ensure that high priority risks are aggressively managed and that all risks are
cost-effectively managed throughout the project.
Evolutionary
Requirements
• Requirements are capabilities and conditions to which the system—and more broadly, the
project—must conform.
• A prime challenge of requirements work is to find, communicate, and remember.
• The UP promotes a set of best practices, one of which is manage requirements.
• This does not refer to the waterfall attitude of attempting to fully define and stabilize the
requirements in the first phase of a project, but rather— in the context of inevitably
changing and unclear stakeholder’s wishes– “a systematic approach to finding,
documenting, organizing, and tracking the changing requirements of a system”.
Introduction
Evolutionary Vs Waterfall Requirements
• Notice the word changing in the definition of what it means to manage requirements.
• The UP embraces change in requirements as a fundamental driver on projects.
• That’s incredibly important and at the heart of waterfall versus iterative and
evolutionary thinking.
Skillful Means to Find Requirements
• Besides changing, the word finding is important; that is, the UP encourages skillful
elicitation via techniques
• such as writing use cases with customers, requirements workshops that include both
developers and customers, focus groups with proxy customers, and a demo of the
results of each iteration to the customers, to solicit feedback
Types and Categories of Requirements
• Functional—features, capabilities, security.
• Usability—human factors, help, documentation.
• Reliability—frequency of failure, recoverability, predictability.
• Performance—response times, throughput, accuracy, availability, resource usage.
• Supportability—adaptability, maintainability, internationalization, configurability.
The “+” in FURPS +Indicates ancillary and sub
factors such as
• Implementation—resource limitations, languages and tools, hardware,…
• Interface—constraints imposed by interfacing with external systems.
• Operations—system management in its operational setting.
• Packaging—for example, a physical box.
• Legal—licensing and so forth.
Continue
• It is helpful to use FURPS+ categories as a checklist for requirements coverage, to
reduce the risk of not considering some important facet of the system.
• In common usage, requirements are categorized as functional or nonfunctional
• Some dislike this broad generalization, but it is very widely used
Functional Requirements
• Functional requirements are explored and recorded in the Use-Case Model, In the
system features list of the Vision artifact.
• Other requirements can be recorded in the use cases they relate to, or in the
Supplementary Specifications artifact.
Teamwork among
Stakeholders
Stakeholder and Teamwork's
• Stakeholder is any individual or an organization that is actively involved in a
project, or whose interest might be affected (positively or negatively) as a result of
project execution or completion.
• Teamwork is working in partnership with others toward a common goal, a
combined action of various individuals, or even just efficient and effective
combination with other people.
However, just because people working with one another doesn’t mean that they’re
participating into a successful teamwork.
Four steps of Stakeholders Management to
complete task of project
• Step 1: Identify Your Stakeholders
• Step 2: Determine a Stakeholder’s Influence
• Step 3: Develop a Communication Management Plan
• Step 4: Engage With Your Stakeholders
Stake Holder Roles
• User:- Define the system’s functionality and ultimately make use of it.
• Tester:- Test the system to ensure that it is suitable for use.
• Developer:- construct and deploy the system from specification.
• Other Roles:-
• Quick and easy problem solving.
• Strong staff relationships.
• Healthy competition.
Benefits of Teamwork
• Saves time.
• Generate more brilliant and creative idea.
• Encourage healthy risk-taking.
• Attention to Results
• Confront of Accountability
• Fearless In Conflict’s
• Presence of Trust
Effectively Managing Stakeholders
Top 10 Software Management
Principles
1: Base the process on an architecture first
approach:
• To start the software development, the developer first thoroughly identifies the
requirements then chooses the significant design decision.
• Before starting with the lifecycle (development) process check the selected
resources are sufficient for complete software development.
2:Establish iterative lifecycle process
that face risk early:
• Today the organizations not follow to define the entire problem at once, design the
entire solution, build the software, then test and deploy in sequence.
• The organizations adopt follows iterative development approach which facilitates,
problem understanding, effective solution, and an effective plan over several
iterations.
• It also balances the stockholder’s objectives. The main advantage of iterative
approach is risks are identified early to avoid software scrap and rework.
3:Transition design methods to highlight
Component based development:
• The developers should transits from line-of-code mentality to component based
mentality to reduce the amount of human generated code and custom development.
• A component based model is unified set of interface and behavior. Pre-existing
line of code either in source or executable format, with a defined
4: Establish change management
environment:
• The dynamics of iterative development, concurrent workflows require the
controlled baselines.
5: Enhance change freedom through tools
that support round trip engineering
(iterative):
• The iterative development process supports automate and synchronize engineering
information in different formats.
• Without substantial automation, change management, documentation, and testing
it is difficult to reduce project development time.
• Change freedom is necessity in iterative process at the same time the role of
environment is crucial.
6: Capture design artifacts in rigorous,
model based notion:
• Generally model based approach supports rich graphical and textual design
notions.
• Visual modeling and formal machine processable language provides good
measures than traditional design approach.
7: Instrument the process for objective quality
control and progress assessment:
• Project development progress and the quality should be assessed in the middle of
the development lifecycle.
• The best assessment mechanisms are derived directly from the engineering
artifacts and able to integrate all the activities in the development process.
8: Use demonstration based approach to
assess intermediate artifacts:
• Transit from current development artifacts to executable one to early elimination
of architectural defects.
9:Plan intermediate releases in groups of
usage situations with evolving levels of
detail:
• It is necessary that the software management process has continuous
demonstrations within the operational context.
• The evolution of project increments and generations must be equal with current
level of understanding of requirements and architecture.
10: Establish configurable process that is
economically scalable:
• No single process is suitable for software development. A practical process
framework must be organizing a broad spectrum of applications.
• The software development process must integrate economy of scale, development
automation, architecture patterns and components.
Software Management Best
Practices
• Software Engineering Process
• A disciplined approach to assigning and managing tasks and responsibilities in
a development organization
• goal is to produce a software that is:
• Within a predictable schedule and budget
• High-quality
• Correspondent to the needs of its end users
• People involved in software development:
• Project managers
• Developers •Qualities engineers
• Process engineers
• Method specialists
• System engineers Analysts
Symptoms of Software Development Failure
• Inaccurate understanding of end-user needs
• Inability to deal with changing requirements
• Modules that don't fit together
• Software that's hard to maintain or extend
• Late discovery of serious project flaws
• Poor software quality
• Unacceptable software performance
• Team members in each other's way, making it impossible to reconstruct who
changed what, when, where, and why
• An untrustworthy build-and-release process.
Root Causes of Software Development
Problems
• Ad hoc requirements management
• Ambiguous and imprecise communication
• Brittle architectures
• Overwhelming complexity
• Undetected inconsistencies in requirements, designs, and implementations
• Insufficient testing
• Subjective assessment of project status
• Failure to attack risk
• Uncontrolled change propagation
• Insufficient automation
Software Best Practices
• Treat root causes of problems to eliminate symptoms.
• To develop and maintain quality software in a repeatable and predictable fashion
Successful organizations use best practice as follows:
• Develop software iteratively
• Manage requirements
• Visually model software
• Continuously verify software quality
• Control changes to software
Develop Software Iteratively
• It offers solutions to the root causes of the software development problem
• Serious misunderstandings are made evident early in the lifecycle (when it’s
possible to react to them).
• It enables and encourages user feedback so as to elicit the system’s real
requirements.
• The development team is forced to focus on those issues that are most critical to
the project and are shielded from those issues that distract them from the project's
real risks.
Manage Requirements
• A requirement is a condition or capability a system must have.
• The challenge of managing the requirements is how to deal with the change of
requirements during the life of a software process.
• It is hard to completely and exhaustively state a system's requirements before the
start of development.
• As a new or evolving system changes, a user's understanding of the system's
requirements also changes.
Visually Model Software
• A model is a simplification of reality that completely describes a system from a
particular perspective.
• Model helps development team visualize, specify, construct, and document the
structure and behavior of a system's architecture.
• Visual modeling also helps to maintain consistency among a system's artifacts: its
requirements, designs, and implementations.
• Modeling software visually offers solutions to the root causes of the software
development problems.
Continuously Verify Software Quality
• Software problems are 100 to 1,000 times more expensive to find and repair after
deployment than beforehand.
• It's important to assess continuously the quality of a system with respect to its:
functionality, reliability, application performance, and system performance.
• Verifying a system's functionality involves creating tests for each key scenario,
each of which represents some aspect of the system's desired behavior. As
software is developed iteratively, tests are performed at every iteration.
Control Changes to Software
• A key challenge to developing software-intensive systems is to cope with
developers organized into teams. In the absence of disciplined control, the
development process rapidly degenerates into chaos.
• Coordinating activities and artifacts of developers and teams involves establishing
repeatable workflows for managing changes to software.
• Coordination allows a better allocation of resources based on the project's
priorities and risks.
Next Generation Cost
Models
Introduction
• A next generation software cost model should explicitly separate architectural
engineering from application production, just as an architecture-first process does.
• The cost of designing, producing, testing, and maintaining the architecture
baseline is a function of scale, quantity ,quality, technology, process and team skill
• Software experts hold widely varying opinions about software economics and its
manifestation in software cost estimation models:
• Source lines of code versus function points.
• Economy of scale versus diseconomy of scale.
Effort = F( TArch, SArch ,QArch,PArch ) + F(TApp,SApp,QApp,PApp)
Time = F( PArch, EffortArch) + F( PApp ,EffortApp )
Where,
T = technology parameter
S = scale parameter
Q = quality parameter
P = Process parameter
Engineering Stage
• Risk resolution, low-fidelity plain,
schedule/technology-driven, risk sharing
contracts
• Team Size:
• Architecture: Small team of software
engineers Application: Small team of
domain engineers Small and expert as
possible
• Product: Executable architecture,
Production plans, Requirements
• Focus: Design and integration, host
development environment
• Phases: Inception and elaboration
Production Stage
• Low risk, high-fidelity plan, cost-driven
Fixed-price contracts/funding
• Team Size:
• Architecture: Small team of software
engineers Application: As many as
needed Large and diverse as possible
• Product: Deliverable, useful function,
tested baselines, warranted quality
• Focus: Implement, test and maintain ,
Target technology
• Phases: Construction and transition
Modern Software Economics, Cultural
Impact and Denouement
Modern Software Economics
• Finding and fixing a software problem after delivery costs 100 times more than
finding and fixing the problem in early design phases.
• You can compress software development schedules 25% of nominal, but no more.
• For every $1 you spend on development, you will spend $2 on maintenance.
• Software development and maintenance costs are primarily a function of the
number of source line of code.
• Variations among people account for the biggest difference in software
productivity.
• Only about 15% of software development effort is devoted to programming.
• Software systems and product typically cost times as much per SLOC as
individual software programs. Software-system product- an economy of scale is
achievable.
• Walkthroughs catch 60% of the errors.
• 80% of the contribution comes from 20 % of the contributors.
• The overall ratio of software to hardware costs is still growing. In 1955, it was
15:85; in 1985, 85:15.
Culture Shifts
• Lower level and mid-level manager are performers.
• Requirements ad designs are fluid and tangible.
• Ambitious demonstrations are encouraged.
• Good and bad project performance is much more obvious earlier in the cycle.
• Early increment will be immature.
• Artifacts are less important early, more important later.
• Real issues are surfaced and resolved systematically.
• Quality assurance is everyone’s job, not a separate discipline.
• Performance issues arise early in the life cycle.
• Investments in automation are necessary.
• Good software organization should be more profitable.
Denouement
• Sequentially transitioning from requirement to design to code to rest.
• Achieving 100% completeness of each artefact at each life-cycle stage.
• Treating all requirements, artifacts, components, and so forth, as equals.
• Achieving high-fidelity traceability among all artifacts at each stage in the life
cycle.
Modern Iterative development process Framework
• Continuous round-trip engineering from requirements to test at evolving levels of abstraction.
• Achieving high-fidelity understanding of the drivers(the 20%) as early as practical
• Evolving the artifacts in breadth and depth based on risk management priorities.
• Postponing completeness and consistency analyses until later in the life cycle.
• A better way to transition to a more mature iterative development process that supports automation
technologies and modern architectures is to take the following shots:-
• Ready - Do your homework.
• Aim – Select a critical project.
• Fire – Execute with vigor and follow-through.

Más contenido relacionado

La actualidad más candente

Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
Sharad Srivastava
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
Nesrine Shokry
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
Damian T. Gordon
 

La actualidad más candente (20)

Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
MODELS USED IN SOFTWARE DEVELOPMENT
MODELS USED IN SOFTWARE DEVELOPMENTMODELS USED IN SOFTWARE DEVELOPMENT
MODELS USED IN SOFTWARE DEVELOPMENT
 
Lect3 conventional vs modern spm
Lect3 conventional vs modern spmLect3 conventional vs modern spm
Lect3 conventional vs modern spm
 
Unit 8
Unit 8Unit 8
Unit 8
 
Lect6 life cycle phases
Lect6 life cycle phasesLect6 life cycle phases
Lect6 life cycle phases
 
Risk management lec. 06
Risk management lec. 06Risk management lec. 06
Risk management lec. 06
 
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
 
Lect2 conventional software management
Lect2 conventional software managementLect2 conventional software management
Lect2 conventional software management
 
Lect5 improving software economics
Lect5 improving software economicsLect5 improving software economics
Lect5 improving software economics
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software Engineering - Lecture 02
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineering
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Generic process model
Generic process modelGeneric process model
Generic process model
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Postmortem Analysis
Postmortem AnalysisPostmortem Analysis
Postmortem Analysis
 

Similar a Recent and-future-trends spm

process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
Arun Nair
 
UNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxUNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptx
Devnath13
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
avishekpradhan24
 

Similar a Recent and-future-trends spm (20)

Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
UNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptxUNIT V - 1 SPM.pptx
UNIT V - 1 SPM.pptx
 
SE Lecture 2.ppt
SE Lecture 2.pptSE Lecture 2.ppt
SE Lecture 2.ppt
 
Unified process
Unified processUnified process
Unified process
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
Methodology Selection Strategy
Methodology Selection Strategy Methodology Selection Strategy
Methodology Selection Strategy
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
Software Process
Software ProcessSoftware Process
Software Process
 

Más de Prakash Poudel

Cocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity modelCocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity model
Prakash Poudel
 
General Online Health Information System Proposed Application
General Online Health Information System Proposed ApplicationGeneral Online Health Information System Proposed Application
General Online Health Information System Proposed Application
Prakash Poudel
 
Nepal Doorsanchar Company Limited Internship Experience
Nepal Doorsanchar Company Limited Internship Experience Nepal Doorsanchar Company Limited Internship Experience
Nepal Doorsanchar Company Limited Internship Experience
Prakash Poudel
 

Más de Prakash Poudel (20)

Web applications vulnerabilities and threats
Web applications vulnerabilities and threatsWeb applications vulnerabilities and threats
Web applications vulnerabilities and threats
 
Earliest Due Date Algorithm for Task scheduling for cloud computing
Earliest Due Date  Algorithm for Task scheduling for cloud computingEarliest Due Date  Algorithm for Task scheduling for cloud computing
Earliest Due Date Algorithm for Task scheduling for cloud computing
 
Locking base concurrency control
  Locking base concurrency control  Locking base concurrency control
Locking base concurrency control
 
Cocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity modelCocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity model
 
Microprocessor
Microprocessor Microprocessor
Microprocessor
 
Maximum power transfer theorem
Maximum power transfer theoremMaximum power transfer theorem
Maximum power transfer theorem
 
Linux technology
Linux technologyLinux technology
Linux technology
 
Java PU solution
Java PU solution Java PU solution
Java PU solution
 
System administration
System administrationSystem administration
System administration
 
Telephone call-simulation
Telephone call-simulationTelephone call-simulation
Telephone call-simulation
 
General Online Health Information System Proposed Application
General Online Health Information System Proposed ApplicationGeneral Online Health Information System Proposed Application
General Online Health Information System Proposed Application
 
Nepal Doorsanchar Company Limited Internship Experience
Nepal Doorsanchar Company Limited Internship Experience Nepal Doorsanchar Company Limited Internship Experience
Nepal Doorsanchar Company Limited Internship Experience
 
SQL & PLSQL
SQL & PLSQLSQL & PLSQL
SQL & PLSQL
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Multimedia Technology in computer
Multimedia Technology in computerMultimedia Technology in computer
Multimedia Technology in computer
 
File permission in linux
File permission in linuxFile permission in linux
File permission in linux
 
organization Management
organization Managementorganization Management
organization Management
 
Organization Management Concept
Organization Management Concept Organization Management Concept
Organization Management Concept
 
Java Programming concept
Java Programming concept Java Programming concept
Java Programming concept
 
Letest
LetestLetest
Letest
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Último (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Recent and-future-trends spm

  • 3. Introduction • Continuous Integration was first introduced in the year 2000 with the software known as Cruise Control. • Over the years, Continuous Integration has become a key practice in any software organization. • This is a development practice that calls upon development teams to ensure that a build and subsequent testing is conducted for every code change made to a software program. This concept was meant to remove the problem of finding late occurrences of issues in the build lifecycle. • Instead of the developers working in isolation and not integrating enough, Continuous Integration was introduced to ensure that the code changes and builds were never done in isolation.
  • 4.
  • 5. Why Continuous Integration? • The continuous Integration process helps to answer the following questions for the software development team. • Do all the software components work together as they should? – Sometimes systems can become so complex that there are multiple interfaces for each component. In such cases, it’s always critical to ensure that all the software components work seamlessly with each other. • Is the code too complex for integration purposes? – If the continuous integration process keeps on failing, there could be a possibility that the code is just too complex. And this could be a signal to apply proper design patterns to make the code lesser complex and more maintainable.
  • 6. Continue • Does the code adhere to the established coding standards? – Most of the test cases will always check that the code is adhering to the proper coding standards. By doing an automated test after the automated build, this is a good point to check if the code meets all the desired coding standards. • How much code is covered by automated tests? – There is no point in testing code if the test cases don’t cover the required functionality of the code. So it’s always a good practice to ensure that the test cases written should cover all the key scenarios of the application. • Were all the tests successful after the latest change? – If a test fails, then there is no point in proceeding with the deployment of the code, so this is a good point to check if the code is ready to move to the deployment stage or not.
  • 8. Continuous Integrations Tools • Jenkins (Hudson) • TravisCI • Cruise Control • TeamCity • BuildBot • Bamboo • Team foundation server • Gerrit
  • 10. Introduction To Risk • Risk is the possibility of suffering loss. • In a development project, the loss describes the impact to the project which could be in the form of diminished quality of the end product, increased costs, delayed completion, or failure.
  • 11. Introduction to Early Risk Resolution • The engineering stage of the life cycle (inception and elaboration phases) focuses on confronting the risks and resolving them before the big resource commitments of the production stage. • Conventional projects usually do the easy stuff first, thereby demonstrating early progress. A modern process attacks the important 20% of the requirements, use cases, components, and risks.
  • 12. Continue • The effect of the overall life-cycle philosophy on the 80/20 lesson provides a useful risk management perspective. • 80% of the engineering is consumed by 20% of the requirements. • 80% of the software cost is consumed by 20% of the components. • 80% of the errors are caused by 20% of the components. • 80% of the progress is made by 20% of people.
  • 13. Why Do we need Early Risk Resolution • Assess continuously what can go wrong (risks identification and assessment). • Determine what risks are important to deal with (risk prioritization). • Implement strategies to deal with those risk (risk resolution). • Ensure that high priority risks are aggressively managed and that all risks are cost-effectively managed throughout the project.
  • 15. • Requirements are capabilities and conditions to which the system—and more broadly, the project—must conform. • A prime challenge of requirements work is to find, communicate, and remember. • The UP promotes a set of best practices, one of which is manage requirements. • This does not refer to the waterfall attitude of attempting to fully define and stabilize the requirements in the first phase of a project, but rather— in the context of inevitably changing and unclear stakeholder’s wishes– “a systematic approach to finding, documenting, organizing, and tracking the changing requirements of a system”. Introduction
  • 16. Evolutionary Vs Waterfall Requirements • Notice the word changing in the definition of what it means to manage requirements. • The UP embraces change in requirements as a fundamental driver on projects. • That’s incredibly important and at the heart of waterfall versus iterative and evolutionary thinking.
  • 17. Skillful Means to Find Requirements • Besides changing, the word finding is important; that is, the UP encourages skillful elicitation via techniques • such as writing use cases with customers, requirements workshops that include both developers and customers, focus groups with proxy customers, and a demo of the results of each iteration to the customers, to solicit feedback
  • 18. Types and Categories of Requirements • Functional—features, capabilities, security. • Usability—human factors, help, documentation. • Reliability—frequency of failure, recoverability, predictability. • Performance—response times, throughput, accuracy, availability, resource usage. • Supportability—adaptability, maintainability, internationalization, configurability.
  • 19. The “+” in FURPS +Indicates ancillary and sub factors such as • Implementation—resource limitations, languages and tools, hardware,… • Interface—constraints imposed by interfacing with external systems. • Operations—system management in its operational setting. • Packaging—for example, a physical box. • Legal—licensing and so forth.
  • 20. Continue • It is helpful to use FURPS+ categories as a checklist for requirements coverage, to reduce the risk of not considering some important facet of the system. • In common usage, requirements are categorized as functional or nonfunctional • Some dislike this broad generalization, but it is very widely used
  • 21. Functional Requirements • Functional requirements are explored and recorded in the Use-Case Model, In the system features list of the Vision artifact. • Other requirements can be recorded in the use cases they relate to, or in the Supplementary Specifications artifact.
  • 23. Stakeholder and Teamwork's • Stakeholder is any individual or an organization that is actively involved in a project, or whose interest might be affected (positively or negatively) as a result of project execution or completion. • Teamwork is working in partnership with others toward a common goal, a combined action of various individuals, or even just efficient and effective combination with other people. However, just because people working with one another doesn’t mean that they’re participating into a successful teamwork.
  • 24. Four steps of Stakeholders Management to complete task of project • Step 1: Identify Your Stakeholders • Step 2: Determine a Stakeholder’s Influence • Step 3: Develop a Communication Management Plan • Step 4: Engage With Your Stakeholders
  • 25. Stake Holder Roles • User:- Define the system’s functionality and ultimately make use of it. • Tester:- Test the system to ensure that it is suitable for use. • Developer:- construct and deploy the system from specification. • Other Roles:- • Quick and easy problem solving. • Strong staff relationships. • Healthy competition.
  • 26. Benefits of Teamwork • Saves time. • Generate more brilliant and creative idea. • Encourage healthy risk-taking. • Attention to Results • Confront of Accountability • Fearless In Conflict’s • Presence of Trust
  • 28. Top 10 Software Management Principles
  • 29. 1: Base the process on an architecture first approach: • To start the software development, the developer first thoroughly identifies the requirements then chooses the significant design decision. • Before starting with the lifecycle (development) process check the selected resources are sufficient for complete software development.
  • 30. 2:Establish iterative lifecycle process that face risk early: • Today the organizations not follow to define the entire problem at once, design the entire solution, build the software, then test and deploy in sequence. • The organizations adopt follows iterative development approach which facilitates, problem understanding, effective solution, and an effective plan over several iterations. • It also balances the stockholder’s objectives. The main advantage of iterative approach is risks are identified early to avoid software scrap and rework.
  • 31. 3:Transition design methods to highlight Component based development: • The developers should transits from line-of-code mentality to component based mentality to reduce the amount of human generated code and custom development. • A component based model is unified set of interface and behavior. Pre-existing line of code either in source or executable format, with a defined
  • 32. 4: Establish change management environment: • The dynamics of iterative development, concurrent workflows require the controlled baselines.
  • 33. 5: Enhance change freedom through tools that support round trip engineering (iterative): • The iterative development process supports automate and synchronize engineering information in different formats. • Without substantial automation, change management, documentation, and testing it is difficult to reduce project development time. • Change freedom is necessity in iterative process at the same time the role of environment is crucial.
  • 34. 6: Capture design artifacts in rigorous, model based notion: • Generally model based approach supports rich graphical and textual design notions. • Visual modeling and formal machine processable language provides good measures than traditional design approach.
  • 35. 7: Instrument the process for objective quality control and progress assessment: • Project development progress and the quality should be assessed in the middle of the development lifecycle. • The best assessment mechanisms are derived directly from the engineering artifacts and able to integrate all the activities in the development process.
  • 36. 8: Use demonstration based approach to assess intermediate artifacts: • Transit from current development artifacts to executable one to early elimination of architectural defects.
  • 37. 9:Plan intermediate releases in groups of usage situations with evolving levels of detail: • It is necessary that the software management process has continuous demonstrations within the operational context. • The evolution of project increments and generations must be equal with current level of understanding of requirements and architecture.
  • 38. 10: Establish configurable process that is economically scalable: • No single process is suitable for software development. A practical process framework must be organizing a broad spectrum of applications. • The software development process must integrate economy of scale, development automation, architecture patterns and components.
  • 40. • Software Engineering Process • A disciplined approach to assigning and managing tasks and responsibilities in a development organization • goal is to produce a software that is: • Within a predictable schedule and budget • High-quality • Correspondent to the needs of its end users • People involved in software development: • Project managers • Developers •Qualities engineers • Process engineers • Method specialists • System engineers Analysts
  • 41. Symptoms of Software Development Failure • Inaccurate understanding of end-user needs • Inability to deal with changing requirements • Modules that don't fit together • Software that's hard to maintain or extend • Late discovery of serious project flaws • Poor software quality • Unacceptable software performance • Team members in each other's way, making it impossible to reconstruct who changed what, when, where, and why • An untrustworthy build-and-release process.
  • 42. Root Causes of Software Development Problems • Ad hoc requirements management • Ambiguous and imprecise communication • Brittle architectures • Overwhelming complexity • Undetected inconsistencies in requirements, designs, and implementations • Insufficient testing • Subjective assessment of project status • Failure to attack risk • Uncontrolled change propagation • Insufficient automation
  • 43. Software Best Practices • Treat root causes of problems to eliminate symptoms. • To develop and maintain quality software in a repeatable and predictable fashion Successful organizations use best practice as follows: • Develop software iteratively • Manage requirements • Visually model software • Continuously verify software quality • Control changes to software
  • 44. Develop Software Iteratively • It offers solutions to the root causes of the software development problem • Serious misunderstandings are made evident early in the lifecycle (when it’s possible to react to them). • It enables and encourages user feedback so as to elicit the system’s real requirements. • The development team is forced to focus on those issues that are most critical to the project and are shielded from those issues that distract them from the project's real risks.
  • 45. Manage Requirements • A requirement is a condition or capability a system must have. • The challenge of managing the requirements is how to deal with the change of requirements during the life of a software process. • It is hard to completely and exhaustively state a system's requirements before the start of development. • As a new or evolving system changes, a user's understanding of the system's requirements also changes.
  • 46. Visually Model Software • A model is a simplification of reality that completely describes a system from a particular perspective. • Model helps development team visualize, specify, construct, and document the structure and behavior of a system's architecture. • Visual modeling also helps to maintain consistency among a system's artifacts: its requirements, designs, and implementations. • Modeling software visually offers solutions to the root causes of the software development problems.
  • 47. Continuously Verify Software Quality • Software problems are 100 to 1,000 times more expensive to find and repair after deployment than beforehand. • It's important to assess continuously the quality of a system with respect to its: functionality, reliability, application performance, and system performance. • Verifying a system's functionality involves creating tests for each key scenario, each of which represents some aspect of the system's desired behavior. As software is developed iteratively, tests are performed at every iteration.
  • 48. Control Changes to Software • A key challenge to developing software-intensive systems is to cope with developers organized into teams. In the absence of disciplined control, the development process rapidly degenerates into chaos. • Coordinating activities and artifacts of developers and teams involves establishing repeatable workflows for managing changes to software. • Coordination allows a better allocation of resources based on the project's priorities and risks.
  • 50. Introduction • A next generation software cost model should explicitly separate architectural engineering from application production, just as an architecture-first process does. • The cost of designing, producing, testing, and maintaining the architecture baseline is a function of scale, quantity ,quality, technology, process and team skill • Software experts hold widely varying opinions about software economics and its manifestation in software cost estimation models: • Source lines of code versus function points. • Economy of scale versus diseconomy of scale.
  • 51. Effort = F( TArch, SArch ,QArch,PArch ) + F(TApp,SApp,QApp,PApp) Time = F( PArch, EffortArch) + F( PApp ,EffortApp ) Where, T = technology parameter S = scale parameter Q = quality parameter P = Process parameter
  • 52. Engineering Stage • Risk resolution, low-fidelity plain, schedule/technology-driven, risk sharing contracts • Team Size: • Architecture: Small team of software engineers Application: Small team of domain engineers Small and expert as possible • Product: Executable architecture, Production plans, Requirements • Focus: Design and integration, host development environment • Phases: Inception and elaboration Production Stage • Low risk, high-fidelity plan, cost-driven Fixed-price contracts/funding • Team Size: • Architecture: Small team of software engineers Application: As many as needed Large and diverse as possible • Product: Deliverable, useful function, tested baselines, warranted quality • Focus: Implement, test and maintain , Target technology • Phases: Construction and transition
  • 53. Modern Software Economics, Cultural Impact and Denouement
  • 54. Modern Software Economics • Finding and fixing a software problem after delivery costs 100 times more than finding and fixing the problem in early design phases. • You can compress software development schedules 25% of nominal, but no more. • For every $1 you spend on development, you will spend $2 on maintenance. • Software development and maintenance costs are primarily a function of the number of source line of code. • Variations among people account for the biggest difference in software productivity.
  • 55. • Only about 15% of software development effort is devoted to programming. • Software systems and product typically cost times as much per SLOC as individual software programs. Software-system product- an economy of scale is achievable. • Walkthroughs catch 60% of the errors. • 80% of the contribution comes from 20 % of the contributors. • The overall ratio of software to hardware costs is still growing. In 1955, it was 15:85; in 1985, 85:15.
  • 56. Culture Shifts • Lower level and mid-level manager are performers. • Requirements ad designs are fluid and tangible. • Ambitious demonstrations are encouraged. • Good and bad project performance is much more obvious earlier in the cycle. • Early increment will be immature. • Artifacts are less important early, more important later. • Real issues are surfaced and resolved systematically. • Quality assurance is everyone’s job, not a separate discipline. • Performance issues arise early in the life cycle. • Investments in automation are necessary. • Good software organization should be more profitable.
  • 57. Denouement • Sequentially transitioning from requirement to design to code to rest. • Achieving 100% completeness of each artefact at each life-cycle stage. • Treating all requirements, artifacts, components, and so forth, as equals. • Achieving high-fidelity traceability among all artifacts at each stage in the life cycle.
  • 58. Modern Iterative development process Framework • Continuous round-trip engineering from requirements to test at evolving levels of abstraction. • Achieving high-fidelity understanding of the drivers(the 20%) as early as practical • Evolving the artifacts in breadth and depth based on risk management priorities. • Postponing completeness and consistency analyses until later in the life cycle. • A better way to transition to a more mature iterative development process that supports automation technologies and modern architectures is to take the following shots:- • Ready - Do your homework. • Aim – Select a critical project. • Fire – Execute with vigor and follow-through.