The Software Development Process - The Complete Course
- Descrição
- Currículo
- FAQ
- Revisões
The software development process is what software developers have to know when developing a software system
But it is also something that software project managers have to know to have software projects under control
If you launch a software business this is the process you need to get familiar with in order to manage your suppliers, your customers, third parties and have elements to understand your business and its performances
It is not only related to develop a software product but also to specify it, verify and validate it and set it available for use and maintain it
-
The software development models are the various processes or methodologies that are being selected for the development of the project depending on the project’s aims and goals
-
There are many development life cycle models that have been developed in order to achieve different required objectives
-
The models specify the various stages of the process and the order in which they are carried out
-
The selection of model has very high impact on the testing that is carried out
The aim of this course is to help students to identify their software development model and provide them with all the tools and knowledge on the processes and phases related to it
In details the course covers the following topics:
-
Software development models
-
Requirement Gathering
-
DESIGN – The Unified Modeling Language (UML)
-
DESIGN – Software Architecture and design definition
-
DESIGN – Database Architecture
-
DESIGN – Technical Requirements
-
Implementation – Development
-
Implementation – Version Management
-
Implementation – Risk assessment
-
Implementation – Change management
-
Implementation – The deployment process (…,regression tests)
-
Quality Assurance – Verification
-
Quality Assurance – Validation
-
Quality Assurance – Incident Management, debugging and bug fixing
-
Go Live
-
Software Maintenance
-
Software Platform Development
-
Agile Frameworks: SCRUM & Kanban
-
Object-Oriented Programming Concepts
-
Project Management
-
Documentation management
-
1IntroductionVídeo Aula
-
2Course StructureVídeo Aula
-
3The software Development Process - definitionsVídeo Aula
-
4The software Development Process - overviewVídeo Aula
-
5Design Pattern - definitionVídeo Aula
-
6The scenario in a software projectVídeo Aula
-
7Roles & ResponsibilitiesVídeo Aula
-
8The problem: understand the customer requirementVídeo Aula
-
9Presentation of a case studyVídeo Aula
-
10GeneralVídeo Aula
Choosing right model for developing of the software product or application is very important. Based on the model the development and testing processes are carried out
Different companies based on the software application or product, they select the type of development model whichever suits to their application
But these days in market the ‘Agile Methodology‘ is the most used model.
-
11Software Development Life Cycle (SDLC)Vídeo Aula
•In simpler words, Software Development Life Cycle (SDLC) is the set of processes used to develop and deliver high quality software
•It’s recommended to follow Software Development Life Cycle when an IT project is under development
•Its beneficial to follow SDLC when you need to combine technical and non-technical activities to deliver high quality software
•The Software Development Life Cycle is structured in different stages in the life cycle and can be accomplished using different models
-
12What are the Software Development Life Cycle (SDLC) phases?Vídeo Aula
•Software life cycle models describe phases of the software cycle and the order in which those phases are executed
•Each phase produces deliverables required by the next phase in the life cycle
•Requirements are translated into design
•Code is produced according to the design which is called development phase
-
131. Waterfall modelVídeo Aula
•The ‘Waterfall Model‘ is the very old model
•It is also referred to as a linear-sequential life cycle model
•In ‘Waterfall Model’ testing starts only after the development is completed
-
142. V modelVídeo Aula
•V- model means Verification and Validation model
•Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes
•Each phase must be completed before the next phase begins
•V-Model is one of the many software development models
•Testing of the product is planned in parallel with a corresponding phase of development in V-model
-
153. Incremental modelVídeo Aula
•In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle
•Cycles are divided up into smaller, more easily managed modules. Incremental model is a type of software development model like V-model, Agile model etc.
•In this model, each module passes through the requirements, design, implementation and testing phases
-
164. RAD modelVídeo Aula
•RAD model is Rapid Application Development model
•It is a type of incremental model
•In RAD model the components or functions are developed in parallel as if they were mini projects
•The developments are time boxed, delivered and then assembled into a working prototype
•This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements
-
175. Agile modelVídeo Aula
•Agile development model is also a type of Incremental model
•Software is developed in incremental, rapid cycles
•This results in small incremental releases with each release building on previous functionality
•Each release is thoroughly tested to ensure software quality is maintained
•It is used for time critical applications
-
186. Iterative modelVídeo Aula
•An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements
•This process is then repeated, producing a new version of the software for each cycle of the model
-
197. Spiral modelVídeo Aula
•The spiral model is similar to the incremental model, with more emphasis placed on risk analysis
•The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation
•A software project repeatedly passes through these phases in iterations (called Spirals in this model)
•The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed
•Each subsequent spirals builds on the baseline spiral
-
208. Prototype modelVídeo Aula
•The spiral model is similar to the incremental model, with more emphasis placed on risk analysis
•The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation
•A software project repeatedly passes through these phases in iterations (called Spirals in this model)
•The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed
•Each subsequent spirals builds on the baseline spiral
•The prototype are usually not complete systems and many of the details are not built in the prototype
•The goal is to provide a system with overall functionality
-
21How to select the right Software Development Life Cycle ModelVídeo Aula
As the Software Development Life Cycle has many models, it is very important and the broader issue to select the right model for the project
This is very challenging and crucial for most of the organizations, as the model selected and the criteria used to select it adds the value to the organization
-
22Which factors determine the selection of the development model - generalVídeo Aula
Development environments have changed drastically in recent years
The development periods are shorter than ever and the number of team has increased
These changes have led to difficulties in controlling the development activities and predicting the end of developments
-
23Which factors determine the selection of the development model - UncertaintyVídeo Aula
-
24Which factors determine the selection of the development model - CriticalityVídeo Aula
Cost-effective software project management has the serious need to focus resources on those areas with highest criticality
Critical areas are identified in
Lack of resources or skills for complex parts
Uncertainty
High development/implementation costs
Tasks on the critical path of a project plan
Critical points should be managed in Risk Assessment at project management level
-
25Which factors determine the selection of the development model - ComplexityVídeo Aula
The term complexity stands for state of events or things, which have multiple interconnected links and highly complicated structures
In software programming, as the design of software is realized, the number of elements and their interconnections gradually emerge to be huge, which becomes too difficult to understand at once
Software complexity is also a natural byproduct of the functional complexity that the code is attempting to enable
Software design complexity is difficult to assess without using complexity metrics and measures
We will see also:
how to control complexity
how to measure complexity
-
26Which factors determine the selection of the development model - Team SizeVídeo Aula
Team Size Can Be the Key to a Successful Software Project
What is an optimum staffing level for a software development project?
How to determine the right size for a specific software development team?
Capacity planning
Identify the key members of a software team
How do you figure out the ideal size of your software development team?
-
27Which factors determine the selection of the dev. model - Customer InvolvementVídeo Aula
Costs of software development and deployment are decreasing due to numerous open source projects, but competition increases due to lowering entry barriers
The need to bring developers closer to their customer becomes vital for success, especially involving users into the very early stages of software development
This allows detecting flaws of conceptual and design nature, minimize unnecessary development costs, and warrant relevance for customers
In this lesson also:
Customer Involvement Methods
Customer engagement options in software projects
-
28Which factors determine the selection of the dev model - Previous ExperienceVídeo Aula
We need to be able to learn from past experiences so we can improve our software processes and products but also our project management methods and activities
-
29Which factors determine the selection of the dev. model - Development CostsVídeo Aula
Cost estimation is an especially difficult area of software development project management
The impacts of uncertainty in key areas such as product size, productivity, and defect injection rates can dramatically affect a project's cost and schedule
The job of estimating becomes even more difficult when requirements are allowed to evolve throughout a project as is the case for a spiral lifecycle process
The same unknowns of size, productivity, and defect injection rates exist, but there is also the additional unknown of the number of spirals that will need to be completed before an incremental product is delivered
The evolutionary nature of the process allows requirements to change and this makes the job of estimating size even more difficult and uncertain.
Since most software development projects do undergo changes, it is beneficial to consider the impacts on cost and schedule which can be used to develop a more realistic estimate.
-
30Which factors determine the selection of the dev model - Organizational CultureVídeo Aula
Organizational culture forms the context in which systems development takes place
Although there is not much prior research into the relationship between organizational culture and the deployment of Software Development Models (SDMs), there are good a priori reasons to believe in a relationship between the two
Organizational culture includes several levels with a varying degree of awareness on the part of the culture-bearers
Organizational culture should be compatible with the IT effort in question in order to succeed
In order to verify if an organization is ready for a specific software development model we need to clarify the types of culture and verify to which one our organization belong to
In this lesson also:
Types of colture
The Competing values model (CVM)
Organizational Culture and the Deployment of Agile Methods
Organizational culture impact on the selection of the Software Development Model
-
31Which factors determine the selection of the development model - More factorsVídeo Aula
Other factors that influence the selection of the Software Development Model
-
32What is requirement gathering?Vídeo Aula
-
33Initial RequirementsVídeo Aula
-
34Uncertainty in TechnologyVídeo Aula
-
35Case Study - An eLearning membership website - customer requirement (Part I)Vídeo Aula
-
36Case Study - An eLearning membership website - customer requirement (Part II)Vídeo Aula
-
37Case Study - An eLearning membership website - customer requirement (Part III)Vídeo Aula
-
38Case Study - An eLearning membership website - customer requirement (Part IV)Vídeo Aula
-
39Case Study - An eLearning membership website - customer requirement (Part V)Vídeo Aula
-
40Case Study - An eLearning membership website - customer requirement (Part VI)Vídeo Aula
-
41Identify the solutionVídeo Aula
-
42Identification of the skills and technologiesVídeo Aula
-
43Work organizationVídeo Aula
-
44Ways to collect the requirementsVídeo Aula
-
45Analyze the requirementsVídeo Aula
-
46Review the customer processes and define what to automate and what notVídeo Aula
-
47Agreement and sign offVídeo Aula
-
48Introduction, UML Diagram TypesVídeo Aula
-
49Class DiagramsVídeo Aula
-
50Relationships between classesVídeo Aula
-
51UML RelationshipsVídeo Aula
-
52UML PackagesVídeo Aula
-
53UML Composite StructuresVídeo Aula
-
54Component diagramsVídeo Aula
-
55Use case diagramsVídeo Aula
-
56Use casesVídeo Aula
-
57How to draw a use case diagramVídeo Aula
-
58Use case modellingVídeo Aula
-
59Use case documentVídeo Aula
-
60Interaction & Collaboration DiagramsVídeo Aula
-
61Statechart DiagramsVídeo Aula
-
62Activity DiagramsVídeo Aula